mesurer-solid 0.2.0-beta.4 → 0.2.0-beta.5
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/dist/index.js +25 -15
- package/dist/inject-script.js +2 -2
- package/dist/inject.js +25 -15
- package/dist/plugins.js +630 -610
- package/package.json +1 -1
package/dist/plugins.js
CHANGED
|
@@ -2265,40 +2265,50 @@ var ar = (e) => e, or = (e, t = 0, n = 1) => Math.min(n, Math.max(t, e)), sr = (
|
|
|
2265
2265
|
}, Vr = async (e) => (await zr(e)).capture(e), Hr = (e) => {
|
|
2266
2266
|
let t = Rr.get(e);
|
|
2267
2267
|
Rr.delete(e), t?.release(e);
|
|
2268
|
-
}, Ur = Vr, Wr = () => globalThis.crypto?.randomUUID?.() ?? `${Date.now()}-${Math.random()}`, Gr =
|
|
2268
|
+
}, Ur = Vr, Wr = () => globalThis.crypto?.randomUUID?.() ?? `${Date.now()}-${Math.random()}`, Gr = (e) => e;
|
|
2269
|
+
function Kr(e, t) {
|
|
2270
|
+
if (!(e instanceof Gr(t).Element)) return !1;
|
|
2271
|
+
let n = e;
|
|
2272
|
+
for (; n;) {
|
|
2273
|
+
if (n.getAttribute("data-mesurer-inspector-ui") === "true" || n.hasAttribute("data-mesurer-toolbar") || n.hasAttribute("data-mesurer-settings")) return !0;
|
|
2274
|
+
n = n.parentElement;
|
|
2275
|
+
}
|
|
2276
|
+
return !1;
|
|
2277
|
+
}
|
|
2278
|
+
var qr = /* @__PURE__ */ new WeakMap(), Jr = (e) => (qr.get(e) ?? 0) > 0, Yr = /* @__PURE__ */ new WeakMap(), Xr = (e) => {
|
|
2269
2279
|
let t = e.location.pathname.replace(/\/+$/, "") || "/", n = new URLSearchParams(e.location.search);
|
|
2270
2280
|
n.sort();
|
|
2271
2281
|
let r = n.toString(), i = e.location.hash, a = i.startsWith("#/") ? i : "";
|
|
2272
2282
|
return `${t}${r ? `?${r}` : ""}${a}`;
|
|
2273
|
-
},
|
|
2274
|
-
let n =
|
|
2283
|
+
}, Zr = (e, t) => {
|
|
2284
|
+
let n = Xr(e);
|
|
2275
2285
|
for (let e of t.listeners) e(n);
|
|
2276
|
-
},
|
|
2277
|
-
let t =
|
|
2286
|
+
}, Qr = (e) => {
|
|
2287
|
+
let t = Yr.get(e);
|
|
2278
2288
|
if (t) return t;
|
|
2279
2289
|
let n = e.history, r = n.pushState, i = n.replaceState, a = {
|
|
2280
2290
|
listeners: /* @__PURE__ */ new Set(),
|
|
2281
2291
|
pushState: r,
|
|
2282
2292
|
replaceState: i,
|
|
2283
|
-
handleNativeChange: () =>
|
|
2293
|
+
handleNativeChange: () => Zr(e, a)
|
|
2284
2294
|
};
|
|
2285
2295
|
return n.pushState = function(...t) {
|
|
2286
2296
|
let n = r.apply(this, t);
|
|
2287
|
-
return
|
|
2297
|
+
return Zr(e, a), n;
|
|
2288
2298
|
}, n.replaceState = function(...t) {
|
|
2289
2299
|
let n = i.apply(this, t);
|
|
2290
|
-
return
|
|
2291
|
-
}, e.addEventListener("popstate", a.handleNativeChange), e.addEventListener("hashchange", a.handleNativeChange),
|
|
2292
|
-
},
|
|
2293
|
-
t.listeners.size > 0 ||
|
|
2294
|
-
},
|
|
2295
|
-
let n =
|
|
2300
|
+
return Zr(e, a), n;
|
|
2301
|
+
}, e.addEventListener("popstate", a.handleNativeChange), e.addEventListener("hashchange", a.handleNativeChange), Yr.set(e, a), a;
|
|
2302
|
+
}, $r = (e, t) => {
|
|
2303
|
+
t.listeners.size > 0 || Yr.get(e) !== t || (e.history.pushState = t.pushState, e.history.replaceState = t.replaceState, e.removeEventListener("popstate", t.handleNativeChange), e.removeEventListener("hashchange", t.handleNativeChange), Yr.delete(e));
|
|
2304
|
+
}, ei = (e, t) => {
|
|
2305
|
+
let n = Qr(e);
|
|
2296
2306
|
n.listeners.add(t);
|
|
2297
2307
|
let r = !1;
|
|
2298
2308
|
return () => {
|
|
2299
|
-
r || (r = !0, n.listeners.delete(t),
|
|
2309
|
+
r || (r = !0, n.listeners.delete(t), $r(e, n));
|
|
2300
2310
|
};
|
|
2301
|
-
},
|
|
2311
|
+
}, ti = "--mesurer-nested-scroll-x", ni = "--mesurer-nested-scroll-y", ri = (e, t, n, r = {}) => {
|
|
2302
2312
|
let i = e, a = /* @__PURE__ */ new Map(), o = t.ownerDocument, s = r.trackWindow === !0, c = (e) => {
|
|
2303
2313
|
if (e.parentElement) return e.parentElement;
|
|
2304
2314
|
let t = e.getRootNode();
|
|
@@ -2324,7 +2334,7 @@ var ar = (e) => e, or = (e, t = 0, n = 1) => Math.min(n, Math.max(t, e)), sr = (
|
|
|
2324
2334
|
let i = `${n}px`;
|
|
2325
2335
|
r !== i && e.style.setProperty(t, i);
|
|
2326
2336
|
}, g = () => {
|
|
2327
|
-
if (!p) for (let e of m()) e.dataset.mesurerNestedScrollCompensation !== "true" && (e.dataset.mesurerNestedScrollCompensation = "true"), h(e,
|
|
2337
|
+
if (!p) for (let e of m()) e.dataset.mesurerNestedScrollCompensation !== "true" && (e.dataset.mesurerNestedScrollCompensation = "true"), h(e, ti, d), h(e, ni, f);
|
|
2328
2338
|
}, _ = (e, t, n) => {
|
|
2329
2339
|
let r = t - e.left, i = n - e.top;
|
|
2330
2340
|
return r === 0 && i === 0 ? !1 : (e.left = t, e.top = n, d -= r, f -= i, !0);
|
|
@@ -2357,21 +2367,21 @@ var ar = (e) => e, or = (e, t = 0, n = 1) => Math.min(n, Math.max(t, e)), sr = (
|
|
|
2357
2367
|
if (!p) {
|
|
2358
2368
|
p = !0, s && e.removeEventListener("scroll", y, !0);
|
|
2359
2369
|
for (let e of a.keys()) e.removeEventListener("scroll", v, !0);
|
|
2360
|
-
for (let e of m()) delete e.dataset.mesurerNestedScrollCompensation, e.style.removeProperty(
|
|
2370
|
+
for (let e of m()) delete e.dataset.mesurerNestedScrollCompensation, e.style.removeProperty(ti), e.style.removeProperty(ni);
|
|
2361
2371
|
a.clear();
|
|
2362
2372
|
}
|
|
2363
2373
|
}
|
|
2364
2374
|
};
|
|
2365
|
-
},
|
|
2366
|
-
Array.from({ length: 801 }, (e, t) => t *
|
|
2367
|
-
var
|
|
2368
|
-
function
|
|
2375
|
+
}, ii = 5;
|
|
2376
|
+
Array.from({ length: 801 }, (e, t) => t * ii), Ht(null);
|
|
2377
|
+
var ai = "mesurer-settings-select msr:h-6 msr:w-full msr:appearance-none msr:rounded-control msr:border msr:border-ink-200 msr:bg-white msr:px-1.5 msr:pr-6 msr:text-[11px] msr:outline-none msr:focus:shadow-[inset_0_0_0_1px_var(--msr-accent)]";
|
|
2378
|
+
function oi() {
|
|
2369
2379
|
return Y("span", {
|
|
2370
2380
|
"aria-hidden": "true",
|
|
2371
2381
|
class: "msr:pointer-events-none msr:absolute msr:right-2 msr:top-1/2 msr:size-1.5 msr:-translate-y-1/2 msr:rotate-45 msr:border-r msr:border-b msr:border-ink-500"
|
|
2372
2382
|
});
|
|
2373
2383
|
}
|
|
2374
|
-
function
|
|
2384
|
+
function si(e) {
|
|
2375
2385
|
let t = () => e.variant !== "legacy";
|
|
2376
2386
|
var n = Y("div"), r = Y("div");
|
|
2377
2387
|
return X(n, r), Z(r, () => e.left), Z(n, (() => {
|
|
@@ -2389,7 +2399,7 @@ function ai(e) {
|
|
|
2389
2399
|
e !== i?.e && Q(n, "class", e, i?.e), t !== i?.t && Q(r, "class", t, i?.t);
|
|
2390
2400
|
}), n;
|
|
2391
2401
|
}
|
|
2392
|
-
function
|
|
2402
|
+
function ci(e) {
|
|
2393
2403
|
let t = () => e.variant !== "legacy", n = () => {
|
|
2394
2404
|
let t = lr(e.value);
|
|
2395
2405
|
if (t) return t;
|
|
@@ -2419,7 +2429,7 @@ function oi(e) {
|
|
|
2419
2429
|
e.onChange(n);
|
|
2420
2430
|
}, v = () => t() ? `msr:col-span-2 msr:grid msr:h-8 msr:w-full ${e.columns ?? "msr:grid-cols-[78px_150px]"} msr:items-center msr:gap-0 msr:text-[12px] msr:text-ink-700` : "msr:col-span-2 msr:grid msr:w-full msr:grid-cols-[78px_156px] msr:items-center msr:gap-3 msr:text-[12px] msr:text-ink-700";
|
|
2421
2431
|
var y = Y("div"), b = Y("span");
|
|
2422
|
-
return X(y, b), Z(b, () => e.label), Z(y, J(
|
|
2432
|
+
return X(y, b), Z(b, () => e.label), Z(y, J(si, {
|
|
2423
2433
|
get variant() {
|
|
2424
2434
|
return e.variant;
|
|
2425
2435
|
},
|
|
@@ -2502,7 +2512,7 @@ function oi(e) {
|
|
|
2502
2512
|
Q(y, "class", e, t);
|
|
2503
2513
|
}), y;
|
|
2504
2514
|
}
|
|
2505
|
-
var
|
|
2515
|
+
var li = (e) => (() => {
|
|
2506
2516
|
var t = Y("svg", {
|
|
2507
2517
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2508
2518
|
viewBox: "0 0 256 256",
|
|
@@ -2517,7 +2527,7 @@ var si = (e) => (() => {
|
|
|
2517
2527
|
}), ({ e, t: n, a: r }, i) => {
|
|
2518
2528
|
e !== i?.e && Q(t, "width", e, i?.e), n !== i?.t && Q(t, "height", n, i?.t), r !== i?.a && Q(t, "class", r, i?.a);
|
|
2519
2529
|
}), t;
|
|
2520
|
-
})(),
|
|
2530
|
+
})(), ui = (e) => J(li, {
|
|
2521
2531
|
get size() {
|
|
2522
2532
|
return e.size ?? 8;
|
|
2523
2533
|
},
|
|
@@ -2527,7 +2537,7 @@ var si = (e) => (() => {
|
|
|
2527
2537
|
get children() {
|
|
2528
2538
|
return Y("path", { d: "M213.66,101.66l-80,80a8,8,0,0,1-11.32,0l-80-80A8,8,0,0,1,53.66,90.34L128,164.69l74.34-74.35a8,8,0,0,1,11.32,11.32Z" });
|
|
2529
2539
|
}
|
|
2530
|
-
}),
|
|
2540
|
+
}), di = (e) => J(li, {
|
|
2531
2541
|
get size() {
|
|
2532
2542
|
return e.size ?? 12;
|
|
2533
2543
|
},
|
|
@@ -2537,8 +2547,8 @@ var si = (e) => (() => {
|
|
|
2537
2547
|
get children() {
|
|
2538
2548
|
return Y("path", { d: "M228,128a12,12,0,0,1-12,12H40a12,12,0,0,1,0-24H216A12,12,0,0,1,228,128Z" });
|
|
2539
2549
|
}
|
|
2540
|
-
}),
|
|
2541
|
-
let t = e.size ?? 20, n =
|
|
2550
|
+
}), fi = (e, t, n) => t * 256 / e / n, pi = (e) => {
|
|
2551
|
+
let t = e.size ?? 20, n = fi(t, e.strokePx ?? 1, e.frameScale ?? 1);
|
|
2542
2552
|
var r = Y("svg", {
|
|
2543
2553
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2544
2554
|
width: t,
|
|
@@ -2562,7 +2572,7 @@ var si = (e) => (() => {
|
|
|
2562
2572
|
return X(r, i), X(r, a), Z(a, () => e.children), q(() => e.class, (e, t) => {
|
|
2563
2573
|
Q(r, "class", e, t);
|
|
2564
2574
|
}), r;
|
|
2565
|
-
},
|
|
2575
|
+
}, mi = (e) => J(pi, {
|
|
2566
2576
|
get size() {
|
|
2567
2577
|
return e.size ?? 20;
|
|
2568
2578
|
},
|
|
@@ -2572,7 +2582,7 @@ var si = (e) => (() => {
|
|
|
2572
2582
|
get children() {
|
|
2573
2583
|
return Y("path", { d: "M128 48v160M48 128h160" });
|
|
2574
2584
|
}
|
|
2575
|
-
}),
|
|
2585
|
+
}), hi = (e) => J(pi, {
|
|
2576
2586
|
get size() {
|
|
2577
2587
|
return e.size ?? 20;
|
|
2578
2588
|
},
|
|
@@ -2582,7 +2592,7 @@ var si = (e) => (() => {
|
|
|
2582
2592
|
get children() {
|
|
2583
2593
|
return Y("path", { d: "M101.33 48v160M154.67 48v160" });
|
|
2584
2594
|
}
|
|
2585
|
-
}),
|
|
2595
|
+
}), gi = (e) => J(pi, {
|
|
2586
2596
|
get size() {
|
|
2587
2597
|
return e.size ?? 20;
|
|
2588
2598
|
},
|
|
@@ -2592,7 +2602,7 @@ var si = (e) => (() => {
|
|
|
2592
2602
|
get children() {
|
|
2593
2603
|
return Y("path", { d: "M48 101.33h160M48 154.67h160" });
|
|
2594
2604
|
}
|
|
2595
|
-
}),
|
|
2605
|
+
}), _i = (e) => (() => {
|
|
2596
2606
|
var t = Y("svg", {
|
|
2597
2607
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2598
2608
|
viewBox: "0 0 12 12",
|
|
@@ -2611,7 +2621,7 @@ var si = (e) => (() => {
|
|
|
2611
2621
|
}), ({ e, t: n, a: r }, i) => {
|
|
2612
2622
|
e !== i?.e && Q(t, "width", e, i?.e), n !== i?.t && Q(t, "height", n, i?.t), r !== i?.a && Q(t, "class", r, i?.a);
|
|
2613
2623
|
}), t;
|
|
2614
|
-
})(),
|
|
2624
|
+
})(), vi = (e) => (() => {
|
|
2615
2625
|
var t = Y("svg", {
|
|
2616
2626
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2617
2627
|
viewBox: "0 0 16 16",
|
|
@@ -2635,7 +2645,7 @@ var si = (e) => (() => {
|
|
|
2635
2645
|
}), ({ e, t: n, a: r }, i) => {
|
|
2636
2646
|
e !== i?.e && Q(t, "width", e, i?.e), n !== i?.t && Q(t, "height", n, i?.t), r !== i?.a && Q(t, "class", r, i?.a);
|
|
2637
2647
|
}), t;
|
|
2638
|
-
})(),
|
|
2648
|
+
})(), yi = (e) => (() => {
|
|
2639
2649
|
var t = Y("svg", {
|
|
2640
2650
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2641
2651
|
viewBox: "0 0 16 16",
|
|
@@ -2659,7 +2669,7 @@ var si = (e) => (() => {
|
|
|
2659
2669
|
}), ({ e, t: n, a: r }, i) => {
|
|
2660
2670
|
e !== i?.e && Q(t, "width", e, i?.e), n !== i?.t && Q(t, "height", n, i?.t), r !== i?.a && Q(t, "class", r, i?.a);
|
|
2661
2671
|
}), t;
|
|
2662
|
-
})(),
|
|
2672
|
+
})(), bi = (e) => J(li, {
|
|
2663
2673
|
get size() {
|
|
2664
2674
|
return e.size ?? 20;
|
|
2665
2675
|
},
|
|
@@ -2669,7 +2679,7 @@ var si = (e) => (() => {
|
|
|
2669
2679
|
get children() {
|
|
2670
2680
|
return Y("path", { d: "M216,32H88a8,8,0,0,0-8,8V80H40a8,8,0,0,0-8,8V216a8,8,0,0,0,8,8H168a8,8,0,0,0,8-8V176h40a8,8,0,0,0,8-8V40A8,8,0,0,0,216,32ZM160,208H48V96H160Zm48-48H176V88a8,8,0,0,0-8-8H96V48H208Z" });
|
|
2671
2681
|
}
|
|
2672
|
-
}),
|
|
2682
|
+
}), xi = (e) => J(li, {
|
|
2673
2683
|
get size() {
|
|
2674
2684
|
return e.size ?? 20;
|
|
2675
2685
|
},
|
|
@@ -2679,7 +2689,7 @@ var si = (e) => (() => {
|
|
|
2679
2689
|
get children() {
|
|
2680
2690
|
return Y("path", { d: "M229.66,58.34l-32-32a8,8,0,0,0-11.32,0l-96,96A8,8,0,0,0,88,128v32a8,8,0,0,0,8,8h32a8,8,0,0,0,5.66-2.34l96-96A8,8,0,0,0,229.66,58.34ZM124.69,152H104V131.31l64-64L188.69,88ZM200,76.69,179.31,56,192,43.31,212.69,64ZM224,128v80a16,16,0,0,1-16,16H48a16,16,0,0,1-16-16V48A16,16,0,0,1,48,32h80a8,8,0,0,1,0,16H48V208H208V128a8,8,0,0,1,16,0Z" });
|
|
2681
2691
|
}
|
|
2682
|
-
}),
|
|
2692
|
+
}), Si = (e) => J(li, {
|
|
2683
2693
|
get size() {
|
|
2684
2694
|
return e.size ?? 18;
|
|
2685
2695
|
},
|
|
@@ -2689,7 +2699,7 @@ var si = (e) => (() => {
|
|
|
2689
2699
|
get children() {
|
|
2690
2700
|
return Y("path", { d: "M216,48H176V40a24,24,0,0,0-24-24H104A24,24,0,0,0,80,40v8H40a8,8,0,0,0,0,16h8V208a16,16,0,0,0,16,16H192a16,16,0,0,0,16-16V64h8a8,8,0,0,0,0-16ZM96,40a8,8,0,0,1,8-8h48a8,8,0,0,1,8,8v8H96Zm96,168H64V64H192ZM112,104v64a8,8,0,0,1-16,0V104a8,8,0,0,1,16,0Zm48,0v64a8,8,0,0,1-16,0V104a8,8,0,0,1,16,0Z" });
|
|
2691
2701
|
}
|
|
2692
|
-
}),
|
|
2702
|
+
}), Ci = (e) => J(li, {
|
|
2693
2703
|
get size() {
|
|
2694
2704
|
return e.size ?? 18;
|
|
2695
2705
|
},
|
|
@@ -2699,11 +2709,11 @@ var si = (e) => (() => {
|
|
|
2699
2709
|
get children() {
|
|
2700
2710
|
return Y("path", { d: "M205.66,194.34a8,8,0,0,1-11.32,11.32L128,139.31,61.66,205.66a8,8,0,0,1-11.32-11.32L116.69,128,50.34,61.66A8,8,0,0,1,61.66,50.34L128,116.69l66.34-66.35a8,8,0,0,1,11.32,11.32L139.31,128Z" });
|
|
2701
2711
|
}
|
|
2702
|
-
}),
|
|
2712
|
+
}), wi = (e, t) => {
|
|
2703
2713
|
let n = t.CSS;
|
|
2704
2714
|
return n?.escape ? n.escape(e) : e.replace(/[^a-zA-Z0-9_-]/g, (e) => `\\${e}`);
|
|
2705
|
-
},
|
|
2706
|
-
function
|
|
2715
|
+
}, Ti = (e) => (e.textContent ?? "").replace(/\s+/g, " ").trim().slice(0, 200) || null, Ei = (e) => e.nodeType === 9, Di = (e) => e.nodeType === 11;
|
|
2716
|
+
function Oi(e) {
|
|
2707
2717
|
let t = e.getBoundingClientRect();
|
|
2708
2718
|
return {
|
|
2709
2719
|
left: t.left,
|
|
@@ -2712,20 +2722,20 @@ function Ei(e) {
|
|
|
2712
2722
|
height: t.height
|
|
2713
2723
|
};
|
|
2714
2724
|
}
|
|
2715
|
-
function
|
|
2716
|
-
if (
|
|
2725
|
+
function ki(e, t) {
|
|
2726
|
+
if (Ei(t)) return !0;
|
|
2717
2727
|
let n = e;
|
|
2718
2728
|
for (; n;) {
|
|
2719
2729
|
if (t === n || t.contains(n)) return !0;
|
|
2720
2730
|
let e = n.getRootNode();
|
|
2721
|
-
if (!
|
|
2731
|
+
if (!Di(e)) return !1;
|
|
2722
2732
|
n = e.host;
|
|
2723
2733
|
}
|
|
2724
2734
|
return !1;
|
|
2725
2735
|
}
|
|
2726
|
-
function
|
|
2736
|
+
function Ai(e) {
|
|
2727
2737
|
let t = e.ownerDocument.defaultView ?? window;
|
|
2728
|
-
if (e.id) return `#${
|
|
2738
|
+
if (e.id) return `#${wi(e.id, t)}`;
|
|
2729
2739
|
let n = e.getAttribute("data-testid");
|
|
2730
2740
|
if (n) return `[data-testid=${JSON.stringify(n)}]`;
|
|
2731
2741
|
let r = [], i = e;
|
|
@@ -2739,7 +2749,7 @@ function Oi(e) {
|
|
|
2739
2749
|
}
|
|
2740
2750
|
return r.join(" > ");
|
|
2741
2751
|
}
|
|
2742
|
-
function
|
|
2752
|
+
function ji(e) {
|
|
2743
2753
|
return {
|
|
2744
2754
|
tag: e.localName,
|
|
2745
2755
|
id: e.id || null,
|
|
@@ -2747,30 +2757,30 @@ function ki(e) {
|
|
|
2747
2757
|
role: e.getAttribute("role"),
|
|
2748
2758
|
ariaLabel: e.getAttribute("aria-label"),
|
|
2749
2759
|
classes: [...e.classList],
|
|
2750
|
-
text:
|
|
2760
|
+
text: Ti(e)
|
|
2751
2761
|
};
|
|
2752
2762
|
}
|
|
2753
|
-
function
|
|
2763
|
+
function Mi(e) {
|
|
2754
2764
|
return !!(e.id || e.testId || e.role || e.ariaLabel || e.classes.length || e.text);
|
|
2755
2765
|
}
|
|
2756
|
-
function ji(e, t) {
|
|
2757
|
-
return e.localName !== t.tag || t.id && e.id !== t.id || t.testId && e.getAttribute("data-testid") !== t.testId || t.role && e.getAttribute("role") !== t.role || t.ariaLabel && e.getAttribute("aria-label") !== t.ariaLabel ? !1 : t.id || t.testId ? !0 : t.classes.some((t) => !e.classList.contains(t)) || t.text && Ci(e) !== t.text ? !1 : Ai(t);
|
|
2758
|
-
}
|
|
2759
|
-
var Mi = "mesurer:select-gesture-start";
|
|
2760
2766
|
function Ni(e, t) {
|
|
2761
|
-
return e.
|
|
2767
|
+
return e.localName !== t.tag || t.id && e.id !== t.id || t.testId && e.getAttribute("data-testid") !== t.testId || t.role && e.getAttribute("role") !== t.role || t.ariaLabel && e.getAttribute("aria-label") !== t.ariaLabel ? !1 : t.id || t.testId ? !0 : t.classes.some((t) => !e.classList.contains(t)) || t.text && Ti(e) !== t.text ? !1 : Mi(t);
|
|
2768
|
+
}
|
|
2769
|
+
var Pi = "mesurer:select-gesture-start";
|
|
2770
|
+
function Fi(e, t) {
|
|
2771
|
+
return e.addEventListener(Pi, t), () => e.removeEventListener(Pi, t);
|
|
2762
2772
|
}
|
|
2763
2773
|
Ht((e) => void 0);
|
|
2764
|
-
var
|
|
2765
|
-
function
|
|
2774
|
+
var Ii = "mesurer-solid-styles", Li = (e) => e?.nodeType === 11, Ri = (e) => e.nodeType === 9;
|
|
2775
|
+
function zi(e, t) {
|
|
2766
2776
|
let n = t?.ownerDocument ?? globalThis.document;
|
|
2767
2777
|
if (!n) return;
|
|
2768
|
-
let r =
|
|
2769
|
-
if (r.querySelector(`#${
|
|
2778
|
+
let r = Li(t) ? t : n;
|
|
2779
|
+
if (r.querySelector(`#${Ii}`)) return;
|
|
2770
2780
|
let i = n.createElement("style");
|
|
2771
|
-
i.id =
|
|
2781
|
+
i.id = Ii, i.textContent = e, Ri(r) ? r.head.append(i) : r.append(i);
|
|
2772
2782
|
}
|
|
2773
|
-
var
|
|
2783
|
+
var Bi = "var(--msr-color-ink-50, #f8fafc)", Vi = "var(--msr-color-ink-200, #e2e8f0)", Hi = "var(--msr-color-ink-500, #64748b)", Ui = "var(--msr-content, #0f172a)", Wi = (e, t, n) => {
|
|
2774
2784
|
let r = e.createElement("div");
|
|
2775
2785
|
return Object.assign(r.style, {
|
|
2776
2786
|
position: "absolute",
|
|
@@ -2787,7 +2797,7 @@ var Ri = "var(--msr-color-ink-50, #f8fafc)", zi = "var(--msr-color-ink-200, #e2e
|
|
|
2787
2797
|
height: "100%"
|
|
2788
2798
|
}
|
|
2789
2799
|
}), r;
|
|
2790
|
-
},
|
|
2800
|
+
}, Gi = (e, t, n) => {
|
|
2791
2801
|
let r = e.createElement("div");
|
|
2792
2802
|
Object.assign(r.style, {
|
|
2793
2803
|
position: "fixed",
|
|
@@ -2801,23 +2811,23 @@ var Ri = "var(--msr-color-ink-50, #f8fafc)", zi = "var(--msr-color-ink-200, #e2e
|
|
|
2801
2811
|
"right",
|
|
2802
2812
|
"bottom",
|
|
2803
2813
|
"left"
|
|
2804
|
-
]) r.appendChild(
|
|
2814
|
+
]) r.appendChild(Wi(e, t, n));
|
|
2805
2815
|
return r;
|
|
2806
|
-
},
|
|
2816
|
+
}, Ki = (e, t) => {
|
|
2807
2817
|
Object.assign(e.style, {
|
|
2808
2818
|
left: `${t.left}px`,
|
|
2809
2819
|
top: `${t.top}px`,
|
|
2810
2820
|
width: `${t.width}px`,
|
|
2811
2821
|
height: `${t.height}px`
|
|
2812
2822
|
});
|
|
2813
|
-
},
|
|
2823
|
+
}, qi = (e, t) => {
|
|
2814
2824
|
let n = e.createElement("div");
|
|
2815
2825
|
return Object.assign(n.style, {
|
|
2816
2826
|
position: "fixed",
|
|
2817
2827
|
zIndex: "1",
|
|
2818
2828
|
pointerEvents: t ? "auto" : "none",
|
|
2819
2829
|
background: "var(--msr-surface-raised, #ffffff)",
|
|
2820
|
-
color:
|
|
2830
|
+
color: Ui,
|
|
2821
2831
|
borderRadius: "13px",
|
|
2822
2832
|
padding: "10px 12px",
|
|
2823
2833
|
fontSize: "11px",
|
|
@@ -2832,7 +2842,7 @@ var Ri = "var(--msr-color-ink-50, #f8fafc)", zi = "var(--msr-color-ink-200, #e2e
|
|
|
2832
2842
|
boxSizing: "border-box",
|
|
2833
2843
|
boxShadow: "var(--msr-shadow-floating, 0px 0px 0.5px rgba(0, 0, 0, 0.18), 0px 3px 8px rgba(0, 0, 0, 0.1), 0px 1px 3px rgba(0, 0, 0, 0.1))"
|
|
2834
2844
|
}), n.className = t ? "mesurer-ti-card mesurer-ti-card--pinned" : "mesurer-ti-card", n.dataset.state = "hidden", n;
|
|
2835
|
-
},
|
|
2845
|
+
}, Ji = (e, t, n, r) => {
|
|
2836
2846
|
t.replaceChildren();
|
|
2837
2847
|
let i = e.createElement("div");
|
|
2838
2848
|
Object.assign(i.style, {
|
|
@@ -2844,8 +2854,8 @@ var Ri = "var(--msr-color-ink-50, #f8fafc)", zi = "var(--msr-color-ink-200, #e2e
|
|
|
2844
2854
|
});
|
|
2845
2855
|
let a = e.createElement("span");
|
|
2846
2856
|
if (Object.assign(a.style, {
|
|
2847
|
-
color:
|
|
2848
|
-
background:
|
|
2857
|
+
color: Bi,
|
|
2858
|
+
background: Ui,
|
|
2849
2859
|
borderRadius: "4px",
|
|
2850
2860
|
padding: "1px 5px",
|
|
2851
2861
|
fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace",
|
|
@@ -2854,7 +2864,7 @@ var Ri = "var(--msr-color-ink-50, #f8fafc)", zi = "var(--msr-color-ink-200, #e2e
|
|
|
2854
2864
|
}), a.textContent = n.tagName, i.appendChild(a), n.textSnippet) {
|
|
2855
2865
|
let t = e.createElement("span");
|
|
2856
2866
|
Object.assign(t.style, {
|
|
2857
|
-
color:
|
|
2867
|
+
color: Hi,
|
|
2858
2868
|
overflow: "hidden",
|
|
2859
2869
|
textOverflow: "ellipsis",
|
|
2860
2870
|
whiteSpace: "nowrap",
|
|
@@ -2874,7 +2884,7 @@ var Ri = "var(--msr-color-ink-50, #f8fafc)", zi = "var(--msr-color-ink-200, #e2e
|
|
|
2874
2884
|
lineHeight: "14px",
|
|
2875
2885
|
textAlign: "center",
|
|
2876
2886
|
borderRadius: "4px",
|
|
2877
|
-
color:
|
|
2887
|
+
color: Hi,
|
|
2878
2888
|
fontSize: "14px"
|
|
2879
2889
|
}), i.appendChild(t);
|
|
2880
2890
|
}
|
|
@@ -2889,12 +2899,12 @@ var Ri = "var(--msr-color-ink-50, #f8fafc)", zi = "var(--msr-color-ink-200, #e2e
|
|
|
2889
2899
|
});
|
|
2890
2900
|
for (let t of n.rows) {
|
|
2891
2901
|
let n = e.createElement("span");
|
|
2892
|
-
n.style.color =
|
|
2902
|
+
n.style.color = Hi, n.style.fontSize = "11px", n.textContent = t.label;
|
|
2893
2903
|
let r = e.createElement("span");
|
|
2894
2904
|
if (Object.assign(r.style, {
|
|
2895
2905
|
fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace",
|
|
2896
2906
|
fontSize: "11px",
|
|
2897
|
-
color:
|
|
2907
|
+
color: Ui,
|
|
2898
2908
|
overflow: "hidden",
|
|
2899
2909
|
textOverflow: "ellipsis",
|
|
2900
2910
|
whiteSpace: "nowrap"
|
|
@@ -2903,21 +2913,21 @@ var Ri = "var(--msr-color-ink-50, #f8fafc)", zi = "var(--msr-color-ink-200, #e2e
|
|
|
2903
2913
|
let n = e.createElement("span");
|
|
2904
2914
|
n.textContent = t.value;
|
|
2905
2915
|
let i = e.createElement("span");
|
|
2906
|
-
i.style.color =
|
|
2916
|
+
i.style.color = Vi, i.style.margin = "0 6px", i.textContent = "·";
|
|
2907
2917
|
let a = e.createElement("span");
|
|
2908
2918
|
a.style.color = "#0369a1", a.textContent = t.varName, r.append(n, i, a);
|
|
2909
2919
|
}
|
|
2910
2920
|
o.append(n, r);
|
|
2911
2921
|
}
|
|
2912
2922
|
t.appendChild(o);
|
|
2913
|
-
},
|
|
2923
|
+
}, Yi = (e, t, n, r = 0, i = 0) => {
|
|
2914
2924
|
let a = Number.parseFloat(t.dataset.mesurerPositionedScrollX ?? ""), o = Number.parseFloat(t.dataset.mesurerPositionedScrollY ?? ""), s = Number.isFinite(a) && a !== e.scrollX || Number.isFinite(o) && o !== e.scrollY, c = n.left + n.width / 2 + r;
|
|
2915
2925
|
t.style.left = `${c}px`;
|
|
2916
2926
|
let l = t.getBoundingClientRect(), u = n.bottom + 4 + i;
|
|
2917
2927
|
u + l.height > e.innerHeight - 8 && (u = n.top - l.height - 4 + i), t.style.top = `${Math.max(8, u)}px`;
|
|
2918
2928
|
let d = l.width / 2;
|
|
2919
2929
|
t.style.left = `${Math.min(Math.max(c, 8 + d), e.innerWidth - 8 - d)}px`, t.dataset.mesurerPositionedScrollX = String(e.scrollX), t.dataset.mesurerPositionedScrollY = String(e.scrollY), s && !t.dataset.mesurerNativeScrollAnchor && (t.dataset.mesurerNativeScrollAnchor = "pending");
|
|
2920
|
-
},
|
|
2930
|
+
}, Xi = /* @__PURE__ */ new Map([
|
|
2921
2931
|
["100", "thin"],
|
|
2922
2932
|
["200", "extralight"],
|
|
2923
2933
|
["300", "light"],
|
|
@@ -2927,26 +2937,26 @@ var Ri = "var(--msr-color-ink-50, #f8fafc)", zi = "var(--msr-color-ink-200, #e2e
|
|
|
2927
2937
|
["700", "bold"],
|
|
2928
2938
|
["800", "extrabold"],
|
|
2929
2939
|
["900", "black"]
|
|
2930
|
-
]),
|
|
2940
|
+
]), Zi = [
|
|
2931
2941
|
"font-family",
|
|
2932
2942
|
"font-size",
|
|
2933
2943
|
"font-weight",
|
|
2934
2944
|
"line-height",
|
|
2935
2945
|
"letter-spacing"
|
|
2936
|
-
],
|
|
2946
|
+
], Qi = /* @__PURE__ */ new Map([
|
|
2937
2947
|
["Family", "font-family"],
|
|
2938
2948
|
["Size", "font-size"],
|
|
2939
2949
|
["Weight", "font-weight"],
|
|
2940
2950
|
["Line", "line-height"],
|
|
2941
2951
|
["Tracking", "letter-spacing"]
|
|
2942
|
-
]),
|
|
2952
|
+
]), $i = (e) => {
|
|
2943
2953
|
if (!e || e === "normal") return e || "normal";
|
|
2944
2954
|
let t = /^(-?[\d.]+)px$/.exec(e);
|
|
2945
2955
|
return t ? `${Math.round(Number(t[1]) * 10) / 10}px` : e;
|
|
2946
|
-
},
|
|
2947
|
-
let t =
|
|
2956
|
+
}, ea = (e) => (e.split(",")[0] ?? "").trim().replace(/^['"]|['"]$/g, ""), ta = (e) => {
|
|
2957
|
+
let t = Xi.get(e);
|
|
2948
2958
|
return t ? `${e} / ${t}` : e;
|
|
2949
|
-
},
|
|
2959
|
+
}, na = (e) => e ? /var\(\s*(--[a-zA-Z0-9_-]+)/.exec(e)?.[1] ?? null : null, ra = (e) => (e.match(/#[\w-]+/g) ?? []).length * 1e4 + (e.match(/\.[\w-]+|\[[^\]]+\]|:[\w-]+/g) ?? []).length * 100 + (e.match(/(?:^|[ >+~])([a-zA-Z][\w-]*)/g) ?? []).length, ia = (e, t) => !t || (e.important === t.important ? e.specificity === t.specificity ? e.order > t.order : e.specificity > t.specificity : e.important), aa = class {
|
|
2950
2960
|
document;
|
|
2951
2961
|
window;
|
|
2952
2962
|
constructor(e, t) {
|
|
@@ -2986,11 +2996,11 @@ var Ri = "var(--msr-color-ink-50, #f8fafc)", zi = "var(--msr-color-ink-200, #e2e
|
|
|
2986
2996
|
return e;
|
|
2987
2997
|
}
|
|
2988
2998
|
findVarReferences(e) {
|
|
2989
|
-
let t = new Map(
|
|
2990
|
-
for (let r of
|
|
2999
|
+
let t = new Map(Zi.map((e) => [e, null])), n = this.getRules();
|
|
3000
|
+
for (let r of Zi) {
|
|
2991
3001
|
let i = e;
|
|
2992
3002
|
for (; i && t.get(r) === null;) {
|
|
2993
|
-
let e, a =
|
|
3003
|
+
let e, a = na(i.style.getPropertyValue(r));
|
|
2994
3004
|
a && (e = {
|
|
2995
3005
|
name: a,
|
|
2996
3006
|
specificity: 2 ** 53 - 1,
|
|
@@ -3006,15 +3016,15 @@ var Ri = "var(--msr-color-ink-50, #f8fafc)", zi = "var(--msr-color-ink-200, #e2e
|
|
|
3006
3016
|
continue;
|
|
3007
3017
|
}
|
|
3008
3018
|
if (!n) continue;
|
|
3009
|
-
let s =
|
|
3019
|
+
let s = na(t.style.getPropertyValue(r));
|
|
3010
3020
|
if (!s) continue;
|
|
3011
3021
|
let c = {
|
|
3012
3022
|
name: s,
|
|
3013
|
-
specificity:
|
|
3023
|
+
specificity: ra(t.selectorText),
|
|
3014
3024
|
order: o,
|
|
3015
3025
|
important: t.style.getPropertyPriority(r) === "important"
|
|
3016
3026
|
};
|
|
3017
|
-
|
|
3027
|
+
ia(c, e) && (e = c);
|
|
3018
3028
|
}
|
|
3019
3029
|
e && t.set(r, e.name), i = i.parentElement;
|
|
3020
3030
|
}
|
|
@@ -3025,27 +3035,27 @@ var Ri = "var(--msr-color-ink-50, #f8fafc)", zi = "var(--msr-color-ink-200, #e2e
|
|
|
3025
3035
|
let t = this.window.getComputedStyle(e), n = [
|
|
3026
3036
|
{
|
|
3027
3037
|
label: "Family",
|
|
3028
|
-
value:
|
|
3038
|
+
value: ea(t.fontFamily),
|
|
3029
3039
|
varName: null
|
|
3030
3040
|
},
|
|
3031
3041
|
{
|
|
3032
3042
|
label: "Size",
|
|
3033
|
-
value:
|
|
3043
|
+
value: $i(t.fontSize),
|
|
3034
3044
|
varName: null
|
|
3035
3045
|
},
|
|
3036
3046
|
{
|
|
3037
3047
|
label: "Weight",
|
|
3038
|
-
value:
|
|
3048
|
+
value: ta(t.fontWeight),
|
|
3039
3049
|
varName: null
|
|
3040
3050
|
},
|
|
3041
3051
|
{
|
|
3042
3052
|
label: "Line",
|
|
3043
|
-
value: t.lineHeight === "normal" ? "normal" :
|
|
3053
|
+
value: t.lineHeight === "normal" ? "normal" : $i(t.lineHeight),
|
|
3044
3054
|
varName: null
|
|
3045
3055
|
},
|
|
3046
3056
|
{
|
|
3047
3057
|
label: "Tracking",
|
|
3048
|
-
value: t.letterSpacing === "normal" ? "normal" :
|
|
3058
|
+
value: t.letterSpacing === "normal" ? "normal" : $i(t.letterSpacing),
|
|
3049
3059
|
varName: null
|
|
3050
3060
|
}
|
|
3051
3061
|
], r = Array.from(e.childNodes).filter((e) => e.nodeType === Node.TEXT_NODE).map((e) => e.nodeValue?.trim() ?? "").filter(Boolean).join(" ").replace(/\s+/g, " ");
|
|
@@ -3060,7 +3070,7 @@ var Ri = "var(--msr-color-ink-50, #f8fafc)", zi = "var(--msr-color-ink-200, #e2e
|
|
|
3060
3070
|
return {
|
|
3061
3071
|
...t,
|
|
3062
3072
|
rows: t.rows.map((e) => {
|
|
3063
|
-
let t =
|
|
3073
|
+
let t = Qi.get(e.label);
|
|
3064
3074
|
return {
|
|
3065
3075
|
...e,
|
|
3066
3076
|
varName: t ? n.get(t) ?? null : null
|
|
@@ -3068,7 +3078,7 @@ var Ri = "var(--msr-color-ink-50, #f8fafc)", zi = "var(--msr-color-ink-200, #e2e
|
|
|
3068
3078
|
})
|
|
3069
3079
|
};
|
|
3070
3080
|
}
|
|
3071
|
-
},
|
|
3081
|
+
}, oa = [
|
|
3072
3082
|
"HTML",
|
|
3073
3083
|
"BODY",
|
|
3074
3084
|
"SCRIPT",
|
|
@@ -3080,7 +3090,7 @@ var Ri = "var(--msr-color-ink-50, #f8fafc)", zi = "var(--msr-color-ink-200, #e2e
|
|
|
3080
3090
|
"VIDEO",
|
|
3081
3091
|
"AUDIO",
|
|
3082
3092
|
"IFRAME"
|
|
3083
|
-
],
|
|
3093
|
+
], sa = "color-mix(in oklch, oklch(0.62 0.18 255) 8%, transparent)", ca = "color-mix(in oklch, oklch(0.62 0.18 255) 80%, transparent)", la = "color-mix(in oklch, oklch(0.62 0.18 255) 4%, transparent)", ua = "color-mix(in oklch, oklch(0.62 0.18 255) 35%, transparent)", da = 80, fa = 0, pa = (e, t) => `
|
|
3084
3094
|
.${e},.${e} *{cursor:help!important}
|
|
3085
3095
|
.${e} [data-mesurer-root],.${e} [data-mesurer-root] *{cursor:auto!important}
|
|
3086
3096
|
#${t} .mesurer-ti-card{transform:translateX(-50%);opacity:1;transition:none!important;animation:none!important}
|
|
@@ -3091,7 +3101,7 @@ var Ri = "var(--msr-color-ink-50, #f8fafc)", zi = "var(--msr-color-ink-200, #e2e
|
|
|
3091
3101
|
#${t} .mesurer-ti-close{cursor:pointer}
|
|
3092
3102
|
#${t} .mesurer-ti-close:hover{background:color-mix(in srgb,var(--msr-content,#0f172a) 6%,transparent)!important;color:var(--msr-content,#0f172a)!important}
|
|
3093
3103
|
`;
|
|
3094
|
-
function
|
|
3104
|
+
function ma(e = {}, t = !1) {
|
|
3095
3105
|
let n = e.portalTarget?.ownerDocument ?? globalThis.document, r = n?.defaultView ?? globalThis.window;
|
|
3096
3106
|
if (!n || !r) {
|
|
3097
3107
|
let e = () => {};
|
|
@@ -3109,7 +3119,7 @@ function fa(e = {}, t = !1) {
|
|
|
3109
3119
|
canRedo: () => !1
|
|
3110
3120
|
};
|
|
3111
3121
|
}
|
|
3112
|
-
let i = (e.id ?? (t ? "mesurer-text-inspector" : `mesurer-text-inspector-${++
|
|
3122
|
+
let i = (e.id ?? (t ? "mesurer-text-inspector" : `mesurer-text-inspector-${++fa}`)).replace(/[^a-zA-Z0-9_-]/g, "-"), a = `${i}-overlay`, o = `${i}-styles`, s = `${i}-mode`, c = new Set((e.ignoredTags ?? oa).map((e) => e.toUpperCase())), l = Number.isFinite(e.maxPinned) ? Math.max(1, Math.floor(e.maxPinned)) : Infinity, u = new aa(n, r), d = r.HTMLElement, f = r.SVGElement, p = r.Node, m = !1, h = null, g = null, _ = null, v = null, y = {
|
|
3113
3123
|
x: 0,
|
|
3114
3124
|
y: 0
|
|
3115
3125
|
}, b = 0, x = 0, S = 0, C = r.scrollX, w = r.scrollY, T = null, E = [], D = [], O = [], k = e.portalTarget ?? n.body, A = () => {
|
|
@@ -3118,7 +3128,7 @@ function fa(e = {}, t = !1) {
|
|
|
3118
3128
|
for (let t of e) {
|
|
3119
3129
|
if (t.querySelector(`#${o}`)) continue;
|
|
3120
3130
|
let e = n.createElement("style");
|
|
3121
|
-
e.id = o, e.textContent =
|
|
3131
|
+
e.id = o, e.textContent = pa(s, a), t === n ? n.head.append(e) : t.append(e);
|
|
3122
3132
|
}
|
|
3123
3133
|
}, j = () => h?.isConnected ? h : (h = n.createElement("div"), h.id = a, h.dataset.mesurerInspectorUi = "true", h.dataset.theme = e.theme?.() ?? "system", T ??= e.subscribeTheme?.((e) => {
|
|
3124
3134
|
h && (h.dataset.theme = e);
|
|
@@ -3131,17 +3141,23 @@ function fa(e = {}, t = !1) {
|
|
|
3131
3141
|
e && (e.dataset.state = t ? "visible" : "hidden");
|
|
3132
3142
|
}, ee = () => {
|
|
3133
3143
|
let e = j();
|
|
3134
|
-
g ??=
|
|
3135
|
-
}, N = (e) => Array.from(e.childNodes).some((e) => e.nodeType === p.TEXT_NODE && !!e.nodeValue?.trim()), P = (e) => !!e && e instanceof d && !(e instanceof f) && !c.has(e.tagName) && N(e) && !e.closest("[data-mesurer-root]"), F = (e, t) =>
|
|
3144
|
+
g ??= Gi(n, sa, ca), _ ??= qi(n, !1), g.parentNode || e.append(g), _.parentNode || e.append(_);
|
|
3145
|
+
}, N = (e) => Array.from(e.childNodes).some((e) => e.nodeType === p.TEXT_NODE && !!e.nodeValue?.trim()), P = (e) => !!e && e instanceof d && !(e instanceof f) && !c.has(e.tagName) && N(e) && !e.closest("[data-mesurer-root], [data-mesurer-inspector-ui='true']"), F = (e, t) => {
|
|
3146
|
+
for (let i of n.elementsFromPoint(e, t)) {
|
|
3147
|
+
if (Kr(i, r)) return null;
|
|
3148
|
+
if (P(i)) return i;
|
|
3149
|
+
}
|
|
3150
|
+
return null;
|
|
3151
|
+
}, te = () => {
|
|
3136
3152
|
v = null, M(g, !1), M(_, !1);
|
|
3137
3153
|
}, I = (t) => {
|
|
3138
3154
|
if (!m || !P(t)) return !1;
|
|
3139
3155
|
ee();
|
|
3140
3156
|
let i = t.getBoundingClientRect(), a = u.getFast(t);
|
|
3141
|
-
return v = t,
|
|
3157
|
+
return v = t, Ji(n, _, a, !1), Ki(g, i), Yi(r, _, i), M(g, !0), M(_, !0), r.clearTimeout(x), x = r.setTimeout(() => {
|
|
3142
3158
|
if (!m || v !== t || !_) return;
|
|
3143
3159
|
let i = u.getFull(t, a);
|
|
3144
|
-
|
|
3160
|
+
Ji(n, _, i, !1), Yi(r, _, t.getBoundingClientRect()), e.onInspect?.(t, i);
|
|
3145
3161
|
}, 24), !0;
|
|
3146
3162
|
}, L = () => E.map((e) => ({
|
|
3147
3163
|
sourceEl: e.sourceEl,
|
|
@@ -3173,12 +3189,12 @@ function fa(e = {}, t = !1) {
|
|
|
3173
3189
|
}, ne = (t, i, a = !0, o = !0) => {
|
|
3174
3190
|
if (E.find((e) => e.sourceEl === t)) return;
|
|
3175
3191
|
a && R(), E.length >= l && z(E[0], !1, !0);
|
|
3176
|
-
let s = j(), c =
|
|
3192
|
+
let s = j(), c = Gi(n, la, ua), d = qi(n, !0);
|
|
3177
3193
|
d.classList.add("mesurer-ti-card--draggable"), d.classList.remove("mesurer-ti-card--pinned");
|
|
3178
3194
|
let f = u.getFull(t);
|
|
3179
|
-
|
|
3195
|
+
Ji(n, d, f, !0), s.append(c, d);
|
|
3180
3196
|
let p = t.getBoundingClientRect();
|
|
3181
|
-
|
|
3197
|
+
Ki(c, p), Yi(r, d, p), i?.userPlaced && (d.classList.add("mesurer-ti-card--pinned"), d.style.left = `${i.left}px`, d.style.top = `${i.top}px`), M(c, !0), M(d, !0);
|
|
3182
3198
|
let m = {
|
|
3183
3199
|
sourceEl: t,
|
|
3184
3200
|
box: c,
|
|
@@ -3209,7 +3225,7 @@ function fa(e = {}, t = !1) {
|
|
|
3209
3225
|
continue;
|
|
3210
3226
|
}
|
|
3211
3227
|
let t = e.sourceEl.getBoundingClientRect();
|
|
3212
|
-
|
|
3228
|
+
Ki(e.box, t), e.userPlaced || Yi(r, e.card, t);
|
|
3213
3229
|
let n = t.bottom >= 0 && t.right >= 0 && t.left <= r.innerWidth && t.top <= r.innerHeight;
|
|
3214
3230
|
M(e.box, n), M(e.card, n), e.card.style.pointerEvents = n ? "auto" : "none";
|
|
3215
3231
|
}
|
|
@@ -3219,7 +3235,7 @@ function fa(e = {}, t = !1) {
|
|
|
3219
3235
|
if (!v.isConnected) te();
|
|
3220
3236
|
else {
|
|
3221
3237
|
let e = v.getBoundingClientRect();
|
|
3222
|
-
|
|
3238
|
+
Ki(g, e), Yi(r, _, e);
|
|
3223
3239
|
let t = e.bottom >= 0 && e.right >= 0 && e.left <= r.innerWidth && e.top <= r.innerHeight;
|
|
3224
3240
|
M(g, t), M(_, t);
|
|
3225
3241
|
}
|
|
@@ -3233,51 +3249,55 @@ function fa(e = {}, t = !1) {
|
|
|
3233
3249
|
else if (e !== v) I(e);
|
|
3234
3250
|
else if (g && _) {
|
|
3235
3251
|
let t = e.getBoundingClientRect();
|
|
3236
|
-
|
|
3252
|
+
Ki(g, t), Yi(r, _, t);
|
|
3237
3253
|
}
|
|
3238
3254
|
ae();
|
|
3239
3255
|
}, se = () => {
|
|
3240
3256
|
b ||= r.requestAnimationFrame(() => {
|
|
3241
3257
|
b = 0, oe();
|
|
3242
3258
|
});
|
|
3243
|
-
}, ce = (e) => {
|
|
3244
|
-
y = {
|
|
3259
|
+
}, ce = (e) => e.composedPath().some((e) => Kr(e, r)), le = (e) => {
|
|
3260
|
+
if (y = {
|
|
3245
3261
|
x: e.clientX,
|
|
3246
3262
|
y: e.clientY
|
|
3247
|
-
},
|
|
3248
|
-
|
|
3263
|
+
}, ce(e)) {
|
|
3264
|
+
te();
|
|
3265
|
+
return;
|
|
3266
|
+
}
|
|
3267
|
+
se();
|
|
3268
|
+
}, ue = (e, t, n) => {
|
|
3249
3269
|
if (!e || e.dataset.mesurerNativeScrollAnchor) return;
|
|
3250
3270
|
let r = Number.parseFloat(e.style.left), i = Number.parseFloat(e.style.top);
|
|
3251
3271
|
Number.isFinite(r) && (e.style.left = `${r - t}px`), Number.isFinite(i) && (e.style.top = `${i - n}px`);
|
|
3252
|
-
},
|
|
3272
|
+
}, de = () => {
|
|
3253
3273
|
let e = r.scrollX, t = r.scrollY, i = e - C, a = t - w;
|
|
3254
|
-
if (C = e, w = t,
|
|
3274
|
+
if (C = e, w = t, Jr(n)) {
|
|
3255
3275
|
if (i || a) {
|
|
3256
|
-
|
|
3257
|
-
for (let e of E)
|
|
3276
|
+
ue(g, i, a), ue(_, i, a);
|
|
3277
|
+
for (let e of E) ue(e.box, i, a), e.userPlaced || ue(e.card, i, a);
|
|
3258
3278
|
}
|
|
3259
3279
|
S && r.clearTimeout(S), S = r.setTimeout(() => {
|
|
3260
3280
|
S = 0, W();
|
|
3261
|
-
},
|
|
3281
|
+
}, da);
|
|
3262
3282
|
return;
|
|
3263
3283
|
}
|
|
3264
3284
|
W(), se();
|
|
3265
|
-
},
|
|
3285
|
+
}, fe = (e) => {
|
|
3266
3286
|
e.relatedTarget || te();
|
|
3267
|
-
},
|
|
3268
|
-
if (!
|
|
3287
|
+
}, pe = (e) => {
|
|
3288
|
+
if (!ce(e) && (e.preventDefault(), e.stopImmediatePropagation(), e.button === 0)) {
|
|
3269
3289
|
let t = F(e.clientX, e.clientY);
|
|
3270
3290
|
t && ne(t);
|
|
3271
3291
|
}
|
|
3272
3292
|
}, me = (e) => {
|
|
3273
|
-
|
|
3293
|
+
ce(e) || (e.preventDefault(), e.stopImmediatePropagation());
|
|
3274
3294
|
}, he = () => {
|
|
3275
|
-
m || (m = !0, A(), j(), n.body.classList.add(s), C = r.scrollX, w = r.scrollY, r.addEventListener("mousemove",
|
|
3295
|
+
m || (m = !0, A(), j(), n.body.classList.add(s), C = r.scrollX, w = r.scrollY, r.addEventListener("mousemove", le, !0), r.addEventListener("mouseout", fe, !0), r.addEventListener("click", pe, !0), r.addEventListener("auxclick", me, !0), r.addEventListener("scroll", de, {
|
|
3276
3296
|
capture: !0,
|
|
3277
3297
|
passive: !0
|
|
3278
3298
|
}), r.addEventListener("resize", se, !0));
|
|
3279
3299
|
}, ge = () => {
|
|
3280
|
-
m && (m = !1, r.cancelAnimationFrame(b), b = 0, r.clearTimeout(x), r.clearTimeout(S), S = 0, r.removeEventListener("mousemove",
|
|
3300
|
+
m && (m = !1, r.cancelAnimationFrame(b), b = 0, r.clearTimeout(x), r.clearTimeout(S), S = 0, r.removeEventListener("mousemove", le, !0), r.removeEventListener("mouseout", fe, !0), r.removeEventListener("click", pe, !0), r.removeEventListener("auxclick", me, !0), r.removeEventListener("scroll", de, !0), r.removeEventListener("resize", se, !0), te(), B(), g?.remove(), _?.remove(), g = null, _ = null, D.length = 0, O.length = 0, n.body.classList.remove(s));
|
|
3281
3301
|
}, _e = () => {
|
|
3282
3302
|
ge(), T?.(), T = null, h?.remove(), h = null, n.getElementById(o)?.remove(), k instanceof r.ShadowRoot && k.querySelector(`#${o}`)?.remove();
|
|
3283
3303
|
};
|
|
@@ -3295,24 +3315,24 @@ function fa(e = {}, t = !1) {
|
|
|
3295
3315
|
destroy: _e
|
|
3296
3316
|
};
|
|
3297
3317
|
}
|
|
3298
|
-
|
|
3299
|
-
var pa = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@layer properties;\n@layer theme, base, components, utilities;\n@layer theme {\n :root, :host {\n --msr-font-sans: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\",\n \"Noto Sans\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\",\n \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --msr-font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\",\n \"Courier New\", monospace;\n --msr-color-red-50: oklch(97.1% 0.013 17.38);\n --msr-color-red-200: oklch(88.5% 0.062 18.334);\n --msr-color-red-600: oklch(57.7% 0.245 27.325);\n --msr-color-black: #000;\n --msr-color-white: #fff;\n --msr-spacing: 0.25rem;\n --msr-font-weight-normal: 400;\n --msr-font-weight-medium: 500;\n --msr-font-weight-semibold: 600;\n --msr-radius-md: 0.375rem;\n --msr-radius-lg: 0.5rem;\n --msr-default-transition-duration: 150ms;\n --msr-default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --msr-default-font-family: var(--msr-font-sans);\n --msr-default-mono-font-family: var(--msr-font-mono);\n --msr-color-ink-50: #f8fafc;\n --msr-color-ink-200: #e2e8f0;\n --msr-color-ink-500: #64748b;\n --msr-color-ink-700: #334155;\n --msr-color-ink-900: #0f172a;\n }\n}\n@layer base {\n *, ::after, ::before, ::backdrop, ::file-selector-button {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n }\n html, :host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n font-family: var(--msr-default-font-family, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");\n font-feature-settings: var(--msr-default-font-feature-settings, normal);\n font-variation-settings: var(--msr-default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n h1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n b, strong {\n font-weight: bolder;\n }\n code, kbd, samp, pre {\n font-family: var(--msr-default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);\n font-feature-settings: var(--msr-default-mono-font-feature-settings, normal);\n font-variation-settings: var(--msr-default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n small {\n font-size: 80%;\n }\n sub, sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n :-moz-focusring:where(:not(iframe)) {\n outline: auto;\n }\n progress {\n vertical-align: baseline;\n }\n summary {\n display: list-item;\n }\n ol, ul, menu {\n list-style: none;\n }\n img, svg, video, canvas, audio, iframe, embed, object {\n display: block;\n vertical-align: middle;\n }\n img, video {\n max-width: 100%;\n height: auto;\n }\n button, input, select, optgroup, textarea, ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n }\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n ::placeholder {\n opacity: 1;\n }\n @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\n ::placeholder {\n color: currentcolor;\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n textarea {\n resize: vertical;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n ::-webkit-calendar-picker-indicator {\n line-height: 1;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n button, input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]), ::file-selector-button {\n appearance: button;\n }\n ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {\n height: auto;\n }\n [hidden]:where(:not([hidden=\"until-found\"])) {\n display: none !important;\n }\n}\n@layer utilities {\n .msr\\:pointer-events-auto {\n pointer-events: auto;\n }\n .msr\\:pointer-events-none {\n pointer-events: none;\n }\n .msr\\:absolute {\n position: absolute;\n }\n .msr\\:fixed {\n position: fixed;\n }\n .msr\\:relative {\n position: relative;\n }\n .msr\\:inset-0 {\n inset: 0px;\n }\n .msr\\:top-0 {\n top: 0px;\n }\n .msr\\:top-1\\/2 {\n top: calc(1 / 2 * 100%);\n }\n .msr\\:top-\\[18px\\] {\n top: 18px;\n }\n .msr\\:top-full {\n top: 100%;\n }\n .msr\\:right-0 {\n right: 0px;\n }\n .msr\\:right-2 {\n right: calc(var(--msr-spacing) * 2);\n }\n .msr\\:right-\\[8px\\] {\n right: 8px;\n }\n .msr\\:bottom-0 {\n bottom: 0px;\n }\n .msr\\:bottom-full {\n bottom: 100%;\n }\n .msr\\:left-0 {\n left: 0px;\n }\n .msr\\:left-1\\/2 {\n left: calc(1 / 2 * 100%);\n }\n .msr\\:left-\\[8px\\] {\n left: 8px;\n }\n .msr\\:left-\\[18px\\] {\n left: 18px;\n }\n .msr\\:z-10 {\n z-index: 10;\n }\n .msr\\:z-\\[60\\] {\n z-index: 60;\n }\n .msr\\:z-\\[70\\] {\n z-index: 70;\n }\n .msr\\:z-\\[80\\] {\n z-index: 80;\n }\n .msr\\:z-\\[90\\] {\n z-index: 90;\n }\n .msr\\:z-\\[94\\] {\n z-index: 94;\n }\n .msr\\:z-\\[95\\] {\n z-index: 95;\n }\n .msr\\:col-span-2 {\n grid-column: span 2 / span 2;\n }\n .msr\\:col-start-1 {\n grid-column-start: 1;\n }\n .msr\\:col-start-2 {\n grid-column-start: 2;\n }\n .msr\\:col-start-3 {\n grid-column-start: 3;\n }\n .msr\\:m-0 {\n margin: 0px;\n }\n .msr\\:mx-1 {\n margin-inline: var(--msr-spacing);\n }\n .msr\\:mt-1 {\n margin-top: var(--msr-spacing);\n }\n .msr\\:mt-1\\.5 {\n margin-top: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:mt-2 {\n margin-top: calc(var(--msr-spacing) * 2);\n }\n .msr\\:mb-1 {\n margin-bottom: var(--msr-spacing);\n }\n .msr\\:mb-2 {\n margin-bottom: calc(var(--msr-spacing) * 2);\n }\n .msr\\:-ml-1 {\n margin-left: calc(var(--msr-spacing) * -1);\n }\n .msr\\:ml-1 {\n margin-left: var(--msr-spacing);\n }\n .msr\\:ml-2 {\n margin-left: calc(var(--msr-spacing) * 2);\n }\n .msr\\:ml-6 {\n margin-left: calc(var(--msr-spacing) * 6);\n }\n .msr\\:box-border {\n box-sizing: border-box;\n }\n .msr\\:block {\n display: block;\n }\n .msr\\:flex {\n display: flex;\n }\n .msr\\:grid {\n display: grid;\n }\n .msr\\:inline-flex {\n display: inline-flex;\n }\n .msr\\:size-1\\.5 {\n width: calc(var(--msr-spacing) * 1.5);\n height: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:size-3 {\n width: calc(var(--msr-spacing) * 3);\n height: calc(var(--msr-spacing) * 3);\n }\n .msr\\:size-4 {\n width: calc(var(--msr-spacing) * 4);\n height: calc(var(--msr-spacing) * 4);\n }\n .msr\\:size-6 {\n width: calc(var(--msr-spacing) * 6);\n height: calc(var(--msr-spacing) * 6);\n }\n .msr\\:size-7 {\n width: calc(var(--msr-spacing) * 7);\n height: calc(var(--msr-spacing) * 7);\n }\n .msr\\:size-8 {\n width: calc(var(--msr-spacing) * 8);\n height: calc(var(--msr-spacing) * 8);\n }\n .msr\\:size-\\[10px\\] {\n width: 10px;\n height: 10px;\n }\n .msr\\:size-\\[18px\\] {\n width: 18px;\n height: 18px;\n }\n .msr\\:size-full {\n width: 100%;\n height: 100%;\n }\n .msr\\:h-5 {\n height: calc(var(--msr-spacing) * 5);\n }\n .msr\\:h-6 {\n height: calc(var(--msr-spacing) * 6);\n }\n .msr\\:h-7 {\n height: calc(var(--msr-spacing) * 7);\n }\n .msr\\:h-8 {\n height: calc(var(--msr-spacing) * 8);\n }\n .msr\\:h-20 {\n height: calc(var(--msr-spacing) * 20);\n }\n .msr\\:h-\\[14px\\] {\n height: 14px;\n }\n .msr\\:h-\\[18px\\] {\n height: 18px;\n }\n .msr\\:h-\\[19px\\] {\n height: 19px;\n }\n .msr\\:h-full {\n height: 100%;\n }\n .msr\\:h-px {\n height: 1px;\n }\n .msr\\:max-h-36 {\n max-height: calc(var(--msr-spacing) * 36);\n }\n .msr\\:max-h-\\[220px\\] {\n max-height: 220px;\n }\n .msr\\:max-h-\\[calc\\(100vh-16px\\)\\] {\n max-height: calc(100vh - 16px);\n }\n .msr\\:max-h-\\[min\\(70vh\\,34rem\\)\\] {\n max-height: min(70vh, 34rem);\n }\n .msr\\:max-h-\\[min\\(320px\\,calc\\(100vh-16px\\)\\)\\] {\n max-height: min(320px, calc(100vh - 16px));\n }\n .msr\\:min-h-0 {\n min-height: 0px;\n }\n .msr\\:w-0 {\n width: 0px;\n }\n .msr\\:w-3 {\n width: calc(var(--msr-spacing) * 3);\n }\n .msr\\:w-4 {\n width: calc(var(--msr-spacing) * 4);\n }\n .msr\\:w-5 {\n width: calc(var(--msr-spacing) * 5);\n }\n .msr\\:w-6 {\n width: calc(var(--msr-spacing) * 6);\n }\n .msr\\:w-9 {\n width: calc(var(--msr-spacing) * 9);\n }\n .msr\\:w-12 {\n width: calc(var(--msr-spacing) * 12);\n }\n .msr\\:w-44 {\n width: calc(var(--msr-spacing) * 44);\n }\n .msr\\:w-60 {\n width: calc(var(--msr-spacing) * 60);\n }\n .msr\\:w-\\[18px\\] {\n width: 18px;\n }\n .msr\\:w-\\[26px\\] {\n width: 26px;\n }\n .msr\\:w-\\[272px\\] {\n width: 272px;\n }\n .msr\\:w-full {\n width: 100%;\n }\n .msr\\:w-px {\n width: 1px;\n }\n .msr\\:max-w-0 {\n max-width: 0px;\n }\n .msr\\:max-w-20 {\n max-width: calc(var(--msr-spacing) * 20);\n }\n .msr\\:max-w-\\[calc\\(100vw-16px\\)\\] {\n max-width: calc(100vw - 16px);\n }\n .msr\\:min-w-0 {\n min-width: 0px;\n }\n .msr\\:min-w-36 {\n min-width: calc(var(--msr-spacing) * 36);\n }\n .msr\\:flex-1 {\n flex: 1;\n }\n .msr\\:flex-none {\n flex: none;\n }\n .msr\\:shrink-0 {\n flex-shrink: 0;\n }\n .msr\\:-translate-x-1 {\n --tw-translate-x: calc(var(--msr-spacing) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .msr\\:-translate-x-1\\/2 {\n --tw-translate-x: calc(calc(1 / 2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .msr\\:translate-x-0 {\n --tw-translate-x: 0px;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .msr\\:-translate-y-1\\/2 {\n --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .msr\\:-rotate-90 {\n rotate: calc(90deg * -1);\n }\n .msr\\:rotate-45 {\n rotate: 45deg;\n }\n .msr\\:rotate-90 {\n rotate: 90deg;\n }\n .msr\\:rotate-180 {\n rotate: 180deg;\n }\n .msr\\:rotate-\\[45deg\\] {\n rotate: 45deg;\n }\n .msr\\:rotate-\\[135deg\\] {\n rotate: 135deg;\n }\n .msr\\:cursor-crosshair {\n cursor: crosshair;\n }\n .msr\\:cursor-default {\n cursor: default;\n }\n .msr\\:cursor-pointer {\n cursor: pointer;\n }\n .msr\\:touch-none {\n touch-action: none;\n }\n .msr\\:resize-none {\n resize: none;\n }\n .msr\\:list-none {\n list-style-type: none;\n }\n .msr\\:appearance-none {\n appearance: none;\n }\n .msr\\:grid-cols-\\[78px_150px\\] {\n grid-template-columns: 78px 150px;\n }\n .msr\\:grid-cols-\\[78px_156px\\] {\n grid-template-columns: 78px 156px;\n }\n .msr\\:grid-cols-\\[78px_minmax\\(0\\,1fr\\)\\] {\n grid-template-columns: 78px minmax(0,1fr);\n }\n .msr\\:grid-cols-\\[minmax\\(0\\,1fr\\)_28px_34px\\] {\n grid-template-columns: minmax(0,1fr) 28px 34px;\n }\n .msr\\:flex-col {\n flex-direction: column;\n }\n .msr\\:items-center {\n align-items: center;\n }\n .msr\\:items-start {\n align-items: flex-start;\n }\n .msr\\:items-stretch {\n align-items: stretch;\n }\n .msr\\:justify-between {\n justify-content: space-between;\n }\n .msr\\:justify-center {\n justify-content: center;\n }\n .msr\\:justify-end {\n justify-content: flex-end;\n }\n .msr\\:gap-0 {\n gap: 0px;\n }\n .msr\\:gap-0\\.5 {\n gap: calc(var(--msr-spacing) * 0.5);\n }\n .msr\\:gap-1 {\n gap: var(--msr-spacing);\n }\n .msr\\:gap-1\\.5 {\n gap: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:gap-2 {\n gap: calc(var(--msr-spacing) * 2);\n }\n .msr\\:gap-3 {\n gap: calc(var(--msr-spacing) * 3);\n }\n .msr\\:gap-px {\n gap: 1px;\n }\n .msr\\:gap-x-3 {\n column-gap: calc(var(--msr-spacing) * 3);\n }\n .msr\\:gap-y-1 {\n row-gap: var(--msr-spacing);\n }\n .msr\\:self-stretch {\n align-self: stretch;\n }\n .msr\\:justify-self-end {\n justify-self: flex-end;\n }\n .msr\\:truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .msr\\:overflow-auto {\n overflow: auto;\n }\n .msr\\:overflow-hidden {\n overflow: hidden;\n }\n .msr\\:overflow-visible {\n overflow: visible;\n }\n .msr\\:overflow-x-hidden {\n overflow-x: hidden;\n }\n .msr\\:overflow-y-auto {\n overflow-y: auto;\n }\n .msr\\:rounded {\n border-radius: 0.25rem;\n }\n .msr\\:rounded-\\[3px\\] {\n border-radius: 3px;\n }\n .msr\\:rounded-\\[5px\\] {\n border-radius: 5px;\n }\n .msr\\:rounded-\\[6px\\] {\n border-radius: 6px;\n }\n .msr\\:rounded-\\[7px\\] {\n border-radius: 7px;\n }\n .msr\\:rounded-\\[8px\\] {\n border-radius: 8px;\n }\n .msr\\:rounded-\\[10px\\] {\n border-radius: 10px;\n }\n .msr\\:rounded-\\[12px\\] {\n border-radius: 12px;\n }\n .msr\\:rounded-full {\n border-radius: calc(infinity * 1px);\n }\n .msr\\:rounded-lg {\n border-radius: var(--msr-radius-lg);\n }\n .msr\\:rounded-md {\n border-radius: var(--msr-radius-md);\n }\n .msr\\:rounded-none {\n border-radius: 0;\n }\n .msr\\:border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .msr\\:border-0 {\n border-style: var(--tw-border-style);\n border-width: 0px;\n }\n .msr\\:border-t {\n border-top-style: var(--tw-border-style);\n border-top-width: 1px;\n }\n .msr\\:border-t-2 {\n border-top-style: var(--tw-border-style);\n border-top-width: 2px;\n }\n .msr\\:border-r {\n border-right-style: var(--tw-border-style);\n border-right-width: 1px;\n }\n .msr\\:border-b {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n .msr\\:border-l {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n .msr\\:border-dashed {\n --tw-border-style: dashed;\n border-style: dashed;\n }\n .msr\\:border-dotted {\n --tw-border-style: dotted;\n border-style: dotted;\n }\n .msr\\:border-solid {\n --tw-border-style: solid;\n border-style: solid;\n }\n .msr\\:border-\\[\\#0d99ff\\] {\n border-color: #0d99ff;\n }\n .msr\\:border-\\[\\#2563eb\\]\\/70 {\n border-color: color-mix(in oklab, #2563eb 70%, transparent);\n }\n .msr\\:border-black\\/8 {\n border-color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--msr-color-black) 8%, transparent);\n }\n }\n .msr\\:border-black\\/10 {\n border-color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--msr-color-black) 10%, transparent);\n }\n }\n .msr\\:border-black\\/15 {\n border-color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--msr-color-black) 15%, transparent);\n }\n }\n .msr\\:border-ink-200 {\n border-color: var(--msr-color-ink-200);\n }\n .msr\\:border-ink-500 {\n border-color: var(--msr-color-ink-500);\n }\n .msr\\:border-ink-700 {\n border-color: var(--msr-color-ink-700);\n }\n .msr\\:border-red-200 {\n border-color: var(--msr-color-red-200);\n }\n .msr\\:border-transparent {\n border-color: transparent;\n }\n .msr\\:bg-\\[\\#0d99ff\\] {\n background-color: #0d99ff;\n }\n .msr\\:bg-\\[\\#0d99ff\\]\\/10 {\n background-color: color-mix(in oklab, #0d99ff 10%, transparent);\n }\n .msr\\:bg-\\[\\#2563eb\\] {\n background-color: #2563eb;\n }\n .msr\\:bg-\\[\\#fff\\] {\n background-color: #fff;\n }\n .msr\\:bg-black {\n background-color: var(--msr-color-black);\n }\n .msr\\:bg-black\\/10 {\n background-color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--msr-color-black) 10%, transparent);\n }\n }\n .msr\\:bg-ink-50 {\n background-color: var(--msr-color-ink-50);\n }\n .msr\\:bg-ink-50\\/40 {\n background-color: var(--msr-color-ink-50);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--msr-color-ink-50) 40%, transparent);\n }\n }\n .msr\\:bg-ink-900\\/90 {\n background-color: var(--msr-color-ink-900);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--msr-color-ink-900) 90%, transparent);\n }\n }\n .msr\\:bg-transparent {\n background-color: transparent;\n }\n .msr\\:bg-white {\n background-color: var(--msr-color-white);\n }\n .msr\\:bg-white\\/60 {\n background-color: var(--msr-color-white);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--msr-color-white) 60%, transparent);\n }\n }\n .msr\\:p-0 {\n padding: 0px;\n }\n .msr\\:p-1 {\n padding: var(--msr-spacing);\n }\n .msr\\:p-1\\.5 {\n padding: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:p-2 {\n padding: calc(var(--msr-spacing) * 2);\n }\n .msr\\:p-3 {\n padding: calc(var(--msr-spacing) * 3);\n }\n .msr\\:p-px {\n padding: 1px;\n }\n .msr\\:px-0 {\n padding-inline: 0px;\n }\n .msr\\:px-0\\.5 {\n padding-inline: calc(var(--msr-spacing) * 0.5);\n }\n .msr\\:px-1 {\n padding-inline: var(--msr-spacing);\n }\n .msr\\:px-1\\.5 {\n padding-inline: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:px-2 {\n padding-inline: calc(var(--msr-spacing) * 2);\n }\n .msr\\:px-2\\.5 {\n padding-inline: calc(var(--msr-spacing) * 2.5);\n }\n .msr\\:py-0 {\n padding-block: 0px;\n }\n .msr\\:py-0\\.5 {\n padding-block: calc(var(--msr-spacing) * 0.5);\n }\n .msr\\:py-1 {\n padding-block: var(--msr-spacing);\n }\n .msr\\:py-1\\.5 {\n padding-block: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:py-2 {\n padding-block: calc(var(--msr-spacing) * 2);\n }\n .msr\\:pt-2 {\n padding-top: calc(var(--msr-spacing) * 2);\n }\n .msr\\:pr-2 {\n padding-right: calc(var(--msr-spacing) * 2);\n }\n .msr\\:pr-6 {\n padding-right: calc(var(--msr-spacing) * 6);\n }\n .msr\\:pb-1 {\n padding-bottom: var(--msr-spacing);\n }\n .msr\\:pb-2 {\n padding-bottom: calc(var(--msr-spacing) * 2);\n }\n .msr\\:text-center {\n text-align: center;\n }\n .msr\\:text-left {\n text-align: left;\n }\n .msr\\:font-mono {\n font-family: var(--msr-font-mono);\n }\n .msr\\:text-\\[9px\\] {\n font-size: 9px;\n }\n .msr\\:text-\\[10px\\] {\n font-size: 10px;\n }\n .msr\\:text-\\[11px\\] {\n font-size: 11px;\n }\n .msr\\:text-\\[12px\\] {\n font-size: 12px;\n }\n .msr\\:leading-4 {\n --tw-leading: calc(var(--msr-spacing) * 4);\n line-height: calc(var(--msr-spacing) * 4);\n }\n .msr\\:leading-\\[1\\.4\\] {\n --tw-leading: 1.4;\n line-height: 1.4;\n }\n .msr\\:leading-\\[1\\.45\\] {\n --tw-leading: 1.45;\n line-height: 1.45;\n }\n .msr\\:leading-\\[18px\\] {\n --tw-leading: 18px;\n line-height: 18px;\n }\n .msr\\:leading-none {\n --tw-leading: 1;\n line-height: 1;\n }\n .msr\\:font-medium {\n --tw-font-weight: var(--msr-font-weight-medium);\n font-weight: var(--msr-font-weight-medium);\n }\n .msr\\:font-normal {\n --tw-font-weight: var(--msr-font-weight-normal);\n font-weight: var(--msr-font-weight-normal);\n }\n .msr\\:font-semibold {\n --tw-font-weight: var(--msr-font-weight-semibold);\n font-weight: var(--msr-font-weight-semibold);\n }\n .msr\\:text-ellipsis {\n text-overflow: ellipsis;\n }\n .msr\\:whitespace-nowrap {\n white-space: nowrap;\n }\n .msr\\:whitespace-pre-wrap {\n white-space: pre-wrap;\n }\n .msr\\:text-\\[\\#64748b\\] {\n color: #64748b;\n }\n .msr\\:text-black {\n color: var(--msr-color-black);\n }\n .msr\\:text-black\\/30 {\n color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--msr-color-black) 30%, transparent);\n }\n }\n .msr\\:text-black\\/45 {\n color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--msr-color-black) 45%, transparent);\n }\n }\n .msr\\:text-ink-50 {\n color: var(--msr-color-ink-50);\n }\n .msr\\:text-ink-500 {\n color: var(--msr-color-ink-500);\n }\n .msr\\:text-ink-700 {\n color: var(--msr-color-ink-700);\n }\n .msr\\:text-ink-900 {\n color: var(--msr-color-ink-900);\n }\n .msr\\:text-red-600 {\n color: var(--msr-color-red-600);\n }\n .msr\\:text-white {\n color: var(--msr-color-white);\n }\n .msr\\:text-white\\/60 {\n color: var(--msr-color-white);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--msr-color-white) 60%, transparent);\n }\n }\n .msr\\:tabular-nums {\n --tw-numeric-spacing: tabular-nums;\n font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);\n }\n .msr\\:opacity-0 {\n opacity: 0%;\n }\n .msr\\:opacity-60 {\n opacity: 60%;\n }\n .msr\\:opacity-80 {\n opacity: 80%;\n }\n .msr\\:opacity-100 {\n opacity: 100%;\n }\n .msr\\:shadow-lg {\n --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:shadow-sm {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:outline {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n .msr\\:outline-transparent {\n outline-color: transparent;\n }\n .msr\\:transition-\\[max-width\\,opacity\\,transform\\,padding\\] {\n transition-property: max-width,opacity,transform,padding;\n transition-timing-function: var(--tw-ease, var(--msr-default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--msr-default-transition-duration));\n }\n .msr\\:transition-\\[width\\,opacity\\] {\n transition-property: width,opacity;\n transition-timing-function: var(--tw-ease, var(--msr-default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--msr-default-transition-duration));\n }\n .msr\\:transition-colors {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--msr-default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--msr-default-transition-duration));\n }\n .msr\\:transition-opacity {\n transition-property: opacity;\n transition-timing-function: var(--tw-ease, var(--msr-default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--msr-default-transition-duration));\n }\n .msr\\:transition-transform {\n transition-property: transform, translate, scale, rotate;\n transition-timing-function: var(--tw-ease, var(--msr-default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--msr-default-transition-duration));\n }\n .msr\\:transition-none {\n transition-property: none;\n }\n .msr\\:duration-150 {\n --tw-duration: 150ms;\n transition-duration: 150ms;\n }\n .msr\\:ease-\\[ease\\] {\n --tw-ease: ease;\n transition-timing-function: ease;\n }\n .msr\\:outline-none {\n --tw-outline-style: none;\n outline-style: none;\n }\n .msr\\:select-none {\n -webkit-user-select: none;\n user-select: none;\n }\n @media (hover: hover) {\n .msr\\:group-hover\\:border-ink-200:is(:where(.msr\\:group):hover *) {\n border-color: var(--msr-color-ink-200);\n }\n }\n .msr\\:focus-within\\:rounded-l-\\[5px\\]:focus-within {\n border-top-left-radius: 5px;\n border-bottom-left-radius: 5px;\n }\n .msr\\:focus-within\\:rounded-r-\\[5px\\]:focus-within {\n border-top-right-radius: 5px;\n border-bottom-right-radius: 5px;\n }\n .msr\\:focus-within\\:outline:focus-within {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n .msr\\:focus-within\\:outline-1:focus-within {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n .msr\\:focus-within\\:outline-offset-\\[-1px\\]:focus-within {\n outline-offset: -1px;\n }\n .msr\\:focus-within\\:outline-\\[\\#0d99ff\\]:focus-within {\n outline-color: #0d99ff;\n }\n .msr\\:focus-within\\:outline-\\[var\\(--msr-accent\\)\\]:focus-within {\n outline-color: var(--msr-accent);\n }\n @media (hover: hover) {\n .msr\\:hover\\:border-ink-200:hover {\n border-color: var(--msr-color-ink-200);\n }\n .msr\\:hover\\:bg-\\[\\#0b8eea\\]:hover {\n background-color: #0b8eea;\n }\n .msr\\:hover\\:bg-\\[\\#0d99ff\\]:hover {\n background-color: #0d99ff;\n }\n .msr\\:hover\\:bg-black\\/4:hover {\n background-color: var(--msr-color-black);\n }\n @supports (color: color-mix(in lab, red, red)) {\n .msr\\:hover\\:bg-black\\/4:hover {\n background-color: color-mix(in oklab, var(--msr-color-black) 4%, transparent);\n }\n }\n .msr\\:hover\\:bg-black\\/10:hover {\n background-color: var(--msr-color-black);\n }\n @supports (color: color-mix(in lab, red, red)) {\n .msr\\:hover\\:bg-black\\/10:hover {\n background-color: color-mix(in oklab, var(--msr-color-black) 10%, transparent);\n }\n }\n .msr\\:hover\\:bg-ink-50:hover {\n background-color: var(--msr-color-ink-50);\n }\n .msr\\:hover\\:bg-red-50:hover {\n background-color: var(--msr-color-red-50);\n }\n .msr\\:hover\\:text-ink-700:hover {\n color: var(--msr-color-ink-700);\n }\n .msr\\:hover\\:text-ink-900:hover {\n color: var(--msr-color-ink-900);\n }\n .msr\\:hover\\:text-white:hover {\n color: var(--msr-color-white);\n }\n .msr\\:hover\\:underline:hover {\n text-decoration-line: underline;\n }\n }\n .msr\\:focus\\:border-\\[\\#0d99ff\\]:focus {\n border-color: #0d99ff;\n }\n .msr\\:focus\\:shadow-\\[inset_0_0_0_1px_\\#0d99ff\\]:focus {\n --tw-shadow: inset 0 0 0 1px var(--tw-shadow-color, #0d99ff);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:focus\\:shadow-\\[inset_0_0_0_1px_var\\(--msr-accent\\)\\]:focus {\n --tw-shadow: inset 0 0 0 1px var(--tw-shadow-color, var(--msr-accent));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:focus\\:outline-none:focus {\n --tw-outline-style: none;\n outline-style: none;\n }\n .msr\\:focus-visible\\:border-\\[\\#0d99ff\\]:focus-visible {\n border-color: #0d99ff;\n }\n .msr\\:focus-visible\\:bg-\\[\\#0d99ff\\]:focus-visible {\n background-color: #0d99ff;\n }\n .msr\\:focus-visible\\:text-white:focus-visible {\n color: var(--msr-color-white);\n }\n .msr\\:focus-visible\\:shadow-\\[inset_0_0_0_1px_\\#0d99ff\\]:focus-visible {\n --tw-shadow: inset 0 0 0 1px var(--tw-shadow-color, #0d99ff);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:focus-visible\\:shadow-\\[inset_0_0_0_1px_\\#ef4444\\]:focus-visible {\n --tw-shadow: inset 0 0 0 1px var(--tw-shadow-color, #ef4444);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:focus-visible\\:ring-1:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:focus-visible\\:ring-\\[\\#0d99ff\\]\\/25:focus-visible {\n --tw-ring-color: color-mix(in oklab, #0d99ff 25%, transparent);\n }\n .msr\\:focus-visible\\:outline-none:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .msr\\:disabled\\:cursor-default:disabled {\n cursor: default;\n }\n .msr\\:disabled\\:opacity-40:disabled {\n opacity: 40%;\n }\n .msr\\:disabled\\:opacity-45:disabled {\n opacity: 45%;\n }\n @media (prefers-reduced-motion: reduce) {\n .msr\\:motion-reduce\\:transition-none {\n transition-property: none;\n }\n }\n}\n:root, :host {\n --color-ink-50: #f8fafc;\n --color-ink-200: #e2e8f0;\n --color-ink-500: #64748b;\n --color-ink-700: #334155;\n --color-ink-900: #0f172a;\n}\n:host {\n all: initial;\n display: block;\n color-scheme: light;\n color: #0f172a;\n font-family: ui-sans-serif, system-ui, sans-serif;\n font-size: 16px;\n font-weight: 400;\n line-height: 1.5;\n letter-spacing: normal;\n direction: ltr;\n --msr-spacing: 4px;\n}\n*, *::before, *::after {\n box-sizing: border-box;\n}\n@layer base {\n *, ::before, ::after, ::backdrop {\n --tw-border-style: solid;\n --tw-outline-style: solid;\n --tw-shadow: 0 0 #0000;\n --tw-inset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n }\n button, input, select, textarea {\n appearance: none;\n background-color: transparent;\n padding: 0;\n font: inherit;\n color: inherit;\n letter-spacing: inherit;\n }\n}\n.mesurer-toolbar-surface {\n box-shadow: 0 0 0.5px rgba(0, 0, 0, 0.18), 0 3px 8px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.1);\n}\n.mesurer-menu-surface {\n box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);\n}\n.mesurer-color-picker {\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n}\n.mesurer-settings-tabs {\n box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.08);\n}\n.mesurer-settings-tab[aria-selected=\"true\"] {\n box-shadow: 0 0 0 1px rgba(15, 23, 42, 0.12);\n}\n.mesurer-switch-track {\n box-sizing: border-box;\n border: 1px solid #e2e8f0;\n}\n.mesurer-switch-track[data-checked=\"true\"] {\n border-color: #0d99ff;\n}\n.mesurer-control-shell {\n border: 1px solid transparent;\n}\n.mesurer-control-shell:hover {\n border-color: #e2e8f0;\n}\n.mesurer-control-focus:focus-within {\n outline: 1px solid #0d99ff;\n outline-offset: -1px;\n}\n.mesurer-root {\n --msr-spacing: 4px;\n}\nbody [data-mesurer-native-scroll-anchor=\"box\"][data-mesurer-nested-scroll-compensation=\"true\"] {\n position: absolute !important;\n left: calc(anchor(left) + var(--mesurer-nested-scroll-x, 0px)) !important;\n top: calc(anchor(top) + var(--mesurer-nested-scroll-y, 0px)) !important;\n}\nbody [data-mesurer-native-scroll-anchor=\"label\"][data-mesurer-nested-scroll-compensation=\"true\"] {\n position: absolute !important;\n left: calc(anchor(center) + var(--mesurer-nested-scroll-x, 0px)) !important;\n top: calc(anchor(bottom) + 2px + var(--mesurer-nested-scroll-y, 0px)) !important;\n}\nbody [data-mesurer-native-scroll-anchor=\"offset\"][data-mesurer-nested-scroll-compensation=\"true\"] {\n position: absolute !important;\n left: calc(anchor(left) + var(--mesurer-native-anchor-x, 0px) + var(--mesurer-nested-scroll-x, 0px)) !important;\n top: calc(anchor(top) + var(--mesurer-native-anchor-y, 0px) + var(--mesurer-nested-scroll-y, 0px)) !important;\n}\n[data-mesurer-text-edit-ring=\"true\"], [data-mesurer-text-selection-highlight=\"true\"], [data-mesurer-text-caret=\"true\"] {\n z-index: 2147482900 !important;\n}\n[data-mesurer-text-inspector-placement-shell=\"true\"], .mesurer-ti-card {\n z-index: 2147483647 !important;\n}\n[data-mesurer-context-root=\"true\"] [data-mesurer-annotation-scroll-mode=\"document\"] {\n position: absolute !important;\n}\n[data-mesurer-annotation-scroll-mode=\"native-anchor\"] {\n position: fixed !important;\n}\n[data-mesurer-native-scroll-anchor=\"offset\"][data-mesurer-nested-scroll-compensation=\"true\"][data-mesurer-annotation-scroll-mode=\"native-anchor\"] {\n position: fixed !important;\n}\n[data-mesurer-annotation-badge=\"true\"] {\n width: 20px !important;\n height: 20px !important;\n transform: none !important;\n transition: width 150ms ease, height 150ms ease, background 150ms ease, color 150ms ease, box-shadow 150ms ease !important;\n}\n[data-mesurer-annotation-marker=\"true\"][data-mesurer-annotation-highlighted=\"true\"] > [data-mesurer-annotation-badge=\"true\"] {\n width: 24px !important;\n height: 24px !important;\n}\n[data-mesurer-root=\"true\"][data-mesurer-direct-text-edit-active=\"true\"] [data-mesurer-annotation-trigger=\"true\"], [data-mesurer-context-root=\"true\"][data-mesurer-direct-text-edit-active=\"true\"] [data-mesurer-annotation-trigger=\"true\"] {\n display: none !important;\n}\n[data-mesurer-plugin-settings] [role=\"switch\"] {\n grid-template-columns: minmax(0, 1fr) auto;\n}\n[data-mesurer-plugin-settings] [role=\"switch\"] > span:first-child {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n[data-mesurer-plugin-settings-disclosure=\"plugins\"] {\n width: calc(100% + 16px);\n margin-inline: -8px;\n}\n.mesurer-solid-root {\n position: fixed;\n inset: 0;\n z-index: 2147483000;\n pointer-events: none;\n --msr-spacing: 4px;\n}\n.mesurer-solid-root [role=\"slider\"] {\n border: 0;\n}\n[data-mesurer-distance-kind=\"selection-spacing\"][data-mesurer-distance-active=\"true\"] [data-mesurer-distance-hover-target=\"true\"] {\n opacity: 1 !important;\n}\n[data-mesurer-distance-kind=\"selection-spacing\"][data-mesurer-distance-active=\"true\"]:has([data-mesurer-distance-label-axis=\"x\"]:hover) [data-mesurer-distance-line^=\"vertical\"], [data-mesurer-distance-kind=\"selection-spacing\"][data-mesurer-distance-active=\"true\"]:has([data-mesurer-distance-label-axis=\"y\"]:hover) [data-mesurer-distance-line^=\"horizontal\"], [data-mesurer-distance-kind=\"selection-spacing\"][data-mesurer-distance-active=\"true\"]:has([data-mesurer-distance-label-axis]:hover) [data-mesurer-distance-connector=\"true\"] {\n opacity: 0.16 !important;\n}\nbody.mesurer-solid-xray * {\n outline: solid 1px blue !important;\n}\nbody.mesurer-solid-xray [data-mesurer-root], body.mesurer-solid-xray [data-mesurer-root] *, body.mesurer-solid-xray [data-mesurer-inspector-ui], body.mesurer-solid-xray [data-mesurer-inspector-ui] *, body.mesurer-solid-xray .mesurer-toolbar-surface, body.mesurer-solid-xray .mesurer-toolbar-surface *, body.mesurer-solid-xray .mesurer-ti-box, body.mesurer-solid-xray .mesurer-ti-card, body.mesurer-solid-xray .mesurer-ti-card *, body.mesurer-solid-xray .mesurer-ti-close {\n outline: none !important;\n}\n[data-mesurer-toolbar=\"true\"] > div:has(> [data-mesurer-toolbar-compact-item]) {\n transition: padding-inline 150ms ease;\n}\n[data-mesurer-toolbar=\"true\"][data-mesurer-toolbar-compact=\"true\"] > div:has(> [data-mesurer-toolbar-compact-item]):not(:has(> [data-mesurer-toolbar-compact-item][data-visible=\"true\"])) {\n padding-inline: 0;\n}\n[data-mesurer-selected-measurement=\"true\"]:has(> [data-mesurer-native-scroll-anchor=\"box\"]) {\n display: contents !important;\n}\n@media (prefers-reduced-motion: reduce) {\n [data-mesurer-toolbar=\"true\"] > div:has(> [data-mesurer-toolbar-compact-item]) {\n transition: none;\n }\n [data-mesurer-annotation-badge=\"true\"] {\n transition: none !important;\n }\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) {\n --msr-accent: #0d99ff;\n --msr-surface: #fff;\n --msr-surface-raised: #fff;\n --msr-surface-muted: #f8fafc;\n --msr-content: #18181b;\n --msr-color-white: #fff;\n --msr-color-black: #000;\n --msr-color-ink-50: #f8fafc;\n --msr-color-ink-100: #f1f5f9;\n --msr-color-ink-200: #e2e8f0;\n --msr-color-ink-300: #cbd5e1;\n --msr-color-ink-500: #64748b;\n --msr-color-ink-700: #334155;\n --msr-color-ink-900: #18181b;\n --color-ink-50: var(--msr-color-ink-50);\n --color-ink-100: var(--msr-color-ink-100);\n --color-ink-200: var(--msr-color-ink-200);\n --color-ink-300: var(--msr-color-ink-300);\n --color-ink-500: var(--msr-color-ink-500);\n --color-ink-700: var(--msr-color-ink-700);\n --color-ink-900: var(--msr-color-ink-900);\n --msr-danger-bg: #fef2f2;\n --msr-danger-border: #fecaca;\n --msr-danger-text: #dc2626;\n --msr-danger-solid-bg: #dc2626;\n --msr-danger-solid-hover: #b91c1c;\n --msr-danger-solid-text: #fff;\n --color-red-50: var(--msr-danger-bg);\n --color-red-200: var(--msr-danger-border);\n --color-red-600: var(--msr-danger-text);\n --color-red-700: #b91c1c;\n --msr-control-thumb: #fff;\n --msr-slider-track: rgba(15, 23, 42, 0.16);\n --msr-shadow-toolbar: 0 0 0.4px rgba(0, 0, 0, 0.22),\n 0 6px 18px rgba(0, 0, 0, 0.03),\n 0 3px 9px rgba(0, 0, 0, 0.06),\n 0 1px 1px rgba(0, 0, 0, 0.06);\n --msr-shadow-floating: 0 0 0 0.4px rgba(0, 0, 0, 0.22),\n 0 6px 18px rgba(0, 0, 0, 0.03),\n 0 3px 9px rgba(0, 0, 0, 0.06),\n 0 1px 1px rgba(0, 0, 0, 0.06);\n --msr-shadow-select-menu: var(--msr-shadow-floating);\n color: var(--msr-content);\n color-scheme: light;\n}\n:where( [data-mesurer-root=\"true\"][data-theme=\"dark\"], [data-mesurer-inspector-ui=\"true\"][data-theme=\"dark\"] ) {\n --msr-accent: #0c8ce9;\n --msr-surface: #323232;\n --msr-surface-raised: #3a3a3a;\n --msr-surface-muted: #3a3a3a;\n --msr-content: #f5f5f5;\n --msr-color-white: #f5f5f5;\n --msr-color-black: #171717;\n --msr-color-ink-50: #3a3a3a;\n --msr-color-ink-100: #414141;\n --msr-color-ink-200: #4a4a4a;\n --msr-color-ink-300: #5a5a5a;\n --msr-color-ink-500: #a0a0a0;\n --msr-color-ink-700: #dedede;\n --msr-color-ink-900: #f5f5f5;\n --msr-danger-bg: #3f2020;\n --msr-danger-border: #7f3f46;\n --msr-danger-text: #f87171;\n --msr-danger-solid-bg: #c95058;\n --msr-danger-solid-hover: #b7424b;\n --msr-danger-solid-text: #f5f5f5;\n --color-red-700: #fca5a5;\n --msr-control-thumb: #f4f4f5;\n --msr-slider-track: rgba(245, 245, 245, 0.24);\n --msr-shadow-toolbar: 0 0 0.4px lch(100% 0 0 / 0.10),\n 0 3px 8px lch(0% 0 0 / 0.125),\n 0 2px 5px lch(0% 0 0 / 0.125),\n 0 1px 1px lch(0% 0 0 / 0.125);\n --msr-shadow-floating: 0 0 0 0.4px lch(100% 0 0 / 0.05),\n 0 4px 12px lch(0% 0 0 / 0.12),\n 0 1px 3px lch(0% 0 0 / 0.10);\n --msr-shadow-select-menu: 0 0 0 0.4px lch(100% 0 0 / 0.14),\n 0 4px 12px lch(0% 0 0 / 0.22),\n 0 1px 3px lch(0% 0 0 / 0.18);\n color-scheme: dark;\n}\n@media (prefers-color-scheme: dark) {\n :where( [data-mesurer-root=\"true\"][data-theme=\"system\"], [data-mesurer-inspector-ui=\"true\"][data-theme=\"system\"] ) {\n --msr-accent: #0c8ce9;\n --msr-surface: #323232;\n --msr-surface-raised: #3a3a3a;\n --msr-surface-muted: #3a3a3a;\n --msr-content: #f5f5f5;\n --msr-color-white: #f5f5f5;\n --msr-color-black: #171717;\n --msr-color-ink-50: #3a3a3a;\n --msr-color-ink-100: #414141;\n --msr-color-ink-200: #4a4a4a;\n --msr-color-ink-300: #5a5a5a;\n --msr-color-ink-500: #a0a0a0;\n --msr-color-ink-700: #dedede;\n --msr-color-ink-900: #f5f5f5;\n --msr-danger-bg: #3f2020;\n --msr-danger-border: #7f3f46;\n --msr-danger-text: #f87171;\n --msr-danger-solid-bg: #c95058;\n --msr-danger-solid-hover: #b7424b;\n --msr-danger-solid-text: #f5f5f5;\n --color-red-700: #fca5a5;\n --msr-control-thumb: #f4f4f5;\n --msr-slider-track: rgba(245, 245, 245, 0.24);\n --msr-shadow-toolbar: 0 0 0.4px lch(100% 0 0 / 0.10),\n 0 3px 8px lch(0% 0 0 / 0.125),\n 0 2px 5px lch(0% 0 0 / 0.125),\n 0 1px 1px lch(0% 0 0 / 0.125);\n --msr-shadow-floating: 0 0 0 0.4px lch(100% 0 0 / 0.05),\n 0 4px 12px lch(0% 0 0 / 0.12),\n 0 1px 3px lch(0% 0 0 / 0.10);\n --msr-shadow-select-menu: 0 0 0 0.4px lch(100% 0 0 / 0.14),\n 0 4px 12px lch(0% 0 0 / 0.22),\n 0 1px 3px lch(0% 0 0 / 0.18);\n color-scheme: dark;\n }\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:bg-white\"], :where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:bg-[#fff]\"] {\n background-color: var(--msr-surface) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:text-black\"] {\n color: var(--msr-content) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:hover:bg-black/4\"]:hover, :where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:hover:bg-black/5\"]:hover {\n background-color: var(--msr-content) !important;\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in srgb, var(--msr-content) 6%, transparent) !important;\n }\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) .mesurer-toolbar-surface {\n background-color: var(--msr-surface) !important;\n box-shadow: var(--msr-shadow-toolbar) !important;\n color: var(--msr-content);\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) :is( .mesurer-menu-surface, .mesurer-color-picker, .mesurer-ti-card, [data-mesurer-text-inspector-info=\"true\"], [data-mesurer-annotation-panel=\"true\"], [data-mesurer-annotation-composer=\"true\"] ) {\n background-color: var(--msr-surface-raised) !important;\n color: var(--msr-content) !important;\n box-shadow: var(--msr-shadow-floating) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) .mesurer-switch-track[data-checked=\"false\"], :where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) .mesurer-control-shell {\n background-color: var(--msr-surface-muted) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) .mesurer-switch-track > span {\n background-color: var(--msr-control-thumb) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) :is(.mesurer-settings-select, .mesurer-settings-select-menu) {\n background-color: var(--msr-surface-raised) !important;\n border-color: var(--msr-color-ink-200) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [data-mesurer-rulers=\"true\"] {\n color: var(--msr-color-ink-500) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [data-slider-container=\"true\"] > div:first-child {\n background-color: var(--msr-slider-track) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:bg-[#0d99ff]\"] {\n background-color: var(--msr-accent) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:border-[#0d99ff]\"] {\n border-color: var(--msr-accent) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:hover:bg-[#0d99ff]\"]:hover, :where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:focus-visible:bg-[#0d99ff]\"]:focus-visible {\n background-color: var(--msr-accent) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:text-white\"] {\n color: var(--msr-color-white) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [data-slider-thumb=\"true\"]:focus-visible {\n box-shadow: 0 0 0 1px var(--msr-accent) !important;\n @supports (color: color-mix(in lab, red, red)) {\n box-shadow: 0 0 0 1px color-mix(in srgb, var(--msr-accent) 25%, transparent) !important;\n }\n}\n:where([data-mesurer-root=\"true\"], [data-mesurer-inspector-ui=\"true\"]) {\n --msr-radius-control: 5px;\n}\n@layer utilities {\n .msr\\:rounded-control {\n border-radius: var(--msr-radius-control);\n }\n}\n.mesurer-thin-scrollbar {\n scrollbar-width: thin;\n scrollbar-color: var(--msr-color-ink-200) transparent;\n}\n.mesurer-thin-scrollbar::-webkit-scrollbar {\n width: 4px;\n height: 4px;\n}\n.mesurer-thin-scrollbar::-webkit-scrollbar-track {\n background: transparent;\n}\n.mesurer-thin-scrollbar::-webkit-scrollbar-thumb {\n background: var(--msr-color-ink-200);\n border-radius: var(--msr-radius-control);\n}\n.mesurer-thin-scrollbar:hover {\n scrollbar-color: var(--msr-color-ink-300) transparent;\n}\n.mesurer-thin-scrollbar:hover::-webkit-scrollbar-thumb {\n background: var(--msr-color-ink-300);\n}\n.mesurer-thin-scrollbar::-webkit-scrollbar-corner {\n background: transparent;\n}\n@property --tw-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-border-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-leading {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-font-weight {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ordinal {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-slashed-zero {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-figure {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-spacing {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-fraction {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-inset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-ring-inset {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-offset-width {\n syntax: \"<length>\";\n inherits: false;\n initial-value: 0px;\n}\n@property --tw-ring-offset-color {\n syntax: \"*\";\n inherits: false;\n initial-value: #fff;\n}\n@property --tw-ring-offset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-outline-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-duration {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ease {\n syntax: \"*\";\n inherits: false;\n}\n@layer properties {\n @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n *, ::before, ::after, ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-border-style: solid;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-ordinal: initial;\n --tw-slashed-zero: initial;\n --tw-numeric-figure: initial;\n --tw-numeric-spacing: initial;\n --tw-numeric-fraction: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-outline-style: solid;\n --tw-duration: initial;\n --tw-ease: initial;\n }\n }\n}\n", ma = {
|
|
3318
|
+
ma({}, !0);
|
|
3319
|
+
var ha = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@layer properties;\n@layer theme, base, components, utilities;\n@layer theme {\n :root, :host {\n --msr-font-sans: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\",\n \"Noto Sans\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\",\n \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --msr-font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\",\n \"Courier New\", monospace;\n --msr-color-red-50: oklch(97.1% 0.013 17.38);\n --msr-color-red-200: oklch(88.5% 0.062 18.334);\n --msr-color-red-600: oklch(57.7% 0.245 27.325);\n --msr-color-black: #000;\n --msr-color-white: #fff;\n --msr-spacing: 0.25rem;\n --msr-font-weight-normal: 400;\n --msr-font-weight-medium: 500;\n --msr-font-weight-semibold: 600;\n --msr-radius-md: 0.375rem;\n --msr-radius-lg: 0.5rem;\n --msr-default-transition-duration: 150ms;\n --msr-default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --msr-default-font-family: var(--msr-font-sans);\n --msr-default-mono-font-family: var(--msr-font-mono);\n --msr-color-ink-50: #f8fafc;\n --msr-color-ink-200: #e2e8f0;\n --msr-color-ink-500: #64748b;\n --msr-color-ink-700: #334155;\n --msr-color-ink-900: #0f172a;\n }\n}\n@layer base {\n *, ::after, ::before, ::backdrop, ::file-selector-button {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n }\n html, :host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n font-family: var(--msr-default-font-family, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");\n font-feature-settings: var(--msr-default-font-feature-settings, normal);\n font-variation-settings: var(--msr-default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n h1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n b, strong {\n font-weight: bolder;\n }\n code, kbd, samp, pre {\n font-family: var(--msr-default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);\n font-feature-settings: var(--msr-default-mono-font-feature-settings, normal);\n font-variation-settings: var(--msr-default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n small {\n font-size: 80%;\n }\n sub, sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n :-moz-focusring:where(:not(iframe)) {\n outline: auto;\n }\n progress {\n vertical-align: baseline;\n }\n summary {\n display: list-item;\n }\n ol, ul, menu {\n list-style: none;\n }\n img, svg, video, canvas, audio, iframe, embed, object {\n display: block;\n vertical-align: middle;\n }\n img, video {\n max-width: 100%;\n height: auto;\n }\n button, input, select, optgroup, textarea, ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n }\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n ::placeholder {\n opacity: 1;\n }\n @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\n ::placeholder {\n color: currentcolor;\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n textarea {\n resize: vertical;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n ::-webkit-calendar-picker-indicator {\n line-height: 1;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n button, input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]), ::file-selector-button {\n appearance: button;\n }\n ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {\n height: auto;\n }\n [hidden]:where(:not([hidden=\"until-found\"])) {\n display: none !important;\n }\n}\n@layer utilities {\n .msr\\:pointer-events-auto {\n pointer-events: auto;\n }\n .msr\\:pointer-events-none {\n pointer-events: none;\n }\n .msr\\:absolute {\n position: absolute;\n }\n .msr\\:fixed {\n position: fixed;\n }\n .msr\\:relative {\n position: relative;\n }\n .msr\\:inset-0 {\n inset: 0px;\n }\n .msr\\:top-0 {\n top: 0px;\n }\n .msr\\:top-1\\/2 {\n top: calc(1 / 2 * 100%);\n }\n .msr\\:top-\\[18px\\] {\n top: 18px;\n }\n .msr\\:top-full {\n top: 100%;\n }\n .msr\\:right-0 {\n right: 0px;\n }\n .msr\\:right-2 {\n right: calc(var(--msr-spacing) * 2);\n }\n .msr\\:right-\\[8px\\] {\n right: 8px;\n }\n .msr\\:bottom-0 {\n bottom: 0px;\n }\n .msr\\:bottom-full {\n bottom: 100%;\n }\n .msr\\:left-0 {\n left: 0px;\n }\n .msr\\:left-1\\/2 {\n left: calc(1 / 2 * 100%);\n }\n .msr\\:left-\\[8px\\] {\n left: 8px;\n }\n .msr\\:left-\\[18px\\] {\n left: 18px;\n }\n .msr\\:z-10 {\n z-index: 10;\n }\n .msr\\:z-\\[60\\] {\n z-index: 60;\n }\n .msr\\:z-\\[70\\] {\n z-index: 70;\n }\n .msr\\:z-\\[80\\] {\n z-index: 80;\n }\n .msr\\:z-\\[90\\] {\n z-index: 90;\n }\n .msr\\:z-\\[94\\] {\n z-index: 94;\n }\n .msr\\:z-\\[95\\] {\n z-index: 95;\n }\n .msr\\:col-span-2 {\n grid-column: span 2 / span 2;\n }\n .msr\\:col-start-1 {\n grid-column-start: 1;\n }\n .msr\\:col-start-2 {\n grid-column-start: 2;\n }\n .msr\\:col-start-3 {\n grid-column-start: 3;\n }\n .msr\\:m-0 {\n margin: 0px;\n }\n .msr\\:mx-1 {\n margin-inline: var(--msr-spacing);\n }\n .msr\\:mt-1 {\n margin-top: var(--msr-spacing);\n }\n .msr\\:mt-1\\.5 {\n margin-top: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:mt-2 {\n margin-top: calc(var(--msr-spacing) * 2);\n }\n .msr\\:mb-1 {\n margin-bottom: var(--msr-spacing);\n }\n .msr\\:mb-2 {\n margin-bottom: calc(var(--msr-spacing) * 2);\n }\n .msr\\:-ml-1 {\n margin-left: calc(var(--msr-spacing) * -1);\n }\n .msr\\:ml-1 {\n margin-left: var(--msr-spacing);\n }\n .msr\\:ml-2 {\n margin-left: calc(var(--msr-spacing) * 2);\n }\n .msr\\:ml-6 {\n margin-left: calc(var(--msr-spacing) * 6);\n }\n .msr\\:box-border {\n box-sizing: border-box;\n }\n .msr\\:block {\n display: block;\n }\n .msr\\:flex {\n display: flex;\n }\n .msr\\:grid {\n display: grid;\n }\n .msr\\:inline-flex {\n display: inline-flex;\n }\n .msr\\:size-1\\.5 {\n width: calc(var(--msr-spacing) * 1.5);\n height: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:size-3 {\n width: calc(var(--msr-spacing) * 3);\n height: calc(var(--msr-spacing) * 3);\n }\n .msr\\:size-4 {\n width: calc(var(--msr-spacing) * 4);\n height: calc(var(--msr-spacing) * 4);\n }\n .msr\\:size-6 {\n width: calc(var(--msr-spacing) * 6);\n height: calc(var(--msr-spacing) * 6);\n }\n .msr\\:size-7 {\n width: calc(var(--msr-spacing) * 7);\n height: calc(var(--msr-spacing) * 7);\n }\n .msr\\:size-8 {\n width: calc(var(--msr-spacing) * 8);\n height: calc(var(--msr-spacing) * 8);\n }\n .msr\\:size-\\[10px\\] {\n width: 10px;\n height: 10px;\n }\n .msr\\:size-\\[18px\\] {\n width: 18px;\n height: 18px;\n }\n .msr\\:size-full {\n width: 100%;\n height: 100%;\n }\n .msr\\:h-5 {\n height: calc(var(--msr-spacing) * 5);\n }\n .msr\\:h-6 {\n height: calc(var(--msr-spacing) * 6);\n }\n .msr\\:h-7 {\n height: calc(var(--msr-spacing) * 7);\n }\n .msr\\:h-8 {\n height: calc(var(--msr-spacing) * 8);\n }\n .msr\\:h-20 {\n height: calc(var(--msr-spacing) * 20);\n }\n .msr\\:h-\\[14px\\] {\n height: 14px;\n }\n .msr\\:h-\\[18px\\] {\n height: 18px;\n }\n .msr\\:h-\\[19px\\] {\n height: 19px;\n }\n .msr\\:h-full {\n height: 100%;\n }\n .msr\\:h-px {\n height: 1px;\n }\n .msr\\:max-h-36 {\n max-height: calc(var(--msr-spacing) * 36);\n }\n .msr\\:max-h-\\[220px\\] {\n max-height: 220px;\n }\n .msr\\:max-h-\\[calc\\(100vh-16px\\)\\] {\n max-height: calc(100vh - 16px);\n }\n .msr\\:max-h-\\[min\\(70vh\\,34rem\\)\\] {\n max-height: min(70vh, 34rem);\n }\n .msr\\:max-h-\\[min\\(320px\\,calc\\(100vh-16px\\)\\)\\] {\n max-height: min(320px, calc(100vh - 16px));\n }\n .msr\\:min-h-0 {\n min-height: 0px;\n }\n .msr\\:w-0 {\n width: 0px;\n }\n .msr\\:w-3 {\n width: calc(var(--msr-spacing) * 3);\n }\n .msr\\:w-4 {\n width: calc(var(--msr-spacing) * 4);\n }\n .msr\\:w-5 {\n width: calc(var(--msr-spacing) * 5);\n }\n .msr\\:w-6 {\n width: calc(var(--msr-spacing) * 6);\n }\n .msr\\:w-9 {\n width: calc(var(--msr-spacing) * 9);\n }\n .msr\\:w-12 {\n width: calc(var(--msr-spacing) * 12);\n }\n .msr\\:w-44 {\n width: calc(var(--msr-spacing) * 44);\n }\n .msr\\:w-60 {\n width: calc(var(--msr-spacing) * 60);\n }\n .msr\\:w-\\[18px\\] {\n width: 18px;\n }\n .msr\\:w-\\[26px\\] {\n width: 26px;\n }\n .msr\\:w-\\[272px\\] {\n width: 272px;\n }\n .msr\\:w-full {\n width: 100%;\n }\n .msr\\:w-px {\n width: 1px;\n }\n .msr\\:max-w-0 {\n max-width: 0px;\n }\n .msr\\:max-w-20 {\n max-width: calc(var(--msr-spacing) * 20);\n }\n .msr\\:max-w-\\[calc\\(100vw-16px\\)\\] {\n max-width: calc(100vw - 16px);\n }\n .msr\\:min-w-0 {\n min-width: 0px;\n }\n .msr\\:min-w-36 {\n min-width: calc(var(--msr-spacing) * 36);\n }\n .msr\\:flex-1 {\n flex: 1;\n }\n .msr\\:flex-none {\n flex: none;\n }\n .msr\\:shrink-0 {\n flex-shrink: 0;\n }\n .msr\\:-translate-x-1 {\n --tw-translate-x: calc(var(--msr-spacing) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .msr\\:-translate-x-1\\/2 {\n --tw-translate-x: calc(calc(1 / 2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .msr\\:translate-x-0 {\n --tw-translate-x: 0px;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .msr\\:-translate-y-1\\/2 {\n --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .msr\\:-rotate-90 {\n rotate: calc(90deg * -1);\n }\n .msr\\:rotate-45 {\n rotate: 45deg;\n }\n .msr\\:rotate-90 {\n rotate: 90deg;\n }\n .msr\\:rotate-180 {\n rotate: 180deg;\n }\n .msr\\:rotate-\\[45deg\\] {\n rotate: 45deg;\n }\n .msr\\:rotate-\\[135deg\\] {\n rotate: 135deg;\n }\n .msr\\:cursor-crosshair {\n cursor: crosshair;\n }\n .msr\\:cursor-default {\n cursor: default;\n }\n .msr\\:cursor-pointer {\n cursor: pointer;\n }\n .msr\\:touch-none {\n touch-action: none;\n }\n .msr\\:resize-none {\n resize: none;\n }\n .msr\\:list-none {\n list-style-type: none;\n }\n .msr\\:appearance-none {\n appearance: none;\n }\n .msr\\:grid-cols-\\[78px_150px\\] {\n grid-template-columns: 78px 150px;\n }\n .msr\\:grid-cols-\\[78px_156px\\] {\n grid-template-columns: 78px 156px;\n }\n .msr\\:grid-cols-\\[78px_minmax\\(0\\,1fr\\)\\] {\n grid-template-columns: 78px minmax(0,1fr);\n }\n .msr\\:grid-cols-\\[minmax\\(0\\,1fr\\)_28px_34px\\] {\n grid-template-columns: minmax(0,1fr) 28px 34px;\n }\n .msr\\:flex-col {\n flex-direction: column;\n }\n .msr\\:items-center {\n align-items: center;\n }\n .msr\\:items-start {\n align-items: flex-start;\n }\n .msr\\:items-stretch {\n align-items: stretch;\n }\n .msr\\:justify-between {\n justify-content: space-between;\n }\n .msr\\:justify-center {\n justify-content: center;\n }\n .msr\\:justify-end {\n justify-content: flex-end;\n }\n .msr\\:gap-0 {\n gap: 0px;\n }\n .msr\\:gap-0\\.5 {\n gap: calc(var(--msr-spacing) * 0.5);\n }\n .msr\\:gap-1 {\n gap: var(--msr-spacing);\n }\n .msr\\:gap-1\\.5 {\n gap: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:gap-2 {\n gap: calc(var(--msr-spacing) * 2);\n }\n .msr\\:gap-3 {\n gap: calc(var(--msr-spacing) * 3);\n }\n .msr\\:gap-px {\n gap: 1px;\n }\n .msr\\:gap-x-3 {\n column-gap: calc(var(--msr-spacing) * 3);\n }\n .msr\\:gap-y-1 {\n row-gap: var(--msr-spacing);\n }\n .msr\\:self-stretch {\n align-self: stretch;\n }\n .msr\\:justify-self-end {\n justify-self: flex-end;\n }\n .msr\\:truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .msr\\:overflow-auto {\n overflow: auto;\n }\n .msr\\:overflow-hidden {\n overflow: hidden;\n }\n .msr\\:overflow-visible {\n overflow: visible;\n }\n .msr\\:overflow-x-hidden {\n overflow-x: hidden;\n }\n .msr\\:overflow-y-auto {\n overflow-y: auto;\n }\n .msr\\:rounded {\n border-radius: 0.25rem;\n }\n .msr\\:rounded-\\[3px\\] {\n border-radius: 3px;\n }\n .msr\\:rounded-\\[5px\\] {\n border-radius: 5px;\n }\n .msr\\:rounded-\\[6px\\] {\n border-radius: 6px;\n }\n .msr\\:rounded-\\[7px\\] {\n border-radius: 7px;\n }\n .msr\\:rounded-\\[8px\\] {\n border-radius: 8px;\n }\n .msr\\:rounded-\\[10px\\] {\n border-radius: 10px;\n }\n .msr\\:rounded-\\[12px\\] {\n border-radius: 12px;\n }\n .msr\\:rounded-full {\n border-radius: calc(infinity * 1px);\n }\n .msr\\:rounded-lg {\n border-radius: var(--msr-radius-lg);\n }\n .msr\\:rounded-md {\n border-radius: var(--msr-radius-md);\n }\n .msr\\:rounded-none {\n border-radius: 0;\n }\n .msr\\:border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .msr\\:border-0 {\n border-style: var(--tw-border-style);\n border-width: 0px;\n }\n .msr\\:border-t {\n border-top-style: var(--tw-border-style);\n border-top-width: 1px;\n }\n .msr\\:border-t-2 {\n border-top-style: var(--tw-border-style);\n border-top-width: 2px;\n }\n .msr\\:border-r {\n border-right-style: var(--tw-border-style);\n border-right-width: 1px;\n }\n .msr\\:border-b {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n .msr\\:border-l {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n .msr\\:border-dashed {\n --tw-border-style: dashed;\n border-style: dashed;\n }\n .msr\\:border-dotted {\n --tw-border-style: dotted;\n border-style: dotted;\n }\n .msr\\:border-solid {\n --tw-border-style: solid;\n border-style: solid;\n }\n .msr\\:border-\\[\\#0d99ff\\] {\n border-color: #0d99ff;\n }\n .msr\\:border-\\[\\#2563eb\\]\\/70 {\n border-color: color-mix(in oklab, #2563eb 70%, transparent);\n }\n .msr\\:border-black\\/8 {\n border-color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--msr-color-black) 8%, transparent);\n }\n }\n .msr\\:border-black\\/10 {\n border-color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--msr-color-black) 10%, transparent);\n }\n }\n .msr\\:border-black\\/15 {\n border-color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--msr-color-black) 15%, transparent);\n }\n }\n .msr\\:border-ink-200 {\n border-color: var(--msr-color-ink-200);\n }\n .msr\\:border-ink-500 {\n border-color: var(--msr-color-ink-500);\n }\n .msr\\:border-ink-700 {\n border-color: var(--msr-color-ink-700);\n }\n .msr\\:border-red-200 {\n border-color: var(--msr-color-red-200);\n }\n .msr\\:border-transparent {\n border-color: transparent;\n }\n .msr\\:bg-\\[\\#0d99ff\\] {\n background-color: #0d99ff;\n }\n .msr\\:bg-\\[\\#0d99ff\\]\\/10 {\n background-color: color-mix(in oklab, #0d99ff 10%, transparent);\n }\n .msr\\:bg-\\[\\#2563eb\\] {\n background-color: #2563eb;\n }\n .msr\\:bg-\\[\\#fff\\] {\n background-color: #fff;\n }\n .msr\\:bg-black {\n background-color: var(--msr-color-black);\n }\n .msr\\:bg-black\\/10 {\n background-color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--msr-color-black) 10%, transparent);\n }\n }\n .msr\\:bg-ink-50 {\n background-color: var(--msr-color-ink-50);\n }\n .msr\\:bg-ink-50\\/40 {\n background-color: var(--msr-color-ink-50);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--msr-color-ink-50) 40%, transparent);\n }\n }\n .msr\\:bg-ink-900\\/90 {\n background-color: var(--msr-color-ink-900);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--msr-color-ink-900) 90%, transparent);\n }\n }\n .msr\\:bg-transparent {\n background-color: transparent;\n }\n .msr\\:bg-white {\n background-color: var(--msr-color-white);\n }\n .msr\\:bg-white\\/60 {\n background-color: var(--msr-color-white);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--msr-color-white) 60%, transparent);\n }\n }\n .msr\\:p-0 {\n padding: 0px;\n }\n .msr\\:p-1 {\n padding: var(--msr-spacing);\n }\n .msr\\:p-1\\.5 {\n padding: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:p-2 {\n padding: calc(var(--msr-spacing) * 2);\n }\n .msr\\:p-3 {\n padding: calc(var(--msr-spacing) * 3);\n }\n .msr\\:p-px {\n padding: 1px;\n }\n .msr\\:px-0 {\n padding-inline: 0px;\n }\n .msr\\:px-0\\.5 {\n padding-inline: calc(var(--msr-spacing) * 0.5);\n }\n .msr\\:px-1 {\n padding-inline: var(--msr-spacing);\n }\n .msr\\:px-1\\.5 {\n padding-inline: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:px-2 {\n padding-inline: calc(var(--msr-spacing) * 2);\n }\n .msr\\:px-2\\.5 {\n padding-inline: calc(var(--msr-spacing) * 2.5);\n }\n .msr\\:py-0 {\n padding-block: 0px;\n }\n .msr\\:py-0\\.5 {\n padding-block: calc(var(--msr-spacing) * 0.5);\n }\n .msr\\:py-1 {\n padding-block: var(--msr-spacing);\n }\n .msr\\:py-1\\.5 {\n padding-block: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:py-2 {\n padding-block: calc(var(--msr-spacing) * 2);\n }\n .msr\\:pt-2 {\n padding-top: calc(var(--msr-spacing) * 2);\n }\n .msr\\:pr-2 {\n padding-right: calc(var(--msr-spacing) * 2);\n }\n .msr\\:pr-6 {\n padding-right: calc(var(--msr-spacing) * 6);\n }\n .msr\\:pb-1 {\n padding-bottom: var(--msr-spacing);\n }\n .msr\\:pb-2 {\n padding-bottom: calc(var(--msr-spacing) * 2);\n }\n .msr\\:text-center {\n text-align: center;\n }\n .msr\\:text-left {\n text-align: left;\n }\n .msr\\:font-mono {\n font-family: var(--msr-font-mono);\n }\n .msr\\:text-\\[9px\\] {\n font-size: 9px;\n }\n .msr\\:text-\\[10px\\] {\n font-size: 10px;\n }\n .msr\\:text-\\[11px\\] {\n font-size: 11px;\n }\n .msr\\:text-\\[12px\\] {\n font-size: 12px;\n }\n .msr\\:leading-4 {\n --tw-leading: calc(var(--msr-spacing) * 4);\n line-height: calc(var(--msr-spacing) * 4);\n }\n .msr\\:leading-\\[1\\.4\\] {\n --tw-leading: 1.4;\n line-height: 1.4;\n }\n .msr\\:leading-\\[1\\.45\\] {\n --tw-leading: 1.45;\n line-height: 1.45;\n }\n .msr\\:leading-\\[18px\\] {\n --tw-leading: 18px;\n line-height: 18px;\n }\n .msr\\:leading-none {\n --tw-leading: 1;\n line-height: 1;\n }\n .msr\\:font-medium {\n --tw-font-weight: var(--msr-font-weight-medium);\n font-weight: var(--msr-font-weight-medium);\n }\n .msr\\:font-normal {\n --tw-font-weight: var(--msr-font-weight-normal);\n font-weight: var(--msr-font-weight-normal);\n }\n .msr\\:font-semibold {\n --tw-font-weight: var(--msr-font-weight-semibold);\n font-weight: var(--msr-font-weight-semibold);\n }\n .msr\\:text-ellipsis {\n text-overflow: ellipsis;\n }\n .msr\\:whitespace-nowrap {\n white-space: nowrap;\n }\n .msr\\:whitespace-pre-wrap {\n white-space: pre-wrap;\n }\n .msr\\:text-\\[\\#64748b\\] {\n color: #64748b;\n }\n .msr\\:text-black {\n color: var(--msr-color-black);\n }\n .msr\\:text-black\\/30 {\n color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--msr-color-black) 30%, transparent);\n }\n }\n .msr\\:text-black\\/45 {\n color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--msr-color-black) 45%, transparent);\n }\n }\n .msr\\:text-ink-50 {\n color: var(--msr-color-ink-50);\n }\n .msr\\:text-ink-500 {\n color: var(--msr-color-ink-500);\n }\n .msr\\:text-ink-700 {\n color: var(--msr-color-ink-700);\n }\n .msr\\:text-ink-900 {\n color: var(--msr-color-ink-900);\n }\n .msr\\:text-red-600 {\n color: var(--msr-color-red-600);\n }\n .msr\\:text-white {\n color: var(--msr-color-white);\n }\n .msr\\:text-white\\/60 {\n color: var(--msr-color-white);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--msr-color-white) 60%, transparent);\n }\n }\n .msr\\:tabular-nums {\n --tw-numeric-spacing: tabular-nums;\n font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);\n }\n .msr\\:opacity-0 {\n opacity: 0%;\n }\n .msr\\:opacity-60 {\n opacity: 60%;\n }\n .msr\\:opacity-80 {\n opacity: 80%;\n }\n .msr\\:opacity-100 {\n opacity: 100%;\n }\n .msr\\:shadow-lg {\n --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:shadow-sm {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:outline {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n .msr\\:outline-transparent {\n outline-color: transparent;\n }\n .msr\\:transition-\\[max-width\\,opacity\\,transform\\,padding\\] {\n transition-property: max-width,opacity,transform,padding;\n transition-timing-function: var(--tw-ease, var(--msr-default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--msr-default-transition-duration));\n }\n .msr\\:transition-\\[width\\,opacity\\] {\n transition-property: width,opacity;\n transition-timing-function: var(--tw-ease, var(--msr-default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--msr-default-transition-duration));\n }\n .msr\\:transition-colors {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--msr-default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--msr-default-transition-duration));\n }\n .msr\\:transition-opacity {\n transition-property: opacity;\n transition-timing-function: var(--tw-ease, var(--msr-default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--msr-default-transition-duration));\n }\n .msr\\:transition-transform {\n transition-property: transform, translate, scale, rotate;\n transition-timing-function: var(--tw-ease, var(--msr-default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--msr-default-transition-duration));\n }\n .msr\\:transition-none {\n transition-property: none;\n }\n .msr\\:duration-150 {\n --tw-duration: 150ms;\n transition-duration: 150ms;\n }\n .msr\\:ease-\\[ease\\] {\n --tw-ease: ease;\n transition-timing-function: ease;\n }\n .msr\\:outline-none {\n --tw-outline-style: none;\n outline-style: none;\n }\n .msr\\:select-none {\n -webkit-user-select: none;\n user-select: none;\n }\n @media (hover: hover) {\n .msr\\:group-hover\\:border-ink-200:is(:where(.msr\\:group):hover *) {\n border-color: var(--msr-color-ink-200);\n }\n }\n .msr\\:focus-within\\:rounded-l-\\[5px\\]:focus-within {\n border-top-left-radius: 5px;\n border-bottom-left-radius: 5px;\n }\n .msr\\:focus-within\\:rounded-r-\\[5px\\]:focus-within {\n border-top-right-radius: 5px;\n border-bottom-right-radius: 5px;\n }\n .msr\\:focus-within\\:outline:focus-within {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n .msr\\:focus-within\\:outline-1:focus-within {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n .msr\\:focus-within\\:outline-offset-\\[-1px\\]:focus-within {\n outline-offset: -1px;\n }\n .msr\\:focus-within\\:outline-\\[\\#0d99ff\\]:focus-within {\n outline-color: #0d99ff;\n }\n .msr\\:focus-within\\:outline-\\[var\\(--msr-accent\\)\\]:focus-within {\n outline-color: var(--msr-accent);\n }\n @media (hover: hover) {\n .msr\\:hover\\:border-ink-200:hover {\n border-color: var(--msr-color-ink-200);\n }\n .msr\\:hover\\:bg-\\[\\#0b8eea\\]:hover {\n background-color: #0b8eea;\n }\n .msr\\:hover\\:bg-\\[\\#0d99ff\\]:hover {\n background-color: #0d99ff;\n }\n .msr\\:hover\\:bg-black\\/4:hover {\n background-color: var(--msr-color-black);\n }\n @supports (color: color-mix(in lab, red, red)) {\n .msr\\:hover\\:bg-black\\/4:hover {\n background-color: color-mix(in oklab, var(--msr-color-black) 4%, transparent);\n }\n }\n .msr\\:hover\\:bg-black\\/10:hover {\n background-color: var(--msr-color-black);\n }\n @supports (color: color-mix(in lab, red, red)) {\n .msr\\:hover\\:bg-black\\/10:hover {\n background-color: color-mix(in oklab, var(--msr-color-black) 10%, transparent);\n }\n }\n .msr\\:hover\\:bg-ink-50:hover {\n background-color: var(--msr-color-ink-50);\n }\n .msr\\:hover\\:bg-red-50:hover {\n background-color: var(--msr-color-red-50);\n }\n .msr\\:hover\\:text-ink-700:hover {\n color: var(--msr-color-ink-700);\n }\n .msr\\:hover\\:text-ink-900:hover {\n color: var(--msr-color-ink-900);\n }\n .msr\\:hover\\:text-white:hover {\n color: var(--msr-color-white);\n }\n .msr\\:hover\\:underline:hover {\n text-decoration-line: underline;\n }\n }\n .msr\\:focus\\:border-\\[\\#0d99ff\\]:focus {\n border-color: #0d99ff;\n }\n .msr\\:focus\\:shadow-\\[inset_0_0_0_1px_\\#0d99ff\\]:focus {\n --tw-shadow: inset 0 0 0 1px var(--tw-shadow-color, #0d99ff);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:focus\\:shadow-\\[inset_0_0_0_1px_var\\(--msr-accent\\)\\]:focus {\n --tw-shadow: inset 0 0 0 1px var(--tw-shadow-color, var(--msr-accent));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:focus\\:outline-none:focus {\n --tw-outline-style: none;\n outline-style: none;\n }\n .msr\\:focus-visible\\:border-\\[\\#0d99ff\\]:focus-visible {\n border-color: #0d99ff;\n }\n .msr\\:focus-visible\\:bg-\\[\\#0d99ff\\]:focus-visible {\n background-color: #0d99ff;\n }\n .msr\\:focus-visible\\:text-white:focus-visible {\n color: var(--msr-color-white);\n }\n .msr\\:focus-visible\\:shadow-\\[inset_0_0_0_1px_\\#0d99ff\\]:focus-visible {\n --tw-shadow: inset 0 0 0 1px var(--tw-shadow-color, #0d99ff);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:focus-visible\\:shadow-\\[inset_0_0_0_1px_\\#ef4444\\]:focus-visible {\n --tw-shadow: inset 0 0 0 1px var(--tw-shadow-color, #ef4444);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:focus-visible\\:ring-1:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:focus-visible\\:ring-\\[\\#0d99ff\\]\\/25:focus-visible {\n --tw-ring-color: color-mix(in oklab, #0d99ff 25%, transparent);\n }\n .msr\\:focus-visible\\:outline-none:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .msr\\:disabled\\:cursor-default:disabled {\n cursor: default;\n }\n .msr\\:disabled\\:opacity-40:disabled {\n opacity: 40%;\n }\n .msr\\:disabled\\:opacity-45:disabled {\n opacity: 45%;\n }\n @media (prefers-reduced-motion: reduce) {\n .msr\\:motion-reduce\\:transition-none {\n transition-property: none;\n }\n }\n}\n:root, :host {\n --color-ink-50: #f8fafc;\n --color-ink-200: #e2e8f0;\n --color-ink-500: #64748b;\n --color-ink-700: #334155;\n --color-ink-900: #0f172a;\n}\n:host {\n all: initial;\n display: block;\n color-scheme: light;\n color: #0f172a;\n font-family: ui-sans-serif, system-ui, sans-serif;\n font-size: 16px;\n font-weight: 400;\n line-height: 1.5;\n letter-spacing: normal;\n direction: ltr;\n --msr-spacing: 4px;\n}\n*, *::before, *::after {\n box-sizing: border-box;\n}\n@layer base {\n *, ::before, ::after, ::backdrop {\n --tw-border-style: solid;\n --tw-outline-style: solid;\n --tw-shadow: 0 0 #0000;\n --tw-inset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n }\n button, input, select, textarea {\n appearance: none;\n background-color: transparent;\n padding: 0;\n font: inherit;\n color: inherit;\n letter-spacing: inherit;\n }\n}\n.mesurer-toolbar-surface {\n box-shadow: 0 0 0.5px rgba(0, 0, 0, 0.18), 0 3px 8px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.1);\n}\n.mesurer-menu-surface {\n box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);\n}\n.mesurer-color-picker {\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n}\n.mesurer-settings-tabs {\n box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.08);\n}\n.mesurer-settings-tab[aria-selected=\"true\"] {\n box-shadow: 0 0 0 1px rgba(15, 23, 42, 0.12);\n}\n.mesurer-switch-track {\n box-sizing: border-box;\n border: 1px solid #e2e8f0;\n}\n.mesurer-switch-track[data-checked=\"true\"] {\n border-color: #0d99ff;\n}\n.mesurer-control-shell {\n border: 1px solid transparent;\n}\n.mesurer-control-shell:hover {\n border-color: #e2e8f0;\n}\n.mesurer-control-focus:focus-within {\n outline: 1px solid #0d99ff;\n outline-offset: -1px;\n}\n.mesurer-root {\n --msr-spacing: 4px;\n}\nbody [data-mesurer-native-scroll-anchor=\"box\"][data-mesurer-nested-scroll-compensation=\"true\"] {\n position: absolute !important;\n left: calc(anchor(left) + var(--mesurer-nested-scroll-x, 0px)) !important;\n top: calc(anchor(top) + var(--mesurer-nested-scroll-y, 0px)) !important;\n}\nbody [data-mesurer-native-scroll-anchor=\"label\"][data-mesurer-nested-scroll-compensation=\"true\"] {\n position: absolute !important;\n left: calc(anchor(center) + var(--mesurer-nested-scroll-x, 0px)) !important;\n top: calc(anchor(bottom) + 2px + var(--mesurer-nested-scroll-y, 0px)) !important;\n}\nbody [data-mesurer-native-scroll-anchor=\"offset\"][data-mesurer-nested-scroll-compensation=\"true\"] {\n position: absolute !important;\n left: calc(anchor(left) + var(--mesurer-native-anchor-x, 0px) + var(--mesurer-nested-scroll-x, 0px)) !important;\n top: calc(anchor(top) + var(--mesurer-native-anchor-y, 0px) + var(--mesurer-nested-scroll-y, 0px)) !important;\n}\n[data-mesurer-text-edit-ring=\"true\"], [data-mesurer-text-selection-highlight=\"true\"], [data-mesurer-text-caret=\"true\"] {\n z-index: 2147482900 !important;\n}\n[data-mesurer-text-inspector-placement-shell=\"true\"], .mesurer-ti-card {\n z-index: 2147483647 !important;\n}\n[data-mesurer-context-root=\"true\"] [data-mesurer-annotation-scroll-mode=\"document\"] {\n position: absolute !important;\n}\n[data-mesurer-annotation-scroll-mode=\"native-anchor\"] {\n position: fixed !important;\n}\n[data-mesurer-native-scroll-anchor=\"offset\"][data-mesurer-nested-scroll-compensation=\"true\"][data-mesurer-annotation-scroll-mode=\"native-anchor\"] {\n position: fixed !important;\n}\n[data-mesurer-annotation-badge=\"true\"] {\n width: 20px !important;\n height: 20px !important;\n transform: none !important;\n transition: width 150ms ease, height 150ms ease, background 150ms ease, color 150ms ease, box-shadow 150ms ease !important;\n}\n[data-mesurer-annotation-marker=\"true\"][data-mesurer-annotation-highlighted=\"true\"] > [data-mesurer-annotation-badge=\"true\"] {\n width: 24px !important;\n height: 24px !important;\n}\n[data-mesurer-root=\"true\"][data-mesurer-direct-text-edit-active=\"true\"] [data-mesurer-annotation-trigger=\"true\"], [data-mesurer-context-root=\"true\"][data-mesurer-direct-text-edit-active=\"true\"] [data-mesurer-annotation-trigger=\"true\"] {\n display: none !important;\n}\n[data-mesurer-plugin-settings] [role=\"switch\"] {\n grid-template-columns: minmax(0, 1fr) auto;\n}\n[data-mesurer-plugin-settings] [role=\"switch\"] > span:first-child {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n[data-mesurer-plugin-settings-disclosure=\"plugins\"] {\n width: calc(100% + 16px);\n margin-inline: -8px;\n}\n.mesurer-solid-root {\n position: fixed;\n inset: 0;\n z-index: 2147483000;\n pointer-events: none;\n --msr-spacing: 4px;\n}\n.mesurer-solid-root [role=\"slider\"] {\n border: 0;\n}\n[data-mesurer-distance-kind=\"selection-spacing\"][data-mesurer-distance-active=\"true\"] [data-mesurer-distance-hover-target=\"true\"] {\n opacity: 1 !important;\n}\n[data-mesurer-distance-kind=\"selection-spacing\"][data-mesurer-distance-active=\"true\"]:has([data-mesurer-distance-label-axis=\"x\"]:hover) [data-mesurer-distance-line^=\"vertical\"], [data-mesurer-distance-kind=\"selection-spacing\"][data-mesurer-distance-active=\"true\"]:has([data-mesurer-distance-label-axis=\"y\"]:hover) [data-mesurer-distance-line^=\"horizontal\"], [data-mesurer-distance-kind=\"selection-spacing\"][data-mesurer-distance-active=\"true\"]:has([data-mesurer-distance-label-axis]:hover) [data-mesurer-distance-connector=\"true\"] {\n opacity: 0.16 !important;\n}\nbody.mesurer-solid-xray * {\n outline: solid 1px blue !important;\n}\nbody.mesurer-solid-xray [data-mesurer-root], body.mesurer-solid-xray [data-mesurer-root] *, body.mesurer-solid-xray [data-mesurer-inspector-ui], body.mesurer-solid-xray [data-mesurer-inspector-ui] *, body.mesurer-solid-xray .mesurer-toolbar-surface, body.mesurer-solid-xray .mesurer-toolbar-surface *, body.mesurer-solid-xray .mesurer-ti-box, body.mesurer-solid-xray .mesurer-ti-card, body.mesurer-solid-xray .mesurer-ti-card *, body.mesurer-solid-xray .mesurer-ti-close {\n outline: none !important;\n}\n[data-mesurer-toolbar=\"true\"] > div:has(> [data-mesurer-toolbar-compact-item]) {\n transition: padding-inline 150ms ease;\n}\n[data-mesurer-toolbar=\"true\"][data-mesurer-toolbar-compact=\"true\"] > div:has(> [data-mesurer-toolbar-compact-item]):not(:has(> [data-mesurer-toolbar-compact-item][data-visible=\"true\"])) {\n padding-inline: 0;\n}\n[data-mesurer-selected-measurement=\"true\"]:has(> [data-mesurer-native-scroll-anchor=\"box\"]) {\n display: contents !important;\n}\n@media (prefers-reduced-motion: reduce) {\n [data-mesurer-toolbar=\"true\"] > div:has(> [data-mesurer-toolbar-compact-item]) {\n transition: none;\n }\n [data-mesurer-annotation-badge=\"true\"] {\n transition: none !important;\n }\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) {\n --msr-accent: #0d99ff;\n --msr-surface: #fff;\n --msr-surface-raised: #fff;\n --msr-surface-muted: #f8fafc;\n --msr-content: #18181b;\n --msr-color-white: #fff;\n --msr-color-black: #000;\n --msr-color-ink-50: #f8fafc;\n --msr-color-ink-100: #f1f5f9;\n --msr-color-ink-200: #e2e8f0;\n --msr-color-ink-300: #cbd5e1;\n --msr-color-ink-500: #64748b;\n --msr-color-ink-700: #334155;\n --msr-color-ink-900: #18181b;\n --color-ink-50: var(--msr-color-ink-50);\n --color-ink-100: var(--msr-color-ink-100);\n --color-ink-200: var(--msr-color-ink-200);\n --color-ink-300: var(--msr-color-ink-300);\n --color-ink-500: var(--msr-color-ink-500);\n --color-ink-700: var(--msr-color-ink-700);\n --color-ink-900: var(--msr-color-ink-900);\n --msr-danger-bg: #fef2f2;\n --msr-danger-border: #fecaca;\n --msr-danger-text: #dc2626;\n --msr-danger-solid-bg: #dc2626;\n --msr-danger-solid-hover: #b91c1c;\n --msr-danger-solid-text: #fff;\n --color-red-50: var(--msr-danger-bg);\n --color-red-200: var(--msr-danger-border);\n --color-red-600: var(--msr-danger-text);\n --color-red-700: #b91c1c;\n --msr-control-thumb: #fff;\n --msr-slider-track: rgba(15, 23, 42, 0.16);\n --msr-shadow-toolbar: 0 0 0.4px rgba(0, 0, 0, 0.22),\n 0 6px 18px rgba(0, 0, 0, 0.03),\n 0 3px 9px rgba(0, 0, 0, 0.06),\n 0 1px 1px rgba(0, 0, 0, 0.06);\n --msr-shadow-floating: 0 0 0 0.4px rgba(0, 0, 0, 0.22),\n 0 6px 18px rgba(0, 0, 0, 0.03),\n 0 3px 9px rgba(0, 0, 0, 0.06),\n 0 1px 1px rgba(0, 0, 0, 0.06);\n --msr-shadow-select-menu: var(--msr-shadow-floating);\n color: var(--msr-content);\n color-scheme: light;\n}\n:where( [data-mesurer-root=\"true\"][data-theme=\"dark\"], [data-mesurer-inspector-ui=\"true\"][data-theme=\"dark\"] ) {\n --msr-accent: #0c8ce9;\n --msr-surface: #323232;\n --msr-surface-raised: #3a3a3a;\n --msr-surface-muted: #3a3a3a;\n --msr-content: #f5f5f5;\n --msr-color-white: #f5f5f5;\n --msr-color-black: #171717;\n --msr-color-ink-50: #3a3a3a;\n --msr-color-ink-100: #414141;\n --msr-color-ink-200: #4a4a4a;\n --msr-color-ink-300: #5a5a5a;\n --msr-color-ink-500: #a0a0a0;\n --msr-color-ink-700: #dedede;\n --msr-color-ink-900: #f5f5f5;\n --msr-danger-bg: #3f2020;\n --msr-danger-border: #7f3f46;\n --msr-danger-text: #f87171;\n --msr-danger-solid-bg: #c95058;\n --msr-danger-solid-hover: #b7424b;\n --msr-danger-solid-text: #f5f5f5;\n --color-red-700: #fca5a5;\n --msr-control-thumb: #f4f4f5;\n --msr-slider-track: rgba(245, 245, 245, 0.24);\n --msr-shadow-toolbar: 0 0 0.4px lch(100% 0 0 / 0.10),\n 0 3px 8px lch(0% 0 0 / 0.125),\n 0 2px 5px lch(0% 0 0 / 0.125),\n 0 1px 1px lch(0% 0 0 / 0.125);\n --msr-shadow-floating: 0 0 0 0.4px lch(100% 0 0 / 0.05),\n 0 4px 12px lch(0% 0 0 / 0.12),\n 0 1px 3px lch(0% 0 0 / 0.10);\n --msr-shadow-select-menu: 0 0 0 0.4px lch(100% 0 0 / 0.14),\n 0 4px 12px lch(0% 0 0 / 0.22),\n 0 1px 3px lch(0% 0 0 / 0.18);\n color-scheme: dark;\n}\n@media (prefers-color-scheme: dark) {\n :where( [data-mesurer-root=\"true\"][data-theme=\"system\"], [data-mesurer-inspector-ui=\"true\"][data-theme=\"system\"] ) {\n --msr-accent: #0c8ce9;\n --msr-surface: #323232;\n --msr-surface-raised: #3a3a3a;\n --msr-surface-muted: #3a3a3a;\n --msr-content: #f5f5f5;\n --msr-color-white: #f5f5f5;\n --msr-color-black: #171717;\n --msr-color-ink-50: #3a3a3a;\n --msr-color-ink-100: #414141;\n --msr-color-ink-200: #4a4a4a;\n --msr-color-ink-300: #5a5a5a;\n --msr-color-ink-500: #a0a0a0;\n --msr-color-ink-700: #dedede;\n --msr-color-ink-900: #f5f5f5;\n --msr-danger-bg: #3f2020;\n --msr-danger-border: #7f3f46;\n --msr-danger-text: #f87171;\n --msr-danger-solid-bg: #c95058;\n --msr-danger-solid-hover: #b7424b;\n --msr-danger-solid-text: #f5f5f5;\n --color-red-700: #fca5a5;\n --msr-control-thumb: #f4f4f5;\n --msr-slider-track: rgba(245, 245, 245, 0.24);\n --msr-shadow-toolbar: 0 0 0.4px lch(100% 0 0 / 0.10),\n 0 3px 8px lch(0% 0 0 / 0.125),\n 0 2px 5px lch(0% 0 0 / 0.125),\n 0 1px 1px lch(0% 0 0 / 0.125);\n --msr-shadow-floating: 0 0 0 0.4px lch(100% 0 0 / 0.05),\n 0 4px 12px lch(0% 0 0 / 0.12),\n 0 1px 3px lch(0% 0 0 / 0.10);\n --msr-shadow-select-menu: 0 0 0 0.4px lch(100% 0 0 / 0.14),\n 0 4px 12px lch(0% 0 0 / 0.22),\n 0 1px 3px lch(0% 0 0 / 0.18);\n color-scheme: dark;\n }\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:bg-white\"], :where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:bg-[#fff]\"] {\n background-color: var(--msr-surface) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:text-black\"] {\n color: var(--msr-content) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:hover:bg-black/4\"]:hover, :where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:hover:bg-black/5\"]:hover {\n background-color: var(--msr-content) !important;\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in srgb, var(--msr-content) 6%, transparent) !important;\n }\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) .mesurer-toolbar-surface {\n background-color: var(--msr-surface) !important;\n box-shadow: var(--msr-shadow-toolbar) !important;\n color: var(--msr-content);\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) :is( .mesurer-menu-surface, .mesurer-color-picker, .mesurer-ti-card, [data-mesurer-text-inspector-info=\"true\"], [data-mesurer-annotation-panel=\"true\"], [data-mesurer-annotation-composer=\"true\"] ) {\n background-color: var(--msr-surface-raised) !important;\n color: var(--msr-content) !important;\n box-shadow: var(--msr-shadow-floating) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) .mesurer-switch-track[data-checked=\"false\"], :where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) .mesurer-control-shell {\n background-color: var(--msr-surface-muted) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) .mesurer-switch-track > span {\n background-color: var(--msr-control-thumb) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) :is(.mesurer-settings-select, .mesurer-settings-select-menu) {\n background-color: var(--msr-surface-raised) !important;\n border-color: var(--msr-color-ink-200) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [data-mesurer-rulers=\"true\"] {\n color: var(--msr-color-ink-500) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [data-slider-container=\"true\"] > div:first-child {\n background-color: var(--msr-slider-track) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:bg-[#0d99ff]\"] {\n background-color: var(--msr-accent) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:border-[#0d99ff]\"] {\n border-color: var(--msr-accent) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:hover:bg-[#0d99ff]\"]:hover, :where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:focus-visible:bg-[#0d99ff]\"]:focus-visible {\n background-color: var(--msr-accent) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:text-white\"] {\n color: var(--msr-color-white) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [data-slider-thumb=\"true\"]:focus-visible {\n box-shadow: 0 0 0 1px var(--msr-accent) !important;\n @supports (color: color-mix(in lab, red, red)) {\n box-shadow: 0 0 0 1px color-mix(in srgb, var(--msr-accent) 25%, transparent) !important;\n }\n}\n:where([data-mesurer-root=\"true\"], [data-mesurer-inspector-ui=\"true\"]) {\n --msr-radius-control: 5px;\n}\n@layer utilities {\n .msr\\:rounded-control {\n border-radius: var(--msr-radius-control);\n }\n}\n.mesurer-thin-scrollbar {\n scrollbar-width: thin;\n scrollbar-color: var(--msr-color-ink-200) transparent;\n}\n.mesurer-thin-scrollbar::-webkit-scrollbar {\n width: 4px;\n height: 4px;\n}\n.mesurer-thin-scrollbar::-webkit-scrollbar-track {\n background: transparent;\n}\n.mesurer-thin-scrollbar::-webkit-scrollbar-thumb {\n background: var(--msr-color-ink-200);\n border-radius: var(--msr-radius-control);\n}\n.mesurer-thin-scrollbar:hover {\n scrollbar-color: var(--msr-color-ink-300) transparent;\n}\n.mesurer-thin-scrollbar:hover::-webkit-scrollbar-thumb {\n background: var(--msr-color-ink-300);\n}\n.mesurer-thin-scrollbar::-webkit-scrollbar-corner {\n background: transparent;\n}\n@property --tw-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-border-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-leading {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-font-weight {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ordinal {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-slashed-zero {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-figure {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-spacing {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-fraction {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-inset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-ring-inset {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-offset-width {\n syntax: \"<length>\";\n inherits: false;\n initial-value: 0px;\n}\n@property --tw-ring-offset-color {\n syntax: \"*\";\n inherits: false;\n initial-value: #fff;\n}\n@property --tw-ring-offset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-outline-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-duration {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ease {\n syntax: \"*\";\n inherits: false;\n}\n@layer properties {\n @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n *, ::before, ::after, ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-border-style: solid;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-ordinal: initial;\n --tw-slashed-zero: initial;\n --tw-numeric-figure: initial;\n --tw-numeric-spacing: initial;\n --tw-numeric-fraction: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-outline-style: solid;\n --tw-duration: initial;\n --tw-ease: initial;\n }\n }\n}\n", ga = {
|
|
3300
3320
|
keepTextChanges: !1,
|
|
3301
3321
|
keepArrangeChanges: !1
|
|
3302
|
-
},
|
|
3322
|
+
}, _a = (e) => e.state.get("mesurer.presentation.preferences") ?? ga, va = "mesurer.arrange", ya = "arrange", ba = "mesurer.arrange.intents", xa = "mesurer.arrange.active", Sa = "mesurer.arrange.settings", Ca = "runtime:solid", wa = "builtin.select", Ta = "arrange.toggle", Ea = "arrange.commit", Da = "arrange.clear", Oa = "mesurer.arrange.selection-available", ka = 1, Aa = 24, ja = 160, Ma = 500, Na = "#ef4444", Pa = {
|
|
3303
3323
|
viewBox: "0 0 24 24",
|
|
3304
3324
|
paths: ["M12 2.75 8.75 6h2.5v5.25H6V8.75L2.75 12 6 15.25v-2.5h5.25V18h-2.5L12 21.25 15.25 18h-2.5v-5.25H18v2.5L21.25 12 18 8.75v2.5h-5.25V6h2.5L12 2.75Z"]
|
|
3305
|
-
},
|
|
3325
|
+
}, Fa = (e, t) => ({
|
|
3306
3326
|
left: e.left + t.x,
|
|
3307
3327
|
top: e.top + t.y,
|
|
3308
3328
|
width: e.width,
|
|
3309
3329
|
height: e.height
|
|
3310
|
-
}),
|
|
3330
|
+
}), Ia = (e, t) => ({
|
|
3311
3331
|
left: e.left - t.left,
|
|
3312
3332
|
top: e.top - t.top,
|
|
3313
3333
|
width: e.width - t.width,
|
|
3314
3334
|
height: e.height - t.height
|
|
3315
|
-
}),
|
|
3335
|
+
}), La = (e) => {
|
|
3316
3336
|
if (!e.length) return null;
|
|
3317
3337
|
let t = Math.min(...e.map((e) => e.left)), n = Math.min(...e.map((e) => e.top)), r = Math.max(...e.map((e) => e.left + e.width)), i = Math.max(...e.map((e) => e.top + e.height));
|
|
3318
3338
|
return {
|
|
@@ -3321,35 +3341,35 @@ var pa = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3321
3341
|
width: r - t,
|
|
3322
3342
|
height: i - n
|
|
3323
3343
|
};
|
|
3324
|
-
},
|
|
3344
|
+
}, Ra = (e, t, n, r) => Math.max(0, Math.max(e, n) - Math.min(t, r)), za = (e, t, n) => {
|
|
3325
3345
|
let r = t === "x" ? e.left : e.top, i = t === "x" ? e.width : e.height, a = r + i;
|
|
3326
3346
|
return n === "edge" ? [r, a] : n === "center" ? [r + i / 2] : [
|
|
3327
3347
|
r,
|
|
3328
3348
|
r + i / 2,
|
|
3329
3349
|
a
|
|
3330
3350
|
];
|
|
3331
|
-
},
|
|
3351
|
+
}, Ba = (e, t) => t === "x" ? {
|
|
3332
3352
|
start: e.top,
|
|
3333
3353
|
end: e.top + e.height
|
|
3334
3354
|
} : {
|
|
3335
3355
|
start: e.left,
|
|
3336
3356
|
end: e.left + e.width
|
|
3337
|
-
},
|
|
3338
|
-
let r =
|
|
3339
|
-
for (let a of n) if (a.axis === e && !(a.source === "element" &&
|
|
3357
|
+
}, Va = (e) => e.kind === "edge" ? 2 : +(e.kind === "guide"), Ha = (e, t, n) => {
|
|
3358
|
+
let r = Ba(t, e), i = null;
|
|
3359
|
+
for (let a of n) if (a.axis === e && !(a.source === "element" && Ra(r.start, r.end, a.start, a.end) > ja)) for (let n of za(t, e, a.kind)) {
|
|
3340
3360
|
let e = a.position - n, t = Math.abs(e);
|
|
3341
3361
|
if (t > 10) continue;
|
|
3342
3362
|
let r = i ? Math.abs(i.delta) : Infinity;
|
|
3343
|
-
(t < r || t === r && (!i ||
|
|
3363
|
+
(t < r || t === r && (!i || Va(a) > Va(i))) && (i = {
|
|
3344
3364
|
...a,
|
|
3345
3365
|
delta: e
|
|
3346
3366
|
});
|
|
3347
3367
|
}
|
|
3348
3368
|
return i;
|
|
3349
|
-
},
|
|
3369
|
+
}, Ua = (e) => {
|
|
3350
3370
|
let { origin: t, pathname: n, search: r } = e.location;
|
|
3351
3371
|
return `${t}${n}${r}`;
|
|
3352
|
-
},
|
|
3372
|
+
}, Wa = (e, t) => `${t}-${e.crypto?.randomUUID?.() ?? `${Date.now()}-${Math.random().toString(36).slice(2)}`}`, Ga = (e) => ({
|
|
3353
3373
|
tag: e.fingerprintTag,
|
|
3354
3374
|
id: e.fingerprintId,
|
|
3355
3375
|
testId: e.fingerprintTestId,
|
|
@@ -3357,10 +3377,10 @@ var pa = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3357
3377
|
ariaLabel: e.fingerprintAriaLabel,
|
|
3358
3378
|
classes: [...e.fingerprintClasses],
|
|
3359
3379
|
text: e.fingerprintText
|
|
3360
|
-
}),
|
|
3380
|
+
}), Ka = (e) => ({
|
|
3361
3381
|
id: e.id,
|
|
3362
3382
|
selector: e.selector,
|
|
3363
|
-
fingerprint:
|
|
3383
|
+
fingerprint: Ga(e),
|
|
3364
3384
|
before: {
|
|
3365
3385
|
left: e.beforeLeft,
|
|
3366
3386
|
top: e.beforeTop,
|
|
@@ -3381,21 +3401,21 @@ var pa = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3381
3401
|
x: e.desiredOffsetX,
|
|
3382
3402
|
y: e.desiredOffsetY
|
|
3383
3403
|
}
|
|
3384
|
-
}),
|
|
3404
|
+
}), qa = (e) => ({
|
|
3385
3405
|
id: e.id,
|
|
3386
3406
|
createdAt: e.createdAt,
|
|
3387
3407
|
pageUrl: e.pageUrl,
|
|
3388
|
-
targets: e.targets.map(
|
|
3389
|
-
}),
|
|
3408
|
+
targets: e.targets.map(Ka)
|
|
3409
|
+
}), Ja = (e) => ({
|
|
3390
3410
|
value: e.style.getPropertyValue("transform"),
|
|
3391
3411
|
priority: e.style.getPropertyPriority("transform")
|
|
3392
|
-
}),
|
|
3412
|
+
}), Ya = (e, t) => e.value === t.value && e.priority === t.priority, Xa = (e) => {
|
|
3393
3413
|
let { element: t, beforeTransform: n, appliedTransform: r } = e;
|
|
3394
|
-
|
|
3395
|
-
},
|
|
3396
|
-
id:
|
|
3414
|
+
Ya(Ja(t), r) && (n.value || n.priority ? t.style.setProperty("transform", n.value, n.priority) : t.style.removeProperty("transform"));
|
|
3415
|
+
}, Za = (e) => e instanceof Element && !!e.closest("input, textarea, select, [contenteditable='true'], [contenteditable='']"), Qa = () => ar({
|
|
3416
|
+
id: va,
|
|
3397
3417
|
version: "0.1.0",
|
|
3398
|
-
requires: [
|
|
3418
|
+
requires: [Ca, "tool:select"],
|
|
3399
3419
|
provides: [
|
|
3400
3420
|
"tool:arrange",
|
|
3401
3421
|
"intent:arrange",
|
|
@@ -3403,19 +3423,19 @@ var pa = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3403
3423
|
"settings:arrange"
|
|
3404
3424
|
],
|
|
3405
3425
|
setup(e) {
|
|
3406
|
-
let t = e.service.get(
|
|
3426
|
+
let t = e.service.get(Ca);
|
|
3407
3427
|
if (!t) throw Error("Arrange plugin requires the Solid renderer runtime.");
|
|
3408
3428
|
let { ownerDocument: n, ownerWindow: r } = t, i = t.createWorkspaceRuntime(), a = t.createInspectorMount(), o = t.pageTarget ?? n.body ?? n.documentElement, s = t.portalTarget, c = r;
|
|
3409
3429
|
e.state.register({
|
|
3410
|
-
id:
|
|
3430
|
+
id: ba,
|
|
3411
3431
|
initial: { intents: [] },
|
|
3412
3432
|
history: !0,
|
|
3413
3433
|
persist: !0
|
|
3414
3434
|
}), e.state.register({
|
|
3415
|
-
id:
|
|
3435
|
+
id: xa,
|
|
3416
3436
|
initial: !1
|
|
3417
3437
|
}), e.state.register({
|
|
3418
|
-
id:
|
|
3438
|
+
id: Sa,
|
|
3419
3439
|
initial: {
|
|
3420
3440
|
snapping: !0,
|
|
3421
3441
|
elementEdges: !0,
|
|
@@ -3429,16 +3449,16 @@ var pa = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3429
3449
|
let l = a.element;
|
|
3430
3450
|
l.dataset.mesurerArrange = "true", l.style.position = "fixed", l.style.inset = "0", l.style.zIndex = "84", l.style.pointerEvents = "none";
|
|
3431
3451
|
let u = n.createElement("div");
|
|
3432
|
-
u.dataset.mesurerArrangeSnapLine = "vertical", u.setAttribute("aria-hidden", "true"), u.style.position = "fixed", u.style.display = "none", u.style.width = "1px", u.style.backgroundColor =
|
|
3452
|
+
u.dataset.mesurerArrangeSnapLine = "vertical", u.setAttribute("aria-hidden", "true"), u.style.position = "fixed", u.style.display = "none", u.style.width = "1px", u.style.backgroundColor = Na, u.style.pointerEvents = "none";
|
|
3433
3453
|
let d = n.createElement("div");
|
|
3434
|
-
d.dataset.mesurerArrangeSnapLine = "horizontal", d.setAttribute("aria-hidden", "true"), d.style.position = "fixed", d.style.display = "none", d.style.height = "1px", d.style.backgroundColor =
|
|
3454
|
+
d.dataset.mesurerArrangeSnapLine = "horizontal", d.setAttribute("aria-hidden", "true"), d.style.position = "fixed", d.style.display = "none", d.style.height = "1px", d.style.backgroundColor = Na, d.style.pointerEvents = "none";
|
|
3435
3455
|
let f = n.createElement("div");
|
|
3436
3456
|
f.dataset.mesurerArrangeBox = "true", f.setAttribute("role", "application"), f.setAttribute("aria-label", "Arrange selected elements"), f.style.position = "fixed", f.style.display = "none", f.style.boxSizing = "border-box", f.style.border = "1px solid #0d99ff", f.style.cursor = "grab", f.style.pointerEvents = "auto", f.style.touchAction = "none", f.style.userSelect = "none", l.append(u, d, f);
|
|
3437
3457
|
let p = /* @__PURE__ */ new Map(), m = /* @__PURE__ */ new Map(), h = {
|
|
3438
3458
|
intentId: null,
|
|
3439
3459
|
state: "desired"
|
|
3440
3460
|
}, g = null, _ = null, v = !1, y = 0, b = null, x = () => e.state.get("mesurer.arrange.intents") ?? { intents: [] }, S = () => e.state.get("mesurer.arrange.active") ?? !1, C = () => {
|
|
3441
|
-
let t = e.state.get(
|
|
3461
|
+
let t = e.state.get(Sa);
|
|
3442
3462
|
return {
|
|
3443
3463
|
snapping: t?.snapping ?? !0,
|
|
3444
3464
|
elementEdges: t?.elementEdges ?? !0,
|
|
@@ -3448,21 +3468,21 @@ var pa = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3448
3468
|
snapLines: t?.snapLines ?? !0
|
|
3449
3469
|
};
|
|
3450
3470
|
}, w = (t) => {
|
|
3451
|
-
e.state.update(
|
|
3471
|
+
e.state.update(Sa, (e) => ({
|
|
3452
3472
|
...e,
|
|
3453
3473
|
...t
|
|
3454
3474
|
}));
|
|
3455
|
-
}, T = () =>
|
|
3475
|
+
}, T = () => Ua(r), E = () => x().intents.filter((e) => e.pageUrl === T()), D = (e) => !!e.closest("[data-mesurer-island='true'], [data-mesurer-inspector-ui='true'], [data-mesurer-root='true']"), O = (e) => ki(e, o) && !D(e), k = (e) => {
|
|
3456
3476
|
let t = [];
|
|
3457
3477
|
o instanceof c.HTMLElement && o.matches(e) && !D(o) && t.push(o);
|
|
3458
3478
|
for (let n of o.querySelectorAll(e)) n instanceof c.HTMLElement && O(n) && t.push(n);
|
|
3459
3479
|
return t;
|
|
3460
3480
|
}, A = (e) => {
|
|
3461
|
-
let t =
|
|
3462
|
-
if (!
|
|
3481
|
+
let t = Ga(e);
|
|
3482
|
+
if (!Mi(t)) return null;
|
|
3463
3483
|
let n = [];
|
|
3464
3484
|
try {
|
|
3465
|
-
n = k(e.selector).filter((e) =>
|
|
3485
|
+
n = k(e.selector).filter((e) => Ni(e, t));
|
|
3466
3486
|
} catch {
|
|
3467
3487
|
return null;
|
|
3468
3488
|
}
|
|
@@ -3470,7 +3490,7 @@ var pa = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3470
3490
|
if (!t.id && !t.testId) {
|
|
3471
3491
|
let e = [];
|
|
3472
3492
|
try {
|
|
3473
|
-
e = k(t.tag).filter((e) =>
|
|
3493
|
+
e = k(t.tag).filter((e) => Ni(e, t));
|
|
3474
3494
|
} catch {
|
|
3475
3495
|
return null;
|
|
3476
3496
|
}
|
|
@@ -3478,7 +3498,7 @@ var pa = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3478
3498
|
}
|
|
3479
3499
|
return n[0] ?? null;
|
|
3480
3500
|
}, j = () => {
|
|
3481
|
-
for (let e of p.values())
|
|
3501
|
+
for (let e of p.values()) Xa(e);
|
|
3482
3502
|
p.clear();
|
|
3483
3503
|
}, M = () => {
|
|
3484
3504
|
u.style.display = "none", d.style.display = "none";
|
|
@@ -3532,11 +3552,11 @@ var pa = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3532
3552
|
j();
|
|
3533
3553
|
for (let [t, n] of e) {
|
|
3534
3554
|
if (!t.isConnected || !O(t) || n.x === 0 && n.y === 0) continue;
|
|
3535
|
-
let e =
|
|
3555
|
+
let e = Ja(t), i = r.getComputedStyle(t).transform, a = i && i !== "none" ? ` ${i}` : "";
|
|
3536
3556
|
t.style.setProperty("transform", `translate3d(${n.x}px, ${n.y}px, 0)${a}`, "important"), p.set(t, {
|
|
3537
3557
|
element: t,
|
|
3538
3558
|
beforeTransform: e,
|
|
3539
|
-
appliedTransform:
|
|
3559
|
+
appliedTransform: Ja(t)
|
|
3540
3560
|
});
|
|
3541
3561
|
}
|
|
3542
3562
|
}, L = () => I(te()), R = (e) => {
|
|
@@ -3548,24 +3568,24 @@ var pa = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3548
3568
|
}
|
|
3549
3569
|
}, z = () => i.currentSelection().elements.filter((e) => e instanceof c.HTMLElement && e.isConnected && O(e));
|
|
3550
3570
|
e.state.register({
|
|
3551
|
-
id:
|
|
3571
|
+
id: Oa,
|
|
3552
3572
|
initial: z().length > 0
|
|
3553
3573
|
});
|
|
3554
|
-
let B = () => e.state.get(
|
|
3574
|
+
let B = () => e.state.get(Oa) ?? !1, V = () => {
|
|
3555
3575
|
let t = z().length > 0;
|
|
3556
|
-
t !== B() && e.state.update(
|
|
3557
|
-
}, ne = () =>
|
|
3576
|
+
t !== B() && e.state.update(Oa, () => t);
|
|
3577
|
+
}, ne = () => La(z().map((e) => Oi(e))), re = (e) => {
|
|
3558
3578
|
let t = C();
|
|
3559
3579
|
if (!t.snapping) return [];
|
|
3560
3580
|
let n = [], a = new Set(e), s = i.snapshot(), l = s.xrayVisible && t.preferXrayEdges && t.elementEdges, u = 0, d = (i) => {
|
|
3561
|
-
if (u >=
|
|
3581
|
+
if (u >= Ma || a.has(i) || e.some((e) => e.contains(i)) || !O(i)) return;
|
|
3562
3582
|
let o = r.getComputedStyle(i);
|
|
3563
3583
|
if (o.display === "none" || o.visibility === "hidden" || o.visibility === "collapse") return;
|
|
3564
3584
|
let s = o.outlineStyle === "solid" && (Number.parseFloat(o.outlineWidth) || 0) > 0;
|
|
3565
3585
|
if (l && !s) return;
|
|
3566
|
-
let c =
|
|
3586
|
+
let c = Oi(i);
|
|
3567
3587
|
if (c.width <= 0 || c.height <= 0) return;
|
|
3568
|
-
let d =
|
|
3588
|
+
let d = ja;
|
|
3569
3589
|
if (c.left + c.width < -160 || c.top + c.height < -160 || c.left > r.innerWidth + d || c.top > r.innerHeight + d) return;
|
|
3570
3590
|
u += 1;
|
|
3571
3591
|
let f = c.left + c.width, p = c.top + c.height;
|
|
@@ -3606,7 +3626,7 @@ var pa = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3606
3626
|
if (t.elementEdges || t.elementCenters) {
|
|
3607
3627
|
o instanceof c.HTMLElement && d(o);
|
|
3608
3628
|
for (let e of o.querySelectorAll("*")) {
|
|
3609
|
-
if (u >=
|
|
3629
|
+
if (u >= Ma) break;
|
|
3610
3630
|
e instanceof c.HTMLElement && d(e);
|
|
3611
3631
|
}
|
|
3612
3632
|
}
|
|
@@ -3654,7 +3674,7 @@ var pa = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3654
3674
|
y = 0, ae();
|
|
3655
3675
|
}));
|
|
3656
3676
|
}, oe = async () => {
|
|
3657
|
-
s.querySelector("[data-mesurer-builtin='select'] button")?.getAttribute("aria-pressed") !== "true" && await e.command.execute(
|
|
3677
|
+
s.querySelector("[data-mesurer-builtin='select'] button")?.getAttribute("aria-pressed") !== "true" && await e.command.execute(wa, void 0, { source: "arrange" });
|
|
3658
3678
|
}, se = (e) => {
|
|
3659
3679
|
if (!S() || e.button !== 0) return;
|
|
3660
3680
|
let t = z();
|
|
@@ -3666,15 +3686,15 @@ var pa = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3666
3686
|
let n = F(E());
|
|
3667
3687
|
j();
|
|
3668
3688
|
let r = t.map((e, t) => {
|
|
3669
|
-
let r =
|
|
3689
|
+
let r = Oi(e), i = n.get(e) ?? {
|
|
3670
3690
|
x: 0,
|
|
3671
3691
|
y: 0
|
|
3672
|
-
}, a =
|
|
3692
|
+
}, a = Fa(r, i), o = ji(e);
|
|
3673
3693
|
return {
|
|
3674
3694
|
element: e,
|
|
3675
3695
|
target: {
|
|
3676
3696
|
id: `target-${t + 1}`,
|
|
3677
|
-
selector:
|
|
3697
|
+
selector: Ai(e),
|
|
3678
3698
|
fingerprintTag: o.tag,
|
|
3679
3699
|
fingerprintId: o.id,
|
|
3680
3700
|
fingerprintTestId: o.testId,
|
|
@@ -3696,7 +3716,7 @@ var pa = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3696
3716
|
desiredOffsetY: i.y
|
|
3697
3717
|
}
|
|
3698
3718
|
};
|
|
3699
|
-
}), i =
|
|
3719
|
+
}), i = La(r.map(({ target: e }) => ({
|
|
3700
3720
|
left: e.beforeLeft,
|
|
3701
3721
|
top: e.beforeTop,
|
|
3702
3722
|
width: e.beforeWidth,
|
|
@@ -3720,10 +3740,10 @@ var pa = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3720
3740
|
if (!g || e.pointerId !== g.pointerId) return;
|
|
3721
3741
|
let t = e.clientX - g.originX, n = e.clientY - g.originY, r = null;
|
|
3722
3742
|
e.shiftKey && (Math.abs(t) >= Math.abs(n) ? (n = 0, r = "x") : (t = 0, r = "y"));
|
|
3723
|
-
let i =
|
|
3743
|
+
let i = Fa(g.groupBefore, {
|
|
3724
3744
|
x: t,
|
|
3725
3745
|
y: n
|
|
3726
|
-
}), a = r === "y" ? null :
|
|
3746
|
+
}), a = r === "y" ? null : Ha("x", i, g.snapCandidates), o = r === "x" ? null : Ha("y", i, g.snapCandidates);
|
|
3727
3747
|
t += a?.delta ?? 0, n += o?.delta ?? 0, g.dx = t, g.dy = n;
|
|
3728
3748
|
let s = F(E());
|
|
3729
3749
|
for (let e of g.targets) s.set(e.element, {
|
|
@@ -3731,7 +3751,7 @@ var pa = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3731
3751
|
y: e.target.beforeOffsetY + n
|
|
3732
3752
|
});
|
|
3733
3753
|
I(s);
|
|
3734
|
-
let c =
|
|
3754
|
+
let c = Fa(g.groupBefore, {
|
|
3735
3755
|
x: t,
|
|
3736
3756
|
y: n
|
|
3737
3757
|
});
|
|
@@ -3749,7 +3769,7 @@ var pa = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3749
3769
|
return;
|
|
3750
3770
|
}
|
|
3751
3771
|
_ = {
|
|
3752
|
-
id:
|
|
3772
|
+
id: Wa(r, "arrange"),
|
|
3753
3773
|
createdAt: Date.now(),
|
|
3754
3774
|
pageUrl: T(),
|
|
3755
3775
|
targets: n.targets.map(({ target: e }) => ({
|
|
@@ -3759,13 +3779,13 @@ var pa = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3759
3779
|
desiredOffsetX: e.beforeOffsetX + n.dx,
|
|
3760
3780
|
desiredOffsetY: e.beforeOffsetY + n.dy
|
|
3761
3781
|
}))
|
|
3762
|
-
}, e.command.execute(
|
|
3782
|
+
}, e.command.execute(Ea).catch(() => {
|
|
3763
3783
|
_ = null, ie(), H();
|
|
3764
3784
|
});
|
|
3765
3785
|
}, de = (e) => {
|
|
3766
3786
|
!g || e.pointerId !== g.pointerId || le();
|
|
3767
3787
|
}, fe = (t) => {
|
|
3768
|
-
t.key !== "Escape" || !S() && !g ||
|
|
3788
|
+
t.key !== "Escape" || !S() && !g || Za(t.target) || s.querySelector("[data-mesurer-tool-menu]") || (t.preventDefault(), t.stopImmediatePropagation(), g ? le() : (e.state.update("mesurer.arrange.active", () => !1), U(), H()));
|
|
3769
3789
|
};
|
|
3770
3790
|
f.addEventListener("pointerdown", se), f.addEventListener("pointermove", ce), f.addEventListener("pointerup", ue), f.addEventListener("pointercancel", de), r.addEventListener("keydown", fe, !0), r.addEventListener("resize", W), r.addEventListener("scroll", W, !0), o.addEventListener("scroll", W, !0), b = new c.MutationObserver(() => {
|
|
3771
3791
|
V(), W();
|
|
@@ -3785,18 +3805,18 @@ var pa = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3785
3805
|
V(), W();
|
|
3786
3806
|
}), me = e.state.subscribe(W), he = (e) => x().intents.find((t) => t.id === e) ?? null, ge = (e, t) => {
|
|
3787
3807
|
let n = null;
|
|
3788
|
-
if (n = t === "before" ?
|
|
3808
|
+
if (n = t === "before" ? La(e.targets.map((e) => ({
|
|
3789
3809
|
left: e.beforeLeft,
|
|
3790
3810
|
top: e.beforeTop,
|
|
3791
3811
|
width: e.beforeWidth,
|
|
3792
3812
|
height: e.beforeHeight
|
|
3793
|
-
}))) : t === "desired" ?
|
|
3813
|
+
}))) : t === "desired" ? La(e.targets.map((e) => ({
|
|
3794
3814
|
left: e.desiredLeft,
|
|
3795
3815
|
top: e.desiredTop,
|
|
3796
3816
|
width: e.desiredWidth,
|
|
3797
3817
|
height: e.desiredHeight
|
|
3798
|
-
}))) : R(() =>
|
|
3799
|
-
let i = Math.max(0, n.left -
|
|
3818
|
+
}))) : R(() => La(e.targets.map((e) => A(e)).filter((e) => e !== null).map((e) => Oi(e)))), !n) throw Error(`Arrange intent has no resolvable capture region: ${e.id}`);
|
|
3819
|
+
let i = Math.max(0, n.left - Aa), a = Math.max(0, n.top - Aa), o = Math.min(r.innerWidth, n.left + n.width + Aa), s = Math.min(r.innerHeight, n.top + n.height + Aa);
|
|
3800
3820
|
return {
|
|
3801
3821
|
left: i,
|
|
3802
3822
|
top: a,
|
|
@@ -3805,10 +3825,10 @@ var pa = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3805
3825
|
};
|
|
3806
3826
|
}, _e = {
|
|
3807
3827
|
active: S,
|
|
3808
|
-
intents: () => x().intents.map(
|
|
3828
|
+
intents: () => x().intents.map(qa),
|
|
3809
3829
|
intent(e) {
|
|
3810
3830
|
let t = he(e);
|
|
3811
|
-
return t ?
|
|
3831
|
+
return t ? qa(t) : null;
|
|
3812
3832
|
},
|
|
3813
3833
|
show(e, t) {
|
|
3814
3834
|
if (!he(e)) throw Error(`Arrange intent not found: ${e}`);
|
|
@@ -3841,7 +3861,7 @@ var pa = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3841
3861
|
}]
|
|
3842
3862
|
};
|
|
3843
3863
|
},
|
|
3844
|
-
review: (e, t =
|
|
3864
|
+
review: (e, t = ka) => {
|
|
3845
3865
|
let n = he(e);
|
|
3846
3866
|
if (!n) throw Error(`Arrange intent not found: ${e}`);
|
|
3847
3867
|
let r = R(() => n.targets.map((e) => {
|
|
@@ -3859,7 +3879,7 @@ var pa = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3859
3879
|
delta: null,
|
|
3860
3880
|
matched: !1
|
|
3861
3881
|
};
|
|
3862
|
-
let i =
|
|
3882
|
+
let i = Oi(n), a = Ia(i, r), o = Math.abs(a.left) <= t && Math.abs(a.top) <= t && Math.abs(a.width) <= t && Math.abs(a.height) <= t;
|
|
3863
3883
|
return {
|
|
3864
3884
|
targetId: e.id,
|
|
3865
3885
|
selector: e.selector,
|
|
@@ -3879,7 +3899,7 @@ var pa = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3879
3899
|
};
|
|
3880
3900
|
},
|
|
3881
3901
|
clear: async () => {
|
|
3882
|
-
await e.command.execute(
|
|
3902
|
+
await e.command.execute(Da);
|
|
3883
3903
|
}
|
|
3884
3904
|
};
|
|
3885
3905
|
e.tool.register({
|
|
@@ -3887,8 +3907,8 @@ var pa = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3887
3907
|
label: "Arrange",
|
|
3888
3908
|
shortcut: "Shift+A",
|
|
3889
3909
|
order: 65,
|
|
3890
|
-
command:
|
|
3891
|
-
icon:
|
|
3910
|
+
command: Ta,
|
|
3911
|
+
icon: Pa,
|
|
3892
3912
|
active: S,
|
|
3893
3913
|
menu: {
|
|
3894
3914
|
label: "Arrange options",
|
|
@@ -3995,28 +4015,28 @@ var pa = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3995
4015
|
disabled: () => !C().snapping
|
|
3996
4016
|
}
|
|
3997
4017
|
]
|
|
3998
|
-
}), e.command.register(
|
|
4018
|
+
}), e.command.register(Ta, async () => {
|
|
3999
4019
|
let t = !S();
|
|
4000
4020
|
if (t && await oe(), e.state.update("mesurer.arrange.active", () => t), !t) {
|
|
4001
4021
|
g && le(), U(), H();
|
|
4002
4022
|
return;
|
|
4003
4023
|
}
|
|
4004
4024
|
ie(), H();
|
|
4005
|
-
}), e.command.register(
|
|
4025
|
+
}), e.command.register(Ea, () => {
|
|
4006
4026
|
let t = _;
|
|
4007
4027
|
_ = null, t && (e.state.update("mesurer.arrange.intents", (e) => ({ intents: [...e.intents, t].slice(-100) })), ie(), H());
|
|
4008
|
-
}), e.command.register(
|
|
4009
|
-
e.state.update(
|
|
4028
|
+
}), e.command.register(Da, () => {
|
|
4029
|
+
e.state.update(ba, () => ({ intents: [] })), h = {
|
|
4010
4030
|
intentId: null,
|
|
4011
4031
|
state: "desired"
|
|
4012
4032
|
}, j(), M(), S() ? N() : P(), H();
|
|
4013
|
-
}), e.service.provide(
|
|
4033
|
+
}), e.service.provide(ya, _e), L(), H(), e.lifecycle.onDispose(() => {
|
|
4014
4034
|
v = !0, y && r.cancelAnimationFrame(y), b?.disconnect(), b = null, f.removeEventListener("pointerdown", se), f.removeEventListener("pointermove", ce), f.removeEventListener("pointerup", ue), f.removeEventListener("pointercancel", de), r.removeEventListener("keydown", fe, !0), r.removeEventListener("resize", W), r.removeEventListener("scroll", W, !0), o.removeEventListener("scroll", W, !0), pe(), me.dispose(), j(), M(), P(), i.dispose(), a.dispose();
|
|
4015
4035
|
});
|
|
4016
4036
|
}
|
|
4017
|
-
}),
|
|
4037
|
+
}), $a = (e, t, n) => {
|
|
4018
4038
|
let r = !1, i = 0, a = null, o = null, s = () => ({
|
|
4019
|
-
visible: (e.state.get("mesurer.arrange.active") ?? !1) ||
|
|
4039
|
+
visible: (e.state.get("mesurer.arrange.active") ?? !1) || _a(e).keepArrangeChanges,
|
|
4020
4040
|
intents: e.state.get("mesurer.arrange.intents")?.intents ?? []
|
|
4021
4041
|
}), c = (e, t) => e?.visible === t.visible && e.intents === t.intents, l = (e) => {
|
|
4022
4042
|
if (a = e, e.visible) {
|
|
@@ -4037,23 +4057,23 @@ var pa = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
4037
4057
|
l(s()), e.lifecycle.onDispose(() => {
|
|
4038
4058
|
r = !0, i && n.cancelAnimationFrame(i), i = 0, o = null, d.dispose();
|
|
4039
4059
|
});
|
|
4040
|
-
},
|
|
4060
|
+
}, eo = [
|
|
4041
4061
|
"[data-mesurer-measurement='true']",
|
|
4042
4062
|
"[data-mesurer-selected-measurement='true']",
|
|
4043
4063
|
"[data-mesurer-inspector-ui='true']"
|
|
4044
|
-
].join(""),
|
|
4064
|
+
].join(""), to = "[data-mesurer-text-edit-runtime='true']", no = "[data-mesurer-text-editor='true']", ro = (e, t) => {
|
|
4045
4065
|
let n = t.ownerDocument.body;
|
|
4046
4066
|
if (!n) return;
|
|
4047
|
-
let r = t.ownerWindow, i = /* @__PURE__ */ new Map(), a = e.state.get("mesurer.arrange.active") ?? !1, o = null, s = null, c = (e) => e.matches(
|
|
4067
|
+
let r = t.ownerWindow, i = /* @__PURE__ */ new Map(), a = e.state.get("mesurer.arrange.active") ?? !1, o = null, s = null, c = (e) => e.matches(eo) && e.getRootNode() === t.ownerDocument && e.parentElement === n, l = () => {
|
|
4048
4068
|
for (let [e, t] of i) e.isConnected && (t.value || t.priority ? e.style.setProperty("visibility", t.value, t.priority) : e.style.removeProperty("visibility"));
|
|
4049
4069
|
i.clear();
|
|
4050
|
-
}, u = () => !!o?.querySelector(
|
|
4070
|
+
}, u = () => !!o?.querySelector(no), d = (e) => {
|
|
4051
4071
|
!a || u() || !c(e) || (i.has(e) || i.set(e, {
|
|
4052
4072
|
value: e.style.getPropertyValue("visibility"),
|
|
4053
4073
|
priority: e.style.getPropertyPriority("visibility")
|
|
4054
4074
|
}), (e.style.getPropertyValue("visibility") !== "hidden" || e.style.getPropertyPriority("visibility") !== "important") && e.style.setProperty("visibility", "hidden", "important"));
|
|
4055
4075
|
}, f = () => {
|
|
4056
|
-
if (!(!a || u())) for (let e of n.querySelectorAll(
|
|
4076
|
+
if (!(!a || u())) for (let e of n.querySelectorAll(eo)) e instanceof r.HTMLElement && d(e);
|
|
4057
4077
|
}, p = () => {
|
|
4058
4078
|
!a || u() ? l() : f();
|
|
4059
4079
|
}, m = (e) => {
|
|
@@ -4068,14 +4088,14 @@ var pa = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
4068
4088
|
}), p();
|
|
4069
4089
|
}
|
|
4070
4090
|
}, h = () => {
|
|
4071
|
-
let e = n.querySelectorAll(
|
|
4091
|
+
let e = n.querySelectorAll(to);
|
|
4072
4092
|
return e.item(e.length - 1);
|
|
4073
4093
|
};
|
|
4074
4094
|
m(h());
|
|
4075
4095
|
let g = new r.MutationObserver((e) => {
|
|
4076
4096
|
let t = !1;
|
|
4077
4097
|
for (let n of e) {
|
|
4078
|
-
for (let e of n.addedNodes) e instanceof r.HTMLElement && (e.matches(
|
|
4098
|
+
for (let e of n.addedNodes) e instanceof r.HTMLElement && (e.matches(to) && (t = !0), d(e));
|
|
4079
4099
|
for (let e of n.removedNodes) e === o && (t = !0);
|
|
4080
4100
|
}
|
|
4081
4101
|
t && m(h());
|
|
@@ -4088,20 +4108,20 @@ var pa = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
4088
4108
|
p(), e.lifecycle.onDispose(() => {
|
|
4089
4109
|
g.disconnect(), s?.disconnect(), s = null, _.dispose(), l();
|
|
4090
4110
|
});
|
|
4091
|
-
},
|
|
4092
|
-
let e =
|
|
4111
|
+
}, io = () => {
|
|
4112
|
+
let e = Qa();
|
|
4093
4113
|
return {
|
|
4094
4114
|
...e,
|
|
4095
4115
|
async setup(t) {
|
|
4096
4116
|
await e.setup(t);
|
|
4097
|
-
let n = t.service.get(
|
|
4117
|
+
let n = t.service.get(ya);
|
|
4098
4118
|
if (!n) throw Error("Arrange presentation policy requires the Arrange service.");
|
|
4099
4119
|
let r = t.service.get("runtime:solid");
|
|
4100
4120
|
if (!r) throw Error("Arrange presentation policy requires the Solid renderer runtime.");
|
|
4101
|
-
|
|
4121
|
+
$a(t, n, r.ownerWindow), ro(t, r);
|
|
4102
4122
|
}
|
|
4103
4123
|
};
|
|
4104
|
-
},
|
|
4124
|
+
}, ao = (e, t, n, r) => ar({
|
|
4105
4125
|
id: `mesurer.${e}`,
|
|
4106
4126
|
version: "0.1.0",
|
|
4107
4127
|
provides: [`tool:${e}`],
|
|
@@ -4115,7 +4135,7 @@ var pa = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
4115
4135
|
command: `builtin.${e}`
|
|
4116
4136
|
});
|
|
4117
4137
|
}
|
|
4118
|
-
}),
|
|
4138
|
+
}), oo = () => ao("select", "Select", "S", 10), so = () => ao("xray", "X-ray", "X", 20), co = () => ao("color-picker", "Color picker", "P", 30), lo = () => ao("rulers", "Rulers", "R", 40), uo = () => ao("text-inspector", "Typography", "A", 50), fo = () => ao("guides", "Guides", "G", 60), po = () => ao("settings", "Settings", "⌘/Ctrl+,", 90), mo = () => ar({
|
|
4119
4139
|
id: "mesurer.distance",
|
|
4120
4140
|
version: "0.1.0",
|
|
4121
4141
|
provides: ["overlay:distance", "settings:selection-spacing"],
|
|
@@ -4131,21 +4151,21 @@ var pa = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
4131
4151
|
order: 30
|
|
4132
4152
|
});
|
|
4133
4153
|
}
|
|
4134
|
-
}),
|
|
4135
|
-
io(),
|
|
4136
|
-
ao(),
|
|
4154
|
+
}), ho = () => [
|
|
4137
4155
|
oo(),
|
|
4138
4156
|
so(),
|
|
4139
4157
|
co(),
|
|
4140
4158
|
lo(),
|
|
4159
|
+
uo(),
|
|
4141
4160
|
fo(),
|
|
4142
|
-
|
|
4161
|
+
mo(),
|
|
4162
|
+
po()
|
|
4143
4163
|
];
|
|
4144
|
-
function
|
|
4164
|
+
function go(e = [], t = []) {
|
|
4145
4165
|
let n = new Set(t.map((e) => `mesurer.${e}`));
|
|
4146
|
-
return [...
|
|
4166
|
+
return [...ho().filter((e) => !n.has(e.id)), ...e];
|
|
4147
4167
|
}
|
|
4148
|
-
var
|
|
4168
|
+
var _o = (e, t, n) => Math.min(Math.max(e, t), Math.max(t, n)), vo = (e, t, n = 0) => !(e.left + e.width + n <= t.left || t.left + t.width + n <= e.left || e.top + e.height + n <= t.top || t.top + t.height + n <= e.top), yo = (e, t, n, r, i) => {
|
|
4149
4169
|
let a = e.left + e.width, o = e.top + e.height, s = [
|
|
4150
4170
|
{
|
|
4151
4171
|
axis: "vertical",
|
|
@@ -4193,7 +4213,7 @@ var ho = (e, t, n) => Math.min(Math.max(e, t), Math.max(t, n)), go = (e, t, n =
|
|
|
4193
4213
|
}
|
|
4194
4214
|
];
|
|
4195
4215
|
return i ? s.sort((e, t) => t.space - e.space) : s;
|
|
4196
|
-
},
|
|
4216
|
+
}, bo = (e, t, n) => {
|
|
4197
4217
|
let r = [];
|
|
4198
4218
|
for (let i = 0; i <= n; i += 1) {
|
|
4199
4219
|
let n = i * t;
|
|
@@ -4219,14 +4239,14 @@ var ho = (e, t, n) => Math.min(Math.max(e, t), Math.max(t, n)), go = (e, t, n =
|
|
|
4219
4239
|
}
|
|
4220
4240
|
return r;
|
|
4221
4241
|
};
|
|
4222
|
-
function
|
|
4242
|
+
function xo(e, t, n = {}) {
|
|
4223
4243
|
let r = n.markerSize ?? 24, i = n.markerGap ?? 4, a = n.targetGap ?? 6, o = n.targetClearance ?? 2, s = n.viewportPadding ?? 4, c = n.obstacles ?? [], l = Math.max(0, n.maxShiftRings ?? 2), u = n.viewportAware ?? !1, d = r + i, f = Math.max(s, t.width - r - s), p = Math.max(s, t.height - r - s), m = [], h = e.map((e) => e.rect), g = [];
|
|
4224
4244
|
for (let n of e) {
|
|
4225
|
-
let e = /* @__PURE__ */ new Set(), _ = [], v =
|
|
4226
|
-
for (let t of
|
|
4245
|
+
let e = /* @__PURE__ */ new Set(), _ = [], v = yo(n.rect, t, r, a, u);
|
|
4246
|
+
for (let t of bo(v, d, l)) {
|
|
4227
4247
|
let n = u ? {
|
|
4228
|
-
left:
|
|
4229
|
-
top:
|
|
4248
|
+
left: _o(t.left, s, f),
|
|
4249
|
+
top: _o(t.top, s, p)
|
|
4230
4250
|
} : t, r = `${n.left}:${n.top}`;
|
|
4231
4251
|
e.has(r) || (e.add(r), _.push(n));
|
|
4232
4252
|
}
|
|
@@ -4236,21 +4256,21 @@ function yo(e, t, n = {}) {
|
|
|
4236
4256
|
width: r,
|
|
4237
4257
|
height: r
|
|
4238
4258
|
};
|
|
4239
|
-
return h.every((e) => !
|
|
4259
|
+
return h.every((e) => !vo(t, e, o)) && c.every((e) => !vo(t, e, i));
|
|
4240
4260
|
}), b = y.find((e) => {
|
|
4241
4261
|
let t = {
|
|
4242
4262
|
...e,
|
|
4243
4263
|
width: r,
|
|
4244
4264
|
height: r
|
|
4245
4265
|
};
|
|
4246
|
-
return m.every((e) => !
|
|
4266
|
+
return m.every((e) => !vo(t, e, i));
|
|
4247
4267
|
}) ?? y.find((e) => {
|
|
4248
4268
|
let t = {
|
|
4249
4269
|
...e,
|
|
4250
4270
|
width: r,
|
|
4251
4271
|
height: r
|
|
4252
4272
|
};
|
|
4253
|
-
return m.every((e) => !
|
|
4273
|
+
return m.every((e) => !vo(t, e));
|
|
4254
4274
|
}) ?? y[0] ?? _[0] ?? {
|
|
4255
4275
|
left: s,
|
|
4256
4276
|
top: s
|
|
@@ -4266,20 +4286,20 @@ function yo(e, t, n = {}) {
|
|
|
4266
4286
|
}
|
|
4267
4287
|
return g;
|
|
4268
4288
|
}
|
|
4269
|
-
var
|
|
4289
|
+
var So = (e, t, n) => Math.min(Math.max(e, t), Math.max(t, n)), Co = 0, wo = (e) => e.split(",").map((e) => e.trim()).filter((e) => e.length > 0 && e !== "none"), To = (e) => {
|
|
4270
4290
|
let t = e.ownerDocument.defaultView?.HTMLElement;
|
|
4271
4291
|
return !!(t && e instanceof t);
|
|
4272
|
-
},
|
|
4273
|
-
let n = e.style.getPropertyValue("anchor-name"), r = e.style.getPropertyPriority("anchor-name"), i =
|
|
4292
|
+
}, Eo = (e, t) => {
|
|
4293
|
+
let n = e.style.getPropertyValue("anchor-name"), r = e.style.getPropertyPriority("anchor-name"), i = wo(n);
|
|
4274
4294
|
i.includes(t) || e.style.setProperty("anchor-name", [...i, t].join(", "), r);
|
|
4275
4295
|
let a = !1;
|
|
4276
4296
|
return () => {
|
|
4277
4297
|
if (a) return;
|
|
4278
4298
|
a = !0;
|
|
4279
|
-
let i =
|
|
4299
|
+
let i = wo(e.style.getPropertyValue("anchor-name")).filter((e) => e !== t);
|
|
4280
4300
|
i.length ? e.style.setProperty("anchor-name", i.join(", "), e.style.getPropertyPriority("anchor-name")) : n.trim() === "none" ? e.style.setProperty("anchor-name", n, r) : e.style.removeProperty("anchor-name");
|
|
4281
4301
|
};
|
|
4282
|
-
},
|
|
4302
|
+
}, Do = (e) => {
|
|
4283
4303
|
if (!e.length) return null;
|
|
4284
4304
|
let t = Math.min(...e.map((e) => e.left)), n = Math.min(...e.map((e) => e.top)), r = Math.max(...e.map((e) => e.left + e.width)), i = Math.max(...e.map((e) => e.top + e.height));
|
|
4285
4305
|
return {
|
|
@@ -4288,14 +4308,14 @@ var bo = (e, t, n) => Math.min(Math.max(e, t), Math.max(t, n)), xo = 0, So = (e)
|
|
|
4288
4308
|
width: r - t,
|
|
4289
4309
|
height: i - n
|
|
4290
4310
|
};
|
|
4291
|
-
},
|
|
4311
|
+
}, Oo = (e, t, n, r, i = 8) => {
|
|
4292
4312
|
let a = r.innerWidth - t - 8, o = r.innerHeight - n - 8, s = e.left + e.width + i, c = e.left - t - i;
|
|
4293
4313
|
return {
|
|
4294
|
-
left: s + t <= r.innerWidth - 8 ? s : c >= 8 ? c :
|
|
4295
|
-
top:
|
|
4314
|
+
left: s + t <= r.innerWidth - 8 ? s : c >= 8 ? c : So(e.left + e.width - t, 8, a),
|
|
4315
|
+
top: So(e.top, 8, o)
|
|
4296
4316
|
};
|
|
4297
|
-
},
|
|
4298
|
-
let a = r.innerWidth - t - 8, o =
|
|
4317
|
+
}, ko = (e, t, n, r, i = 8) => {
|
|
4318
|
+
let a = r.innerWidth - t - 8, o = So(e.left + e.width / 2 - t / 2, 8, a), s = e.top + e.height + i;
|
|
4299
4319
|
if (s + n <= r.innerHeight - 8) return {
|
|
4300
4320
|
left: o,
|
|
4301
4321
|
top: s
|
|
@@ -4304,10 +4324,10 @@ var bo = (e, t, n) => Math.min(Math.max(e, t), Math.max(t, n)), xo = 0, So = (e)
|
|
|
4304
4324
|
return c >= 8 ? {
|
|
4305
4325
|
left: o,
|
|
4306
4326
|
top: c
|
|
4307
|
-
} :
|
|
4327
|
+
} : Oo(e, t, n, r, i);
|
|
4308
4328
|
};
|
|
4309
|
-
function
|
|
4310
|
-
let [t, n] = K(0), [r, i] = K(0), [a, o] = K(null), [s, c] = K(null), [l, u] = K(null), [d, f] = K({}), [p, m] = K(null), [h, g] = K(!1), [_, v] = K(""), [y, b] = K(null), [x, S] = K(!1), [C, w] = K(null), [T, E] = K(null), D = `--mesurer-annotation-trigger-${++
|
|
4329
|
+
function Ao(e) {
|
|
4330
|
+
let [t, n] = K(0), [r, i] = K(0), [a, o] = K(null), [s, c] = K(null), [l, u] = K(null), [d, f] = K({}), [p, m] = K(null), [h, g] = K(!1), [_, v] = K(""), [y, b] = K(null), [x, S] = K(!1), [C, w] = K(null), [T, E] = K(null), D = `--mesurer-annotation-trigger-${++Co}`, O = null, k = e.initialTriggerFallback === "current-and-next", A = null, j = null, M = null, ee, N, P = null, F = null, te = null, I = null, L = null, R = null, z = /* @__PURE__ */ new Map(), B = () => ee?.ownerDocument.defaultView ?? window, V = () => e.coordinateSpace === "viewport", ne = (e) => e ? "native-anchor" : V() ? "cached-delta" : "document", re = (e) => {
|
|
4311
4331
|
if (V()) return e;
|
|
4312
4332
|
let t = B();
|
|
4313
4333
|
return {
|
|
@@ -4342,7 +4362,7 @@ function Oo(e) {
|
|
|
4342
4362
|
}, ue = (t) => {
|
|
4343
4363
|
let n = e.runtime.annotation(t);
|
|
4344
4364
|
return !n || n.anchor.kind !== "elements" ? null : n.resolvedTargets.find(({ element: e }) => e?.isConnected)?.element ?? null;
|
|
4345
|
-
}, de = (e) => !!(
|
|
4365
|
+
}, de = (e) => !!(To(e) && V() && ee && ae() && e.getRootNode() === ee.getRootNode()), fe = (e) => {
|
|
4346
4366
|
let t = ue(e), n = z.get(e);
|
|
4347
4367
|
if (!t) {
|
|
4348
4368
|
n && (le(e), i((e) => e + 1));
|
|
@@ -4356,19 +4376,19 @@ function Oo(e) {
|
|
|
4356
4376
|
le(e);
|
|
4357
4377
|
let a = t.ownerDocument.defaultView;
|
|
4358
4378
|
if (a) {
|
|
4359
|
-
if (r &&
|
|
4360
|
-
let n = `--mesurer-annotation-${++
|
|
4379
|
+
if (r && To(t)) {
|
|
4380
|
+
let n = `--mesurer-annotation-${++Co}`;
|
|
4361
4381
|
z.set(e, {
|
|
4362
4382
|
target: t,
|
|
4363
4383
|
anchorName: n,
|
|
4364
|
-
releaseAnchor:
|
|
4365
|
-
scroll:
|
|
4384
|
+
releaseAnchor: Eo(t, n),
|
|
4385
|
+
scroll: ri(a, t, () => ce(e), { trackWindow: !1 })
|
|
4366
4386
|
});
|
|
4367
4387
|
} else z.set(e, {
|
|
4368
4388
|
target: t,
|
|
4369
4389
|
anchorName: null,
|
|
4370
4390
|
releaseAnchor: null,
|
|
4371
|
-
scroll:
|
|
4391
|
+
scroll: ri(a, t, () => ce(e), { trackWindow: V() })
|
|
4372
4392
|
});
|
|
4373
4393
|
i((e) => e + 1);
|
|
4374
4394
|
}
|
|
@@ -4387,7 +4407,7 @@ function Oo(e) {
|
|
|
4387
4407
|
e.initialTriggerFallback && (O = W());
|
|
4388
4408
|
let ge = () => {
|
|
4389
4409
|
I?.release(), I = null, te?.(), te = null, P = null, F = null;
|
|
4390
|
-
}, _e = (e) => !!(
|
|
4410
|
+
}, _e = (e) => !!(To(e) && V() && ee && e !== O && ae() && e.getRootNode() === ee.getRootNode()), ve = () => {
|
|
4391
4411
|
let e = W();
|
|
4392
4412
|
O && e !== O && (O = null);
|
|
4393
4413
|
let t = P, n = !!(e?.isConnected && _e(e)), r = F === e;
|
|
@@ -4395,16 +4415,16 @@ function Oo(e) {
|
|
|
4395
4415
|
I?.sync();
|
|
4396
4416
|
return;
|
|
4397
4417
|
}
|
|
4398
|
-
let i = e === t ? D : `--mesurer-annotation-trigger-${++
|
|
4418
|
+
let i = e === t ? D : `--mesurer-annotation-trigger-${++Co}`;
|
|
4399
4419
|
if (ge(), !e?.isConnected) return;
|
|
4400
4420
|
P = e;
|
|
4401
4421
|
let a = e.ownerDocument.defaultView;
|
|
4402
4422
|
if (a) {
|
|
4403
|
-
if (n &&
|
|
4404
|
-
te =
|
|
4423
|
+
if (n && To(e)) {
|
|
4424
|
+
te = Eo(e, i), F = e, D = i, I = ri(a, e, se, { trackWindow: !1 });
|
|
4405
4425
|
return;
|
|
4406
4426
|
}
|
|
4407
|
-
D = i, I =
|
|
4427
|
+
D = i, I = ri(a, e, se, { trackWindow: V() });
|
|
4408
4428
|
}
|
|
4409
4429
|
}, ye = (e) => {
|
|
4410
4430
|
if (L?.disconnect(), L = null, !e?.isConnected) return;
|
|
@@ -4470,7 +4490,7 @@ function Oo(e) {
|
|
|
4470
4490
|
};
|
|
4471
4491
|
});
|
|
4472
4492
|
return e.region && t.push({ ...e.region }), t;
|
|
4473
|
-
}), Ne = Gt(() =>
|
|
4493
|
+
}), Ne = Gt(() => Do(Me())), Pe = () => {
|
|
4474
4494
|
let e = we().elements.length;
|
|
4475
4495
|
return e > 1 ? `${e} selected elements` : e === 1 ? "Selected element" : "Selected region";
|
|
4476
4496
|
}, Fe = (e) => e.anchor.kind === "elements" ? `${e.anchor.targets.length} selected ${e.anchor.targets.length === 1 ? "element" : "elements"}` : "Selected region", Ie = Gt(() => {
|
|
@@ -4492,7 +4512,7 @@ function Oo(e) {
|
|
|
4492
4512
|
top: e.top,
|
|
4493
4513
|
width: 24,
|
|
4494
4514
|
height: 24
|
|
4495
|
-
})), [a] =
|
|
4515
|
+
})), [a] = xo([{
|
|
4496
4516
|
id: "selection-note-trigger",
|
|
4497
4517
|
rect: n
|
|
4498
4518
|
}], {
|
|
@@ -4501,7 +4521,7 @@ function Oo(e) {
|
|
|
4501
4521
|
}, {
|
|
4502
4522
|
obstacles: i,
|
|
4503
4523
|
maxShiftRings: 1
|
|
4504
|
-
}), o = a?.left ??
|
|
4524
|
+
}), o = a?.left ?? So(n.left + n.width + 6, 4, r.innerWidth - 24 - 4), s = a?.top ?? So(n.top, 4, r.innerHeight - 24 - 4), c = F === e, l = V() && !c;
|
|
4505
4525
|
return {
|
|
4506
4526
|
left: c || l ? o : o + r.scrollX,
|
|
4507
4527
|
top: c || l ? s : s + r.scrollY,
|
|
@@ -4519,7 +4539,7 @@ function Oo(e) {
|
|
|
4519
4539
|
rect: n
|
|
4520
4540
|
}] : [];
|
|
4521
4541
|
});
|
|
4522
|
-
return new Map(
|
|
4542
|
+
return new Map(xo(i, {
|
|
4523
4543
|
width: n.innerWidth,
|
|
4524
4544
|
height: n.innerHeight
|
|
4525
4545
|
}, { obstacles: Me() }).map((e) => [e.id, e]));
|
|
@@ -4543,7 +4563,7 @@ function Oo(e) {
|
|
|
4543
4563
|
return n && e ? {
|
|
4544
4564
|
left: e.left + n.left,
|
|
4545
4565
|
top: e.top + n.top
|
|
4546
|
-
} : e ?
|
|
4566
|
+
} : e ? ko(e, 272, 168, t) : {
|
|
4547
4567
|
left: 8,
|
|
4548
4568
|
top: 8
|
|
4549
4569
|
};
|
|
@@ -4564,7 +4584,7 @@ function Oo(e) {
|
|
|
4564
4584
|
};
|
|
4565
4585
|
}, Ue = (e, t) => {
|
|
4566
4586
|
let n = B(), r = Re(), i = r.get(e);
|
|
4567
|
-
if (!i) return
|
|
4587
|
+
if (!i) return Oo(t, 272, 176, n);
|
|
4568
4588
|
let a = n.innerWidth - 272 - 8, o = n.innerHeight - 176 - 8, s = [...r.values()].map((e) => ({
|
|
4569
4589
|
left: e.left,
|
|
4570
4590
|
top: e.top,
|
|
@@ -4590,8 +4610,8 @@ function Oo(e) {
|
|
|
4590
4610
|
}
|
|
4591
4611
|
]) {
|
|
4592
4612
|
let t = {
|
|
4593
|
-
left:
|
|
4594
|
-
top:
|
|
4613
|
+
left: So(e.left, 8, a),
|
|
4614
|
+
top: So(e.top, 8, o)
|
|
4595
4615
|
}, n = `${t.left}:${t.top}`;
|
|
4596
4616
|
l.has(n) || (l.add(n), u.push(t));
|
|
4597
4617
|
}
|
|
@@ -4607,7 +4627,7 @@ function Oo(e) {
|
|
|
4607
4627
|
targetOverlap: c(r, t),
|
|
4608
4628
|
index: n
|
|
4609
4629
|
};
|
|
4610
|
-
}).sort((e, t) => e.markerOverlap - t.markerOverlap || e.targetOverlap - t.targetOverlap || e.index - t.index)[0]?.candidate ??
|
|
4630
|
+
}).sort((e, t) => e.markerOverlap - t.markerOverlap || e.targetOverlap - t.targetOverlap || e.index - t.index)[0]?.candidate ?? Oo(t, 272, 176, n);
|
|
4611
4631
|
}, We = (t) => {
|
|
4612
4632
|
let n = e.runtime.annotationRect(t);
|
|
4613
4633
|
if (!n) return {
|
|
@@ -4655,8 +4675,8 @@ function Oo(e) {
|
|
|
4655
4675
|
let u = (t) => {
|
|
4656
4676
|
if (!j || t.pointerId !== j.pointerId) return;
|
|
4657
4677
|
let r = j, i = Math.max(8, s.innerWidth - r.width - 8), a = Math.max(8, s.innerHeight - r.height - 8), o = {
|
|
4658
|
-
left:
|
|
4659
|
-
top:
|
|
4678
|
+
left: So(r.originLeft + t.clientX - r.startX, 8, i),
|
|
4679
|
+
top: So(r.originTop + t.clientY - r.startY, 8, a)
|
|
4660
4680
|
};
|
|
4661
4681
|
if (n === "composer") {
|
|
4662
4682
|
let e = Ne();
|
|
@@ -4701,7 +4721,7 @@ function Oo(e) {
|
|
|
4701
4721
|
k = !1, A = H(), v(""), b(null), w(null), o(null);
|
|
4702
4722
|
let e = Ne();
|
|
4703
4723
|
if (e) {
|
|
4704
|
-
let t =
|
|
4724
|
+
let t = ko(e, 272, 168, B());
|
|
4705
4725
|
m({
|
|
4706
4726
|
left: t.left - e.left,
|
|
4707
4727
|
top: t.top - e.top
|
|
@@ -4765,7 +4785,7 @@ function Oo(e) {
|
|
|
4765
4785
|
});
|
|
4766
4786
|
return nr(() => (e) => {
|
|
4767
4787
|
N = e, I?.sync();
|
|
4768
|
-
}, t), Z(t, J(
|
|
4788
|
+
}, t), Z(t, J(xi, { size: 14 })), q(() => ({
|
|
4769
4789
|
e: V() ? "viewport" : "document",
|
|
4770
4790
|
t: ne(e().nativeAnchor),
|
|
4771
4791
|
a: {
|
|
@@ -4830,10 +4850,10 @@ function Oo(e) {
|
|
|
4830
4850
|
class: "msr:h-7 msr:rounded-[7px] msr:border-0 msr:bg-[#0d99ff] msr:px-2.5 msr:text-[11px] msr:font-medium msr:text-white msr:hover:bg-[#0b8eea]",
|
|
4831
4851
|
onClick: et
|
|
4832
4852
|
});
|
|
4833
|
-
return X(t, n), X(t, s), X(t, c), X(n, r), X(n, o), Z(n, J(
|
|
4853
|
+
return X(t, n), X(t, s), X(t, c), X(n, r), X(n, o), Z(n, J(xi, {
|
|
4834
4854
|
size: 14,
|
|
4835
4855
|
class: "msr:text-ink-700"
|
|
4836
|
-
}), r), X(r, i), X(r, a), X(i, Qn("Add note")), Z(a, Pe), Z(o, J(
|
|
4856
|
+
}), r), X(r, i), X(r, a), X(i, Qn("Add note")), Z(a, Pe), Z(o, J(Ci, { size: 14 })), Z(t, J(Xt, {
|
|
4837
4857
|
get when() {
|
|
4838
4858
|
return y();
|
|
4839
4859
|
},
|
|
@@ -5033,7 +5053,7 @@ function Oo(e) {
|
|
|
5033
5053
|
o(null), w(null);
|
|
5034
5054
|
}
|
|
5035
5055
|
}), y = Y("div", { class: "msr:mx-1 msr:mt-1 msr:max-h-36 msr:overflow-auto msr:whitespace-pre-wrap msr:rounded-[7px] msr:bg-ink-50 msr:px-2 msr:py-2 msr:text-[12px] msr:leading-[1.45] msr:text-ink-800" });
|
|
5036
|
-
return X(i, a), X(i, y), X(a, s), X(a, l), X(a, h), Z(s, r), X(l, d), X(l, m), X(d, p), Z(d, r, null), Z(m, () => Fe(t())), X(h, g), X(h, _), X(h, v), Z(g, J(
|
|
5056
|
+
return X(i, a), X(i, y), X(a, s), X(a, l), X(a, h), Z(s, r), X(l, d), X(l, m), X(d, p), Z(d, r, null), Z(m, () => Fe(t())), X(h, g), X(h, _), X(h, v), Z(g, J(bi, { size: 14 })), Z(_, J(Si, { size: 14 })), Z(v, J(Ci, { size: 14 })), Z(y, () => t().note), Z(i, J(Xt, {
|
|
5037
5057
|
get when() {
|
|
5038
5058
|
return C();
|
|
5039
5059
|
},
|
|
@@ -5065,11 +5085,11 @@ function Oo(e) {
|
|
|
5065
5085
|
})
|
|
5066
5086
|
];
|
|
5067
5087
|
}
|
|
5068
|
-
function
|
|
5088
|
+
function jo(e) {
|
|
5069
5089
|
let t = null;
|
|
5070
|
-
return St(
|
|
5090
|
+
return St(Fi(e.ownerWindow, () => {
|
|
5071
5091
|
t?.abandonNoteComposer();
|
|
5072
|
-
})), J(
|
|
5092
|
+
})), J(Ao, {
|
|
5073
5093
|
get runtime() {
|
|
5074
5094
|
return e.runtime;
|
|
5075
5095
|
},
|
|
@@ -5087,11 +5107,11 @@ function ko(e) {
|
|
|
5087
5107
|
}
|
|
5088
5108
|
});
|
|
5089
5109
|
}
|
|
5090
|
-
var
|
|
5091
|
-
function
|
|
5110
|
+
var Mo = "2147482950", No = "2147483646", Po = "2147483647";
|
|
5111
|
+
function Fo(e) {
|
|
5092
5112
|
let { ownerDocument: t, ownerWindow: n, pageTarget: r } = e, i = t.body;
|
|
5093
5113
|
if (!(i && !(r instanceof n.ShadowRoot) && r.getRootNode() === t)) return e.createInspectorMount();
|
|
5094
|
-
|
|
5114
|
+
zi(ha, i);
|
|
5095
5115
|
let a = t.createElement("div");
|
|
5096
5116
|
a.dataset.mesurerInspectorUi = "true", a.dataset.mesurerDocumentInspectorMount = "true", a.dataset.theme = e.theme?.() ?? "system";
|
|
5097
5117
|
let o = e.subscribeTheme?.((e) => {
|
|
@@ -5109,17 +5129,17 @@ function No(e) {
|
|
|
5109
5129
|
s.dataset.mesurerDocumentInspectorLayerStyle = "true", s.textContent = `
|
|
5110
5130
|
[data-mesurer-document-inspector-mount="true"] [data-mesurer-annotation-target-highlight="true"] {
|
|
5111
5131
|
position: absolute !important;
|
|
5112
|
-
z-index: ${
|
|
5132
|
+
z-index: ${Mo} !important;
|
|
5113
5133
|
}
|
|
5114
5134
|
[data-mesurer-document-inspector-mount="true"] [data-mesurer-annotation-panel="true"] {
|
|
5115
5135
|
position: absolute !important;
|
|
5116
|
-
z-index: ${
|
|
5136
|
+
z-index: ${No} !important;
|
|
5117
5137
|
}
|
|
5118
5138
|
[data-mesurer-document-inspector-mount="true"] [data-mesurer-annotation-marker="true"],
|
|
5119
5139
|
[data-mesurer-document-inspector-mount="true"] [data-mesurer-annotation-trigger="true"],
|
|
5120
5140
|
[data-mesurer-document-inspector-mount="true"] [data-mesurer-annotation-composer="true"] {
|
|
5121
5141
|
position: absolute !important;
|
|
5122
|
-
z-index: ${
|
|
5142
|
+
z-index: ${Po} !important;
|
|
5123
5143
|
}
|
|
5124
5144
|
`, t.head.append(s), i.append(a);
|
|
5125
5145
|
let c = !1;
|
|
@@ -5130,8 +5150,8 @@ function No(e) {
|
|
|
5130
5150
|
}
|
|
5131
5151
|
};
|
|
5132
5152
|
}
|
|
5133
|
-
var
|
|
5134
|
-
let t = e.kind === "columns", n = e.align === "stretch", r = n ? `repeat(${e.count}, minmax(0, 1fr))` : `repeat(${e.count}, ${e.size}px)`, i =
|
|
5153
|
+
var Io = (e) => `color-mix(in srgb, ${e.color} ${e.opacity * 100}%, transparent)`, Lo = (e) => e === "max" ? "end" : e === "center" ? "center" : "start", Ro = (e) => {
|
|
5154
|
+
let t = e.kind === "columns", n = e.align === "stretch", r = n ? `repeat(${e.count}, minmax(0, 1fr))` : `repeat(${e.count}, ${e.size}px)`, i = Lo(e.align);
|
|
5135
5155
|
return {
|
|
5136
5156
|
position: "absolute",
|
|
5137
5157
|
inset: "0",
|
|
@@ -5152,7 +5172,7 @@ var Po = (e) => `color-mix(in srgb, ${e.color} ${e.opacity * 100}%, transparent)
|
|
|
5152
5172
|
transform: e.align === "center" ? t ? `translateX(${e.offset}px)` : `translateY(${e.offset}px)` : void 0
|
|
5153
5173
|
};
|
|
5154
5174
|
};
|
|
5155
|
-
function
|
|
5175
|
+
function zo(e) {
|
|
5156
5176
|
let t = () => e.guides.filter((e) => e.visible);
|
|
5157
5177
|
return J(Xt, {
|
|
5158
5178
|
get when() {
|
|
@@ -5187,7 +5207,7 @@ function Lo(e) {
|
|
|
5187
5207
|
"min-height": "0",
|
|
5188
5208
|
width: "100%",
|
|
5189
5209
|
height: "100%",
|
|
5190
|
-
"background-color":
|
|
5210
|
+
"background-color": Io(e)
|
|
5191
5211
|
}), (e, n) => {
|
|
5192
5212
|
Q(t, "style", e, n);
|
|
5193
5213
|
}), t;
|
|
@@ -5195,7 +5215,7 @@ function Lo(e) {
|
|
|
5195
5215
|
})), q(() => ({
|
|
5196
5216
|
e: e.id,
|
|
5197
5217
|
t: e.kind,
|
|
5198
|
-
a:
|
|
5218
|
+
a: Ro(e)
|
|
5199
5219
|
}), ({ e, t: n, a: r }, i) => {
|
|
5200
5220
|
e !== i?.e && Q(t, "data-mesurer-layout-guide", e, i?.e), n !== i?.t && Q(t, "data-mesurer-layout-guide-kind", n, i?.t), r !== i?.a && Q(t, "style", r, i?.a);
|
|
5201
5221
|
}), t;
|
|
@@ -5208,7 +5228,7 @@ function Lo(e) {
|
|
|
5208
5228
|
return q(() => ({
|
|
5209
5229
|
e: e.id,
|
|
5210
5230
|
t: {
|
|
5211
|
-
"background-image": `linear-gradient(to right, ${
|
|
5231
|
+
"background-image": `linear-gradient(to right, ${Io(e)} 1px, transparent 1px), linear-gradient(to bottom, ${Io(e)} 1px, transparent 1px)`,
|
|
5212
5232
|
"background-size": `${e.size}px ${e.size}px`
|
|
5213
5233
|
}
|
|
5214
5234
|
}), ({ e, t: n }, r) => {
|
|
@@ -5220,34 +5240,34 @@ function Lo(e) {
|
|
|
5220
5240
|
}
|
|
5221
5241
|
});
|
|
5222
5242
|
}
|
|
5223
|
-
var
|
|
5243
|
+
var Bo = "#FF0000", Vo = .1, Ho = /* @__PURE__ */ new Set([
|
|
5224
5244
|
"columns",
|
|
5225
5245
|
"rows",
|
|
5226
5246
|
"grid"
|
|
5227
|
-
]),
|
|
5247
|
+
]), Uo = /* @__PURE__ */ new Set([
|
|
5228
5248
|
"stretch",
|
|
5229
5249
|
"min",
|
|
5230
5250
|
"center",
|
|
5231
5251
|
"max"
|
|
5232
|
-
]),
|
|
5233
|
-
let t = e.kind &&
|
|
5252
|
+
]), Wo = (e, t, n) => Math.min(n, Math.max(t, e)), Go = (e, t) => e !== void 0 && Number.isFinite(e) ? e : t, Ko = (e = {}) => {
|
|
5253
|
+
let t = e.kind && Ho.has(e.kind) ? e.kind : "columns", n = e.align && Uo.has(e.align) ? e.align : t === "grid" ? "min" : "stretch", r = e.id?.trim(), i = e.color?.trim();
|
|
5234
5254
|
return {
|
|
5235
5255
|
id: r || Wr(),
|
|
5236
5256
|
kind: t,
|
|
5237
5257
|
visible: e.visible ?? !0,
|
|
5238
5258
|
color: i || "#FF0000",
|
|
5239
|
-
opacity:
|
|
5240
|
-
count:
|
|
5241
|
-
size:
|
|
5242
|
-
gutter:
|
|
5243
|
-
offset:
|
|
5259
|
+
opacity: Wo(Go(e.opacity, Vo), 0, 1),
|
|
5260
|
+
count: Wo(Math.round(Go(e.count, 5)), 1, 24),
|
|
5261
|
+
size: Wo(Go(e.size, 72), 1, 4096),
|
|
5262
|
+
gutter: Wo(Go(e.gutter, 20), 0, 800),
|
|
5263
|
+
offset: Wo(Go(e.offset, 0), 0, 4096),
|
|
5244
5264
|
align: n
|
|
5245
5265
|
};
|
|
5246
|
-
},
|
|
5266
|
+
}, qo = (e) => (e ?? []).map(Ko), Jo = (e) => {
|
|
5247
5267
|
if (e.kind === "grid") return `Grid ${Math.round(e.size)}px`;
|
|
5248
5268
|
let t = e.kind === "columns" ? "columns" : "rows";
|
|
5249
5269
|
return e.align === "stretch" ? `${e.count} ${t}` : `${e.count} ${t} (${Math.round(e.size)}px)`;
|
|
5250
|
-
},
|
|
5270
|
+
}, Yo = (e) => (() => {
|
|
5251
5271
|
var t = Y("svg", {
|
|
5252
5272
|
xmlns: "http://www.w3.org/2000/svg",
|
|
5253
5273
|
viewBox: "0 0 24 24",
|
|
@@ -5266,22 +5286,22 @@ var Ro = "#FF0000", zo = .1, Bo = /* @__PURE__ */ new Set([
|
|
|
5266
5286
|
}), ({ e, t: n }, r) => {
|
|
5267
5287
|
e !== r?.e && Q(t, "width", e, r?.e), n !== r?.t && Q(t, "height", n, r?.t);
|
|
5268
5288
|
}), t;
|
|
5269
|
-
})(),
|
|
5289
|
+
})(), Xo = (e) => e.kind === "rows" ? J(gi, { size: 14 }) : e.kind === "grid" ? J(mi, { size: 14 }) : J(hi, { size: 14 }), Zo = "msr:grid-cols-[78px_minmax(0,1fr)]", Qo = (e) => (() => {
|
|
5270
5290
|
var t = Y("label", { class: "msr:col-span-2 msr:grid msr:h-8 msr:w-full msr:grid-cols-[78px_minmax(0,1fr)] msr:items-center msr:gap-0 msr:text-[12px] msr:text-ink-700" }), n = Y("span");
|
|
5271
5291
|
return X(t, n), Z(n, () => e.label), Z(t, () => e.children, null), t;
|
|
5272
|
-
})(),
|
|
5292
|
+
})(), $o = (e) => (() => {
|
|
5273
5293
|
var t = Y("span", { class: "msr:relative msr:block msr:w-full" }), n = Y("select", {
|
|
5274
|
-
class:
|
|
5294
|
+
class: ai,
|
|
5275
5295
|
onPointerDown: (e) => e.stopPropagation(),
|
|
5276
5296
|
onChange: (t) => e.onChange(t.currentTarget.value)
|
|
5277
5297
|
});
|
|
5278
|
-
return X(t, n), Z(n, () => e.children), Z(t, J(
|
|
5298
|
+
return X(t, n), Z(n, () => e.children), Z(t, J(oi, {}), null), q(() => ({
|
|
5279
5299
|
e: e.label,
|
|
5280
5300
|
t: e.value
|
|
5281
5301
|
}), ({ e, t }, r) => {
|
|
5282
5302
|
e !== r?.e && Q(n, "aria-label", e, r?.e), t !== r?.t && Q(n, "value", t, r?.t);
|
|
5283
5303
|
}), t;
|
|
5284
|
-
})(),
|
|
5304
|
+
})(), es = (e) => {
|
|
5285
5305
|
let [t, n] = K(!1), [r, i] = K(String(e.value)), a = () => e.min ?? 0, o = () => e.max ?? 9999, s = (e) => Math.min(o(), Math.max(a(), e)), c = (t) => {
|
|
5286
5306
|
let n = Number(t.replace(/[^\d.-]/g, ""));
|
|
5287
5307
|
if (!Number.isFinite(n)) {
|
|
@@ -5290,7 +5310,7 @@ var Ro = "#FF0000", zo = .1, Bo = /* @__PURE__ */ new Set([
|
|
|
5290
5310
|
}
|
|
5291
5311
|
e.onChange(s(n));
|
|
5292
5312
|
};
|
|
5293
|
-
return J(
|
|
5313
|
+
return J(si, { get left() {
|
|
5294
5314
|
var a = Y("input", {
|
|
5295
5315
|
type: "text",
|
|
5296
5316
|
inputmode: "numeric",
|
|
@@ -5322,7 +5342,7 @@ var Ro = "#FF0000", zo = .1, Bo = /* @__PURE__ */ new Set([
|
|
|
5322
5342
|
e !== n?.e && Q(a, "aria-label", e, n?.e), t !== n?.t && Q(a, "value", t, n?.t);
|
|
5323
5343
|
}), a;
|
|
5324
5344
|
} });
|
|
5325
|
-
},
|
|
5345
|
+
}, ts = (e) => e === "rows" || e === "grid" ? e : "columns", ns = (e) => e === "min" || e === "center" || e === "max" ? e : "stretch", rs = (e) => {
|
|
5326
5346
|
let t = Gt(() => e.guide.kind === "rows" ? {
|
|
5327
5347
|
stretch: "Stretch",
|
|
5328
5348
|
min: "Top",
|
|
@@ -5339,13 +5359,13 @@ var Ro = "#FF0000", zo = .1, Bo = /* @__PURE__ */ new Set([
|
|
|
5339
5359
|
"aria-label": "Back to layout guides",
|
|
5340
5360
|
class: "msr:flex msr:size-6 msr:items-center msr:justify-center msr:rounded-control msr:text-ink-500 msr:outline-none msr:hover:bg-ink-100 msr:hover:text-ink-900"
|
|
5341
5361
|
});
|
|
5342
|
-
return X(r, i), X(i, a), Z(i, J(
|
|
5362
|
+
return X(r, i), X(i, a), Z(i, J($o, {
|
|
5343
5363
|
label: "Layout guide type",
|
|
5344
5364
|
get value() {
|
|
5345
5365
|
return e.guide.kind;
|
|
5346
5366
|
},
|
|
5347
5367
|
onChange: (t) => {
|
|
5348
|
-
let n =
|
|
5368
|
+
let n = ts(t);
|
|
5349
5369
|
e.onUpdate({
|
|
5350
5370
|
kind: n,
|
|
5351
5371
|
align: n === "grid" ? "min" : e.guide.align === "stretch" || n === e.guide.kind ? e.guide.align : "stretch"
|
|
@@ -5367,15 +5387,15 @@ var Ro = "#FF0000", zo = .1, Bo = /* @__PURE__ */ new Set([
|
|
|
5367
5387
|
})()
|
|
5368
5388
|
];
|
|
5369
5389
|
}
|
|
5370
|
-
}), a), Z(a, J(
|
|
5390
|
+
}), a), Z(a, J(Yo, {})), Z(r, J(Xt, {
|
|
5371
5391
|
get when() {
|
|
5372
5392
|
return e.guide.kind !== "grid";
|
|
5373
5393
|
},
|
|
5374
5394
|
get children() {
|
|
5375
|
-
return J(
|
|
5395
|
+
return J(Qo, {
|
|
5376
5396
|
label: "Count",
|
|
5377
5397
|
get children() {
|
|
5378
|
-
return J(
|
|
5398
|
+
return J(es, {
|
|
5379
5399
|
label: "Count",
|
|
5380
5400
|
get value() {
|
|
5381
5401
|
return e.guide.count;
|
|
@@ -5387,16 +5407,16 @@ var Ro = "#FF0000", zo = .1, Bo = /* @__PURE__ */ new Set([
|
|
|
5387
5407
|
}
|
|
5388
5408
|
});
|
|
5389
5409
|
}
|
|
5390
|
-
}), null), Z(r, J(
|
|
5410
|
+
}), null), Z(r, J(ci, {
|
|
5391
5411
|
label: "Color",
|
|
5392
|
-
columns:
|
|
5412
|
+
columns: Zo,
|
|
5393
5413
|
get value() {
|
|
5394
5414
|
return dr({
|
|
5395
5415
|
...lr(e.guide.color) ?? lr("#FF0000"),
|
|
5396
5416
|
alpha: e.guide.opacity
|
|
5397
5417
|
});
|
|
5398
5418
|
},
|
|
5399
|
-
fallback:
|
|
5419
|
+
fallback: Bo,
|
|
5400
5420
|
get ownerWindow() {
|
|
5401
5421
|
return e.ownerWindow;
|
|
5402
5422
|
},
|
|
@@ -5415,15 +5435,15 @@ var Ro = "#FF0000", zo = .1, Bo = /* @__PURE__ */ new Set([
|
|
|
5415
5435
|
return e.guide.kind !== "grid";
|
|
5416
5436
|
},
|
|
5417
5437
|
get children() {
|
|
5418
|
-
return J(
|
|
5438
|
+
return J(Qo, {
|
|
5419
5439
|
label: "Type",
|
|
5420
5440
|
get children() {
|
|
5421
|
-
return J(
|
|
5441
|
+
return J($o, {
|
|
5422
5442
|
label: "Alignment",
|
|
5423
5443
|
get value() {
|
|
5424
5444
|
return e.guide.align;
|
|
5425
5445
|
},
|
|
5426
|
-
onChange: (t) => e.onUpdate({ align:
|
|
5446
|
+
onChange: (t) => e.onUpdate({ align: ns(t) }),
|
|
5427
5447
|
get children() {
|
|
5428
5448
|
return J(Yt, {
|
|
5429
5449
|
each: [
|
|
@@ -5447,12 +5467,12 @@ var Ro = "#FF0000", zo = .1, Bo = /* @__PURE__ */ new Set([
|
|
|
5447
5467
|
return e.guide.kind === "grid" || e.guide.align !== "stretch";
|
|
5448
5468
|
},
|
|
5449
5469
|
get children() {
|
|
5450
|
-
return J(
|
|
5470
|
+
return J(Qo, {
|
|
5451
5471
|
get label() {
|
|
5452
5472
|
return n();
|
|
5453
5473
|
},
|
|
5454
5474
|
get children() {
|
|
5455
|
-
return J(
|
|
5475
|
+
return J(es, {
|
|
5456
5476
|
get label() {
|
|
5457
5477
|
return n();
|
|
5458
5478
|
},
|
|
@@ -5471,10 +5491,10 @@ var Ro = "#FF0000", zo = .1, Bo = /* @__PURE__ */ new Set([
|
|
|
5471
5491
|
return e.guide.kind !== "grid";
|
|
5472
5492
|
},
|
|
5473
5493
|
get children() {
|
|
5474
|
-
return [J(
|
|
5494
|
+
return [J(Qo, {
|
|
5475
5495
|
label: "Offset",
|
|
5476
5496
|
get children() {
|
|
5477
|
-
return J(
|
|
5497
|
+
return J(es, {
|
|
5478
5498
|
label: "Offset",
|
|
5479
5499
|
get value() {
|
|
5480
5500
|
return e.guide.offset;
|
|
@@ -5484,10 +5504,10 @@ var Ro = "#FF0000", zo = .1, Bo = /* @__PURE__ */ new Set([
|
|
|
5484
5504
|
onChange: (t) => e.onUpdate({ offset: t })
|
|
5485
5505
|
});
|
|
5486
5506
|
}
|
|
5487
|
-
}), J(
|
|
5507
|
+
}), J(Qo, {
|
|
5488
5508
|
label: "Gutter",
|
|
5489
5509
|
get children() {
|
|
5490
|
-
return J(
|
|
5510
|
+
return J(es, {
|
|
5491
5511
|
label: "Gutter",
|
|
5492
5512
|
get value() {
|
|
5493
5513
|
return e.guide.gutter;
|
|
@@ -5503,7 +5523,7 @@ var Ro = "#FF0000", zo = .1, Bo = /* @__PURE__ */ new Set([
|
|
|
5503
5523
|
Q(a, "onClick", e, t);
|
|
5504
5524
|
}), r;
|
|
5505
5525
|
};
|
|
5506
|
-
function
|
|
5526
|
+
function is(e) {
|
|
5507
5527
|
let [t, n] = K(null), r = Gt(() => e.guides.find((e) => e.id === t()) ?? null);
|
|
5508
5528
|
var i = Y("div", {
|
|
5509
5529
|
"data-mesurer-layout-guides-panel": "true",
|
|
@@ -5525,7 +5545,7 @@ function ns(e) {
|
|
|
5525
5545
|
"aria-label": "Add layout guide",
|
|
5526
5546
|
class: "msr:flex msr:size-6 msr:items-center msr:justify-center msr:rounded-control msr:text-ink-500 msr:outline-none msr:hover:bg-ink-100 msr:hover:text-ink-900"
|
|
5527
5547
|
});
|
|
5528
|
-
return X(t, r), X(r, i), X(r, a), X(i, Qn("Layout guides")), Z(a, J(
|
|
5548
|
+
return X(t, r), X(r, i), X(r, a), X(i, Qn("Layout guides")), Z(a, J(_i, {})), Z(t, J(Xt, {
|
|
5529
5549
|
get when() {
|
|
5530
5550
|
return e.guides.length > 0;
|
|
5531
5551
|
},
|
|
@@ -5552,22 +5572,22 @@ function ns(e) {
|
|
|
5552
5572
|
class: "msr:flex msr:size-6 msr:items-center msr:justify-center msr:rounded-control msr:text-ink-400 msr:outline-none msr:hover:bg-ink-100 msr:hover:text-ink-900",
|
|
5553
5573
|
onClick: () => e.onRemove(t.id)
|
|
5554
5574
|
});
|
|
5555
|
-
return X(r, i), X(r, s), X(r, c), X(i, a), X(i, o), Z(a, J(
|
|
5575
|
+
return X(r, i), X(r, s), X(r, c), X(i, a), X(i, o), Z(a, J(Xo, { get kind() {
|
|
5556
5576
|
return t.kind;
|
|
5557
|
-
} })), Z(o, () =>
|
|
5577
|
+
} })), Z(o, () => Jo(t)), Z(i, J(ui, {
|
|
5558
5578
|
size: 8,
|
|
5559
5579
|
class: "msr:block msr:-rotate-90 msr:text-ink-400"
|
|
5560
5580
|
}), null), Z(s, (() => {
|
|
5561
5581
|
var e = Zn(() => !!t.visible);
|
|
5562
|
-
return () => e() ? J(
|
|
5563
|
-
})()), Z(c, J(
|
|
5582
|
+
return () => e() ? J(vi, {}) : J(yi, {});
|
|
5583
|
+
})()), Z(c, J(di, {
|
|
5564
5584
|
size: 10,
|
|
5565
5585
|
class: "msr:block"
|
|
5566
5586
|
})), q(() => ({
|
|
5567
|
-
e: t.visible ? `Hide ${
|
|
5587
|
+
e: t.visible ? `Hide ${Jo(t)}` : `Show ${Jo(t)}`,
|
|
5568
5588
|
t: t.visible ? "true" : "false",
|
|
5569
5589
|
a: `msr:flex msr:size-6 msr:items-center msr:justify-center msr:rounded-control msr:outline-none msr:hover:bg-ink-100 ${t.visible ? "msr:text-ink-700" : "msr:text-ink-400"}`,
|
|
5570
|
-
o: `Remove ${
|
|
5590
|
+
o: `Remove ${Jo(t)}`
|
|
5571
5591
|
}), ({ e, t, a: n, o: r }, i) => {
|
|
5572
5592
|
e !== i?.e && Q(s, "aria-label", e, i?.e), t !== i?.t && Q(s, "aria-pressed", t, i?.t), n !== i?.a && Q(s, "class", n, i?.a), r !== i?.o && Q(c, "aria-label", r, i?.o);
|
|
5573
5593
|
}), r;
|
|
@@ -5578,7 +5598,7 @@ function ns(e) {
|
|
|
5578
5598
|
Q(a, "onClick", e, t);
|
|
5579
5599
|
}), t;
|
|
5580
5600
|
},
|
|
5581
|
-
children: (t) => J(
|
|
5601
|
+
children: (t) => J(rs, {
|
|
5582
5602
|
get guide() {
|
|
5583
5603
|
return t();
|
|
5584
5604
|
},
|
|
@@ -5590,56 +5610,56 @@ function ns(e) {
|
|
|
5590
5610
|
})
|
|
5591
5611
|
})), i;
|
|
5592
5612
|
}
|
|
5593
|
-
var
|
|
5613
|
+
var as = "mesurer.layout-guides", os = "layout-guides:v1", ss = "mesurer.layout-guides.pages", cs = "mesurer.layout-guides.active", ls = "runtime:solid", us = "layout-guides.toggle", ds = "layout-guides.add", fs = "layout-guides.update", ps = "layout-guides.remove", ms = "layout-guides.clear", hs = 240, gs = 8, _s = 8, vs = () => ({ pages: {} }), ys = (e, t) => e.pages[t] ?? [], bs = (e) => typeof e == "object" && !!e && !Array.isArray(e), xs = (e) => typeof e == "string", Ss = (e) => typeof e == "boolean", Cs = (e) => typeof e == "number", ws = (e) => e === "columns" || e === "rows" || e === "grid", Ts = (e) => e === "stretch" || e === "min" || e === "center" || e === "max", Es = (e) => ({ ...e }), Ds = (e) => e.map(Es), Os = (e) => bs(e) ? e : null, ks = (e) => {
|
|
5594
5614
|
if (!e) return {};
|
|
5595
5615
|
let t = {};
|
|
5596
|
-
return
|
|
5597
|
-
},
|
|
5616
|
+
return xs(e.id) && (t.id = e.id), ws(e.kind) && (t.kind = e.kind), Ss(e.visible) && (t.visible = e.visible), xs(e.color) && (t.color = e.color), Cs(e.opacity) && (t.opacity = e.opacity), Cs(e.count) && (t.count = e.count), Cs(e.size) && (t.size = e.size), Cs(e.gutter) && (t.gutter = e.gutter), Cs(e.offset) && (t.offset = e.offset), Ts(e.align) && (t.align = e.align), t;
|
|
5617
|
+
}, As = (e) => {
|
|
5598
5618
|
let t = {};
|
|
5599
5619
|
return e.id !== void 0 && (t.id = e.id), e.kind !== void 0 && (t.kind = e.kind), e.visible !== void 0 && (t.visible = e.visible), e.color !== void 0 && (t.color = e.color), e.opacity !== void 0 && (t.opacity = e.opacity), e.count !== void 0 && (t.count = e.count), e.size !== void 0 && (t.size = e.size), e.gutter !== void 0 && (t.gutter = e.gutter), e.offset !== void 0 && (t.offset = e.offset), e.align !== void 0 && (t.align = e.align), t;
|
|
5600
|
-
},
|
|
5620
|
+
}, js = {
|
|
5601
5621
|
viewBox: "0 0 256 256",
|
|
5602
5622
|
paths: ["M48 48h160v8H48zM48 200h160v8H48zM48 56h8v144h-8zM200 56h8v144h-8z", "M101 56h8v144h-8zM147 56h8v144h-8z"]
|
|
5603
|
-
},
|
|
5604
|
-
id:
|
|
5623
|
+
}, Ms = () => ar({
|
|
5624
|
+
id: as,
|
|
5605
5625
|
version: "0.1.0",
|
|
5606
|
-
requires: [
|
|
5607
|
-
provides: [
|
|
5626
|
+
requires: [ls],
|
|
5627
|
+
provides: [os, "tool:layout-guides"],
|
|
5608
5628
|
setup(e) {
|
|
5609
|
-
let t = e.service.get(
|
|
5629
|
+
let t = e.service.get(ls);
|
|
5610
5630
|
if (!t) throw Error("Layout Guides requires the Solid renderer runtime.");
|
|
5611
5631
|
let n = t.rendererRoot;
|
|
5612
5632
|
if (!n) throw Error("Layout Guides requires a mounted renderer root.");
|
|
5613
5633
|
e.state.register({
|
|
5614
|
-
id:
|
|
5615
|
-
initial:
|
|
5634
|
+
id: ss,
|
|
5635
|
+
initial: vs(),
|
|
5616
5636
|
history: !0,
|
|
5617
5637
|
persist: !0
|
|
5618
5638
|
}), e.state.register({
|
|
5619
|
-
id:
|
|
5639
|
+
id: cs,
|
|
5620
5640
|
initial: !1
|
|
5621
5641
|
});
|
|
5622
|
-
let r =
|
|
5623
|
-
e.state.update(
|
|
5642
|
+
let r = Xr(t.ownerWindow), i = !1, [a, o] = K(0), s = /* @__PURE__ */ new Set(), c = 0, l = () => e.state.get("mesurer.layout-guides.pages") ?? vs(), u = () => e.state.get("mesurer.layout-guides.active") ?? !1, d = () => qo(ys(l(), r)), f = () => (a(), u() ? d() : []), p = (t) => {
|
|
5643
|
+
e.state.update(cs, () => t);
|
|
5624
5644
|
}, m = (t) => {
|
|
5625
|
-
e.state.update(
|
|
5645
|
+
e.state.update(ss, (e) => ({
|
|
5626
5646
|
...e,
|
|
5627
5647
|
pages: {
|
|
5628
5648
|
...e.pages,
|
|
5629
|
-
[r]:
|
|
5649
|
+
[r]: Ds(t(qo(e.pages[r])))
|
|
5630
5650
|
}
|
|
5631
5651
|
}));
|
|
5632
5652
|
};
|
|
5633
|
-
e.command.register(
|
|
5653
|
+
e.command.register(us, () => {
|
|
5634
5654
|
let e = !u();
|
|
5635
|
-
return e && d().length === 0 && m(() => [
|
|
5636
|
-
}), e.command.register(
|
|
5637
|
-
let t =
|
|
5655
|
+
return e && d().length === 0 && m(() => [Ko()]), i = e, p(e), u();
|
|
5656
|
+
}), e.command.register(ds, (e) => {
|
|
5657
|
+
let t = Ko(ks(Os(e)));
|
|
5638
5658
|
return m((e) => [...e, t]), { ...t };
|
|
5639
|
-
}), e.command.register(
|
|
5640
|
-
let t =
|
|
5659
|
+
}), e.command.register(fs, (e) => {
|
|
5660
|
+
let t = Os(e), n = t && xs(t.id) ? t.id : null, r = ks(Os(t?.patch));
|
|
5641
5661
|
if (!n) throw Error("layout-guides.update requires a guide id.");
|
|
5642
|
-
m((e) => e.map((e) => e.id === n ?
|
|
5662
|
+
m((e) => e.map((e) => e.id === n ? Ko({
|
|
5643
5663
|
...e,
|
|
5644
5664
|
...r,
|
|
5645
5665
|
id: e.id
|
|
@@ -5647,30 +5667,30 @@ var rs = "mesurer.layout-guides", is = "layout-guides:v1", as = "mesurer.layout-
|
|
|
5647
5667
|
let i = d().find((e) => e.id === n);
|
|
5648
5668
|
if (!i) throw Error(`Layout guide not found: ${n}`);
|
|
5649
5669
|
return { ...i };
|
|
5650
|
-
}), e.command.register(
|
|
5651
|
-
let t =
|
|
5670
|
+
}), e.command.register(ps, (e) => {
|
|
5671
|
+
let t = Os(e), n = t && xs(t.id) ? t.id : null;
|
|
5652
5672
|
if (!n) throw Error("layout-guides.remove requires a guide id.");
|
|
5653
5673
|
let r = d().length;
|
|
5654
5674
|
return m((e) => e.filter((e) => e.id !== n)), d().length !== r;
|
|
5655
|
-
}), e.command.register(
|
|
5675
|
+
}), e.command.register(ms, () => {
|
|
5656
5676
|
m(() => []);
|
|
5657
5677
|
});
|
|
5658
5678
|
let h = async (t, n) => {
|
|
5659
|
-
let r =
|
|
5679
|
+
let r = Os(await e.command.execute(t, n));
|
|
5660
5680
|
if (!r) throw Error(`${t} did not return a layout guide.`);
|
|
5661
|
-
return
|
|
5681
|
+
return Ko(ks(r));
|
|
5662
5682
|
}, g = {
|
|
5663
5683
|
list: () => d().map((e) => ({ ...e })),
|
|
5664
|
-
add: (e = {}) => h(
|
|
5665
|
-
update: (e, t) => h(
|
|
5684
|
+
add: (e = {}) => h(ds, As(e)),
|
|
5685
|
+
update: (e, t) => h(fs, {
|
|
5666
5686
|
id: e,
|
|
5667
|
-
patch:
|
|
5687
|
+
patch: As(t)
|
|
5668
5688
|
}),
|
|
5669
5689
|
async remove(t) {
|
|
5670
|
-
return await e.command.execute(
|
|
5690
|
+
return await e.command.execute(ps, { id: t }) === !0;
|
|
5671
5691
|
},
|
|
5672
5692
|
async clear() {
|
|
5673
|
-
await e.command.execute(
|
|
5693
|
+
await e.command.execute(ms);
|
|
5674
5694
|
},
|
|
5675
5695
|
subscribe(e) {
|
|
5676
5696
|
s.add(e);
|
|
@@ -5680,25 +5700,25 @@ var rs = "mesurer.layout-guides", is = "layout-guides:v1", as = "mesurer.layout-
|
|
|
5680
5700
|
};
|
|
5681
5701
|
}
|
|
5682
5702
|
};
|
|
5683
|
-
e.service.provide(
|
|
5703
|
+
e.service.provide(os, g), e.tool.register({
|
|
5684
5704
|
id: "layout-guides",
|
|
5685
5705
|
label: "Layout guides",
|
|
5686
5706
|
shortcut: "L",
|
|
5687
|
-
command:
|
|
5707
|
+
command: us,
|
|
5688
5708
|
order: 38,
|
|
5689
|
-
icon:
|
|
5709
|
+
icon: js,
|
|
5690
5710
|
active: u
|
|
5691
5711
|
});
|
|
5692
5712
|
let _ = t.ownerDocument.createElement("div");
|
|
5693
5713
|
_.dataset.mesurerLayoutGuidesRoot = "true", _.dataset.mesurerLayer = "evidence", _.style.position = "absolute", _.style.inset = "0", _.style.pointerEvents = "none", n.prepend(_);
|
|
5694
|
-
let v = Xn(() => J(
|
|
5714
|
+
let v = Xn(() => J(zo, { get guides() {
|
|
5695
5715
|
return f();
|
|
5696
5716
|
} }), _), y = t.createInspectorMount();
|
|
5697
5717
|
y.element.dataset.mesurerLayoutGuidesPanelRoot = "true", Object.assign(y.element.style, {
|
|
5698
5718
|
position: "fixed",
|
|
5699
5719
|
left: "0",
|
|
5700
5720
|
top: "0",
|
|
5701
|
-
width: `${
|
|
5721
|
+
width: `${hs}px`,
|
|
5702
5722
|
zIndex: "100",
|
|
5703
5723
|
pointerEvents: "none",
|
|
5704
5724
|
display: "none"
|
|
@@ -5707,13 +5727,13 @@ var rs = "mesurer.layout-guides", is = "layout-guides:v1", as = "mesurer.layout-
|
|
|
5707
5727
|
if (c = 0, !i) return;
|
|
5708
5728
|
let e = t.portalTarget.querySelector("[data-mesurer-tool-id='layout-guides']");
|
|
5709
5729
|
if (!e) return;
|
|
5710
|
-
let n = e.getBoundingClientRect(), r = Math.min(Math.max(
|
|
5730
|
+
let n = e.getBoundingClientRect(), r = Math.min(Math.max(_s, n.right - hs), Math.max(_s, t.ownerWindow.innerWidth - hs - _s)), a = t.ownerWindow.innerHeight - n.bottom - gs - _s, o = Math.min(320, t.ownerWindow.innerHeight - 16), s = a >= Math.min(o, 320) ? n.bottom + gs : Math.max(_s, n.top - gs - o);
|
|
5711
5731
|
y.element.style.left = `${r}px`, y.element.style.top = `${s}px`;
|
|
5712
5732
|
}, x = () => {
|
|
5713
5733
|
c ||= t.ownerWindow.requestAnimationFrame(b);
|
|
5714
5734
|
}, S = () => {
|
|
5715
5735
|
y.element.style.display = i ? "block" : "none", i && x();
|
|
5716
|
-
}, C = Xn(() => J(
|
|
5736
|
+
}, C = Xn(() => J(is, {
|
|
5717
5737
|
get guides() {
|
|
5718
5738
|
return f();
|
|
5719
5739
|
},
|
|
@@ -5733,7 +5753,7 @@ var rs = "mesurer.layout-guides", is = "layout-guides:v1", as = "mesurer.layout-
|
|
|
5733
5753
|
o((e) => e + 1);
|
|
5734
5754
|
for (let e of s) e();
|
|
5735
5755
|
S();
|
|
5736
|
-
}, T = e.state.subscribe(w), E =
|
|
5756
|
+
}, T = e.state.subscribe(w), E = ei(t.ownerWindow, (e) => {
|
|
5737
5757
|
r !== e && (r = e, w());
|
|
5738
5758
|
}), D = (e) => {
|
|
5739
5759
|
if (!i) return;
|
|
@@ -5748,14 +5768,14 @@ var rs = "mesurer.layout-guides", is = "layout-guides:v1", as = "mesurer.layout-
|
|
|
5748
5768
|
t.ownerDocument.removeEventListener("pointerdown", D, !0), t.ownerDocument.removeEventListener("keydown", O, !0), t.ownerWindow.removeEventListener("resize", x), t.ownerWindow.removeEventListener("pointerup", x, !0), c && t.ownerWindow.cancelAnimationFrame(c), c = 0, s.clear(), T.dispose(), E(), C(), y.dispose(), v(), _.remove();
|
|
5749
5769
|
});
|
|
5750
5770
|
}
|
|
5751
|
-
}),
|
|
5771
|
+
}), Ns = 144, Ps = 96, Fs = 8, Is = 4, Ls = 1800, Rs = (e, t) => {
|
|
5752
5772
|
for (let [n, r] of Object.entries(t)) e.style.setProperty(n, r);
|
|
5753
|
-
},
|
|
5754
|
-
left: Math.min(Math.max(
|
|
5755
|
-
top: Math.min(Math.max(
|
|
5756
|
-
}),
|
|
5773
|
+
}, zs = (e, t) => ({
|
|
5774
|
+
left: Math.min(Math.max(Fs, e.left), Math.max(Fs, t.innerWidth - Ns - Fs)),
|
|
5775
|
+
top: Math.min(Math.max(Fs, e.top), Math.max(Fs, t.innerHeight - Ps - Fs))
|
|
5776
|
+
}), Bs = (e, t) => {
|
|
5757
5777
|
let n = e.createElement("button");
|
|
5758
|
-
return n.type = "button", n.textContent = t,
|
|
5778
|
+
return n.type = "button", n.textContent = t, Rs(n, {
|
|
5759
5779
|
height: "32px",
|
|
5760
5780
|
padding: "0 12px",
|
|
5761
5781
|
border: "1px solid rgb(255 255 255 / 18%)",
|
|
@@ -5767,11 +5787,11 @@ var rs = "mesurer.layout-guides", is = "layout-guides:v1", as = "mesurer.layout-
|
|
|
5767
5787
|
"font-weight": "500",
|
|
5768
5788
|
cursor: "pointer"
|
|
5769
5789
|
}), n;
|
|
5770
|
-
},
|
|
5790
|
+
}, Vs = ({ copied: e, downloaded: t, copyFailed: n, downloadFailed: r }) => e && t ? "Copied and saved screenshot" : e && r ? "Copied screenshot · Save unavailable" : t && n ? "Saved screenshot · Copy unavailable" : e ? "Copied screenshot" : t ? "Saved screenshot" : n && r ? "Screenshot captured · Copy and save unavailable" : n ? "Screenshot captured · Copy unavailable" : r ? "Screenshot captured · Save unavailable" : "Screenshot captured", Hs = (e) => e !== null && (e.nodeType === 1 || e.nodeType === 11), Us = ({ ownerDocument: e, ownerWindow: t, root: n, previewDurationMs: r }) => {
|
|
5771
5791
|
let i = n.closest("[data-mesurer-root='true']")?.parentNode ?? n.parentNode;
|
|
5772
|
-
if (!
|
|
5792
|
+
if (!Hs(i)) throw Error("Screenshot preview requires a mounted Mesurer host.");
|
|
5773
5793
|
let a = e.createElement("div");
|
|
5774
|
-
a.dataset.mesurerInspectorUi = "true", a.dataset.mesurerScreenshotInteractive = "true",
|
|
5794
|
+
a.dataset.mesurerInspectorUi = "true", a.dataset.mesurerScreenshotInteractive = "true", Rs(a, {
|
|
5775
5795
|
position: "fixed",
|
|
5776
5796
|
left: "0",
|
|
5777
5797
|
top: "0",
|
|
@@ -5783,12 +5803,12 @@ var rs = "mesurer.layout-guides", is = "layout-guides:v1", as = "mesurer.layout-
|
|
|
5783
5803
|
"font-family": "ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif"
|
|
5784
5804
|
}), i.append(a);
|
|
5785
5805
|
let o = e.createElement("div");
|
|
5786
|
-
o.dataset.mesurerScreenshotPreview = "true", o.setAttribute("role", "button"), o.setAttribute("aria-label", "Open captured screenshot"), o.tabIndex = 0,
|
|
5806
|
+
o.dataset.mesurerScreenshotPreview = "true", o.setAttribute("role", "button"), o.setAttribute("aria-label", "Open captured screenshot"), o.tabIndex = 0, Rs(o, {
|
|
5787
5807
|
position: "fixed",
|
|
5788
5808
|
display: "none",
|
|
5789
5809
|
"z-index": "96",
|
|
5790
|
-
width: `${
|
|
5791
|
-
height: `${
|
|
5810
|
+
width: `${Ns}px`,
|
|
5811
|
+
height: `${Ps}px`,
|
|
5792
5812
|
"box-sizing": "border-box",
|
|
5793
5813
|
overflow: "hidden",
|
|
5794
5814
|
"border-radius": "10px",
|
|
@@ -5801,7 +5821,7 @@ var rs = "mesurer.layout-guides", is = "layout-guides:v1", as = "mesurer.layout-
|
|
|
5801
5821
|
"touch-action": "none"
|
|
5802
5822
|
});
|
|
5803
5823
|
let s = e.createElement("img");
|
|
5804
|
-
s.dataset.mesurerScreenshotPreviewImage = "true", s.alt = "Captured screenshot", s.draggable = !1, s.title = "Click to open · Right-click for browser image actions",
|
|
5824
|
+
s.dataset.mesurerScreenshotPreviewImage = "true", s.alt = "Captured screenshot", s.draggable = !1, s.title = "Click to open · Right-click for browser image actions", Rs(s, {
|
|
5805
5825
|
display: "block",
|
|
5806
5826
|
width: "100%",
|
|
5807
5827
|
height: "100%",
|
|
@@ -5809,7 +5829,7 @@ var rs = "mesurer.layout-guides", is = "layout-guides:v1", as = "mesurer.layout-
|
|
|
5809
5829
|
"background-color": "white"
|
|
5810
5830
|
}), o.append(s);
|
|
5811
5831
|
let c = e.createElement("button");
|
|
5812
|
-
c.dataset.mesurerScreenshotPreviewDismiss = "true", c.type = "button", c.setAttribute("aria-label", "Dismiss screenshot preview"), c.title = "Dismiss",
|
|
5832
|
+
c.dataset.mesurerScreenshotPreviewDismiss = "true", c.type = "button", c.setAttribute("aria-label", "Dismiss screenshot preview"), c.title = "Dismiss", Rs(c, {
|
|
5813
5833
|
position: "absolute",
|
|
5814
5834
|
top: "8px",
|
|
5815
5835
|
right: "8px",
|
|
@@ -5835,7 +5855,7 @@ var rs = "mesurer.layout-guides", is = "layout-guides:v1", as = "mesurer.layout-
|
|
|
5835
5855
|
let u = e.createElementNS("http://www.w3.org/2000/svg", "path");
|
|
5836
5856
|
u.setAttribute("d", "m4 4 8 8M12 4l-8 8"), u.setAttribute("stroke", "currentColor"), u.setAttribute("stroke-width", "1.75"), u.setAttribute("stroke-linecap", "round"), l.append(u), c.append(l), o.append(c), a.append(o);
|
|
5837
5857
|
let d = e.createElement("div");
|
|
5838
|
-
d.dataset.mesurerScreenshotViewer = "true", d.setAttribute("role", "dialog"), d.setAttribute("aria-modal", "true"), d.setAttribute("aria-label", "Screenshot viewer"),
|
|
5858
|
+
d.dataset.mesurerScreenshotViewer = "true", d.setAttribute("role", "dialog"), d.setAttribute("aria-modal", "true"), d.setAttribute("aria-label", "Screenshot viewer"), Rs(d, {
|
|
5839
5859
|
position: "fixed",
|
|
5840
5860
|
inset: "0",
|
|
5841
5861
|
display: "none",
|
|
@@ -5849,7 +5869,7 @@ var rs = "mesurer.layout-guides", is = "layout-guides:v1", as = "mesurer.layout-
|
|
|
5849
5869
|
"pointer-events": "auto"
|
|
5850
5870
|
});
|
|
5851
5871
|
let f = e.createElement("img");
|
|
5852
|
-
f.dataset.mesurerScreenshotViewerImage = "true", f.alt = "Captured screenshot",
|
|
5872
|
+
f.dataset.mesurerScreenshotViewerImage = "true", f.alt = "Captured screenshot", Rs(f, {
|
|
5853
5873
|
display: "block",
|
|
5854
5874
|
"max-width": "calc(100vw - 96px)",
|
|
5855
5875
|
"max-height": "calc(100vh - 112px)",
|
|
@@ -5860,7 +5880,7 @@ var rs = "mesurer.layout-guides", is = "layout-guides:v1", as = "mesurer.layout-
|
|
|
5860
5880
|
"box-shadow": "0 8px 30px rgb(0 0 0 / 28%)"
|
|
5861
5881
|
}), d.append(f);
|
|
5862
5882
|
let p = e.createElement("div");
|
|
5863
|
-
p.dataset.mesurerScreenshotViewerControls = "true",
|
|
5883
|
+
p.dataset.mesurerScreenshotViewerControls = "true", Rs(p, {
|
|
5864
5884
|
position: "fixed",
|
|
5865
5885
|
top: "16px",
|
|
5866
5886
|
right: "16px",
|
|
@@ -5868,14 +5888,14 @@ var rs = "mesurer.layout-guides", is = "layout-guides:v1", as = "mesurer.layout-
|
|
|
5868
5888
|
gap: "8px",
|
|
5869
5889
|
"pointer-events": "auto"
|
|
5870
5890
|
});
|
|
5871
|
-
let m =
|
|
5891
|
+
let m = Bs(e, "Copy");
|
|
5872
5892
|
m.dataset.mesurerScreenshotViewerCopy = "true", m.setAttribute("aria-label", "Copy screenshot");
|
|
5873
|
-
let h =
|
|
5893
|
+
let h = Bs(e, "Save");
|
|
5874
5894
|
h.dataset.mesurerScreenshotViewerSave = "true", h.setAttribute("aria-label", "Save screenshot");
|
|
5875
|
-
let g =
|
|
5895
|
+
let g = Bs(e, "Close");
|
|
5876
5896
|
g.dataset.mesurerScreenshotViewerClose = "true", g.setAttribute("aria-label", "Close screenshot viewer"), p.append(m, h, g), d.append(p), a.append(d);
|
|
5877
5897
|
let _ = e.createElement("div");
|
|
5878
|
-
_.dataset.mesurerScreenshotToast = "true", _.setAttribute("role", "status"),
|
|
5898
|
+
_.dataset.mesurerScreenshotToast = "true", _.setAttribute("role", "status"), Rs(_, {
|
|
5879
5899
|
position: "fixed",
|
|
5880
5900
|
left: "50%",
|
|
5881
5901
|
bottom: "20px",
|
|
@@ -5897,18 +5917,18 @@ var rs = "mesurer.layout-guides", is = "layout-guides:v1", as = "mesurer.layout-
|
|
|
5897
5917
|
}, D = (e, n = !1) => {
|
|
5898
5918
|
E(), _.textContent = e, _.style.backgroundColor = n ? "#b42318" : "rgb(28 28 30 / 90%)", _.style.display = "block", C = t.setTimeout(() => {
|
|
5899
5919
|
C = 0, _.style.display = "none";
|
|
5900
|
-
},
|
|
5920
|
+
}, Ls);
|
|
5901
5921
|
}, O = () => {
|
|
5902
5922
|
d.style.display = "none";
|
|
5903
5923
|
}, k = () => {
|
|
5904
5924
|
y && globalThis.URL.revokeObjectURL(y), y = null, v = null, s.removeAttribute("src"), f.removeAttribute("src");
|
|
5905
5925
|
}, A = () => {
|
|
5906
5926
|
T(), O(), o.style.display = "none", k();
|
|
5907
|
-
}, j = () =>
|
|
5908
|
-
left: t.innerWidth -
|
|
5909
|
-
top: t.innerHeight -
|
|
5927
|
+
}, j = () => zs({
|
|
5928
|
+
left: t.innerWidth - Ns - Fs,
|
|
5929
|
+
top: t.innerHeight - Ps - Fs
|
|
5910
5930
|
}, t), M = (e) => {
|
|
5911
|
-
let n =
|
|
5931
|
+
let n = zs(e, t);
|
|
5912
5932
|
b = n, o.style.left = `${n.left}px`, o.style.top = `${n.top}px`;
|
|
5913
5933
|
}, ee = () => {
|
|
5914
5934
|
!v || !y || (T(), d.style.display = "flex", g.focus());
|
|
@@ -5942,7 +5962,7 @@ var rs = "mesurer.layout-guides", is = "layout-guides:v1", as = "mesurer.layout-
|
|
|
5942
5962
|
let n = x;
|
|
5943
5963
|
if (!n) return;
|
|
5944
5964
|
let r = e - n.startX, i = t - n.startY;
|
|
5945
|
-
!n.moved && Math.hypot(r, i) >=
|
|
5965
|
+
!n.moved && Math.hypot(r, i) >= Is && (n.moved = !0), n.moved && M({
|
|
5946
5966
|
left: n.left + r,
|
|
5947
5967
|
top: n.top + i
|
|
5948
5968
|
});
|
|
@@ -5986,25 +6006,25 @@ var rs = "mesurer.layout-guides", is = "layout-guides:v1", as = "mesurer.layout-
|
|
|
5986
6006
|
if (w) return;
|
|
5987
6007
|
T(), O(), k(), v = e;
|
|
5988
6008
|
let i = globalThis.URL.createObjectURL(e);
|
|
5989
|
-
y = i, s.src = i, f.src = i, o.style.display = "block", M(b ?? j()), D(
|
|
6009
|
+
y = i, s.src = i, f.src = i, o.style.display = "block", M(b ?? j()), D(Vs(n)), r > 0 && (S = t.setTimeout(A, r));
|
|
5990
6010
|
},
|
|
5991
6011
|
dismiss: A,
|
|
5992
6012
|
dispose() {
|
|
5993
6013
|
w || (w = !0, T(), E(), A(), t.removeEventListener("mousemove", z, !0), t.removeEventListener("mouseup", B, !0), t.removeEventListener("pointermove", ne, !0), t.removeEventListener("pointerup", re, !0), t.removeEventListener("pointercancel", H, !0), t.removeEventListener("keydown", W, !0), o.removeEventListener("mousedown", R), o.removeEventListener("pointerdown", V), o.removeEventListener("keydown", ie), o.removeEventListener("contextmenu", U), d.removeEventListener("click", ae), a.remove());
|
|
5994
6014
|
}
|
|
5995
6015
|
};
|
|
5996
|
-
},
|
|
6016
|
+
}, Ws = "mesurer.screenshot", Gs = "screenshot", Ks = "mesurer.screenshot.settings", qs = "mesurer.screenshot.active", Js = "runtime:solid", Ys = "screenshot.toggle", Xs = 2500, Zs = 0, Qs = [
|
|
5997
6017
|
"[data-mesurer-measurement='true']",
|
|
5998
6018
|
"[data-mesurer-selected-measurement='true']",
|
|
5999
6019
|
"[data-mesurer-selection-spacing-target='true']",
|
|
6000
6020
|
"[data-mesurer-guide='true']",
|
|
6001
6021
|
"[data-mesurer-distance='true']"
|
|
6002
|
-
].join(","),
|
|
6022
|
+
].join(","), $s = `${Qs},[data-mesurer-rulers='true']`, ec = {
|
|
6003
6023
|
viewBox: "0 0 256 256",
|
|
6004
6024
|
paths: ["m 96,50 a 6.0006,6.0006 0 0 0 -4.992188,2.671875 L 76.789062,74 H 40 C 27.920803,74 18,83.920803 18,96 v 96 c 0,12.0792 9.920803,22 22,22 h 176 c 12.0792,0 22,-9.9208 22,-22 V 96 C 238,83.920803 228.0792,74 216,74 H 179.21094 L 164.99219,52.671875 A 6.0006,6.0006 0 0 0 160,50 Z m 3.210937,12 h 57.578123 l 14.21875,21.328125 A 6.0006,6.0006 0 0 0 176,86 h 40 c 5.59392,0 10,4.406085 10,10 v 96 c 0,5.59392 -4.40608,10 -10,10 H 40 c -5.593915,0 -10,-4.40608 -10,-10 V 96 c 0,-5.593915 4.406085,-10 10,-10 h 40 a 6.0006,6.0006 0 0 0 4.992187,-2.671875 z", "m 128,94 c -23.12489,0 -42,18.87511 -42,42 0,23.12489 18.87511,42 42,42 23.12489,0 42,-18.87511 42,-42 0,-23.12489 -18.87511,-42 -42,-42 z m 0,12 c 16.63961,0 30,13.36039 30,30 0,16.63961 -13.36039,30 -30,30 -16.63961,0 -30,-13.36039 -30,-30 0,-16.63961 13.36039,-30 30,-30 z"]
|
|
6005
|
-
},
|
|
6025
|
+
}, tc = (e, t) => {
|
|
6006
6026
|
for (let [n, r] of Object.entries(t)) e.style.setProperty(n, r);
|
|
6007
|
-
},
|
|
6027
|
+
}, nc = (e, t) => {
|
|
6008
6028
|
for (let n of [
|
|
6009
6029
|
"left",
|
|
6010
6030
|
"top",
|
|
@@ -6016,63 +6036,63 @@ var rs = "mesurer.layout-guides", is = "layout-guides:v1", as = "mesurer.layout-
|
|
|
6016
6036
|
let r = t[n];
|
|
6017
6037
|
r === void 0 ? e.style.removeProperty(n) : e.style.setProperty(n, `${r}px`);
|
|
6018
6038
|
}
|
|
6019
|
-
},
|
|
6020
|
-
let t = e(
|
|
6039
|
+
}, rc = (e) => {
|
|
6040
|
+
let t = e(Ks);
|
|
6021
6041
|
return {
|
|
6022
6042
|
toolEnabled: t?.toolEnabled ?? !0,
|
|
6023
6043
|
copy: t?.copy ?? !0,
|
|
6024
6044
|
download: t?.download ?? !1,
|
|
6025
6045
|
includeMeasurements: t?.includeMeasurements ?? !1
|
|
6026
6046
|
};
|
|
6027
|
-
},
|
|
6047
|
+
}, ic = (e) => ({
|
|
6028
6048
|
value: e.style.getPropertyValue("display"),
|
|
6029
6049
|
priority: e.style.getPropertyPriority("display")
|
|
6030
|
-
}),
|
|
6050
|
+
}), ac = (e, t) => {
|
|
6031
6051
|
t.value || t.priority ? e.style.setProperty("display", t.value, t.priority) : e.style.removeProperty("display");
|
|
6032
|
-
},
|
|
6052
|
+
}, oc = (e, t) => {
|
|
6033
6053
|
let n = e;
|
|
6034
6054
|
for (; n.parentElement && n.parentElement !== t;) n = n.parentElement;
|
|
6035
6055
|
return n.parentElement === t ? n : null;
|
|
6036
|
-
},
|
|
6056
|
+
}, sc = (e) => {
|
|
6037
6057
|
let t = e.querySelector("[data-mesurer-root='true']");
|
|
6038
6058
|
if (!t) return () => void 0;
|
|
6039
6059
|
let n = /* @__PURE__ */ new Set();
|
|
6040
6060
|
for (let e of t.querySelectorAll("[data-mesurer-rulers='true']")) {
|
|
6041
|
-
let r =
|
|
6061
|
+
let r = oc(e, t);
|
|
6042
6062
|
r && n.add(r);
|
|
6043
6063
|
}
|
|
6044
|
-
for (let e of t.querySelectorAll(
|
|
6045
|
-
let r =
|
|
6064
|
+
for (let e of t.querySelectorAll(Qs)) {
|
|
6065
|
+
let r = oc(e, t);
|
|
6046
6066
|
r && n.add(r);
|
|
6047
6067
|
}
|
|
6048
6068
|
let r = [];
|
|
6049
6069
|
for (let e of n) e.dataset.mesurerInspectorUi !== "true" && (r.push({
|
|
6050
6070
|
element: e,
|
|
6051
|
-
display:
|
|
6071
|
+
display: ic(e)
|
|
6052
6072
|
}), e.style.setProperty("display", "none", "important"));
|
|
6053
6073
|
return () => {
|
|
6054
|
-
for (let e of r)
|
|
6074
|
+
for (let e of r) ac(e.element, e.display);
|
|
6055
6075
|
};
|
|
6056
|
-
},
|
|
6076
|
+
}, cc = (e) => Array.from(e.querySelectorAll($s)).filter((e) => e.dataset.mesurerInspectorUi === "true").map((e) => ({
|
|
6057
6077
|
element: e,
|
|
6058
|
-
display:
|
|
6059
|
-
})),
|
|
6060
|
-
for (let t of e) t.element.isConnected &&
|
|
6061
|
-
},
|
|
6062
|
-
id:
|
|
6078
|
+
display: ic(e)
|
|
6079
|
+
})), lc = (e) => {
|
|
6080
|
+
for (let t of e) t.element.isConnected && ac(t.element, t.display);
|
|
6081
|
+
}, uc = (e = {}) => ar({
|
|
6082
|
+
id: Ws,
|
|
6063
6083
|
version: "0.1.0",
|
|
6064
|
-
requires: [
|
|
6084
|
+
requires: [Js],
|
|
6065
6085
|
provides: [
|
|
6066
6086
|
"tool:screenshot",
|
|
6067
6087
|
"capture:screenshot",
|
|
6068
6088
|
"settings:screenshot"
|
|
6069
6089
|
],
|
|
6070
6090
|
setup(t) {
|
|
6071
|
-
let n = t.service.get(
|
|
6091
|
+
let n = t.service.get(Js);
|
|
6072
6092
|
if (!n) throw Error("Screenshot plugin requires the Solid renderer runtime.");
|
|
6073
|
-
let { ownerDocument: r, ownerWindow: i } = n, a = n.createWorkspaceRuntime(), o = n.createInspectorMount(), s = e.capture ?? e.captureVisibleTab, c = s ?? Vr, l = e.previewDurationMs ??
|
|
6093
|
+
let { ownerDocument: r, ownerWindow: i } = n, a = n.createWorkspaceRuntime(), o = n.createInspectorMount(), s = e.capture ?? e.captureVisibleTab, c = s ?? Vr, l = e.previewDurationMs ?? Zs;
|
|
6074
6094
|
t.state.register({
|
|
6075
|
-
id:
|
|
6095
|
+
id: Ks,
|
|
6076
6096
|
initial: {
|
|
6077
6097
|
toolEnabled: e.toolEnabled ?? !0,
|
|
6078
6098
|
copy: e.copy ?? !0,
|
|
@@ -6081,11 +6101,11 @@ var rs = "mesurer.layout-guides", is = "layout-guides:v1", as = "mesurer.layout-
|
|
|
6081
6101
|
},
|
|
6082
6102
|
persist: !0
|
|
6083
6103
|
}), t.state.register({
|
|
6084
|
-
id:
|
|
6104
|
+
id: qs,
|
|
6085
6105
|
initial: !1
|
|
6086
6106
|
});
|
|
6087
6107
|
let u = o.element;
|
|
6088
|
-
u.dataset.mesurerScreenshot = "true",
|
|
6108
|
+
u.dataset.mesurerScreenshot = "true", tc(u, {
|
|
6089
6109
|
position: "fixed",
|
|
6090
6110
|
inset: "0",
|
|
6091
6111
|
"z-index": "85",
|
|
@@ -6093,7 +6113,7 @@ var rs = "mesurer.layout-guides", is = "layout-guides:v1", as = "mesurer.layout-
|
|
|
6093
6113
|
"font-family": "ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif"
|
|
6094
6114
|
});
|
|
6095
6115
|
let d = r.createElement("div");
|
|
6096
|
-
d.dataset.mesurerScreenshotSelect = "true", d.setAttribute("role", "application"), d.setAttribute("aria-label", "Screenshot selection"),
|
|
6116
|
+
d.dataset.mesurerScreenshotSelect = "true", d.setAttribute("role", "application"), d.setAttribute("aria-label", "Screenshot selection"), tc(d, {
|
|
6097
6117
|
position: "fixed",
|
|
6098
6118
|
inset: "0",
|
|
6099
6119
|
display: "none",
|
|
@@ -6105,13 +6125,13 @@ var rs = "mesurer.layout-guides", is = "layout-guides:v1", as = "mesurer.layout-
|
|
|
6105
6125
|
}), u.append(d);
|
|
6106
6126
|
let f = Array.from({ length: 4 }, () => {
|
|
6107
6127
|
let e = r.createElement("div");
|
|
6108
|
-
return
|
|
6128
|
+
return tc(e, {
|
|
6109
6129
|
position: "fixed",
|
|
6110
6130
|
"background-color": "rgb(0 0 0 / 40%)",
|
|
6111
6131
|
"pointer-events": "none"
|
|
6112
6132
|
}), d.append(e), e;
|
|
6113
6133
|
}), p = r.createElement("div");
|
|
6114
|
-
|
|
6134
|
+
tc(p, {
|
|
6115
6135
|
position: "fixed",
|
|
6116
6136
|
display: "none",
|
|
6117
6137
|
border: "1px solid #0d99ff",
|
|
@@ -6119,7 +6139,7 @@ var rs = "mesurer.layout-guides", is = "layout-guides:v1", as = "mesurer.layout-
|
|
|
6119
6139
|
"pointer-events": "none"
|
|
6120
6140
|
}), d.append(p);
|
|
6121
6141
|
let m = r.createElement("div");
|
|
6122
|
-
|
|
6142
|
+
tc(m, {
|
|
6123
6143
|
position: "fixed",
|
|
6124
6144
|
display: "none",
|
|
6125
6145
|
"z-index": "86",
|
|
@@ -6133,7 +6153,7 @@ var rs = "mesurer.layout-guides", is = "layout-guides:v1", as = "mesurer.layout-
|
|
|
6133
6153
|
"pointer-events": "none"
|
|
6134
6154
|
}), d.append(m);
|
|
6135
6155
|
let h = r.createElement("div");
|
|
6136
|
-
h.textContent = "Drag to select · Esc to cancel",
|
|
6156
|
+
h.textContent = "Drag to select · Esc to cancel", tc(h, {
|
|
6137
6157
|
position: "fixed",
|
|
6138
6158
|
left: "50%",
|
|
6139
6159
|
bottom: "16px",
|
|
@@ -6146,7 +6166,7 @@ var rs = "mesurer.layout-guides", is = "layout-guides:v1", as = "mesurer.layout-
|
|
|
6146
6166
|
"pointer-events": "none"
|
|
6147
6167
|
}), d.append(h);
|
|
6148
6168
|
let g = r.createElement("div");
|
|
6149
|
-
g.dataset.mesurerScreenshotError = "true", g.setAttribute("role", "status"), g.textContent = "Could not save screenshot",
|
|
6169
|
+
g.dataset.mesurerScreenshotError = "true", g.setAttribute("role", "status"), g.textContent = "Could not save screenshot", tc(g, {
|
|
6150
6170
|
position: "fixed",
|
|
6151
6171
|
display: "none",
|
|
6152
6172
|
"z-index": "97",
|
|
@@ -6157,8 +6177,8 @@ var rs = "mesurer.layout-guides", is = "layout-guides:v1", as = "mesurer.layout-
|
|
|
6157
6177
|
"font-size": "11px",
|
|
6158
6178
|
"pointer-events": "none"
|
|
6159
6179
|
}), u.append(g);
|
|
6160
|
-
let _ = null, v = null, y = 0, b = 0, x = !1, S = !1, C = !1, w = () => t.state.get("mesurer.screenshot.active") ?? !1, T = () =>
|
|
6161
|
-
t.state.update(
|
|
6180
|
+
let _ = null, v = null, y = 0, b = 0, x = !1, S = !1, C = !1, w = () => t.state.get("mesurer.screenshot.active") ?? !1, T = () => rc(t.state.get), E = (e) => {
|
|
6181
|
+
t.state.update(Ks, (t) => {
|
|
6162
6182
|
let n = { ...t };
|
|
6163
6183
|
return e.toolEnabled !== void 0 && (n.toolEnabled = e.toolEnabled), e.copy !== void 0 && (n.copy = e.copy), e.download !== void 0 && (n.download = e.download), e.includeMeasurements !== void 0 && (n.includeMeasurements = e.includeMeasurements), n;
|
|
6164
6184
|
});
|
|
@@ -6181,13 +6201,13 @@ var rs = "mesurer.layout-guides", is = "layout-guides:v1", as = "mesurer.layout-
|
|
|
6181
6201
|
}, A = (e) => {
|
|
6182
6202
|
let t = i.innerWidth, n = i.innerHeight;
|
|
6183
6203
|
if (!e || e.width <= 0 || e.height <= 0) {
|
|
6184
|
-
|
|
6204
|
+
nc(f[0], {
|
|
6185
6205
|
left: 0,
|
|
6186
6206
|
top: 0,
|
|
6187
6207
|
width: t,
|
|
6188
6208
|
height: n
|
|
6189
6209
|
});
|
|
6190
|
-
for (let e of f.slice(1))
|
|
6210
|
+
for (let e of f.slice(1)) nc(e, {
|
|
6191
6211
|
left: 0,
|
|
6192
6212
|
top: 0,
|
|
6193
6213
|
width: 0,
|
|
@@ -6196,31 +6216,31 @@ var rs = "mesurer.layout-guides", is = "layout-guides:v1", as = "mesurer.layout-
|
|
|
6196
6216
|
p.style.display = "none", m.style.display = "none";
|
|
6197
6217
|
return;
|
|
6198
6218
|
}
|
|
6199
|
-
|
|
6219
|
+
nc(f[0], {
|
|
6200
6220
|
left: 0,
|
|
6201
6221
|
top: 0,
|
|
6202
6222
|
width: t,
|
|
6203
6223
|
height: e.top
|
|
6204
|
-
}),
|
|
6224
|
+
}), nc(f[1], {
|
|
6205
6225
|
left: 0,
|
|
6206
6226
|
top: e.top,
|
|
6207
6227
|
width: e.left,
|
|
6208
6228
|
height: e.height
|
|
6209
|
-
}),
|
|
6229
|
+
}), nc(f[2], {
|
|
6210
6230
|
left: e.left + e.width,
|
|
6211
6231
|
top: e.top,
|
|
6212
6232
|
width: Math.max(0, t - e.left - e.width),
|
|
6213
6233
|
height: e.height
|
|
6214
|
-
}),
|
|
6234
|
+
}), nc(f[3], {
|
|
6215
6235
|
left: 0,
|
|
6216
6236
|
top: e.top + e.height,
|
|
6217
6237
|
width: t,
|
|
6218
6238
|
height: Math.max(0, n - e.top - e.height)
|
|
6219
|
-
}), p.style.display = "block",
|
|
6239
|
+
}), p.style.display = "block", nc(p, e), m.style.display = "block", m.textContent = `${Math.round(e.width)} × ${Math.round(e.height)}`, nc(m, {
|
|
6220
6240
|
left: e.left + e.width / 2,
|
|
6221
6241
|
top: Math.min(n - 22, e.top + e.height + 6)
|
|
6222
6242
|
});
|
|
6223
|
-
}, j = () => n.portalTarget.querySelector("[data-mesurer-tool-id='screenshot']")?.getBoundingClientRect() ?? null, M =
|
|
6243
|
+
}, j = () => n.portalTarget.querySelector("[data-mesurer-tool-id='screenshot']")?.getBoundingClientRect() ?? null, M = Us({
|
|
6224
6244
|
ownerDocument: r,
|
|
6225
6245
|
ownerWindow: i,
|
|
6226
6246
|
root: u,
|
|
@@ -6231,7 +6251,7 @@ var rs = "mesurer.layout-guides", is = "layout-guides:v1", as = "mesurer.layout-
|
|
|
6231
6251
|
}, N = () => {
|
|
6232
6252
|
y && i.clearTimeout(y), g.style.display = "block", ee(g), y = i.setTimeout(() => {
|
|
6233
6253
|
y = 0, g.style.display = "none";
|
|
6234
|
-
},
|
|
6254
|
+
}, Xs);
|
|
6235
6255
|
}, P = () => {
|
|
6236
6256
|
_ = null, A(null), d.style.visibility = "", d.style.display = "none", u.style.pointerEvents = "none", D(!1), k();
|
|
6237
6257
|
}, F = () => {
|
|
@@ -6240,8 +6260,8 @@ var rs = "mesurer.layout-guides", is = "layout-guides:v1", as = "mesurer.layout-
|
|
|
6240
6260
|
if (x) throw Error("A screenshot capture is already running.");
|
|
6241
6261
|
if (e.width < 4 || e.height < 4) throw Error("Screenshot selection must be at least 4px by 4px.");
|
|
6242
6262
|
x = !0;
|
|
6243
|
-
let o = ++b, s = T(), l = s.includeMeasurements ?
|
|
6244
|
-
a.prepareCapture(), s.includeMeasurements &&
|
|
6263
|
+
let o = ++b, s = T(), l = s.includeMeasurements ? cc(r) : [], u = s.includeMeasurements ? () => void 0 : sc(n.portalTarget);
|
|
6264
|
+
a.prepareCapture(), s.includeMeasurements && lc(l);
|
|
6245
6265
|
try {
|
|
6246
6266
|
d.style.visibility = "hidden", await Cr(i);
|
|
6247
6267
|
let n = await yr(await c({
|
|
@@ -6349,8 +6369,8 @@ var rs = "mesurer.layout-guides", is = "layout-guides:v1", as = "mesurer.layout-
|
|
|
6349
6369
|
label: "Screenshot",
|
|
6350
6370
|
shortcut: "Shift+S",
|
|
6351
6371
|
order: 70,
|
|
6352
|
-
command:
|
|
6353
|
-
icon:
|
|
6372
|
+
command: Ys,
|
|
6373
|
+
icon: ec,
|
|
6354
6374
|
active: w,
|
|
6355
6375
|
hidden: () => !T().toolEnabled,
|
|
6356
6376
|
menu: {
|
|
@@ -6416,14 +6436,14 @@ var rs = "mesurer.layout-guides", is = "layout-guides:v1", as = "mesurer.layout-
|
|
|
6416
6436
|
set: (e) => E({ includeMeasurements: e })
|
|
6417
6437
|
}
|
|
6418
6438
|
]
|
|
6419
|
-
}), t.command.register(
|
|
6439
|
+
}), t.command.register(Ys, I), t.service.provide(Gs, ne), t.lifecycle.onDispose(() => {
|
|
6420
6440
|
C = !0, b += 1, d.removeEventListener("pointerdown", L), d.removeEventListener("pointermove", R), d.removeEventListener("pointerup", z), d.removeEventListener("pointercancel", B), i.removeEventListener("keydown", V, !0), y && i.clearTimeout(y), M.dispose(), k(), Hr(i), a.finishCapture(), a.dispose(), o.dispose();
|
|
6421
6441
|
});
|
|
6422
6442
|
}
|
|
6423
|
-
}),
|
|
6424
|
-
...
|
|
6425
|
-
version:
|
|
6426
|
-
}),
|
|
6443
|
+
}), dc = "0.2.0-beta.5", fc = xa, pc = va, mc = ya, hc = Sa, gc = ba, _c = () => ({
|
|
6444
|
+
...io(),
|
|
6445
|
+
version: dc
|
|
6446
|
+
}), vc = (e, t) => e.left <= t.left + t.width && e.left + e.width >= t.left && e.top <= t.top + t.height && e.top + e.height >= t.top, yc = (e) => {
|
|
6427
6447
|
if (!e.length) return null;
|
|
6428
6448
|
let t = Math.min(...e.map((e) => e.left)), n = Math.min(...e.map((e) => e.top)), r = Math.max(...e.map((e) => e.left + e.width)), i = Math.max(...e.map((e) => e.top + e.height));
|
|
6429
6449
|
return {
|
|
@@ -6432,43 +6452,43 @@ var rs = "mesurer.layout-guides", is = "layout-guides:v1", as = "mesurer.layout-
|
|
|
6432
6452
|
width: r - t,
|
|
6433
6453
|
height: i - n
|
|
6434
6454
|
};
|
|
6435
|
-
},
|
|
6436
|
-
function
|
|
6455
|
+
}, bc = (e, t, n) => t.some((t) => e.orientation === "vertical" ? e.position >= t.left - n && e.position <= t.left + t.width + n : e.position >= t.top - n && e.position <= t.top + t.height + n), xc = (e) => [...e.measurements, ...e.activeMeasurement && !e.measurements.some((t) => t.id === e.activeMeasurement?.id) ? [e.activeMeasurement] : []];
|
|
6456
|
+
function Sc(e) {
|
|
6437
6457
|
let { workspace: t, scope: n, guideTolerance: r } = e;
|
|
6438
6458
|
if (n.kind === "workspace") return {
|
|
6439
6459
|
guides: t.guides.map((e) => ({ ...e })),
|
|
6440
|
-
measurements:
|
|
6460
|
+
measurements: xc(t),
|
|
6441
6461
|
distances: [...t.distances]
|
|
6442
6462
|
};
|
|
6443
|
-
let i = new Set(n.elements), a = (e) => e != null && i.has(e), o = (e) => n.regions.some((t) =>
|
|
6463
|
+
let i = new Set(n.elements), a = (e) => e != null && i.has(e), o = (e) => n.regions.some((t) => vc(e, t));
|
|
6444
6464
|
return {
|
|
6445
|
-
guides: t.guides.filter((e) =>
|
|
6446
|
-
measurements:
|
|
6465
|
+
guides: t.guides.filter((e) => bc(e, n.regions, r)).map((e) => ({ ...e })),
|
|
6466
|
+
measurements: xc(t).filter((e) => a(e.elementRef) || o(e.rect)),
|
|
6447
6467
|
distances: t.distances.filter((e) => a(e.elementRefA) || a(e.elementRefB) || o(e.rectA) || o(e.rectB))
|
|
6448
6468
|
};
|
|
6449
6469
|
}
|
|
6450
6470
|
//#endregion
|
|
6451
6471
|
//#region ../mesurer-core/dist/domain.js
|
|
6452
|
-
var
|
|
6472
|
+
var Cc = {
|
|
6453
6473
|
opacity: 1,
|
|
6454
6474
|
width: 1,
|
|
6455
6475
|
pattern: "solid",
|
|
6456
6476
|
dashLength: 6,
|
|
6457
6477
|
gap: 4
|
|
6458
|
-
},
|
|
6478
|
+
}, wc = {
|
|
6459
6479
|
opacity: 1,
|
|
6460
6480
|
edgeReveal: !1
|
|
6461
6481
|
};
|
|
6462
|
-
({ ...
|
|
6482
|
+
({ ...Cc }), { ...wc };
|
|
6463
6483
|
//#endregion
|
|
6464
6484
|
//#region ../mesurer-dom/dist/index.js
|
|
6465
|
-
var
|
|
6485
|
+
var Tc = (e) => Number.parseFloat(e) || 0, Ec = 0, Dc = (e, t) => {
|
|
6466
6486
|
let n = t.CSS;
|
|
6467
6487
|
return n?.escape ? n.escape(e) : e.replace(/[^a-zA-Z0-9_-]/g, (e) => `\\${e}`);
|
|
6468
6488
|
};
|
|
6469
|
-
function
|
|
6489
|
+
function Oc(e) {
|
|
6470
6490
|
let t = e.ownerDocument.defaultView ?? window;
|
|
6471
|
-
if (e.id) return `#${
|
|
6491
|
+
if (e.id) return `#${Dc(e.id, t)}`;
|
|
6472
6492
|
let n = e.getAttribute("data-testid");
|
|
6473
6493
|
if (n) return `[data-testid=${JSON.stringify(n)}]`;
|
|
6474
6494
|
let r = [], i = e;
|
|
@@ -6482,17 +6502,17 @@ function Ec(e) {
|
|
|
6482
6502
|
}
|
|
6483
6503
|
return r.join(" > ");
|
|
6484
6504
|
}
|
|
6485
|
-
function
|
|
6505
|
+
function kc(e, t, n = `dom-inspection-${++Ec}`) {
|
|
6486
6506
|
let r = e.getBoundingClientRect(), i = t.getComputedStyle(e), a = {
|
|
6487
|
-
top:
|
|
6488
|
-
right:
|
|
6489
|
-
bottom:
|
|
6490
|
-
left:
|
|
6507
|
+
top: Tc(i.paddingTop),
|
|
6508
|
+
right: Tc(i.paddingRight),
|
|
6509
|
+
bottom: Tc(i.paddingBottom),
|
|
6510
|
+
left: Tc(i.paddingLeft)
|
|
6491
6511
|
}, o = {
|
|
6492
|
-
top:
|
|
6493
|
-
right:
|
|
6494
|
-
bottom:
|
|
6495
|
-
left:
|
|
6512
|
+
top: Tc(i.marginTop),
|
|
6513
|
+
right: Tc(i.marginRight),
|
|
6514
|
+
bottom: Tc(i.marginBottom),
|
|
6515
|
+
left: Tc(i.marginLeft)
|
|
6496
6516
|
}, s = {
|
|
6497
6517
|
left: r.left + a.left,
|
|
6498
6518
|
top: r.top + a.top,
|
|
@@ -6520,8 +6540,8 @@ function Dc(e, t, n = `dom-inspection-${++wc}`) {
|
|
|
6520
6540
|
elementRef: e
|
|
6521
6541
|
};
|
|
6522
6542
|
}
|
|
6523
|
-
function
|
|
6524
|
-
let t = e.ownerDocument.defaultView ?? window, n = t.getComputedStyle(e), r = e instanceof t.HTMLElement ? e : null, i = e.getBoundingClientRect(), a = r ?
|
|
6543
|
+
function Ac(e) {
|
|
6544
|
+
let t = e.ownerDocument.defaultView ?? window, n = t.getComputedStyle(e), r = e instanceof t.HTMLElement ? e : null, i = e.getBoundingClientRect(), a = r ? kc(r, t) : null, o = (e) => {
|
|
6525
6545
|
let t = Number.parseFloat(e);
|
|
6526
6546
|
return Number.isFinite(t) ? t : 0;
|
|
6527
6547
|
}, s = (e) => ({
|
|
@@ -6531,7 +6551,7 @@ function Oc(e) {
|
|
|
6531
6551
|
left: o(n.getPropertyValue(`${e}-left${e === "border" ? "-width" : ""}`))
|
|
6532
6552
|
});
|
|
6533
6553
|
return {
|
|
6534
|
-
selector:
|
|
6554
|
+
selector: Oc(e),
|
|
6535
6555
|
tag: e.localName,
|
|
6536
6556
|
id: e.id || null,
|
|
6537
6557
|
classes: [...e.classList],
|
|
@@ -6593,17 +6613,17 @@ function Oc(e) {
|
|
|
6593
6613
|
}
|
|
6594
6614
|
//#endregion
|
|
6595
6615
|
//#region src/context.ts
|
|
6596
|
-
var
|
|
6616
|
+
var jc = 10, Mc = (e) => ({
|
|
6597
6617
|
left: e.left,
|
|
6598
6618
|
top: e.top,
|
|
6599
6619
|
width: e.width,
|
|
6600
6620
|
height: e.height
|
|
6601
|
-
}),
|
|
6621
|
+
}), Nc = (e) => {
|
|
6602
6622
|
let t = /* @__PURE__ */ new Set(), n = [];
|
|
6603
6623
|
for (let r of e) !r?.isConnected || t.has(r) || (t.add(r), n.push(r));
|
|
6604
6624
|
return n;
|
|
6605
|
-
},
|
|
6606
|
-
function
|
|
6625
|
+
}, Pc = (e) => e.crypto?.randomUUID?.() ?? `${Date.now()}-${Math.random().toString(36).slice(2)}`;
|
|
6626
|
+
function Fc(e) {
|
|
6607
6627
|
let { runtime: t, ownerDocument: n, ownerWindow: r } = e, i = e.request ?? { scope: "workspace" }, a = t.snapshot();
|
|
6608
6628
|
if (!a) throw Error("Mesurer workspace is not ready yet.");
|
|
6609
6629
|
let o = [], s = [], c = { kind: "workspace" }, l = /* @__PURE__ */ new Map();
|
|
@@ -6611,7 +6631,7 @@ function Nc(e) {
|
|
|
6611
6631
|
let e = t.annotation(i.annotation);
|
|
6612
6632
|
if (!e) throw Error(`Mesurer annotation not found: ${i.annotation}`);
|
|
6613
6633
|
for (let t of e.resolvedTargets) t.element?.isConnected && l.set(t.element, t.target.id);
|
|
6614
|
-
o =
|
|
6634
|
+
o = Nc(e.resolvedTargets.map((e) => e.element));
|
|
6615
6635
|
let n = t.annotationRect(e.id);
|
|
6616
6636
|
n && (s = [n]);
|
|
6617
6637
|
let r = e.resolvedTargets.length, a = e.resolvedTargets.filter((e) => e.element?.isConnected).length, u = e.anchor.kind === "region" ? "connected" : r === 0 || a === 0 ? "stale" : a === r ? "connected" : "partial";
|
|
@@ -6623,15 +6643,15 @@ function Nc(e) {
|
|
|
6623
6643
|
};
|
|
6624
6644
|
} else if (i.scope === "selection") {
|
|
6625
6645
|
let e = t.currentSelection();
|
|
6626
|
-
if (o =
|
|
6627
|
-
s = e.region ? [e.region] : o.map((e) =>
|
|
6628
|
-
} else o =
|
|
6646
|
+
if (o = Nc(e.elements), !o.length && !e.region) throw Error("Mesurer has no current selection.");
|
|
6647
|
+
s = e.region ? [e.region] : o.map((e) => Mc(e.getBoundingClientRect())), c = { kind: "selection" };
|
|
6648
|
+
} else o = Nc([
|
|
6629
6649
|
...t.currentSelection().elements,
|
|
6630
6650
|
...a.measurements.map((e) => e.elementRef),
|
|
6631
6651
|
a.activeMeasurement?.elementRef,
|
|
6632
6652
|
...a.heldDistances.flatMap((e) => [e.elementRefA, e.elementRefB])
|
|
6633
6653
|
]);
|
|
6634
|
-
let u = c.kind === "workspace" ? [] : s.length ? s : o.map((e) =>
|
|
6654
|
+
let u = c.kind === "workspace" ? [] : s.length ? s : o.map((e) => Mc(e.getBoundingClientRect())), d = Sc({
|
|
6635
6655
|
workspace: {
|
|
6636
6656
|
guides: a.guides,
|
|
6637
6657
|
measurements: a.measurements,
|
|
@@ -6643,8 +6663,8 @@ function Nc(e) {
|
|
|
6643
6663
|
elements: o,
|
|
6644
6664
|
regions: u
|
|
6645
6665
|
},
|
|
6646
|
-
guideTolerance: a.guideRelevanceTolerance ??
|
|
6647
|
-
}), f = d.measurements, p = d.distances, m = d.guides, h =
|
|
6666
|
+
guideTolerance: a.guideRelevanceTolerance ?? jc
|
|
6667
|
+
}), f = d.measurements, p = d.distances, m = d.guides, h = Nc([
|
|
6648
6668
|
...o,
|
|
6649
6669
|
...f.map((e) => e.elementRef),
|
|
6650
6670
|
...p.flatMap((e) => [e.elementRefA, e.elementRefB])
|
|
@@ -6656,12 +6676,12 @@ function Nc(e) {
|
|
|
6656
6676
|
let t = l.get(e) ?? y();
|
|
6657
6677
|
return g.set(e, t), {
|
|
6658
6678
|
ref: t,
|
|
6659
|
-
inspection:
|
|
6679
|
+
inspection: Ac(e)
|
|
6660
6680
|
};
|
|
6661
6681
|
}), x = f.map((e) => {
|
|
6662
6682
|
let t = {
|
|
6663
6683
|
id: e.id,
|
|
6664
|
-
rect:
|
|
6684
|
+
rect: Mc(e.rect),
|
|
6665
6685
|
deltaX: e.deltaX,
|
|
6666
6686
|
deltaY: e.deltaY
|
|
6667
6687
|
};
|
|
@@ -6671,8 +6691,8 @@ function Nc(e) {
|
|
|
6671
6691
|
}), S = p.map((e) => {
|
|
6672
6692
|
let t = {
|
|
6673
6693
|
id: e.id,
|
|
6674
|
-
rectA:
|
|
6675
|
-
rectB:
|
|
6694
|
+
rectA: Mc(e.rectA),
|
|
6695
|
+
rectB: Mc(e.rectB),
|
|
6676
6696
|
horizontal: e.horizontal ? { ...e.horizontal } : null,
|
|
6677
6697
|
vertical: e.vertical ? { ...e.vertical } : null
|
|
6678
6698
|
}, n = e.elementRefA ? g.get(e.elementRefA) : void 0, r = e.elementRefB ? g.get(e.elementRefB) : void 0;
|
|
@@ -6680,7 +6700,7 @@ function Nc(e) {
|
|
|
6680
6700
|
});
|
|
6681
6701
|
return {
|
|
6682
6702
|
schema: "mesurer.context/v1",
|
|
6683
|
-
id:
|
|
6703
|
+
id: Pc(r),
|
|
6684
6704
|
createdAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
6685
6705
|
scope: c,
|
|
6686
6706
|
page: {
|
|
@@ -6695,7 +6715,7 @@ function Nc(e) {
|
|
|
6695
6715
|
scrollY: r.scrollY
|
|
6696
6716
|
},
|
|
6697
6717
|
coordinateSpace: "viewport-css-px",
|
|
6698
|
-
regions: c.kind === "workspace" ? [] : s.map(
|
|
6718
|
+
regions: c.kind === "workspace" ? [] : s.map(Mc),
|
|
6699
6719
|
visualState: {
|
|
6700
6720
|
rulersVisible: a.rulersVisible,
|
|
6701
6721
|
xrayVisible: a.xrayVisible
|
|
@@ -6709,19 +6729,19 @@ function Nc(e) {
|
|
|
6709
6729
|
}
|
|
6710
6730
|
};
|
|
6711
6731
|
}
|
|
6712
|
-
var $ = (e) => `${Math.round(e * 100) / 100}px`,
|
|
6713
|
-
function
|
|
6732
|
+
var $ = (e) => `${Math.round(e * 100) / 100}px`, Ic = (e) => `x=${$(e.left)} y=${$(e.top)} w=${$(e.width)} h=${$(e.height)}`;
|
|
6733
|
+
function Lc(e) {
|
|
6714
6734
|
let t = [
|
|
6715
6735
|
"Mesurer visual context",
|
|
6716
6736
|
"",
|
|
6717
6737
|
`Page: ${e.page.url}`,
|
|
6718
6738
|
`Viewport: ${e.viewport.width} × ${e.viewport.height} CSS px; scroll x=${e.viewport.scrollX} y=${e.viewport.scrollY}`
|
|
6719
6739
|
];
|
|
6720
|
-
if (e.scope.kind === "annotation" ? t.push("", "Annotation", e.scope.note, `Target status: ${e.scope.targetStatus}`) : t.push("", `Scope: ${e.scope.kind}`), e.regions.length && (t.push("", "Requested regions"), e.regions.forEach((e, n) => t.push(`- region-${n + 1}: ${
|
|
6740
|
+
if (e.scope.kind === "annotation" ? t.push("", "Annotation", e.scope.note, `Target status: ${e.scope.targetStatus}`) : t.push("", `Scope: ${e.scope.kind}`), e.regions.length && (t.push("", "Requested regions"), e.regions.forEach((e, n) => t.push(`- region-${n + 1}: ${Ic(e)}`))), (e.visualState.rulersVisible || e.visualState.xrayVisible) && t.push("", `Visual state: rulers=${e.visualState.rulersVisible ? "on" : "off"}; x-ray=${e.visualState.xrayVisible ? "on" : "off"}`), e.targets.length) {
|
|
6721
6741
|
t.push("", "Targets");
|
|
6722
6742
|
for (let n of e.targets) {
|
|
6723
6743
|
let e = n.inspection;
|
|
6724
|
-
t.push(`[${n.ref}] ${e.selector}`, ` rect: ${
|
|
6744
|
+
t.push(`[${n.ref}] ${e.selector}`, ` rect: ${Ic(e.rect)}`, ` margin: ${$(e.margin.top)} ${$(e.margin.right)} ${$(e.margin.bottom)} ${$(e.margin.left)}`, ` padding: ${$(e.padding.top)} ${$(e.padding.right)} ${$(e.padding.bottom)} ${$(e.padding.left)}`, ` layout: display=${e.layout.display}; position=${e.layout.position}; gap=${e.layout.gap}`, ` typography: ${e.typography.fontSize} / ${e.typography.lineHeight}; weight=${e.typography.fontWeight}; align=${e.typography.textAlign}`), e.text && t.push(` text: ${JSON.stringify(e.text)}`);
|
|
6725
6745
|
}
|
|
6726
6746
|
}
|
|
6727
6747
|
if (e.visualContext.guides.length) {
|
|
@@ -6738,7 +6758,7 @@ function Fc(e) {
|
|
|
6738
6758
|
}
|
|
6739
6759
|
if (e.visualContext.measurements.length) {
|
|
6740
6760
|
t.push("", "Relevant measurements");
|
|
6741
|
-
for (let n of e.visualContext.measurements) t.push(`- ${n.targetRef ? `${n.targetRef}: ` : ""}${
|
|
6761
|
+
for (let n of e.visualContext.measurements) t.push(`- ${n.targetRef ? `${n.targetRef}: ` : ""}${Ic(n.rect)}; delta=${$(n.deltaX)} × ${$(n.deltaY)}`);
|
|
6742
6762
|
}
|
|
6743
6763
|
if (e.visualContext.distances.length) {
|
|
6744
6764
|
t.push("", "Relevant distances");
|
|
@@ -6749,8 +6769,8 @@ function Fc(e) {
|
|
|
6749
6769
|
}
|
|
6750
6770
|
return t.join("\n").trimEnd();
|
|
6751
6771
|
}
|
|
6752
|
-
function
|
|
6753
|
-
let t =
|
|
6772
|
+
function Rc(e) {
|
|
6773
|
+
let t = yc([
|
|
6754
6774
|
...e.regions,
|
|
6755
6775
|
...e.targets.map((e) => e.inspection.rect),
|
|
6756
6776
|
...e.visualContext.measurements.map((e) => e.rect),
|
|
@@ -6780,7 +6800,7 @@ function Ic(e) {
|
|
|
6780
6800
|
captures: n
|
|
6781
6801
|
};
|
|
6782
6802
|
}
|
|
6783
|
-
var
|
|
6803
|
+
var zc = (e, t, n, r, i) => {
|
|
6784
6804
|
!Number.isFinite(r) || !Number.isFinite(i) || Math.abs(r - i) < .01 || e.push({
|
|
6785
6805
|
kind: t,
|
|
6786
6806
|
label: n,
|
|
@@ -6789,16 +6809,16 @@ var Lc = (e, t, n, r, i) => {
|
|
|
6789
6809
|
delta: i - r,
|
|
6790
6810
|
unit: "px"
|
|
6791
6811
|
});
|
|
6792
|
-
},
|
|
6812
|
+
}, Bc = (e, t, n, r) => e.push({
|
|
6793
6813
|
kind: "missing",
|
|
6794
6814
|
evidence: t,
|
|
6795
6815
|
id: n,
|
|
6796
6816
|
label: r
|
|
6797
|
-
}),
|
|
6798
|
-
function
|
|
6817
|
+
}), Vc = (e, t) => Math.abs(e.left - t.left) < .01 && Math.abs(e.top - t.top) < .01 && Math.abs(e.width - t.width) < .01 && Math.abs(e.height - t.height) < .01;
|
|
6818
|
+
function Hc(e) {
|
|
6799
6819
|
let t = e.runtime.annotation(e.annotationId);
|
|
6800
6820
|
if (!t) throw Error(`Mesurer annotation not found: ${e.annotationId}`);
|
|
6801
|
-
let n =
|
|
6821
|
+
let n = Fc({
|
|
6802
6822
|
runtime: e.runtime,
|
|
6803
6823
|
ownerDocument: e.ownerDocument,
|
|
6804
6824
|
ownerWindow: e.ownerWindow,
|
|
@@ -6808,42 +6828,42 @@ function Bc(e) {
|
|
|
6808
6828
|
if (n.scope.kind !== "annotation") throw Error("Mesurer annotation context invariant failed.");
|
|
6809
6829
|
let r = e.runtime.snapshot();
|
|
6810
6830
|
if (!r) throw Error("Mesurer workspace is not ready yet.");
|
|
6811
|
-
let i =
|
|
6831
|
+
let i = xc({
|
|
6812
6832
|
measurements: r.measurements,
|
|
6813
6833
|
activeMeasurement: r.activeMeasurement
|
|
6814
6834
|
}), a = [];
|
|
6815
6835
|
for (let e of t.baseline.targets) {
|
|
6816
6836
|
let t = n.targets.find((t) => t.ref === e.id);
|
|
6817
6837
|
if (!t) {
|
|
6818
|
-
|
|
6838
|
+
Bc(a, "target", e.id, e.selector);
|
|
6819
6839
|
continue;
|
|
6820
6840
|
}
|
|
6821
|
-
|
|
6841
|
+
zc(a, "target-rect", `${t.inspection.selector} left`, e.rect.left, t.inspection.rect.left), zc(a, "target-rect", `${t.inspection.selector} top`, e.rect.top, t.inspection.rect.top), zc(a, "target-rect", `${t.inspection.selector} width`, e.rect.width, t.inspection.rect.width), zc(a, "target-rect", `${t.inspection.selector} height`, e.rect.height, t.inspection.rect.height);
|
|
6822
6842
|
}
|
|
6823
6843
|
for (let e of t.baseline.guides) {
|
|
6824
6844
|
let t = n.visualContext.guides.find((t) => t.id === e.id) ?? r.guides.find((t) => t.id === e.id);
|
|
6825
6845
|
if (!t) {
|
|
6826
|
-
|
|
6846
|
+
Bc(a, "guide", e.id, `${e.orientation} guide ${e.id}`);
|
|
6827
6847
|
continue;
|
|
6828
6848
|
}
|
|
6829
|
-
|
|
6849
|
+
zc(a, "guide", `${e.orientation} guide ${e.id}`, e.position, t.position);
|
|
6830
6850
|
}
|
|
6831
6851
|
for (let e of t.baseline.measurements) {
|
|
6832
6852
|
let r = n.visualContext.measurements.find((t) => t.id === e.id) ?? i.find((t) => t.id === e.id);
|
|
6833
6853
|
if (!r) {
|
|
6834
|
-
let r = t.baseline.targets.find((t) =>
|
|
6835
|
-
r && n.targets.some((e) => e.ref === r.id) ||
|
|
6854
|
+
let r = t.baseline.targets.find((t) => Vc(t.rect, e.rect));
|
|
6855
|
+
r && n.targets.some((e) => e.ref === r.id) || Bc(a, "measurement", e.id, e.id);
|
|
6836
6856
|
continue;
|
|
6837
6857
|
}
|
|
6838
|
-
|
|
6858
|
+
zc(a, "measurement", `${e.id} width`, e.rect.width, r.rect.width), zc(a, "measurement", `${e.id} height`, e.rect.height, r.rect.height);
|
|
6839
6859
|
}
|
|
6840
6860
|
for (let e of t.baseline.distances) {
|
|
6841
6861
|
let t = n.visualContext.distances.find((t) => t.id === e.id) ?? r.heldDistances.find((t) => t.id === e.id);
|
|
6842
6862
|
if (!t) {
|
|
6843
|
-
|
|
6863
|
+
Bc(a, "distance", e.id, e.id);
|
|
6844
6864
|
continue;
|
|
6845
6865
|
}
|
|
6846
|
-
e.horizontal && t.horizontal ?
|
|
6866
|
+
e.horizontal && t.horizontal ? zc(a, "distance", `${e.id} horizontal`, e.horizontal.value, t.horizontal.value) : e.horizontal && !t.horizontal && Bc(a, "distance", e.id, `${e.id} horizontal`), e.vertical && t.vertical ? zc(a, "distance", `${e.id} vertical`, e.vertical.value, t.vertical.value) : e.vertical && !t.vertical && Bc(a, "distance", e.id, `${e.id} vertical`);
|
|
6847
6867
|
}
|
|
6848
6868
|
return {
|
|
6849
6869
|
schema: "mesurer.review/v1",
|
|
@@ -6855,7 +6875,7 @@ function Bc(e) {
|
|
|
6855
6875
|
changes: a
|
|
6856
6876
|
};
|
|
6857
6877
|
}
|
|
6858
|
-
async function
|
|
6878
|
+
async function Uc(e, t, n) {
|
|
6859
6879
|
try {
|
|
6860
6880
|
if (t.navigator.clipboard?.writeText) {
|
|
6861
6881
|
await t.navigator.clipboard.writeText(n);
|
|
@@ -6869,43 +6889,43 @@ async function Vc(e, t, n) {
|
|
|
6869
6889
|
}
|
|
6870
6890
|
//#endregion
|
|
6871
6891
|
//#region src/layout-guides.ts
|
|
6872
|
-
var
|
|
6873
|
-
...
|
|
6874
|
-
version:
|
|
6875
|
-
}),
|
|
6892
|
+
var Wc = as, Gc = os, Kc = ss, qc = cs, Jc = () => ({
|
|
6893
|
+
...Ms(),
|
|
6894
|
+
version: dc
|
|
6895
|
+
}), Yc = "mesurer.context", Xc = "context:v1", Zc = "mesurer.context.settings", Qc = "context.ui", $c = "data-mesurer-direct-text-edit-active", el = {
|
|
6876
6896
|
viewBox: "0 0 256 256",
|
|
6877
6897
|
paths: ["M216,32H88a8,8,0,0,0-8,8V80H40a8,8,0,0,0-8,8V216a8,8,0,0,0,8,8H168a8,8,0,0,0,8-8V176h40a8,8,0,0,0,8-8V40A8,8,0,0,0,216,32ZM160,208H48V96H160Zm48-48H176V88a8,8,0,0,0-8-8H96V48H208Z"]
|
|
6878
|
-
},
|
|
6898
|
+
}, tl = {
|
|
6879
6899
|
viewBox: "0 0 256 256",
|
|
6880
6900
|
paths: ["M152,40a8,8,0,0,1-8,8H112a8,8,0,0,1,0-16h32A8,8,0,0,1,152,40Zm-8,168H112a8,8,0,0,0,0,16h32a8,8,0,0,0,0-16ZM208,32H184a8,8,0,0,0,0,16h24V72a8,8,0,0,0,16,0V48A16,16,0,0,0,208,32Zm8,72a8,8,0,0,0-8,8v32a8,8,0,0,0,16,0V112A8,8,0,0,0,216,104Zm0,72a8,8,0,0,0-8,8v24H184a8,8,0,0,0,0,16h24a16,16,0,0,0,16-16V184A8,8,0,0,0,216,176ZM40,152a8,8,0,0,0,8-8V112a8,8,0,0,0-16,0v32A8,8,0,0,0,40,152Zm32,56H48V184a8,8,0,0,0-16,0v24a16,16,0,0,0,16,16H72a8,8,0,0,0,0-16ZM72,32H48A16,16,0,0,0,32,48V72a8,8,0,0,0,16,0V48H72a8,8,0,0,0,0-16Z"]
|
|
6881
|
-
},
|
|
6901
|
+
}, nl = {
|
|
6882
6902
|
viewBox: "0 0 256 256",
|
|
6883
6903
|
paths: ["M229.66,58.34l-32-32a8,8,0,0,0-11.32,0l-96,96A8,8,0,0,0,88,128v32a8,8,0,0,0,8,8h32a8,8,0,0,0,5.66-2.34l96-96A8,8,0,0,0,229.66,58.34ZM124.69,152H104V131.31l64-64L188.69,88ZM200,76.69,179.31,56,192,43.31,212.69,64ZM224,128v80a16,16,0,0,1-16,16H48a16,16,0,0,1-16-16V48A16,16,0,0,1,48,32h80a8,8,0,0,1,0,16H48V208H208V128a8,8,0,0,1,16,0Z"]
|
|
6884
|
-
},
|
|
6904
|
+
}, rl = async (e, t, n = 1) => {
|
|
6885
6905
|
await e.fonts?.ready;
|
|
6886
6906
|
for (let e = 0; e < Math.max(1, n); e += 1) await new Promise((e) => t.requestAnimationFrame(() => e()));
|
|
6887
|
-
},
|
|
6888
|
-
let i = async (i) =>
|
|
6907
|
+
}, il = (e, t, n, r) => {
|
|
6908
|
+
let i = async (i) => Fc({
|
|
6889
6909
|
runtime: e,
|
|
6890
6910
|
ownerDocument: t,
|
|
6891
6911
|
ownerWindow: n,
|
|
6892
6912
|
request: i,
|
|
6893
6913
|
layoutGuides: r()
|
|
6894
|
-
}), a = async (e) =>
|
|
6914
|
+
}), a = async (e) => Lc(await i(e));
|
|
6895
6915
|
return {
|
|
6896
6916
|
context: i,
|
|
6897
6917
|
contextText: a,
|
|
6898
|
-
copyContext: async (e) =>
|
|
6918
|
+
copyContext: async (e) => Uc(t, n, await a(e)),
|
|
6899
6919
|
select: async (r) => {
|
|
6900
6920
|
let a = Array.isArray(r) ? [...r] : [String(r)];
|
|
6901
|
-
return e.select(a), await
|
|
6921
|
+
return e.select(a), await rl(t, n), i({ scope: "selection" });
|
|
6902
6922
|
},
|
|
6903
6923
|
annotations: async () => e.annotations(),
|
|
6904
6924
|
removeAnnotation: async (r) => {
|
|
6905
|
-
e.removeAnnotation(r), await
|
|
6925
|
+
e.removeAnnotation(r), await rl(t, n);
|
|
6906
6926
|
},
|
|
6907
6927
|
review: async (i) => {
|
|
6908
|
-
if (await
|
|
6928
|
+
if (await rl(t, n), i) return Hc({
|
|
6909
6929
|
runtime: e,
|
|
6910
6930
|
ownerDocument: t,
|
|
6911
6931
|
ownerWindow: n,
|
|
@@ -6913,7 +6933,7 @@ var Hc = rs, Uc = is, Wc = as, Gc = os, Kc = () => ({
|
|
|
6913
6933
|
layoutGuides: r()
|
|
6914
6934
|
});
|
|
6915
6935
|
let a = r();
|
|
6916
|
-
return e.annotations().map((r) =>
|
|
6936
|
+
return e.annotations().map((r) => Hc({
|
|
6917
6937
|
runtime: e,
|
|
6918
6938
|
ownerDocument: t,
|
|
6919
6939
|
ownerWindow: n,
|
|
@@ -6921,38 +6941,38 @@ var Hc = rs, Uc = is, Wc = as, Gc = os, Kc = () => ({
|
|
|
6921
6941
|
layoutGuides: a
|
|
6922
6942
|
}));
|
|
6923
6943
|
},
|
|
6924
|
-
capturePlan: async (e) =>
|
|
6944
|
+
capturePlan: async (e) => Rc(await i(e)),
|
|
6925
6945
|
prepareCapture: async () => {
|
|
6926
|
-
e.prepareCapture(), await
|
|
6946
|
+
e.prepareCapture(), await rl(t, n);
|
|
6927
6947
|
},
|
|
6928
6948
|
finishCapture: async () => {
|
|
6929
|
-
e.finishCapture(), await
|
|
6949
|
+
e.finishCapture(), await rl(t, n);
|
|
6930
6950
|
}
|
|
6931
6951
|
};
|
|
6932
|
-
},
|
|
6952
|
+
}, al = (e) => {
|
|
6933
6953
|
let t = e.currentSelection();
|
|
6934
6954
|
return t.elements.length > 0 || t.region !== null;
|
|
6935
6955
|
};
|
|
6936
|
-
function
|
|
6956
|
+
function ol(e = {}) {
|
|
6937
6957
|
return {
|
|
6938
|
-
id:
|
|
6939
|
-
version:
|
|
6958
|
+
id: Yc,
|
|
6959
|
+
version: dc,
|
|
6940
6960
|
requires: ["runtime:solid"],
|
|
6941
|
-
provides: [
|
|
6961
|
+
provides: [Xc],
|
|
6942
6962
|
setup(t) {
|
|
6943
6963
|
let n = t.service.get("runtime:solid");
|
|
6944
6964
|
if (!n) throw Error("Mesurer context plugin requires the renderer runtime service.");
|
|
6945
|
-
let r = n.createWorkspaceRuntime(
|
|
6946
|
-
t.service.provide(
|
|
6947
|
-
id:
|
|
6965
|
+
let r = n.createWorkspaceRuntime(Yc), i = il(r, n.ownerDocument, n.ownerWindow, () => t.service.get(Gc)?.list() ?? []);
|
|
6966
|
+
t.service.provide(Xc, i), t.state.register({
|
|
6967
|
+
id: Zc,
|
|
6948
6968
|
initial: { ui: e.ui ?? !0 },
|
|
6949
6969
|
persist: !0
|
|
6950
6970
|
}), t.state.register({
|
|
6951
|
-
id:
|
|
6952
|
-
initial: { hasSelection:
|
|
6971
|
+
id: Qc,
|
|
6972
|
+
initial: { hasSelection: al(r) }
|
|
6953
6973
|
});
|
|
6954
|
-
let a = () => t.state.get("mesurer.context.settings")?.ui ?? !0, o = () => t.state.get(
|
|
6955
|
-
t.state.update(
|
|
6974
|
+
let a = () => t.state.get("mesurer.context.settings")?.ui ?? !0, o = () => t.state.get(Qc)?.hasSelection === !0, s = (e) => {
|
|
6975
|
+
t.state.update(Zc, (t) => ({
|
|
6956
6976
|
...t,
|
|
6957
6977
|
ui: e
|
|
6958
6978
|
}));
|
|
@@ -6966,21 +6986,21 @@ function il(e = {}) {
|
|
|
6966
6986
|
region: e.region ? { ...e.region } : null
|
|
6967
6987
|
}, r.selectGestureActive() ? c?.abandonNoteComposer() : n && c?.closeNoteComposer();
|
|
6968
6988
|
let i = e.elements.length > 0 || e.region !== null;
|
|
6969
|
-
i !== (t.state.get(
|
|
6989
|
+
i !== (t.state.get(Qc)?.hasSelection ?? !1) && t.state.update(Qc, () => ({ hasSelection: i }));
|
|
6970
6990
|
});
|
|
6971
6991
|
t.command.register("context.copy", () => i.copyContext()), t.command.register("context.copy-selection", () => i.copyContext({ scope: "selection" }));
|
|
6972
6992
|
let g = () => {
|
|
6973
6993
|
let e = u?.element;
|
|
6974
|
-
e && (n.rendererRoot?.hasAttribute(
|
|
6994
|
+
e && (n.rendererRoot?.hasAttribute($c) ? e.setAttribute($c, "true") : e.removeAttribute($c));
|
|
6975
6995
|
}, _ = () => {
|
|
6976
6996
|
d?.disconnect(), d = null, c = null, l?.(), l = null, u?.dispose(), u = null;
|
|
6977
6997
|
}, v = () => {
|
|
6978
6998
|
if (u) return;
|
|
6979
|
-
if (u =
|
|
6999
|
+
if (u = Fo(n), u.element.dataset.mesurerLayer = "evidence", u.element.dataset.mesurerContextRoot = "true", n.rendererRoot) {
|
|
6980
7000
|
let e = new n.ownerWindow.MutationObserver(g);
|
|
6981
7001
|
d = e, e.observe(n.rendererRoot, {
|
|
6982
7002
|
attributes: !0,
|
|
6983
|
-
attributeFilter: [
|
|
7003
|
+
attributeFilter: [$c]
|
|
6984
7004
|
}), g();
|
|
6985
7005
|
}
|
|
6986
7006
|
let e = {
|
|
@@ -6991,7 +7011,7 @@ function il(e = {}) {
|
|
|
6991
7011
|
},
|
|
6992
7012
|
coordinateSpace: "document"
|
|
6993
7013
|
};
|
|
6994
|
-
l = Dn(() => qt(
|
|
7014
|
+
l = Dn(() => qt(jo, En(e, { get ownerWindow() {
|
|
6995
7015
|
return n.ownerWindow;
|
|
6996
7016
|
} })), u.element);
|
|
6997
7017
|
}, y = () => {
|
|
@@ -7003,7 +7023,7 @@ function il(e = {}) {
|
|
|
7003
7023
|
shortcut: "C",
|
|
7004
7024
|
command: "context.copy",
|
|
7005
7025
|
order: 70,
|
|
7006
|
-
icon:
|
|
7026
|
+
icon: el,
|
|
7007
7027
|
hidden: () => !a()
|
|
7008
7028
|
}), t.tool.register({
|
|
7009
7029
|
id: "context.copy-selection",
|
|
@@ -7011,7 +7031,7 @@ function il(e = {}) {
|
|
|
7011
7031
|
shortcut: "Shift+C",
|
|
7012
7032
|
command: "context.copy-selection",
|
|
7013
7033
|
order: 71,
|
|
7014
|
-
icon:
|
|
7034
|
+
icon: tl,
|
|
7015
7035
|
hidden: () => !a(),
|
|
7016
7036
|
disabled: () => !o()
|
|
7017
7037
|
}), t.tool.register({
|
|
@@ -7020,7 +7040,7 @@ function il(e = {}) {
|
|
|
7020
7040
|
shortcut: "N",
|
|
7021
7041
|
command: "context.add-note",
|
|
7022
7042
|
order: 72,
|
|
7023
|
-
icon:
|
|
7043
|
+
icon: nl,
|
|
7024
7044
|
hidden: () => !a(),
|
|
7025
7045
|
disabled: () => !o()
|
|
7026
7046
|
}), t.settings.register({
|
|
@@ -7043,28 +7063,28 @@ function il(e = {}) {
|
|
|
7043
7063
|
}
|
|
7044
7064
|
//#endregion
|
|
7045
7065
|
//#region src/codex-plugin.ts
|
|
7046
|
-
var
|
|
7066
|
+
var sl = "mesurer.codex", cl = "codex:v1", ll = "http://127.0.0.1:47365", ul = 2e3, dl = 750, fl = 1800, pl = 2e3, ml = 12e4, hl = 10, gl = 5, _l = [
|
|
7047
7067
|
"Implement the current human feedback from Mesurer in this project.",
|
|
7048
7068
|
"Treat the rendered page as the source of truth, preserve unrelated Mesurer review state,",
|
|
7049
7069
|
"and verify the affected UI in the live page with Mesurer before claiming completion."
|
|
7050
|
-
].join(" "),
|
|
7070
|
+
].join(" "), vl = {
|
|
7051
7071
|
viewBox: "0 0 256 256",
|
|
7052
7072
|
paths: ["M224,48,32,120l88,32,32,88Z M120,152l104-104"]
|
|
7053
|
-
},
|
|
7073
|
+
}, yl = {
|
|
7054
7074
|
viewBox: "0 0 256 256",
|
|
7055
7075
|
paths: ["M72,32H184a8,8,0,0,1,0,16h-8v20.69a40,40,0,0,1-11.72,28.28L137.25,124l27.03,27.03A40,40,0,0,1,176,179.31V208h8a8,8,0,0,1,0,16H72a8,8,0,0,1,0-16h8V179.31a40,40,0,0,1,11.72-28.28L118.75,124,91.72,96.97A40,40,0,0,1,80,68.69V48H72a8,8,0,0,1,0-16Zm24,16V68.69a24,24,0,0,0,7.03,16.97L128,110.63l24.97-24.97A24,24,0,0,0,160,68.69V48Zm32,90.63-24.97,24.97A24,24,0,0,0,96,180.57V208h64V180.57a24,24,0,0,0-7.03-16.97Z"]
|
|
7056
|
-
},
|
|
7076
|
+
}, bl = {
|
|
7057
7077
|
viewBox: "0 0 256 256",
|
|
7058
7078
|
paths: ["M229.66,77.66l-128,128a8,8,0,0,1-11.32,0l-56-56a8,8,0,0,1,11.32-11.32L96,188.69,218.34,66.34a8,8,0,0,1,11.32,11.32Z"]
|
|
7059
|
-
},
|
|
7079
|
+
}, xl = (e) => {
|
|
7060
7080
|
try {
|
|
7061
7081
|
let t = globalThis.location;
|
|
7062
7082
|
return t?.origin ? `mesurer-codex-ui:v1:${e}:${t.origin}${t.pathname}` : null;
|
|
7063
7083
|
} catch {
|
|
7064
7084
|
return null;
|
|
7065
7085
|
}
|
|
7066
|
-
},
|
|
7067
|
-
let t =
|
|
7086
|
+
}, Sl = (e) => {
|
|
7087
|
+
let t = xl(e);
|
|
7068
7088
|
if (!t) return null;
|
|
7069
7089
|
try {
|
|
7070
7090
|
let e = globalThis.sessionStorage?.getItem(t);
|
|
@@ -7089,18 +7109,18 @@ var al = "mesurer.codex", ol = "codex:v1", sl = "http://127.0.0.1:47365", cl = 2
|
|
|
7089
7109
|
} catch {
|
|
7090
7110
|
return null;
|
|
7091
7111
|
}
|
|
7092
|
-
},
|
|
7093
|
-
let n =
|
|
7112
|
+
}, Cl = (e, t) => {
|
|
7113
|
+
let n = xl(e);
|
|
7094
7114
|
if (n) try {
|
|
7095
7115
|
globalThis.sessionStorage?.setItem(n, JSON.stringify(t));
|
|
7096
7116
|
} catch {}
|
|
7097
|
-
},
|
|
7117
|
+
}, wl = (e, t) => {
|
|
7098
7118
|
let n = e.endsWith("/") ? e : `${e}/`;
|
|
7099
7119
|
return new URL(t, n).toString();
|
|
7100
|
-
},
|
|
7120
|
+
}, Tl = async (e, t, n) => {
|
|
7101
7121
|
let r = new AbortController(), i = setTimeout(() => r.abort(), 15e3);
|
|
7102
7122
|
try {
|
|
7103
|
-
let i = await fetch(
|
|
7123
|
+
let i = await fetch(wl(e, t), {
|
|
7104
7124
|
...n,
|
|
7105
7125
|
signal: r.signal
|
|
7106
7126
|
}), a = await i.text(), o = {};
|
|
@@ -7116,10 +7136,10 @@ var al = "mesurer.codex", ol = "codex:v1", sl = "http://127.0.0.1:47365", cl = 2
|
|
|
7116
7136
|
} finally {
|
|
7117
7137
|
clearTimeout(i);
|
|
7118
7138
|
}
|
|
7119
|
-
},
|
|
7139
|
+
}, El = (e) => ({
|
|
7120
7140
|
thread: e.thread?.trim() || null,
|
|
7121
7141
|
threads: Array.isArray(e.threads) ? e.threads.filter((e) => e.trim().length > 0) : []
|
|
7122
|
-
}),
|
|
7142
|
+
}), Dl = (e) => {
|
|
7123
7143
|
let t = e.deliveryId?.trim(), n = e.thread?.trim(), r = e.status;
|
|
7124
7144
|
if (!t || !n || !r) throw Error("Mesurer Codex bridge returned an invalid delivery state.");
|
|
7125
7145
|
let i = {
|
|
@@ -7131,7 +7151,7 @@ var al = "mesurer.codex", ol = "codex:v1", sl = "http://127.0.0.1:47365", cl = 2
|
|
|
7131
7151
|
updatedAt: Number.isFinite(e.updatedAt) ? Number(e.updatedAt) : 0
|
|
7132
7152
|
};
|
|
7133
7153
|
return e.queuedSubmissionId !== void 0 && (i.queuedSubmissionId = e.queuedSubmissionId?.trim() || null), e.dispatch !== void 0 && (i.dispatch = e.dispatch), e.dispatchError !== void 0 && (i.dispatchError = e.dispatchError?.trim() || null), i;
|
|
7134
|
-
},
|
|
7154
|
+
}, Ol = (e) => ({
|
|
7135
7155
|
thread: e.thread?.trim() || null,
|
|
7136
7156
|
threads: Array.isArray(e.threadDetails) ? e.threadDetails.flatMap((e) => {
|
|
7137
7157
|
let t = e.id?.trim() ?? "";
|
|
@@ -7143,7 +7163,7 @@ var al = "mesurer.codex", ol = "codex:v1", sl = "http://127.0.0.1:47365", cl = 2
|
|
|
7143
7163
|
}] : [];
|
|
7144
7164
|
}) : [],
|
|
7145
7165
|
hasMore: e.hasMore === !0
|
|
7146
|
-
}),
|
|
7166
|
+
}), kl = async (e, t, n) => {
|
|
7147
7167
|
let r = t?.instruction?.trim() || n, i = await e.annotations(), a = t?.annotationIds, o = a ? a.flatMap((e) => {
|
|
7148
7168
|
let t = i.find((t) => t.id === e);
|
|
7149
7169
|
return t ? [t] : [];
|
|
@@ -7166,18 +7186,18 @@ var al = "mesurer.codex", ol = "codex:v1", sl = "http://127.0.0.1:47365", cl = 2
|
|
|
7166
7186
|
])
|
|
7167
7187
|
].join("\n").trimEnd()
|
|
7168
7188
|
};
|
|
7169
|
-
},
|
|
7170
|
-
function
|
|
7171
|
-
let t = e.endpoint ??
|
|
7189
|
+
}, Al = (e) => e.length > 16 ? `${e.slice(0, 8)}…${e.slice(-4)}` : e, jl = (e, t = 42) => e.length > t ? `${e.slice(0, t - 1)}…` : e, Ml = (e, t) => e instanceof Error && e.message === `Mesurer Codex bridge is unavailable at ${t}. Start the local bridge before queueing feedback.`;
|
|
7190
|
+
function Nl(e = {}) {
|
|
7191
|
+
let t = e.endpoint ?? ll, n = e.instruction?.trim() || _l, r = e.ui ?? !0, i = e.clearCompletedAnnotations ?? !0;
|
|
7172
7192
|
return {
|
|
7173
|
-
id:
|
|
7174
|
-
version:
|
|
7175
|
-
requires: [
|
|
7176
|
-
provides: [
|
|
7193
|
+
id: sl,
|
|
7194
|
+
version: dc,
|
|
7195
|
+
requires: [Xc],
|
|
7196
|
+
provides: [cl],
|
|
7177
7197
|
setup(e) {
|
|
7178
|
-
let a = e.service.get(
|
|
7198
|
+
let a = e.service.get(Xc);
|
|
7179
7199
|
if (!a) throw Error("Mesurer Codex plugin requires context() from mesurer-solid/plugins.");
|
|
7180
|
-
let o = r ?
|
|
7200
|
+
let o = r ? Sl(t) : null, s = "unknown", c = !1, l = o?.originThread ?? null, u = o?.selectedThread ?? o?.originThread ?? null, d = !1, f = null, p = [], m = [], h = !1, g = gl, _, v = "", y = null, b = o?.delivery ? {
|
|
7181
7201
|
id: o.delivery.id,
|
|
7182
7202
|
thread: o.delivery.thread,
|
|
7183
7203
|
status: o.delivery.status,
|
|
@@ -7185,22 +7205,22 @@ function jl(e = {}) {
|
|
|
7185
7205
|
queuedSubmissionId: o.delivery.queuedSubmissionId ?? null,
|
|
7186
7206
|
dispatch: o.delivery.dispatch ?? null,
|
|
7187
7207
|
dispatchError: o.delivery.dispatchError ?? null
|
|
7188
|
-
} : null, x = 0, S = 0, C = null, w = !1, T = async () =>
|
|
7208
|
+
} : null, x = 0, S = 0, C = null, w = !1, T = async () => El(await Tl(t, "health")), E = async (e) => Dl(await Tl(t, `deliveries/${encodeURIComponent(e)}`)), D = async (e) => {
|
|
7189
7209
|
if (!e.id || !e.thread) throw Error("Cannot restore a Codex delivery without its id and thread.");
|
|
7190
7210
|
let n = {
|
|
7191
7211
|
deliveryId: e.id,
|
|
7192
7212
|
thread: e.thread
|
|
7193
7213
|
};
|
|
7194
|
-
return e.queuedSubmissionId && (n.queuedSubmissionId = e.queuedSubmissionId),
|
|
7214
|
+
return e.queuedSubmissionId && (n.queuedSubmissionId = e.queuedSubmissionId), Dl(await Tl(t, "deliveries/restore", {
|
|
7195
7215
|
method: "POST",
|
|
7196
7216
|
headers: { "Content-Type": "application/json" },
|
|
7197
7217
|
body: JSON.stringify(n)
|
|
7198
7218
|
}));
|
|
7199
7219
|
}, O = async (e = {}) => {
|
|
7200
7220
|
let n = new URLSearchParams();
|
|
7201
|
-
n.set("limit", String(e.limit ??
|
|
7221
|
+
n.set("limit", String(e.limit ?? hl));
|
|
7202
7222
|
let r = e.thread?.trim();
|
|
7203
|
-
return r && n.set("thread", r),
|
|
7223
|
+
return r && n.set("thread", r), Ol(await Tl(t, `threads?${n.toString()}`));
|
|
7204
7224
|
}, k = () => u ?? l ?? (d ? null : f), A = () => {
|
|
7205
7225
|
if (!r) return;
|
|
7206
7226
|
let e = b?.id && (b.status === "queued" || b.status === "working" || b.status === "interrupted") ? {
|
|
@@ -7212,7 +7232,7 @@ function jl(e = {}) {
|
|
|
7212
7232
|
dispatch: b.dispatch,
|
|
7213
7233
|
dispatchError: b.dispatchError
|
|
7214
7234
|
} : null;
|
|
7215
|
-
|
|
7235
|
+
Cl(t, {
|
|
7216
7236
|
version: 1,
|
|
7217
7237
|
originThread: l,
|
|
7218
7238
|
selectedThread: u,
|
|
@@ -7230,12 +7250,12 @@ function jl(e = {}) {
|
|
|
7230
7250
|
"queueing",
|
|
7231
7251
|
"queued",
|
|
7232
7252
|
"working"
|
|
7233
|
-
].includes(b.status) ?
|
|
7253
|
+
].includes(b.status) ? yl : b.status === "completed" ? bl : vl : vl, te = () => {
|
|
7234
7254
|
let e = [], t = /* @__PURE__ */ new Set(), n = (n) => {
|
|
7235
7255
|
t.has(n.id) || (t.add(n.id), e.push(n));
|
|
7236
7256
|
}, r = (e) => ({
|
|
7237
7257
|
id: e,
|
|
7238
|
-
title: `Codex ${
|
|
7258
|
+
title: `Codex ${Al(e)}`,
|
|
7239
7259
|
updatedAt: null,
|
|
7240
7260
|
connected: !0
|
|
7241
7261
|
});
|
|
@@ -7255,7 +7275,7 @@ function jl(e = {}) {
|
|
|
7255
7275
|
let t = e.id === l ? "Current · " : e.connected ? "Connected · " : "", r = b?.thread === e.id ? ` · ${ee() ? "Blocked" : N(b.status)}` : "";
|
|
7256
7276
|
return {
|
|
7257
7277
|
id: `codex.thread.${e.id}`,
|
|
7258
|
-
label: `${t}${
|
|
7278
|
+
label: `${t}${jl(e.title)}${r}`,
|
|
7259
7279
|
checked: () => n === e.id,
|
|
7260
7280
|
disabled: () => M(),
|
|
7261
7281
|
run() {
|
|
@@ -7263,11 +7283,11 @@ function jl(e = {}) {
|
|
|
7263
7283
|
}
|
|
7264
7284
|
};
|
|
7265
7285
|
});
|
|
7266
|
-
return g <
|
|
7286
|
+
return g < hl && (e.length > g || h) && r.push({
|
|
7267
7287
|
id: "codex.thread.show-more",
|
|
7268
7288
|
label: "Show 5 more…",
|
|
7269
7289
|
run() {
|
|
7270
|
-
g =
|
|
7290
|
+
g = hl, R();
|
|
7271
7291
|
}
|
|
7272
7292
|
}), r;
|
|
7273
7293
|
}, R = () => {
|
|
@@ -7303,14 +7323,14 @@ function jl(e = {}) {
|
|
|
7303
7323
|
let e = l && p.includes(l) ? l : f;
|
|
7304
7324
|
try {
|
|
7305
7325
|
let t = await O({
|
|
7306
|
-
limit:
|
|
7326
|
+
limit: hl,
|
|
7307
7327
|
thread: e ?? void 0
|
|
7308
7328
|
});
|
|
7309
7329
|
m = t.threads, h = t.hasMore;
|
|
7310
7330
|
} catch {
|
|
7311
7331
|
m = p.map((e) => ({
|
|
7312
7332
|
id: e,
|
|
7313
|
-
title: `Codex ${
|
|
7333
|
+
title: `Codex ${Al(e)}`,
|
|
7314
7334
|
updatedAt: null,
|
|
7315
7335
|
connected: !0
|
|
7316
7336
|
})), h = !1;
|
|
@@ -7333,7 +7353,7 @@ function jl(e = {}) {
|
|
|
7333
7353
|
}, V = () => {
|
|
7334
7354
|
S && globalThis.clearTimeout(S), S = globalThis.setTimeout(() => {
|
|
7335
7355
|
S = 0, b?.status === "completed" && (b = null, A(), R());
|
|
7336
|
-
},
|
|
7356
|
+
}, fl);
|
|
7337
7357
|
}, ne = async (e) => {
|
|
7338
7358
|
if (!(!b || b.id !== e.id)) {
|
|
7339
7359
|
if (b = {
|
|
@@ -7351,14 +7371,14 @@ function jl(e = {}) {
|
|
|
7351
7371
|
if (e.status === "interrupted") {
|
|
7352
7372
|
A(), R();
|
|
7353
7373
|
let t = e.updatedAt > 0 ? e.updatedAt : Date.now();
|
|
7354
|
-
Date.now() - t <
|
|
7374
|
+
Date.now() - t < ml && (x = globalThis.setTimeout(() => {
|
|
7355
7375
|
x = 0, re(e.id);
|
|
7356
|
-
},
|
|
7376
|
+
}, pl));
|
|
7357
7377
|
return;
|
|
7358
7378
|
}
|
|
7359
7379
|
R(), x = globalThis.setTimeout(() => {
|
|
7360
7380
|
x = 0, re(e.id);
|
|
7361
|
-
},
|
|
7381
|
+
}, dl);
|
|
7362
7382
|
}
|
|
7363
7383
|
}, re = async (e) => {
|
|
7364
7384
|
if (!(w || b?.id !== e)) try {
|
|
@@ -7382,7 +7402,7 @@ function jl(e = {}) {
|
|
|
7382
7402
|
b = {
|
|
7383
7403
|
...b,
|
|
7384
7404
|
status: "failed"
|
|
7385
|
-
}, A(),
|
|
7405
|
+
}, A(), Ml(r, t) && (s = "unavailable"), R();
|
|
7386
7406
|
}
|
|
7387
7407
|
}, H = {
|
|
7388
7408
|
health: T,
|
|
@@ -7391,7 +7411,7 @@ function jl(e = {}) {
|
|
|
7391
7411
|
async useThread(e) {
|
|
7392
7412
|
let n = e.trim();
|
|
7393
7413
|
if (!n) throw Error("Codex thread must be a non-empty string.");
|
|
7394
|
-
let r =
|
|
7414
|
+
let r = El(await Tl(t, "target", {
|
|
7395
7415
|
method: "POST",
|
|
7396
7416
|
headers: { "Content-Type": "application/json" },
|
|
7397
7417
|
body: JSON.stringify({ thread: n })
|
|
@@ -7399,12 +7419,12 @@ function jl(e = {}) {
|
|
|
7399
7419
|
return j(n, !l), f = r.thread, p = r.threads, s = "available", c = !0, R(), r;
|
|
7400
7420
|
},
|
|
7401
7421
|
async queue(e) {
|
|
7402
|
-
let i = await
|
|
7422
|
+
let i = await kl(a, e, n), o = e?.thread?.trim(), c = o || (r ? k() : null);
|
|
7403
7423
|
if (r && !o && (d || !c)) throw Error("Choose a Codex thread before queueing feedback.");
|
|
7404
7424
|
let l = { message: i.message };
|
|
7405
7425
|
c && (l.thread = c);
|
|
7406
7426
|
try {
|
|
7407
|
-
let e = await
|
|
7427
|
+
let e = await Tl(t, "send", {
|
|
7408
7428
|
method: "POST",
|
|
7409
7429
|
headers: { "Content-Type": "application/json" },
|
|
7410
7430
|
body: JSON.stringify(l)
|
|
@@ -7420,14 +7440,14 @@ function jl(e = {}) {
|
|
|
7420
7440
|
};
|
|
7421
7441
|
return e.queuedSubmissionId !== void 0 && (r.queuedSubmissionId = e.queuedSubmissionId?.trim() || null), e.dispatch !== void 0 && (r.dispatch = e.dispatch), e.dispatchError !== void 0 && (r.dispatchError = e.dispatchError?.trim() || null), r;
|
|
7422
7442
|
} catch (e) {
|
|
7423
|
-
throw r &&
|
|
7443
|
+
throw r && Ml(e, t) && (s = "unavailable", R()), e;
|
|
7424
7444
|
}
|
|
7425
7445
|
},
|
|
7426
7446
|
send(e) {
|
|
7427
7447
|
return H.queue(e);
|
|
7428
7448
|
}
|
|
7429
7449
|
};
|
|
7430
|
-
e.service.provide(
|
|
7450
|
+
e.service.provide(cl, H);
|
|
7431
7451
|
let ie = async () => {
|
|
7432
7452
|
if (!(C || M())) return B(), b = {
|
|
7433
7453
|
id: null,
|
|
@@ -7458,9 +7478,9 @@ function jl(e = {}) {
|
|
|
7458
7478
|
updatedAt: 0
|
|
7459
7479
|
}) : x = globalThis.setTimeout(() => {
|
|
7460
7480
|
x = 0, re(e.deliveryId);
|
|
7461
|
-
},
|
|
7481
|
+
}, dl) : S = globalThis.setTimeout(() => {
|
|
7462
7482
|
S = 0, b?.id === null && b?.status === "queued" && (b = null, A(), R());
|
|
7463
|
-
},
|
|
7483
|
+
}, fl);
|
|
7464
7484
|
} catch (e) {
|
|
7465
7485
|
b = null, A(), R();
|
|
7466
7486
|
let t = e instanceof Error ? e.message : String(e);
|
|
@@ -7476,7 +7496,7 @@ function jl(e = {}) {
|
|
|
7476
7496
|
}, 0));
|
|
7477
7497
|
let t = globalThis.setInterval(() => {
|
|
7478
7498
|
c && I().catch(() => void 0);
|
|
7479
|
-
},
|
|
7499
|
+
}, ul);
|
|
7480
7500
|
e.lifecycle.onDispose(() => {
|
|
7481
7501
|
w = !0, B(), globalThis.clearInterval(t), _?.dispose(), _ = void 0;
|
|
7482
7502
|
});
|
|
@@ -7486,12 +7506,12 @@ function jl(e = {}) {
|
|
|
7486
7506
|
}
|
|
7487
7507
|
//#endregion
|
|
7488
7508
|
//#region src/screenshot.ts
|
|
7489
|
-
var
|
|
7490
|
-
...
|
|
7491
|
-
version:
|
|
7492
|
-
}),
|
|
7509
|
+
var Pl = qs, Fl = Ws, Il = Gs, Ll = Ks, Rl = 4, zl = Ur, Bl = (e, t) => br(e, t), Vl = (e = /* @__PURE__ */ new Date()) => xr(e), Hl = (e, t, n, r) => yr(e, t, n, r), Ul = (e, t, n) => vr(e, t, n), Wl = (e, t) => Br(e, t), Gl = (e) => Hr(e), Kl = (e = {}) => ({
|
|
7510
|
+
...uc(e),
|
|
7511
|
+
version: dc
|
|
7512
|
+
}), ql = (e) => Cr(e), Jl = (e) => ({
|
|
7493
7513
|
...e,
|
|
7494
|
-
version:
|
|
7495
|
-
}),
|
|
7514
|
+
version: dc
|
|
7515
|
+
}), Yl = () => Jl(oo()), Xl = () => Jl(so()), Zl = () => Jl(co()), Ql = () => Jl(lo()), $l = () => Jl(uo()), eu = () => Jl(fo()), tu = () => Jl(mo()), nu = () => Jl(po()), ru = () => ho().map(Jl), iu = (e = [], t = []) => go(e, t).map((e) => e.id.startsWith("mesurer.") ? Jl(e) : e);
|
|
7496
7516
|
//#endregion
|
|
7497
|
-
export {
|
|
7517
|
+
export { fc as MESURER_ARRANGE_ACTIVE_STATE_ID, pc as MESURER_ARRANGE_PLUGIN_ID, mc as MESURER_ARRANGE_SERVICE_ID, hc as MESURER_ARRANGE_SETTINGS_STATE_ID, gc as MESURER_ARRANGE_STATE_ID, sl as MESURER_CODEX_PLUGIN_ID, cl as MESURER_CODEX_SERVICE_ID, Yc as MESURER_CONTEXT_PLUGIN_ID, Xc as MESURER_CONTEXT_SERVICE_ID, Zc as MESURER_CONTEXT_SETTINGS_STATE_ID, qc as MESURER_LAYOUT_GUIDES_ACTIVE_STATE_ID, Wc as MESURER_LAYOUT_GUIDES_PLUGIN_ID, Gc as MESURER_LAYOUT_GUIDES_SERVICE_ID, Kc as MESURER_LAYOUT_GUIDES_STATE_ID, Pl as MESURER_SCREENSHOT_ACTIVE_STATE_ID, Fl as MESURER_SCREENSHOT_PLUGIN_ID, Il as MESURER_SCREENSHOT_SERVICE_ID, Ll as MESURER_SCREENSHOT_SETTINGS_STATE_ID, Rl as MIN_SCREENSHOT_SELECTION, _c as arrange, zl as captureVisibleTabPng, Nl as codex, Zl as colorPicker, iu as compose, ol as context, Bl as copyPngToClipboard, Vl as createScreenshotFilename, Hl as cropPngToViewportRect, ru as defaults, tu as distance, eu as guides, Jc as layoutGuides, Ul as normalizeScreenshotRect, Wl as prepareScreenshotCapture, Gl as releaseScreenshotCapture, Ql as rulers, Kl as screenshot, Yl as select, nu as settings, $l as typography, ql as waitForNextPaint, Xl as xray };
|