mesurer-solid 0.2.1-beta.12 → 0.2.1-beta.13
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 +455 -427
- package/dist/inject-script.js +7 -7
- package/dist/inject.js +450 -422
- package/dist/plugins.js +575 -553
- package/package.json +1 -1
package/dist/plugins.js
CHANGED
|
@@ -52,7 +52,7 @@ function D(e) {
|
|
|
52
52
|
function O(e) {
|
|
53
53
|
return e._e !== void 0 && e._e !== _;
|
|
54
54
|
}
|
|
55
|
-
function
|
|
55
|
+
function k(e, t) {
|
|
56
56
|
let n = w(t), r = e.Ke;
|
|
57
57
|
if (r) {
|
|
58
58
|
if (r.tn) {
|
|
@@ -69,24 +69,24 @@ function ee(e, t) {
|
|
|
69
69
|
}
|
|
70
70
|
//#endregion
|
|
71
71
|
//#region ../../node_modules/.bun/@solidjs+signals@2.0.0-rc.0/node_modules/@solidjs/signals/dist/prod/core/scheduler.js
|
|
72
|
-
var
|
|
72
|
+
var A = /* @__PURE__ */ new Set(), j = {
|
|
73
73
|
eE: Array(2e3).fill(void 0),
|
|
74
74
|
tE: !1,
|
|
75
75
|
Ve: 0,
|
|
76
76
|
EE: 0
|
|
77
|
-
},
|
|
77
|
+
}, M = {
|
|
78
78
|
eE: Array(2e3).fill(void 0),
|
|
79
79
|
tE: !1,
|
|
80
80
|
Ve: 0,
|
|
81
81
|
EE: 0
|
|
82
82
|
};
|
|
83
|
-
function
|
|
84
|
-
e.se & 16 ? e.se &= -12 : (we(e,
|
|
83
|
+
function ee(e) {
|
|
84
|
+
e.se & 16 ? e.se &= -12 : (we(e, M), e.se &= -4);
|
|
85
85
|
}
|
|
86
|
-
var
|
|
86
|
+
var N = 0, P = null, te = !1, F = !1, I = !1, L = 0, R = /* @__PURE__ */ new Set();
|
|
87
87
|
function z(e) {
|
|
88
88
|
let t = e.m;
|
|
89
|
-
return
|
|
89
|
+
return A.size === 0 && C.size === 0 && e.vt.length === 0 && t.Me.length === 0 && t.A.length === 0 && t.cn.size === 0 && R.size === 0;
|
|
90
90
|
}
|
|
91
91
|
function B() {
|
|
92
92
|
if (R.size !== 0) for (let e of R) {
|
|
@@ -99,7 +99,7 @@ function B() {
|
|
|
99
99
|
}
|
|
100
100
|
function V() {
|
|
101
101
|
return {
|
|
102
|
-
de:
|
|
102
|
+
de: N,
|
|
103
103
|
Qt: [],
|
|
104
104
|
Ie: /* @__PURE__ */ new Map(),
|
|
105
105
|
Me: [],
|
|
@@ -131,7 +131,7 @@ function U() {
|
|
|
131
131
|
G();
|
|
132
132
|
return;
|
|
133
133
|
}
|
|
134
|
-
|
|
134
|
+
te || (te = !0, !L && !q.gt && queueMicrotask(pe));
|
|
135
135
|
}
|
|
136
136
|
function W(e) {
|
|
137
137
|
if (F) return;
|
|
@@ -147,7 +147,7 @@ var ne = 0, re = class {
|
|
|
147
147
|
bt = [[], []];
|
|
148
148
|
vt = [];
|
|
149
149
|
kt = 0;
|
|
150
|
-
created =
|
|
150
|
+
created = N;
|
|
151
151
|
addChild(e) {
|
|
152
152
|
this.vt.push(e), e.ke = this;
|
|
153
153
|
}
|
|
@@ -232,19 +232,19 @@ var ne = 0, re = class {
|
|
|
232
232
|
if (!this.gt) {
|
|
233
233
|
this.gt = !0;
|
|
234
234
|
try {
|
|
235
|
-
if (De(
|
|
236
|
-
if (!ge(
|
|
237
|
-
let t =
|
|
238
|
-
De(
|
|
235
|
+
if (De(j, e.Ce), P) {
|
|
236
|
+
if (!ge(P)) {
|
|
237
|
+
let t = P;
|
|
238
|
+
De(M, this.m === t ? ee : e.Ce), this.m === t && (fe = this.m = V()), C.size && (e.In(1), e.In(2)), this.stashQueues(t.yt), N++, te = j.EE >= j.Ve || this.m.Qt.length > 0, de(t.Qt), P = null, le(null, !0);
|
|
239
239
|
return;
|
|
240
240
|
}
|
|
241
|
-
let t =
|
|
242
|
-
if (n !== t && n.Qt.push(...t.Qt), this.restoreQueues(t.yt),
|
|
241
|
+
let t = P, n = this.m;
|
|
242
|
+
if (n !== t && n.Qt.push(...t.Qt), this.restoreQueues(t.yt), A.delete(t), P = null, de(n.Qt), le(t), n === t) {
|
|
243
243
|
let e = V();
|
|
244
244
|
e.Qt = n.Qt, e.Me = n.Me, e.A = n.A, e.cn = n.cn, fe = this.m = e;
|
|
245
245
|
}
|
|
246
|
-
} else z(this) ? (ce(),
|
|
247
|
-
|
|
246
|
+
} else z(this) ? (ce(), j.EE >= j.Ve && (De(j, e.Ce), ce())) : (A.size && De(M, e.Ce), le());
|
|
247
|
+
N++, te = j.EE >= j.Ve, C.size && e.In(1), this.run(1), C.size && e.In(2), this.run(2);
|
|
248
248
|
} finally {
|
|
249
249
|
this.gt = !1;
|
|
250
250
|
}
|
|
@@ -255,9 +255,9 @@ var ne = 0, re = class {
|
|
|
255
255
|
if (n & 1) {
|
|
256
256
|
let t = r === void 0 ? e._ : r;
|
|
257
257
|
if (t?.l) return !0;
|
|
258
|
-
if (
|
|
259
|
-
let n = t.source, r =
|
|
260
|
-
r ||
|
|
258
|
+
if (P && t) {
|
|
259
|
+
let n = t.source, r = P.Ie.get(n);
|
|
260
|
+
r || P.Ie.set(n, r = /* @__PURE__ */ new Set());
|
|
261
261
|
let i = r.size;
|
|
262
262
|
r.add(e), r.size !== i && U();
|
|
263
263
|
}
|
|
@@ -267,32 +267,32 @@ var ne = 0, re = class {
|
|
|
267
267
|
return !1;
|
|
268
268
|
}
|
|
269
269
|
initTransition(e) {
|
|
270
|
-
if (e &&= _e(e), e && e ===
|
|
271
|
-
if (!
|
|
270
|
+
if (e &&= _e(e), e && e === P || !e && P && P.de === N) return;
|
|
271
|
+
if (!P) P = e ?? V();
|
|
272
272
|
else if (e) {
|
|
273
|
-
let t =
|
|
274
|
-
H(e, t),
|
|
273
|
+
let t = P;
|
|
274
|
+
H(e, t), A.delete(t), P = e;
|
|
275
275
|
}
|
|
276
|
-
|
|
276
|
+
A.add(P), P.de = N;
|
|
277
277
|
let t = this.m;
|
|
278
|
-
if (t !==
|
|
278
|
+
if (t !== P) {
|
|
279
279
|
for (let e = 0; e < t.Qt.length; e++) {
|
|
280
280
|
let n = t.Qt[e];
|
|
281
|
-
n.Ne =
|
|
281
|
+
n.Ne = P, P.Qt.push(n);
|
|
282
282
|
}
|
|
283
283
|
for (let e = 0; e < t.Me.length; e++) {
|
|
284
284
|
let n = t.Me[e];
|
|
285
|
-
n.Ne =
|
|
285
|
+
n.Ne = P, P.Me.push(n);
|
|
286
286
|
}
|
|
287
|
-
t.A.length &&
|
|
288
|
-
for (let e of t.cn)
|
|
287
|
+
t.A.length && P.A.push(...t.A);
|
|
288
|
+
for (let e of t.cn) P.cn.add(e);
|
|
289
289
|
if (t.ln.size) {
|
|
290
|
-
for (let e of t.ln)
|
|
290
|
+
for (let e of t.ln) P.ln.add(e);
|
|
291
291
|
t.ln.clear();
|
|
292
292
|
}
|
|
293
|
-
fe = this.m =
|
|
293
|
+
fe = this.m = P;
|
|
294
294
|
}
|
|
295
|
-
for (let e of C) e.Ne ||=
|
|
295
|
+
for (let e of C) e.Ne ||= P;
|
|
296
296
|
}
|
|
297
297
|
};
|
|
298
298
|
function ie(e) {
|
|
@@ -306,7 +306,7 @@ function oe(e, t = !1) {
|
|
|
306
306
|
a.fe.se |= 256;
|
|
307
307
|
continue;
|
|
308
308
|
}
|
|
309
|
-
t && n ? (a.fe.se |= 128,
|
|
309
|
+
t && n ? (a.fe.se |= 128, k(a.fe, n)) : t && (a.fe.se |= 128, a.fe.Ke = void 0), be(a.fe);
|
|
310
310
|
}
|
|
311
311
|
}
|
|
312
312
|
function se(e) {
|
|
@@ -325,8 +325,8 @@ function ce() {
|
|
|
325
325
|
function le(e = null, t = !1) {
|
|
326
326
|
let n = !t;
|
|
327
327
|
n && ce(), !t && q.vt.length && ue(q);
|
|
328
|
-
let r =
|
|
329
|
-
if (r && De(
|
|
328
|
+
let r = j.EE >= j.Ve;
|
|
329
|
+
if (r && De(j, K.Ce), n) {
|
|
330
330
|
r && ce();
|
|
331
331
|
let t = e ?? q.m;
|
|
332
332
|
if (t.Me.length && K.En(t.Me), t.ln.size) {
|
|
@@ -340,7 +340,7 @@ function ue(e) {
|
|
|
340
340
|
for (let t of e.vt) t.ne?.(), ue(t);
|
|
341
341
|
}
|
|
342
342
|
function de(e) {
|
|
343
|
-
for (let t = 0; t < e.length; t++) e[t].Ne =
|
|
343
|
+
for (let t = 0; t < e.length; t++) e[t].Ne = P;
|
|
344
344
|
}
|
|
345
345
|
var q = new K(), fe = q.m;
|
|
346
346
|
function pe(e) {
|
|
@@ -356,7 +356,7 @@ function pe(e) {
|
|
|
356
356
|
}
|
|
357
357
|
}
|
|
358
358
|
}
|
|
359
|
-
if (!q.gt && !F) for (;
|
|
359
|
+
if (!q.gt && !F) for (; te || P;) q.flush();
|
|
360
360
|
}
|
|
361
361
|
function me(e, t) {
|
|
362
362
|
for (let n = 0; n < e.length; n++) e[n](t);
|
|
@@ -399,17 +399,17 @@ function _e(e) {
|
|
|
399
399
|
return e;
|
|
400
400
|
}
|
|
401
401
|
function ve(e, t) {
|
|
402
|
-
let n =
|
|
402
|
+
let n = P;
|
|
403
403
|
try {
|
|
404
|
-
return
|
|
404
|
+
return P = _e(e), t();
|
|
405
405
|
} finally {
|
|
406
|
-
|
|
406
|
+
P = n;
|
|
407
407
|
}
|
|
408
408
|
}
|
|
409
409
|
//#endregion
|
|
410
410
|
//#region ../../node_modules/.bun/@solidjs+signals@2.0.0-rc.0/node_modules/@solidjs/signals/dist/prod/core/heap.js
|
|
411
411
|
function ye(e) {
|
|
412
|
-
return e.se & 32 ?
|
|
412
|
+
return e.se & 32 ? M : j;
|
|
413
413
|
}
|
|
414
414
|
function be(e) {
|
|
415
415
|
if (e.Re === 3) {
|
|
@@ -490,7 +490,7 @@ function ke(e) {
|
|
|
490
490
|
let t = e.Fe;
|
|
491
491
|
for (; t;) {
|
|
492
492
|
let e = t.se;
|
|
493
|
-
t.se = e | 32, e & 24 && (we(t, e & 32 ?
|
|
493
|
+
t.se = e | 32, e & 24 && (we(t, e & 32 ? M : j), e & 8 ? Se(t, M) : Ce(t, M)), ke(t), t = t.He;
|
|
494
494
|
}
|
|
495
495
|
}
|
|
496
496
|
function Ae(e, t = !1, n) {
|
|
@@ -689,7 +689,7 @@ function $e(e, t) {
|
|
|
689
689
|
function et(e) {
|
|
690
690
|
let t = !1, n, r = /* @__PURE__ */ new Set(), i = K.Se, a = (o) => {
|
|
691
691
|
if (r.has(o) || !Ke(o, e)) return;
|
|
692
|
-
r.add(o), o.de =
|
|
692
|
+
r.add(o), o.de = N;
|
|
693
693
|
let s = o.oe?.values().next().value, c = o.S & 2;
|
|
694
694
|
s ? (c || Ye(o, s), i !== null && i(o)) : (o.S &= -2, c || Ye(o), i !== null && i(o), o.ue && (be(o), t = !0), o.ue = !1, !o.o && o.T & 32 && (n ??= []).push(o)), Xe(o, a);
|
|
695
695
|
};
|
|
@@ -716,10 +716,10 @@ function nt(e, t, n) {
|
|
|
716
716
|
if (e.Te !== t) return;
|
|
717
717
|
let r = n instanceof d;
|
|
718
718
|
if (r && e.Ee) {
|
|
719
|
-
e.Te = null, Je(e, n), e.de =
|
|
719
|
+
e.Te = null, Je(e, n), e.de = N;
|
|
720
720
|
return;
|
|
721
721
|
}
|
|
722
|
-
o(), it(e, r ? 1 : 2, n), e.de =
|
|
722
|
+
o(), it(e, r ? 1 : 2, n), e.de = N, r || Qe(e);
|
|
723
723
|
}, c = (r, i) => {
|
|
724
724
|
if (e.Te !== t || e.se & 130) return;
|
|
725
725
|
o();
|
|
@@ -727,11 +727,11 @@ function nt(e, t, n) {
|
|
|
727
727
|
He(e), rt(e);
|
|
728
728
|
let s = E(e);
|
|
729
729
|
if (s && s.Ae.delete(e), n) n(r), a && rt(e, !0);
|
|
730
|
-
else if (e._e !== void 0) e.De === _ && ie(e), e.De = r, K.Pe !== null && K.Pe(e, r), O(e) || oe(e), e.de =
|
|
730
|
+
else if (e._e !== void 0) e.De === _ && ie(e), e.De = r, K.Pe !== null && K.Pe(e, r), O(e) || oe(e), e.de = N;
|
|
731
731
|
else if (s) {
|
|
732
732
|
let t = e.Re, n = e.Ue, i = e.be;
|
|
733
733
|
try {
|
|
734
|
-
(!t && a || !i || !i(r, n)) && (e.Ue = r, e.de =
|
|
734
|
+
(!t && a || !i || !i(r, n)) && (e.Ue = r, e.de = N, K.Pe !== null && K.Pe(e, r), oe(e, !0));
|
|
735
735
|
} catch (t) {
|
|
736
736
|
it(e, 2, t);
|
|
737
737
|
}
|
|
@@ -796,7 +796,7 @@ function rt(e, t = !1) {
|
|
|
796
796
|
function it(e, t, n, r, i) {
|
|
797
797
|
t === 2 && !(n instanceof f) && !(n instanceof d) && (n = new f(e, n));
|
|
798
798
|
let a = t === 1 && n instanceof d ? n.source : void 0, o = a === e, s = t === 1 && e._e !== void 0 && !o, c = s && O(e);
|
|
799
|
-
r || (t === 1 && a ? (Ge(e, a), e.S = 1 | e.S & 4, Ye(e, a, n)) : (qe(e), e.S = t | (t === 2 ? 0 : e.S & 4), e._ = n), K.Se !== null && K.Se(e), e.u && K.Oe !== null && K.Oe(e)), i && !r &&
|
|
799
|
+
r || (t === 1 && a ? (Ge(e, a), e.S = 1 | e.S & 4, Ye(e, a, n)) : (qe(e), e.S = t | (t === 2 ? 0 : e.S & 4), e._ = n), K.Se !== null && K.Se(e), e.u && K.Oe !== null && K.Oe(e)), i && !r && k(e, i);
|
|
800
800
|
let l = r || c, u = r || s ? void 0 : i;
|
|
801
801
|
if (e.i) {
|
|
802
802
|
if (r && t === 1) return;
|
|
@@ -804,7 +804,7 @@ function it(e, t, n, r, i) {
|
|
|
804
804
|
return;
|
|
805
805
|
}
|
|
806
806
|
Xe(e, (e, r) => {
|
|
807
|
-
if (e.de =
|
|
807
|
+
if (e.de = N, t === 1 && a && !e.oe?.has(a) || t !== 1 && (e._ !== n || e.oe)) {
|
|
808
808
|
if (r.Ge && t !== 1 && !(n instanceof d)) {
|
|
809
809
|
be(e), U();
|
|
810
810
|
return;
|
|
@@ -817,16 +817,16 @@ K.Ce = ut, K.me = Ae;
|
|
|
817
817
|
var at = !1, ot = !1, st = !1, ct = !1, J = null, lt = null;
|
|
818
818
|
function ut(e, t = !1) {
|
|
819
819
|
let n = e.Re;
|
|
820
|
-
t || (e.Ne && (!n ||
|
|
820
|
+
t || (e.Ne && (!n || P) && P !== e.Ne && q.initTransition(e.Ne), we(e, ye(e)), e.Te = null, e.Ne || n === 3 ? Ae(e) : (e.Fe !== null || e.ye !== null) && (ke(e), e.Qe = e.ye, e.We = e.Fe, e.ye = null, e.Fe = null, e.qe = 0));
|
|
821
821
|
let r = !!(e.se & 128), i = e._e !== void 0 && e._e !== _, a = !!(e.S & 4), o = e.S & 2 ? e._ : void 0, s = (e.se & g) !== 0, c = e.Ee, l = J;
|
|
822
|
-
J = e, e.Ye = null, e.Ze++, e.se = 4, e.de =
|
|
822
|
+
J = e, e.Ye = null, e.Ze++, e.se = 4, e.de = N;
|
|
823
823
|
let u = e.De === _ ? e.Ue : e.De, f = e.xe, p = at, m = lt;
|
|
824
824
|
at = !0;
|
|
825
825
|
let h = ct;
|
|
826
826
|
if (ct = !1, r) {
|
|
827
827
|
let t = K.je(e, !0);
|
|
828
828
|
t && (lt = t);
|
|
829
|
-
} else if (
|
|
829
|
+
} else if (P && !t && P.Me.length) {
|
|
830
830
|
let t = K.je(e, !1);
|
|
831
831
|
t && (r = !0, lt = t);
|
|
832
832
|
}
|
|
@@ -861,20 +861,20 @@ function ut(e, t = !1) {
|
|
|
861
861
|
if (n && l && (e.Je = !e._, t || e.C.enqueue(n, e.Xe ??= K.et.bind(null, e))), !e._) {
|
|
862
862
|
if (l) {
|
|
863
863
|
let a = i ? e._e : void 0;
|
|
864
|
-
t || n && (
|
|
864
|
+
t || n && (P !== e.Ne || P === null) || r ? (e.Ue = u, i && r && (e._e = u === void 0 ? v : u, e.De = _)) : (e.De = u, c && (e.Ee = !0), (P || e.Ne) && K.Pe !== null && K.Pe(e, u)), e.o !== null && (!i || r || e._e !== a) && oe(e, r || i);
|
|
865
865
|
} else if (i) e.De === _ && ie(e), e.De = u, c && (e.Ee = !0);
|
|
866
866
|
else if (e.xe != f) for (let t = e.o; t !== null; t = t.le) Ce(t.fe, ye(t.fe));
|
|
867
867
|
}
|
|
868
868
|
o !== void 0 && !l && !e._ && $e(e, o);
|
|
869
869
|
}
|
|
870
|
-
lt = m, (e.De !== _ || e.We !== null || e.Qe !== null || e.S & 5) && (!t || e.S & 1) && (!e.Ne || i) && ie(e), e.Ne && n &&
|
|
870
|
+
lt = m, (e.De !== _ || e.We !== null || e.Qe !== null || e.S & 5) && (!t || e.S & 1) && (!e.Ne || i) && ie(e), e.Ne && n && P !== e.Ne && ve(e.Ne, () => ut(e));
|
|
871
871
|
}
|
|
872
872
|
function dt(e) {
|
|
873
873
|
if (e.se & 1) for (let t = e.tt; t; t = t.nt) {
|
|
874
874
|
let n = t.it, r = n.lt || n;
|
|
875
875
|
if (r.ce && dt(r), e.se & 2) break;
|
|
876
876
|
}
|
|
877
|
-
(e.se & 130 || e._ && e.de <
|
|
877
|
+
(e.se & 130 || e._ && e.de < N && !e.Te) && ut(e), e.se &= 280;
|
|
878
878
|
}
|
|
879
879
|
function ft(e, t) {
|
|
880
880
|
let n = t?.transparent ?? !1, r = typeof t == "object" && !!t && "loadingValue" in t, i = {
|
|
@@ -903,7 +903,7 @@ function ft(e, t) {
|
|
|
903
903
|
Fe: null,
|
|
904
904
|
se: t?.lazy ? 512 : 0,
|
|
905
905
|
S: r ? 0 : 4,
|
|
906
|
-
de:
|
|
906
|
+
de: N,
|
|
907
907
|
De: _,
|
|
908
908
|
Qe: null,
|
|
909
909
|
We: null,
|
|
@@ -941,7 +941,7 @@ function pt(e, t, n, r, i, a) {
|
|
|
941
941
|
Fe: null,
|
|
942
942
|
se: 512,
|
|
943
943
|
S: 4,
|
|
944
|
-
de:
|
|
944
|
+
de: N,
|
|
945
945
|
De: _,
|
|
946
946
|
Qe: null,
|
|
947
947
|
We: null,
|
|
@@ -977,7 +977,7 @@ function gt(e, t, n = null) {
|
|
|
977
977
|
Ue: e,
|
|
978
978
|
o: null,
|
|
979
979
|
rt: null,
|
|
980
|
-
de:
|
|
980
|
+
de: N,
|
|
981
981
|
lt: n,
|
|
982
982
|
ae: n?.u || null,
|
|
983
983
|
De: _
|
|
@@ -1005,7 +1005,7 @@ function bt(e) {
|
|
|
1005
1005
|
let t = J;
|
|
1006
1006
|
t?.Nt && (t = t.dt);
|
|
1007
1007
|
let n = e, r = e.lt || e;
|
|
1008
|
-
if (typeof n.ce == "function" && yt(e, !1), !n.ce && r === e && e._e === void 0 && e.Le === void 0 &&
|
|
1008
|
+
if (typeof n.ce == "function" && yt(e, !1), !n.ce && r === e && e._e === void 0 && e.Le === void 0 && P === null && lt === null) return t && at && We(e, t), !t || e.De === _ ? e.Ue : e.De;
|
|
1009
1009
|
if (t && at && (We(e, t, st), r.ce)) {
|
|
1010
1010
|
let n = ye(e);
|
|
1011
1011
|
r.xe >= n.Ve && (Ee(t), Te(n), dt(r));
|
|
@@ -1013,24 +1013,24 @@ function bt(e) {
|
|
|
1013
1013
|
i >= t.xe && e.ke !== t && (t.xe = i + 1);
|
|
1014
1014
|
}
|
|
1015
1015
|
if (r.S & 1) {
|
|
1016
|
-
if (t && !(ot && r.Ne &&
|
|
1016
|
+
if (t && !(ot && r.Ne && P !== r.Ne)) {
|
|
1017
1017
|
if (lt === null || K.Ot(r)) throw !at && e !== t && We(e, t), r._;
|
|
1018
1018
|
} else if (t && r !== e && r.S & 4) throw !at && e !== t && We(e, t), r._;
|
|
1019
1019
|
else if (!t && r.S & 4) throw r._;
|
|
1020
1020
|
}
|
|
1021
1021
|
if (r.ce && r.S & 2) {
|
|
1022
|
-
if (at && r.de <
|
|
1022
|
+
if (at && r.de < N) return ut(r), bt(e);
|
|
1023
1023
|
throw r._;
|
|
1024
1024
|
}
|
|
1025
1025
|
if (e._e !== void 0 && e._e !== _) return y(e._e);
|
|
1026
|
-
if (lt !== null &&
|
|
1027
|
-
let i = !t || lt !== null && K.Pt(e, r, t) || e.De === _ || ot && e.Ne &&
|
|
1026
|
+
if (lt !== null && P !== null && t !== null && K.Rt(e, r, t)) return e.Ue;
|
|
1027
|
+
let i = !t || lt !== null && K.Pt(e, r, t) || e.De === _ || ot && e.Ne && P !== e.Ne ? e.Ue : e.De;
|
|
1028
1028
|
return !t && r === e && typeof n.ce == "function" && e.T & 32 && !(r.S & 1) && !e.o && Ue(e), i;
|
|
1029
1029
|
}
|
|
1030
1030
|
function xt(e, t) {
|
|
1031
|
-
if (e.Ne &&
|
|
1031
|
+
if (e.Ne && P !== e.Ne && q.initTransition(e.Ne), e._e !== void 0) return K.Gt(e, t);
|
|
1032
1032
|
let n = e.De === _ ? e.Ue : e.De;
|
|
1033
|
-
return typeof t == "function" && (t = t(n)), e.S & 4 || !e.be || !e.be(n, t) ? (e.De === _ && ie(e), e.De = t, (e.ge !== void 0 || e.pe !== void 0) && K.Pe !== null && K.Pe(e, t), e.de =
|
|
1033
|
+
return typeof t == "function" && (t = t(n)), e.S & 4 || !e.be || !e.be(n, t) ? (e.De === _ && ie(e), e.De = t, (e.ge !== void 0 || e.pe !== void 0) && K.Pe !== null && K.Pe(e, t), e.de = N, oe(e), U(), t) : t;
|
|
1034
1034
|
}
|
|
1035
1035
|
function St(e) {
|
|
1036
1036
|
we(e, ye(e)), !(e.se & 1024) && e.De === _ && (ie(e), U()), e.se = e.se & -4 | h;
|
|
@@ -3310,43 +3310,43 @@ function Xa(e = {}, t = !1) {
|
|
|
3310
3310
|
let i = (e.id ?? (t ? "mesurer-text-inspector" : `mesurer-text-inspector-${++Ja}`)).replace(/[^a-zA-Z0-9_-]/g, "-"), a = `${i}-overlay`, o = `${i}-styles`, s = `${i}-mode`, c = new Set((e.ignoredTags ?? Ha).map((e) => e.toUpperCase())), l = Number.isFinite(e.maxPinned) ? Math.max(1, Math.floor(e.maxPinned)) : Infinity, u = new Va(n, r), d = r.HTMLElement, f = r.SVGElement, p = r.Node, m = !1, h = null, g = null, _ = null, v = null, y = {
|
|
3311
3311
|
x: 0,
|
|
3312
3312
|
y: 0
|
|
3313
|
-
}, b = 0, x = 0, S = 0, C = r.scrollX, w = r.scrollY, T = null, E = [], D = [], O = [],
|
|
3313
|
+
}, b = 0, x = 0, S = 0, C = r.scrollX, w = r.scrollY, T = null, E = [], D = [], O = [], k = e.portalTarget ?? n.body, A = () => {
|
|
3314
3314
|
let e = [n];
|
|
3315
|
-
|
|
3315
|
+
k instanceof r.ShadowRoot && e.push(k);
|
|
3316
3316
|
for (let t of e) {
|
|
3317
3317
|
if (t.querySelector(`#${o}`)) continue;
|
|
3318
3318
|
let e = n.createElement("style");
|
|
3319
3319
|
e.id = o, e.textContent = Ya(s, a), t === n ? n.head.append(e) : t.append(e);
|
|
3320
3320
|
}
|
|
3321
|
-
},
|
|
3321
|
+
}, 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) => {
|
|
3322
3322
|
h && (h.dataset.theme = e);
|
|
3323
3323
|
}) ?? null, Object.assign(h.style, {
|
|
3324
3324
|
position: "fixed",
|
|
3325
3325
|
inset: "0",
|
|
3326
3326
|
pointerEvents: "none",
|
|
3327
3327
|
zIndex: "2147483646"
|
|
3328
|
-
}),
|
|
3328
|
+
}), k.appendChild(h), h), M = (e, t) => {
|
|
3329
3329
|
e && (e.dataset.state = t ? "visible" : "hidden");
|
|
3330
|
-
},
|
|
3331
|
-
let e =
|
|
3330
|
+
}, ee = () => {
|
|
3331
|
+
let e = j();
|
|
3332
3332
|
g ??= Da(n, Ua, Wa), _ ??= ka(n, !1), g.parentNode || e.append(g), _.parentNode || e.append(_);
|
|
3333
|
-
},
|
|
3333
|
+
}, 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']"), te = (e, t) => {
|
|
3334
3334
|
for (let i of n.elementsFromPoint(e, t)) {
|
|
3335
3335
|
if (ri(i, r)) return null;
|
|
3336
|
-
if (
|
|
3336
|
+
if (P(i)) return i;
|
|
3337
3337
|
}
|
|
3338
3338
|
return null;
|
|
3339
3339
|
}, F = () => {
|
|
3340
|
-
v = null,
|
|
3340
|
+
v = null, M(g, !1), M(_, !1);
|
|
3341
3341
|
}, I = (e, t, n) => {
|
|
3342
3342
|
if (!e || e.dataset.state !== "visible") return !1;
|
|
3343
3343
|
let r = e.getBoundingClientRect();
|
|
3344
3344
|
return t >= r.left && t <= r.right && n >= r.top && n <= r.bottom;
|
|
3345
3345
|
}, L = (e, t) => E.some((n) => I(n.card, e, t)), R = (t) => {
|
|
3346
|
-
if (!m || !
|
|
3347
|
-
|
|
3346
|
+
if (!m || !P(t)) return !1;
|
|
3347
|
+
ee();
|
|
3348
3348
|
let i = t.getBoundingClientRect(), a = u.getFast(t);
|
|
3349
|
-
return v = t, Aa(n, _, a, !1), Oa(g, i), ja(r, _, i),
|
|
3349
|
+
return v = t, Aa(n, _, a, !1), Oa(g, i), ja(r, _, i), M(g, !0), M(_, !0), r.clearTimeout(x), x = r.setTimeout(() => {
|
|
3350
3350
|
if (!m || v !== t || !_) return;
|
|
3351
3351
|
let i = u.getFull(t, a);
|
|
3352
3352
|
Aa(n, _, i, !1), ja(r, _, t.getBoundingClientRect()), e.onInspect?.(t, i);
|
|
@@ -3381,12 +3381,12 @@ function Xa(e = {}, t = !1) {
|
|
|
3381
3381
|
}, W = (t, i, a = !0, o = !0) => {
|
|
3382
3382
|
if (E.find((e) => e.sourceEl === t)) return;
|
|
3383
3383
|
a && B(), E.length >= l && V(E[0], !1, !0);
|
|
3384
|
-
let s =
|
|
3384
|
+
let s = j(), c = Da(n, Ga, Ka), d = ka(n, !0);
|
|
3385
3385
|
d.classList.add("mesurer-ti-card--draggable"), d.classList.remove("mesurer-ti-card--pinned");
|
|
3386
3386
|
let f = u.getFull(t);
|
|
3387
3387
|
Aa(n, d, f, !0), s.append(c, d);
|
|
3388
3388
|
let p = t.getBoundingClientRect();
|
|
3389
|
-
Oa(c, p), ja(r, d, p), i?.userPlaced && (d.classList.add("mesurer-ti-card--pinned"), d.style.left = `${i.left}px`, d.style.top = `${i.top}px`),
|
|
3389
|
+
Oa(c, p), ja(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);
|
|
3390
3390
|
let m = {
|
|
3391
3391
|
sourceEl: t,
|
|
3392
3392
|
box: c,
|
|
@@ -3419,7 +3419,7 @@ function Xa(e = {}, t = !1) {
|
|
|
3419
3419
|
let t = e.sourceEl.getBoundingClientRect();
|
|
3420
3420
|
Oa(e.box, t), e.userPlaced || ja(r, e.card, t);
|
|
3421
3421
|
let n = t.bottom >= 0 && t.right >= 0 && t.left <= r.innerWidth && t.top <= r.innerHeight;
|
|
3422
|
-
|
|
3422
|
+
M(e.box, n), M(e.card, n), e.card.style.pointerEvents = n ? "auto" : "none";
|
|
3423
3423
|
}
|
|
3424
3424
|
}, ae = () => {
|
|
3425
3425
|
if (m) {
|
|
@@ -3429,14 +3429,14 @@ function Xa(e = {}, t = !1) {
|
|
|
3429
3429
|
let e = v.getBoundingClientRect();
|
|
3430
3430
|
Oa(g, e), ja(r, _, e);
|
|
3431
3431
|
let t = e.bottom >= 0 && e.right >= 0 && e.left <= r.innerWidth && e.top <= r.innerHeight;
|
|
3432
|
-
|
|
3432
|
+
M(g, t), M(_, t);
|
|
3433
3433
|
}
|
|
3434
3434
|
}
|
|
3435
3435
|
ie();
|
|
3436
3436
|
}
|
|
3437
3437
|
}, oe = () => {
|
|
3438
3438
|
if (!m) return;
|
|
3439
|
-
let e =
|
|
3439
|
+
let e = te(y.x, y.y);
|
|
3440
3440
|
if (!e) F();
|
|
3441
3441
|
else if (e !== v) R(e);
|
|
3442
3442
|
else if (g && _) {
|
|
@@ -3483,7 +3483,7 @@ function Xa(e = {}, t = !1) {
|
|
|
3483
3483
|
return;
|
|
3484
3484
|
}
|
|
3485
3485
|
if (e.preventDefault(), e.stopImmediatePropagation(), e.button === 0) {
|
|
3486
|
-
let t =
|
|
3486
|
+
let t = te(e.clientX, e.clientY);
|
|
3487
3487
|
t && W(t);
|
|
3488
3488
|
}
|
|
3489
3489
|
}
|
|
@@ -3496,14 +3496,14 @@ function Xa(e = {}, t = !1) {
|
|
|
3496
3496
|
e.preventDefault(), e.stopImmediatePropagation();
|
|
3497
3497
|
}
|
|
3498
3498
|
}, me = () => {
|
|
3499
|
-
m || (m = !0,
|
|
3499
|
+
m || (m = !0, A(), j(), n.body.classList.add(s), C = r.scrollX, w = r.scrollY, r.addEventListener("mousemove", le, !0), r.addEventListener("mouseout", q, !0), r.addEventListener("click", fe, !0), r.addEventListener("auxclick", pe, !0), r.addEventListener("scroll", de, {
|
|
3500
3500
|
capture: !0,
|
|
3501
3501
|
passive: !0
|
|
3502
3502
|
}), r.addEventListener("resize", se, !0));
|
|
3503
3503
|
}, he = () => {
|
|
3504
3504
|
m && (m = !1, r.cancelAnimationFrame(b), b = 0, r.clearTimeout(x), r.clearTimeout(S), S = 0, r.removeEventListener("mousemove", le, !0), r.removeEventListener("mouseout", q, !0), r.removeEventListener("click", fe, !0), r.removeEventListener("auxclick", pe, !0), r.removeEventListener("scroll", de, !0), r.removeEventListener("resize", se, !0), F(), H(), g?.remove(), _?.remove(), g = null, _ = null, D.length = 0, O.length = 0, n.body.classList.remove(s));
|
|
3505
3505
|
}, ge = () => {
|
|
3506
|
-
he(), T?.(), T = null, h?.remove(), h = null, n.getElementById(o)?.remove(),
|
|
3506
|
+
he(), T?.(), T = null, h?.remove(), h = null, n.getElementById(o)?.remove(), k instanceof r.ShadowRoot && k.querySelector(`#${o}`)?.remove();
|
|
3507
3507
|
};
|
|
3508
3508
|
return {
|
|
3509
3509
|
enable: me,
|
|
@@ -3520,7 +3520,7 @@ function Xa(e = {}, t = !1) {
|
|
|
3520
3520
|
};
|
|
3521
3521
|
}
|
|
3522
3522
|
Xa({}, !0);
|
|
3523
|
-
var Za = "/*! 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-\\[2px\\] {\n gap: 2px;\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-center {\n align-self: center;\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-\\[2px\\] {\n padding: 2px;\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-0\\.5 {\n padding-top: calc(var(--msr-spacing) * 0.5);\n }\n .msr\\:pt-2 {\n padding-top: calc(var(--msr-spacing) * 2);\n }\n .msr\\:pr-0 {\n padding-right: 0px;\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-1\\.5 {\n padding-bottom: calc(var(--msr-spacing) * 1.5);\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\\:text-\\[14px\\] {\n font-size: 14px;\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.mesurer-toolbar-mode-switch {\n position: relative;\n z-index: 1;\n isolation: isolate;\n border-radius: 5px;\n background: transparent;\n}\n.mesurer-toolbar-mode-switch-pill {\n position: absolute;\n top: 2px;\n left: 2px;\n z-index: 0;\n width: 28px;\n height: 28px;\n border-radius: 3px;\n background: var(--msr-color-ink-200, #e2e8f0);\n transform: translateX(0);\n}\n.mesurer-toolbar-mode-switch[data-value=\"edit\"] .mesurer-toolbar-mode-switch-pill {\n transform: translateX(30px);\n}\n.mesurer-toolbar-mode-switch > :not(.mesurer-toolbar-mode-switch-pill) {\n position: relative;\n z-index: 1;\n}\n.mesurer-toolbar-mode-button {\n display: flex;\n width: 28px;\n height: 28px;\n align-items: center;\n justify-content: center;\n border-radius: 3px;\n color: var(--msr-color-ink-700, #334155);\n outline: none;\n}\n.mesurer-toolbar-mode-button[aria-pressed=\"true\"] {\n color: var(--msr-color-ink-900, #18181b);\n}\n.mesurer-toolbar-mode-button[aria-pressed=\"false\"]:not(:disabled):hover {\n background: var(--msr-color-ink-200, #e2e8f0);\n @supports (color: color-mix(in lab, red, red)) {\n background: color-mix(in srgb, var(--msr-color-ink-200, #e2e8f0) 50%, transparent);\n }\n}\n.mesurer-toolbar-mode-button:focus-visible {\n outline: 1px solid var(--msr-color-ink-500, #64748b);\n outline-offset: 1px;\n}\n.mesurer-toolbar-mode-button:disabled {\n cursor: default;\n opacity: 0.35;\n}\n.mesurer-toolbar-mode-stage {\n --msr-select-mode-w: 0px;\n --msr-edit-mode-w: 0px;\n position: relative;\n flex: none;\n width: var(--msr-select-mode-w);\n overflow: visible;\n}\n.mesurer-toolbar-mode-stage[data-mode=\"edit\"] {\n width: var(--msr-edit-mode-w);\n}\n.mesurer-toolbar-mode-track {\n display: flex;\n width: max-content;\n align-items: stretch;\n transform: translateX(0);\n}\n.mesurer-toolbar-mode-stage[data-mode=\"edit\"] .mesurer-toolbar-mode-track {\n transform: translateX(calc(-1 * var(--msr-select-mode-w)));\n}\n.mesurer-toolbar-mode-slot {\n flex: none;\n width: var(--msr-select-mode-w);\n}\n.mesurer-toolbar-mode-slot[data-mode=\"edit\"] {\n width: var(--msr-edit-mode-w);\n}\n.mesurer-toolbar-mode-panel {\n display: flex;\n width: max-content;\n align-items: stretch;\n}\n.mesurer-toolbar-mode-slot[data-open=\"false\"] {\n visibility: hidden;\n pointer-events: none;\n}\n.mesurer-toolbar-mode-stage[data-mode-motion=\"true\"] {\n overflow: hidden;\n}\n.mesurer-toolbar-mode-stage[data-mode-motion=\"true\"] .mesurer-toolbar-mode-slot[data-open=\"false\"] {\n visibility: visible;\n}\n.mesurer-toolbar-mode-stage:has( .mesurer-toolbar-mode-slot[data-open=\"true\"] [role=\"menu\"], .mesurer-toolbar-mode-slot[data-open=\"true\"] [role=\"dialog\"] ) {\n overflow: visible;\n}\n.mesurer-toolbar-mode-stage[data-ready=\"true\"], .mesurer-toolbar-mode-stage[data-ready=\"true\"] .mesurer-toolbar-mode-track {\n transition-duration: 150ms;\n transition-timing-function: ease;\n}\n.mesurer-toolbar-mode-stage[data-ready=\"true\"] {\n transition-property: width;\n}\n.mesurer-toolbar-mode-stage[data-compact-motion=\"true\"] {\n transition-property: none;\n}\n.mesurer-toolbar-mode-stage[data-ready=\"true\"] .mesurer-toolbar-mode-track {\n transition-property: transform;\n}\n.mesurer-toolbar-mode-switch {\n --msr-toolbar-mode-motion: 150ms ease;\n}\n.mesurer-toolbar-mode-switch-pill {\n transition: transform var(--msr-toolbar-mode-motion);\n}\n@media (prefers-reduced-motion: reduce) {\n .mesurer-toolbar-mode-stage, .mesurer-toolbar-mode-track, .mesurer-toolbar-mode-switch-pill {\n transition: none !important;\n }\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", Qa = {
|
|
3523
|
+
var Za = "/*! 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-3 {\n grid-column-start: 3;\n }\n .msr\\:col-end-3 {\n grid-column-end: 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-\\[2px\\] {\n gap: 2px;\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-center {\n align-self: center;\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-\\[2px\\] {\n padding: 2px;\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-0\\.5 {\n padding-top: calc(var(--msr-spacing) * 0.5);\n }\n .msr\\:pt-2 {\n padding-top: calc(var(--msr-spacing) * 2);\n }\n .msr\\:pr-0 {\n padding-right: 0px;\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-1\\.5 {\n padding-bottom: calc(var(--msr-spacing) * 1.5);\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\\:text-\\[14px\\] {\n font-size: 14px;\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.mesurer-toolbar-mode-switch {\n position: relative;\n z-index: 1;\n isolation: isolate;\n border-radius: 5px;\n background: transparent;\n}\n.mesurer-toolbar-mode-switch-pill {\n position: absolute;\n top: 2px;\n left: 2px;\n z-index: 0;\n width: 28px;\n height: 28px;\n border-radius: 3px;\n background: var(--msr-color-ink-200, #e2e8f0);\n transform: translateX(0);\n}\n.mesurer-toolbar-mode-switch[data-value=\"edit\"] .mesurer-toolbar-mode-switch-pill {\n transform: translateX(30px);\n}\n.mesurer-toolbar-mode-switch > :not(.mesurer-toolbar-mode-switch-pill) {\n position: relative;\n z-index: 1;\n}\n.mesurer-toolbar-mode-button {\n display: flex;\n width: 28px;\n height: 28px;\n align-items: center;\n justify-content: center;\n border-radius: 3px;\n color: var(--msr-color-ink-700, #334155);\n outline: none;\n}\n.mesurer-toolbar-mode-button[aria-pressed=\"true\"] {\n color: var(--msr-color-ink-900, #18181b);\n}\n.mesurer-toolbar-mode-button[aria-pressed=\"false\"]:not(:disabled):hover {\n background: var(--msr-color-ink-200, #e2e8f0);\n @supports (color: color-mix(in lab, red, red)) {\n background: color-mix(in srgb, var(--msr-color-ink-200, #e2e8f0) 50%, transparent);\n }\n}\n.mesurer-toolbar-mode-button:focus-visible {\n outline: 1px solid var(--msr-color-ink-500, #64748b);\n outline-offset: 1px;\n}\n.mesurer-toolbar-mode-button:disabled {\n cursor: default;\n opacity: 0.35;\n}\n.mesurer-toolbar-mode-stage {\n --msr-select-mode-w: 0px;\n --msr-edit-mode-w: 0px;\n position: relative;\n flex: none;\n width: var(--msr-select-mode-w);\n overflow: visible;\n}\n.mesurer-toolbar-mode-stage[data-mode=\"edit\"] {\n width: var(--msr-edit-mode-w);\n}\n.mesurer-toolbar-mode-track {\n display: flex;\n width: max-content;\n align-items: stretch;\n transform: translateX(0);\n}\n.mesurer-toolbar-mode-stage[data-mode=\"edit\"] .mesurer-toolbar-mode-track {\n transform: translateX(calc(-1 * var(--msr-select-mode-w)));\n}\n.mesurer-toolbar-mode-slot {\n flex: none;\n width: var(--msr-select-mode-w);\n}\n.mesurer-toolbar-mode-slot[data-mode=\"edit\"] {\n width: var(--msr-edit-mode-w);\n}\n.mesurer-toolbar-mode-panel {\n display: flex;\n width: max-content;\n align-items: stretch;\n}\n.mesurer-toolbar-mode-slot[data-open=\"false\"] {\n visibility: hidden;\n pointer-events: none;\n}\n.mesurer-toolbar-mode-stage[data-mode-motion=\"true\"] {\n overflow: hidden;\n}\n.mesurer-toolbar-mode-stage[data-mode-motion=\"true\"] .mesurer-toolbar-mode-slot[data-open=\"false\"] {\n visibility: visible;\n}\n.mesurer-toolbar-mode-stage:has( .mesurer-toolbar-mode-slot[data-open=\"true\"] [role=\"menu\"], .mesurer-toolbar-mode-slot[data-open=\"true\"] [role=\"dialog\"] ) {\n overflow: visible;\n}\n.mesurer-toolbar-mode-stage[data-ready=\"true\"], .mesurer-toolbar-mode-stage[data-ready=\"true\"] .mesurer-toolbar-mode-track {\n transition-duration: 150ms;\n transition-timing-function: ease;\n}\n.mesurer-toolbar-mode-stage[data-ready=\"true\"] {\n transition-property: width;\n}\n.mesurer-toolbar-mode-stage[data-compact-motion=\"true\"] {\n transition-property: none;\n}\n.mesurer-toolbar-mode-stage[data-ready=\"true\"] .mesurer-toolbar-mode-track {\n transition-property: transform;\n}\n.mesurer-toolbar-mode-switch {\n --msr-toolbar-mode-motion: 150ms ease;\n}\n.mesurer-toolbar-mode-switch-pill {\n transition: transform var(--msr-toolbar-mode-motion);\n}\n@media (prefers-reduced-motion: reduce) {\n .mesurer-toolbar-mode-stage, .mesurer-toolbar-mode-track, .mesurer-toolbar-mode-switch-pill {\n transition: none !important;\n }\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", Qa = {
|
|
3524
3524
|
keepTextChanges: !1,
|
|
3525
3525
|
keepArrangeChanges: !1
|
|
3526
3526
|
}, $a = (e) => e.state.get("mesurer.presentation.preferences") ?? Qa, eo = "mesurer.arrange", to = "arrange", no = "mesurer.arrange.intents", ro = "mesurer.arrange.active", io = "mesurer.arrange.settings", ao = "runtime:solid", oo = "builtin.select", so = "arrange.toggle", co = "arrange.commit", lo = "arrange.clear", uo = "arrange.reset-selection", fo = "arrange.reset-all", po = "mesurer.arrange.selection-available", mo = 1, ho = 24, go = 160, _o = 500, vo = "#ef4444", yo = 24, bo = 6, xo = 30, So = .5, Co = 4, wo = "[data-mesurer-text-editor='true']", To = {
|
|
@@ -3676,18 +3676,18 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3676
3676
|
...e,
|
|
3677
3677
|
...t
|
|
3678
3678
|
}));
|
|
3679
|
-
},
|
|
3679
|
+
}, k = () => Po(r), A = () => T().intents.filter((e) => e.pageUrl === k()), j = (e) => !!e.closest("[data-mesurer-island='true'], [data-mesurer-inspector-ui='true'], [data-mesurer-root='true']"), M = (e) => ra(e, o) && !j(e), ee = (e) => {
|
|
3680
3680
|
let t = [];
|
|
3681
|
-
o instanceof c.HTMLElement && o.matches(e) && !
|
|
3682
|
-
for (let n of o.querySelectorAll(e)) n instanceof c.HTMLElement &&
|
|
3681
|
+
o instanceof c.HTMLElement && o.matches(e) && !j(o) && t.push(o);
|
|
3682
|
+
for (let n of o.querySelectorAll(e)) n instanceof c.HTMLElement && M(n) && t.push(n);
|
|
3683
3683
|
return t;
|
|
3684
|
-
},
|
|
3684
|
+
}, N = (e, t) => e.localName !== t.fingerprintTag || t.fingerprintId && e.id !== t.fingerprintId || t.fingerprintTestId && e.getAttribute("data-testid") !== t.fingerprintTestId || t.fingerprintRole && e.getAttribute("role") !== t.fingerprintRole || t.fingerprintAriaLabel && e.getAttribute("aria-label") !== t.fingerprintAriaLabel ? !1 : t.fingerprintClasses.every((t) => e.classList.contains(t)), P = (e) => {
|
|
3685
3685
|
let t = Io(e), n = m.get(e.selector);
|
|
3686
|
-
if (n && n.isConnected &&
|
|
3686
|
+
if (n && n.isConnected && M(n) && N(n, e)) return n;
|
|
3687
3687
|
if (n && m.delete(e.selector), !sa(t)) return null;
|
|
3688
3688
|
let r = [];
|
|
3689
3689
|
try {
|
|
3690
|
-
r =
|
|
3690
|
+
r = ee(e.selector).filter((e) => ca(e, t));
|
|
3691
3691
|
} catch {
|
|
3692
3692
|
return null;
|
|
3693
3693
|
}
|
|
@@ -3695,22 +3695,22 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3695
3695
|
if (!t.id && !t.testId) {
|
|
3696
3696
|
let e = [];
|
|
3697
3697
|
try {
|
|
3698
|
-
e =
|
|
3698
|
+
e = ee(t.tag).filter((e) => ca(e, t));
|
|
3699
3699
|
} catch {
|
|
3700
3700
|
return null;
|
|
3701
3701
|
}
|
|
3702
3702
|
if (e.length !== 1 || e[0] !== r[0]) return null;
|
|
3703
3703
|
}
|
|
3704
3704
|
return r[0] ?? null;
|
|
3705
|
-
},
|
|
3705
|
+
}, te = {
|
|
3706
3706
|
value: "none",
|
|
3707
3707
|
priority: "important"
|
|
3708
3708
|
}, F = (e) => {
|
|
3709
3709
|
let t = zo(e, "transition-property");
|
|
3710
|
-
(!h.get(e) || !Vo(t,
|
|
3710
|
+
(!h.get(e) || !Vo(t, te)) && h.set(e, t), Vo(t, te) || e.style.setProperty("transition-property", te.value, te.priority);
|
|
3711
3711
|
}, I = (e) => {
|
|
3712
3712
|
let t = h.get(e);
|
|
3713
|
-
t && (Vo(zo(e, "transition-property"),
|
|
3713
|
+
t && (Vo(zo(e, "transition-property"), te) && (t.value || t.priority ? e.style.setProperty("transition-property", t.value, t.priority) : e.style.removeProperty("transition-property")), h.delete(e));
|
|
3714
3714
|
}, L = (e) => {
|
|
3715
3715
|
for (let t of h.keys()) e.has(t) || I(t);
|
|
3716
3716
|
}, R = () => {
|
|
@@ -3760,10 +3760,10 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3760
3760
|
x: 0,
|
|
3761
3761
|
y: 0
|
|
3762
3762
|
};
|
|
3763
|
-
}, K = (e =
|
|
3763
|
+
}, K = (e = A()) => {
|
|
3764
3764
|
let t = /* @__PURE__ */ new Map();
|
|
3765
3765
|
for (let n of e) for (let e of n.targets) {
|
|
3766
|
-
let n =
|
|
3766
|
+
let n = P(e);
|
|
3767
3767
|
n && t.set(n, e);
|
|
3768
3768
|
}
|
|
3769
3769
|
return t;
|
|
@@ -3777,7 +3777,7 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3777
3777
|
n = ne(n);
|
|
3778
3778
|
}
|
|
3779
3779
|
return null;
|
|
3780
|
-
}, oe = (e =
|
|
3780
|
+
}, oe = (e = A(), t = /* @__PURE__ */ new Map()) => {
|
|
3781
3781
|
let n = K(e), r = /* @__PURE__ */ new Set([...n.keys(), ...t.keys()]), i = /* @__PURE__ */ new Map(), a = /* @__PURE__ */ new Set(), o = (e) => {
|
|
3782
3782
|
let s = i.get(e);
|
|
3783
3783
|
if (s) return s;
|
|
@@ -3813,7 +3813,7 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3813
3813
|
if (!e) return oe();
|
|
3814
3814
|
let t = /* @__PURE__ */ new Map();
|
|
3815
3815
|
for (let n of e.targets) {
|
|
3816
|
-
let e =
|
|
3816
|
+
let e = P(n);
|
|
3817
3817
|
e && t.set(e, v.state === "before" ? {
|
|
3818
3818
|
x: n.beforeOffsetX,
|
|
3819
3819
|
y: n.beforeOffsetY
|
|
@@ -3825,7 +3825,7 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3825
3825
|
return t;
|
|
3826
3826
|
}, ce = (e) => {
|
|
3827
3827
|
let t = [...e].flatMap(([t, n]) => {
|
|
3828
|
-
if (!t.isConnected || !
|
|
3828
|
+
if (!t.isConnected || !M(t)) return [];
|
|
3829
3829
|
let r = re(t, e), i = {
|
|
3830
3830
|
x: n.x - r.x,
|
|
3831
3831
|
y: n.y - r.y
|
|
@@ -3853,7 +3853,7 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3853
3853
|
} finally {
|
|
3854
3854
|
!S && !y && le();
|
|
3855
3855
|
}
|
|
3856
|
-
}, de = () => i.currentSelection().elements.filter((e) => e instanceof c.HTMLElement && e.isConnected &&
|
|
3856
|
+
}, de = () => i.currentSelection().elements.filter((e) => e instanceof c.HTMLElement && e.isConnected && M(e));
|
|
3857
3857
|
e.state.register({
|
|
3858
3858
|
id: po,
|
|
3859
3859
|
initial: de().length > 0
|
|
@@ -3877,7 +3877,7 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3877
3877
|
me();
|
|
3878
3878
|
return;
|
|
3879
3879
|
}
|
|
3880
|
-
let t =
|
|
3880
|
+
let t = A(), r = K(t), i = oe(t), a = /* @__PURE__ */ new Set();
|
|
3881
3881
|
for (let t of de()) {
|
|
3882
3882
|
let o = r.get(t);
|
|
3883
3883
|
if (!o) continue;
|
|
@@ -3903,9 +3903,9 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3903
3903
|
let n = new Set(t);
|
|
3904
3904
|
n.size && (e.state.update("mesurer.arrange.intents", (e) => {
|
|
3905
3905
|
let t = !1, r = e.intents.flatMap((e) => {
|
|
3906
|
-
if (e.pageUrl !==
|
|
3906
|
+
if (e.pageUrl !== k()) return [e];
|
|
3907
3907
|
let r = e.targets.filter((e) => {
|
|
3908
|
-
let r =
|
|
3908
|
+
let r = P(e), i = r !== null && n.has(r);
|
|
3909
3909
|
return i && (t = !0), !i;
|
|
3910
3910
|
});
|
|
3911
3911
|
return r.length ? r.length === e.targets.length ? [e] : [{
|
|
@@ -3917,14 +3917,14 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3917
3917
|
}), xe(), be());
|
|
3918
3918
|
}, ve = () => {
|
|
3919
3919
|
e.state.update(no, (e) => {
|
|
3920
|
-
let t = e.intents.filter((e) => e.pageUrl !==
|
|
3920
|
+
let t = e.intents.filter((e) => e.pageUrl !== k());
|
|
3921
3921
|
return t.length === e.intents.length ? e : { intents: t };
|
|
3922
3922
|
}), xe(), be();
|
|
3923
3923
|
}, ye = (e) => {
|
|
3924
3924
|
let t = D();
|
|
3925
3925
|
if (!t.snapping) return [];
|
|
3926
3926
|
let n = [], a = new Set(e), s = i.snapshot(), l = s.xrayVisible && t.preferXrayEdges && t.elementEdges, u = 0, d = (i) => {
|
|
3927
|
-
if (u >= _o || a.has(i) || e.some((e) => e.contains(i)) || !
|
|
3927
|
+
if (u >= _o || a.has(i) || e.some((e) => e.contains(i)) || !M(i)) return;
|
|
3928
3928
|
let o = r.getComputedStyle(i);
|
|
3929
3929
|
if (o.display === "none" || o.visibility === "hidden" || o.visibility === "collapse") return;
|
|
3930
3930
|
let s = o.outlineStyle === "solid" && (Number.parseFloat(o.outlineWidth) || 0) > 0;
|
|
@@ -4033,7 +4033,7 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
4033
4033
|
x: e.clientX,
|
|
4034
4034
|
y: e.clientY
|
|
4035
4035
|
}, o, n))) : null, s = e.shiftKey ? a : null;
|
|
4036
|
-
if (e.shiftKey && s instanceof c.HTMLElement &&
|
|
4036
|
+
if (e.shiftKey && s instanceof c.HTMLElement && M(s) && !r.includes(s)) {
|
|
4037
4037
|
e.preventDefault(), e.stopPropagation(), i.toggleSelection(s);
|
|
4038
4038
|
return;
|
|
4039
4039
|
}
|
|
@@ -4041,7 +4041,7 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
4041
4041
|
intentId: null,
|
|
4042
4042
|
state: "desired"
|
|
4043
4043
|
}, le();
|
|
4044
|
-
let u = K(
|
|
4044
|
+
let u = K(A()), d = oe(A()), p = new Set(r);
|
|
4045
4045
|
z();
|
|
4046
4046
|
let m = r.map((e, t) => {
|
|
4047
4047
|
let n = zi(e), r = re(e, d), i = d.get(e) ?? r, a = u.get(e), o = (a ? ie(a) : null) ?? {
|
|
@@ -4097,7 +4097,7 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
4097
4097
|
targets: m,
|
|
4098
4098
|
groupBefore: h,
|
|
4099
4099
|
snapCandidates: ye(r),
|
|
4100
|
-
pressTarget: a instanceof c.HTMLElement &&
|
|
4100
|
+
pressTarget: a instanceof c.HTMLElement && M(a) ? a : null,
|
|
4101
4101
|
shiftToggleElement: e.shiftKey && s instanceof c.HTMLElement && r.includes(s) ? s : null,
|
|
4102
4102
|
moved: !1,
|
|
4103
4103
|
dx: 0,
|
|
@@ -4129,7 +4129,7 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
4129
4129
|
y: n
|
|
4130
4130
|
}), a = r === "y" ? null : No("x", i, y.snapCandidates), o = r === "x" ? null : No("y", i, y.snapCandidates);
|
|
4131
4131
|
t += a?.delta ?? 0, n += o?.delta ?? 0, y.dx = t, y.dy = n;
|
|
4132
|
-
let s = oe(
|
|
4132
|
+
let s = oe(A(), De(y, t, n));
|
|
4133
4133
|
ce(s);
|
|
4134
4134
|
let c = Eo(y.groupBefore, {
|
|
4135
4135
|
x: t,
|
|
@@ -4154,11 +4154,11 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
4154
4154
|
xe(), be();
|
|
4155
4155
|
return;
|
|
4156
4156
|
}
|
|
4157
|
-
let a = oe(
|
|
4157
|
+
let a = oe(A(), De(n, n.dx, n.dy));
|
|
4158
4158
|
b = {
|
|
4159
4159
|
id: Fo(r, "arrange"),
|
|
4160
4160
|
createdAt: Date.now(),
|
|
4161
|
-
pageUrl:
|
|
4161
|
+
pageUrl: k(),
|
|
4162
4162
|
targets: n.targets.map(({ element: e, movesDirectly: t, target: r }) => {
|
|
4163
4163
|
let i = {
|
|
4164
4164
|
x: r.beforeLocalOffsetX ?? 0,
|
|
@@ -4199,7 +4199,7 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
4199
4199
|
let n = e.composedPath();
|
|
4200
4200
|
if (!n.includes(f) && t.rendererRoot && n.includes(t.rendererRoot)) return;
|
|
4201
4201
|
let r = Me(e);
|
|
4202
|
-
i.setHover(r instanceof c.HTMLElement &&
|
|
4202
|
+
i.setHover(r instanceof c.HTMLElement && M(r) ? r : null);
|
|
4203
4203
|
}, Pe = (t) => {
|
|
4204
4204
|
if (t.key !== "Escape" || !E() && !y || Wo(t.target) || s.querySelector("[data-mesurer-tool-menu]")) return;
|
|
4205
4205
|
if (t.preventDefault(), t.stopImmediatePropagation(), y) {
|
|
@@ -4241,7 +4241,7 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
4241
4241
|
top: e.desiredTop,
|
|
4242
4242
|
width: e.desiredWidth,
|
|
4243
4243
|
height: e.desiredHeight
|
|
4244
|
-
}))) : ue(() => Oo(e.targets.map((e) =>
|
|
4244
|
+
}))) : ue(() => Oo(e.targets.map((e) => P(e)).filter((e) => e !== null).map((e) => zi(e)))), !n) throw Error(`Edit movement intent has no resolvable capture region: ${e.id}`);
|
|
4245
4245
|
let i = Math.max(0, n.left - ho), a = Math.max(0, n.top - ho), o = Math.min(r.innerWidth, n.left + n.width + ho), s = Math.min(r.innerHeight, n.top + n.height + ho);
|
|
4246
4246
|
return {
|
|
4247
4247
|
left: i,
|
|
@@ -4291,7 +4291,7 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
4291
4291
|
let n = Le(e);
|
|
4292
4292
|
if (!n) throw Error(`Edit movement intent not found: ${e}`);
|
|
4293
4293
|
let r = ue(() => n.targets.map((e) => {
|
|
4294
|
-
let n =
|
|
4294
|
+
let n = P(e), r = {
|
|
4295
4295
|
left: e.desiredLeft,
|
|
4296
4296
|
top: e.desiredTop,
|
|
4297
4297
|
width: e.desiredWidth,
|
|
@@ -4391,7 +4391,7 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
4391
4391
|
{
|
|
4392
4392
|
id: "reset-all-positions",
|
|
4393
4393
|
label: "Reset all positions",
|
|
4394
|
-
disabled: () =>
|
|
4394
|
+
disabled: () => A().length === 0,
|
|
4395
4395
|
run: async () => {
|
|
4396
4396
|
await e.command.execute(fo, void 0, { source: "arrange-menu" });
|
|
4397
4397
|
}
|
|
@@ -4770,7 +4770,7 @@ var ms = (e, t, n) => Math.min(Math.max(e, t), Math.max(t, n)), hs = 0, gs = (e)
|
|
|
4770
4770
|
} : bs(e, t, n, r, i);
|
|
4771
4771
|
};
|
|
4772
4772
|
function Ss(e) {
|
|
4773
|
-
let [t, n] = en(0), [r, i] = en(0), [a, o] = en(null), [s, c] = en(null), [l, u] = en(null), [d, f] = en({}), [p, m] = en(null), [h, g] = en(!1), [_, v] = en(""), [y, b] = en(null), [x, S] = en(!1), [C, w] = en(null), [T, E] = en(null), D = `--mesurer-annotation-trigger-${++hs}`, O = null,
|
|
4773
|
+
let [t, n] = en(0), [r, i] = en(0), [a, o] = en(null), [s, c] = en(null), [l, u] = en(null), [d, f] = en({}), [p, m] = en(null), [h, g] = en(!1), [_, v] = en(""), [y, b] = en(null), [x, S] = en(!1), [C, w] = en(null), [T, E] = en(null), D = `--mesurer-annotation-trigger-${++hs}`, O = null, k = e.initialTriggerFallback === "current-and-next", A = null, j = null, M = null, ee, N, P = null, te = null, F = null, I = null, L = null, R = null, z = /* @__PURE__ */ new Map(), B = () => ee?.ownerDocument.defaultView ?? window, V = () => e.coordinateSpace === "viewport", H = (e) => e ? "native-anchor" : V() ? "cached-delta" : "document", U = (e) => {
|
|
4774
4774
|
if (V()) return e;
|
|
4775
4775
|
let t = B();
|
|
4776
4776
|
return {
|
|
@@ -4784,7 +4784,7 @@ function Ss(e) {
|
|
|
4784
4784
|
region: t.region ? { ...t.region } : null
|
|
4785
4785
|
};
|
|
4786
4786
|
}, G = (e, t) => e.elements.length !== t.elements.length || e.elements.some((e, n) => e !== t.elements[n]) ? !1 : e.region === t.region ? !0 : !e.region || !t.region ? !1 : e.region.left === t.region.left && e.region.top === t.region.top && e.region.width === t.region.width && e.region.height === t.region.height, ne = () => {
|
|
4787
|
-
|
|
4787
|
+
A = null, v(""), g(!1), b(null), m(null);
|
|
4788
4788
|
}, re = () => {
|
|
4789
4789
|
let e = B();
|
|
4790
4790
|
return !!(e.CSS?.supports("anchor-name: --mesurer-annotation-trigger") && e.CSS.supports("position-anchor: --mesurer-annotation-trigger") && e.CSS.supports("left: anchor(left)"));
|
|
@@ -4793,9 +4793,9 @@ function Ss(e) {
|
|
|
4793
4793
|
if (!t.length) return null;
|
|
4794
4794
|
let n = e.runtime.hoveredElement();
|
|
4795
4795
|
return t.find((e) => e === n) ?? t.find((e) => n && e.contains(n)) ?? t[0];
|
|
4796
|
-
}, ie = () =>
|
|
4796
|
+
}, ie = () => ee?.parentElement, ae = () => {
|
|
4797
4797
|
let e = ie();
|
|
4798
|
-
return e ? [...e.querySelectorAll("[data-mesurer-annotation-trigger='true'], [data-mesurer-annotation-composer='true']")].filter((e) => e !==
|
|
4798
|
+
return e ? [...e.querySelectorAll("[data-mesurer-annotation-trigger='true'], [data-mesurer-annotation-composer='true']")].filter((e) => e !== N || te === null) : [];
|
|
4799
4799
|
}, oe = (e) => {
|
|
4800
4800
|
let t = ie();
|
|
4801
4801
|
return t ? [...t.querySelectorAll("[data-mesurer-annotation-id]")].filter((t) => t.dataset.mesurerAnnotationId === e) : [];
|
|
@@ -4805,7 +4805,7 @@ function Ss(e) {
|
|
|
4805
4805
|
}, ce = (t) => {
|
|
4806
4806
|
let n = e.runtime.annotation(t);
|
|
4807
4807
|
return !n || n.anchor.kind !== "elements" ? null : n.resolvedTargets.find(({ element: e }) => e?.isConnected)?.element ?? null;
|
|
4808
|
-
}, le = (e) => !!(_s(e) && V() &&
|
|
4808
|
+
}, le = (e) => !!(_s(e) && V() && ee && re() && e.getRootNode() === ee.getRootNode()), ue = (e) => {
|
|
4809
4809
|
let t = ce(e), n = z.get(e);
|
|
4810
4810
|
if (!t) {
|
|
4811
4811
|
n && (se(e), i((e) => e + 1));
|
|
@@ -4849,22 +4849,22 @@ function Ss(e) {
|
|
|
4849
4849
|
};
|
|
4850
4850
|
e.initialTriggerFallback && (O = K());
|
|
4851
4851
|
let pe = () => {
|
|
4852
|
-
I?.release(), I = null, F?.(), F = null,
|
|
4853
|
-
}, me = (e) => !!(_s(e) && V() &&
|
|
4852
|
+
I?.release(), I = null, F?.(), F = null, P = null, te = null;
|
|
4853
|
+
}, me = (e) => !!(_s(e) && V() && ee && e !== O && re() && e.getRootNode() === ee.getRootNode()), he = () => {
|
|
4854
4854
|
let e = K();
|
|
4855
4855
|
O && e !== O && (O = null);
|
|
4856
|
-
let t =
|
|
4857
|
-
if (e ===
|
|
4856
|
+
let t = P, n = !!(e?.isConnected && me(e)), r = te === e;
|
|
4857
|
+
if (e === P && e?.isConnected && n === r) {
|
|
4858
4858
|
I?.sync();
|
|
4859
4859
|
return;
|
|
4860
4860
|
}
|
|
4861
4861
|
let i = e === t ? D : `--mesurer-annotation-trigger-${++hs}`;
|
|
4862
4862
|
if (pe(), !e?.isConnected) return;
|
|
4863
|
-
|
|
4863
|
+
P = e;
|
|
4864
4864
|
let a = e.ownerDocument.defaultView;
|
|
4865
4865
|
if (a) {
|
|
4866
4866
|
if (n && _s(e)) {
|
|
4867
|
-
F = vs(e, i),
|
|
4867
|
+
F = vs(e, i), te = e, D = i, I = mi(a, e, ae, { trackWindow: !1 });
|
|
4868
4868
|
return;
|
|
4869
4869
|
}
|
|
4870
4870
|
D = i, I = mi(a, e, ae, { trackWindow: V() });
|
|
@@ -4886,9 +4886,9 @@ function Ss(e) {
|
|
|
4886
4886
|
ge(ye);
|
|
4887
4887
|
let be = e.runtime.subscribe(() => {
|
|
4888
4888
|
let t = e.runtime.selectGestureActive();
|
|
4889
|
-
h() && t ? (
|
|
4889
|
+
h() && t ? (k = !0, ne()) : h() && A !== null && !G(A, W()) && (O = K(), k = !1, ne());
|
|
4890
4890
|
let r = K(), i = r !== ye;
|
|
4891
|
-
i && (ye = r, ge(ye),
|
|
4891
|
+
i && (ye = r, ge(ye), k && (k = !1, O = r)), he(), i && ve(), n((e) => e + 1), fe();
|
|
4892
4892
|
});
|
|
4893
4893
|
he(), B().queueMicrotask(de), At(() => {
|
|
4894
4894
|
L?.disconnect(), L = null, R?.removeEventListener("resize", ve), R = null, pe();
|
|
@@ -4920,7 +4920,7 @@ function Ss(e) {
|
|
|
4920
4920
|
return o ? [{ ...o }] : [];
|
|
4921
4921
|
}), De = () => xe().elements.length > 0 || xe().region !== null, Oe = () => {
|
|
4922
4922
|
t();
|
|
4923
|
-
let e =
|
|
4923
|
+
let e = A;
|
|
4924
4924
|
return e !== null && G(e, W());
|
|
4925
4925
|
}, ke = $t(() => {
|
|
4926
4926
|
let e = xe(), t = e.elements.filter((e) => e.isConnected).map((e) => {
|
|
@@ -4964,7 +4964,7 @@ function Ss(e) {
|
|
|
4964
4964
|
}, {
|
|
4965
4965
|
obstacles: i,
|
|
4966
4966
|
maxShiftRings: 1
|
|
4967
|
-
}), o = a?.left ?? ms(n.left + n.width + 6, 4, r.innerWidth - 24 - 4), s = a?.top ?? ms(n.top, 4, r.innerHeight - 24 - 4), c =
|
|
4967
|
+
}), o = a?.left ?? ms(n.left + n.width + 6, 4, r.innerWidth - 24 - 4), s = a?.top ?? ms(n.top, 4, r.innerHeight - 24 - 4), c = te === e, l = V() && !c;
|
|
4968
4968
|
return {
|
|
4969
4969
|
left: c || l ? o : o + r.scrollX,
|
|
4970
4970
|
top: c || l ? s : s + r.scrollY,
|
|
@@ -5013,7 +5013,7 @@ function Ss(e) {
|
|
|
5013
5013
|
}, ze = () => {
|
|
5014
5014
|
r();
|
|
5015
5015
|
let e = Re(), t = Ne();
|
|
5016
|
-
if (!t?.isConnected ||
|
|
5016
|
+
if (!t?.isConnected || te !== t) return {
|
|
5017
5017
|
...U(e),
|
|
5018
5018
|
nativeAnchor: !1
|
|
5019
5019
|
};
|
|
@@ -5098,14 +5098,14 @@ function Ss(e) {
|
|
|
5098
5098
|
});
|
|
5099
5099
|
});
|
|
5100
5100
|
}, Ue = (e) => Le(e, Ve(e)), We = (e) => {
|
|
5101
|
-
|
|
5101
|
+
k = !1, A = null, g(!1), ue(e), He(e), o(e), w(null), q(e);
|
|
5102
5102
|
}, Ge = (t, n) => {
|
|
5103
5103
|
let r = t.currentTarget.ownerDocument.defaultView?.Element, i = t.target;
|
|
5104
5104
|
if (t.button !== 0 || r && i instanceof r && i.closest("button")) return;
|
|
5105
5105
|
let a = t.currentTarget.parentElement;
|
|
5106
5106
|
if (!a) return;
|
|
5107
5107
|
let o = a.getBoundingClientRect(), s = B(), c = s.document.documentElement, l = c.style.userSelect;
|
|
5108
|
-
c.style.setProperty("user-select", "none", "important"),
|
|
5108
|
+
c.style.setProperty("user-select", "none", "important"), j = {
|
|
5109
5109
|
surfaceId: n,
|
|
5110
5110
|
pointerId: t.pointerId,
|
|
5111
5111
|
startX: t.clientX,
|
|
@@ -5116,8 +5116,8 @@ function Ss(e) {
|
|
|
5116
5116
|
height: o.height
|
|
5117
5117
|
}, E(n), t.preventDefault(), t.stopPropagation();
|
|
5118
5118
|
let u = (t) => {
|
|
5119
|
-
if (!
|
|
5120
|
-
let r =
|
|
5119
|
+
if (!j || t.pointerId !== j.pointerId) return;
|
|
5120
|
+
let r = j, i = Math.max(8, s.innerWidth - r.width - 8), a = Math.max(8, s.innerHeight - r.height - 8), o = {
|
|
5121
5121
|
left: ms(r.originLeft + t.clientX - r.startX, 8, i),
|
|
5122
5122
|
top: ms(r.originTop + t.clientY - r.startY, 8, a)
|
|
5123
5123
|
};
|
|
@@ -5139,14 +5139,14 @@ function Ss(e) {
|
|
|
5139
5139
|
}));
|
|
5140
5140
|
}
|
|
5141
5141
|
}, d = (e) => {
|
|
5142
|
-
!
|
|
5142
|
+
!j || e.pointerId !== t.pointerId || (c.style.userSelect = l, s.removeEventListener("pointermove", u), s.removeEventListener("pointerup", d), s.removeEventListener("pointercancel", d), j = null, E(null), M = null);
|
|
5143
5143
|
};
|
|
5144
|
-
s.addEventListener("pointermove", u), s.addEventListener("pointerup", d), s.addEventListener("pointercancel", d),
|
|
5144
|
+
s.addEventListener("pointermove", u), s.addEventListener("pointerup", d), s.addEventListener("pointercancel", d), M = () => {
|
|
5145
5145
|
c.style.userSelect = l, s.removeEventListener("pointermove", u), s.removeEventListener("pointerup", d), s.removeEventListener("pointercancel", d), E(null);
|
|
5146
5146
|
};
|
|
5147
5147
|
};
|
|
5148
5148
|
At(() => {
|
|
5149
|
-
|
|
5149
|
+
M?.(), M = null, j = null;
|
|
5150
5150
|
});
|
|
5151
5151
|
let Ke = async (e, t) => {
|
|
5152
5152
|
if (!x()) {
|
|
@@ -5161,7 +5161,7 @@ function Ss(e) {
|
|
|
5161
5161
|
}
|
|
5162
5162
|
}, qe = ne, Je = () => {
|
|
5163
5163
|
if (!De()) return;
|
|
5164
|
-
|
|
5164
|
+
k = !1, A = W(), v(""), b(null), w(null), o(null);
|
|
5165
5165
|
let e = Ae();
|
|
5166
5166
|
if (e) {
|
|
5167
5167
|
let t = xs(e, 272, 168, B());
|
|
@@ -5173,13 +5173,13 @@ function Ss(e) {
|
|
|
5173
5173
|
g(!0), B().queueMicrotask(() => I?.sync());
|
|
5174
5174
|
}, Ye = () => {
|
|
5175
5175
|
let e = h();
|
|
5176
|
-
|
|
5176
|
+
A !== null && !G(A, W()) ? (O = K(), k = !1, he(), ve()) : e && (k = !1), qe();
|
|
5177
5177
|
}, Xe = () => {
|
|
5178
|
-
h() && (
|
|
5178
|
+
h() && (k = !0, qe());
|
|
5179
5179
|
}, Ze = () => {
|
|
5180
5180
|
try {
|
|
5181
5181
|
let t = e.runtime.addSelectionAnnotation(_());
|
|
5182
|
-
|
|
5182
|
+
k = !1, A = null, v(""), b(null), g(!1), m(null), ue(t.id), He(t.id), o(t.id), w(null), q(t.id);
|
|
5183
5183
|
} catch (e) {
|
|
5184
5184
|
b(e instanceof Error ? e.message : String(e));
|
|
5185
5185
|
}
|
|
@@ -5195,7 +5195,7 @@ function Ss(e) {
|
|
|
5195
5195
|
style: { display: "none" }
|
|
5196
5196
|
});
|
|
5197
5197
|
return fr(() => (e) => {
|
|
5198
|
-
|
|
5198
|
+
ee = e, _e(), he();
|
|
5199
5199
|
}, e), e;
|
|
5200
5200
|
})(),
|
|
5201
5201
|
Y(on, {
|
|
@@ -5227,7 +5227,7 @@ function Ss(e) {
|
|
|
5227
5227
|
}
|
|
5228
5228
|
});
|
|
5229
5229
|
return fr(() => (e) => {
|
|
5230
|
-
|
|
5230
|
+
N = e, I?.sync();
|
|
5231
5231
|
}, t), Q(t, Y(Mi, { size: 14 })), or(() => ({
|
|
5232
5232
|
e: V() ? "viewport" : "document",
|
|
5233
5233
|
t: H(e().nativeAnchor),
|
|
@@ -6824,63 +6824,63 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
6824
6824
|
}), E.append(D);
|
|
6825
6825
|
let O = e.createElement("div");
|
|
6826
6826
|
E.append(O);
|
|
6827
|
-
let
|
|
6828
|
-
|
|
6827
|
+
let k = e.createElement("p");
|
|
6828
|
+
k.textContent = "Size", _l(k, {
|
|
6829
6829
|
margin: "0",
|
|
6830
6830
|
padding: "6px 8px 4px",
|
|
6831
6831
|
color: "var(--msr-color-ink-500, #64748b)",
|
|
6832
6832
|
"font-size": "10px",
|
|
6833
6833
|
"font-weight": "500"
|
|
6834
|
-
}), E.append(
|
|
6835
|
-
let
|
|
6836
|
-
E.append(
|
|
6837
|
-
let
|
|
6834
|
+
}), E.append(k);
|
|
6835
|
+
let A = e.createElement("div");
|
|
6836
|
+
E.append(A);
|
|
6837
|
+
let j = [
|
|
6838
6838
|
1,
|
|
6839
6839
|
2,
|
|
6840
6840
|
3
|
|
6841
6841
|
].map((t) => {
|
|
6842
6842
|
let n = bl(e, `${t}×`);
|
|
6843
|
-
return n.button.dataset.mesurerRecordingScale = String(t),
|
|
6843
|
+
return n.button.dataset.mesurerRecordingScale = String(t), A.append(n.button), {
|
|
6844
6844
|
scale: t,
|
|
6845
6845
|
...n
|
|
6846
6846
|
};
|
|
6847
|
-
}),
|
|
6848
|
-
|
|
6849
|
-
let
|
|
6850
|
-
|
|
6851
|
-
let
|
|
6852
|
-
|
|
6847
|
+
}), M = yl(e, "Download", "↓");
|
|
6848
|
+
M.dataset.mesurerRecordingExport = "true", d.append(M);
|
|
6849
|
+
let ee = yl(e, "Grow preview", "↗");
|
|
6850
|
+
ee.dataset.mesurerRecordingExpand = "true", d.append(ee);
|
|
6851
|
+
let N = e.createElement("p");
|
|
6852
|
+
N.dataset.mesurerRecordingPreviewStatus = "true", N.setAttribute("role", "status"), _l(N, {
|
|
6853
6853
|
display: "none",
|
|
6854
6854
|
margin: "8px 0 0",
|
|
6855
6855
|
color: "var(--msr-color-ink-500, #64748b)",
|
|
6856
6856
|
"font-size": "11px",
|
|
6857
6857
|
"line-height": "16px"
|
|
6858
|
-
}), o.append(
|
|
6859
|
-
let
|
|
6860
|
-
let t =
|
|
6858
|
+
}), o.append(N);
|
|
6859
|
+
let P = null, te = null, F = !1, I = !1, L = 0, R = ["webm"], z = "webm", B = 1, V = 0, H = 0, U = null, W = null, G = null, ne = (e) => {
|
|
6860
|
+
let t = P?.duration ?? 0;
|
|
6861
6861
|
return t <= 0 ? 0 : Math.min(1, Math.max(0, e / t));
|
|
6862
6862
|
}, re = () => ({
|
|
6863
6863
|
start: V,
|
|
6864
6864
|
end: H
|
|
6865
6865
|
}), K = (e) => {
|
|
6866
|
-
let t =
|
|
6866
|
+
let t = P?.duration ?? 0, n = h.getBoundingClientRect();
|
|
6867
6867
|
return t <= 0 || n.width <= 0 ? 0 : Math.min(t, Math.max(0, (e - n.left) / n.width * t));
|
|
6868
6868
|
}, ie = () => {
|
|
6869
|
-
let e =
|
|
6869
|
+
let e = P?.duration ?? 0, t = Math.min(e, Math.max(0, c.currentTime || 0)), n = ne(V) * 100, r = ne(H) * 100;
|
|
6870
6870
|
x.style.left = `${n}%`, S.style.left = `${r}%`, _.style.left = `${n}%`, _.style.width = `${Math.max(0, r - n)}%`, y.style.left = `${ne(t) * 100}%`, x.setAttribute("aria-valuemax", String(Math.max(0, H - ml))), x.setAttribute("aria-valuenow", String(V)), x.setAttribute("aria-valuetext", vl(V)), S.setAttribute("aria-valuemin", String(Math.min(e, V + ml))), S.setAttribute("aria-valuemax", String(e)), S.setAttribute("aria-valuenow", String(H)), S.setAttribute("aria-valuetext", vl(H)), p.textContent = vl(t), C.textContent = vl(e);
|
|
6871
6871
|
}, ae = (e, t = !0) => {
|
|
6872
|
-
if (!
|
|
6872
|
+
if (!P) return;
|
|
6873
6873
|
let n = Math.min(H, Math.max(V, e));
|
|
6874
6874
|
t && !c.paused && c.pause(), c.currentTime = n, ie();
|
|
6875
6875
|
}, oe = (e, t = !1) => {
|
|
6876
|
-
|
|
6876
|
+
P && (V = Math.min(Math.max(0, e), Math.max(0, H - ml)), (t || c.currentTime < V) && ae(V), ie());
|
|
6877
6877
|
}, se = (e, t = !1) => {
|
|
6878
|
-
|
|
6878
|
+
P && (H = Math.max(Math.min(P.duration, e), Math.min(P.duration, V + ml)), t ? ae(H) : c.currentTime > H && ae(V), ie());
|
|
6879
6879
|
}, ce = () => {
|
|
6880
6880
|
T.textContent = `${B}×`;
|
|
6881
|
-
for (let e of
|
|
6881
|
+
for (let e of j) {
|
|
6882
6882
|
let t = e.scale === B;
|
|
6883
|
-
e.button.setAttribute("aria-checked", t ? "true" : "false"), e.check.style.opacity = t ? "1" : "0", e.text.textContent =
|
|
6883
|
+
e.button.setAttribute("aria-checked", t ? "true" : "false"), e.check.style.opacity = t ? "1" : "0", e.text.textContent = P ? `${e.scale}× ${Math.round(P.width * e.scale)} × ${Math.round(P.height * e.scale)}` : `${e.scale}×`;
|
|
6884
6884
|
}
|
|
6885
6885
|
}, le = () => {
|
|
6886
6886
|
O.replaceChildren();
|
|
@@ -6904,20 +6904,20 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
6904
6904
|
x,
|
|
6905
6905
|
S,
|
|
6906
6906
|
T,
|
|
6907
|
-
|
|
6908
|
-
|
|
6909
|
-
...
|
|
6907
|
+
M,
|
|
6908
|
+
ee,
|
|
6909
|
+
...j.map((e) => e.button)
|
|
6910
6910
|
]) t.toggleAttribute("disabled", e);
|
|
6911
6911
|
}, fe = () => n.closest("[data-mesurer-root='true']")?.querySelector("[data-mesurer-tool-id='recording']") ?? e.querySelector("[data-mesurer-tool-id='recording']"), pe = () => {
|
|
6912
6912
|
if (o.style.display === "none") return;
|
|
6913
6913
|
let e = Math.min(F ? dl : ul, Math.max(1, t.innerWidth - 16)), n = Math.max(180, o.offsetHeight), r = fe()?.getBoundingClientRect(), i = r ? r.left + r.width / 2 : t.innerWidth - fl - e / 2, a = fl + e / 2, s = Math.max(a, t.innerWidth - fl - e / 2), c = Math.min(Math.max(a, i), s), l = r ? r.bottom + pl : fl;
|
|
6914
6914
|
l + n > t.innerHeight - fl && (l = r ? r.top - n - pl : t.innerHeight - n - fl), o.style.left = `${c}px`, o.style.top = `${Math.max(fl, l)}px`, E.style.display !== "none" && ue();
|
|
6915
6915
|
}, me = () => {
|
|
6916
|
-
c.pause(), c.removeAttribute("src"), c.load(),
|
|
6916
|
+
c.pause(), c.removeAttribute("src"), c.load(), te &&= (globalThis.URL.revokeObjectURL(te), null);
|
|
6917
6917
|
}, he = () => {
|
|
6918
|
-
L += 1, G &&= (G.cancel(), null), me(),
|
|
6918
|
+
L += 1, G &&= (G.cancel(), null), me(), P = null, U = null, W = null, de(!1), o.style.display = "none", o.style.pointerEvents = "auto", o.style.opacity = "1", o.style.transform = "translateX(-50%)", o.style.removeProperty("transform-origin"), o.style.removeProperty("will-change"), N.style.display = "none", q(!1);
|
|
6919
6919
|
}, ge = () => {
|
|
6920
|
-
if (!
|
|
6920
|
+
if (!P || o.style.display === "none" || G) return;
|
|
6921
6921
|
let e = o.getBoundingClientRect(), t = fe()?.getBoundingClientRect(), n = t ? t.left + t.width / 2 : e.left + e.width / 2, r = t ? t.top + t.height / 2 : e.top + e.height / 2;
|
|
6922
6922
|
c.pause(), de(!1), o.style.pointerEvents = "none", o.style.left = `${e.left}px`, o.style.top = `${e.top}px`, o.style.transform = "none", o.style.transformOrigin = `${n - e.left}px ${r - e.top}px`, o.style.willChange = "transform, opacity";
|
|
6923
6923
|
let a = o.animate([{
|
|
@@ -6935,7 +6935,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
6935
6935
|
G === a && (a.cancel(), G = null, o.style.removeProperty("will-change"), i());
|
|
6936
6936
|
});
|
|
6937
6937
|
}, _e = () => {
|
|
6938
|
-
if (!(!
|
|
6938
|
+
if (!(!P || I)) {
|
|
6939
6939
|
if (!c.paused) {
|
|
6940
6940
|
c.pause();
|
|
6941
6941
|
return;
|
|
@@ -6949,7 +6949,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
6949
6949
|
let t = K(e);
|
|
6950
6950
|
U === "start" ? oe(t, !0) : U === "end" ? se(t, !0) : ae(t);
|
|
6951
6951
|
}, be = (e, t) => {
|
|
6952
|
-
!
|
|
6952
|
+
!P || I || t.button !== 0 || (t.preventDefault(), t.stopPropagation(), U = e, W = t.pointerId, y.style.height = "10px", ye(t.clientX));
|
|
6953
6953
|
}, xe = (e) => {
|
|
6954
6954
|
W !== null && e.pointerId === W && ye(e.clientX);
|
|
6955
6955
|
}, Se = (e) => {
|
|
@@ -6964,7 +6964,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
6964
6964
|
v.style.display = "none";
|
|
6965
6965
|
});
|
|
6966
6966
|
for (let [e, t] of [["start", x], ["end", S]]) t.addEventListener("keydown", (t) => {
|
|
6967
|
-
if (!
|
|
6967
|
+
if (!P || t.key !== "ArrowLeft" && t.key !== "ArrowRight") return;
|
|
6968
6968
|
t.preventDefault();
|
|
6969
6969
|
let n = t.key === "ArrowLeft" ? -1 : 1, r = (e === "start" ? V : H) + n * .05;
|
|
6970
6970
|
e === "start" ? oe(r, !0) : se(r, !0);
|
|
@@ -6979,24 +6979,24 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
6979
6979
|
}), c.addEventListener("pause", () => {
|
|
6980
6980
|
f.textContent = "▶", f.setAttribute("aria-label", "Play"), f.title = "Play";
|
|
6981
6981
|
}), c.addEventListener("timeupdate", () => {
|
|
6982
|
-
|
|
6982
|
+
P && (c.currentTime >= H - .01 ? (c.pause(), c.currentTime = V) : c.currentTime < V && (c.currentTime = V), ie());
|
|
6983
6983
|
}), c.addEventListener("loadedmetadata", () => {
|
|
6984
6984
|
ie();
|
|
6985
6985
|
}), T.addEventListener("click", () => {
|
|
6986
6986
|
I || de(E.style.display === "none");
|
|
6987
6987
|
});
|
|
6988
|
-
for (let e of
|
|
6988
|
+
for (let e of j) e.button.addEventListener("click", () => {
|
|
6989
6989
|
B = e.scale, ce();
|
|
6990
6990
|
});
|
|
6991
6991
|
let Ce = (e) => {
|
|
6992
6992
|
E.style.display !== "none" && (e.composedPath().includes(w) || de(!1));
|
|
6993
6993
|
};
|
|
6994
|
-
e.addEventListener("pointerdown", Ce, !0),
|
|
6995
|
-
F = !F, o.style.width = `${F ? dl : ul}px`, s.style.maxHeight = F ? "448px" : "144px", c.style.maxHeight = F ? "448px" : "144px",
|
|
6996
|
-
}),
|
|
6997
|
-
if (!
|
|
6994
|
+
e.addEventListener("pointerdown", Ce, !0), ee.addEventListener("click", () => {
|
|
6995
|
+
F = !F, o.style.width = `${F ? dl : ul}px`, s.style.maxHeight = F ? "448px" : "144px", c.style.maxHeight = F ? "448px" : "144px", ee.textContent = F ? "↙" : "↗", ee.setAttribute("aria-label", F ? "Shrink preview" : "Grow preview"), ee.title = F ? "Shrink preview" : "Grow preview", t.requestAnimationFrame(pe);
|
|
6996
|
+
}), M.addEventListener("click", () => {
|
|
6997
|
+
if (!P || I || R.length === 0) return;
|
|
6998
6998
|
let n = ++L, { start: r, end: i } = re();
|
|
6999
|
-
q(!0), de(!1),
|
|
6999
|
+
q(!0), de(!1), N.style.display = "none", a({
|
|
7000
7000
|
format: z,
|
|
7001
7001
|
startTime: r,
|
|
7002
7002
|
endTime: i,
|
|
@@ -7004,7 +7004,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7004
7004
|
}).then((r) => {
|
|
7005
7005
|
n === L && xl(r.blob, r.filename, e, t);
|
|
7006
7006
|
}).catch((e) => {
|
|
7007
|
-
n === L && (
|
|
7007
|
+
n === L && (N.style.display = "block", N.style.color = "var(--msr-danger-text, #dc2626)", N.textContent = e instanceof Error ? e.message : "Could not export the recording.");
|
|
7008
7008
|
}).finally(() => {
|
|
7009
7009
|
n === L && q(!1);
|
|
7010
7010
|
});
|
|
@@ -7022,14 +7022,14 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7022
7022
|
let we = () => pe();
|
|
7023
7023
|
return t.addEventListener("resize", we), {
|
|
7024
7024
|
show(e) {
|
|
7025
|
-
L += 1, G &&= (G.cancel(), null), o.style.pointerEvents = "auto", o.style.opacity = "1", o.style.transform = "translateX(-50%)", o.style.removeProperty("transform-origin"), o.style.removeProperty("will-change"), me(),
|
|
7025
|
+
L += 1, G &&= (G.cancel(), null), o.style.pointerEvents = "auto", o.style.opacity = "1", o.style.transform = "translateX(-50%)", o.style.removeProperty("transform-origin"), o.style.removeProperty("will-change"), me(), P = e, F = !1, B = 1, z = "webm", R = ["webm"], V = 0, H = e.duration, U = null, W = null;
|
|
7026
7026
|
let n = globalThis.URL.createObjectURL(e.blob);
|
|
7027
|
-
|
|
7027
|
+
te = n, c.src = n, c.currentTime = 0, s.style.aspectRatio = e.width > 0 && e.height > 0 ? `${e.width} / ${e.height}` : "16 / 9", o.style.width = `${ul}px`, s.style.maxHeight = "144px", c.style.maxHeight = "144px", ee.textContent = "↗", ee.setAttribute("aria-label", "Grow preview"), ee.title = "Grow preview", p.textContent = "0:00.00", C.textContent = vl(e.duration), N.style.display = "none", N.style.color = "var(--msr-color-ink-500, #64748b)", de(!1), le(), ce(), ie(), q(!1), o.style.display = "block", pe(), o.focus({ preventScroll: !0 });
|
|
7028
7028
|
let i = L;
|
|
7029
7029
|
r(e).then((e) => {
|
|
7030
|
-
i !== L || !
|
|
7030
|
+
i !== L || !P || (R = e, z = e.includes(z) ? z : e[0] ?? "webm", le(), M.disabled = e.length === 0, e.length === 0 && (N.style.display = "block", N.style.color = "var(--msr-danger-text, #dc2626)", N.textContent = "No MediaBunny video encoder is available in this runtime."));
|
|
7031
7031
|
}).catch((e) => {
|
|
7032
|
-
i === L && (R = [], le(),
|
|
7032
|
+
i === L && (R = [], le(), M.disabled = !0, N.style.display = "block", N.style.color = "var(--msr-danger-text, #dc2626)", N.textContent = e instanceof Error ? e.message : "Could not inspect export support.");
|
|
7033
7033
|
}), t.requestAnimationFrame(pe);
|
|
7034
7034
|
},
|
|
7035
7035
|
dismiss: he,
|
|
@@ -7143,6 +7143,8 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7143
7143
|
position: "fixed",
|
|
7144
7144
|
display: "none",
|
|
7145
7145
|
background: "transparent",
|
|
7146
|
+
outline: "2px solid var(--msr-accent, #0d99ff)",
|
|
7147
|
+
"outline-offset": "-1px",
|
|
7146
7148
|
"box-shadow": "0 0 0 100vmax rgb(0 0 0 / 40%)",
|
|
7147
7149
|
"pointer-events": "none"
|
|
7148
7150
|
}), h.append(_);
|
|
@@ -7236,14 +7238,14 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7236
7238
|
D.textContent = "×", D.style.color = "var(--msr-color-ink-500, #64748b)", w.append(D, E);
|
|
7237
7239
|
let O = r.createElement("span");
|
|
7238
7240
|
O.textContent = "px", O.style.color = "var(--msr-color-ink-500, #64748b)", w.append(O);
|
|
7239
|
-
let
|
|
7240
|
-
|
|
7241
|
-
let
|
|
7242
|
-
|
|
7243
|
-
let
|
|
7244
|
-
|
|
7245
|
-
let
|
|
7246
|
-
|
|
7241
|
+
let k = S("Position");
|
|
7242
|
+
k.style.marginTop = "8px";
|
|
7243
|
+
let A = C("Left"), j = C("Top");
|
|
7244
|
+
k.append(A, j);
|
|
7245
|
+
let M = r.createElement("span");
|
|
7246
|
+
M.textContent = "px", M.style.color = "var(--msr-color-ink-500, #64748b)", k.append(M);
|
|
7247
|
+
let ee = r.createElement("button");
|
|
7248
|
+
ee.type = "button", ee.dataset.mesurerRecordingStart = "true", ee.textContent = "● Start recording", Ll(ee, {
|
|
7247
7249
|
width: "100%",
|
|
7248
7250
|
height: "28px",
|
|
7249
7251
|
"margin-top": "8px",
|
|
@@ -7255,44 +7257,44 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7255
7257
|
"font-size": "11px",
|
|
7256
7258
|
"font-weight": "500",
|
|
7257
7259
|
cursor: "pointer"
|
|
7258
|
-
}), x.append(
|
|
7259
|
-
let
|
|
7260
|
-
|
|
7260
|
+
}), x.append(ee);
|
|
7261
|
+
let N = r.createElement("div");
|
|
7262
|
+
N.dataset.mesurerRecordingGrid = "true", Ll(N, {
|
|
7261
7263
|
position: "absolute",
|
|
7262
7264
|
inset: "0",
|
|
7263
7265
|
display: "none",
|
|
7264
7266
|
"pointer-events": "none"
|
|
7265
|
-
}), v.append(
|
|
7266
|
-
let
|
|
7267
|
+
}), v.append(N);
|
|
7268
|
+
let P = (e) => {
|
|
7267
7269
|
let t = r.createElement("div");
|
|
7268
7270
|
Ll(t, {
|
|
7269
7271
|
position: "absolute",
|
|
7270
7272
|
opacity: "0.3",
|
|
7271
7273
|
...e
|
|
7272
|
-
}),
|
|
7274
|
+
}), N.append(t);
|
|
7273
7275
|
};
|
|
7274
|
-
|
|
7276
|
+
P({
|
|
7275
7277
|
left: "33.333%",
|
|
7276
7278
|
top: "0",
|
|
7277
7279
|
bottom: "0",
|
|
7278
7280
|
borderLeft: "1px dashed var(--msr-color-ink-500, #64748b)"
|
|
7279
|
-
}),
|
|
7281
|
+
}), P({
|
|
7280
7282
|
left: "66.666%",
|
|
7281
7283
|
top: "0",
|
|
7282
7284
|
bottom: "0",
|
|
7283
7285
|
borderLeft: "1px dashed var(--msr-color-ink-500, #64748b)"
|
|
7284
|
-
}),
|
|
7286
|
+
}), P({
|
|
7285
7287
|
top: "33.333%",
|
|
7286
7288
|
left: "0",
|
|
7287
7289
|
right: "0",
|
|
7288
7290
|
borderTop: "1px dashed var(--msr-color-ink-500, #64748b)"
|
|
7289
|
-
}),
|
|
7291
|
+
}), P({
|
|
7290
7292
|
top: "66.666%",
|
|
7291
7293
|
left: "0",
|
|
7292
7294
|
right: "0",
|
|
7293
7295
|
borderTop: "1px dashed var(--msr-color-ink-500, #64748b)"
|
|
7294
7296
|
});
|
|
7295
|
-
let
|
|
7297
|
+
let te = Object.entries({
|
|
7296
7298
|
nw: {
|
|
7297
7299
|
left: "0",
|
|
7298
7300
|
top: "0"
|
|
@@ -7464,8 +7466,8 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7464
7466
|
width: 0,
|
|
7465
7467
|
height: 0
|
|
7466
7468
|
});
|
|
7467
|
-
v.style.display = "none", v.style.pointerEvents = "none",
|
|
7468
|
-
for (let e of
|
|
7469
|
+
v.style.display = "none", v.style.pointerEvents = "none", N.style.display = "none";
|
|
7470
|
+
for (let e of te) e.style.display = "none";
|
|
7469
7471
|
y.style.display = "none", x.style.display = "none", b.textContent = "Drag to select a region · Esc to cancel";
|
|
7470
7472
|
return;
|
|
7471
7473
|
}
|
|
@@ -7490,14 +7492,14 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7490
7492
|
width: t,
|
|
7491
7493
|
height: Math.max(0, n - e.top - e.height)
|
|
7492
7494
|
}), v.style.display = "block", ve(v, e), K) {
|
|
7493
|
-
v.style.pointerEvents = "auto", v.style.cursor = "move",
|
|
7494
|
-
for (let e of
|
|
7495
|
-
y.style.display = "none", T.value = String(Math.round(e.width)), E.value = String(Math.round(e.height)),
|
|
7495
|
+
v.style.pointerEvents = "auto", v.style.cursor = "move", N.style.display = "block";
|
|
7496
|
+
for (let e of te) e.style.display = "block";
|
|
7497
|
+
y.style.display = "none", T.value = String(Math.round(e.width)), E.value = String(Math.round(e.height)), A.value = String(Math.round(e.left)), j.value = String(Math.round(e.top)), T.max = String(t), E.max = String(n), A.max = String(Math.max(0, t - e.width)), j.max = String(Math.max(0, n - e.height));
|
|
7496
7498
|
let r = Math.min(Math.max(118, e.left + e.width / 2), Math.max(118, t - 110 - 8)), i = e.top + e.height + 12, a = i + 112 <= n ? i : Math.max(8, e.top - 112);
|
|
7497
7499
|
x.style.left = `${r}px`, x.style.top = `${a}px`, x.style.display = "block", b.textContent = "Adjust region · Enter to start · Esc to cancel";
|
|
7498
7500
|
} else {
|
|
7499
|
-
v.style.pointerEvents = "none", v.style.cursor = "",
|
|
7500
|
-
for (let e of
|
|
7501
|
+
v.style.pointerEvents = "none", v.style.cursor = "", N.style.display = "none";
|
|
7502
|
+
for (let e of te) e.style.display = "none";
|
|
7501
7503
|
x.style.display = "none", y.style.display = "block", y.textContent = `${Math.round(e.width)} × ${Math.round(e.height)}`, ve(y, {
|
|
7502
7504
|
left: e.left + e.width / 2,
|
|
7503
7505
|
top: Math.min(n - 22, e.top + e.height + 6)
|
|
@@ -7513,8 +7515,8 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7513
7515
|
width: 0,
|
|
7514
7516
|
height: 0
|
|
7515
7517
|
});
|
|
7516
|
-
ve(_, e), _.style.display = "block", v.style.display = "none", y.style.display = "none", x.style.display = "none",
|
|
7517
|
-
for (let e of
|
|
7518
|
+
ve(_, e), _.style.display = "block", v.style.display = "none", y.style.display = "none", x.style.display = "none", N.style.display = "none", b.style.display = "none";
|
|
7519
|
+
for (let e of te) e.style.display = "none";
|
|
7518
7520
|
h.style.display = "block", h.style.pointerEvents = "none", h.style.cursor = "default";
|
|
7519
7521
|
}, we = () => {
|
|
7520
7522
|
u(!1), _.style.display = "none", h.style.display = "none", h.style.pointerEvents = "auto", h.style.cursor = "crosshair", b.style.removeProperty("display");
|
|
@@ -7845,7 +7847,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7845
7847
|
let t = e.target;
|
|
7846
7848
|
t instanceof Element && t.closest("[data-mesurer-recording-resize]") || Be(e, "move");
|
|
7847
7849
|
});
|
|
7848
|
-
for (let e of
|
|
7850
|
+
for (let e of te) e.addEventListener("pointerdown", (t) => {
|
|
7849
7851
|
Be(t, "resize", e.dataset.mesurerRecordingResize);
|
|
7850
7852
|
});
|
|
7851
7853
|
x.addEventListener("pointerdown", (e) => {
|
|
@@ -7860,7 +7862,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7860
7862
|
[t]: r
|
|
7861
7863
|
});
|
|
7862
7864
|
};
|
|
7863
|
-
T.addEventListener("change", () => Ke(T, "width")), E.addEventListener("change", () => Ke(E, "height")),
|
|
7865
|
+
T.addEventListener("change", () => Ke(T, "width")), E.addEventListener("change", () => Ke(E, "height")), A.addEventListener("change", () => Ke(A, "left")), j.addEventListener("change", () => Ke(j, "top")), ee.addEventListener("click", () => {
|
|
7864
7866
|
B.status === "selecting" && K && re && Ie(re).catch(() => void 0);
|
|
7865
7867
|
}), R.addEventListener("click", () => {
|
|
7866
7868
|
if (B.status === "recording") {
|
|
@@ -7948,14 +7950,14 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7948
7950
|
q = !0, ++le, V.clear(), h.removeEventListener("pointerdown", Ve), h.removeEventListener("pointermove", He), h.removeEventListener("pointerup", Ue), h.removeEventListener("pointercancel", We), i.removeEventListener("keydown", Ge, !0), ce && i.clearTimeout(ce), Ne.dispose(), Te(), _e(), ke(!0), s.dispose(), a.dispose();
|
|
7949
7951
|
});
|
|
7950
7952
|
}
|
|
7951
|
-
}), Kl = 144, ql = 96, Jl = 8, Yl = 4, Xl = 1800, Zl = (e, t) => {
|
|
7953
|
+
}), Kl = 144, ql = 96, Jl = 8, Yl = 4, Xl = 1800, Zl = 200, Ql = (e, t) => {
|
|
7952
7954
|
for (let [n, r] of Object.entries(t)) e.style.setProperty(n, r);
|
|
7953
|
-
},
|
|
7955
|
+
}, $l = (e, t) => ({
|
|
7954
7956
|
left: Math.min(Math.max(Jl, e.left), Math.max(Jl, t.innerWidth - Kl - Jl)),
|
|
7955
7957
|
top: Math.min(Math.max(Jl, e.top), Math.max(Jl, t.innerHeight - ql - Jl))
|
|
7956
|
-
}),
|
|
7958
|
+
}), eu = (e, t) => {
|
|
7957
7959
|
let n = e.createElement("button");
|
|
7958
|
-
return n.type = "button", n.textContent = t,
|
|
7960
|
+
return n.type = "button", n.textContent = t, Ql(n, {
|
|
7959
7961
|
height: "32px",
|
|
7960
7962
|
padding: "0 12px",
|
|
7961
7963
|
border: "1px solid rgb(255 255 255 / 18%)",
|
|
@@ -7967,11 +7969,11 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7967
7969
|
"font-weight": "500",
|
|
7968
7970
|
cursor: "pointer"
|
|
7969
7971
|
}), n;
|
|
7970
|
-
},
|
|
7972
|
+
}, tu = ({ 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", nu = (e) => e !== null && (e.nodeType === 1 || e.nodeType === 11), ru = ({ ownerDocument: e, ownerWindow: t, root: n, previewDurationMs: r }) => {
|
|
7971
7973
|
let i = n.closest("[data-mesurer-root='true']")?.parentNode ?? n.parentNode;
|
|
7972
|
-
if (!
|
|
7974
|
+
if (!nu(i)) throw Error("Screenshot preview requires a mounted Mesurer host.");
|
|
7973
7975
|
let a = e.createElement("div");
|
|
7974
|
-
a.dataset.mesurerInspectorUi = "true", a.dataset.mesurerScreenshotInteractive = "true",
|
|
7976
|
+
a.dataset.mesurerInspectorUi = "true", a.dataset.mesurerScreenshotInteractive = "true", Ql(a, {
|
|
7975
7977
|
position: "fixed",
|
|
7976
7978
|
left: "0",
|
|
7977
7979
|
top: "0",
|
|
@@ -7983,7 +7985,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7983
7985
|
"font-family": "ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif"
|
|
7984
7986
|
}), i.append(a);
|
|
7985
7987
|
let o = e.createElement("div");
|
|
7986
|
-
o.dataset.mesurerScreenshotPreview = "true", o.setAttribute("role", "button"), o.setAttribute("aria-label", "Open captured screenshot"), o.tabIndex = 0,
|
|
7988
|
+
o.dataset.mesurerScreenshotPreview = "true", o.setAttribute("role", "button"), o.setAttribute("aria-label", "Open captured screenshot"), o.tabIndex = 0, Ql(o, {
|
|
7987
7989
|
position: "fixed",
|
|
7988
7990
|
display: "none",
|
|
7989
7991
|
"z-index": "96",
|
|
@@ -8001,7 +8003,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8001
8003
|
"touch-action": "none"
|
|
8002
8004
|
});
|
|
8003
8005
|
let s = e.createElement("img");
|
|
8004
|
-
s.dataset.mesurerScreenshotPreviewImage = "true", s.alt = "Captured screenshot", s.draggable = !1, s.title = "Click to open · Right-click for browser image actions",
|
|
8006
|
+
s.dataset.mesurerScreenshotPreviewImage = "true", s.alt = "Captured screenshot", s.draggable = !1, s.title = "Click to open · Right-click for browser image actions", Ql(s, {
|
|
8005
8007
|
display: "block",
|
|
8006
8008
|
width: "100%",
|
|
8007
8009
|
height: "100%",
|
|
@@ -8009,7 +8011,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8009
8011
|
"background-color": "white"
|
|
8010
8012
|
}), o.append(s);
|
|
8011
8013
|
let c = e.createElement("button");
|
|
8012
|
-
c.dataset.mesurerScreenshotPreviewDismiss = "true", c.type = "button", c.setAttribute("aria-label", "Dismiss screenshot preview"), c.title = "Dismiss",
|
|
8014
|
+
c.dataset.mesurerScreenshotPreviewDismiss = "true", c.type = "button", c.setAttribute("aria-label", "Dismiss screenshot preview"), c.title = "Dismiss", Ql(c, {
|
|
8013
8015
|
position: "absolute",
|
|
8014
8016
|
top: "8px",
|
|
8015
8017
|
right: "8px",
|
|
@@ -8027,15 +8029,16 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8027
8029
|
"font-family": "inherit",
|
|
8028
8030
|
"font-size": "14px",
|
|
8029
8031
|
"line-height": "1",
|
|
8030
|
-
"z-index": "
|
|
8031
|
-
cursor: "pointer"
|
|
8032
|
+
"z-index": "2",
|
|
8033
|
+
cursor: "pointer",
|
|
8034
|
+
"touch-action": "none"
|
|
8032
8035
|
});
|
|
8033
8036
|
let l = e.createElementNS("http://www.w3.org/2000/svg", "svg");
|
|
8034
8037
|
l.setAttribute("viewBox", "0 0 16 16"), l.setAttribute("width", "12"), l.setAttribute("height", "12"), l.setAttribute("fill", "none"), l.setAttribute("aria-hidden", "true");
|
|
8035
8038
|
let u = e.createElementNS("http://www.w3.org/2000/svg", "path");
|
|
8036
8039
|
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);
|
|
8037
8040
|
let d = e.createElement("div");
|
|
8038
|
-
d.dataset.mesurerScreenshotViewer = "true", d.setAttribute("role", "dialog"), d.setAttribute("aria-modal", "true"), d.setAttribute("aria-label", "Screenshot viewer"),
|
|
8041
|
+
d.dataset.mesurerScreenshotViewer = "true", d.setAttribute("role", "dialog"), d.setAttribute("aria-modal", "true"), d.setAttribute("aria-label", "Screenshot viewer"), Ql(d, {
|
|
8039
8042
|
position: "fixed",
|
|
8040
8043
|
inset: "0",
|
|
8041
8044
|
display: "none",
|
|
@@ -8049,7 +8052,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8049
8052
|
"pointer-events": "auto"
|
|
8050
8053
|
});
|
|
8051
8054
|
let f = e.createElement("img");
|
|
8052
|
-
f.dataset.mesurerScreenshotViewerImage = "true", f.alt = "Captured screenshot",
|
|
8055
|
+
f.dataset.mesurerScreenshotViewerImage = "true", f.alt = "Captured screenshot", Ql(f, {
|
|
8053
8056
|
display: "block",
|
|
8054
8057
|
"max-width": "calc(100vw - 96px)",
|
|
8055
8058
|
"max-height": "calc(100vh - 112px)",
|
|
@@ -8060,7 +8063,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8060
8063
|
"box-shadow": "0 8px 30px rgb(0 0 0 / 28%)"
|
|
8061
8064
|
}), d.append(f);
|
|
8062
8065
|
let p = e.createElement("div");
|
|
8063
|
-
p.dataset.mesurerScreenshotViewerControls = "true",
|
|
8066
|
+
p.dataset.mesurerScreenshotViewerControls = "true", Ql(p, {
|
|
8064
8067
|
position: "fixed",
|
|
8065
8068
|
top: "16px",
|
|
8066
8069
|
right: "16px",
|
|
@@ -8068,14 +8071,14 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8068
8071
|
gap: "8px",
|
|
8069
8072
|
"pointer-events": "auto"
|
|
8070
8073
|
});
|
|
8071
|
-
let m =
|
|
8074
|
+
let m = eu(e, "Copy");
|
|
8072
8075
|
m.dataset.mesurerScreenshotViewerCopy = "true", m.setAttribute("aria-label", "Copy screenshot");
|
|
8073
|
-
let h =
|
|
8076
|
+
let h = eu(e, "Save");
|
|
8074
8077
|
h.dataset.mesurerScreenshotViewerSave = "true", h.setAttribute("aria-label", "Save screenshot");
|
|
8075
|
-
let g =
|
|
8078
|
+
let g = eu(e, "Close");
|
|
8076
8079
|
g.dataset.mesurerScreenshotViewerClose = "true", g.setAttribute("aria-label", "Close screenshot viewer"), p.append(m, h, g), d.append(p), a.append(d);
|
|
8077
8080
|
let _ = e.createElement("div");
|
|
8078
|
-
_.dataset.mesurerScreenshotToast = "true", _.setAttribute("role", "status"),
|
|
8081
|
+
_.dataset.mesurerScreenshotToast = "true", _.setAttribute("role", "status"), Ql(_, {
|
|
8079
8082
|
position: "fixed",
|
|
8080
8083
|
left: "50%",
|
|
8081
8084
|
bottom: "20px",
|
|
@@ -8090,45 +8093,64 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8090
8093
|
"font-weight": "500",
|
|
8091
8094
|
"pointer-events": "none"
|
|
8092
8095
|
}), a.append(_);
|
|
8093
|
-
let v = null, y = null, b = null, x = null, S = 0, C = 0, w = !1,
|
|
8096
|
+
let v = null, y = null, b = null, x = null, S = 0, C = 0, w = null, T = !1, E = () => {
|
|
8094
8097
|
S && t.clearTimeout(S), S = 0;
|
|
8095
|
-
},
|
|
8098
|
+
}, D = () => {
|
|
8096
8099
|
C && t.clearTimeout(C), C = 0;
|
|
8097
|
-
},
|
|
8098
|
-
|
|
8100
|
+
}, O = (e, n = !1) => {
|
|
8101
|
+
D(), _.textContent = e, _.style.backgroundColor = n ? "#b42318" : "rgb(28 28 30 / 90%)", _.style.display = "block", C = t.setTimeout(() => {
|
|
8099
8102
|
C = 0, _.style.display = "none";
|
|
8100
8103
|
}, Xl);
|
|
8101
|
-
},
|
|
8104
|
+
}, k = () => {
|
|
8102
8105
|
d.style.display = "none";
|
|
8103
|
-
},
|
|
8106
|
+
}, A = () => {
|
|
8104
8107
|
y && globalThis.URL.revokeObjectURL(y), y = null, v = null, s.removeAttribute("src"), f.removeAttribute("src");
|
|
8105
|
-
},
|
|
8106
|
-
|
|
8107
|
-
},
|
|
8108
|
+
}, j = () => {
|
|
8109
|
+
E(), k(), w &&= (w.cancel(), null), o.style.display = "none", o.style.opacity = "1", o.style.transform = "none", o.style.removeProperty("will-change"), o.style.pointerEvents = "auto", A();
|
|
8110
|
+
}, M = () => {
|
|
8111
|
+
if (!v || o.style.display === "none" || w) return;
|
|
8112
|
+
E(), k();
|
|
8113
|
+
let e = o.getBoundingClientRect(), n = Math.max(152, t.innerWidth - e.left + Jl);
|
|
8114
|
+
o.style.pointerEvents = "none", o.style.willChange = "transform, opacity";
|
|
8115
|
+
let r = o.animate([{
|
|
8116
|
+
transform: "translateX(0) scale(1)",
|
|
8117
|
+
opacity: 1
|
|
8118
|
+
}, {
|
|
8119
|
+
transform: `translateX(${n}px) scale(0.92)`,
|
|
8120
|
+
opacity: 0
|
|
8121
|
+
}], {
|
|
8122
|
+
duration: Zl,
|
|
8123
|
+
easing: "ease",
|
|
8124
|
+
fill: "forwards"
|
|
8125
|
+
});
|
|
8126
|
+
w = r, r.finished.catch(() => void 0).then(() => {
|
|
8127
|
+
w === r && (r.cancel(), w = null, j());
|
|
8128
|
+
});
|
|
8129
|
+
}, ee = () => $l({
|
|
8108
8130
|
left: t.innerWidth - Kl - Jl,
|
|
8109
8131
|
top: t.innerHeight - ql - Jl
|
|
8110
|
-
}, t),
|
|
8111
|
-
let n =
|
|
8132
|
+
}, t), N = (e) => {
|
|
8133
|
+
let n = $l(e, t);
|
|
8112
8134
|
b = n, o.style.left = `${n.left}px`, o.style.top = `${n.top}px`;
|
|
8113
|
-
},
|
|
8114
|
-
!v || !y || (
|
|
8115
|
-
},
|
|
8135
|
+
}, P = () => {
|
|
8136
|
+
!v || !y || (E(), d.style.display = "flex", g.focus());
|
|
8137
|
+
}, te = async () => {
|
|
8116
8138
|
let e = v;
|
|
8117
8139
|
if (e) try {
|
|
8118
|
-
await Ar(Promise.resolve(e), t),
|
|
8140
|
+
await Ar(Promise.resolve(e), t), O("Copied screenshot");
|
|
8119
8141
|
} catch {
|
|
8120
|
-
|
|
8142
|
+
O("Could not copy screenshot", !0);
|
|
8121
8143
|
}
|
|
8122
|
-
},
|
|
8144
|
+
}, F = () => {
|
|
8123
8145
|
let n = v;
|
|
8124
8146
|
if (n) try {
|
|
8125
|
-
Mr(n, jr(), e, t),
|
|
8147
|
+
Mr(n, jr(), e, t), O("Saved screenshot");
|
|
8126
8148
|
} catch {
|
|
8127
|
-
|
|
8149
|
+
O("Could not save screenshot", !0);
|
|
8128
8150
|
}
|
|
8129
|
-
},
|
|
8151
|
+
}, I = (e, t, n) => {
|
|
8130
8152
|
if (!v) return !1;
|
|
8131
|
-
|
|
8153
|
+
E();
|
|
8132
8154
|
let r = o.getBoundingClientRect();
|
|
8133
8155
|
return x = {
|
|
8134
8156
|
pointerId: n,
|
|
@@ -8138,73 +8160,73 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8138
8160
|
top: r.top,
|
|
8139
8161
|
moved: !1
|
|
8140
8162
|
}, o.style.cursor = "grabbing", !0;
|
|
8141
|
-
},
|
|
8163
|
+
}, L = (e, t) => {
|
|
8142
8164
|
let n = x;
|
|
8143
8165
|
if (!n) return;
|
|
8144
8166
|
let r = e - n.startX, i = t - n.startY;
|
|
8145
|
-
!n.moved && Math.hypot(r, i) >= Yl && (n.moved = !0), n.moved &&
|
|
8167
|
+
!n.moved && Math.hypot(r, i) >= Yl && (n.moved = !0), n.moved && N({
|
|
8146
8168
|
left: n.left + r,
|
|
8147
8169
|
top: n.top + i
|
|
8148
8170
|
});
|
|
8149
|
-
},
|
|
8171
|
+
}, R = () => {
|
|
8150
8172
|
let e = x;
|
|
8151
|
-
e && (x = null, o.style.cursor = "grab", e.moved ||
|
|
8152
|
-
},
|
|
8173
|
+
e && (x = null, o.style.cursor = "grab", e.moved || P());
|
|
8174
|
+
}, z = () => {
|
|
8153
8175
|
x && (x = null, o.style.cursor = "grab");
|
|
8154
|
-
}, R = (e) => {
|
|
8155
|
-
e.button !== 0 || !P(e.clientX, e.clientY, null) || e.preventDefault();
|
|
8156
|
-
}, z = (e) => {
|
|
8157
|
-
x?.pointerId === null && F(e.clientX, e.clientY);
|
|
8158
8176
|
}, B = (e) => {
|
|
8159
|
-
e.button
|
|
8177
|
+
e.button !== 0 || !I(e.clientX, e.clientY, null) || e.preventDefault();
|
|
8160
8178
|
}, V = (e) => {
|
|
8161
|
-
|
|
8179
|
+
x?.pointerId === null && L(e.clientX, e.clientY);
|
|
8162
8180
|
}, H = (e) => {
|
|
8163
|
-
|
|
8164
|
-
t != null && t === e.pointerId && F(e.clientX, e.clientY);
|
|
8181
|
+
e.button === 0 && x?.pointerId === null && R();
|
|
8165
8182
|
}, U = (e) => {
|
|
8166
|
-
|
|
8167
|
-
t != null && t === e.pointerId && (o.hasPointerCapture?.(e.pointerId) && o.releasePointerCapture(e.pointerId), I());
|
|
8183
|
+
e.pointerType !== "mouse" && e.button === 0 && I(e.clientX, e.clientY, e.pointerId) && (o.setPointerCapture?.(e.pointerId), e.preventDefault());
|
|
8168
8184
|
}, W = (e) => {
|
|
8169
8185
|
let t = x?.pointerId;
|
|
8170
|
-
t != null && t === e.pointerId && (
|
|
8186
|
+
t != null && t === e.pointerId && L(e.clientX, e.clientY);
|
|
8171
8187
|
}, G = (e) => {
|
|
8172
|
-
|
|
8188
|
+
let t = x?.pointerId;
|
|
8189
|
+
t != null && t === e.pointerId && (o.hasPointerCapture?.(e.pointerId) && o.releasePointerCapture(e.pointerId), R());
|
|
8173
8190
|
}, ne = (e) => {
|
|
8174
|
-
|
|
8191
|
+
let t = x?.pointerId;
|
|
8192
|
+
t != null && t === e.pointerId && (o.hasPointerCapture?.(e.pointerId) && o.releasePointerCapture(e.pointerId), z());
|
|
8175
8193
|
}, re = (e) => {
|
|
8176
|
-
e.
|
|
8194
|
+
(e.key === "Enter" || e.key === " ") && (e.preventDefault(), P());
|
|
8177
8195
|
}, K = (e) => {
|
|
8178
|
-
e.
|
|
8196
|
+
e.target !== s && e.preventDefault();
|
|
8197
|
+
}, ie = (e) => {
|
|
8198
|
+
e.target === d && k();
|
|
8199
|
+
}, ae = (e) => {
|
|
8200
|
+
e.key === "Escape" && d.style.display !== "none" && (e.preventDefault(), e.stopImmediatePropagation(), k());
|
|
8179
8201
|
};
|
|
8180
8202
|
return c.addEventListener("pointerdown", (e) => e.stopPropagation()), c.addEventListener("mousedown", (e) => e.stopPropagation()), c.addEventListener("click", (e) => {
|
|
8181
|
-
e.stopPropagation(),
|
|
8182
|
-
}), o.addEventListener("mousedown",
|
|
8183
|
-
|
|
8184
|
-
}), h.addEventListener("click",
|
|
8203
|
+
e.stopPropagation(), M();
|
|
8204
|
+
}), o.addEventListener("mousedown", B), o.addEventListener("pointerdown", U), o.addEventListener("keydown", re), o.addEventListener("contextmenu", K), d.addEventListener("click", ie), m.addEventListener("click", () => {
|
|
8205
|
+
te();
|
|
8206
|
+
}), h.addEventListener("click", F), g.addEventListener("click", k), t.addEventListener("mousemove", V, !0), t.addEventListener("mouseup", H, !0), t.addEventListener("pointermove", W, !0), t.addEventListener("pointerup", G, !0), t.addEventListener("pointercancel", ne, !0), t.addEventListener("keydown", ae, !0), {
|
|
8185
8207
|
show(e, n) {
|
|
8186
|
-
if (
|
|
8187
|
-
|
|
8208
|
+
if (T) return;
|
|
8209
|
+
E(), k(), w &&= (w.cancel(), null), o.style.opacity = "1", o.style.transform = "none", o.style.removeProperty("will-change"), o.style.pointerEvents = "auto", A(), v = e;
|
|
8188
8210
|
let i = globalThis.URL.createObjectURL(e);
|
|
8189
|
-
y = i, s.src = i, f.src = i, o.style.display = "block",
|
|
8211
|
+
y = i, s.src = i, f.src = i, o.style.display = "block", N(b ?? ee()), O(tu(n)), r > 0 && (S = t.setTimeout(j, r));
|
|
8190
8212
|
},
|
|
8191
|
-
dismiss:
|
|
8213
|
+
dismiss: j,
|
|
8192
8214
|
dispose() {
|
|
8193
|
-
|
|
8215
|
+
T || (T = !0, E(), D(), j(), t.removeEventListener("mousemove", V, !0), t.removeEventListener("mouseup", H, !0), t.removeEventListener("pointermove", W, !0), t.removeEventListener("pointerup", G, !0), t.removeEventListener("pointercancel", ne, !0), t.removeEventListener("keydown", ae, !0), o.removeEventListener("mousedown", B), o.removeEventListener("pointerdown", U), o.removeEventListener("keydown", re), o.removeEventListener("contextmenu", K), d.removeEventListener("click", ie), a.remove());
|
|
8194
8216
|
}
|
|
8195
8217
|
};
|
|
8196
|
-
},
|
|
8218
|
+
}, iu = "mesurer.screenshot", au = "screenshot", ou = "mesurer.screenshot.settings", su = "mesurer.screenshot.active", cu = "runtime:solid", lu = "screenshot.toggle", uu = 2500, du = 0, fu = [
|
|
8197
8219
|
"[data-mesurer-measurement='true']",
|
|
8198
8220
|
"[data-mesurer-selected-measurement='true']",
|
|
8199
8221
|
"[data-mesurer-selection-spacing-target='true']",
|
|
8200
8222
|
"[data-mesurer-guide='true']",
|
|
8201
8223
|
"[data-mesurer-distance='true']"
|
|
8202
|
-
].join(","),
|
|
8224
|
+
].join(","), pu = `${fu},[data-mesurer-rulers='true']`, mu = {
|
|
8203
8225
|
viewBox: "0 0 256 256",
|
|
8204
8226
|
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"]
|
|
8205
|
-
}, mu = (e, t) => {
|
|
8206
|
-
for (let [n, r] of Object.entries(t)) e.style.setProperty(n, r);
|
|
8207
8227
|
}, hu = (e, t) => {
|
|
8228
|
+
for (let [n, r] of Object.entries(t)) e.style.setProperty(n, r);
|
|
8229
|
+
}, gu = (e, t) => {
|
|
8208
8230
|
for (let n of [
|
|
8209
8231
|
"left",
|
|
8210
8232
|
"top",
|
|
@@ -8216,63 +8238,63 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8216
8238
|
let r = t[n];
|
|
8217
8239
|
r === void 0 ? e.style.removeProperty(n) : e.style.setProperty(n, `${r}px`);
|
|
8218
8240
|
}
|
|
8219
|
-
},
|
|
8220
|
-
let t = e(
|
|
8241
|
+
}, _u = (e) => {
|
|
8242
|
+
let t = e(ou);
|
|
8221
8243
|
return {
|
|
8222
8244
|
toolEnabled: t?.toolEnabled ?? !0,
|
|
8223
8245
|
copy: t?.copy ?? !0,
|
|
8224
8246
|
download: t?.download ?? !1,
|
|
8225
8247
|
includeMeasurements: t?.includeMeasurements ?? !1
|
|
8226
8248
|
};
|
|
8227
|
-
},
|
|
8249
|
+
}, vu = (e) => ({
|
|
8228
8250
|
value: e.style.getPropertyValue("display"),
|
|
8229
8251
|
priority: e.style.getPropertyPriority("display")
|
|
8230
|
-
}),
|
|
8252
|
+
}), yu = (e, t) => {
|
|
8231
8253
|
t.value || t.priority ? e.style.setProperty("display", t.value, t.priority) : e.style.removeProperty("display");
|
|
8232
|
-
},
|
|
8254
|
+
}, bu = (e, t) => {
|
|
8233
8255
|
let n = e;
|
|
8234
8256
|
for (; n.parentElement && n.parentElement !== t;) n = n.parentElement;
|
|
8235
8257
|
return n.parentElement === t ? n : null;
|
|
8236
|
-
},
|
|
8258
|
+
}, xu = (e) => {
|
|
8237
8259
|
let t = e.querySelector("[data-mesurer-root='true']");
|
|
8238
8260
|
if (!t) return () => void 0;
|
|
8239
8261
|
let n = /* @__PURE__ */ new Set();
|
|
8240
8262
|
for (let e of t.querySelectorAll("[data-mesurer-rulers='true']")) {
|
|
8241
|
-
let r =
|
|
8263
|
+
let r = bu(e, t);
|
|
8242
8264
|
r && n.add(r);
|
|
8243
8265
|
}
|
|
8244
|
-
for (let e of t.querySelectorAll(
|
|
8245
|
-
let r =
|
|
8266
|
+
for (let e of t.querySelectorAll(fu)) {
|
|
8267
|
+
let r = bu(e, t);
|
|
8246
8268
|
r && n.add(r);
|
|
8247
8269
|
}
|
|
8248
8270
|
let r = [];
|
|
8249
8271
|
for (let e of n) e.dataset.mesurerInspectorUi !== "true" && (r.push({
|
|
8250
8272
|
element: e,
|
|
8251
|
-
display:
|
|
8273
|
+
display: vu(e)
|
|
8252
8274
|
}), e.style.setProperty("display", "none", "important"));
|
|
8253
8275
|
return () => {
|
|
8254
|
-
for (let e of r)
|
|
8276
|
+
for (let e of r) yu(e.element, e.display);
|
|
8255
8277
|
};
|
|
8256
|
-
},
|
|
8278
|
+
}, Su = (e) => Array.from(e.querySelectorAll(pu)).filter((e) => e.dataset.mesurerInspectorUi === "true").map((e) => ({
|
|
8257
8279
|
element: e,
|
|
8258
|
-
display:
|
|
8259
|
-
})),
|
|
8260
|
-
for (let t of e) t.element.isConnected &&
|
|
8261
|
-
},
|
|
8262
|
-
id:
|
|
8280
|
+
display: vu(e)
|
|
8281
|
+
})), Cu = (e) => {
|
|
8282
|
+
for (let t of e) t.element.isConnected && yu(t.element, t.display);
|
|
8283
|
+
}, wu = (e = {}) => hr({
|
|
8284
|
+
id: iu,
|
|
8263
8285
|
version: "0.1.0",
|
|
8264
|
-
requires: [
|
|
8286
|
+
requires: [cu],
|
|
8265
8287
|
provides: [
|
|
8266
8288
|
"tool:screenshot",
|
|
8267
8289
|
"capture:screenshot",
|
|
8268
8290
|
"settings:screenshot"
|
|
8269
8291
|
],
|
|
8270
8292
|
setup(t) {
|
|
8271
|
-
let n = t.service.get(
|
|
8293
|
+
let n = t.service.get(cu);
|
|
8272
8294
|
if (!n) throw Error("Screenshot plugin requires the Solid renderer runtime.");
|
|
8273
|
-
let { ownerDocument: r, ownerWindow: i } = n, a = n.createWorkspaceRuntime(), o = n.createInspectorMount(), s = e.capture ?? e.captureVisibleTab, c = s ?? Zr, l = e.previewDurationMs ??
|
|
8295
|
+
let { ownerDocument: r, ownerWindow: i } = n, a = n.createWorkspaceRuntime(), o = n.createInspectorMount(), s = e.capture ?? e.captureVisibleTab, c = s ?? Zr, l = e.previewDurationMs ?? du;
|
|
8274
8296
|
t.state.register({
|
|
8275
|
-
id:
|
|
8297
|
+
id: ou,
|
|
8276
8298
|
initial: {
|
|
8277
8299
|
toolEnabled: e.toolEnabled ?? !0,
|
|
8278
8300
|
copy: e.copy ?? !0,
|
|
@@ -8281,11 +8303,11 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8281
8303
|
},
|
|
8282
8304
|
persist: !0
|
|
8283
8305
|
}), t.state.register({
|
|
8284
|
-
id:
|
|
8306
|
+
id: su,
|
|
8285
8307
|
initial: !1
|
|
8286
8308
|
});
|
|
8287
8309
|
let u = o.element;
|
|
8288
|
-
u.dataset.mesurerScreenshot = "true",
|
|
8310
|
+
u.dataset.mesurerScreenshot = "true", hu(u, {
|
|
8289
8311
|
position: "fixed",
|
|
8290
8312
|
inset: "0",
|
|
8291
8313
|
"z-index": "85",
|
|
@@ -8293,7 +8315,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8293
8315
|
"font-family": "ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif"
|
|
8294
8316
|
});
|
|
8295
8317
|
let d = r.createElement("div");
|
|
8296
|
-
d.dataset.mesurerScreenshotSelect = "true", d.setAttribute("role", "application"), d.setAttribute("aria-label", "Screenshot selection"),
|
|
8318
|
+
d.dataset.mesurerScreenshotSelect = "true", d.setAttribute("role", "application"), d.setAttribute("aria-label", "Screenshot selection"), hu(d, {
|
|
8297
8319
|
position: "fixed",
|
|
8298
8320
|
inset: "0",
|
|
8299
8321
|
display: "none",
|
|
@@ -8305,13 +8327,13 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8305
8327
|
}), u.append(d);
|
|
8306
8328
|
let f = Array.from({ length: 4 }, () => {
|
|
8307
8329
|
let e = r.createElement("div");
|
|
8308
|
-
return
|
|
8330
|
+
return hu(e, {
|
|
8309
8331
|
position: "fixed",
|
|
8310
8332
|
"background-color": "rgb(0 0 0 / 40%)",
|
|
8311
8333
|
"pointer-events": "none"
|
|
8312
8334
|
}), d.append(e), e;
|
|
8313
8335
|
}), p = r.createElement("div");
|
|
8314
|
-
|
|
8336
|
+
hu(p, {
|
|
8315
8337
|
position: "fixed",
|
|
8316
8338
|
display: "none",
|
|
8317
8339
|
border: "1px solid #0d99ff",
|
|
@@ -8319,7 +8341,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8319
8341
|
"pointer-events": "none"
|
|
8320
8342
|
}), d.append(p);
|
|
8321
8343
|
let m = r.createElement("div");
|
|
8322
|
-
|
|
8344
|
+
hu(m, {
|
|
8323
8345
|
position: "fixed",
|
|
8324
8346
|
display: "none",
|
|
8325
8347
|
"z-index": "86",
|
|
@@ -8333,7 +8355,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8333
8355
|
"pointer-events": "none"
|
|
8334
8356
|
}), d.append(m);
|
|
8335
8357
|
let h = r.createElement("div");
|
|
8336
|
-
h.textContent = "Drag to select · Esc to cancel",
|
|
8358
|
+
h.textContent = "Drag to select · Esc to cancel", hu(h, {
|
|
8337
8359
|
position: "fixed",
|
|
8338
8360
|
left: "50%",
|
|
8339
8361
|
bottom: "16px",
|
|
@@ -8346,7 +8368,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8346
8368
|
"pointer-events": "none"
|
|
8347
8369
|
}), d.append(h);
|
|
8348
8370
|
let g = r.createElement("div");
|
|
8349
|
-
g.dataset.mesurerScreenshotError = "true", g.setAttribute("role", "status"), g.textContent = "Could not save screenshot",
|
|
8371
|
+
g.dataset.mesurerScreenshotError = "true", g.setAttribute("role", "status"), g.textContent = "Could not save screenshot", hu(g, {
|
|
8350
8372
|
position: "fixed",
|
|
8351
8373
|
display: "none",
|
|
8352
8374
|
"z-index": "97",
|
|
@@ -8357,8 +8379,8 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8357
8379
|
"font-size": "11px",
|
|
8358
8380
|
"pointer-events": "none"
|
|
8359
8381
|
}), u.append(g);
|
|
8360
|
-
let _ = null, v = null, y = 0, b = 0, x = !1, S = !1, C = !1, w = () => t.state.get("mesurer.screenshot.active") ?? !1, T = () =>
|
|
8361
|
-
t.state.update(
|
|
8382
|
+
let _ = null, v = null, y = 0, b = 0, x = !1, S = !1, C = !1, w = () => t.state.get("mesurer.screenshot.active") ?? !1, T = () => _u(t.state.get), E = (e) => {
|
|
8383
|
+
t.state.update(ou, (t) => {
|
|
8362
8384
|
let n = { ...t };
|
|
8363
8385
|
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;
|
|
8364
8386
|
});
|
|
@@ -8374,20 +8396,20 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8374
8396
|
priority: e.style.getPropertyPriority("visibility")
|
|
8375
8397
|
}
|
|
8376
8398
|
}, e.style.setProperty("visibility", "hidden", "important"));
|
|
8377
|
-
},
|
|
8399
|
+
}, k = () => {
|
|
8378
8400
|
if (!v) return;
|
|
8379
8401
|
let { element: e, visibility: t } = v;
|
|
8380
8402
|
v = null, t.value || t.priority ? e.style.setProperty("visibility", t.value, t.priority) : e.style.removeProperty("visibility");
|
|
8381
|
-
},
|
|
8403
|
+
}, A = (e) => {
|
|
8382
8404
|
let t = i.innerWidth, n = i.innerHeight;
|
|
8383
8405
|
if (!e || e.width <= 0 || e.height <= 0) {
|
|
8384
|
-
|
|
8406
|
+
gu(f[0], {
|
|
8385
8407
|
left: 0,
|
|
8386
8408
|
top: 0,
|
|
8387
8409
|
width: t,
|
|
8388
8410
|
height: n
|
|
8389
8411
|
});
|
|
8390
|
-
for (let e of f.slice(1))
|
|
8412
|
+
for (let e of f.slice(1)) gu(e, {
|
|
8391
8413
|
left: 0,
|
|
8392
8414
|
top: 0,
|
|
8393
8415
|
width: 0,
|
|
@@ -8396,52 +8418,52 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8396
8418
|
p.style.display = "none", m.style.display = "none";
|
|
8397
8419
|
return;
|
|
8398
8420
|
}
|
|
8399
|
-
|
|
8421
|
+
gu(f[0], {
|
|
8400
8422
|
left: 0,
|
|
8401
8423
|
top: 0,
|
|
8402
8424
|
width: t,
|
|
8403
8425
|
height: e.top
|
|
8404
|
-
}),
|
|
8426
|
+
}), gu(f[1], {
|
|
8405
8427
|
left: 0,
|
|
8406
8428
|
top: e.top,
|
|
8407
8429
|
width: e.left,
|
|
8408
8430
|
height: e.height
|
|
8409
|
-
}),
|
|
8431
|
+
}), gu(f[2], {
|
|
8410
8432
|
left: e.left + e.width,
|
|
8411
8433
|
top: e.top,
|
|
8412
8434
|
width: Math.max(0, t - e.left - e.width),
|
|
8413
8435
|
height: e.height
|
|
8414
|
-
}),
|
|
8436
|
+
}), gu(f[3], {
|
|
8415
8437
|
left: 0,
|
|
8416
8438
|
top: e.top + e.height,
|
|
8417
8439
|
width: t,
|
|
8418
8440
|
height: Math.max(0, n - e.top - e.height)
|
|
8419
|
-
}), p.style.display = "block",
|
|
8441
|
+
}), p.style.display = "block", gu(p, e), m.style.display = "block", m.textContent = `${Math.round(e.width)} × ${Math.round(e.height)}`, gu(m, {
|
|
8420
8442
|
left: e.left + e.width / 2,
|
|
8421
8443
|
top: Math.min(n - 22, e.top + e.height + 6)
|
|
8422
8444
|
});
|
|
8423
|
-
},
|
|
8445
|
+
}, j = () => n.portalTarget.querySelector("[data-mesurer-tool-id='screenshot']")?.getBoundingClientRect() ?? null, M = ru({
|
|
8424
8446
|
ownerDocument: r,
|
|
8425
8447
|
ownerWindow: i,
|
|
8426
8448
|
root: u,
|
|
8427
8449
|
previewDurationMs: l
|
|
8428
|
-
}),
|
|
8429
|
-
let t =
|
|
8450
|
+
}), ee = (e) => {
|
|
8451
|
+
let t = j(), n = Math.max(140, e.offsetWidth || 140), r = Math.max(26, e.offsetHeight || 26), a = t ? Math.min(i.innerWidth - n - 8, Math.max(8, t.left + t.width / 2 - n / 2)) : 8, o = t ? t.bottom + 8 : 8, s = o + r <= i.innerHeight - 8 ? o : Math.max(8, (t?.top ?? i.innerHeight) - r - 8);
|
|
8430
8452
|
e.style.left = `${a}px`, e.style.top = `${s}px`;
|
|
8431
|
-
}, M = () => {
|
|
8432
|
-
y && i.clearTimeout(y), g.style.display = "block", te(g), y = i.setTimeout(() => {
|
|
8433
|
-
y = 0, g.style.display = "none";
|
|
8434
|
-
}, lu);
|
|
8435
8453
|
}, N = () => {
|
|
8436
|
-
|
|
8454
|
+
y && i.clearTimeout(y), g.style.display = "block", ee(g), y = i.setTimeout(() => {
|
|
8455
|
+
y = 0, g.style.display = "none";
|
|
8456
|
+
}, uu);
|
|
8437
8457
|
}, P = () => {
|
|
8438
|
-
|
|
8458
|
+
_ = null, A(null), d.style.visibility = "", d.style.display = "none", u.style.pointerEvents = "none", D(!1), k();
|
|
8459
|
+
}, te = () => {
|
|
8460
|
+
b += 1, P(), Qr(i);
|
|
8439
8461
|
}, F = async (e) => {
|
|
8440
8462
|
if (x) throw Error("A screenshot capture is already running.");
|
|
8441
8463
|
if (e.width < 4 || e.height < 4) throw Error("Screenshot selection must be at least 4px by 4px.");
|
|
8442
8464
|
x = !0;
|
|
8443
|
-
let o = ++b, s = T(), l = s.includeMeasurements ?
|
|
8444
|
-
a.prepareCapture(), s.includeMeasurements &&
|
|
8465
|
+
let o = ++b, s = T(), l = s.includeMeasurements ? Su(r) : [], u = s.includeMeasurements ? () => void 0 : xu(n.portalTarget);
|
|
8466
|
+
a.prepareCapture(), s.includeMeasurements && Cu(l);
|
|
8445
8467
|
try {
|
|
8446
8468
|
d.style.visibility = "hidden", await Nr(i);
|
|
8447
8469
|
let n = await kr(await c({
|
|
@@ -8458,7 +8480,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8458
8480
|
Mr(n, jr(), r, i), l = !0;
|
|
8459
8481
|
}) : Promise.resolve(), p = await Promise.allSettled([u, f]), m = s.copy && p[0]?.status === "rejected", h = s.download && p[1]?.status === "rejected";
|
|
8460
8482
|
if (b !== o) throw Error("Screenshot capture was cancelled.");
|
|
8461
|
-
return
|
|
8483
|
+
return M.show(n, {
|
|
8462
8484
|
copied: a,
|
|
8463
8485
|
downloaded: l,
|
|
8464
8486
|
copyFailed: m,
|
|
@@ -8474,23 +8496,23 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8474
8496
|
downloaded: l
|
|
8475
8497
|
};
|
|
8476
8498
|
} catch (e) {
|
|
8477
|
-
throw b === o &&
|
|
8499
|
+
throw b === o && N(), e;
|
|
8478
8500
|
} finally {
|
|
8479
8501
|
d.style.visibility = "", u(), a.finishCapture(), x = !1;
|
|
8480
8502
|
}
|
|
8481
8503
|
}, I = async () => {
|
|
8482
8504
|
if (T().toolEnabled) {
|
|
8483
8505
|
if (w()) {
|
|
8484
|
-
|
|
8506
|
+
te();
|
|
8485
8507
|
return;
|
|
8486
8508
|
}
|
|
8487
8509
|
if (!S) {
|
|
8488
|
-
S = !0,
|
|
8510
|
+
S = !0, M.dismiss();
|
|
8489
8511
|
try {
|
|
8490
8512
|
if (s || await Xr(r, i), C) return;
|
|
8491
|
-
O(),
|
|
8513
|
+
O(), A(null), d.style.visibility = "visible", u.style.pointerEvents = "auto", d.style.display = "block", D(!0);
|
|
8492
8514
|
} catch (e) {
|
|
8493
|
-
throw e instanceof Error && e.name === "AbortError" ||
|
|
8515
|
+
throw e instanceof Error && e.name === "AbortError" || N(), e;
|
|
8494
8516
|
} finally {
|
|
8495
8517
|
S = !1;
|
|
8496
8518
|
}
|
|
@@ -8500,12 +8522,12 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8500
8522
|
!w() || e.button !== 0 || (e.preventDefault(), e.stopPropagation(), _ = {
|
|
8501
8523
|
x: e.clientX,
|
|
8502
8524
|
y: e.clientY
|
|
8503
|
-
},
|
|
8525
|
+
}, A(Or(_, _, {
|
|
8504
8526
|
width: i.innerWidth,
|
|
8505
8527
|
height: i.innerHeight
|
|
8506
8528
|
})), d.setPointerCapture?.(e.pointerId));
|
|
8507
8529
|
}, R = (e) => {
|
|
8508
|
-
!w() || !_ ||
|
|
8530
|
+
!w() || !_ || A(Or(_, {
|
|
8509
8531
|
x: e.clientX,
|
|
8510
8532
|
y: e.clientY
|
|
8511
8533
|
}, {
|
|
@@ -8523,17 +8545,17 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8523
8545
|
width: i.innerWidth,
|
|
8524
8546
|
height: i.innerHeight
|
|
8525
8547
|
});
|
|
8526
|
-
if (
|
|
8527
|
-
|
|
8548
|
+
if (A(n), n.width < 4 || n.height < 4) {
|
|
8549
|
+
A(null);
|
|
8528
8550
|
return;
|
|
8529
8551
|
}
|
|
8530
8552
|
F(n).catch(() => void 0).finally(() => {
|
|
8531
|
-
w() &&
|
|
8553
|
+
w() && P();
|
|
8532
8554
|
});
|
|
8533
8555
|
}, B = (e) => {
|
|
8534
|
-
_ = null, d.hasPointerCapture?.(e.pointerId) && d.releasePointerCapture(e.pointerId),
|
|
8556
|
+
_ = null, d.hasPointerCapture?.(e.pointerId) && d.releasePointerCapture(e.pointerId), A(null);
|
|
8535
8557
|
}, V = (e) => {
|
|
8536
|
-
e.key !== "Escape" || !w() || (e.preventDefault(), e.stopImmediatePropagation(),
|
|
8558
|
+
e.key !== "Escape" || !w() || (e.preventDefault(), e.stopImmediatePropagation(), te());
|
|
8537
8559
|
};
|
|
8538
8560
|
d.addEventListener("pointerdown", L), d.addEventListener("pointermove", R), d.addEventListener("pointerup", z), d.addEventListener("pointercancel", B), i.addEventListener("keydown", V, !0);
|
|
8539
8561
|
let H = {
|
|
@@ -8541,7 +8563,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8541
8563
|
settings: T,
|
|
8542
8564
|
setSettings: E,
|
|
8543
8565
|
start: I,
|
|
8544
|
-
cancel:
|
|
8566
|
+
cancel: te,
|
|
8545
8567
|
capture: F
|
|
8546
8568
|
};
|
|
8547
8569
|
t.tool.register({
|
|
@@ -8549,10 +8571,10 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8549
8571
|
label: "Screenshot",
|
|
8550
8572
|
shortcut: "Shift+S",
|
|
8551
8573
|
order: 70,
|
|
8552
|
-
command:
|
|
8574
|
+
command: lu,
|
|
8553
8575
|
toolbarMode: "select",
|
|
8554
8576
|
compactPinned: !0,
|
|
8555
|
-
icon:
|
|
8577
|
+
icon: mu,
|
|
8556
8578
|
active: w,
|
|
8557
8579
|
hidden: () => !T().toolEnabled,
|
|
8558
8580
|
menu: {
|
|
@@ -8590,7 +8612,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8590
8612
|
description: "Show the camera tool in the toolbar.",
|
|
8591
8613
|
value: () => T().toolEnabled,
|
|
8592
8614
|
set: (e) => {
|
|
8593
|
-
E({ toolEnabled: e }), !e && w() &&
|
|
8615
|
+
E({ toolEnabled: e }), !e && w() && te();
|
|
8594
8616
|
}
|
|
8595
8617
|
},
|
|
8596
8618
|
{
|
|
@@ -8618,14 +8640,14 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8618
8640
|
set: (e) => E({ includeMeasurements: e })
|
|
8619
8641
|
}
|
|
8620
8642
|
]
|
|
8621
|
-
}), t.command.register(
|
|
8622
|
-
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),
|
|
8643
|
+
}), t.command.register(lu, I), t.service.provide(au, H), t.lifecycle.onDispose(() => {
|
|
8644
|
+
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(), Qr(i), a.finishCapture(), a.dispose(), o.dispose();
|
|
8623
8645
|
});
|
|
8624
8646
|
}
|
|
8625
|
-
}),
|
|
8647
|
+
}), Tu = "0.2.1-beta.13", Eu = ro, Du = eo, Ou = to, ku = io, Au = no, ju = () => ({
|
|
8626
8648
|
...Zo(),
|
|
8627
|
-
version:
|
|
8628
|
-
}),
|
|
8649
|
+
version: Tu
|
|
8650
|
+
}), Mu = ju, Nu = Eu, Pu = Du, Fu = Ou, Iu = ku, Lu = Au, Ru = (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, zu = (e) => {
|
|
8629
8651
|
if (!e.length) return null;
|
|
8630
8652
|
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));
|
|
8631
8653
|
return {
|
|
@@ -8634,43 +8656,43 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8634
8656
|
width: r - t,
|
|
8635
8657
|
height: i - n
|
|
8636
8658
|
};
|
|
8637
|
-
},
|
|
8638
|
-
function
|
|
8659
|
+
}, Bu = (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), Vu = (e) => [...e.measurements, ...e.activeMeasurement && !e.measurements.some((t) => t.id === e.activeMeasurement?.id) ? [e.activeMeasurement] : []];
|
|
8660
|
+
function Hu(e) {
|
|
8639
8661
|
let { workspace: t, scope: n, guideTolerance: r } = e;
|
|
8640
8662
|
if (n.kind === "workspace") return {
|
|
8641
8663
|
guides: t.guides.map((e) => ({ ...e })),
|
|
8642
|
-
measurements:
|
|
8664
|
+
measurements: Vu(t),
|
|
8643
8665
|
distances: [...t.distances]
|
|
8644
8666
|
};
|
|
8645
|
-
let i = new Set(n.elements), a = (e) => e != null && i.has(e), o = (e) => n.regions.some((t) =>
|
|
8667
|
+
let i = new Set(n.elements), a = (e) => e != null && i.has(e), o = (e) => n.regions.some((t) => Ru(e, t));
|
|
8646
8668
|
return {
|
|
8647
|
-
guides: t.guides.filter((e) =>
|
|
8648
|
-
measurements:
|
|
8669
|
+
guides: t.guides.filter((e) => Bu(e, n.regions, r)).map((e) => ({ ...e })),
|
|
8670
|
+
measurements: Vu(t).filter((e) => a(e.elementRef) || o(e.rect)),
|
|
8649
8671
|
distances: t.distances.filter((e) => a(e.elementRefA) || a(e.elementRefB) || o(e.rectA) || o(e.rectB))
|
|
8650
8672
|
};
|
|
8651
8673
|
}
|
|
8652
8674
|
//#endregion
|
|
8653
8675
|
//#region ../mesurer-core/dist/domain.js
|
|
8654
|
-
var
|
|
8676
|
+
var Uu = {
|
|
8655
8677
|
opacity: 1,
|
|
8656
8678
|
width: 1,
|
|
8657
8679
|
pattern: "solid",
|
|
8658
8680
|
dashLength: 6,
|
|
8659
8681
|
gap: 4
|
|
8660
|
-
},
|
|
8682
|
+
}, Wu = {
|
|
8661
8683
|
opacity: 1,
|
|
8662
8684
|
edgeReveal: !1
|
|
8663
8685
|
};
|
|
8664
|
-
({ ...
|
|
8686
|
+
({ ...Uu }), { ...Wu };
|
|
8665
8687
|
//#endregion
|
|
8666
8688
|
//#region ../mesurer-dom/dist/index.js
|
|
8667
|
-
var
|
|
8689
|
+
var Gu = (e) => Number.parseFloat(e) || 0, Ku = 0, qu = (e, t) => {
|
|
8668
8690
|
let n = t.CSS;
|
|
8669
8691
|
return n?.escape ? n.escape(e) : e.replace(/[^a-zA-Z0-9_-]/g, (e) => `\\${e}`);
|
|
8670
8692
|
};
|
|
8671
|
-
function
|
|
8693
|
+
function Ju(e) {
|
|
8672
8694
|
let t = e.ownerDocument.defaultView ?? window;
|
|
8673
|
-
if (e.id) return `#${
|
|
8695
|
+
if (e.id) return `#${qu(e.id, t)}`;
|
|
8674
8696
|
let n = e.getAttribute("data-testid");
|
|
8675
8697
|
if (n) return `[data-testid=${JSON.stringify(n)}]`;
|
|
8676
8698
|
let r = [], i = e;
|
|
@@ -8684,17 +8706,17 @@ function qu(e) {
|
|
|
8684
8706
|
}
|
|
8685
8707
|
return r.join(" > ");
|
|
8686
8708
|
}
|
|
8687
|
-
function
|
|
8709
|
+
function Yu(e, t, n = `dom-inspection-${++Ku}`) {
|
|
8688
8710
|
let r = e.getBoundingClientRect(), i = t.getComputedStyle(e), a = {
|
|
8689
|
-
top:
|
|
8690
|
-
right:
|
|
8691
|
-
bottom:
|
|
8692
|
-
left:
|
|
8711
|
+
top: Gu(i.paddingTop),
|
|
8712
|
+
right: Gu(i.paddingRight),
|
|
8713
|
+
bottom: Gu(i.paddingBottom),
|
|
8714
|
+
left: Gu(i.paddingLeft)
|
|
8693
8715
|
}, o = {
|
|
8694
|
-
top:
|
|
8695
|
-
right:
|
|
8696
|
-
bottom:
|
|
8697
|
-
left:
|
|
8716
|
+
top: Gu(i.marginTop),
|
|
8717
|
+
right: Gu(i.marginRight),
|
|
8718
|
+
bottom: Gu(i.marginBottom),
|
|
8719
|
+
left: Gu(i.marginLeft)
|
|
8698
8720
|
}, s = {
|
|
8699
8721
|
left: r.left + a.left,
|
|
8700
8722
|
top: r.top + a.top,
|
|
@@ -8722,8 +8744,8 @@ function Ju(e, t, n = `dom-inspection-${++Gu}`) {
|
|
|
8722
8744
|
elementRef: e
|
|
8723
8745
|
};
|
|
8724
8746
|
}
|
|
8725
|
-
function
|
|
8726
|
-
let t = e.ownerDocument.defaultView ?? window, n = t.getComputedStyle(e), r = e instanceof t.HTMLElement ? e : null, i = e.getBoundingClientRect(), a = r ?
|
|
8747
|
+
function Xu(e) {
|
|
8748
|
+
let t = e.ownerDocument.defaultView ?? window, n = t.getComputedStyle(e), r = e instanceof t.HTMLElement ? e : null, i = e.getBoundingClientRect(), a = r ? Yu(r, t) : null, o = (e) => {
|
|
8727
8749
|
let t = Number.parseFloat(e);
|
|
8728
8750
|
return Number.isFinite(t) ? t : 0;
|
|
8729
8751
|
}, s = (e) => ({
|
|
@@ -8733,7 +8755,7 @@ function Yu(e) {
|
|
|
8733
8755
|
left: o(n.getPropertyValue(`${e}-left${e === "border" ? "-width" : ""}`))
|
|
8734
8756
|
});
|
|
8735
8757
|
return {
|
|
8736
|
-
selector:
|
|
8758
|
+
selector: Ju(e),
|
|
8737
8759
|
tag: e.localName,
|
|
8738
8760
|
id: e.id || null,
|
|
8739
8761
|
classes: [...e.classList],
|
|
@@ -8795,17 +8817,17 @@ function Yu(e) {
|
|
|
8795
8817
|
}
|
|
8796
8818
|
//#endregion
|
|
8797
8819
|
//#region src/context.ts
|
|
8798
|
-
var
|
|
8820
|
+
var Zu = 10, Qu = (e) => ({
|
|
8799
8821
|
left: e.left,
|
|
8800
8822
|
top: e.top,
|
|
8801
8823
|
width: e.width,
|
|
8802
8824
|
height: e.height
|
|
8803
|
-
}),
|
|
8825
|
+
}), $u = (e) => {
|
|
8804
8826
|
let t = /* @__PURE__ */ new Set(), n = [];
|
|
8805
8827
|
for (let r of e) !r?.isConnected || t.has(r) || (t.add(r), n.push(r));
|
|
8806
8828
|
return n;
|
|
8807
|
-
},
|
|
8808
|
-
function
|
|
8829
|
+
}, ed = (e) => e.crypto?.randomUUID?.() ?? `${Date.now()}-${Math.random().toString(36).slice(2)}`;
|
|
8830
|
+
function td(e) {
|
|
8809
8831
|
let { runtime: t, ownerDocument: n, ownerWindow: r } = e, i = e.request ?? { scope: "workspace" }, a = t.snapshot();
|
|
8810
8832
|
if (!a) throw Error("Mesurer workspace is not ready yet.");
|
|
8811
8833
|
let o = [], s = [], c = { kind: "workspace" }, l = /* @__PURE__ */ new Map();
|
|
@@ -8813,7 +8835,7 @@ function ed(e) {
|
|
|
8813
8835
|
let e = t.annotation(i.annotation);
|
|
8814
8836
|
if (!e) throw Error(`Mesurer annotation not found: ${i.annotation}`);
|
|
8815
8837
|
for (let t of e.resolvedTargets) t.element?.isConnected && l.set(t.element, t.target.id);
|
|
8816
|
-
o =
|
|
8838
|
+
o = $u(e.resolvedTargets.map((e) => e.element));
|
|
8817
8839
|
let n = t.annotationRect(e.id);
|
|
8818
8840
|
n && (s = [n]);
|
|
8819
8841
|
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";
|
|
@@ -8825,15 +8847,15 @@ function ed(e) {
|
|
|
8825
8847
|
};
|
|
8826
8848
|
} else if (i.scope === "selection") {
|
|
8827
8849
|
let e = t.currentSelection();
|
|
8828
|
-
if (o =
|
|
8829
|
-
s = e.region ? [e.region] : o.map((e) =>
|
|
8830
|
-
} else o =
|
|
8850
|
+
if (o = $u(e.elements), !o.length && !e.region) throw Error("Mesurer has no current selection.");
|
|
8851
|
+
s = e.region ? [e.region] : o.map((e) => Qu(e.getBoundingClientRect())), c = { kind: "selection" };
|
|
8852
|
+
} else o = $u([
|
|
8831
8853
|
...t.currentSelection().elements,
|
|
8832
8854
|
...a.measurements.map((e) => e.elementRef),
|
|
8833
8855
|
a.activeMeasurement?.elementRef,
|
|
8834
8856
|
...a.heldDistances.flatMap((e) => [e.elementRefA, e.elementRefB])
|
|
8835
8857
|
]);
|
|
8836
|
-
let u = c.kind === "workspace" ? [] : s.length ? s : o.map((e) =>
|
|
8858
|
+
let u = c.kind === "workspace" ? [] : s.length ? s : o.map((e) => Qu(e.getBoundingClientRect())), d = Hu({
|
|
8837
8859
|
workspace: {
|
|
8838
8860
|
guides: a.guides,
|
|
8839
8861
|
measurements: a.measurements,
|
|
@@ -8845,8 +8867,8 @@ function ed(e) {
|
|
|
8845
8867
|
elements: o,
|
|
8846
8868
|
regions: u
|
|
8847
8869
|
},
|
|
8848
|
-
guideTolerance: a.guideRelevanceTolerance ??
|
|
8849
|
-
}), f = d.measurements, p = d.distances, m = d.guides, h =
|
|
8870
|
+
guideTolerance: a.guideRelevanceTolerance ?? Zu
|
|
8871
|
+
}), f = d.measurements, p = d.distances, m = d.guides, h = $u([
|
|
8850
8872
|
...o,
|
|
8851
8873
|
...f.map((e) => e.elementRef),
|
|
8852
8874
|
...p.flatMap((e) => [e.elementRefA, e.elementRefB])
|
|
@@ -8858,12 +8880,12 @@ function ed(e) {
|
|
|
8858
8880
|
let t = l.get(e) ?? y();
|
|
8859
8881
|
return g.set(e, t), {
|
|
8860
8882
|
ref: t,
|
|
8861
|
-
inspection:
|
|
8883
|
+
inspection: Xu(e)
|
|
8862
8884
|
};
|
|
8863
8885
|
}), x = f.map((e) => {
|
|
8864
8886
|
let t = {
|
|
8865
8887
|
id: e.id,
|
|
8866
|
-
rect:
|
|
8888
|
+
rect: Qu(e.rect),
|
|
8867
8889
|
deltaX: e.deltaX,
|
|
8868
8890
|
deltaY: e.deltaY
|
|
8869
8891
|
};
|
|
@@ -8873,8 +8895,8 @@ function ed(e) {
|
|
|
8873
8895
|
}), S = p.map((e) => {
|
|
8874
8896
|
let t = {
|
|
8875
8897
|
id: e.id,
|
|
8876
|
-
rectA:
|
|
8877
|
-
rectB:
|
|
8898
|
+
rectA: Qu(e.rectA),
|
|
8899
|
+
rectB: Qu(e.rectB),
|
|
8878
8900
|
horizontal: e.horizontal ? { ...e.horizontal } : null,
|
|
8879
8901
|
vertical: e.vertical ? { ...e.vertical } : null
|
|
8880
8902
|
}, n = e.elementRefA ? g.get(e.elementRefA) : void 0, r = e.elementRefB ? g.get(e.elementRefB) : void 0;
|
|
@@ -8882,7 +8904,7 @@ function ed(e) {
|
|
|
8882
8904
|
});
|
|
8883
8905
|
return {
|
|
8884
8906
|
schema: "mesurer.context/v1",
|
|
8885
|
-
id:
|
|
8907
|
+
id: ed(r),
|
|
8886
8908
|
createdAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
8887
8909
|
scope: c,
|
|
8888
8910
|
page: {
|
|
@@ -8897,7 +8919,7 @@ function ed(e) {
|
|
|
8897
8919
|
scrollY: r.scrollY
|
|
8898
8920
|
},
|
|
8899
8921
|
coordinateSpace: "viewport-css-px",
|
|
8900
|
-
regions: c.kind === "workspace" ? [] : s.map(
|
|
8922
|
+
regions: c.kind === "workspace" ? [] : s.map(Qu),
|
|
8901
8923
|
visualState: {
|
|
8902
8924
|
rulersVisible: a.rulersVisible,
|
|
8903
8925
|
xrayVisible: a.xrayVisible
|
|
@@ -8911,48 +8933,48 @@ function ed(e) {
|
|
|
8911
8933
|
}
|
|
8912
8934
|
};
|
|
8913
8935
|
}
|
|
8914
|
-
var
|
|
8915
|
-
function
|
|
8936
|
+
var nd = (e) => `${Math.round(e * 100) / 100}px`, rd = (e) => `x=${nd(e.left)} y=${nd(e.top)} w=${nd(e.width)} h=${nd(e.height)}`;
|
|
8937
|
+
function id(e) {
|
|
8916
8938
|
let t = [
|
|
8917
8939
|
"Mesurer visual context",
|
|
8918
8940
|
"",
|
|
8919
8941
|
`Page: ${e.page.url}`,
|
|
8920
8942
|
`Viewport: ${e.viewport.width} × ${e.viewport.height} CSS px; scroll x=${e.viewport.scrollX} y=${e.viewport.scrollY}`
|
|
8921
8943
|
];
|
|
8922
|
-
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}: ${
|
|
8944
|
+
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}: ${rd(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) {
|
|
8923
8945
|
t.push("", "Targets");
|
|
8924
8946
|
for (let n of e.targets) {
|
|
8925
8947
|
let e = n.inspection;
|
|
8926
|
-
t.push(`[${n.ref}] ${e.selector}`, ` rect: ${
|
|
8948
|
+
t.push(`[${n.ref}] ${e.selector}`, ` rect: ${rd(e.rect)}`, ` margin: ${nd(e.margin.top)} ${nd(e.margin.right)} ${nd(e.margin.bottom)} ${nd(e.margin.left)}`, ` padding: ${nd(e.padding.top)} ${nd(e.padding.right)} ${nd(e.padding.bottom)} ${nd(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)}`);
|
|
8927
8949
|
}
|
|
8928
8950
|
}
|
|
8929
8951
|
if (e.visualContext.guides.length) {
|
|
8930
8952
|
t.push("", "Relevant guides");
|
|
8931
|
-
for (let n of e.visualContext.guides) t.push(`- ${n.orientation} ${n.orientation === "vertical" ? "x" : "y"}=${
|
|
8953
|
+
for (let n of e.visualContext.guides) t.push(`- ${n.orientation} ${n.orientation === "vertical" ? "x" : "y"}=${nd(n.position)}`);
|
|
8932
8954
|
}
|
|
8933
8955
|
if (e.visualContext.layoutGuides.length) {
|
|
8934
8956
|
t.push("", "Layout guides");
|
|
8935
8957
|
for (let n of e.visualContext.layoutGuides) {
|
|
8936
8958
|
if (!n.visible) continue;
|
|
8937
|
-
let e = n.kind === "grid" ? `grid ${
|
|
8959
|
+
let e = n.kind === "grid" ? `grid ${nd(n.size)}` : `${n.count} ${n.kind}; gutter=${nd(n.gutter)}; offset=${nd(n.offset)}; align=${n.align}`;
|
|
8938
8960
|
t.push(`- ${e}; color=${n.color}; opacity=${Math.round(n.opacity * 100)}%`);
|
|
8939
8961
|
}
|
|
8940
8962
|
}
|
|
8941
8963
|
if (e.visualContext.measurements.length) {
|
|
8942
8964
|
t.push("", "Relevant measurements");
|
|
8943
|
-
for (let n of e.visualContext.measurements) t.push(`- ${n.targetRef ? `${n.targetRef}: ` : ""}${
|
|
8965
|
+
for (let n of e.visualContext.measurements) t.push(`- ${n.targetRef ? `${n.targetRef}: ` : ""}${rd(n.rect)}; delta=${nd(n.deltaX)} × ${nd(n.deltaY)}`);
|
|
8944
8966
|
}
|
|
8945
8967
|
if (e.visualContext.distances.length) {
|
|
8946
8968
|
t.push("", "Relevant distances");
|
|
8947
8969
|
for (let n of e.visualContext.distances) {
|
|
8948
|
-
let e = [n.targetARef, n.targetBRef].filter(Boolean).join(" → "), r = [n.horizontal ? `horizontal=${
|
|
8970
|
+
let e = [n.targetARef, n.targetBRef].filter(Boolean).join(" → "), r = [n.horizontal ? `horizontal=${nd(n.horizontal.value)}` : null, n.vertical ? `vertical=${nd(n.vertical.value)}` : null].filter(Boolean).join("; ");
|
|
8949
8971
|
t.push(`- ${e ? `${e}: ` : ""}${r || "overlapping"}`);
|
|
8950
8972
|
}
|
|
8951
8973
|
}
|
|
8952
8974
|
return t.join("\n").trimEnd();
|
|
8953
8975
|
}
|
|
8954
|
-
function
|
|
8955
|
-
let t =
|
|
8976
|
+
function ad(e) {
|
|
8977
|
+
let t = zu([
|
|
8956
8978
|
...e.regions,
|
|
8957
8979
|
...e.targets.map((e) => e.inspection.rect),
|
|
8958
8980
|
...e.visualContext.measurements.map((e) => e.rect),
|
|
@@ -8982,7 +9004,7 @@ function id(e) {
|
|
|
8982
9004
|
captures: n
|
|
8983
9005
|
};
|
|
8984
9006
|
}
|
|
8985
|
-
var
|
|
9007
|
+
var od = (e, t, n, r, i) => {
|
|
8986
9008
|
!Number.isFinite(r) || !Number.isFinite(i) || Math.abs(r - i) < .01 || e.push({
|
|
8987
9009
|
kind: t,
|
|
8988
9010
|
label: n,
|
|
@@ -8991,16 +9013,16 @@ var ad = (e, t, n, r, i) => {
|
|
|
8991
9013
|
delta: i - r,
|
|
8992
9014
|
unit: "px"
|
|
8993
9015
|
});
|
|
8994
|
-
},
|
|
9016
|
+
}, sd = (e, t, n, r) => e.push({
|
|
8995
9017
|
kind: "missing",
|
|
8996
9018
|
evidence: t,
|
|
8997
9019
|
id: n,
|
|
8998
9020
|
label: r
|
|
8999
|
-
}),
|
|
9000
|
-
function
|
|
9021
|
+
}), cd = (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;
|
|
9022
|
+
function ld(e) {
|
|
9001
9023
|
let t = e.runtime.annotation(e.annotationId);
|
|
9002
9024
|
if (!t) throw Error(`Mesurer annotation not found: ${e.annotationId}`);
|
|
9003
|
-
let n =
|
|
9025
|
+
let n = td({
|
|
9004
9026
|
runtime: e.runtime,
|
|
9005
9027
|
ownerDocument: e.ownerDocument,
|
|
9006
9028
|
ownerWindow: e.ownerWindow,
|
|
@@ -9010,42 +9032,42 @@ function cd(e) {
|
|
|
9010
9032
|
if (n.scope.kind !== "annotation") throw Error("Mesurer annotation context invariant failed.");
|
|
9011
9033
|
let r = e.runtime.snapshot();
|
|
9012
9034
|
if (!r) throw Error("Mesurer workspace is not ready yet.");
|
|
9013
|
-
let i =
|
|
9035
|
+
let i = Vu({
|
|
9014
9036
|
measurements: r.measurements,
|
|
9015
9037
|
activeMeasurement: r.activeMeasurement
|
|
9016
9038
|
}), a = [];
|
|
9017
9039
|
for (let e of t.baseline.targets) {
|
|
9018
9040
|
let t = n.targets.find((t) => t.ref === e.id);
|
|
9019
9041
|
if (!t) {
|
|
9020
|
-
|
|
9042
|
+
sd(a, "target", e.id, e.selector);
|
|
9021
9043
|
continue;
|
|
9022
9044
|
}
|
|
9023
|
-
|
|
9045
|
+
od(a, "target-rect", `${t.inspection.selector} left`, e.rect.left, t.inspection.rect.left), od(a, "target-rect", `${t.inspection.selector} top`, e.rect.top, t.inspection.rect.top), od(a, "target-rect", `${t.inspection.selector} width`, e.rect.width, t.inspection.rect.width), od(a, "target-rect", `${t.inspection.selector} height`, e.rect.height, t.inspection.rect.height);
|
|
9024
9046
|
}
|
|
9025
9047
|
for (let e of t.baseline.guides) {
|
|
9026
9048
|
let t = n.visualContext.guides.find((t) => t.id === e.id) ?? r.guides.find((t) => t.id === e.id);
|
|
9027
9049
|
if (!t) {
|
|
9028
|
-
|
|
9050
|
+
sd(a, "guide", e.id, `${e.orientation} guide ${e.id}`);
|
|
9029
9051
|
continue;
|
|
9030
9052
|
}
|
|
9031
|
-
|
|
9053
|
+
od(a, "guide", `${e.orientation} guide ${e.id}`, e.position, t.position);
|
|
9032
9054
|
}
|
|
9033
9055
|
for (let e of t.baseline.measurements) {
|
|
9034
9056
|
let r = n.visualContext.measurements.find((t) => t.id === e.id) ?? i.find((t) => t.id === e.id);
|
|
9035
9057
|
if (!r) {
|
|
9036
|
-
let r = t.baseline.targets.find((t) =>
|
|
9037
|
-
r && n.targets.some((e) => e.ref === r.id) ||
|
|
9058
|
+
let r = t.baseline.targets.find((t) => cd(t.rect, e.rect));
|
|
9059
|
+
r && n.targets.some((e) => e.ref === r.id) || sd(a, "measurement", e.id, e.id);
|
|
9038
9060
|
continue;
|
|
9039
9061
|
}
|
|
9040
|
-
|
|
9062
|
+
od(a, "measurement", `${e.id} width`, e.rect.width, r.rect.width), od(a, "measurement", `${e.id} height`, e.rect.height, r.rect.height);
|
|
9041
9063
|
}
|
|
9042
9064
|
for (let e of t.baseline.distances) {
|
|
9043
9065
|
let t = n.visualContext.distances.find((t) => t.id === e.id) ?? r.heldDistances.find((t) => t.id === e.id);
|
|
9044
9066
|
if (!t) {
|
|
9045
|
-
|
|
9067
|
+
sd(a, "distance", e.id, e.id);
|
|
9046
9068
|
continue;
|
|
9047
9069
|
}
|
|
9048
|
-
e.horizontal && t.horizontal ?
|
|
9070
|
+
e.horizontal && t.horizontal ? od(a, "distance", `${e.id} horizontal`, e.horizontal.value, t.horizontal.value) : e.horizontal && !t.horizontal && sd(a, "distance", e.id, `${e.id} horizontal`), e.vertical && t.vertical ? od(a, "distance", `${e.id} vertical`, e.vertical.value, t.vertical.value) : e.vertical && !t.vertical && sd(a, "distance", e.id, `${e.id} vertical`);
|
|
9049
9071
|
}
|
|
9050
9072
|
return {
|
|
9051
9073
|
schema: "mesurer.review/v1",
|
|
@@ -9057,7 +9079,7 @@ function cd(e) {
|
|
|
9057
9079
|
changes: a
|
|
9058
9080
|
};
|
|
9059
9081
|
}
|
|
9060
|
-
async function
|
|
9082
|
+
async function ud(e, t, n) {
|
|
9061
9083
|
try {
|
|
9062
9084
|
if (t.navigator.clipboard?.writeText) {
|
|
9063
9085
|
await t.navigator.clipboard.writeText(n);
|
|
@@ -9071,43 +9093,43 @@ async function ld(e, t, n) {
|
|
|
9071
9093
|
}
|
|
9072
9094
|
//#endregion
|
|
9073
9095
|
//#region src/layout-guides.ts
|
|
9074
|
-
var
|
|
9096
|
+
var dd = Zs, fd = Qs, pd = $s, md = ec, hd = () => ({
|
|
9075
9097
|
...wc(),
|
|
9076
|
-
version:
|
|
9077
|
-
}),
|
|
9098
|
+
version: Tu
|
|
9099
|
+
}), gd = "mesurer.context", _d = "context:v1", vd = "mesurer.context.settings", yd = "context.ui", bd = "data-mesurer-direct-text-edit-active", xd = {
|
|
9078
9100
|
viewBox: "0 0 256 256",
|
|
9079
9101
|
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"]
|
|
9080
|
-
},
|
|
9102
|
+
}, Sd = {
|
|
9081
9103
|
viewBox: "0 0 256 256",
|
|
9082
9104
|
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"]
|
|
9083
|
-
},
|
|
9105
|
+
}, Cd = {
|
|
9084
9106
|
viewBox: "0 0 256 256",
|
|
9085
9107
|
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"]
|
|
9086
|
-
},
|
|
9108
|
+
}, wd = async (e, t, n = 1) => {
|
|
9087
9109
|
await e.fonts?.ready;
|
|
9088
9110
|
for (let e = 0; e < Math.max(1, n); e += 1) await new Promise((e) => t.requestAnimationFrame(() => e()));
|
|
9089
|
-
},
|
|
9090
|
-
let i = async (i) =>
|
|
9111
|
+
}, Td = (e, t, n, r) => {
|
|
9112
|
+
let i = async (i) => td({
|
|
9091
9113
|
runtime: e,
|
|
9092
9114
|
ownerDocument: t,
|
|
9093
9115
|
ownerWindow: n,
|
|
9094
9116
|
request: i,
|
|
9095
9117
|
layoutGuides: r()
|
|
9096
|
-
}), a = async (e) =>
|
|
9118
|
+
}), a = async (e) => id(await i(e));
|
|
9097
9119
|
return {
|
|
9098
9120
|
context: i,
|
|
9099
9121
|
contextText: a,
|
|
9100
|
-
copyContext: async (e) =>
|
|
9122
|
+
copyContext: async (e) => ud(t, n, await a(e)),
|
|
9101
9123
|
select: async (r) => {
|
|
9102
9124
|
let a = Array.isArray(r) ? [...r] : [String(r)];
|
|
9103
|
-
return e.select(a), await
|
|
9125
|
+
return e.select(a), await wd(t, n), i({ scope: "selection" });
|
|
9104
9126
|
},
|
|
9105
9127
|
annotations: async () => e.annotations(),
|
|
9106
9128
|
removeAnnotation: async (r) => {
|
|
9107
|
-
e.removeAnnotation(r), await
|
|
9129
|
+
e.removeAnnotation(r), await wd(t, n);
|
|
9108
9130
|
},
|
|
9109
9131
|
review: async (i) => {
|
|
9110
|
-
if (await
|
|
9132
|
+
if (await wd(t, n), i) return ld({
|
|
9111
9133
|
runtime: e,
|
|
9112
9134
|
ownerDocument: t,
|
|
9113
9135
|
ownerWindow: n,
|
|
@@ -9115,7 +9137,7 @@ var ud = Zs, dd = Qs, fd = $s, pd = ec, md = () => ({
|
|
|
9115
9137
|
layoutGuides: r()
|
|
9116
9138
|
});
|
|
9117
9139
|
let a = r();
|
|
9118
|
-
return e.annotations().map((r) =>
|
|
9140
|
+
return e.annotations().map((r) => ld({
|
|
9119
9141
|
runtime: e,
|
|
9120
9142
|
ownerDocument: t,
|
|
9121
9143
|
ownerWindow: n,
|
|
@@ -9123,38 +9145,38 @@ var ud = Zs, dd = Qs, fd = $s, pd = ec, md = () => ({
|
|
|
9123
9145
|
layoutGuides: a
|
|
9124
9146
|
}));
|
|
9125
9147
|
},
|
|
9126
|
-
capturePlan: async (e) =>
|
|
9148
|
+
capturePlan: async (e) => ad(await i(e)),
|
|
9127
9149
|
prepareCapture: async () => {
|
|
9128
|
-
e.prepareCapture(), await
|
|
9150
|
+
e.prepareCapture(), await wd(t, n);
|
|
9129
9151
|
},
|
|
9130
9152
|
finishCapture: async () => {
|
|
9131
|
-
e.finishCapture(), await
|
|
9153
|
+
e.finishCapture(), await wd(t, n);
|
|
9132
9154
|
}
|
|
9133
9155
|
};
|
|
9134
|
-
},
|
|
9156
|
+
}, Ed = (e) => {
|
|
9135
9157
|
let t = e.currentSelection();
|
|
9136
9158
|
return t.elements.length > 0 || t.region !== null;
|
|
9137
9159
|
};
|
|
9138
|
-
function
|
|
9160
|
+
function Dd(e = {}) {
|
|
9139
9161
|
return {
|
|
9140
|
-
id:
|
|
9141
|
-
version:
|
|
9162
|
+
id: gd,
|
|
9163
|
+
version: Tu,
|
|
9142
9164
|
requires: ["runtime:solid"],
|
|
9143
|
-
provides: [
|
|
9165
|
+
provides: [_d],
|
|
9144
9166
|
setup(t) {
|
|
9145
9167
|
let n = t.service.get("runtime:solid");
|
|
9146
9168
|
if (!n) throw Error("Mesurer context plugin requires the renderer runtime service.");
|
|
9147
|
-
let r = n.createWorkspaceRuntime(
|
|
9148
|
-
t.service.provide(
|
|
9149
|
-
id:
|
|
9169
|
+
let r = n.createWorkspaceRuntime(gd), i = Td(r, n.ownerDocument, n.ownerWindow, () => t.service.get(fd)?.list() ?? []);
|
|
9170
|
+
t.service.provide(_d, i), t.state.register({
|
|
9171
|
+
id: vd,
|
|
9150
9172
|
initial: { ui: e.ui ?? !0 },
|
|
9151
9173
|
persist: !0
|
|
9152
9174
|
}), t.state.register({
|
|
9153
|
-
id:
|
|
9154
|
-
initial: { hasSelection:
|
|
9175
|
+
id: yd,
|
|
9176
|
+
initial: { hasSelection: Ed(r) }
|
|
9155
9177
|
});
|
|
9156
|
-
let a = () => t.state.get("mesurer.context.settings")?.ui ?? !0, o = () => t.state.get(
|
|
9157
|
-
t.state.update(
|
|
9178
|
+
let a = () => t.state.get("mesurer.context.settings")?.ui ?? !0, o = () => t.state.get(yd)?.hasSelection === !0, s = (e) => {
|
|
9179
|
+
t.state.update(vd, (t) => ({
|
|
9158
9180
|
...t,
|
|
9159
9181
|
ui: e
|
|
9160
9182
|
}));
|
|
@@ -9168,12 +9190,12 @@ function Ed(e = {}) {
|
|
|
9168
9190
|
region: e.region ? { ...e.region } : null
|
|
9169
9191
|
}, r.selectGestureActive() ? c?.abandonNoteComposer() : n && c?.closeNoteComposer();
|
|
9170
9192
|
let i = e.elements.length > 0 || e.region !== null;
|
|
9171
|
-
i !== (t.state.get(
|
|
9193
|
+
i !== (t.state.get(yd)?.hasSelection ?? !1) && t.state.update(yd, () => ({ hasSelection: i }));
|
|
9172
9194
|
});
|
|
9173
9195
|
t.command.register("context.copy", () => i.copyContext()), t.command.register("context.copy-selection", () => i.copyContext({ scope: "selection" }));
|
|
9174
9196
|
let g = () => {
|
|
9175
9197
|
let e = u?.element;
|
|
9176
|
-
e && (n.rendererRoot?.hasAttribute(
|
|
9198
|
+
e && (n.rendererRoot?.hasAttribute(bd) ? e.setAttribute(bd, "true") : e.removeAttribute(bd));
|
|
9177
9199
|
}, _ = () => {
|
|
9178
9200
|
d?.disconnect(), d = null, c = null, l?.(), l = null, u?.dispose(), u = null;
|
|
9179
9201
|
}, v = () => {
|
|
@@ -9182,7 +9204,7 @@ function Ed(e = {}) {
|
|
|
9182
9204
|
let e = new n.ownerWindow.MutationObserver(g);
|
|
9183
9205
|
d = e, e.observe(n.rendererRoot, {
|
|
9184
9206
|
attributes: !0,
|
|
9185
|
-
attributeFilter: [
|
|
9207
|
+
attributeFilter: [bd]
|
|
9186
9208
|
}), g();
|
|
9187
9209
|
}
|
|
9188
9210
|
let e = {
|
|
@@ -9206,7 +9228,7 @@ function Ed(e = {}) {
|
|
|
9206
9228
|
command: "context.copy",
|
|
9207
9229
|
order: 70,
|
|
9208
9230
|
toolbarMode: "always",
|
|
9209
|
-
icon:
|
|
9231
|
+
icon: xd,
|
|
9210
9232
|
hidden: () => !a()
|
|
9211
9233
|
}), t.tool.register({
|
|
9212
9234
|
id: "context.copy-selection",
|
|
@@ -9215,7 +9237,7 @@ function Ed(e = {}) {
|
|
|
9215
9237
|
command: "context.copy-selection",
|
|
9216
9238
|
order: 71,
|
|
9217
9239
|
toolbarMode: "always",
|
|
9218
|
-
icon:
|
|
9240
|
+
icon: Sd,
|
|
9219
9241
|
hidden: () => !a(),
|
|
9220
9242
|
disabled: () => !o()
|
|
9221
9243
|
}), t.tool.register({
|
|
@@ -9225,7 +9247,7 @@ function Ed(e = {}) {
|
|
|
9225
9247
|
command: "context.add-note",
|
|
9226
9248
|
order: 72,
|
|
9227
9249
|
toolbarMode: "always",
|
|
9228
|
-
icon:
|
|
9250
|
+
icon: Cd,
|
|
9229
9251
|
hidden: () => !a(),
|
|
9230
9252
|
disabled: () => !o()
|
|
9231
9253
|
}), t.settings.register({
|
|
@@ -9248,28 +9270,28 @@ function Ed(e = {}) {
|
|
|
9248
9270
|
}
|
|
9249
9271
|
//#endregion
|
|
9250
9272
|
//#region src/plugins/codex/index.ts
|
|
9251
|
-
var
|
|
9273
|
+
var Od = "mesurer.codex", kd = "codex:v1", Ad = "mesurer.plugin.before-disable", jd = 2e3, Md = 750, Nd = 1800, Pd = 2e3, Fd = 12e4, Id = 10, Ld = 5, Rd = "Codex host connection is unavailable. Electron apps must expose window.__MESURER_HOST__.codexBridge from preload.", zd = [
|
|
9252
9274
|
"Implement the current human feedback from Mesurer in this project.",
|
|
9253
9275
|
"Treat the rendered page as the source of truth, preserve unrelated Mesurer review state,",
|
|
9254
9276
|
"and verify the affected UI in the live page with Mesurer before claiming completion."
|
|
9255
|
-
].join(" "),
|
|
9277
|
+
].join(" "), Bd = {
|
|
9256
9278
|
viewBox: "0 0 256 256",
|
|
9257
9279
|
paths: ["M224,48,32,120l88,32,32,88Z M120,152l104-104"]
|
|
9258
|
-
},
|
|
9280
|
+
}, Vd = {
|
|
9259
9281
|
viewBox: "0 0 256 256",
|
|
9260
9282
|
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"]
|
|
9261
|
-
},
|
|
9283
|
+
}, Hd = {
|
|
9262
9284
|
viewBox: "0 0 256 256",
|
|
9263
9285
|
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"]
|
|
9264
|
-
},
|
|
9286
|
+
}, Ud = () => {
|
|
9265
9287
|
try {
|
|
9266
9288
|
let e = globalThis.location;
|
|
9267
9289
|
return e?.origin ? `mesurer-codex-ui:v2:${e.origin}${e.pathname}` : null;
|
|
9268
9290
|
} catch {
|
|
9269
9291
|
return null;
|
|
9270
9292
|
}
|
|
9271
|
-
},
|
|
9272
|
-
let e =
|
|
9293
|
+
}, Wd = () => {
|
|
9294
|
+
let e = Ud();
|
|
9273
9295
|
if (!e) return null;
|
|
9274
9296
|
try {
|
|
9275
9297
|
let t = globalThis.sessionStorage?.getItem(e);
|
|
@@ -9294,18 +9316,18 @@ var Dd = "mesurer.codex", Od = "codex:v1", kd = "mesurer.plugin.before-disable",
|
|
|
9294
9316
|
} catch {
|
|
9295
9317
|
return null;
|
|
9296
9318
|
}
|
|
9297
|
-
},
|
|
9298
|
-
let t =
|
|
9319
|
+
}, Gd = (e) => {
|
|
9320
|
+
let t = Ud();
|
|
9299
9321
|
if (t) try {
|
|
9300
9322
|
globalThis.sessionStorage?.setItem(t, JSON.stringify(e));
|
|
9301
9323
|
} catch {}
|
|
9302
|
-
},
|
|
9324
|
+
}, Kd = async (e) => {
|
|
9303
9325
|
let t = window.__MESURER_HOST__?.codexBridge;
|
|
9304
|
-
if (!t) throw Error(
|
|
9326
|
+
if (!t) throw Error(Rd);
|
|
9305
9327
|
let n = await t(e);
|
|
9306
9328
|
if (n.ok === !1) throw Error(n.error ?? "Codex Bridge request failed.");
|
|
9307
9329
|
return n;
|
|
9308
|
-
},
|
|
9330
|
+
}, qd = (e) => {
|
|
9309
9331
|
let t = e.runtime;
|
|
9310
9332
|
return !t || ![
|
|
9311
9333
|
"shared",
|
|
@@ -9323,10 +9345,10 @@ var Dd = "mesurer.codex", Od = "codex:v1", kd = "mesurer.plugin.before-disable",
|
|
|
9323
9345
|
available: t.available === !0,
|
|
9324
9346
|
reason: t.reason
|
|
9325
9347
|
};
|
|
9326
|
-
},
|
|
9348
|
+
}, Jd = (e) => ({
|
|
9327
9349
|
thread: e.thread?.trim() || null,
|
|
9328
9350
|
threads: Array.isArray(e.threads) ? e.threads.filter((e) => e.trim().length > 0) : []
|
|
9329
|
-
}),
|
|
9351
|
+
}), Yd = (e) => {
|
|
9330
9352
|
let t = e.deliveryId?.trim(), n = e.thread?.trim(), r = e.status;
|
|
9331
9353
|
if (!t || !n || !r) throw Error("Codex Bridge returned an invalid delivery state.");
|
|
9332
9354
|
let i = {
|
|
@@ -9338,7 +9360,7 @@ var Dd = "mesurer.codex", Od = "codex:v1", kd = "mesurer.plugin.before-disable",
|
|
|
9338
9360
|
updatedAt: Number.isFinite(e.updatedAt) ? Number(e.updatedAt) : 0
|
|
9339
9361
|
};
|
|
9340
9362
|
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;
|
|
9341
|
-
},
|
|
9363
|
+
}, Xd = (e) => ({
|
|
9342
9364
|
thread: e.thread?.trim() || null,
|
|
9343
9365
|
threads: Array.isArray(e.threadDetails) ? e.threadDetails.flatMap((e) => {
|
|
9344
9366
|
let t = e.id?.trim() ?? "";
|
|
@@ -9350,7 +9372,7 @@ var Dd = "mesurer.codex", Od = "codex:v1", kd = "mesurer.plugin.before-disable",
|
|
|
9350
9372
|
}] : [];
|
|
9351
9373
|
}) : [],
|
|
9352
9374
|
hasMore: e.hasMore === !0
|
|
9353
|
-
}),
|
|
9375
|
+
}), Zd = async (e, t, n) => {
|
|
9354
9376
|
let r = t?.instruction?.trim() || n, i = await e.annotations(), a = t?.annotationIds, o = a ? a.flatMap((e) => {
|
|
9355
9377
|
let t = i.find((t) => t.id === e);
|
|
9356
9378
|
return t ? [t] : [];
|
|
@@ -9373,18 +9395,18 @@ var Dd = "mesurer.codex", Od = "codex:v1", kd = "mesurer.plugin.before-disable",
|
|
|
9373
9395
|
])
|
|
9374
9396
|
].join("\n").trimEnd()
|
|
9375
9397
|
};
|
|
9376
|
-
},
|
|
9377
|
-
function
|
|
9378
|
-
let t = e.instruction?.trim() ||
|
|
9398
|
+
}, Qd = (e) => e.length > 16 ? `${e.slice(0, 8)}…${e.slice(-4)}` : e, $d = (e, t = 42) => e.length > t ? `${e.slice(0, t - 1)}…` : e, ef = (e) => e instanceof Error && (e.message === Rd || e.message === "Codex Bridge is unavailable in this host." || e.message.includes("Codex Bridge lease"));
|
|
9399
|
+
function tf(e = {}) {
|
|
9400
|
+
let t = e.instruction?.trim() || zd, n = e.ui ?? !0, r = e.clearCompletedAnnotations ?? !0;
|
|
9379
9401
|
return {
|
|
9380
|
-
id:
|
|
9381
|
-
version:
|
|
9382
|
-
requires: [
|
|
9383
|
-
provides: [
|
|
9402
|
+
id: Od,
|
|
9403
|
+
version: Tu,
|
|
9404
|
+
requires: [_d],
|
|
9405
|
+
provides: [kd],
|
|
9384
9406
|
async setup(e) {
|
|
9385
|
-
let i = e.service.get(
|
|
9407
|
+
let i = e.service.get(_d);
|
|
9386
9408
|
if (!i) throw Error("Mesurer Codex plugin requires context() from mesurer-solid/plugins.");
|
|
9387
|
-
let a = n ?
|
|
9409
|
+
let a = n ? Wd() : null, o = "unknown", s = null, c = !1, l = a?.originThread ?? null, u = a?.selectedThread ?? a?.originThread ?? null, d = !1, f = null, p = [], m = [], h = !1, g = Ld, _, v = "", y = null, b = a?.delivery ? {
|
|
9388
9410
|
id: a.delivery.id,
|
|
9389
9411
|
thread: a.delivery.thread,
|
|
9390
9412
|
status: a.delivery.status,
|
|
@@ -9393,63 +9415,63 @@ function ef(e = {}) {
|
|
|
9393
9415
|
dispatch: a.delivery.dispatch ?? null,
|
|
9394
9416
|
dispatchError: a.delivery.dispatchError ?? null
|
|
9395
9417
|
} : null, x = 0, S = 0, C = null, w = !1, T = null, E = async (e) => {
|
|
9396
|
-
if (e.action === "activate" || e.action === "runtime") return
|
|
9418
|
+
if (e.action === "activate" || e.action === "runtime") return Kd(e);
|
|
9397
9419
|
if (!T) throw Error("Codex Bridge lease is not active for this plugin.");
|
|
9398
|
-
return
|
|
9420
|
+
return Kd({
|
|
9399
9421
|
...e,
|
|
9400
9422
|
leaseId: T
|
|
9401
9423
|
});
|
|
9402
9424
|
}, D = async () => {
|
|
9403
9425
|
let e = T;
|
|
9404
9426
|
if (e) {
|
|
9405
|
-
if ((await
|
|
9427
|
+
if ((await Kd({
|
|
9406
9428
|
action: "deactivate",
|
|
9407
9429
|
leaseId: e
|
|
9408
9430
|
})).released !== !0) throw Error("Codex Bridge did not confirm lease release.");
|
|
9409
9431
|
T = null;
|
|
9410
9432
|
}
|
|
9411
|
-
}, O = await
|
|
9433
|
+
}, O = await Kd({
|
|
9412
9434
|
action: "activate",
|
|
9413
9435
|
thread: u ?? l ?? void 0
|
|
9414
|
-
}),
|
|
9415
|
-
if (!
|
|
9416
|
-
T =
|
|
9417
|
-
let
|
|
9418
|
-
c = !0, f =
|
|
9436
|
+
}), k = O.leaseId?.trim();
|
|
9437
|
+
if (!k) throw Error("Codex Bridge did not return an activation lease.");
|
|
9438
|
+
T = k, o = "available", s = qd(O);
|
|
9439
|
+
let A = Jd(O);
|
|
9440
|
+
c = !0, f = A.thread, p = A.threads, e.lifecycle.onDispose(() => {
|
|
9419
9441
|
T && D().catch((e) => {
|
|
9420
9442
|
let t = e instanceof Error ? e.message : String(e);
|
|
9421
9443
|
console.error(`[Mesurer] Failed to release Codex host lease: ${t}`);
|
|
9422
9444
|
});
|
|
9423
|
-
}), e.hook.on(
|
|
9445
|
+
}), e.hook.on(Ad, async (e) => {
|
|
9424
9446
|
e === "mesurer.codex" && await D();
|
|
9425
9447
|
});
|
|
9426
|
-
let
|
|
9427
|
-
let e =
|
|
9448
|
+
let j = async () => {
|
|
9449
|
+
let e = qd(await E({ action: "runtime" }));
|
|
9428
9450
|
if (!e) throw Error("Codex Bridge returned an invalid runtime state.");
|
|
9429
9451
|
return s = e, e;
|
|
9430
|
-
},
|
|
9452
|
+
}, M = async () => {
|
|
9431
9453
|
let e = await E({
|
|
9432
9454
|
action: "health",
|
|
9433
9455
|
thread: u ?? l ?? void 0
|
|
9434
9456
|
});
|
|
9435
|
-
return s =
|
|
9436
|
-
},
|
|
9457
|
+
return s = qd(e) ?? s, Jd(e);
|
|
9458
|
+
}, ee = M, N = async (e) => Yd(await E({
|
|
9437
9459
|
action: "delivery",
|
|
9438
9460
|
deliveryId: e
|
|
9439
|
-
})),
|
|
9461
|
+
})), P = async (e) => {
|
|
9440
9462
|
if (!e.id || !e.thread) throw Error("Cannot restore a Codex delivery without its id and thread.");
|
|
9441
9463
|
let t = {
|
|
9442
9464
|
action: "restore",
|
|
9443
9465
|
deliveryId: e.id,
|
|
9444
9466
|
thread: e.thread
|
|
9445
9467
|
};
|
|
9446
|
-
return e.queuedSubmissionId && (t.queuedSubmissionId = e.queuedSubmissionId),
|
|
9447
|
-
},
|
|
9468
|
+
return e.queuedSubmissionId && (t.queuedSubmissionId = e.queuedSubmissionId), Yd(await E(t));
|
|
9469
|
+
}, te = async (e = {}) => {
|
|
9448
9470
|
let t = {
|
|
9449
9471
|
action: "threads",
|
|
9450
|
-
limit: e.limit ??
|
|
9472
|
+
limit: e.limit ?? Id
|
|
9451
9473
|
}, n = e.thread?.trim();
|
|
9452
|
-
return n && (t.thread = n),
|
|
9474
|
+
return n && (t.thread = n), Xd(await E(t));
|
|
9453
9475
|
}, F = () => u ?? l ?? (d ? null : f), I = () => {
|
|
9454
9476
|
if (!n) return;
|
|
9455
9477
|
let e = b?.id && (b.status === "queued" || b.status === "working" || b.status === "interrupted") ? {
|
|
@@ -9461,7 +9483,7 @@ function ef(e = {}) {
|
|
|
9461
9483
|
dispatch: b.dispatch,
|
|
9462
9484
|
dispatchError: b.dispatchError
|
|
9463
9485
|
} : null;
|
|
9464
|
-
|
|
9486
|
+
Gd({
|
|
9465
9487
|
version: 1,
|
|
9466
9488
|
originThread: l,
|
|
9467
9489
|
selectedThread: u,
|
|
@@ -9479,12 +9501,12 @@ function ef(e = {}) {
|
|
|
9479
9501
|
"queueing",
|
|
9480
9502
|
"queued",
|
|
9481
9503
|
"working"
|
|
9482
|
-
].includes(b.status) ?
|
|
9504
|
+
].includes(b.status) ? Vd : b.status === "completed" ? Hd : Bd : Bd, H = () => {
|
|
9483
9505
|
let e = [], t = /* @__PURE__ */ new Set(), n = (n) => {
|
|
9484
9506
|
t.has(n.id) || (t.add(n.id), e.push(n));
|
|
9485
9507
|
}, r = (e) => ({
|
|
9486
9508
|
id: e,
|
|
9487
|
-
title: `Codex ${
|
|
9509
|
+
title: `Codex ${Qd(e)}`,
|
|
9488
9510
|
updatedAt: null,
|
|
9489
9511
|
connected: !0
|
|
9490
9512
|
});
|
|
@@ -9512,7 +9534,7 @@ function ef(e = {}) {
|
|
|
9512
9534
|
let t = e.id === l ? "Current · " : e.connected ? "Loaded · " : "", r = b?.thread === e.id ? ` · ${z(b.status)}` : "";
|
|
9513
9535
|
return {
|
|
9514
9536
|
id: `codex.thread.${e.id}`,
|
|
9515
|
-
label: `${t}${
|
|
9537
|
+
label: `${t}${$d(e.title)}${r}`,
|
|
9516
9538
|
checked: () => n === e.id,
|
|
9517
9539
|
disabled: () => R(),
|
|
9518
9540
|
run() {
|
|
@@ -9520,15 +9542,15 @@ function ef(e = {}) {
|
|
|
9520
9542
|
}
|
|
9521
9543
|
};
|
|
9522
9544
|
});
|
|
9523
|
-
return g <
|
|
9545
|
+
return g < Id && (e.length > g || h) && r.push({
|
|
9524
9546
|
id: "codex.thread.show-more",
|
|
9525
9547
|
label: "Show 5 more…",
|
|
9526
9548
|
run() {
|
|
9527
|
-
g =
|
|
9549
|
+
g = Id, G();
|
|
9528
9550
|
}
|
|
9529
9551
|
}), b?.queuedSubmissionId && b.status === "queued" && (b.dispatch === "desktop-opened" || b.dispatch === "desktop-wake-failed") && r.push({
|
|
9530
9552
|
id: "codex.delivery.receipt",
|
|
9531
|
-
label: `Receipt · ${
|
|
9553
|
+
label: `Receipt · ${Qd(b.queuedSubmissionId)}`,
|
|
9532
9554
|
disabled: () => !0,
|
|
9533
9555
|
run: () => void 0
|
|
9534
9556
|
}), r;
|
|
@@ -9564,20 +9586,20 @@ function ef(e = {}) {
|
|
|
9564
9586
|
}));
|
|
9565
9587
|
}, ne = async (e) => {
|
|
9566
9588
|
if (o !== "available") return;
|
|
9567
|
-
let t = await
|
|
9568
|
-
limit:
|
|
9589
|
+
let t = await te({
|
|
9590
|
+
limit: Id,
|
|
9569
9591
|
thread: e ?? void 0
|
|
9570
9592
|
});
|
|
9571
9593
|
m = t.threads, h = t.hasMore, p = t.threads.filter((e) => e.connected).map((e) => e.id), f = t.thread;
|
|
9572
9594
|
};
|
|
9573
9595
|
U = (e = !1) => w || o === "unknown" && !e ? Promise.resolve() : y || (y = (async () => {
|
|
9574
9596
|
try {
|
|
9575
|
-
let e = await
|
|
9597
|
+
let e = await ee();
|
|
9576
9598
|
o = "available", c = !0, f = e.thread, await ne(u ?? l ?? e.thread);
|
|
9577
9599
|
let t = u ?? l;
|
|
9578
9600
|
t && p.includes(t) ? d = !1 : p.length === 1 ? L(p[0], !0) : d = !0, !d && t && I();
|
|
9579
9601
|
} catch (e) {
|
|
9580
|
-
throw o = "unavailable", s = await
|
|
9602
|
+
throw o = "unavailable", s = await j().catch(() => s), e;
|
|
9581
9603
|
} finally {
|
|
9582
9604
|
y = null, G();
|
|
9583
9605
|
}
|
|
@@ -9587,7 +9609,7 @@ function ef(e = {}) {
|
|
|
9587
9609
|
}, K = () => {
|
|
9588
9610
|
S && globalThis.clearTimeout(S), S = globalThis.setTimeout(() => {
|
|
9589
9611
|
S = 0, b?.status === "completed" && (b = null, I(), G());
|
|
9590
|
-
},
|
|
9612
|
+
}, Nd);
|
|
9591
9613
|
}, ie = async (e) => {
|
|
9592
9614
|
if (!(!b || b.id !== e.id)) {
|
|
9593
9615
|
if (b = {
|
|
@@ -9609,24 +9631,24 @@ function ef(e = {}) {
|
|
|
9609
9631
|
if (e.status === "interrupted") {
|
|
9610
9632
|
I(), G();
|
|
9611
9633
|
let t = e.updatedAt > 0 ? e.updatedAt : Date.now();
|
|
9612
|
-
Date.now() - t <
|
|
9634
|
+
Date.now() - t < Fd && (x = globalThis.setTimeout(() => {
|
|
9613
9635
|
x = 0, ae(e.id);
|
|
9614
|
-
},
|
|
9636
|
+
}, Pd));
|
|
9615
9637
|
return;
|
|
9616
9638
|
}
|
|
9617
9639
|
G(), x = globalThis.setTimeout(() => {
|
|
9618
9640
|
x = 0, ae(e.id);
|
|
9619
|
-
},
|
|
9641
|
+
}, Md);
|
|
9620
9642
|
}
|
|
9621
9643
|
}, ae = async (e) => {
|
|
9622
9644
|
if (!(w || b?.id !== e)) try {
|
|
9623
|
-
await ie(await
|
|
9645
|
+
await ie(await N(e));
|
|
9624
9646
|
} catch (t) {
|
|
9625
9647
|
if (b?.id !== e) return;
|
|
9626
9648
|
let n = t;
|
|
9627
9649
|
if (b.status === "queued" && b.thread) try {
|
|
9628
9650
|
o !== "available" && await U(!0);
|
|
9629
|
-
let e = await
|
|
9651
|
+
let e = await P(b);
|
|
9630
9652
|
await ie(e);
|
|
9631
9653
|
return;
|
|
9632
9654
|
} catch (e) {
|
|
@@ -9640,23 +9662,23 @@ function ef(e = {}) {
|
|
|
9640
9662
|
b = {
|
|
9641
9663
|
...b,
|
|
9642
9664
|
status: "failed"
|
|
9643
|
-
}, I(),
|
|
9665
|
+
}, I(), ef(n) && (o = "unavailable"), G();
|
|
9644
9666
|
}
|
|
9645
9667
|
}, oe = {
|
|
9646
|
-
health:
|
|
9647
|
-
listThreads:
|
|
9648
|
-
delivery:
|
|
9668
|
+
health: M,
|
|
9669
|
+
listThreads: te,
|
|
9670
|
+
delivery: N,
|
|
9649
9671
|
async useThread(e) {
|
|
9650
9672
|
let t = e.trim();
|
|
9651
9673
|
if (!t) throw Error("Codex thread must be a non-empty string.");
|
|
9652
9674
|
let n = await E({
|
|
9653
9675
|
action: "target",
|
|
9654
9676
|
thread: t
|
|
9655
|
-
}), r =
|
|
9656
|
-
return s =
|
|
9677
|
+
}), r = Jd(n);
|
|
9678
|
+
return s = qd(n) ?? s, L(t, !l), f = r.thread, p = r.threads, o = "available", c = !0, G(), r;
|
|
9657
9679
|
},
|
|
9658
9680
|
async queue(e) {
|
|
9659
|
-
let r = await
|
|
9681
|
+
let r = await Zd(i, e, t), a = e?.thread?.trim(), s = a || (n ? F() : null);
|
|
9660
9682
|
if (n && !a && (d || !s)) throw Error("Choose a Codex thread before queueing feedback.");
|
|
9661
9683
|
let c = { message: r.message };
|
|
9662
9684
|
s && (c.thread = s);
|
|
@@ -9676,14 +9698,14 @@ function ef(e = {}) {
|
|
|
9676
9698
|
};
|
|
9677
9699
|
return e.queuedSubmissionId !== void 0 && (n.queuedSubmissionId = e.queuedSubmissionId?.trim() || null), e.dispatch !== void 0 && (n.dispatch = e.dispatch), e.dispatchError !== void 0 && (n.dispatchError = e.dispatchError?.trim() || null), n;
|
|
9678
9700
|
} catch (e) {
|
|
9679
|
-
throw n &&
|
|
9701
|
+
throw n && ef(e) && (o = "unavailable", G()), e;
|
|
9680
9702
|
}
|
|
9681
9703
|
},
|
|
9682
9704
|
send(e) {
|
|
9683
9705
|
return oe.queue(e);
|
|
9684
9706
|
}
|
|
9685
9707
|
};
|
|
9686
|
-
e.service.provide(
|
|
9708
|
+
e.service.provide(kd, oe);
|
|
9687
9709
|
let se = async () => {
|
|
9688
9710
|
if (!(C || R())) return re(), b = {
|
|
9689
9711
|
id: null,
|
|
@@ -9714,9 +9736,9 @@ function ef(e = {}) {
|
|
|
9714
9736
|
updatedAt: 0
|
|
9715
9737
|
}) : x = globalThis.setTimeout(() => {
|
|
9716
9738
|
x = 0, ae(e.deliveryId);
|
|
9717
|
-
},
|
|
9739
|
+
}, Md) : S = globalThis.setTimeout(() => {
|
|
9718
9740
|
S = 0, b?.id === null && b?.status === "queued" && (b = null, I(), G());
|
|
9719
|
-
},
|
|
9741
|
+
}, Nd);
|
|
9720
9742
|
} catch (e) {
|
|
9721
9743
|
b = null, I(), G();
|
|
9722
9744
|
let t = e instanceof Error ? e.message : String(e);
|
|
@@ -9744,7 +9766,7 @@ function ef(e = {}) {
|
|
|
9744
9766
|
}, 0));
|
|
9745
9767
|
let t = globalThis.setInterval(() => {
|
|
9746
9768
|
c && U().catch(() => void 0);
|
|
9747
|
-
},
|
|
9769
|
+
}, jd);
|
|
9748
9770
|
e.lifecycle.onDispose(() => {
|
|
9749
9771
|
w = !0, re(), globalThis.clearInterval(t), _?.dispose(), _ = void 0;
|
|
9750
9772
|
});
|
|
@@ -9754,15 +9776,15 @@ function ef(e = {}) {
|
|
|
9754
9776
|
}
|
|
9755
9777
|
//#endregion
|
|
9756
9778
|
//#region src/recording.ts
|
|
9757
|
-
var
|
|
9779
|
+
var nf = Cl, rf = wl, af = Tl, of = (e = {}) => ({
|
|
9758
9780
|
...Gl(e),
|
|
9759
|
-
version:
|
|
9760
|
-
}),
|
|
9761
|
-
...
|
|
9762
|
-
version:
|
|
9763
|
-
}),
|
|
9781
|
+
version: Tu
|
|
9782
|
+
}), sf = su, cf = iu, lf = au, uf = ou, df = 4, ff = $r, pf = (e, t) => Ar(e, t), mf = (e = /* @__PURE__ */ new Date()) => jr(e), hf = (e, t, n, r) => kr(e, t, n, r), gf = (e, t, n) => Or(e, t, n), _f = (e, t) => Xr(e, t), vf = (e) => Qr(e), yf = (e = {}) => ({
|
|
9783
|
+
...wu(e),
|
|
9784
|
+
version: Tu
|
|
9785
|
+
}), bf = (e) => Nr(e), xf = (e) => ({
|
|
9764
9786
|
...e,
|
|
9765
|
-
version:
|
|
9766
|
-
}),
|
|
9787
|
+
version: Tu
|
|
9788
|
+
}), Sf = () => xf($o()), Cf = () => xf(es()), wf = () => xf(ts()), Tf = () => xf(ns()), Ef = () => xf(rs()), Df = () => xf(is()), Of = () => xf(os()), kf = () => xf(as()), Af = () => ss().map(xf), jf = (e = [], t = []) => cs(e, t).map((e) => e.id.startsWith("mesurer.") ? xf(e) : e);
|
|
9767
9789
|
//#endregion
|
|
9768
|
-
export {
|
|
9790
|
+
export { Eu as MESURER_ARRANGE_ACTIVE_STATE_ID, Du as MESURER_ARRANGE_PLUGIN_ID, Ou as MESURER_ARRANGE_SERVICE_ID, ku as MESURER_ARRANGE_SETTINGS_STATE_ID, Au as MESURER_ARRANGE_STATE_ID, Od as MESURER_CODEX_PLUGIN_ID, kd as MESURER_CODEX_SERVICE_ID, gd as MESURER_CONTEXT_PLUGIN_ID, _d as MESURER_CONTEXT_SERVICE_ID, vd as MESURER_CONTEXT_SETTINGS_STATE_ID, Nu as MESURER_EDIT_ACTIVE_STATE_ID, Pu as MESURER_EDIT_PLUGIN_ID, Fu as MESURER_EDIT_SERVICE_ID, Iu as MESURER_EDIT_SETTINGS_STATE_ID, Lu as MESURER_EDIT_STATE_ID, md as MESURER_LAYOUT_GUIDES_ACTIVE_STATE_ID, dd as MESURER_LAYOUT_GUIDES_PLUGIN_ID, fd as MESURER_LAYOUT_GUIDES_SERVICE_ID, pd as MESURER_LAYOUT_GUIDES_STATE_ID, nf as MESURER_RECORDING_PLUGIN_ID, rf as MESURER_RECORDING_SERVICE_ID, af as MESURER_RECORDING_SETTINGS_STATE_ID, sf as MESURER_SCREENSHOT_ACTIVE_STATE_ID, cf as MESURER_SCREENSHOT_PLUGIN_ID, lf as MESURER_SCREENSHOT_SERVICE_ID, uf as MESURER_SCREENSHOT_SETTINGS_STATE_ID, df as MIN_SCREENSHOT_SELECTION, ju as arrange, ff as captureVisibleTabPng, tf as codex, wf as colorPicker, jf as compose, Dd as context, pf as copyPngToClipboard, mf as createScreenshotFilename, hf as cropPngToViewportRect, Af as defaults, Of as distance, Mu as edit, Df as guides, hd as layoutGuides, gf as normalizeScreenshotRect, _f as prepareScreenshotCapture, of as recording, vf as releaseScreenshotCapture, Tf as rulers, yf as screenshot, Sf as select, kf as settings, Ef as typography, bf as waitForNextPaint, Cf as xray };
|