mesurer-solid 0.2.1-beta.11 → 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 +992 -958
- package/dist/inject-script.js +12 -12
- package/dist/inject.js +987 -953
- package/dist/plugins.js +927 -899
- 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 N = 0, P = null,
|
|
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) {
|
|
@@ -114,7 +114,7 @@ function V() {
|
|
|
114
114
|
ln: /* @__PURE__ */ new Set()
|
|
115
115
|
};
|
|
116
116
|
}
|
|
117
|
-
function
|
|
117
|
+
function H(e, t) {
|
|
118
118
|
t.fn = e, e.ie.push(...t.ie);
|
|
119
119
|
for (let n of C) n.Ne === t && (n.Ne = e);
|
|
120
120
|
t.Me.length && (e.Me.push(...t.Me), t.Me.length = 0), t.A.length && (e.A.push(...t.A), t.A.length = 0);
|
|
@@ -126,23 +126,23 @@ function ne(e, t) {
|
|
|
126
126
|
}
|
|
127
127
|
for (let n of t.ln) e.ln.add(n);
|
|
128
128
|
}
|
|
129
|
-
function
|
|
130
|
-
if (
|
|
131
|
-
|
|
129
|
+
function U() {
|
|
130
|
+
if (F) {
|
|
131
|
+
G();
|
|
132
132
|
return;
|
|
133
133
|
}
|
|
134
|
-
|
|
134
|
+
te || (te = !0, !L && !q.gt && queueMicrotask(pe));
|
|
135
135
|
}
|
|
136
|
-
function
|
|
137
|
-
if (
|
|
138
|
-
|
|
136
|
+
function W(e) {
|
|
137
|
+
if (F) return;
|
|
138
|
+
F = !0;
|
|
139
139
|
let t = "[REACTIVITY_HALTED]";
|
|
140
140
|
e === void 0 ? console.error(t) : console.error(t, e);
|
|
141
141
|
}
|
|
142
|
-
function
|
|
143
|
-
|
|
142
|
+
function G() {
|
|
143
|
+
I || (I = !0, console.error("[REACTIVITY_HALTED]"));
|
|
144
144
|
}
|
|
145
|
-
var
|
|
145
|
+
var ne = 0, re = class {
|
|
146
146
|
ke = null;
|
|
147
147
|
bt = [[], []];
|
|
148
148
|
vt = [];
|
|
@@ -163,7 +163,7 @@ var re = 0, G = class {
|
|
|
163
163
|
let t = this.bt[e - 1];
|
|
164
164
|
this.bt[e - 1] = [], me(t, e);
|
|
165
165
|
}
|
|
166
|
-
let t = this.vt, n = ++
|
|
166
|
+
let t = this.vt, n = ++ne;
|
|
167
167
|
for (let r = 0; r < t.length;) {
|
|
168
168
|
let i = t[r];
|
|
169
169
|
if (i.kt !== n && (i.kt = n, i.run?.(e), t[r] !== i)) {
|
|
@@ -174,7 +174,7 @@ var re = 0, G = class {
|
|
|
174
174
|
}
|
|
175
175
|
}
|
|
176
176
|
enqueue(e, t) {
|
|
177
|
-
e && (lt ? w(lt).rn[e - 1].push(t) : this.bt[e - 1].push(t)),
|
|
177
|
+
e && (lt ? w(lt).rn[e - 1].push(t) : this.bt[e - 1].push(t)), U();
|
|
178
178
|
}
|
|
179
179
|
stashQueues(e) {
|
|
180
180
|
e.bt[0].push(...this.bt[0]), e.bt[1].push(...this.bt[1]), this.bt = [[], []];
|
|
@@ -193,7 +193,7 @@ var re = 0, G = class {
|
|
|
193
193
|
r && r.restoreQueues(n);
|
|
194
194
|
}
|
|
195
195
|
}
|
|
196
|
-
}, K = class e extends
|
|
196
|
+
}, K = class e extends re {
|
|
197
197
|
gt = !1;
|
|
198
198
|
m = V();
|
|
199
199
|
static Ce;
|
|
@@ -232,19 +232,19 @@ var re = 0, G = class {
|
|
|
232
232
|
if (!this.gt) {
|
|
233
233
|
this.gt = !0;
|
|
234
234
|
try {
|
|
235
|
-
if (De(
|
|
235
|
+
if (De(j, e.Ce), P) {
|
|
236
236
|
if (!ge(P)) {
|
|
237
237
|
let t = P;
|
|
238
|
-
De(
|
|
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
241
|
let t = P, n = this.m;
|
|
242
|
-
if (n !== t && n.Qt.push(...t.Qt), this.restoreQueues(t.yt),
|
|
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
|
-
N++,
|
|
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
|
}
|
|
@@ -259,7 +259,7 @@ var re = 0, G = class {
|
|
|
259
259
|
let n = t.source, r = P.Ie.get(n);
|
|
260
260
|
r || P.Ie.set(n, r = /* @__PURE__ */ new Set());
|
|
261
261
|
let i = r.size;
|
|
262
|
-
r.add(e), r.size !== i &&
|
|
262
|
+
r.add(e), r.size !== i && U();
|
|
263
263
|
}
|
|
264
264
|
}
|
|
265
265
|
return !0;
|
|
@@ -271,9 +271,9 @@ var re = 0, G = class {
|
|
|
271
271
|
if (!P) P = e ?? V();
|
|
272
272
|
else if (e) {
|
|
273
273
|
let t = P;
|
|
274
|
-
|
|
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
278
|
if (t !== P) {
|
|
279
279
|
for (let e = 0; e < t.Qt.length; 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,13 +325,13 @@ 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) {
|
|
333
333
|
for (let e of t.ln) e.se & 64 || be(e);
|
|
334
|
-
t.ln.clear(),
|
|
334
|
+
t.ln.clear(), U();
|
|
335
335
|
}
|
|
336
336
|
t.A.length && (K.G(t.A), q.vt.length && ue(q)), t.cn.size && K.Dt(t.cn, e), B(), C.size && K.dn(e);
|
|
337
337
|
}
|
|
@@ -345,18 +345,18 @@ function de(e) {
|
|
|
345
345
|
var q = new K(), fe = q.m;
|
|
346
346
|
function pe(e) {
|
|
347
347
|
if (e) {
|
|
348
|
-
|
|
348
|
+
L++;
|
|
349
349
|
try {
|
|
350
350
|
return e();
|
|
351
351
|
} finally {
|
|
352
352
|
try {
|
|
353
353
|
pe();
|
|
354
354
|
} finally {
|
|
355
|
-
|
|
355
|
+
L--;
|
|
356
356
|
}
|
|
357
357
|
}
|
|
358
358
|
}
|
|
359
|
-
if (!q.gt && !
|
|
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);
|
|
@@ -409,7 +409,7 @@ function ve(e, t) {
|
|
|
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) {
|
|
@@ -684,7 +684,7 @@ function $e(e, t) {
|
|
|
684
684
|
let n = !1, r = /* @__PURE__ */ new Set(), i = (e) => {
|
|
685
685
|
r.has(e) || (r.add(e), e._ === t && (be(e), n = !0), Xe(e, i));
|
|
686
686
|
};
|
|
687
|
-
Xe(e, i), n &&
|
|
687
|
+
Xe(e, i), n && U();
|
|
688
688
|
}
|
|
689
689
|
function et(e) {
|
|
690
690
|
let t = !1, n, r = /* @__PURE__ */ new Set(), i = K.Se, a = (o) => {
|
|
@@ -694,7 +694,7 @@ function et(e) {
|
|
|
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
|
};
|
|
696
696
|
if (Xe(e, a), n) for (let e of n) Ze(e);
|
|
697
|
-
t &&
|
|
697
|
+
t && U();
|
|
698
698
|
}
|
|
699
699
|
function tt(e) {
|
|
700
700
|
return typeof e == "object" && !!e && typeof e.then == "function";
|
|
@@ -740,7 +740,7 @@ function nt(e, t, n) {
|
|
|
740
740
|
} catch (t) {
|
|
741
741
|
it(e, 2, t);
|
|
742
742
|
}
|
|
743
|
-
e.De === _ && (e.Ee = !1), et(e),
|
|
743
|
+
e.De === _ && (e.Ee = !1), et(e), U(), pe(), i?.();
|
|
744
744
|
}, l = () => e.T & 32 && !e.o && !(e.S & 1) ? (Ue(e), !0) : !1;
|
|
745
745
|
if (i) {
|
|
746
746
|
let n = !1, r = !1, i, o = !0;
|
|
@@ -773,7 +773,7 @@ function nt(e, t, n) {
|
|
|
773
773
|
if ((tt(_) ? _ : { then: (e) => void e(_) }).then((n) => {
|
|
774
774
|
if (g && o) d = n, m = !0, n.done && (i = !0);
|
|
775
775
|
else if (e.Te !== t) return;
|
|
776
|
-
else n.done ? (i = !0, r ? (
|
|
776
|
+
else n.done ? (i = !0, r ? (U(), pe()) : c(void 0), l()) : (r = !0, c(n.value, u));
|
|
777
777
|
}, (n) => {
|
|
778
778
|
g ? (p = n, h = !0) : e.Te === t && (i = !0, s(n), l());
|
|
779
779
|
}), g = !1, h) {
|
|
@@ -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;
|
|
@@ -806,7 +806,7 @@ function it(e, t, n, r, i) {
|
|
|
806
806
|
Xe(e, (e, r) => {
|
|
807
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
|
-
be(e),
|
|
809
|
+
be(e), U();
|
|
810
810
|
return;
|
|
811
811
|
}
|
|
812
812
|
!l && !e.Ne && ie(e), it(e, t, n, l, u);
|
|
@@ -1030,10 +1030,10 @@ function bt(e) {
|
|
|
1030
1030
|
function xt(e, t) {
|
|
1031
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 = N, oe(e),
|
|
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
|
-
we(e, ye(e)), !(e.se & 1024) && e.De === _ && (ie(e),
|
|
1036
|
+
we(e, ye(e)), !(e.se & 1024) && e.De === _ && (ie(e), U()), e.se = e.se & -4 | h;
|
|
1037
1037
|
}
|
|
1038
1038
|
function Ct(e, t) {
|
|
1039
1039
|
let n = xt(e, t);
|
|
@@ -1073,7 +1073,7 @@ function Ot(e, t) {
|
|
|
1073
1073
|
this.S & 2 && (this.Je = !0, this.C.enqueue(this.Re, this.Xe ??= kt.bind(null, this)));
|
|
1074
1074
|
return;
|
|
1075
1075
|
}
|
|
1076
|
-
if (!this.C.notify(this, 2, 2)) throw
|
|
1076
|
+
if (!this.C.notify(this, 2, 2)) throw W(p(r)), r;
|
|
1077
1077
|
} else this.Re === 1 && this.C.notify(this, 3, n, r);
|
|
1078
1078
|
}
|
|
1079
1079
|
function kt(e) {
|
|
@@ -1087,7 +1087,7 @@ function kt(e) {
|
|
|
1087
1087
|
e.Tt = void 0, t?.();
|
|
1088
1088
|
}) : console.error(t);
|
|
1089
1089
|
} catch (t) {
|
|
1090
|
-
if (!e.C.notify(e, 2, 2)) throw
|
|
1090
|
+
if (!e.C.notify(e, 2, 2)) throw W(t), t;
|
|
1091
1091
|
}
|
|
1092
1092
|
return;
|
|
1093
1093
|
}
|
|
@@ -1096,7 +1096,7 @@ function kt(e) {
|
|
|
1096
1096
|
try {
|
|
1097
1097
|
t?.(), e.Tt = e.ft(e.Ue, e._t);
|
|
1098
1098
|
} catch (t) {
|
|
1099
|
-
if (e._ = new f(e, t), e.S |= 2, !e.C.notify(e, 2, 2)) throw
|
|
1099
|
+
if (e._ = new f(e, t), e.S |= 2, !e.C.notify(e, 2, 2)) throw W(t), t;
|
|
1100
1100
|
} finally {
|
|
1101
1101
|
e._t = e.Ue, e.Je = !1;
|
|
1102
1102
|
}
|
|
@@ -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
|
-
}, 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']"),
|
|
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
3336
|
if (P(i)) return i;
|
|
3337
3337
|
}
|
|
3338
3338
|
return null;
|
|
3339
|
-
},
|
|
3340
|
-
v = null,
|
|
3341
|
-
},
|
|
3339
|
+
}, F = () => {
|
|
3340
|
+
v = null, M(g, !1), M(_, !1);
|
|
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
3346
|
if (!m || !P(t)) return !1;
|
|
3347
|
-
|
|
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);
|
|
@@ -3361,9 +3361,9 @@ function Xa(e = {}, t = !1) {
|
|
|
3361
3361
|
}, V = (t, n = !0, r = !0) => {
|
|
3362
3362
|
let i = E.indexOf(t);
|
|
3363
3363
|
i < 0 || (n && B(), E.splice(i, 1), t.detach(), t.box.remove(), t.card.remove(), r && e.onUnpin?.(t.sourceEl));
|
|
3364
|
-
},
|
|
3364
|
+
}, H = (e = !1) => {
|
|
3365
3365
|
for (; E.length;) V(E[E.length - 1], !1, e);
|
|
3366
|
-
},
|
|
3366
|
+
}, U = (e) => {
|
|
3367
3367
|
let t = -1, n = 0, i = 0, a = 0, o = 0, s = !1, c = !1, l = (l) => {
|
|
3368
3368
|
if (l.pointerId !== t) return;
|
|
3369
3369
|
let u = l.clientX - n, d = l.clientY - i;
|
|
@@ -3378,15 +3378,15 @@ function Xa(e = {}, t = !1) {
|
|
|
3378
3378
|
return e.card.addEventListener("pointerdown", f), () => {
|
|
3379
3379
|
e.card.removeEventListener("pointerdown", f), r.removeEventListener("pointermove", l), r.removeEventListener("pointerup", u), r.removeEventListener("pointercancel", u);
|
|
3380
3380
|
};
|
|
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,
|
|
@@ -3396,20 +3396,20 @@ function Xa(e = {}, t = !1) {
|
|
|
3396
3396
|
userPlaced: i?.userPlaced ?? !1,
|
|
3397
3397
|
detach: () => {}
|
|
3398
3398
|
};
|
|
3399
|
-
E.push(m), m.detach =
|
|
3399
|
+
E.push(m), m.detach = U(m), d.querySelector(".mesurer-ti-close")?.addEventListener("click", (e) => {
|
|
3400
3400
|
e.preventDefault(), e.stopPropagation(), V(m);
|
|
3401
3401
|
}), o && e.onPin?.(t, f);
|
|
3402
|
-
},
|
|
3403
|
-
|
|
3404
|
-
for (let t of e) t.sourceEl.isConnected &&
|
|
3405
|
-
},
|
|
3402
|
+
}, G = (e) => {
|
|
3403
|
+
H(!1);
|
|
3404
|
+
for (let t of e) t.sourceEl.isConnected && W(t.sourceEl, t, !1, !1);
|
|
3405
|
+
}, ne = () => {
|
|
3406
3406
|
let e = D.pop();
|
|
3407
|
-
return e ? (O.push(z()),
|
|
3408
|
-
},
|
|
3407
|
+
return e ? (O.push(z()), G(e), !0) : !1;
|
|
3408
|
+
}, re = () => {
|
|
3409
3409
|
let e = O.pop();
|
|
3410
|
-
return e ? (D.push(z()),
|
|
3410
|
+
return e ? (D.push(z()), G(e), !0) : !1;
|
|
3411
3411
|
}, K = () => {
|
|
3412
|
-
E.length && (B(),
|
|
3412
|
+
E.length && (B(), H(!0));
|
|
3413
3413
|
}, ie = () => {
|
|
3414
3414
|
for (let e of E.slice()) {
|
|
3415
3415
|
if (!e.sourceEl.isConnected) {
|
|
@@ -3419,25 +3419,25 @@ 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) {
|
|
3426
3426
|
if (v && g && _) {
|
|
3427
|
-
if (!v.isConnected)
|
|
3427
|
+
if (!v.isConnected) F();
|
|
3428
3428
|
else {
|
|
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 =
|
|
3440
|
-
if (!e)
|
|
3439
|
+
let e = te(y.x, y.y);
|
|
3440
|
+
if (!e) F();
|
|
3441
3441
|
else if (e !== v) R(e);
|
|
3442
3442
|
else if (g && _) {
|
|
3443
3443
|
let t = e.getBoundingClientRect();
|
|
@@ -3452,11 +3452,11 @@ function Xa(e = {}, t = !1) {
|
|
|
3452
3452
|
if (y = {
|
|
3453
3453
|
x: e.clientX,
|
|
3454
3454
|
y: e.clientY
|
|
3455
|
-
}, ce(e) ||
|
|
3456
|
-
|
|
3455
|
+
}, ce(e) || L(e.clientX, e.clientY)) {
|
|
3456
|
+
F();
|
|
3457
3457
|
return;
|
|
3458
3458
|
}
|
|
3459
|
-
|
|
3459
|
+
I(_, e.clientX, e.clientY) || se();
|
|
3460
3460
|
}, ue = (e, t, n) => {
|
|
3461
3461
|
if (!e || e.dataset.mesurerNativeScrollAnchor) return;
|
|
3462
3462
|
let r = Number.parseFloat(e.style.left), i = Number.parseFloat(e.style.top);
|
|
@@ -3475,41 +3475,41 @@ function Xa(e = {}, t = !1) {
|
|
|
3475
3475
|
}
|
|
3476
3476
|
ae(), se();
|
|
3477
3477
|
}, q = (e) => {
|
|
3478
|
-
e.relatedTarget ||
|
|
3478
|
+
e.relatedTarget || F();
|
|
3479
3479
|
}, fe = (e) => {
|
|
3480
3480
|
if (!ce(e)) {
|
|
3481
|
-
if (
|
|
3481
|
+
if (I(_, e.clientX, e.clientY) || L(e.clientX, e.clientY)) {
|
|
3482
3482
|
e.preventDefault(), e.stopImmediatePropagation();
|
|
3483
3483
|
return;
|
|
3484
3484
|
}
|
|
3485
3485
|
if (e.preventDefault(), e.stopImmediatePropagation(), e.button === 0) {
|
|
3486
|
-
let t =
|
|
3487
|
-
t &&
|
|
3486
|
+
let t = te(e.clientX, e.clientY);
|
|
3487
|
+
t && W(t);
|
|
3488
3488
|
}
|
|
3489
3489
|
}
|
|
3490
3490
|
}, pe = (e) => {
|
|
3491
3491
|
if (!ce(e)) {
|
|
3492
|
-
if (
|
|
3492
|
+
if (I(_, e.clientX, e.clientY) || L(e.clientX, e.clientY)) {
|
|
3493
3493
|
e.preventDefault(), e.stopImmediatePropagation();
|
|
3494
3494
|
return;
|
|
3495
3495
|
}
|
|
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
|
-
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),
|
|
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,
|
|
3510
3510
|
disable: he,
|
|
3511
|
-
undo:
|
|
3512
|
-
redo:
|
|
3511
|
+
undo: ne,
|
|
3512
|
+
redo: re,
|
|
3513
3513
|
clear: K,
|
|
3514
3514
|
inspect: R,
|
|
3515
3515
|
isEnabled: () => m,
|
|
@@ -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,26 +3695,26 @@ 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,
|
|
3711
|
-
},
|
|
3710
|
+
(!h.get(e) || !Vo(t, te)) && h.set(e, t), Vo(t, te) || e.style.setProperty("transition-property", te.value, te.priority);
|
|
3711
|
+
}, I = (e) => {
|
|
3712
3712
|
let t = h.get(e);
|
|
3713
|
-
t && (Vo(zo(e, "transition-property"),
|
|
3714
|
-
},
|
|
3715
|
-
for (let t of h.keys()) e.has(t) ||
|
|
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
|
+
}, L = (e) => {
|
|
3715
|
+
for (let t of h.keys()) e.has(t) || I(t);
|
|
3716
3716
|
}, R = () => {
|
|
3717
|
-
for (let e of h.keys())
|
|
3717
|
+
for (let e of h.keys()) I(e);
|
|
3718
3718
|
}, z = () => {
|
|
3719
3719
|
for (let e of p.values()) Uo(e);
|
|
3720
3720
|
p.clear();
|
|
@@ -3722,7 +3722,7 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3722
3722
|
z(), R();
|
|
3723
3723
|
}, V = () => {
|
|
3724
3724
|
u.style.display = "none", d.style.display = "none";
|
|
3725
|
-
},
|
|
3725
|
+
}, H = (e, t, n) => {
|
|
3726
3726
|
if (V(), D().snapLines) {
|
|
3727
3727
|
if (e) {
|
|
3728
3728
|
let t = Math.min(n.top, e.start), r = Math.max(n.top + n.height, e.end);
|
|
@@ -3733,34 +3733,34 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3733
3733
|
d.style.display = "block", d.style.left = `${e}px`, d.style.top = `${t.position}px`, d.style.width = `${Math.max(1, r - e)}px`;
|
|
3734
3734
|
}
|
|
3735
3735
|
}
|
|
3736
|
-
},
|
|
3736
|
+
}, U = () => !!(n.querySelector(wo) || s.querySelector(wo)), W = () => {
|
|
3737
3737
|
for (let [e, t] of g) t.value || t.priority ? e.style.setProperty("visibility", t.value, t.priority) : e.style.removeProperty("visibility");
|
|
3738
3738
|
g.clear();
|
|
3739
|
-
},
|
|
3740
|
-
if (
|
|
3741
|
-
|
|
3739
|
+
}, G = () => {
|
|
3740
|
+
if (U()) {
|
|
3741
|
+
W();
|
|
3742
3742
|
return;
|
|
3743
3743
|
}
|
|
3744
3744
|
if (!(g.size > 0)) for (let e of s.querySelectorAll("[data-mesurer-measurement='true']")) e instanceof c.HTMLElement && (e.matches("[data-mesurer-selected-measurement='true'][data-mesurer-inspector-ui='true']") && e.getRootNode() === n && e.parentElement === n.body || (g.set(e, {
|
|
3745
3745
|
value: e.style.getPropertyValue("visibility"),
|
|
3746
3746
|
priority: e.style.getPropertyPriority("visibility")
|
|
3747
3747
|
}), e.style.setProperty("visibility", "hidden", "important")));
|
|
3748
|
-
},
|
|
3748
|
+
}, ne = (e) => {
|
|
3749
3749
|
if (e.parentElement instanceof c.HTMLElement) return e.parentElement;
|
|
3750
3750
|
let t = e.getRootNode();
|
|
3751
3751
|
return t instanceof c.ShadowRoot && t.host instanceof c.HTMLElement ? t.host : null;
|
|
3752
|
-
},
|
|
3753
|
-
let n =
|
|
3752
|
+
}, re = (e, t) => {
|
|
3753
|
+
let n = ne(e);
|
|
3754
3754
|
for (; n;) {
|
|
3755
3755
|
let e = t.get(n);
|
|
3756
3756
|
if (e) return e;
|
|
3757
|
-
n =
|
|
3757
|
+
n = ne(n);
|
|
3758
3758
|
}
|
|
3759
3759
|
return {
|
|
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
3766
|
let n = P(e);
|
|
@@ -3771,13 +3771,13 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3771
3771
|
x: e.desiredLocalOffsetX,
|
|
3772
3772
|
y: e.desiredLocalOffsetY
|
|
3773
3773
|
}, ae = (e, t) => {
|
|
3774
|
-
let n =
|
|
3774
|
+
let n = ne(e);
|
|
3775
3775
|
for (; n;) {
|
|
3776
3776
|
if (t.has(n)) return n;
|
|
3777
|
-
n =
|
|
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;
|
|
@@ -3825,8 +3825,8 @@ 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 || !
|
|
3829
|
-
let r =
|
|
3828
|
+
if (!t.isConnected || !M(t)) return [];
|
|
3829
|
+
let r = re(t, e), i = {
|
|
3830
3830
|
x: n.x - r.x,
|
|
3831
3831
|
y: n.y - r.y
|
|
3832
3832
|
};
|
|
@@ -3835,7 +3835,7 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3835
3835
|
offset: i
|
|
3836
3836
|
}];
|
|
3837
3837
|
}), n = new Set(t.map(({ element: e }) => e));
|
|
3838
|
-
for (let { element: e } of t)
|
|
3838
|
+
for (let { element: e } of t) F(e);
|
|
3839
3839
|
z();
|
|
3840
3840
|
for (let { element: e, offset: n } of t) {
|
|
3841
3841
|
let t = Bo(e), i = r.getComputedStyle(e).transform, a = i && i !== "none" ? ` ${i}` : "";
|
|
@@ -3845,7 +3845,7 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3845
3845
|
appliedTransform: Bo(e)
|
|
3846
3846
|
});
|
|
3847
3847
|
}
|
|
3848
|
-
|
|
3848
|
+
L(n);
|
|
3849
3849
|
}, le = () => ce(se()), ue = (e) => {
|
|
3850
3850
|
z();
|
|
3851
3851
|
try {
|
|
@@ -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,13 +3877,13 @@ 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;
|
|
3884
3884
|
let s = i.get(t);
|
|
3885
3885
|
if (!s) continue;
|
|
3886
|
-
let c =
|
|
3886
|
+
let c = re(t, i), u = ie(o) ?? {
|
|
3887
3887
|
x: s.x - c.x,
|
|
3888
3888
|
y: s.y - c.y
|
|
3889
3889
|
};
|
|
@@ -3903,7 +3903,7 @@ 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
3908
|
let r = P(e), i = r !== null && n.has(r);
|
|
3909
3909
|
return i && (t = !0), !i;
|
|
@@ -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;
|
|
@@ -4007,14 +4007,14 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
4007
4007
|
v = {
|
|
4008
4008
|
intentId: null,
|
|
4009
4009
|
state: "desired"
|
|
4010
|
-
}, le(), V(), E() ?
|
|
4010
|
+
}, le(), V(), E() ? G() : W();
|
|
4011
4011
|
}, Se = () => {
|
|
4012
4012
|
v = {
|
|
4013
4013
|
intentId: null,
|
|
4014
4014
|
state: "live"
|
|
4015
|
-
}, B(), V(),
|
|
4015
|
+
}, B(), V(), W();
|
|
4016
4016
|
}, Ce = () => {
|
|
4017
|
-
S || y || (le(), V(), E() ?
|
|
4017
|
+
S || y || (le(), V(), E() ? G() : W(), be());
|
|
4018
4018
|
}, we = () => {
|
|
4019
4019
|
C || S || (C = r.requestAnimationFrame(() => {
|
|
4020
4020
|
C = 0, Ce();
|
|
@@ -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,10 +4041,10 @@ 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
|
-
let n = zi(e), r =
|
|
4047
|
+
let n = zi(e), r = re(e, d), i = d.get(e) ?? r, a = u.get(e), o = (a ? ie(a) : null) ?? {
|
|
4048
4048
|
x: i.x - r.x,
|
|
4049
4049
|
y: i.y - r.y
|
|
4050
4050
|
}, s = Eo(n, i), c = oa(e);
|
|
@@ -4090,14 +4090,14 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
4090
4090
|
le();
|
|
4091
4091
|
return;
|
|
4092
4092
|
}
|
|
4093
|
-
le(),
|
|
4093
|
+
le(), G(), V(), y = {
|
|
4094
4094
|
pointerId: e.pointerId,
|
|
4095
4095
|
originX: e.clientX,
|
|
4096
4096
|
originY: e.clientY,
|
|
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,13 +4129,13 @@ 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,
|
|
4136
4136
|
y: n
|
|
4137
4137
|
});
|
|
4138
|
-
be(c),
|
|
4138
|
+
be(c), H(a, o, c);
|
|
4139
4139
|
}, ke = () => {
|
|
4140
4140
|
if (!y) return;
|
|
4141
4141
|
let e = y.pointerId;
|
|
@@ -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,
|
|
@@ -4192,14 +4192,14 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
4192
4192
|
y: e.clientY
|
|
4193
4193
|
}, t.rendererRoot ?? null, n, o)), Ne = (e) => {
|
|
4194
4194
|
if (!E()) return;
|
|
4195
|
-
if (y || e.buttons !== 0 ||
|
|
4195
|
+
if (y || e.buttons !== 0 || U()) {
|
|
4196
4196
|
i.clearHover();
|
|
4197
4197
|
return;
|
|
4198
4198
|
}
|
|
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) {
|
|
@@ -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
|
}
|
|
@@ -4474,9 +4474,9 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
4474
4474
|
e.state.update(no, () => ({ intents: [] })), v = {
|
|
4475
4475
|
intentId: null,
|
|
4476
4476
|
state: "desired"
|
|
4477
|
-
}, B(), V(), E() ?
|
|
4477
|
+
}, B(), V(), E() ? G() : W(), be();
|
|
4478
4478
|
}), e.service.provide(to, ze), le(), be(), e.lifecycle.onDispose(() => {
|
|
4479
|
-
S = !0, C && r.cancelAnimationFrame(C), w?.disconnect(), w = null, f.removeEventListener("pointerdown", Ee), f.removeEventListener("pointermove", Oe), f.removeEventListener("pointerup", Ae), f.removeEventListener("pointercancel", je), r.removeEventListener("pointermove", Ne, !0), r.removeEventListener("keydown", Pe, !0), r.removeEventListener("resize", we), r.removeEventListener("scroll", we, !0), o.removeEventListener("scroll", we, !0), Fe(), Ie.dispose(), B(), me(), V(),
|
|
4479
|
+
S = !0, C && r.cancelAnimationFrame(C), w?.disconnect(), w = null, f.removeEventListener("pointerdown", Ee), f.removeEventListener("pointermove", Oe), f.removeEventListener("pointerup", Ae), f.removeEventListener("pointercancel", je), r.removeEventListener("pointermove", Ne, !0), r.removeEventListener("keydown", Pe, !0), r.removeEventListener("resize", we), r.removeEventListener("scroll", we, !0), o.removeEventListener("scroll", we, !0), Fe(), Ie.dispose(), B(), me(), V(), W(), i.dispose(), a.dispose();
|
|
4480
4480
|
});
|
|
4481
4481
|
}
|
|
4482
4482
|
}), Ko = (e, t, n) => {
|
|
@@ -4770,22 +4770,22 @@ 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 {
|
|
4777
4777
|
left: e.left + t.scrollX,
|
|
4778
4778
|
top: e.top + t.scrollY
|
|
4779
4779
|
};
|
|
4780
|
-
},
|
|
4780
|
+
}, W = () => {
|
|
4781
4781
|
let t = e.runtime.currentSelection();
|
|
4782
4782
|
return {
|
|
4783
4783
|
elements: [...t.elements],
|
|
4784
4784
|
region: t.region ? { ...t.region } : null
|
|
4785
4785
|
};
|
|
4786
|
-
},
|
|
4787
|
-
|
|
4788
|
-
},
|
|
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
|
+
A = null, v(""), g(!1), b(null), m(null);
|
|
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)"));
|
|
4791
4791
|
}, K = () => {
|
|
@@ -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 !== N ||
|
|
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,13 +4849,13 @@ function Ss(e) {
|
|
|
4849
4849
|
};
|
|
4850
4850
|
e.initialTriggerFallback && (O = K());
|
|
4851
4851
|
let pe = () => {
|
|
4852
|
-
|
|
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 = P, n = !!(e?.isConnected && me(e)), r =
|
|
4856
|
+
let t = P, n = !!(e?.isConnected && me(e)), r = te === e;
|
|
4857
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}`;
|
|
@@ -4864,17 +4864,17 @@ function Ss(e) {
|
|
|
4864
4864
|
let a = e.ownerDocument.defaultView;
|
|
4865
4865
|
if (a) {
|
|
4866
4866
|
if (n && _s(e)) {
|
|
4867
|
-
|
|
4867
|
+
F = vs(e, i), te = e, D = i, I = mi(a, e, ae, { trackWindow: !1 });
|
|
4868
4868
|
return;
|
|
4869
4869
|
}
|
|
4870
|
-
D = i,
|
|
4870
|
+
D = i, I = mi(a, e, ae, { trackWindow: V() });
|
|
4871
4871
|
}
|
|
4872
4872
|
}, ge = (e) => {
|
|
4873
|
-
if (
|
|
4873
|
+
if (L?.disconnect(), L = null, !e?.isConnected) return;
|
|
4874
4874
|
let t = e.ownerDocument.defaultView;
|
|
4875
|
-
t && (
|
|
4875
|
+
t && (L = new t.ResizeObserver(() => {
|
|
4876
4876
|
i((e) => e + 1);
|
|
4877
|
-
}),
|
|
4877
|
+
}), L.observe(e));
|
|
4878
4878
|
}, _e = () => {
|
|
4879
4879
|
let e = B();
|
|
4880
4880
|
R !== e && (R?.removeEventListener("resize", ve), R = e, R.addEventListener("resize", ve, { passive: !0 }));
|
|
@@ -4886,12 +4886,12 @@ 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();
|
|
4895
4895
|
for (let e of z.keys()) se(e);
|
|
4896
4896
|
be();
|
|
4897
4897
|
});
|
|
@@ -4920,8 +4920,8 @@ 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 =
|
|
4924
|
-
return e !== null &&
|
|
4923
|
+
let e = A;
|
|
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) => {
|
|
4927
4927
|
let t = e.getBoundingClientRect();
|
|
@@ -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,
|
|
@@ -4990,7 +4990,7 @@ function Ss(e) {
|
|
|
4990
4990
|
r();
|
|
4991
4991
|
let n = z.get(e);
|
|
4992
4992
|
if (!n?.anchorName || !n.target.isConnected) return {
|
|
4993
|
-
...
|
|
4993
|
+
...U(t),
|
|
4994
4994
|
nativeAnchor: !1
|
|
4995
4995
|
};
|
|
4996
4996
|
let i = n.target.getBoundingClientRect();
|
|
@@ -5013,8 +5013,8 @@ function Ss(e) {
|
|
|
5013
5013
|
}, ze = () => {
|
|
5014
5014
|
r();
|
|
5015
5015
|
let e = Re(), t = Ne();
|
|
5016
|
-
if (!t?.isConnected ||
|
|
5017
|
-
...
|
|
5016
|
+
if (!t?.isConnected || te !== t) return {
|
|
5017
|
+
...U(e),
|
|
5018
5018
|
nativeAnchor: !1
|
|
5019
5019
|
};
|
|
5020
5020
|
let n = t.getBoundingClientRect();
|
|
@@ -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()) {
|
|
@@ -5159,9 +5159,9 @@ function Ss(e) {
|
|
|
5159
5159
|
S(!1);
|
|
5160
5160
|
}
|
|
5161
5161
|
}
|
|
5162
|
-
}, qe =
|
|
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());
|
|
@@ -5170,16 +5170,16 @@ function Ss(e) {
|
|
|
5170
5170
|
top: t.top - e.top
|
|
5171
5171
|
});
|
|
5172
5172
|
} else m(null);
|
|
5173
|
-
g(!0), B().queueMicrotask(() =>
|
|
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,10 +5227,10 @@ function Ss(e) {
|
|
|
5227
5227
|
}
|
|
5228
5228
|
});
|
|
5229
5229
|
return fr(() => (e) => {
|
|
5230
|
-
N = e,
|
|
5230
|
+
N = e, I?.sync();
|
|
5231
5231
|
}, t), Q(t, Y(Mi, { size: 14 })), or(() => ({
|
|
5232
5232
|
e: V() ? "viewport" : "document",
|
|
5233
|
-
t:
|
|
5233
|
+
t: H(e().nativeAnchor),
|
|
5234
5234
|
a: {
|
|
5235
5235
|
position: e().nativeAnchor || e().viewportOwned ? "fixed" : "absolute",
|
|
5236
5236
|
left: e().nativeAnchor ? `calc(anchor(left) + ${e().anchorX}px)` : `${e().left}px`,
|
|
@@ -5306,7 +5306,7 @@ function Ss(e) {
|
|
|
5306
5306
|
})()
|
|
5307
5307
|
}), c), Z(c, l), Z(c, u), Z(l, cr("⌘/Ctrl ↵")), Z(u, d), Z(u, f), Z(d, cr("Cancel")), Z(f, cr("Add note")), or(() => ({
|
|
5308
5308
|
e: V() ? "viewport" : "document",
|
|
5309
|
-
t:
|
|
5309
|
+
t: H(e().nativeAnchor),
|
|
5310
5310
|
a: {
|
|
5311
5311
|
position: e().nativeAnchor || V() ? "fixed" : "absolute",
|
|
5312
5312
|
left: e().nativeAnchor ? `calc(anchor(left) + ${e().anchorX}px)` : `${e().left}px`,
|
|
@@ -5335,7 +5335,7 @@ function Ss(e) {
|
|
|
5335
5335
|
left: e.left,
|
|
5336
5336
|
top: e.top
|
|
5337
5337
|
}) : {
|
|
5338
|
-
...
|
|
5338
|
+
...U({
|
|
5339
5339
|
left: e.left,
|
|
5340
5340
|
top: e.top
|
|
5341
5341
|
}),
|
|
@@ -5351,7 +5351,7 @@ function Ss(e) {
|
|
|
5351
5351
|
});
|
|
5352
5352
|
return or(() => ({
|
|
5353
5353
|
e: t() ?? void 0,
|
|
5354
|
-
t:
|
|
5354
|
+
t: H(n().nativeAnchor),
|
|
5355
5355
|
a: {
|
|
5356
5356
|
position: n().nativeAnchor || V() ? "fixed" : "absolute",
|
|
5357
5357
|
left: n().nativeAnchor ? `calc(anchor(left) + ${n().anchorX}px)` : `${n().left}px`,
|
|
@@ -5413,7 +5413,7 @@ function Ss(e) {
|
|
|
5413
5413
|
t: t() + 1,
|
|
5414
5414
|
a: i() ? "true" : void 0,
|
|
5415
5415
|
o: o() ? "true" : void 0,
|
|
5416
|
-
i:
|
|
5416
|
+
i: H(n().nativeAnchor),
|
|
5417
5417
|
n: V() ? "viewport" : "document",
|
|
5418
5418
|
s: `Mesurer annotation ${t() + 1}: ${e.note}`,
|
|
5419
5419
|
h: e.note,
|
|
@@ -5509,7 +5509,7 @@ function Ss(e) {
|
|
|
5509
5509
|
})()
|
|
5510
5510
|
}), null), or(() => ({
|
|
5511
5511
|
e: t().id,
|
|
5512
|
-
t:
|
|
5512
|
+
t: H(n().nativeAnchor),
|
|
5513
5513
|
a: V() ? "viewport" : "document",
|
|
5514
5514
|
o: {
|
|
5515
5515
|
position: n().nativeAnchor || V() ? "fixed" : "absolute",
|
|
@@ -6510,14 +6510,14 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
6510
6510
|
} finally {
|
|
6511
6511
|
f.dispose();
|
|
6512
6512
|
}
|
|
6513
|
-
}, ll = (e, t = /* @__PURE__ */ new Date()) => `mesurer-recording-${t.toISOString().replace(/[:.]/g, "-")}.${e}`, ul = 352, dl = 576, fl = 8, pl = 8, ml = .05, hl = 200, gl = (e, t) => {
|
|
6513
|
+
}, ll = (e, t = /* @__PURE__ */ new Date()) => `mesurer-recording-${t.toISOString().replace(/[:.]/g, "-")}.${e}`, ul = 352, dl = 576, fl = 8, pl = 8, ml = .05, hl = 200, gl = 10, _l = (e, t) => {
|
|
6514
6514
|
for (let [n, r] of Object.entries(t)) e.style.setProperty(n, r);
|
|
6515
|
-
},
|
|
6515
|
+
}, vl = (e) => {
|
|
6516
6516
|
let t = Number.isFinite(e) ? Math.max(0, e) : 0, n = Math.floor(t / 60);
|
|
6517
6517
|
return `${n}:${(t - n * 60).toFixed(2).padStart(5, "0")}`;
|
|
6518
|
-
},
|
|
6518
|
+
}, yl = (e, t, n) => {
|
|
6519
6519
|
let r = e.createElement("button");
|
|
6520
|
-
return r.type = "button", r.setAttribute("aria-label", t), r.title = t, r.textContent = n,
|
|
6520
|
+
return r.type = "button", r.setAttribute("aria-label", t), r.title = t, r.textContent = n, _l(r, {
|
|
6521
6521
|
display: "inline-flex",
|
|
6522
6522
|
width: "20px",
|
|
6523
6523
|
height: "20px",
|
|
@@ -6533,9 +6533,9 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
6533
6533
|
"line-height": "1",
|
|
6534
6534
|
cursor: "pointer"
|
|
6535
6535
|
}), r;
|
|
6536
|
-
},
|
|
6536
|
+
}, bl = (e, t) => {
|
|
6537
6537
|
let n = e.createElement("button");
|
|
6538
|
-
n.type = "button", n.setAttribute("role", "menuitemradio"),
|
|
6538
|
+
n.type = "button", n.setAttribute("role", "menuitemradio"), _l(n, {
|
|
6539
6539
|
display: "grid",
|
|
6540
6540
|
width: "100%",
|
|
6541
6541
|
height: "28px",
|
|
@@ -6560,12 +6560,12 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
6560
6560
|
check: r,
|
|
6561
6561
|
text: i
|
|
6562
6562
|
};
|
|
6563
|
-
},
|
|
6563
|
+
}, xl = (e, t, n, r) => {
|
|
6564
6564
|
let i = globalThis.URL.createObjectURL(e), a = n.createElement("a");
|
|
6565
6565
|
a.href = i, a.download = t, a.rel = "noopener", n.documentElement.append(a), a.click(), a.remove(), r.setTimeout(() => globalThis.URL.revokeObjectURL(i), 1e3);
|
|
6566
|
-
},
|
|
6566
|
+
}, Sl = ({ ownerDocument: e, ownerWindow: t, root: n, formats: r, onDiscard: i, onExport: a }) => {
|
|
6567
6567
|
let o = e.createElement("section");
|
|
6568
|
-
o.dataset.mesurerRecordingPreview = "true", o.dataset.mesurerInspectorUi = "true", o.setAttribute("role", "dialog"), o.setAttribute("aria-label", "Screen recording editor"), o.tabIndex = 0,
|
|
6568
|
+
o.dataset.mesurerRecordingPreview = "true", o.dataset.mesurerInspectorUi = "true", o.setAttribute("role", "dialog"), o.setAttribute("aria-label", "Screen recording editor"), o.tabIndex = 0, _l(o, {
|
|
6569
6569
|
position: "fixed",
|
|
6570
6570
|
display: "none",
|
|
6571
6571
|
width: `${ul}px`,
|
|
@@ -6583,10 +6583,10 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
6583
6583
|
"pointer-events": "auto",
|
|
6584
6584
|
outline: "none",
|
|
6585
6585
|
transform: "translateX(-50%)",
|
|
6586
|
-
transition: "width 200ms ease
|
|
6586
|
+
transition: "width 200ms ease"
|
|
6587
6587
|
}), n.append(o);
|
|
6588
6588
|
let s = e.createElement("div");
|
|
6589
|
-
|
|
6589
|
+
_l(s, {
|
|
6590
6590
|
position: "relative",
|
|
6591
6591
|
display: "flex",
|
|
6592
6592
|
width: "100%",
|
|
@@ -6601,7 +6601,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
6601
6601
|
cursor: "default"
|
|
6602
6602
|
}), o.append(s);
|
|
6603
6603
|
let c = e.createElement("video");
|
|
6604
|
-
c.muted = !0, c.playsInline = !0, c.preload = "auto",
|
|
6604
|
+
c.muted = !0, c.playsInline = !0, c.preload = "auto", _l(c, {
|
|
6605
6605
|
display: "block",
|
|
6606
6606
|
width: "100%",
|
|
6607
6607
|
height: "100%",
|
|
@@ -6611,7 +6611,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
6611
6611
|
transition: "max-height 200ms ease"
|
|
6612
6612
|
}), s.append(c);
|
|
6613
6613
|
let l = e.createElement("div");
|
|
6614
|
-
l.dataset.mesurerRecordingExporting = "true", l.textContent = "Exporting…",
|
|
6614
|
+
l.dataset.mesurerRecordingExporting = "true", l.textContent = "Exporting…", _l(l, {
|
|
6615
6615
|
position: "absolute",
|
|
6616
6616
|
inset: "0",
|
|
6617
6617
|
display: "none",
|
|
@@ -6623,8 +6623,8 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
6623
6623
|
"font-size": "11px",
|
|
6624
6624
|
"pointer-events": "none"
|
|
6625
6625
|
}), s.append(l);
|
|
6626
|
-
let u =
|
|
6627
|
-
u.dataset.mesurerRecordingDiscard = "true",
|
|
6626
|
+
let u = yl(e, "Close", "×");
|
|
6627
|
+
u.dataset.mesurerRecordingDiscard = "true", _l(u, {
|
|
6628
6628
|
position: "absolute",
|
|
6629
6629
|
top: "6px",
|
|
6630
6630
|
right: "6px",
|
|
@@ -6646,63 +6646,73 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
6646
6646
|
u.style.opacity = "0", u.style.pointerEvents = "none";
|
|
6647
6647
|
});
|
|
6648
6648
|
let d = e.createElement("div");
|
|
6649
|
-
|
|
6649
|
+
_l(d, {
|
|
6650
6650
|
display: "flex",
|
|
6651
|
-
height: "
|
|
6651
|
+
height: "28px",
|
|
6652
6652
|
"align-items": "center",
|
|
6653
|
-
gap: "
|
|
6653
|
+
gap: "8px",
|
|
6654
6654
|
"margin-top": "8px"
|
|
6655
6655
|
}), o.append(d);
|
|
6656
|
-
let f =
|
|
6656
|
+
let f = yl(e, "Play", "▶");
|
|
6657
6657
|
f.dataset.mesurerRecordingPlay = "true", d.append(f);
|
|
6658
6658
|
let p = e.createElement("span");
|
|
6659
|
-
p.textContent = "0:00.00",
|
|
6659
|
+
p.dataset.mesurerRecordingCurrentTime = "true", p.textContent = "0:00.00", _l(p, {
|
|
6660
6660
|
display: "flex",
|
|
6661
|
-
width: "
|
|
6661
|
+
width: "8ch",
|
|
6662
|
+
"min-width": "8ch",
|
|
6662
6663
|
height: "20px",
|
|
6663
6664
|
"align-items": "center",
|
|
6664
6665
|
"flex-shrink": "0",
|
|
6665
6666
|
color: "var(--msr-color-ink-500, #64748b)",
|
|
6666
6667
|
"font-family": "ui-monospace, SFMono-Regular, Menlo, monospace",
|
|
6667
6668
|
"font-size": "10px",
|
|
6668
|
-
"font-variant-numeric": "tabular-nums"
|
|
6669
|
+
"font-variant-numeric": "tabular-nums",
|
|
6670
|
+
"white-space": "nowrap"
|
|
6669
6671
|
}), d.append(p);
|
|
6670
6672
|
let m = e.createElement("div");
|
|
6671
|
-
m.dataset.mesurerRecordingTimeline = "true",
|
|
6673
|
+
m.dataset.mesurerRecordingTimeline = "true", _l(m, {
|
|
6672
6674
|
position: "relative",
|
|
6673
|
-
height: "
|
|
6675
|
+
height: "28px",
|
|
6674
6676
|
"min-width": "0",
|
|
6675
6677
|
flex: "1 1 0",
|
|
6676
6678
|
cursor: "pointer",
|
|
6677
6679
|
"user-select": "none"
|
|
6678
6680
|
}), d.append(m);
|
|
6679
6681
|
let h = e.createElement("div");
|
|
6680
|
-
h.dataset.
|
|
6682
|
+
h.dataset.mesurerRecordingTimelineTrack = "true", _l(h, {
|
|
6683
|
+
position: "absolute",
|
|
6684
|
+
left: `${gl}px`,
|
|
6685
|
+
right: `${gl}px`,
|
|
6686
|
+
top: "0",
|
|
6687
|
+
bottom: "0"
|
|
6688
|
+
}), m.append(h);
|
|
6689
|
+
let g = e.createElement("div");
|
|
6690
|
+
g.dataset.mesurerRecordingTimelineRail = "true", _l(g, {
|
|
6681
6691
|
position: "absolute",
|
|
6682
6692
|
left: "0",
|
|
6683
6693
|
right: "0",
|
|
6684
|
-
top: "
|
|
6694
|
+
top: "21px",
|
|
6685
6695
|
height: "3px",
|
|
6686
6696
|
transform: "translateY(-50%)",
|
|
6687
6697
|
"border-radius": "999px",
|
|
6688
6698
|
background: "var(--msr-color-ink-200, #e2e8f0)",
|
|
6689
6699
|
"pointer-events": "none"
|
|
6690
|
-
}),
|
|
6691
|
-
let
|
|
6692
|
-
|
|
6700
|
+
}), h.append(g);
|
|
6701
|
+
let _ = e.createElement("div");
|
|
6702
|
+
_.dataset.mesurerRecordingTimelineClip = "true", _l(_, {
|
|
6693
6703
|
position: "absolute",
|
|
6694
|
-
top: "
|
|
6704
|
+
top: "21px",
|
|
6695
6705
|
height: "3px",
|
|
6696
6706
|
transform: "translateY(-50%)",
|
|
6697
6707
|
"border-radius": "999px",
|
|
6698
6708
|
background: "var(--msr-color-ink-300, #cbd5e1)",
|
|
6699
6709
|
"pointer-events": "none"
|
|
6700
|
-
}),
|
|
6701
|
-
let
|
|
6702
|
-
|
|
6710
|
+
}), h.append(_);
|
|
6711
|
+
let v = e.createElement("div");
|
|
6712
|
+
_l(v, {
|
|
6703
6713
|
position: "absolute",
|
|
6704
6714
|
display: "none",
|
|
6705
|
-
top: "
|
|
6715
|
+
top: "21px",
|
|
6706
6716
|
width: "2px",
|
|
6707
6717
|
height: "10px",
|
|
6708
6718
|
transform: "translate(-50%, -50%)",
|
|
@@ -6710,11 +6720,11 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
6710
6720
|
background: "var(--msr-color-ink-500, #64748b)",
|
|
6711
6721
|
opacity: "0.5",
|
|
6712
6722
|
"pointer-events": "none"
|
|
6713
|
-
}),
|
|
6714
|
-
let
|
|
6715
|
-
|
|
6723
|
+
}), h.append(v);
|
|
6724
|
+
let y = e.createElement("div");
|
|
6725
|
+
y.dataset.mesurerRecordingPlayhead = "true", _l(y, {
|
|
6716
6726
|
position: "absolute",
|
|
6717
|
-
top: "
|
|
6727
|
+
top: "21px",
|
|
6718
6728
|
left: "0",
|
|
6719
6729
|
width: "2px",
|
|
6720
6730
|
height: "9px",
|
|
@@ -6724,15 +6734,15 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
6724
6734
|
"z-index": "25",
|
|
6725
6735
|
"pointer-events": "none",
|
|
6726
6736
|
transition: "height 150ms ease"
|
|
6727
|
-
}),
|
|
6728
|
-
let
|
|
6737
|
+
}), h.append(y);
|
|
6738
|
+
let b = (t, n) => {
|
|
6729
6739
|
let r = e.createElement("button");
|
|
6730
|
-
r.type = "button", r.dataset.mesurerRecordingTrimHandle = t, r.setAttribute("role", "slider"), r.setAttribute("aria-label", n), r.setAttribute("aria-valuemin", "0"),
|
|
6740
|
+
r.type = "button", r.dataset.mesurerRecordingTrimHandle = t, r.setAttribute("role", "slider"), r.setAttribute("aria-label", n), r.setAttribute("aria-valuemin", "0"), _l(r, {
|
|
6731
6741
|
position: "absolute",
|
|
6732
6742
|
top: "0",
|
|
6733
6743
|
display: "flex",
|
|
6734
|
-
width: "
|
|
6735
|
-
height: "
|
|
6744
|
+
width: "20px",
|
|
6745
|
+
height: "16px",
|
|
6736
6746
|
padding: "0",
|
|
6737
6747
|
border: "0",
|
|
6738
6748
|
"border-radius": "4px",
|
|
@@ -6740,32 +6750,31 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
6740
6750
|
color: "var(--msr-content, #18181b)",
|
|
6741
6751
|
transform: "translateX(-50%)",
|
|
6742
6752
|
"z-index": "30",
|
|
6743
|
-
"align-items": "
|
|
6753
|
+
"align-items": "center",
|
|
6744
6754
|
"justify-content": "center",
|
|
6745
|
-
"font-family": "ui-sans-serif, system-ui, sans-serif",
|
|
6746
|
-
"font-size": "10px",
|
|
6747
|
-
"font-weight": "700",
|
|
6748
|
-
"line-height": "8px",
|
|
6749
6755
|
cursor: "ew-resize",
|
|
6750
6756
|
"touch-action": "none"
|
|
6751
6757
|
});
|
|
6752
|
-
let i = e.
|
|
6753
|
-
i.dataset.mesurerRecordingTrimChevron = t, i.setAttribute("aria-hidden", "true"), i.
|
|
6754
|
-
let a = e.
|
|
6755
|
-
|
|
6758
|
+
let i = e.createElementNS("http://www.w3.org/2000/svg", "svg");
|
|
6759
|
+
i.dataset.mesurerRecordingTrimChevron = t, i.setAttribute("aria-hidden", "true"), i.setAttribute("viewBox", "0 0 12 14"), i.setAttribute("width", "12"), i.setAttribute("height", "14");
|
|
6760
|
+
let a = e.createElementNS("http://www.w3.org/2000/svg", "path");
|
|
6761
|
+
a.setAttribute("d", t === "start" ? "M3.5 2.5L8.5 7L3.5 11.5" : "M8.5 2.5L3.5 7L8.5 11.5"), a.setAttribute("fill", "none"), a.setAttribute("stroke", "currentColor"), a.setAttribute("stroke-width", "2"), a.setAttribute("stroke-linecap", "round"), a.setAttribute("stroke-linejoin", "round"), i.append(a), r.append(i);
|
|
6762
|
+
let o = e.createElement("span");
|
|
6763
|
+
return o.setAttribute("aria-hidden", "true"), _l(o, {
|
|
6756
6764
|
position: "absolute",
|
|
6757
6765
|
left: "50%",
|
|
6758
|
-
top: "
|
|
6766
|
+
top: "15px",
|
|
6759
6767
|
width: "1px",
|
|
6760
|
-
height: "
|
|
6768
|
+
height: "4px",
|
|
6761
6769
|
background: "var(--msr-content, #18181b)",
|
|
6762
6770
|
transform: "translateX(-50%)",
|
|
6763
6771
|
"pointer-events": "none"
|
|
6764
|
-
}), r.append(
|
|
6765
|
-
},
|
|
6766
|
-
|
|
6772
|
+
}), r.append(o), h.append(r), r;
|
|
6773
|
+
}, x = b("start", "Trim start"), S = b("end", "Trim end"), C = e.createElement("span");
|
|
6774
|
+
C.dataset.mesurerRecordingDuration = "true", _l(C, {
|
|
6767
6775
|
display: "flex",
|
|
6768
|
-
width: "
|
|
6776
|
+
width: "8ch",
|
|
6777
|
+
"min-width": "8ch",
|
|
6769
6778
|
height: "20px",
|
|
6770
6779
|
"align-items": "center",
|
|
6771
6780
|
"justify-content": "flex-end",
|
|
@@ -6773,23 +6782,24 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
6773
6782
|
color: "var(--msr-color-ink-500, #64748b)",
|
|
6774
6783
|
"font-family": "ui-monospace, SFMono-Regular, Menlo, monospace",
|
|
6775
6784
|
"font-size": "10px",
|
|
6776
|
-
"font-variant-numeric": "tabular-nums"
|
|
6777
|
-
|
|
6778
|
-
|
|
6779
|
-
|
|
6785
|
+
"font-variant-numeric": "tabular-nums",
|
|
6786
|
+
"white-space": "nowrap"
|
|
6787
|
+
}), d.append(C);
|
|
6788
|
+
let w = e.createElement("div");
|
|
6789
|
+
_l(w, {
|
|
6780
6790
|
position: "relative",
|
|
6781
6791
|
display: "flex",
|
|
6782
6792
|
height: "20px",
|
|
6783
6793
|
"align-items": "center"
|
|
6784
|
-
}), d.append(
|
|
6785
|
-
let
|
|
6786
|
-
|
|
6794
|
+
}), d.append(w);
|
|
6795
|
+
let T = yl(e, "Export options", "1×");
|
|
6796
|
+
T.dataset.mesurerRecordingExportOptions = "true", T.setAttribute("aria-haspopup", "menu"), T.setAttribute("aria-expanded", "false"), _l(T, {
|
|
6787
6797
|
width: "28px",
|
|
6788
6798
|
"font-family": "ui-monospace, SFMono-Regular, Menlo, monospace",
|
|
6789
6799
|
"font-size": "10px"
|
|
6790
|
-
}),
|
|
6791
|
-
let
|
|
6792
|
-
|
|
6800
|
+
}), w.append(T);
|
|
6801
|
+
let E = e.createElement("div");
|
|
6802
|
+
E.dataset.mesurerRecordingExportMenu = "true", E.setAttribute("role", "menu"), _l(E, {
|
|
6793
6803
|
position: "absolute",
|
|
6794
6804
|
display: "none",
|
|
6795
6805
|
right: "0",
|
|
@@ -6803,247 +6813,243 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
6803
6813
|
color: "var(--msr-content, #18181b)",
|
|
6804
6814
|
"box-shadow": "var(--msr-shadow-floating, 0 10px 30px rgba(0, 0, 0, 0.12))",
|
|
6805
6815
|
"pointer-events": "auto"
|
|
6806
|
-
}),
|
|
6807
|
-
let
|
|
6808
|
-
|
|
6816
|
+
}), w.append(E);
|
|
6817
|
+
let D = e.createElement("p");
|
|
6818
|
+
D.textContent = "Format", _l(D, {
|
|
6809
6819
|
margin: "0",
|
|
6810
6820
|
padding: "4px 8px",
|
|
6811
6821
|
color: "var(--msr-color-ink-500, #64748b)",
|
|
6812
6822
|
"font-size": "10px",
|
|
6813
6823
|
"font-weight": "500"
|
|
6814
|
-
}),
|
|
6815
|
-
let
|
|
6816
|
-
|
|
6817
|
-
let
|
|
6818
|
-
|
|
6824
|
+
}), E.append(D);
|
|
6825
|
+
let O = e.createElement("div");
|
|
6826
|
+
E.append(O);
|
|
6827
|
+
let k = e.createElement("p");
|
|
6828
|
+
k.textContent = "Size", _l(k, {
|
|
6819
6829
|
margin: "0",
|
|
6820
6830
|
padding: "6px 8px 4px",
|
|
6821
6831
|
color: "var(--msr-color-ink-500, #64748b)",
|
|
6822
6832
|
"font-size": "10px",
|
|
6823
6833
|
"font-weight": "500"
|
|
6824
|
-
}),
|
|
6825
|
-
let
|
|
6826
|
-
|
|
6827
|
-
let
|
|
6834
|
+
}), E.append(k);
|
|
6835
|
+
let A = e.createElement("div");
|
|
6836
|
+
E.append(A);
|
|
6837
|
+
let j = [
|
|
6828
6838
|
1,
|
|
6829
6839
|
2,
|
|
6830
6840
|
3
|
|
6831
6841
|
].map((t) => {
|
|
6832
|
-
let n =
|
|
6833
|
-
return n.button.dataset.mesurerRecordingScale = String(t),
|
|
6842
|
+
let n = bl(e, `${t}×`);
|
|
6843
|
+
return n.button.dataset.mesurerRecordingScale = String(t), A.append(n.button), {
|
|
6834
6844
|
scale: t,
|
|
6835
6845
|
...n
|
|
6836
6846
|
};
|
|
6837
|
-
}),
|
|
6838
|
-
|
|
6839
|
-
let
|
|
6840
|
-
|
|
6841
|
-
let
|
|
6842
|
-
|
|
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, {
|
|
6843
6853
|
display: "none",
|
|
6844
6854
|
margin: "8px 0 0",
|
|
6845
6855
|
color: "var(--msr-color-ink-500, #64748b)",
|
|
6846
6856
|
"font-size": "11px",
|
|
6847
6857
|
"line-height": "16px"
|
|
6848
|
-
}), o.append(
|
|
6849
|
-
let
|
|
6850
|
-
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;
|
|
6851
6861
|
return t <= 0 ? 0 : Math.min(1, Math.max(0, e / t));
|
|
6852
6862
|
}, re = () => ({
|
|
6853
|
-
start:
|
|
6854
|
-
end:
|
|
6855
|
-
}),
|
|
6856
|
-
let t =
|
|
6863
|
+
start: V,
|
|
6864
|
+
end: H
|
|
6865
|
+
}), K = (e) => {
|
|
6866
|
+
let t = P?.duration ?? 0, n = h.getBoundingClientRect();
|
|
6857
6867
|
return t <= 0 || n.width <= 0 ? 0 : Math.min(t, Math.max(0, (e - n.left) / n.width * t));
|
|
6858
|
-
},
|
|
6859
|
-
let e =
|
|
6860
|
-
|
|
6861
|
-
},
|
|
6862
|
-
if (!
|
|
6863
|
-
let n = Math.min(
|
|
6864
|
-
t && !c.paused && c.pause(), c.currentTime = n,
|
|
6865
|
-
}, ae = (e, t = !1) => {
|
|
6866
|
-
N && (B = Math.min(Math.max(0, e), Math.max(0, V - ml)), (t || c.currentTime < B) && ie(B), K());
|
|
6868
|
+
}, ie = () => {
|
|
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
|
+
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
|
+
}, ae = (e, t = !0) => {
|
|
6872
|
+
if (!P) return;
|
|
6873
|
+
let n = Math.min(H, Math.max(V, e));
|
|
6874
|
+
t && !c.paused && c.pause(), c.currentTime = n, ie();
|
|
6867
6875
|
}, oe = (e, t = !1) => {
|
|
6868
|
-
|
|
6869
|
-
}, se = () => {
|
|
6870
|
-
|
|
6871
|
-
for (let e of k) {
|
|
6872
|
-
let t = e.scale === z;
|
|
6873
|
-
e.button.setAttribute("aria-checked", t ? "true" : "false"), e.check.style.opacity = t ? "1" : "0", e.text.textContent = N ? `${e.scale}× ${Math.round(N.width * e.scale)} × ${Math.round(N.height * e.scale)}` : `${e.scale}×`;
|
|
6874
|
-
}
|
|
6876
|
+
P && (V = Math.min(Math.max(0, e), Math.max(0, H - ml)), (t || c.currentTime < V) && ae(V), ie());
|
|
6877
|
+
}, se = (e, t = !1) => {
|
|
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());
|
|
6875
6879
|
}, ce = () => {
|
|
6876
|
-
|
|
6877
|
-
for (let
|
|
6878
|
-
let
|
|
6879
|
-
|
|
6880
|
-
R = t, ce();
|
|
6881
|
-
}), D.append(n.button);
|
|
6880
|
+
T.textContent = `${B}×`;
|
|
6881
|
+
for (let e of j) {
|
|
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 = P ? `${e.scale}× ${Math.round(P.width * e.scale)} × ${Math.round(P.height * e.scale)}` : `${e.scale}×`;
|
|
6882
6884
|
}
|
|
6883
6885
|
}, le = () => {
|
|
6884
|
-
|
|
6885
|
-
|
|
6886
|
-
|
|
6887
|
-
|
|
6888
|
-
|
|
6886
|
+
O.replaceChildren();
|
|
6887
|
+
for (let t of R) {
|
|
6888
|
+
let n = bl(e, t === "mp4" ? "MP4" : "WebM"), r = t === z;
|
|
6889
|
+
n.button.dataset.mesurerRecordingFormat = t, n.button.setAttribute("aria-checked", r ? "true" : "false"), n.check.style.opacity = r ? "1" : "0", n.button.addEventListener("click", () => {
|
|
6890
|
+
z = t, le();
|
|
6891
|
+
}), O.append(n.button);
|
|
6892
|
+
}
|
|
6893
|
+
}, ue = () => {
|
|
6894
|
+
if (E.style.display === "none") return;
|
|
6895
|
+
let e = w.getBoundingClientRect(), n = Math.max(1, E.offsetHeight), r = e.top - fl, i = t.innerHeight - e.bottom - fl;
|
|
6896
|
+
r >= n || r >= i ? (E.style.top = "auto", E.style.bottom = "24px") : (E.style.top = "24px", E.style.bottom = "auto");
|
|
6889
6897
|
}, de = (e) => {
|
|
6898
|
+
E.style.display = e ? "block" : "none", T.setAttribute("aria-expanded", e ? "true" : "false"), e && ue();
|
|
6899
|
+
}, q = (e) => {
|
|
6890
6900
|
I = e, l.style.display = e ? "flex" : "none";
|
|
6891
6901
|
for (let t of [
|
|
6892
6902
|
f,
|
|
6893
6903
|
u,
|
|
6894
|
-
b,
|
|
6895
6904
|
x,
|
|
6896
|
-
|
|
6897
|
-
|
|
6898
|
-
|
|
6899
|
-
|
|
6905
|
+
S,
|
|
6906
|
+
T,
|
|
6907
|
+
M,
|
|
6908
|
+
ee,
|
|
6909
|
+
...j.map((e) => e.button)
|
|
6900
6910
|
]) t.toggleAttribute("disabled", e);
|
|
6901
|
-
},
|
|
6911
|
+
}, fe = () => n.closest("[data-mesurer-root='true']")?.querySelector("[data-mesurer-tool-id='recording']") ?? e.querySelector("[data-mesurer-tool-id='recording']"), pe = () => {
|
|
6902
6912
|
if (o.style.display === "none") return;
|
|
6903
|
-
let e = Math.min(F ? dl : ul, Math.max(1, t.innerWidth - 16)), n = Math.max(180, o.offsetHeight), r =
|
|
6904
|
-
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`,
|
|
6905
|
-
}, pe = () => {
|
|
6906
|
-
c.pause(), c.removeAttribute("src"), c.load(), P &&= (globalThis.URL.revokeObjectURL(P), null);
|
|
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
|
+
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();
|
|
6907
6915
|
}, me = () => {
|
|
6908
|
-
|
|
6916
|
+
c.pause(), c.removeAttribute("src"), c.load(), te &&= (globalThis.URL.revokeObjectURL(te), null);
|
|
6909
6917
|
}, he = () => {
|
|
6910
|
-
|
|
6911
|
-
|
|
6912
|
-
|
|
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
|
+
}, ge = () => {
|
|
6920
|
+
if (!P || o.style.display === "none" || G) return;
|
|
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
|
+
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";
|
|
6913
6923
|
let a = o.animate([{
|
|
6914
|
-
|
|
6915
|
-
top: `${e.top}px`,
|
|
6916
|
-
transform: "translateX(-50%) scale(1)",
|
|
6924
|
+
transform: "scale(1)",
|
|
6917
6925
|
opacity: 1
|
|
6918
6926
|
}, {
|
|
6919
|
-
|
|
6920
|
-
top: `${r}px`,
|
|
6921
|
-
transform: "translateX(-50%) scale(0.08)",
|
|
6927
|
+
transform: "scale(0.08)",
|
|
6922
6928
|
opacity: 0
|
|
6923
6929
|
}], {
|
|
6924
6930
|
duration: hl,
|
|
6925
6931
|
easing: "ease",
|
|
6926
6932
|
fill: "forwards"
|
|
6927
6933
|
});
|
|
6928
|
-
|
|
6929
|
-
|
|
6934
|
+
G = a, a.finished.catch(() => void 0).then(() => {
|
|
6935
|
+
G === a && (a.cancel(), G = null, o.style.removeProperty("will-change"), i());
|
|
6930
6936
|
});
|
|
6931
|
-
},
|
|
6932
|
-
if (!(!
|
|
6937
|
+
}, _e = () => {
|
|
6938
|
+
if (!(!P || I)) {
|
|
6933
6939
|
if (!c.paused) {
|
|
6934
6940
|
c.pause();
|
|
6935
6941
|
return;
|
|
6936
6942
|
}
|
|
6937
|
-
(c.currentTime <
|
|
6938
|
-
}
|
|
6939
|
-
},
|
|
6940
|
-
|
|
6941
|
-
},
|
|
6942
|
-
if (!
|
|
6943
|
-
let t =
|
|
6944
|
-
|
|
6945
|
-
},
|
|
6946
|
-
!
|
|
6947
|
-
}, be = (e) => {
|
|
6948
|
-
H !== null && e.pointerId === H && ve(e.clientX);
|
|
6943
|
+
(c.currentTime < V || c.currentTime >= H) && (c.currentTime = V), c.play();
|
|
6944
|
+
}
|
|
6945
|
+
}, ve = () => {
|
|
6946
|
+
U = null, W = null, y.style.height = "8px";
|
|
6947
|
+
}, ye = (e) => {
|
|
6948
|
+
if (!U) return;
|
|
6949
|
+
let t = K(e);
|
|
6950
|
+
U === "start" ? oe(t, !0) : U === "end" ? se(t, !0) : ae(t);
|
|
6951
|
+
}, be = (e, t) => {
|
|
6952
|
+
!P || I || t.button !== 0 || (t.preventDefault(), t.stopPropagation(), U = e, W = t.pointerId, y.style.height = "10px", ye(t.clientX));
|
|
6949
6953
|
}, xe = (e) => {
|
|
6950
|
-
|
|
6954
|
+
W !== null && e.pointerId === W && ye(e.clientX);
|
|
6955
|
+
}, Se = (e) => {
|
|
6956
|
+
W !== null && e.pointerId === W && ve();
|
|
6951
6957
|
};
|
|
6952
|
-
|
|
6958
|
+
x.addEventListener("pointerdown", (e) => be("start", e)), S.addEventListener("pointerdown", (e) => be("end", e)), m.addEventListener("pointerdown", (e) => {
|
|
6953
6959
|
let t = e.target;
|
|
6954
|
-
t instanceof Element && t.closest("[data-mesurer-recording-trim-handle]") ||
|
|
6960
|
+
t instanceof Element && t.closest("[data-mesurer-recording-trim-handle]") || be("playhead", e);
|
|
6955
6961
|
}), m.addEventListener("pointermove", (e) => {
|
|
6956
|
-
|
|
6962
|
+
W === null && (v.style.display = "block", v.style.left = `${ne(K(e.clientX)) * 100}%`);
|
|
6957
6963
|
}), m.addEventListener("pointerleave", () => {
|
|
6958
|
-
|
|
6964
|
+
v.style.display = "none";
|
|
6959
6965
|
});
|
|
6960
|
-
for (let [e, t] of [["start",
|
|
6961
|
-
if (!
|
|
6966
|
+
for (let [e, t] of [["start", x], ["end", S]]) t.addEventListener("keydown", (t) => {
|
|
6967
|
+
if (!P || t.key !== "ArrowLeft" && t.key !== "ArrowRight") return;
|
|
6962
6968
|
t.preventDefault();
|
|
6963
|
-
let n = t.key === "ArrowLeft" ? -1 : 1, r = (e === "start" ?
|
|
6964
|
-
e === "start" ?
|
|
6969
|
+
let n = t.key === "ArrowLeft" ? -1 : 1, r = (e === "start" ? V : H) + n * .05;
|
|
6970
|
+
e === "start" ? oe(r, !0) : se(r, !0);
|
|
6965
6971
|
});
|
|
6966
|
-
t.addEventListener("pointermove",
|
|
6967
|
-
e.stopPropagation(),
|
|
6972
|
+
t.addEventListener("pointermove", xe, !0), t.addEventListener("pointerup", Se, !0), t.addEventListener("pointercancel", Se, !0), u.addEventListener("click", (e) => {
|
|
6973
|
+
e.stopPropagation(), ge();
|
|
6968
6974
|
}), s.addEventListener("click", (e) => {
|
|
6969
6975
|
let t = e.target;
|
|
6970
|
-
t instanceof Element && t.closest("button") ||
|
|
6971
|
-
}), f.addEventListener("click",
|
|
6976
|
+
t instanceof Element && t.closest("button") || _e();
|
|
6977
|
+
}), f.addEventListener("click", _e), c.addEventListener("play", () => {
|
|
6972
6978
|
f.textContent = "Ⅱ", f.setAttribute("aria-label", "Pause"), f.title = "Pause";
|
|
6973
6979
|
}), c.addEventListener("pause", () => {
|
|
6974
6980
|
f.textContent = "▶", f.setAttribute("aria-label", "Play"), f.title = "Play";
|
|
6975
6981
|
}), c.addEventListener("timeupdate", () => {
|
|
6976
|
-
|
|
6982
|
+
P && (c.currentTime >= H - .01 ? (c.pause(), c.currentTime = V) : c.currentTime < V && (c.currentTime = V), ie());
|
|
6977
6983
|
}), c.addEventListener("loadedmetadata", () => {
|
|
6978
|
-
|
|
6979
|
-
}),
|
|
6980
|
-
I ||
|
|
6984
|
+
ie();
|
|
6985
|
+
}), T.addEventListener("click", () => {
|
|
6986
|
+
I || de(E.style.display === "none");
|
|
6981
6987
|
});
|
|
6982
|
-
for (let e of
|
|
6983
|
-
|
|
6988
|
+
for (let e of j) e.button.addEventListener("click", () => {
|
|
6989
|
+
B = e.scale, ce();
|
|
6984
6990
|
});
|
|
6985
|
-
let
|
|
6986
|
-
|
|
6991
|
+
let Ce = (e) => {
|
|
6992
|
+
E.style.display !== "none" && (e.composedPath().includes(w) || de(!1));
|
|
6987
6993
|
};
|
|
6988
|
-
e.addEventListener("pointerdown",
|
|
6989
|
-
F = !F, o.style.width = `${F ? dl : ul}px`, s.style.maxHeight = F ? "448px" : "144px", c.style.maxHeight = F ? "448px" : "144px",
|
|
6990
|
-
}),
|
|
6991
|
-
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;
|
|
6992
6998
|
let n = ++L, { start: r, end: i } = re();
|
|
6993
|
-
|
|
6994
|
-
format:
|
|
6999
|
+
q(!0), de(!1), N.style.display = "none", a({
|
|
7000
|
+
format: z,
|
|
6995
7001
|
startTime: r,
|
|
6996
7002
|
endTime: i,
|
|
6997
|
-
scale:
|
|
7003
|
+
scale: B
|
|
6998
7004
|
}).then((r) => {
|
|
6999
|
-
n === L &&
|
|
7005
|
+
n === L && xl(r.blob, r.filename, e, t);
|
|
7000
7006
|
}).catch((e) => {
|
|
7001
|
-
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.");
|
|
7002
7008
|
}).finally(() => {
|
|
7003
|
-
n === L &&
|
|
7009
|
+
n === L && q(!1);
|
|
7004
7010
|
});
|
|
7005
7011
|
}), o.addEventListener("keydown", (e) => {
|
|
7006
7012
|
if (e.key === "Escape") {
|
|
7007
|
-
if (
|
|
7008
|
-
e.preventDefault(),
|
|
7013
|
+
if (E.style.display !== "none") {
|
|
7014
|
+
e.preventDefault(), de(!1);
|
|
7009
7015
|
return;
|
|
7010
7016
|
}
|
|
7011
|
-
e.preventDefault(),
|
|
7017
|
+
e.preventDefault(), ge();
|
|
7012
7018
|
return;
|
|
7013
7019
|
}
|
|
7014
|
-
(e.key === " " || e.code === "Space") && e.target === o && (e.preventDefault(),
|
|
7020
|
+
(e.key === " " || e.code === "Space") && e.target === o && (e.preventDefault(), _e());
|
|
7015
7021
|
});
|
|
7016
|
-
let
|
|
7017
|
-
return t.addEventListener("resize",
|
|
7022
|
+
let we = () => pe();
|
|
7023
|
+
return t.addEventListener("resize", we), {
|
|
7018
7024
|
show(e) {
|
|
7019
|
-
L += 1,
|
|
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;
|
|
7020
7026
|
let n = globalThis.URL.createObjectURL(e.blob);
|
|
7021
|
-
|
|
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 });
|
|
7022
7028
|
let i = L;
|
|
7023
7029
|
r(e).then((e) => {
|
|
7024
|
-
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."));
|
|
7025
7031
|
}).catch((e) => {
|
|
7026
|
-
i === L && (
|
|
7027
|
-
}), t.requestAnimationFrame(
|
|
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
|
+
}), t.requestAnimationFrame(pe);
|
|
7028
7034
|
},
|
|
7029
|
-
dismiss:
|
|
7035
|
+
dismiss: he,
|
|
7030
7036
|
dispose() {
|
|
7031
|
-
|
|
7037
|
+
he(), t.removeEventListener("resize", we), t.removeEventListener("pointermove", xe, !0), t.removeEventListener("pointerup", Se, !0), t.removeEventListener("pointercancel", Se, !0), e.removeEventListener("pointerdown", Ce, !0), o.remove();
|
|
7032
7038
|
}
|
|
7033
7039
|
};
|
|
7034
|
-
},
|
|
7040
|
+
}, Cl = "mesurer.recording", wl = "recording:v1", Tl = "mesurer.recording.settings", El = "runtime:solid", Dl = "recording.toggle", Ol = "recording.stop", kl = "recording.discard", Al = "recording.export", jl = 60, Ml = 60, Nl = 3e3, Pl = {
|
|
7035
7041
|
viewBox: "0 0 24 24",
|
|
7036
7042
|
paths: ["M7 5.75A3.25 3.25 0 0 0 3.75 9v6A3.25 3.25 0 0 0 7 18.25h7A3.25 3.25 0 0 0 17.25 15v-1.03l2.13 1.42a.75.75 0 0 0 1.17-.624V9.234a.75.75 0 0 0-1.17-.624l-2.13 1.42V9A3.25 3.25 0 0 0 14 5.75H7Zm10.25 6.082 1.8-1.2v2.736l-1.8-1.2v-.336Z", "M10.5 9.25a2.75 2.75 0 1 0 0 5.5 2.75 2.75 0 0 0 0-5.5Z"]
|
|
7037
|
-
},
|
|
7043
|
+
}, Fl = (e) => e ? { ...e } : null, Il = (e) => ({
|
|
7038
7044
|
...e,
|
|
7039
|
-
rect:
|
|
7040
|
-
}),
|
|
7045
|
+
rect: Fl(e.rect)
|
|
7046
|
+
}), Ll = (e, t) => {
|
|
7041
7047
|
for (let [n, r] of Object.entries(t)) e.style.setProperty(n, r);
|
|
7042
|
-
},
|
|
7043
|
-
if (!
|
|
7048
|
+
}, Rl = (e) => e != null && !Array.isArray(e) && typeof e == "object", zl = (e) => typeof e == "number" && Number.isFinite(e), Bl = (e) => {
|
|
7049
|
+
if (!Rl(e)) return {};
|
|
7044
7050
|
let t = {};
|
|
7045
|
-
return (e.format === "webm" || e.format === "mp4") && (t.format = e.format),
|
|
7046
|
-
},
|
|
7051
|
+
return (e.format === "webm" || e.format === "mp4") && (t.format = e.format), zl(e.startTime) && (t.startTime = e.startTime), zl(e.endTime) && (t.endTime = e.endTime), (e.scale === 1 || e.scale === 2 || e.scale === 3) && (t.scale = e.scale), t;
|
|
7052
|
+
}, Vl = (e) => ({
|
|
7047
7053
|
status: e.status,
|
|
7048
7054
|
elapsed: e.elapsed,
|
|
7049
7055
|
rect: e.rect ? { ...e.rect } : null,
|
|
@@ -7051,71 +7057,71 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7051
7057
|
width: e.width,
|
|
7052
7058
|
height: e.height,
|
|
7053
7059
|
error: e.error
|
|
7054
|
-
}),
|
|
7060
|
+
}), Hl = (e) => ({
|
|
7055
7061
|
filename: e.filename,
|
|
7056
7062
|
format: e.format,
|
|
7057
7063
|
duration: e.duration,
|
|
7058
7064
|
width: e.width,
|
|
7059
7065
|
height: e.height,
|
|
7060
7066
|
bytes: e.blob.size
|
|
7061
|
-
}),
|
|
7067
|
+
}), Ul = (e) => ({
|
|
7062
7068
|
format: e.format,
|
|
7063
7069
|
duration: e.duration,
|
|
7064
7070
|
width: e.width,
|
|
7065
7071
|
height: e.height,
|
|
7066
7072
|
bytes: e.blob.size,
|
|
7067
7073
|
createdAt: e.createdAt
|
|
7068
|
-
}),
|
|
7074
|
+
}), Wl = (e, t, n) => {
|
|
7069
7075
|
let r = globalThis.URL.createObjectURL(e.blob), i = t.createElement("a");
|
|
7070
7076
|
i.href = r, i.download = e.filename, i.rel = "noopener", t.documentElement.append(i), i.click(), i.remove(), n.setTimeout(() => globalThis.URL.revokeObjectURL(r), 1e3);
|
|
7071
|
-
},
|
|
7072
|
-
id:
|
|
7077
|
+
}, Gl = (e = {}) => hr({
|
|
7078
|
+
id: Cl,
|
|
7073
7079
|
version: "0.1.0",
|
|
7074
|
-
requires: [
|
|
7075
|
-
provides: ["tool:recording",
|
|
7080
|
+
requires: [El],
|
|
7081
|
+
provides: ["tool:recording", wl],
|
|
7076
7082
|
setup(t) {
|
|
7077
|
-
let n = t.service.get(
|
|
7083
|
+
let n = t.service.get(El);
|
|
7078
7084
|
if (!n) throw Error("Recording plugin requires the Solid renderer runtime.");
|
|
7079
7085
|
let { ownerDocument: r, ownerWindow: i } = n, a = n.createInspectorMount(), o = a.element, s = n.createInspectorMount(), c = s.element, l = n.rendererRoot ?? n.portalTarget.querySelector("[data-mesurer-root='true']"), u = (e) => {
|
|
7080
7086
|
l?.toggleAttribute("data-mesurer-recording-active", e);
|
|
7081
7087
|
let t = l?.querySelector("[data-mesurer-interaction-overlay='true']");
|
|
7082
7088
|
t && (e ? (t.style.setProperty("pointer-events", "none", "important"), t.style.setProperty("cursor", "default", "important")) : (t.style.removeProperty("pointer-events"), t.style.removeProperty("cursor")));
|
|
7083
7089
|
};
|
|
7084
|
-
o.dataset.mesurerRecording = "true", c.dataset.mesurerRecordingStatusRoot = "true",
|
|
7090
|
+
o.dataset.mesurerRecording = "true", c.dataset.mesurerRecordingStatusRoot = "true", Ll(o, {
|
|
7085
7091
|
position: "fixed",
|
|
7086
7092
|
inset: "0",
|
|
7087
7093
|
"z-index": "86",
|
|
7088
7094
|
"pointer-events": "none",
|
|
7089
7095
|
"font-family": "ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif"
|
|
7090
|
-
}),
|
|
7096
|
+
}), Ll(c, {
|
|
7091
7097
|
position: "fixed",
|
|
7092
7098
|
inset: "0",
|
|
7093
7099
|
"z-index": "96",
|
|
7094
7100
|
"pointer-events": "none",
|
|
7095
7101
|
"font-family": "ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif"
|
|
7096
7102
|
});
|
|
7097
|
-
let d = Math.max(1, Math.min(600, e.maxDurationSeconds ??
|
|
7103
|
+
let d = Math.max(1, Math.min(600, e.maxDurationSeconds ?? Ml)), f = e.quality ?? "medium";
|
|
7098
7104
|
t.state.register({
|
|
7099
|
-
id:
|
|
7105
|
+
id: Tl,
|
|
7100
7106
|
initial: {
|
|
7101
7107
|
toolEnabled: e.toolEnabled ?? !0,
|
|
7102
|
-
frameRate: e.frameRate ??
|
|
7108
|
+
frameRate: e.frameRate ?? jl
|
|
7103
7109
|
},
|
|
7104
7110
|
persist: !0
|
|
7105
7111
|
});
|
|
7106
7112
|
let p = () => {
|
|
7107
|
-
let e = t.state.get(
|
|
7113
|
+
let e = t.state.get(Tl);
|
|
7108
7114
|
return {
|
|
7109
7115
|
toolEnabled: e?.toolEnabled ?? !0,
|
|
7110
7116
|
frameRate: e?.frameRate === 120 ? 120 : 60
|
|
7111
7117
|
};
|
|
7112
7118
|
}, m = (e) => {
|
|
7113
|
-
t.state.update(
|
|
7119
|
+
t.state.update(Tl, (t) => {
|
|
7114
7120
|
let n = { ...t };
|
|
7115
7121
|
return e.toolEnabled !== void 0 && (n.toolEnabled = e.toolEnabled), (e.frameRate === 60 || e.frameRate === 120) && (n.frameRate = e.frameRate), n;
|
|
7116
7122
|
});
|
|
7117
7123
|
}, h = r.createElement("div");
|
|
7118
|
-
h.dataset.mesurerRecordingSelect = "true", h.dataset.mesurerInspectorUi = "true", h.setAttribute("role", "application"), h.setAttribute("aria-label", "Recording selection"),
|
|
7124
|
+
h.dataset.mesurerRecordingSelect = "true", h.dataset.mesurerInspectorUi = "true", h.setAttribute("role", "application"), h.setAttribute("aria-label", "Recording selection"), Ll(h, {
|
|
7119
7125
|
position: "fixed",
|
|
7120
7126
|
inset: "0",
|
|
7121
7127
|
display: "none",
|
|
@@ -7127,21 +7133,23 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7127
7133
|
}), o.append(h);
|
|
7128
7134
|
let g = Array.from({ length: 4 }, () => {
|
|
7129
7135
|
let e = r.createElement("div");
|
|
7130
|
-
return e.dataset.mesurerRecordingShade = "true",
|
|
7136
|
+
return e.dataset.mesurerRecordingShade = "true", Ll(e, {
|
|
7131
7137
|
position: "fixed",
|
|
7132
7138
|
background: "rgb(0 0 0 / 40%)",
|
|
7133
7139
|
"pointer-events": "none"
|
|
7134
7140
|
}), h.append(e), e;
|
|
7135
7141
|
}), _ = r.createElement("div");
|
|
7136
|
-
_.dataset.mesurerRecordingMask = "true",
|
|
7142
|
+
_.dataset.mesurerRecordingMask = "true", Ll(_, {
|
|
7137
7143
|
position: "fixed",
|
|
7138
7144
|
display: "none",
|
|
7139
7145
|
background: "transparent",
|
|
7146
|
+
outline: "2px solid var(--msr-accent, #0d99ff)",
|
|
7147
|
+
"outline-offset": "-1px",
|
|
7140
7148
|
"box-shadow": "0 0 0 100vmax rgb(0 0 0 / 40%)",
|
|
7141
7149
|
"pointer-events": "none"
|
|
7142
7150
|
}), h.append(_);
|
|
7143
7151
|
let v = r.createElement("div");
|
|
7144
|
-
v.dataset.mesurerRecordingSelection = "true",
|
|
7152
|
+
v.dataset.mesurerRecordingSelection = "true", Ll(v, {
|
|
7145
7153
|
position: "fixed",
|
|
7146
7154
|
display: "none",
|
|
7147
7155
|
border: "1px solid var(--msr-accent, #0d99ff)",
|
|
@@ -7149,7 +7157,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7149
7157
|
"pointer-events": "none"
|
|
7150
7158
|
}), h.append(v);
|
|
7151
7159
|
let y = r.createElement("div");
|
|
7152
|
-
|
|
7160
|
+
Ll(y, {
|
|
7153
7161
|
position: "fixed",
|
|
7154
7162
|
display: "none",
|
|
7155
7163
|
transform: "translateX(-50%)",
|
|
@@ -7162,7 +7170,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7162
7170
|
"pointer-events": "none"
|
|
7163
7171
|
}), h.append(y);
|
|
7164
7172
|
let b = r.createElement("div");
|
|
7165
|
-
b.textContent = "Drag a region to record · Esc to cancel",
|
|
7173
|
+
b.textContent = "Drag a region to record · Esc to cancel", Ll(b, {
|
|
7166
7174
|
position: "fixed",
|
|
7167
7175
|
left: "50%",
|
|
7168
7176
|
bottom: "16px",
|
|
@@ -7175,7 +7183,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7175
7183
|
"pointer-events": "none"
|
|
7176
7184
|
}), h.append(b);
|
|
7177
7185
|
let x = r.createElement("div");
|
|
7178
|
-
x.dataset.mesurerRecordingRegion = "true", x.dataset.mesurerInspectorUi = "true", x.setAttribute("role", "dialog"), x.setAttribute("aria-label", "Recording region"),
|
|
7186
|
+
x.dataset.mesurerRecordingRegion = "true", x.dataset.mesurerInspectorUi = "true", x.setAttribute("role", "dialog"), x.setAttribute("aria-label", "Recording region"), Ll(x, {
|
|
7179
7187
|
position: "fixed",
|
|
7180
7188
|
display: "none",
|
|
7181
7189
|
width: "220px",
|
|
@@ -7193,7 +7201,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7193
7201
|
}), h.append(x);
|
|
7194
7202
|
let S = (e) => {
|
|
7195
7203
|
let t = r.createElement("label");
|
|
7196
|
-
|
|
7204
|
+
Ll(t, {
|
|
7197
7205
|
display: "grid",
|
|
7198
7206
|
"grid-template-columns": "44px minmax(0,1fr)",
|
|
7199
7207
|
"align-items": "center",
|
|
@@ -7202,7 +7210,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7202
7210
|
let n = r.createElement("span");
|
|
7203
7211
|
n.textContent = e, n.style.color = "var(--msr-color-ink-500, #64748b)", t.append(n);
|
|
7204
7212
|
let i = r.createElement("div");
|
|
7205
|
-
return
|
|
7213
|
+
return Ll(i, {
|
|
7206
7214
|
display: "flex",
|
|
7207
7215
|
"align-items": "center",
|
|
7208
7216
|
gap: "4px",
|
|
@@ -7210,7 +7218,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7210
7218
|
}), t.append(i), x.append(t), i;
|
|
7211
7219
|
}, C = (e) => {
|
|
7212
7220
|
let t = r.createElement("input");
|
|
7213
|
-
return t.type = "number", t.setAttribute("aria-label", e), t.step = "1",
|
|
7221
|
+
return t.type = "number", t.setAttribute("aria-label", e), t.step = "1", Ll(t, {
|
|
7214
7222
|
width: "0",
|
|
7215
7223
|
"min-width": "0",
|
|
7216
7224
|
flex: "1 1 0",
|
|
@@ -7230,14 +7238,14 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7230
7238
|
D.textContent = "×", D.style.color = "var(--msr-color-ink-500, #64748b)", w.append(D, E);
|
|
7231
7239
|
let O = r.createElement("span");
|
|
7232
7240
|
O.textContent = "px", O.style.color = "var(--msr-color-ink-500, #64748b)", w.append(O);
|
|
7233
|
-
let
|
|
7234
|
-
|
|
7235
|
-
let
|
|
7236
|
-
|
|
7237
|
-
let
|
|
7238
|
-
|
|
7239
|
-
let
|
|
7240
|
-
|
|
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, {
|
|
7241
7249
|
width: "100%",
|
|
7242
7250
|
height: "28px",
|
|
7243
7251
|
"margin-top": "8px",
|
|
@@ -7249,9 +7257,9 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7249
7257
|
"font-size": "11px",
|
|
7250
7258
|
"font-weight": "500",
|
|
7251
7259
|
cursor: "pointer"
|
|
7252
|
-
}), x.append(
|
|
7260
|
+
}), x.append(ee);
|
|
7253
7261
|
let N = r.createElement("div");
|
|
7254
|
-
N.dataset.mesurerRecordingGrid = "true",
|
|
7262
|
+
N.dataset.mesurerRecordingGrid = "true", Ll(N, {
|
|
7255
7263
|
position: "absolute",
|
|
7256
7264
|
inset: "0",
|
|
7257
7265
|
display: "none",
|
|
@@ -7259,7 +7267,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7259
7267
|
}), v.append(N);
|
|
7260
7268
|
let P = (e) => {
|
|
7261
7269
|
let t = r.createElement("div");
|
|
7262
|
-
|
|
7270
|
+
Ll(t, {
|
|
7263
7271
|
position: "absolute",
|
|
7264
7272
|
opacity: "0.3",
|
|
7265
7273
|
...e
|
|
@@ -7286,7 +7294,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7286
7294
|
right: "0",
|
|
7287
7295
|
borderTop: "1px dashed var(--msr-color-ink-500, #64748b)"
|
|
7288
7296
|
});
|
|
7289
|
-
let
|
|
7297
|
+
let te = Object.entries({
|
|
7290
7298
|
nw: {
|
|
7291
7299
|
left: "0",
|
|
7292
7300
|
top: "0"
|
|
@@ -7321,7 +7329,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7321
7329
|
}
|
|
7322
7330
|
}).map(([e, t]) => {
|
|
7323
7331
|
let n = r.createElement("button");
|
|
7324
|
-
return n.type = "button", n.dataset.mesurerRecordingResize = e, n.setAttribute("aria-label", `Resize ${e}`),
|
|
7332
|
+
return n.type = "button", n.dataset.mesurerRecordingResize = e, n.setAttribute("aria-label", `Resize ${e}`), Ll(n, {
|
|
7325
7333
|
position: "absolute",
|
|
7326
7334
|
display: "none",
|
|
7327
7335
|
left: t.left,
|
|
@@ -7337,8 +7345,8 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7337
7345
|
cursor: e === "n" || e === "s" ? "ns-resize" : e === "e" || e === "w" ? "ew-resize" : e === "nw" || e === "se" ? "nwse-resize" : "nesw-resize",
|
|
7338
7346
|
"pointer-events": "auto"
|
|
7339
7347
|
}), v.append(n), n;
|
|
7340
|
-
}),
|
|
7341
|
-
|
|
7348
|
+
}), F = r.createElement("section");
|
|
7349
|
+
F.dataset.mesurerRecordingStatus = "true", F.dataset.mesurerInspectorUi = "true", F.setAttribute("aria-label", "Screen recording"), Ll(F, {
|
|
7342
7350
|
position: "fixed",
|
|
7343
7351
|
display: "none",
|
|
7344
7352
|
height: "34px",
|
|
@@ -7354,23 +7362,23 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7354
7362
|
"font-size": "11px",
|
|
7355
7363
|
"pointer-events": "auto"
|
|
7356
7364
|
});
|
|
7357
|
-
let
|
|
7358
|
-
|
|
7365
|
+
let I = r.createElement("span");
|
|
7366
|
+
I.setAttribute("aria-hidden", "true"), Ll(I, {
|
|
7359
7367
|
width: "6px",
|
|
7360
7368
|
height: "6px",
|
|
7361
7369
|
"border-radius": "999px",
|
|
7362
7370
|
background: "var(--msr-danger-solid-bg, #dc2626)",
|
|
7363
7371
|
"flex-shrink": "0"
|
|
7364
|
-
}),
|
|
7365
|
-
let
|
|
7366
|
-
|
|
7372
|
+
}), F.append(I);
|
|
7373
|
+
let L = r.createElement("span");
|
|
7374
|
+
L.dataset.mesurerRecordingTime = "true", L.textContent = "00:00", Ll(L, {
|
|
7367
7375
|
color: "var(--msr-content, #18181b)",
|
|
7368
7376
|
"font-family": "ui-monospace, SFMono-Regular, Menlo, monospace",
|
|
7369
7377
|
"font-size": "11px",
|
|
7370
7378
|
"font-variant-numeric": "tabular-nums"
|
|
7371
|
-
}),
|
|
7379
|
+
}), F.append(L);
|
|
7372
7380
|
let R = r.createElement("button");
|
|
7373
|
-
R.type = "button", R.dataset.mesurerRecordingStop = "true", R.textContent = "Stop", R.setAttribute("aria-label", "Stop recording"),
|
|
7381
|
+
R.type = "button", R.dataset.mesurerRecordingStop = "true", R.textContent = "Stop", R.setAttribute("aria-label", "Stop recording"), Ll(R, {
|
|
7374
7382
|
height: "24px",
|
|
7375
7383
|
padding: "0 8px",
|
|
7376
7384
|
border: "0",
|
|
@@ -7381,9 +7389,9 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7381
7389
|
"font-size": "11px",
|
|
7382
7390
|
"font-weight": "500",
|
|
7383
7391
|
cursor: "pointer"
|
|
7384
|
-
}),
|
|
7392
|
+
}), F.append(R), c.append(F);
|
|
7385
7393
|
let z = r.createElement("div");
|
|
7386
|
-
z.dataset.mesurerRecordingError = "true", z.dataset.mesurerInspectorUi = "true", z.setAttribute("role", "status"),
|
|
7394
|
+
z.dataset.mesurerRecordingError = "true", z.dataset.mesurerInspectorUi = "true", z.setAttribute("role", "status"), Ll(z, {
|
|
7387
7395
|
position: "fixed",
|
|
7388
7396
|
display: "none",
|
|
7389
7397
|
left: "8px",
|
|
@@ -7404,14 +7412,14 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7404
7412
|
width: null,
|
|
7405
7413
|
height: null,
|
|
7406
7414
|
error: null
|
|
7407
|
-
}, V = /* @__PURE__ */ new Set(),
|
|
7408
|
-
let e =
|
|
7415
|
+
}, V = /* @__PURE__ */ new Set(), H = null, U = null, W = null, G = null, ne = null, re = null, K = !1, ie = null, ae = null, oe = 0, se = 0, ce = 0, le = 0, ue = 0, de = -1, q = !1, fe = null, pe = () => {
|
|
7416
|
+
let e = Il(B);
|
|
7409
7417
|
for (let t of V) t(e);
|
|
7410
7418
|
}, me = (e) => {
|
|
7411
7419
|
B = {
|
|
7412
7420
|
...B,
|
|
7413
7421
|
...e,
|
|
7414
|
-
rect: e.rect === void 0 ? B.rect :
|
|
7422
|
+
rect: e.rect === void 0 ? B.rect : Fl(e.rect)
|
|
7415
7423
|
}, pe();
|
|
7416
7424
|
}, he = () => B.status === "selecting" || B.status === "recording" || B.status === "exporting", ge = () => {
|
|
7417
7425
|
if (ae) return;
|
|
@@ -7459,7 +7467,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7459
7467
|
height: 0
|
|
7460
7468
|
});
|
|
7461
7469
|
v.style.display = "none", v.style.pointerEvents = "none", N.style.display = "none";
|
|
7462
|
-
for (let e of
|
|
7470
|
+
for (let e of te) e.style.display = "none";
|
|
7463
7471
|
y.style.display = "none", x.style.display = "none", b.textContent = "Drag to select a region · Esc to cancel";
|
|
7464
7472
|
return;
|
|
7465
7473
|
}
|
|
@@ -7485,13 +7493,13 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7485
7493
|
height: Math.max(0, n - e.top - e.height)
|
|
7486
7494
|
}), v.style.display = "block", ve(v, e), K) {
|
|
7487
7495
|
v.style.pointerEvents = "auto", v.style.cursor = "move", N.style.display = "block";
|
|
7488
|
-
for (let e of
|
|
7489
|
-
y.style.display = "none", T.value = String(Math.round(e.width)), E.value = String(Math.round(e.height)),
|
|
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));
|
|
7490
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);
|
|
7491
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";
|
|
7492
7500
|
} else {
|
|
7493
7501
|
v.style.pointerEvents = "none", v.style.cursor = "", N.style.display = "none";
|
|
7494
|
-
for (let e of
|
|
7502
|
+
for (let e of te) e.style.display = "none";
|
|
7495
7503
|
x.style.display = "none", y.style.display = "block", y.textContent = `${Math.round(e.width)} × ${Math.round(e.height)}`, ve(y, {
|
|
7496
7504
|
left: e.left + e.width / 2,
|
|
7497
7505
|
top: Math.min(n - 22, e.top + e.height + 6)
|
|
@@ -7499,7 +7507,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7499
7507
|
}
|
|
7500
7508
|
}, Se = (e) => {
|
|
7501
7509
|
let t = ye(e);
|
|
7502
|
-
|
|
7510
|
+
re = t, me({ rect: t }), xe(t);
|
|
7503
7511
|
}, Ce = (e) => {
|
|
7504
7512
|
for (let e of g) ve(e, {
|
|
7505
7513
|
left: 0,
|
|
@@ -7508,41 +7516,41 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7508
7516
|
height: 0
|
|
7509
7517
|
});
|
|
7510
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";
|
|
7511
|
-
for (let e of
|
|
7519
|
+
for (let e of te) e.style.display = "none";
|
|
7512
7520
|
h.style.display = "block", h.style.pointerEvents = "none", h.style.cursor = "default";
|
|
7513
7521
|
}, we = () => {
|
|
7514
7522
|
u(!1), _.style.display = "none", h.style.display = "none", h.style.pointerEvents = "auto", h.style.cursor = "crosshair", b.style.removeProperty("display");
|
|
7515
7523
|
}, Te = () => {
|
|
7516
|
-
|
|
7524
|
+
ne = null, re = null, K = !1, ie = null, xe(null), h.style.display = "none", h.style.cursor = "crosshair", o.style.pointerEvents = "none";
|
|
7517
7525
|
}, Ee = (e) => {
|
|
7518
7526
|
let t = i.innerHeight, n = i.innerWidth;
|
|
7519
|
-
|
|
7520
|
-
let r = Math.max(112,
|
|
7527
|
+
F.style.visibility = "hidden", F.style.display = "flex";
|
|
7528
|
+
let r = Math.max(112, F.offsetWidth || 112), a = Math.min(n - r - 8, Math.max(8, e.left + e.width / 2 - r / 2)), o = l?.querySelector("[data-mesurer-toolbar='true']")?.getBoundingClientRect(), s = [e.top >= 50 ? e.top - 34 - 8 : null, t - (e.top + e.height) >= 50 ? e.top + e.height + 8 : null].filter((e) => e !== null), c = (e) => o ? a < o.right && a + r > o.left && e < o.bottom && e + 34 > o.top : !1, u = s.find((e) => !c(e)) ?? s[0] ?? null;
|
|
7521
7529
|
if (u === null) {
|
|
7522
|
-
|
|
7530
|
+
F.style.display = "none", F.style.removeProperty("visibility");
|
|
7523
7531
|
return;
|
|
7524
7532
|
}
|
|
7525
|
-
|
|
7533
|
+
F.style.left = `${a}px`, F.style.top = `${u}px`, F.style.removeProperty("visibility");
|
|
7526
7534
|
}, De = () => {
|
|
7527
|
-
|
|
7535
|
+
F.style.display = "none";
|
|
7528
7536
|
}, Oe = (e) => {
|
|
7529
7537
|
ce && i.clearTimeout(ce);
|
|
7530
7538
|
let t = e instanceof Error ? e.message : "Could not record this region.";
|
|
7531
7539
|
z.textContent = t, z.style.display = "block", ce = i.setTimeout(() => {
|
|
7532
7540
|
ce = 0, z.style.display = "none";
|
|
7533
|
-
},
|
|
7541
|
+
}, Nl);
|
|
7534
7542
|
}, ke = async (e) => {
|
|
7535
7543
|
oe && i.cancelAnimationFrame(oe), oe = 0, se && i.clearTimeout(se), se = 0;
|
|
7536
|
-
let t =
|
|
7537
|
-
if (
|
|
7544
|
+
let t = G;
|
|
7545
|
+
if (G = null, t) try {
|
|
7538
7546
|
await t;
|
|
7539
7547
|
} catch {}
|
|
7540
|
-
let n =
|
|
7541
|
-
|
|
7542
|
-
let r =
|
|
7543
|
-
|
|
7548
|
+
let n = W;
|
|
7549
|
+
W = null, e && await n?.cancel();
|
|
7550
|
+
let r = U;
|
|
7551
|
+
U = null, r && Jc(r), we(), De();
|
|
7544
7552
|
}, Ae = () => {
|
|
7545
|
-
|
|
7553
|
+
H = null, Ne.dismiss(), me({
|
|
7546
7554
|
status: "idle",
|
|
7547
7555
|
elapsed: 0,
|
|
7548
7556
|
rect: null,
|
|
@@ -7552,10 +7560,10 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7552
7560
|
error: null
|
|
7553
7561
|
}), t.hook.emit("recording:discard", {});
|
|
7554
7562
|
}, je = async () => {
|
|
7555
|
-
let e =
|
|
7563
|
+
let e = H;
|
|
7556
7564
|
return il(e?.width ?? Math.max(2, Math.round(i.innerWidth)), e?.height ?? Math.max(2, Math.round(i.innerHeight)), p().frameRate);
|
|
7557
7565
|
}, Me = async (e = {}) => {
|
|
7558
|
-
let n =
|
|
7566
|
+
let n = H;
|
|
7559
7567
|
if (!n) throw Error("No recording is ready to export.");
|
|
7560
7568
|
let r = B.status;
|
|
7561
7569
|
me({
|
|
@@ -7587,7 +7595,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7587
7595
|
error: e instanceof Error ? e.message : "Could not export the recording."
|
|
7588
7596
|
}), e;
|
|
7589
7597
|
}
|
|
7590
|
-
}, Ne =
|
|
7598
|
+
}, Ne = Sl({
|
|
7591
7599
|
ownerDocument: r,
|
|
7592
7600
|
ownerWindow: i,
|
|
7593
7601
|
root: o,
|
|
@@ -7596,15 +7604,15 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7596
7604
|
onExport: Me
|
|
7597
7605
|
}), Pe = async () => {
|
|
7598
7606
|
if (fe) return fe;
|
|
7599
|
-
if (B.status !== "recording" || !
|
|
7600
|
-
let e = le, n =
|
|
7607
|
+
if (B.status !== "recording" || !W || !U) throw Error("No recording is active.");
|
|
7608
|
+
let e = le, n = W, r = U, a = Fl(B.rect);
|
|
7601
7609
|
if (!a) throw Error("Recording region is unavailable.");
|
|
7602
7610
|
return fe = (async () => {
|
|
7603
7611
|
oe && i.cancelAnimationFrame(oe), oe = 0, se && i.clearTimeout(se), se = 0;
|
|
7604
|
-
let s =
|
|
7605
|
-
|
|
7612
|
+
let s = G;
|
|
7613
|
+
G = null, s && await s;
|
|
7606
7614
|
let c = await n.finalize();
|
|
7607
|
-
if (
|
|
7615
|
+
if (W = null, U = null, Jc(r), le !== e || q) throw Error("Recording was cancelled.");
|
|
7608
7616
|
let l = await sl(c), u = {
|
|
7609
7617
|
blob: c,
|
|
7610
7618
|
format: "webm",
|
|
@@ -7613,7 +7621,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7613
7621
|
height: l.height,
|
|
7614
7622
|
createdAt: Date.now()
|
|
7615
7623
|
};
|
|
7616
|
-
return
|
|
7624
|
+
return H = u, we(), De(), _e(), o.style.pointerEvents = "none", me({
|
|
7617
7625
|
status: "ready",
|
|
7618
7626
|
elapsed: l.duration,
|
|
7619
7627
|
duration: l.duration,
|
|
@@ -7641,16 +7649,16 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7641
7649
|
}), fe;
|
|
7642
7650
|
}, Fe = (e, t, n, r) => {
|
|
7643
7651
|
let a = 1 / r, o = (r) => {
|
|
7644
|
-
if (q || le !== n || B.status !== "recording" ||
|
|
7652
|
+
if (q || le !== n || B.status !== "recording" || W !== t || U !== e) return;
|
|
7645
7653
|
let s = Math.max(0, (r - ue) / 1e3);
|
|
7646
|
-
me({ elapsed: s }),
|
|
7654
|
+
me({ elapsed: s }), L.textContent = `${String(Math.floor(s / 60)).padStart(2, "0")}:${String(Math.floor(s % 60)).padStart(2, "0")}`;
|
|
7647
7655
|
let c = s;
|
|
7648
|
-
!
|
|
7656
|
+
!G && c - de >= a * .8 && (qc(e, B.rect ?? {
|
|
7649
7657
|
left: 0,
|
|
7650
7658
|
top: 0,
|
|
7651
7659
|
width: i.innerWidth,
|
|
7652
7660
|
height: i.innerHeight
|
|
7653
|
-
}, Ac(i)), de = c,
|
|
7661
|
+
}, Ac(i)), de = c, G = t.addFrame(c, a).catch((e) => {
|
|
7654
7662
|
throw le === n && !q && ke(!0).then(() => {
|
|
7655
7663
|
_e();
|
|
7656
7664
|
let t = e instanceof Error ? e.message : "MediaBunny could not encode the recording.";
|
|
@@ -7660,13 +7668,13 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7660
7668
|
}), Oe(e);
|
|
7661
7669
|
}), e;
|
|
7662
7670
|
}).finally(() => {
|
|
7663
|
-
|
|
7671
|
+
G = null;
|
|
7664
7672
|
})), oe = i.requestAnimationFrame(o);
|
|
7665
7673
|
};
|
|
7666
7674
|
oe = i.requestAnimationFrame(o);
|
|
7667
7675
|
}, Ie = async (e) => {
|
|
7668
7676
|
let n = ++le, a = p().frameRate;
|
|
7669
|
-
Ne.dismiss(),
|
|
7677
|
+
Ne.dismiss(), H = null, ne = null, re = null, K = !1, ie = null, Ce(e), o.style.pointerEvents = "none", u(!0), _e(), me({
|
|
7670
7678
|
status: "selecting",
|
|
7671
7679
|
elapsed: 0,
|
|
7672
7680
|
rect: e,
|
|
@@ -7674,7 +7682,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7674
7682
|
width: null,
|
|
7675
7683
|
height: null,
|
|
7676
7684
|
error: null
|
|
7677
|
-
}),
|
|
7685
|
+
}), L.textContent = "00:00", Ee(e);
|
|
7678
7686
|
try {
|
|
7679
7687
|
let s = await Kc(r, i, e, a);
|
|
7680
7688
|
if (q || le !== n) {
|
|
@@ -7690,14 +7698,14 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7690
7698
|
await c.cancel(), Jc(s);
|
|
7691
7699
|
return;
|
|
7692
7700
|
}
|
|
7693
|
-
if (
|
|
7701
|
+
if (U = s, W = c, ue = i.performance.now(), de = 0, qc(s, e, Ac(i)), await c.addFrame(0, 1 / a), q || le !== n) {
|
|
7694
7702
|
await ke(!0);
|
|
7695
7703
|
return;
|
|
7696
7704
|
}
|
|
7697
7705
|
me({
|
|
7698
7706
|
status: "recording",
|
|
7699
7707
|
elapsed: 0
|
|
7700
|
-
}), o.style.pointerEvents = "none", u(!0), Ce(e),
|
|
7708
|
+
}), o.style.pointerEvents = "none", u(!0), Ce(e), L.textContent = "00:00", Ee(e), Fe(s, c, n, a), s.track.addEventListener("ended", () => {
|
|
7701
7709
|
le === n && B.status === "recording" && Pe().catch(() => void 0);
|
|
7702
7710
|
}, { once: !0 }), se = i.setTimeout(() => {
|
|
7703
7711
|
le === n && B.status === "recording" && Pe().catch(() => void 0);
|
|
@@ -7716,7 +7724,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7716
7724
|
}), r || Oe(t), t;
|
|
7717
7725
|
}
|
|
7718
7726
|
}, Le = () => {
|
|
7719
|
-
B.status !== "selecting" && (++le, Ne.dismiss(),
|
|
7727
|
+
B.status !== "selecting" && (++le, Ne.dismiss(), H = null, re = null, K = !1, ie = null, ge(), xe(null), h.style.display = "block", h.style.pointerEvents = "auto", b.style.removeProperty("display"), o.style.pointerEvents = "auto", me({
|
|
7720
7728
|
status: "selecting",
|
|
7721
7729
|
elapsed: 0,
|
|
7722
7730
|
rect: null,
|
|
@@ -7751,7 +7759,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7751
7759
|
error: null
|
|
7752
7760
|
});
|
|
7753
7761
|
}, Be = (e, t, n) => {
|
|
7754
|
-
let r =
|
|
7762
|
+
let r = re;
|
|
7755
7763
|
!K || !r || e.button !== 0 || (e.preventDefault(), e.stopPropagation(), ie = {
|
|
7756
7764
|
kind: t,
|
|
7757
7765
|
handle: n,
|
|
@@ -7761,13 +7769,13 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7761
7769
|
rect: { ...r }
|
|
7762
7770
|
}, h.setPointerCapture?.(e.pointerId));
|
|
7763
7771
|
}, Ve = (e) => {
|
|
7764
|
-
B.status === "selecting" && e.button === 0 && (K &&
|
|
7772
|
+
B.status === "selecting" && e.button === 0 && (K && re && be(re, {
|
|
7765
7773
|
x: e.clientX,
|
|
7766
7774
|
y: e.clientY
|
|
7767
|
-
}) || (e.preventDefault(), e.stopPropagation(), K = !1,
|
|
7775
|
+
}) || (e.preventDefault(), e.stopPropagation(), K = !1, re = null, me({ rect: null }), h.style.cursor = "crosshair", ne = {
|
|
7768
7776
|
x: e.clientX,
|
|
7769
7777
|
y: e.clientY
|
|
7770
|
-
}, xe(Or(
|
|
7778
|
+
}, xe(Or(ne, ne, {
|
|
7771
7779
|
width: i.innerWidth,
|
|
7772
7780
|
height: i.innerHeight
|
|
7773
7781
|
})), h.setPointerCapture?.(e.pointerId)));
|
|
@@ -7792,7 +7800,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7792
7800
|
});
|
|
7793
7801
|
return;
|
|
7794
7802
|
}
|
|
7795
|
-
|
|
7803
|
+
ne && xe(Or(ne, {
|
|
7796
7804
|
x: e.clientX,
|
|
7797
7805
|
y: e.clientY
|
|
7798
7806
|
}, {
|
|
@@ -7802,11 +7810,11 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7802
7810
|
}
|
|
7803
7811
|
}, Ue = (e) => {
|
|
7804
7812
|
if (ie) {
|
|
7805
|
-
ie = null, h.hasPointerCapture?.(e.pointerId) && h.releasePointerCapture(e.pointerId),
|
|
7813
|
+
ie = null, h.hasPointerCapture?.(e.pointerId) && h.releasePointerCapture(e.pointerId), re && xe(re);
|
|
7806
7814
|
return;
|
|
7807
7815
|
}
|
|
7808
|
-
let t =
|
|
7809
|
-
if (
|
|
7816
|
+
let t = ne;
|
|
7817
|
+
if (ne = null, B.status !== "selecting" || !t) return;
|
|
7810
7818
|
h.hasPointerCapture?.(e.pointerId) && h.releasePointerCapture(e.pointerId);
|
|
7811
7819
|
let n = Or(t, {
|
|
7812
7820
|
x: e.clientX,
|
|
@@ -7816,15 +7824,15 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7816
7824
|
height: i.innerHeight
|
|
7817
7825
|
});
|
|
7818
7826
|
if (n.width < 4 || n.height < 4) {
|
|
7819
|
-
|
|
7827
|
+
re = null, K = !1, me({ rect: null }), xe(null);
|
|
7820
7828
|
return;
|
|
7821
7829
|
}
|
|
7822
|
-
|
|
7830
|
+
re = ye(n), K = !0, h.style.cursor = "default", me({ rect: re }), xe(re);
|
|
7823
7831
|
}, We = (e) => {
|
|
7824
|
-
|
|
7832
|
+
ne = null, ie = null, h.hasPointerCapture?.(e.pointerId) && h.releasePointerCapture(e.pointerId), xe(re && K ? re : null);
|
|
7825
7833
|
}, Ge = (e) => {
|
|
7826
|
-
if (e.key === "Enter" && B.status === "selecting" && K &&
|
|
7827
|
-
e.preventDefault(), e.stopImmediatePropagation(), Ie(
|
|
7834
|
+
if (e.key === "Enter" && B.status === "selecting" && K && re) {
|
|
7835
|
+
e.preventDefault(), e.stopImmediatePropagation(), Ie(re).catch(() => void 0);
|
|
7828
7836
|
return;
|
|
7829
7837
|
}
|
|
7830
7838
|
if (e.key === "Escape") {
|
|
@@ -7839,7 +7847,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7839
7847
|
let t = e.target;
|
|
7840
7848
|
t instanceof Element && t.closest("[data-mesurer-recording-resize]") || Be(e, "move");
|
|
7841
7849
|
});
|
|
7842
|
-
for (let e of
|
|
7850
|
+
for (let e of te) e.addEventListener("pointerdown", (t) => {
|
|
7843
7851
|
Be(t, "resize", e.dataset.mesurerRecordingResize);
|
|
7844
7852
|
});
|
|
7845
7853
|
x.addEventListener("pointerdown", (e) => {
|
|
@@ -7848,23 +7856,23 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7848
7856
|
e.stopPropagation();
|
|
7849
7857
|
});
|
|
7850
7858
|
let Ke = (e, t) => {
|
|
7851
|
-
let n =
|
|
7859
|
+
let n = re, r = Number(e.value);
|
|
7852
7860
|
!n || !Number.isFinite(r) || Se({
|
|
7853
7861
|
...n,
|
|
7854
7862
|
[t]: r
|
|
7855
7863
|
});
|
|
7856
7864
|
};
|
|
7857
|
-
T.addEventListener("change", () => Ke(T, "width")), E.addEventListener("change", () => Ke(E, "height")),
|
|
7858
|
-
B.status === "selecting" && K &&
|
|
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", () => {
|
|
7866
|
+
B.status === "selecting" && K && re && Ie(re).catch(() => void 0);
|
|
7859
7867
|
}), R.addEventListener("click", () => {
|
|
7860
7868
|
if (B.status === "recording") {
|
|
7861
7869
|
Pe().catch(() => void 0);
|
|
7862
7870
|
return;
|
|
7863
7871
|
}
|
|
7864
|
-
B.status === "selecting" &&
|
|
7872
|
+
B.status === "selecting" && F.style.display !== "none" && ze().catch(() => void 0);
|
|
7865
7873
|
});
|
|
7866
7874
|
let qe = {
|
|
7867
|
-
snapshot: () =>
|
|
7875
|
+
snapshot: () => Il(B),
|
|
7868
7876
|
subscribe(e) {
|
|
7869
7877
|
return V.add(e), () => V.delete(e);
|
|
7870
7878
|
},
|
|
@@ -7882,10 +7890,10 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7882
7890
|
label: "Record",
|
|
7883
7891
|
shortcut: "Shift+R",
|
|
7884
7892
|
order: 72,
|
|
7885
|
-
command:
|
|
7893
|
+
command: Dl,
|
|
7886
7894
|
toolbarMode: "select",
|
|
7887
7895
|
compactPinned: !0,
|
|
7888
|
-
icon:
|
|
7896
|
+
icon: Pl,
|
|
7889
7897
|
active: he,
|
|
7890
7898
|
hidden: () => !p().toolEnabled,
|
|
7891
7899
|
menu: {
|
|
@@ -7906,7 +7914,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7906
7914
|
{
|
|
7907
7915
|
id: "discard",
|
|
7908
7916
|
label: "Discard clip",
|
|
7909
|
-
disabled: () =>
|
|
7917
|
+
disabled: () => H === null,
|
|
7910
7918
|
run: Ae
|
|
7911
7919
|
}
|
|
7912
7920
|
]
|
|
@@ -7935,21 +7943,21 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7935
7943
|
m({ frameRate: e ? 120 : 60 });
|
|
7936
7944
|
}
|
|
7937
7945
|
}]
|
|
7938
|
-
}), t.command.register(
|
|
7939
|
-
let t = await Me(
|
|
7940
|
-
return
|
|
7941
|
-
}), t.service.provide(
|
|
7946
|
+
}), t.command.register(Dl, async () => (await Re(), Vl(B))), t.command.register(Ol, async () => Ul(await Pe())), t.command.register(kl, () => (Ae(), Vl(B))), t.command.register(Al, async (e) => {
|
|
7947
|
+
let t = await Me(Bl(e));
|
|
7948
|
+
return Wl(t, r, i), Hl(t);
|
|
7949
|
+
}), t.service.provide(wl, qe), t.lifecycle.onDispose(() => {
|
|
7942
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();
|
|
7943
7951
|
});
|
|
7944
7952
|
}
|
|
7945
|
-
}),
|
|
7953
|
+
}), Kl = 144, ql = 96, Jl = 8, Yl = 4, Xl = 1800, Zl = 200, Ql = (e, t) => {
|
|
7946
7954
|
for (let [n, r] of Object.entries(t)) e.style.setProperty(n, r);
|
|
7947
|
-
},
|
|
7948
|
-
left: Math.min(Math.max(
|
|
7949
|
-
top: Math.min(Math.max(
|
|
7950
|
-
}),
|
|
7955
|
+
}, $l = (e, t) => ({
|
|
7956
|
+
left: Math.min(Math.max(Jl, e.left), Math.max(Jl, t.innerWidth - Kl - Jl)),
|
|
7957
|
+
top: Math.min(Math.max(Jl, e.top), Math.max(Jl, t.innerHeight - ql - Jl))
|
|
7958
|
+
}), eu = (e, t) => {
|
|
7951
7959
|
let n = e.createElement("button");
|
|
7952
|
-
return n.type = "button", n.textContent = t,
|
|
7960
|
+
return n.type = "button", n.textContent = t, Ql(n, {
|
|
7953
7961
|
height: "32px",
|
|
7954
7962
|
padding: "0 12px",
|
|
7955
7963
|
border: "1px solid rgb(255 255 255 / 18%)",
|
|
@@ -7961,11 +7969,11 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7961
7969
|
"font-weight": "500",
|
|
7962
7970
|
cursor: "pointer"
|
|
7963
7971
|
}), n;
|
|
7964
|
-
},
|
|
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 }) => {
|
|
7965
7973
|
let i = n.closest("[data-mesurer-root='true']")?.parentNode ?? n.parentNode;
|
|
7966
|
-
if (!
|
|
7974
|
+
if (!nu(i)) throw Error("Screenshot preview requires a mounted Mesurer host.");
|
|
7967
7975
|
let a = e.createElement("div");
|
|
7968
|
-
a.dataset.mesurerInspectorUi = "true", a.dataset.mesurerScreenshotInteractive = "true",
|
|
7976
|
+
a.dataset.mesurerInspectorUi = "true", a.dataset.mesurerScreenshotInteractive = "true", Ql(a, {
|
|
7969
7977
|
position: "fixed",
|
|
7970
7978
|
left: "0",
|
|
7971
7979
|
top: "0",
|
|
@@ -7977,12 +7985,12 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7977
7985
|
"font-family": "ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif"
|
|
7978
7986
|
}), i.append(a);
|
|
7979
7987
|
let o = e.createElement("div");
|
|
7980
|
-
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, {
|
|
7981
7989
|
position: "fixed",
|
|
7982
7990
|
display: "none",
|
|
7983
7991
|
"z-index": "96",
|
|
7984
|
-
width: `${
|
|
7985
|
-
height: `${
|
|
7992
|
+
width: `${Kl}px`,
|
|
7993
|
+
height: `${ql}px`,
|
|
7986
7994
|
"box-sizing": "border-box",
|
|
7987
7995
|
overflow: "hidden",
|
|
7988
7996
|
"border-radius": "10px",
|
|
@@ -7995,7 +8003,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
7995
8003
|
"touch-action": "none"
|
|
7996
8004
|
});
|
|
7997
8005
|
let s = e.createElement("img");
|
|
7998
|
-
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, {
|
|
7999
8007
|
display: "block",
|
|
8000
8008
|
width: "100%",
|
|
8001
8009
|
height: "100%",
|
|
@@ -8003,7 +8011,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8003
8011
|
"background-color": "white"
|
|
8004
8012
|
}), o.append(s);
|
|
8005
8013
|
let c = e.createElement("button");
|
|
8006
|
-
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, {
|
|
8007
8015
|
position: "absolute",
|
|
8008
8016
|
top: "8px",
|
|
8009
8017
|
right: "8px",
|
|
@@ -8021,15 +8029,16 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8021
8029
|
"font-family": "inherit",
|
|
8022
8030
|
"font-size": "14px",
|
|
8023
8031
|
"line-height": "1",
|
|
8024
|
-
"z-index": "
|
|
8025
|
-
cursor: "pointer"
|
|
8032
|
+
"z-index": "2",
|
|
8033
|
+
cursor: "pointer",
|
|
8034
|
+
"touch-action": "none"
|
|
8026
8035
|
});
|
|
8027
8036
|
let l = e.createElementNS("http://www.w3.org/2000/svg", "svg");
|
|
8028
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");
|
|
8029
8038
|
let u = e.createElementNS("http://www.w3.org/2000/svg", "path");
|
|
8030
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);
|
|
8031
8040
|
let d = e.createElement("div");
|
|
8032
|
-
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, {
|
|
8033
8042
|
position: "fixed",
|
|
8034
8043
|
inset: "0",
|
|
8035
8044
|
display: "none",
|
|
@@ -8043,7 +8052,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8043
8052
|
"pointer-events": "auto"
|
|
8044
8053
|
});
|
|
8045
8054
|
let f = e.createElement("img");
|
|
8046
|
-
f.dataset.mesurerScreenshotViewerImage = "true", f.alt = "Captured screenshot",
|
|
8055
|
+
f.dataset.mesurerScreenshotViewerImage = "true", f.alt = "Captured screenshot", Ql(f, {
|
|
8047
8056
|
display: "block",
|
|
8048
8057
|
"max-width": "calc(100vw - 96px)",
|
|
8049
8058
|
"max-height": "calc(100vh - 112px)",
|
|
@@ -8054,7 +8063,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8054
8063
|
"box-shadow": "0 8px 30px rgb(0 0 0 / 28%)"
|
|
8055
8064
|
}), d.append(f);
|
|
8056
8065
|
let p = e.createElement("div");
|
|
8057
|
-
p.dataset.mesurerScreenshotViewerControls = "true",
|
|
8066
|
+
p.dataset.mesurerScreenshotViewerControls = "true", Ql(p, {
|
|
8058
8067
|
position: "fixed",
|
|
8059
8068
|
top: "16px",
|
|
8060
8069
|
right: "16px",
|
|
@@ -8062,14 +8071,14 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8062
8071
|
gap: "8px",
|
|
8063
8072
|
"pointer-events": "auto"
|
|
8064
8073
|
});
|
|
8065
|
-
let m =
|
|
8074
|
+
let m = eu(e, "Copy");
|
|
8066
8075
|
m.dataset.mesurerScreenshotViewerCopy = "true", m.setAttribute("aria-label", "Copy screenshot");
|
|
8067
|
-
let h =
|
|
8076
|
+
let h = eu(e, "Save");
|
|
8068
8077
|
h.dataset.mesurerScreenshotViewerSave = "true", h.setAttribute("aria-label", "Save screenshot");
|
|
8069
|
-
let g =
|
|
8078
|
+
let g = eu(e, "Close");
|
|
8070
8079
|
g.dataset.mesurerScreenshotViewerClose = "true", g.setAttribute("aria-label", "Close screenshot viewer"), p.append(m, h, g), d.append(p), a.append(d);
|
|
8071
8080
|
let _ = e.createElement("div");
|
|
8072
|
-
_.dataset.mesurerScreenshotToast = "true", _.setAttribute("role", "status"),
|
|
8081
|
+
_.dataset.mesurerScreenshotToast = "true", _.setAttribute("role", "status"), Ql(_, {
|
|
8073
8082
|
position: "fixed",
|
|
8074
8083
|
left: "50%",
|
|
8075
8084
|
bottom: "20px",
|
|
@@ -8084,45 +8093,64 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8084
8093
|
"font-weight": "500",
|
|
8085
8094
|
"pointer-events": "none"
|
|
8086
8095
|
}), a.append(_);
|
|
8087
|
-
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 = () => {
|
|
8088
8097
|
S && t.clearTimeout(S), S = 0;
|
|
8089
|
-
},
|
|
8098
|
+
}, D = () => {
|
|
8090
8099
|
C && t.clearTimeout(C), C = 0;
|
|
8091
|
-
},
|
|
8092
|
-
|
|
8100
|
+
}, O = (e, n = !1) => {
|
|
8101
|
+
D(), _.textContent = e, _.style.backgroundColor = n ? "#b42318" : "rgb(28 28 30 / 90%)", _.style.display = "block", C = t.setTimeout(() => {
|
|
8093
8102
|
C = 0, _.style.display = "none";
|
|
8094
|
-
},
|
|
8095
|
-
},
|
|
8103
|
+
}, Xl);
|
|
8104
|
+
}, k = () => {
|
|
8096
8105
|
d.style.display = "none";
|
|
8097
|
-
},
|
|
8106
|
+
}, A = () => {
|
|
8098
8107
|
y && globalThis.URL.revokeObjectURL(y), y = null, v = null, s.removeAttribute("src"), f.removeAttribute("src");
|
|
8099
|
-
},
|
|
8100
|
-
|
|
8101
|
-
}, A = () => Zl({
|
|
8102
|
-
left: t.innerWidth - Gl - ql,
|
|
8103
|
-
top: t.innerHeight - Kl - ql
|
|
8104
|
-
}, t), j = (e) => {
|
|
8105
|
-
let n = Zl(e, t);
|
|
8106
|
-
b = n, o.style.left = `${n.left}px`, o.style.top = `${n.top}px`;
|
|
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();
|
|
8107
8110
|
}, M = () => {
|
|
8108
|
-
!v ||
|
|
8109
|
-
|
|
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({
|
|
8130
|
+
left: t.innerWidth - Kl - Jl,
|
|
8131
|
+
top: t.innerHeight - ql - Jl
|
|
8132
|
+
}, t), N = (e) => {
|
|
8133
|
+
let n = $l(e, t);
|
|
8134
|
+
b = n, o.style.left = `${n.left}px`, o.style.top = `${n.top}px`;
|
|
8135
|
+
}, P = () => {
|
|
8136
|
+
!v || !y || (E(), d.style.display = "flex", g.focus());
|
|
8137
|
+
}, te = async () => {
|
|
8110
8138
|
let e = v;
|
|
8111
8139
|
if (e) try {
|
|
8112
|
-
await Ar(Promise.resolve(e), t),
|
|
8140
|
+
await Ar(Promise.resolve(e), t), O("Copied screenshot");
|
|
8113
8141
|
} catch {
|
|
8114
|
-
|
|
8142
|
+
O("Could not copy screenshot", !0);
|
|
8115
8143
|
}
|
|
8116
|
-
},
|
|
8144
|
+
}, F = () => {
|
|
8117
8145
|
let n = v;
|
|
8118
8146
|
if (n) try {
|
|
8119
|
-
Mr(n, jr(), e, t),
|
|
8147
|
+
Mr(n, jr(), e, t), O("Saved screenshot");
|
|
8120
8148
|
} catch {
|
|
8121
|
-
|
|
8149
|
+
O("Could not save screenshot", !0);
|
|
8122
8150
|
}
|
|
8123
|
-
},
|
|
8151
|
+
}, I = (e, t, n) => {
|
|
8124
8152
|
if (!v) return !1;
|
|
8125
|
-
|
|
8153
|
+
E();
|
|
8126
8154
|
let r = o.getBoundingClientRect();
|
|
8127
8155
|
return x = {
|
|
8128
8156
|
pointerId: n,
|
|
@@ -8132,73 +8160,73 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8132
8160
|
top: r.top,
|
|
8133
8161
|
moved: !1
|
|
8134
8162
|
}, o.style.cursor = "grabbing", !0;
|
|
8135
|
-
},
|
|
8163
|
+
}, L = (e, t) => {
|
|
8136
8164
|
let n = x;
|
|
8137
8165
|
if (!n) return;
|
|
8138
8166
|
let r = e - n.startX, i = t - n.startY;
|
|
8139
|
-
!n.moved && Math.hypot(r, i) >=
|
|
8167
|
+
!n.moved && Math.hypot(r, i) >= Yl && (n.moved = !0), n.moved && N({
|
|
8140
8168
|
left: n.left + r,
|
|
8141
8169
|
top: n.top + i
|
|
8142
8170
|
});
|
|
8143
|
-
},
|
|
8171
|
+
}, R = () => {
|
|
8144
8172
|
let e = x;
|
|
8145
|
-
e && (x = null, o.style.cursor = "grab", e.moved ||
|
|
8146
|
-
},
|
|
8173
|
+
e && (x = null, o.style.cursor = "grab", e.moved || P());
|
|
8174
|
+
}, z = () => {
|
|
8147
8175
|
x && (x = null, o.style.cursor = "grab");
|
|
8148
|
-
}, R = (e) => {
|
|
8149
|
-
e.button !== 0 || !F(e.clientX, e.clientY, null) || e.preventDefault();
|
|
8150
|
-
}, z = (e) => {
|
|
8151
|
-
x?.pointerId === null && I(e.clientX, e.clientY);
|
|
8152
8176
|
}, B = (e) => {
|
|
8153
|
-
e.button
|
|
8177
|
+
e.button !== 0 || !I(e.clientX, e.clientY, null) || e.preventDefault();
|
|
8154
8178
|
}, V = (e) => {
|
|
8155
|
-
|
|
8156
|
-
}, ne = (e) => {
|
|
8157
|
-
let t = x?.pointerId;
|
|
8158
|
-
t != null && t === e.pointerId && I(e.clientX, e.clientY);
|
|
8179
|
+
x?.pointerId === null && L(e.clientX, e.clientY);
|
|
8159
8180
|
}, H = (e) => {
|
|
8160
|
-
|
|
8161
|
-
t != null && t === e.pointerId && (o.hasPointerCapture?.(e.pointerId) && o.releasePointerCapture(e.pointerId), L());
|
|
8181
|
+
e.button === 0 && x?.pointerId === null && R();
|
|
8162
8182
|
}, U = (e) => {
|
|
8163
|
-
|
|
8164
|
-
t != null && t === e.pointerId && (o.hasPointerCapture?.(e.pointerId) && o.releasePointerCapture(e.pointerId), te());
|
|
8183
|
+
e.pointerType !== "mouse" && e.button === 0 && I(e.clientX, e.clientY, e.pointerId) && (o.setPointerCapture?.(e.pointerId), e.preventDefault());
|
|
8165
8184
|
}, W = (e) => {
|
|
8166
|
-
|
|
8167
|
-
|
|
8168
|
-
e.target !== s && e.preventDefault();
|
|
8185
|
+
let t = x?.pointerId;
|
|
8186
|
+
t != null && t === e.pointerId && L(e.clientX, e.clientY);
|
|
8169
8187
|
}, G = (e) => {
|
|
8170
|
-
|
|
8188
|
+
let t = x?.pointerId;
|
|
8189
|
+
t != null && t === e.pointerId && (o.hasPointerCapture?.(e.pointerId) && o.releasePointerCapture(e.pointerId), R());
|
|
8190
|
+
}, ne = (e) => {
|
|
8191
|
+
let t = x?.pointerId;
|
|
8192
|
+
t != null && t === e.pointerId && (o.hasPointerCapture?.(e.pointerId) && o.releasePointerCapture(e.pointerId), z());
|
|
8193
|
+
}, re = (e) => {
|
|
8194
|
+
(e.key === "Enter" || e.key === " ") && (e.preventDefault(), P());
|
|
8171
8195
|
}, K = (e) => {
|
|
8172
|
-
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());
|
|
8173
8201
|
};
|
|
8174
8202
|
return c.addEventListener("pointerdown", (e) => e.stopPropagation()), c.addEventListener("mousedown", (e) => e.stopPropagation()), c.addEventListener("click", (e) => {
|
|
8175
|
-
e.stopPropagation(),
|
|
8176
|
-
}), o.addEventListener("mousedown",
|
|
8177
|
-
|
|
8178
|
-
}), 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), {
|
|
8179
8207
|
show(e, n) {
|
|
8180
|
-
if (
|
|
8181
|
-
|
|
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;
|
|
8182
8210
|
let i = globalThis.URL.createObjectURL(e);
|
|
8183
|
-
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));
|
|
8184
8212
|
},
|
|
8185
|
-
dismiss:
|
|
8213
|
+
dismiss: j,
|
|
8186
8214
|
dispose() {
|
|
8187
|
-
|
|
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());
|
|
8188
8216
|
}
|
|
8189
8217
|
};
|
|
8190
|
-
},
|
|
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 = [
|
|
8191
8219
|
"[data-mesurer-measurement='true']",
|
|
8192
8220
|
"[data-mesurer-selected-measurement='true']",
|
|
8193
8221
|
"[data-mesurer-selection-spacing-target='true']",
|
|
8194
8222
|
"[data-mesurer-guide='true']",
|
|
8195
8223
|
"[data-mesurer-distance='true']"
|
|
8196
|
-
].join(","),
|
|
8224
|
+
].join(","), pu = `${fu},[data-mesurer-rulers='true']`, mu = {
|
|
8197
8225
|
viewBox: "0 0 256 256",
|
|
8198
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"]
|
|
8199
|
-
},
|
|
8227
|
+
}, hu = (e, t) => {
|
|
8200
8228
|
for (let [n, r] of Object.entries(t)) e.style.setProperty(n, r);
|
|
8201
|
-
},
|
|
8229
|
+
}, gu = (e, t) => {
|
|
8202
8230
|
for (let n of [
|
|
8203
8231
|
"left",
|
|
8204
8232
|
"top",
|
|
@@ -8210,63 +8238,63 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8210
8238
|
let r = t[n];
|
|
8211
8239
|
r === void 0 ? e.style.removeProperty(n) : e.style.setProperty(n, `${r}px`);
|
|
8212
8240
|
}
|
|
8213
|
-
},
|
|
8214
|
-
let t = e(
|
|
8241
|
+
}, _u = (e) => {
|
|
8242
|
+
let t = e(ou);
|
|
8215
8243
|
return {
|
|
8216
8244
|
toolEnabled: t?.toolEnabled ?? !0,
|
|
8217
8245
|
copy: t?.copy ?? !0,
|
|
8218
8246
|
download: t?.download ?? !1,
|
|
8219
8247
|
includeMeasurements: t?.includeMeasurements ?? !1
|
|
8220
8248
|
};
|
|
8221
|
-
},
|
|
8249
|
+
}, vu = (e) => ({
|
|
8222
8250
|
value: e.style.getPropertyValue("display"),
|
|
8223
8251
|
priority: e.style.getPropertyPriority("display")
|
|
8224
|
-
}),
|
|
8252
|
+
}), yu = (e, t) => {
|
|
8225
8253
|
t.value || t.priority ? e.style.setProperty("display", t.value, t.priority) : e.style.removeProperty("display");
|
|
8226
|
-
},
|
|
8254
|
+
}, bu = (e, t) => {
|
|
8227
8255
|
let n = e;
|
|
8228
8256
|
for (; n.parentElement && n.parentElement !== t;) n = n.parentElement;
|
|
8229
8257
|
return n.parentElement === t ? n : null;
|
|
8230
|
-
},
|
|
8258
|
+
}, xu = (e) => {
|
|
8231
8259
|
let t = e.querySelector("[data-mesurer-root='true']");
|
|
8232
8260
|
if (!t) return () => void 0;
|
|
8233
8261
|
let n = /* @__PURE__ */ new Set();
|
|
8234
8262
|
for (let e of t.querySelectorAll("[data-mesurer-rulers='true']")) {
|
|
8235
|
-
let r =
|
|
8263
|
+
let r = bu(e, t);
|
|
8236
8264
|
r && n.add(r);
|
|
8237
8265
|
}
|
|
8238
|
-
for (let e of t.querySelectorAll(
|
|
8239
|
-
let r =
|
|
8266
|
+
for (let e of t.querySelectorAll(fu)) {
|
|
8267
|
+
let r = bu(e, t);
|
|
8240
8268
|
r && n.add(r);
|
|
8241
8269
|
}
|
|
8242
8270
|
let r = [];
|
|
8243
8271
|
for (let e of n) e.dataset.mesurerInspectorUi !== "true" && (r.push({
|
|
8244
8272
|
element: e,
|
|
8245
|
-
display:
|
|
8273
|
+
display: vu(e)
|
|
8246
8274
|
}), e.style.setProperty("display", "none", "important"));
|
|
8247
8275
|
return () => {
|
|
8248
|
-
for (let e of r)
|
|
8276
|
+
for (let e of r) yu(e.element, e.display);
|
|
8249
8277
|
};
|
|
8250
|
-
},
|
|
8278
|
+
}, Su = (e) => Array.from(e.querySelectorAll(pu)).filter((e) => e.dataset.mesurerInspectorUi === "true").map((e) => ({
|
|
8251
8279
|
element: e,
|
|
8252
|
-
display:
|
|
8253
|
-
})),
|
|
8254
|
-
for (let t of e) t.element.isConnected &&
|
|
8255
|
-
},
|
|
8256
|
-
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,
|
|
8257
8285
|
version: "0.1.0",
|
|
8258
|
-
requires: [
|
|
8286
|
+
requires: [cu],
|
|
8259
8287
|
provides: [
|
|
8260
8288
|
"tool:screenshot",
|
|
8261
8289
|
"capture:screenshot",
|
|
8262
8290
|
"settings:screenshot"
|
|
8263
8291
|
],
|
|
8264
8292
|
setup(t) {
|
|
8265
|
-
let n = t.service.get(
|
|
8293
|
+
let n = t.service.get(cu);
|
|
8266
8294
|
if (!n) throw Error("Screenshot plugin requires the Solid renderer runtime.");
|
|
8267
|
-
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;
|
|
8268
8296
|
t.state.register({
|
|
8269
|
-
id:
|
|
8297
|
+
id: ou,
|
|
8270
8298
|
initial: {
|
|
8271
8299
|
toolEnabled: e.toolEnabled ?? !0,
|
|
8272
8300
|
copy: e.copy ?? !0,
|
|
@@ -8275,11 +8303,11 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8275
8303
|
},
|
|
8276
8304
|
persist: !0
|
|
8277
8305
|
}), t.state.register({
|
|
8278
|
-
id:
|
|
8306
|
+
id: su,
|
|
8279
8307
|
initial: !1
|
|
8280
8308
|
});
|
|
8281
8309
|
let u = o.element;
|
|
8282
|
-
u.dataset.mesurerScreenshot = "true",
|
|
8310
|
+
u.dataset.mesurerScreenshot = "true", hu(u, {
|
|
8283
8311
|
position: "fixed",
|
|
8284
8312
|
inset: "0",
|
|
8285
8313
|
"z-index": "85",
|
|
@@ -8287,7 +8315,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8287
8315
|
"font-family": "ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif"
|
|
8288
8316
|
});
|
|
8289
8317
|
let d = r.createElement("div");
|
|
8290
|
-
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, {
|
|
8291
8319
|
position: "fixed",
|
|
8292
8320
|
inset: "0",
|
|
8293
8321
|
display: "none",
|
|
@@ -8299,13 +8327,13 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8299
8327
|
}), u.append(d);
|
|
8300
8328
|
let f = Array.from({ length: 4 }, () => {
|
|
8301
8329
|
let e = r.createElement("div");
|
|
8302
|
-
return
|
|
8330
|
+
return hu(e, {
|
|
8303
8331
|
position: "fixed",
|
|
8304
8332
|
"background-color": "rgb(0 0 0 / 40%)",
|
|
8305
8333
|
"pointer-events": "none"
|
|
8306
8334
|
}), d.append(e), e;
|
|
8307
8335
|
}), p = r.createElement("div");
|
|
8308
|
-
|
|
8336
|
+
hu(p, {
|
|
8309
8337
|
position: "fixed",
|
|
8310
8338
|
display: "none",
|
|
8311
8339
|
border: "1px solid #0d99ff",
|
|
@@ -8313,7 +8341,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8313
8341
|
"pointer-events": "none"
|
|
8314
8342
|
}), d.append(p);
|
|
8315
8343
|
let m = r.createElement("div");
|
|
8316
|
-
|
|
8344
|
+
hu(m, {
|
|
8317
8345
|
position: "fixed",
|
|
8318
8346
|
display: "none",
|
|
8319
8347
|
"z-index": "86",
|
|
@@ -8327,7 +8355,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8327
8355
|
"pointer-events": "none"
|
|
8328
8356
|
}), d.append(m);
|
|
8329
8357
|
let h = r.createElement("div");
|
|
8330
|
-
h.textContent = "Drag to select · Esc to cancel",
|
|
8358
|
+
h.textContent = "Drag to select · Esc to cancel", hu(h, {
|
|
8331
8359
|
position: "fixed",
|
|
8332
8360
|
left: "50%",
|
|
8333
8361
|
bottom: "16px",
|
|
@@ -8340,7 +8368,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8340
8368
|
"pointer-events": "none"
|
|
8341
8369
|
}), d.append(h);
|
|
8342
8370
|
let g = r.createElement("div");
|
|
8343
|
-
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, {
|
|
8344
8372
|
position: "fixed",
|
|
8345
8373
|
display: "none",
|
|
8346
8374
|
"z-index": "97",
|
|
@@ -8351,8 +8379,8 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8351
8379
|
"font-size": "11px",
|
|
8352
8380
|
"pointer-events": "none"
|
|
8353
8381
|
}), u.append(g);
|
|
8354
|
-
let _ = null, v = null, y = 0, b = 0, x = !1, S = !1, C = !1, w = () => t.state.get("mesurer.screenshot.active") ?? !1, T = () =>
|
|
8355
|
-
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) => {
|
|
8356
8384
|
let n = { ...t };
|
|
8357
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;
|
|
8358
8386
|
});
|
|
@@ -8368,20 +8396,20 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8368
8396
|
priority: e.style.getPropertyPriority("visibility")
|
|
8369
8397
|
}
|
|
8370
8398
|
}, e.style.setProperty("visibility", "hidden", "important"));
|
|
8371
|
-
},
|
|
8399
|
+
}, k = () => {
|
|
8372
8400
|
if (!v) return;
|
|
8373
8401
|
let { element: e, visibility: t } = v;
|
|
8374
8402
|
v = null, t.value || t.priority ? e.style.setProperty("visibility", t.value, t.priority) : e.style.removeProperty("visibility");
|
|
8375
|
-
},
|
|
8403
|
+
}, A = (e) => {
|
|
8376
8404
|
let t = i.innerWidth, n = i.innerHeight;
|
|
8377
8405
|
if (!e || e.width <= 0 || e.height <= 0) {
|
|
8378
|
-
|
|
8406
|
+
gu(f[0], {
|
|
8379
8407
|
left: 0,
|
|
8380
8408
|
top: 0,
|
|
8381
8409
|
width: t,
|
|
8382
8410
|
height: n
|
|
8383
8411
|
});
|
|
8384
|
-
for (let e of f.slice(1))
|
|
8412
|
+
for (let e of f.slice(1)) gu(e, {
|
|
8385
8413
|
left: 0,
|
|
8386
8414
|
top: 0,
|
|
8387
8415
|
width: 0,
|
|
@@ -8390,52 +8418,52 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8390
8418
|
p.style.display = "none", m.style.display = "none";
|
|
8391
8419
|
return;
|
|
8392
8420
|
}
|
|
8393
|
-
|
|
8421
|
+
gu(f[0], {
|
|
8394
8422
|
left: 0,
|
|
8395
8423
|
top: 0,
|
|
8396
8424
|
width: t,
|
|
8397
8425
|
height: e.top
|
|
8398
|
-
}),
|
|
8426
|
+
}), gu(f[1], {
|
|
8399
8427
|
left: 0,
|
|
8400
8428
|
top: e.top,
|
|
8401
8429
|
width: e.left,
|
|
8402
8430
|
height: e.height
|
|
8403
|
-
}),
|
|
8431
|
+
}), gu(f[2], {
|
|
8404
8432
|
left: e.left + e.width,
|
|
8405
8433
|
top: e.top,
|
|
8406
8434
|
width: Math.max(0, t - e.left - e.width),
|
|
8407
8435
|
height: e.height
|
|
8408
|
-
}),
|
|
8436
|
+
}), gu(f[3], {
|
|
8409
8437
|
left: 0,
|
|
8410
8438
|
top: e.top + e.height,
|
|
8411
8439
|
width: t,
|
|
8412
8440
|
height: Math.max(0, n - e.top - e.height)
|
|
8413
|
-
}), 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, {
|
|
8414
8442
|
left: e.left + e.width / 2,
|
|
8415
8443
|
top: Math.min(n - 22, e.top + e.height + 6)
|
|
8416
8444
|
});
|
|
8417
|
-
},
|
|
8445
|
+
}, j = () => n.portalTarget.querySelector("[data-mesurer-tool-id='screenshot']")?.getBoundingClientRect() ?? null, M = ru({
|
|
8418
8446
|
ownerDocument: r,
|
|
8419
8447
|
ownerWindow: i,
|
|
8420
8448
|
root: u,
|
|
8421
8449
|
previewDurationMs: l
|
|
8422
|
-
}),
|
|
8423
|
-
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);
|
|
8424
8452
|
e.style.left = `${a}px`, e.style.top = `${s}px`;
|
|
8425
8453
|
}, N = () => {
|
|
8426
|
-
y && i.clearTimeout(y), g.style.display = "block",
|
|
8454
|
+
y && i.clearTimeout(y), g.style.display = "block", ee(g), y = i.setTimeout(() => {
|
|
8427
8455
|
y = 0, g.style.display = "none";
|
|
8428
|
-
},
|
|
8456
|
+
}, uu);
|
|
8429
8457
|
}, P = () => {
|
|
8430
|
-
_ = null,
|
|
8431
|
-
},
|
|
8458
|
+
_ = null, A(null), d.style.visibility = "", d.style.display = "none", u.style.pointerEvents = "none", D(!1), k();
|
|
8459
|
+
}, te = () => {
|
|
8432
8460
|
b += 1, P(), Qr(i);
|
|
8433
|
-
},
|
|
8461
|
+
}, F = async (e) => {
|
|
8434
8462
|
if (x) throw Error("A screenshot capture is already running.");
|
|
8435
8463
|
if (e.width < 4 || e.height < 4) throw Error("Screenshot selection must be at least 4px by 4px.");
|
|
8436
8464
|
x = !0;
|
|
8437
|
-
let o = ++b, s = T(), l = s.includeMeasurements ?
|
|
8438
|
-
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);
|
|
8439
8467
|
try {
|
|
8440
8468
|
d.style.visibility = "hidden", await Nr(i);
|
|
8441
8469
|
let n = await kr(await c({
|
|
@@ -8452,7 +8480,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8452
8480
|
Mr(n, jr(), r, i), l = !0;
|
|
8453
8481
|
}) : Promise.resolve(), p = await Promise.allSettled([u, f]), m = s.copy && p[0]?.status === "rejected", h = s.download && p[1]?.status === "rejected";
|
|
8454
8482
|
if (b !== o) throw Error("Screenshot capture was cancelled.");
|
|
8455
|
-
return
|
|
8483
|
+
return M.show(n, {
|
|
8456
8484
|
copied: a,
|
|
8457
8485
|
downloaded: l,
|
|
8458
8486
|
copyFailed: m,
|
|
@@ -8472,17 +8500,17 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8472
8500
|
} finally {
|
|
8473
8501
|
d.style.visibility = "", u(), a.finishCapture(), x = !1;
|
|
8474
8502
|
}
|
|
8475
|
-
},
|
|
8503
|
+
}, I = async () => {
|
|
8476
8504
|
if (T().toolEnabled) {
|
|
8477
8505
|
if (w()) {
|
|
8478
|
-
|
|
8506
|
+
te();
|
|
8479
8507
|
return;
|
|
8480
8508
|
}
|
|
8481
8509
|
if (!S) {
|
|
8482
|
-
S = !0,
|
|
8510
|
+
S = !0, M.dismiss();
|
|
8483
8511
|
try {
|
|
8484
8512
|
if (s || await Xr(r, i), C) return;
|
|
8485
|
-
O(),
|
|
8513
|
+
O(), A(null), d.style.visibility = "visible", u.style.pointerEvents = "auto", d.style.display = "block", D(!0);
|
|
8486
8514
|
} catch (e) {
|
|
8487
8515
|
throw e instanceof Error && e.name === "AbortError" || N(), e;
|
|
8488
8516
|
} finally {
|
|
@@ -8490,16 +8518,16 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8490
8518
|
}
|
|
8491
8519
|
}
|
|
8492
8520
|
}
|
|
8493
|
-
},
|
|
8521
|
+
}, L = (e) => {
|
|
8494
8522
|
!w() || e.button !== 0 || (e.preventDefault(), e.stopPropagation(), _ = {
|
|
8495
8523
|
x: e.clientX,
|
|
8496
8524
|
y: e.clientY
|
|
8497
|
-
},
|
|
8525
|
+
}, A(Or(_, _, {
|
|
8498
8526
|
width: i.innerWidth,
|
|
8499
8527
|
height: i.innerHeight
|
|
8500
8528
|
})), d.setPointerCapture?.(e.pointerId));
|
|
8501
8529
|
}, R = (e) => {
|
|
8502
|
-
!w() || !_ ||
|
|
8530
|
+
!w() || !_ || A(Or(_, {
|
|
8503
8531
|
x: e.clientX,
|
|
8504
8532
|
y: e.clientY
|
|
8505
8533
|
}, {
|
|
@@ -8517,36 +8545,36 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8517
8545
|
width: i.innerWidth,
|
|
8518
8546
|
height: i.innerHeight
|
|
8519
8547
|
});
|
|
8520
|
-
if (
|
|
8521
|
-
|
|
8548
|
+
if (A(n), n.width < 4 || n.height < 4) {
|
|
8549
|
+
A(null);
|
|
8522
8550
|
return;
|
|
8523
8551
|
}
|
|
8524
|
-
|
|
8552
|
+
F(n).catch(() => void 0).finally(() => {
|
|
8525
8553
|
w() && P();
|
|
8526
8554
|
});
|
|
8527
8555
|
}, B = (e) => {
|
|
8528
|
-
_ = null, d.hasPointerCapture?.(e.pointerId) && d.releasePointerCapture(e.pointerId),
|
|
8556
|
+
_ = null, d.hasPointerCapture?.(e.pointerId) && d.releasePointerCapture(e.pointerId), A(null);
|
|
8529
8557
|
}, V = (e) => {
|
|
8530
|
-
e.key !== "Escape" || !w() || (e.preventDefault(), e.stopImmediatePropagation(),
|
|
8558
|
+
e.key !== "Escape" || !w() || (e.preventDefault(), e.stopImmediatePropagation(), te());
|
|
8531
8559
|
};
|
|
8532
|
-
d.addEventListener("pointerdown",
|
|
8533
|
-
let
|
|
8560
|
+
d.addEventListener("pointerdown", L), d.addEventListener("pointermove", R), d.addEventListener("pointerup", z), d.addEventListener("pointercancel", B), i.addEventListener("keydown", V, !0);
|
|
8561
|
+
let H = {
|
|
8534
8562
|
active: w,
|
|
8535
8563
|
settings: T,
|
|
8536
8564
|
setSettings: E,
|
|
8537
|
-
start:
|
|
8538
|
-
cancel:
|
|
8539
|
-
capture:
|
|
8565
|
+
start: I,
|
|
8566
|
+
cancel: te,
|
|
8567
|
+
capture: F
|
|
8540
8568
|
};
|
|
8541
8569
|
t.tool.register({
|
|
8542
8570
|
id: "screenshot",
|
|
8543
8571
|
label: "Screenshot",
|
|
8544
8572
|
shortcut: "Shift+S",
|
|
8545
8573
|
order: 70,
|
|
8546
|
-
command:
|
|
8574
|
+
command: lu,
|
|
8547
8575
|
toolbarMode: "select",
|
|
8548
8576
|
compactPinned: !0,
|
|
8549
|
-
icon:
|
|
8577
|
+
icon: mu,
|
|
8550
8578
|
active: w,
|
|
8551
8579
|
hidden: () => !T().toolEnabled,
|
|
8552
8580
|
menu: {
|
|
@@ -8584,7 +8612,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8584
8612
|
description: "Show the camera tool in the toolbar.",
|
|
8585
8613
|
value: () => T().toolEnabled,
|
|
8586
8614
|
set: (e) => {
|
|
8587
|
-
E({ toolEnabled: e }), !e && w() &&
|
|
8615
|
+
E({ toolEnabled: e }), !e && w() && te();
|
|
8588
8616
|
}
|
|
8589
8617
|
},
|
|
8590
8618
|
{
|
|
@@ -8612,14 +8640,14 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8612
8640
|
set: (e) => E({ includeMeasurements: e })
|
|
8613
8641
|
}
|
|
8614
8642
|
]
|
|
8615
|
-
}), t.command.register(
|
|
8616
|
-
C = !0, b += 1, d.removeEventListener("pointerdown",
|
|
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();
|
|
8617
8645
|
});
|
|
8618
8646
|
}
|
|
8619
|
-
}),
|
|
8647
|
+
}), Tu = "0.2.1-beta.13", Eu = ro, Du = eo, Ou = to, ku = io, Au = no, ju = () => ({
|
|
8620
8648
|
...Zo(),
|
|
8621
|
-
version:
|
|
8622
|
-
}),
|
|
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) => {
|
|
8623
8651
|
if (!e.length) return null;
|
|
8624
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));
|
|
8625
8653
|
return {
|
|
@@ -8628,43 +8656,43 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
|
|
|
8628
8656
|
width: r - t,
|
|
8629
8657
|
height: i - n
|
|
8630
8658
|
};
|
|
8631
|
-
},
|
|
8632
|
-
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) {
|
|
8633
8661
|
let { workspace: t, scope: n, guideTolerance: r } = e;
|
|
8634
8662
|
if (n.kind === "workspace") return {
|
|
8635
8663
|
guides: t.guides.map((e) => ({ ...e })),
|
|
8636
|
-
measurements:
|
|
8664
|
+
measurements: Vu(t),
|
|
8637
8665
|
distances: [...t.distances]
|
|
8638
8666
|
};
|
|
8639
|
-
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));
|
|
8640
8668
|
return {
|
|
8641
|
-
guides: t.guides.filter((e) =>
|
|
8642
|
-
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)),
|
|
8643
8671
|
distances: t.distances.filter((e) => a(e.elementRefA) || a(e.elementRefB) || o(e.rectA) || o(e.rectB))
|
|
8644
8672
|
};
|
|
8645
8673
|
}
|
|
8646
8674
|
//#endregion
|
|
8647
8675
|
//#region ../mesurer-core/dist/domain.js
|
|
8648
|
-
var
|
|
8676
|
+
var Uu = {
|
|
8649
8677
|
opacity: 1,
|
|
8650
8678
|
width: 1,
|
|
8651
8679
|
pattern: "solid",
|
|
8652
8680
|
dashLength: 6,
|
|
8653
8681
|
gap: 4
|
|
8654
|
-
},
|
|
8682
|
+
}, Wu = {
|
|
8655
8683
|
opacity: 1,
|
|
8656
8684
|
edgeReveal: !1
|
|
8657
8685
|
};
|
|
8658
|
-
({ ...
|
|
8686
|
+
({ ...Uu }), { ...Wu };
|
|
8659
8687
|
//#endregion
|
|
8660
8688
|
//#region ../mesurer-dom/dist/index.js
|
|
8661
|
-
var
|
|
8689
|
+
var Gu = (e) => Number.parseFloat(e) || 0, Ku = 0, qu = (e, t) => {
|
|
8662
8690
|
let n = t.CSS;
|
|
8663
8691
|
return n?.escape ? n.escape(e) : e.replace(/[^a-zA-Z0-9_-]/g, (e) => `\\${e}`);
|
|
8664
8692
|
};
|
|
8665
|
-
function
|
|
8693
|
+
function Ju(e) {
|
|
8666
8694
|
let t = e.ownerDocument.defaultView ?? window;
|
|
8667
|
-
if (e.id) return `#${
|
|
8695
|
+
if (e.id) return `#${qu(e.id, t)}`;
|
|
8668
8696
|
let n = e.getAttribute("data-testid");
|
|
8669
8697
|
if (n) return `[data-testid=${JSON.stringify(n)}]`;
|
|
8670
8698
|
let r = [], i = e;
|
|
@@ -8678,17 +8706,17 @@ function Ku(e) {
|
|
|
8678
8706
|
}
|
|
8679
8707
|
return r.join(" > ");
|
|
8680
8708
|
}
|
|
8681
|
-
function
|
|
8709
|
+
function Yu(e, t, n = `dom-inspection-${++Ku}`) {
|
|
8682
8710
|
let r = e.getBoundingClientRect(), i = t.getComputedStyle(e), a = {
|
|
8683
|
-
top:
|
|
8684
|
-
right:
|
|
8685
|
-
bottom:
|
|
8686
|
-
left:
|
|
8711
|
+
top: Gu(i.paddingTop),
|
|
8712
|
+
right: Gu(i.paddingRight),
|
|
8713
|
+
bottom: Gu(i.paddingBottom),
|
|
8714
|
+
left: Gu(i.paddingLeft)
|
|
8687
8715
|
}, o = {
|
|
8688
|
-
top:
|
|
8689
|
-
right:
|
|
8690
|
-
bottom:
|
|
8691
|
-
left:
|
|
8716
|
+
top: Gu(i.marginTop),
|
|
8717
|
+
right: Gu(i.marginRight),
|
|
8718
|
+
bottom: Gu(i.marginBottom),
|
|
8719
|
+
left: Gu(i.marginLeft)
|
|
8692
8720
|
}, s = {
|
|
8693
8721
|
left: r.left + a.left,
|
|
8694
8722
|
top: r.top + a.top,
|
|
@@ -8716,8 +8744,8 @@ function qu(e, t, n = `dom-inspection-${++Wu}`) {
|
|
|
8716
8744
|
elementRef: e
|
|
8717
8745
|
};
|
|
8718
8746
|
}
|
|
8719
|
-
function
|
|
8720
|
-
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) => {
|
|
8721
8749
|
let t = Number.parseFloat(e);
|
|
8722
8750
|
return Number.isFinite(t) ? t : 0;
|
|
8723
8751
|
}, s = (e) => ({
|
|
@@ -8727,7 +8755,7 @@ function Ju(e) {
|
|
|
8727
8755
|
left: o(n.getPropertyValue(`${e}-left${e === "border" ? "-width" : ""}`))
|
|
8728
8756
|
});
|
|
8729
8757
|
return {
|
|
8730
|
-
selector:
|
|
8758
|
+
selector: Ju(e),
|
|
8731
8759
|
tag: e.localName,
|
|
8732
8760
|
id: e.id || null,
|
|
8733
8761
|
classes: [...e.classList],
|
|
@@ -8789,17 +8817,17 @@ function Ju(e) {
|
|
|
8789
8817
|
}
|
|
8790
8818
|
//#endregion
|
|
8791
8819
|
//#region src/context.ts
|
|
8792
|
-
var
|
|
8820
|
+
var Zu = 10, Qu = (e) => ({
|
|
8793
8821
|
left: e.left,
|
|
8794
8822
|
top: e.top,
|
|
8795
8823
|
width: e.width,
|
|
8796
8824
|
height: e.height
|
|
8797
|
-
}),
|
|
8825
|
+
}), $u = (e) => {
|
|
8798
8826
|
let t = /* @__PURE__ */ new Set(), n = [];
|
|
8799
8827
|
for (let r of e) !r?.isConnected || t.has(r) || (t.add(r), n.push(r));
|
|
8800
8828
|
return n;
|
|
8801
|
-
},
|
|
8802
|
-
function
|
|
8829
|
+
}, ed = (e) => e.crypto?.randomUUID?.() ?? `${Date.now()}-${Math.random().toString(36).slice(2)}`;
|
|
8830
|
+
function td(e) {
|
|
8803
8831
|
let { runtime: t, ownerDocument: n, ownerWindow: r } = e, i = e.request ?? { scope: "workspace" }, a = t.snapshot();
|
|
8804
8832
|
if (!a) throw Error("Mesurer workspace is not ready yet.");
|
|
8805
8833
|
let o = [], s = [], c = { kind: "workspace" }, l = /* @__PURE__ */ new Map();
|
|
@@ -8807,7 +8835,7 @@ function $u(e) {
|
|
|
8807
8835
|
let e = t.annotation(i.annotation);
|
|
8808
8836
|
if (!e) throw Error(`Mesurer annotation not found: ${i.annotation}`);
|
|
8809
8837
|
for (let t of e.resolvedTargets) t.element?.isConnected && l.set(t.element, t.target.id);
|
|
8810
|
-
o =
|
|
8838
|
+
o = $u(e.resolvedTargets.map((e) => e.element));
|
|
8811
8839
|
let n = t.annotationRect(e.id);
|
|
8812
8840
|
n && (s = [n]);
|
|
8813
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";
|
|
@@ -8819,15 +8847,15 @@ function $u(e) {
|
|
|
8819
8847
|
};
|
|
8820
8848
|
} else if (i.scope === "selection") {
|
|
8821
8849
|
let e = t.currentSelection();
|
|
8822
|
-
if (o =
|
|
8823
|
-
s = e.region ? [e.region] : o.map((e) =>
|
|
8824
|
-
} 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([
|
|
8825
8853
|
...t.currentSelection().elements,
|
|
8826
8854
|
...a.measurements.map((e) => e.elementRef),
|
|
8827
8855
|
a.activeMeasurement?.elementRef,
|
|
8828
8856
|
...a.heldDistances.flatMap((e) => [e.elementRefA, e.elementRefB])
|
|
8829
8857
|
]);
|
|
8830
|
-
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({
|
|
8831
8859
|
workspace: {
|
|
8832
8860
|
guides: a.guides,
|
|
8833
8861
|
measurements: a.measurements,
|
|
@@ -8839,8 +8867,8 @@ function $u(e) {
|
|
|
8839
8867
|
elements: o,
|
|
8840
8868
|
regions: u
|
|
8841
8869
|
},
|
|
8842
|
-
guideTolerance: a.guideRelevanceTolerance ??
|
|
8843
|
-
}), 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([
|
|
8844
8872
|
...o,
|
|
8845
8873
|
...f.map((e) => e.elementRef),
|
|
8846
8874
|
...p.flatMap((e) => [e.elementRefA, e.elementRefB])
|
|
@@ -8852,12 +8880,12 @@ function $u(e) {
|
|
|
8852
8880
|
let t = l.get(e) ?? y();
|
|
8853
8881
|
return g.set(e, t), {
|
|
8854
8882
|
ref: t,
|
|
8855
|
-
inspection:
|
|
8883
|
+
inspection: Xu(e)
|
|
8856
8884
|
};
|
|
8857
8885
|
}), x = f.map((e) => {
|
|
8858
8886
|
let t = {
|
|
8859
8887
|
id: e.id,
|
|
8860
|
-
rect:
|
|
8888
|
+
rect: Qu(e.rect),
|
|
8861
8889
|
deltaX: e.deltaX,
|
|
8862
8890
|
deltaY: e.deltaY
|
|
8863
8891
|
};
|
|
@@ -8867,8 +8895,8 @@ function $u(e) {
|
|
|
8867
8895
|
}), S = p.map((e) => {
|
|
8868
8896
|
let t = {
|
|
8869
8897
|
id: e.id,
|
|
8870
|
-
rectA:
|
|
8871
|
-
rectB:
|
|
8898
|
+
rectA: Qu(e.rectA),
|
|
8899
|
+
rectB: Qu(e.rectB),
|
|
8872
8900
|
horizontal: e.horizontal ? { ...e.horizontal } : null,
|
|
8873
8901
|
vertical: e.vertical ? { ...e.vertical } : null
|
|
8874
8902
|
}, n = e.elementRefA ? g.get(e.elementRefA) : void 0, r = e.elementRefB ? g.get(e.elementRefB) : void 0;
|
|
@@ -8876,7 +8904,7 @@ function $u(e) {
|
|
|
8876
8904
|
});
|
|
8877
8905
|
return {
|
|
8878
8906
|
schema: "mesurer.context/v1",
|
|
8879
|
-
id:
|
|
8907
|
+
id: ed(r),
|
|
8880
8908
|
createdAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
8881
8909
|
scope: c,
|
|
8882
8910
|
page: {
|
|
@@ -8891,7 +8919,7 @@ function $u(e) {
|
|
|
8891
8919
|
scrollY: r.scrollY
|
|
8892
8920
|
},
|
|
8893
8921
|
coordinateSpace: "viewport-css-px",
|
|
8894
|
-
regions: c.kind === "workspace" ? [] : s.map(
|
|
8922
|
+
regions: c.kind === "workspace" ? [] : s.map(Qu),
|
|
8895
8923
|
visualState: {
|
|
8896
8924
|
rulersVisible: a.rulersVisible,
|
|
8897
8925
|
xrayVisible: a.xrayVisible
|
|
@@ -8905,48 +8933,48 @@ function $u(e) {
|
|
|
8905
8933
|
}
|
|
8906
8934
|
};
|
|
8907
8935
|
}
|
|
8908
|
-
var
|
|
8909
|
-
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) {
|
|
8910
8938
|
let t = [
|
|
8911
8939
|
"Mesurer visual context",
|
|
8912
8940
|
"",
|
|
8913
8941
|
`Page: ${e.page.url}`,
|
|
8914
8942
|
`Viewport: ${e.viewport.width} × ${e.viewport.height} CSS px; scroll x=${e.viewport.scrollX} y=${e.viewport.scrollY}`
|
|
8915
8943
|
];
|
|
8916
|
-
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) {
|
|
8917
8945
|
t.push("", "Targets");
|
|
8918
8946
|
for (let n of e.targets) {
|
|
8919
8947
|
let e = n.inspection;
|
|
8920
|
-
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)}`);
|
|
8921
8949
|
}
|
|
8922
8950
|
}
|
|
8923
8951
|
if (e.visualContext.guides.length) {
|
|
8924
8952
|
t.push("", "Relevant guides");
|
|
8925
|
-
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)}`);
|
|
8926
8954
|
}
|
|
8927
8955
|
if (e.visualContext.layoutGuides.length) {
|
|
8928
8956
|
t.push("", "Layout guides");
|
|
8929
8957
|
for (let n of e.visualContext.layoutGuides) {
|
|
8930
8958
|
if (!n.visible) continue;
|
|
8931
|
-
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}`;
|
|
8932
8960
|
t.push(`- ${e}; color=${n.color}; opacity=${Math.round(n.opacity * 100)}%`);
|
|
8933
8961
|
}
|
|
8934
8962
|
}
|
|
8935
8963
|
if (e.visualContext.measurements.length) {
|
|
8936
8964
|
t.push("", "Relevant measurements");
|
|
8937
|
-
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)}`);
|
|
8938
8966
|
}
|
|
8939
8967
|
if (e.visualContext.distances.length) {
|
|
8940
8968
|
t.push("", "Relevant distances");
|
|
8941
8969
|
for (let n of e.visualContext.distances) {
|
|
8942
|
-
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("; ");
|
|
8943
8971
|
t.push(`- ${e ? `${e}: ` : ""}${r || "overlapping"}`);
|
|
8944
8972
|
}
|
|
8945
8973
|
}
|
|
8946
8974
|
return t.join("\n").trimEnd();
|
|
8947
8975
|
}
|
|
8948
|
-
function
|
|
8949
|
-
let t =
|
|
8976
|
+
function ad(e) {
|
|
8977
|
+
let t = zu([
|
|
8950
8978
|
...e.regions,
|
|
8951
8979
|
...e.targets.map((e) => e.inspection.rect),
|
|
8952
8980
|
...e.visualContext.measurements.map((e) => e.rect),
|
|
@@ -8976,7 +9004,7 @@ function rd(e) {
|
|
|
8976
9004
|
captures: n
|
|
8977
9005
|
};
|
|
8978
9006
|
}
|
|
8979
|
-
var
|
|
9007
|
+
var od = (e, t, n, r, i) => {
|
|
8980
9008
|
!Number.isFinite(r) || !Number.isFinite(i) || Math.abs(r - i) < .01 || e.push({
|
|
8981
9009
|
kind: t,
|
|
8982
9010
|
label: n,
|
|
@@ -8985,16 +9013,16 @@ var id = (e, t, n, r, i) => {
|
|
|
8985
9013
|
delta: i - r,
|
|
8986
9014
|
unit: "px"
|
|
8987
9015
|
});
|
|
8988
|
-
},
|
|
9016
|
+
}, sd = (e, t, n, r) => e.push({
|
|
8989
9017
|
kind: "missing",
|
|
8990
9018
|
evidence: t,
|
|
8991
9019
|
id: n,
|
|
8992
9020
|
label: r
|
|
8993
|
-
}),
|
|
8994
|
-
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) {
|
|
8995
9023
|
let t = e.runtime.annotation(e.annotationId);
|
|
8996
9024
|
if (!t) throw Error(`Mesurer annotation not found: ${e.annotationId}`);
|
|
8997
|
-
let n =
|
|
9025
|
+
let n = td({
|
|
8998
9026
|
runtime: e.runtime,
|
|
8999
9027
|
ownerDocument: e.ownerDocument,
|
|
9000
9028
|
ownerWindow: e.ownerWindow,
|
|
@@ -9004,42 +9032,42 @@ function sd(e) {
|
|
|
9004
9032
|
if (n.scope.kind !== "annotation") throw Error("Mesurer annotation context invariant failed.");
|
|
9005
9033
|
let r = e.runtime.snapshot();
|
|
9006
9034
|
if (!r) throw Error("Mesurer workspace is not ready yet.");
|
|
9007
|
-
let i =
|
|
9035
|
+
let i = Vu({
|
|
9008
9036
|
measurements: r.measurements,
|
|
9009
9037
|
activeMeasurement: r.activeMeasurement
|
|
9010
9038
|
}), a = [];
|
|
9011
9039
|
for (let e of t.baseline.targets) {
|
|
9012
9040
|
let t = n.targets.find((t) => t.ref === e.id);
|
|
9013
9041
|
if (!t) {
|
|
9014
|
-
|
|
9042
|
+
sd(a, "target", e.id, e.selector);
|
|
9015
9043
|
continue;
|
|
9016
9044
|
}
|
|
9017
|
-
|
|
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);
|
|
9018
9046
|
}
|
|
9019
9047
|
for (let e of t.baseline.guides) {
|
|
9020
9048
|
let t = n.visualContext.guides.find((t) => t.id === e.id) ?? r.guides.find((t) => t.id === e.id);
|
|
9021
9049
|
if (!t) {
|
|
9022
|
-
|
|
9050
|
+
sd(a, "guide", e.id, `${e.orientation} guide ${e.id}`);
|
|
9023
9051
|
continue;
|
|
9024
9052
|
}
|
|
9025
|
-
|
|
9053
|
+
od(a, "guide", `${e.orientation} guide ${e.id}`, e.position, t.position);
|
|
9026
9054
|
}
|
|
9027
9055
|
for (let e of t.baseline.measurements) {
|
|
9028
9056
|
let r = n.visualContext.measurements.find((t) => t.id === e.id) ?? i.find((t) => t.id === e.id);
|
|
9029
9057
|
if (!r) {
|
|
9030
|
-
let r = t.baseline.targets.find((t) =>
|
|
9031
|
-
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);
|
|
9032
9060
|
continue;
|
|
9033
9061
|
}
|
|
9034
|
-
|
|
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);
|
|
9035
9063
|
}
|
|
9036
9064
|
for (let e of t.baseline.distances) {
|
|
9037
9065
|
let t = n.visualContext.distances.find((t) => t.id === e.id) ?? r.heldDistances.find((t) => t.id === e.id);
|
|
9038
9066
|
if (!t) {
|
|
9039
|
-
|
|
9067
|
+
sd(a, "distance", e.id, e.id);
|
|
9040
9068
|
continue;
|
|
9041
9069
|
}
|
|
9042
|
-
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`);
|
|
9043
9071
|
}
|
|
9044
9072
|
return {
|
|
9045
9073
|
schema: "mesurer.review/v1",
|
|
@@ -9051,7 +9079,7 @@ function sd(e) {
|
|
|
9051
9079
|
changes: a
|
|
9052
9080
|
};
|
|
9053
9081
|
}
|
|
9054
|
-
async function
|
|
9082
|
+
async function ud(e, t, n) {
|
|
9055
9083
|
try {
|
|
9056
9084
|
if (t.navigator.clipboard?.writeText) {
|
|
9057
9085
|
await t.navigator.clipboard.writeText(n);
|
|
@@ -9065,43 +9093,43 @@ async function cd(e, t, n) {
|
|
|
9065
9093
|
}
|
|
9066
9094
|
//#endregion
|
|
9067
9095
|
//#region src/layout-guides.ts
|
|
9068
|
-
var
|
|
9096
|
+
var dd = Zs, fd = Qs, pd = $s, md = ec, hd = () => ({
|
|
9069
9097
|
...wc(),
|
|
9070
|
-
version:
|
|
9071
|
-
}),
|
|
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 = {
|
|
9072
9100
|
viewBox: "0 0 256 256",
|
|
9073
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"]
|
|
9074
|
-
},
|
|
9102
|
+
}, Sd = {
|
|
9075
9103
|
viewBox: "0 0 256 256",
|
|
9076
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"]
|
|
9077
|
-
},
|
|
9105
|
+
}, Cd = {
|
|
9078
9106
|
viewBox: "0 0 256 256",
|
|
9079
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"]
|
|
9080
|
-
},
|
|
9108
|
+
}, wd = async (e, t, n = 1) => {
|
|
9081
9109
|
await e.fonts?.ready;
|
|
9082
9110
|
for (let e = 0; e < Math.max(1, n); e += 1) await new Promise((e) => t.requestAnimationFrame(() => e()));
|
|
9083
|
-
},
|
|
9084
|
-
let i = async (i) =>
|
|
9111
|
+
}, Td = (e, t, n, r) => {
|
|
9112
|
+
let i = async (i) => td({
|
|
9085
9113
|
runtime: e,
|
|
9086
9114
|
ownerDocument: t,
|
|
9087
9115
|
ownerWindow: n,
|
|
9088
9116
|
request: i,
|
|
9089
9117
|
layoutGuides: r()
|
|
9090
|
-
}), a = async (e) =>
|
|
9118
|
+
}), a = async (e) => id(await i(e));
|
|
9091
9119
|
return {
|
|
9092
9120
|
context: i,
|
|
9093
9121
|
contextText: a,
|
|
9094
|
-
copyContext: async (e) =>
|
|
9122
|
+
copyContext: async (e) => ud(t, n, await a(e)),
|
|
9095
9123
|
select: async (r) => {
|
|
9096
9124
|
let a = Array.isArray(r) ? [...r] : [String(r)];
|
|
9097
|
-
return e.select(a), await
|
|
9125
|
+
return e.select(a), await wd(t, n), i({ scope: "selection" });
|
|
9098
9126
|
},
|
|
9099
9127
|
annotations: async () => e.annotations(),
|
|
9100
9128
|
removeAnnotation: async (r) => {
|
|
9101
|
-
e.removeAnnotation(r), await
|
|
9129
|
+
e.removeAnnotation(r), await wd(t, n);
|
|
9102
9130
|
},
|
|
9103
9131
|
review: async (i) => {
|
|
9104
|
-
if (await
|
|
9132
|
+
if (await wd(t, n), i) return ld({
|
|
9105
9133
|
runtime: e,
|
|
9106
9134
|
ownerDocument: t,
|
|
9107
9135
|
ownerWindow: n,
|
|
@@ -9109,7 +9137,7 @@ var ld = Zs, ud = Qs, dd = $s, fd = ec, pd = () => ({
|
|
|
9109
9137
|
layoutGuides: r()
|
|
9110
9138
|
});
|
|
9111
9139
|
let a = r();
|
|
9112
|
-
return e.annotations().map((r) =>
|
|
9140
|
+
return e.annotations().map((r) => ld({
|
|
9113
9141
|
runtime: e,
|
|
9114
9142
|
ownerDocument: t,
|
|
9115
9143
|
ownerWindow: n,
|
|
@@ -9117,38 +9145,38 @@ var ld = Zs, ud = Qs, dd = $s, fd = ec, pd = () => ({
|
|
|
9117
9145
|
layoutGuides: a
|
|
9118
9146
|
}));
|
|
9119
9147
|
},
|
|
9120
|
-
capturePlan: async (e) =>
|
|
9148
|
+
capturePlan: async (e) => ad(await i(e)),
|
|
9121
9149
|
prepareCapture: async () => {
|
|
9122
|
-
e.prepareCapture(), await
|
|
9150
|
+
e.prepareCapture(), await wd(t, n);
|
|
9123
9151
|
},
|
|
9124
9152
|
finishCapture: async () => {
|
|
9125
|
-
e.finishCapture(), await
|
|
9153
|
+
e.finishCapture(), await wd(t, n);
|
|
9126
9154
|
}
|
|
9127
9155
|
};
|
|
9128
|
-
},
|
|
9156
|
+
}, Ed = (e) => {
|
|
9129
9157
|
let t = e.currentSelection();
|
|
9130
9158
|
return t.elements.length > 0 || t.region !== null;
|
|
9131
9159
|
};
|
|
9132
|
-
function
|
|
9160
|
+
function Dd(e = {}) {
|
|
9133
9161
|
return {
|
|
9134
|
-
id:
|
|
9135
|
-
version:
|
|
9162
|
+
id: gd,
|
|
9163
|
+
version: Tu,
|
|
9136
9164
|
requires: ["runtime:solid"],
|
|
9137
|
-
provides: [
|
|
9165
|
+
provides: [_d],
|
|
9138
9166
|
setup(t) {
|
|
9139
9167
|
let n = t.service.get("runtime:solid");
|
|
9140
9168
|
if (!n) throw Error("Mesurer context plugin requires the renderer runtime service.");
|
|
9141
|
-
let r = n.createWorkspaceRuntime(
|
|
9142
|
-
t.service.provide(
|
|
9143
|
-
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,
|
|
9144
9172
|
initial: { ui: e.ui ?? !0 },
|
|
9145
9173
|
persist: !0
|
|
9146
9174
|
}), t.state.register({
|
|
9147
|
-
id:
|
|
9148
|
-
initial: { hasSelection:
|
|
9175
|
+
id: yd,
|
|
9176
|
+
initial: { hasSelection: Ed(r) }
|
|
9149
9177
|
});
|
|
9150
|
-
let a = () => t.state.get("mesurer.context.settings")?.ui ?? !0, o = () => t.state.get(
|
|
9151
|
-
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) => ({
|
|
9152
9180
|
...t,
|
|
9153
9181
|
ui: e
|
|
9154
9182
|
}));
|
|
@@ -9162,12 +9190,12 @@ function Td(e = {}) {
|
|
|
9162
9190
|
region: e.region ? { ...e.region } : null
|
|
9163
9191
|
}, r.selectGestureActive() ? c?.abandonNoteComposer() : n && c?.closeNoteComposer();
|
|
9164
9192
|
let i = e.elements.length > 0 || e.region !== null;
|
|
9165
|
-
i !== (t.state.get(
|
|
9193
|
+
i !== (t.state.get(yd)?.hasSelection ?? !1) && t.state.update(yd, () => ({ hasSelection: i }));
|
|
9166
9194
|
});
|
|
9167
9195
|
t.command.register("context.copy", () => i.copyContext()), t.command.register("context.copy-selection", () => i.copyContext({ scope: "selection" }));
|
|
9168
9196
|
let g = () => {
|
|
9169
9197
|
let e = u?.element;
|
|
9170
|
-
e && (n.rendererRoot?.hasAttribute(
|
|
9198
|
+
e && (n.rendererRoot?.hasAttribute(bd) ? e.setAttribute(bd, "true") : e.removeAttribute(bd));
|
|
9171
9199
|
}, _ = () => {
|
|
9172
9200
|
d?.disconnect(), d = null, c = null, l?.(), l = null, u?.dispose(), u = null;
|
|
9173
9201
|
}, v = () => {
|
|
@@ -9176,7 +9204,7 @@ function Td(e = {}) {
|
|
|
9176
9204
|
let e = new n.ownerWindow.MutationObserver(g);
|
|
9177
9205
|
d = e, e.observe(n.rendererRoot, {
|
|
9178
9206
|
attributes: !0,
|
|
9179
|
-
attributeFilter: [
|
|
9207
|
+
attributeFilter: [bd]
|
|
9180
9208
|
}), g();
|
|
9181
9209
|
}
|
|
9182
9210
|
let e = {
|
|
@@ -9200,7 +9228,7 @@ function Td(e = {}) {
|
|
|
9200
9228
|
command: "context.copy",
|
|
9201
9229
|
order: 70,
|
|
9202
9230
|
toolbarMode: "always",
|
|
9203
|
-
icon:
|
|
9231
|
+
icon: xd,
|
|
9204
9232
|
hidden: () => !a()
|
|
9205
9233
|
}), t.tool.register({
|
|
9206
9234
|
id: "context.copy-selection",
|
|
@@ -9209,7 +9237,7 @@ function Td(e = {}) {
|
|
|
9209
9237
|
command: "context.copy-selection",
|
|
9210
9238
|
order: 71,
|
|
9211
9239
|
toolbarMode: "always",
|
|
9212
|
-
icon:
|
|
9240
|
+
icon: Sd,
|
|
9213
9241
|
hidden: () => !a(),
|
|
9214
9242
|
disabled: () => !o()
|
|
9215
9243
|
}), t.tool.register({
|
|
@@ -9219,7 +9247,7 @@ function Td(e = {}) {
|
|
|
9219
9247
|
command: "context.add-note",
|
|
9220
9248
|
order: 72,
|
|
9221
9249
|
toolbarMode: "always",
|
|
9222
|
-
icon:
|
|
9250
|
+
icon: Cd,
|
|
9223
9251
|
hidden: () => !a(),
|
|
9224
9252
|
disabled: () => !o()
|
|
9225
9253
|
}), t.settings.register({
|
|
@@ -9242,28 +9270,28 @@ function Td(e = {}) {
|
|
|
9242
9270
|
}
|
|
9243
9271
|
//#endregion
|
|
9244
9272
|
//#region src/plugins/codex/index.ts
|
|
9245
|
-
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 = [
|
|
9246
9274
|
"Implement the current human feedback from Mesurer in this project.",
|
|
9247
9275
|
"Treat the rendered page as the source of truth, preserve unrelated Mesurer review state,",
|
|
9248
9276
|
"and verify the affected UI in the live page with Mesurer before claiming completion."
|
|
9249
|
-
].join(" "),
|
|
9277
|
+
].join(" "), Bd = {
|
|
9250
9278
|
viewBox: "0 0 256 256",
|
|
9251
9279
|
paths: ["M224,48,32,120l88,32,32,88Z M120,152l104-104"]
|
|
9252
|
-
},
|
|
9280
|
+
}, Vd = {
|
|
9253
9281
|
viewBox: "0 0 256 256",
|
|
9254
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"]
|
|
9255
|
-
},
|
|
9283
|
+
}, Hd = {
|
|
9256
9284
|
viewBox: "0 0 256 256",
|
|
9257
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"]
|
|
9258
|
-
},
|
|
9286
|
+
}, Ud = () => {
|
|
9259
9287
|
try {
|
|
9260
9288
|
let e = globalThis.location;
|
|
9261
9289
|
return e?.origin ? `mesurer-codex-ui:v2:${e.origin}${e.pathname}` : null;
|
|
9262
9290
|
} catch {
|
|
9263
9291
|
return null;
|
|
9264
9292
|
}
|
|
9265
|
-
},
|
|
9266
|
-
let e =
|
|
9293
|
+
}, Wd = () => {
|
|
9294
|
+
let e = Ud();
|
|
9267
9295
|
if (!e) return null;
|
|
9268
9296
|
try {
|
|
9269
9297
|
let t = globalThis.sessionStorage?.getItem(e);
|
|
@@ -9288,18 +9316,18 @@ var Ed = "mesurer.codex", Dd = "codex:v1", Od = "mesurer.plugin.before-disable",
|
|
|
9288
9316
|
} catch {
|
|
9289
9317
|
return null;
|
|
9290
9318
|
}
|
|
9291
|
-
},
|
|
9292
|
-
let t =
|
|
9319
|
+
}, Gd = (e) => {
|
|
9320
|
+
let t = Ud();
|
|
9293
9321
|
if (t) try {
|
|
9294
9322
|
globalThis.sessionStorage?.setItem(t, JSON.stringify(e));
|
|
9295
9323
|
} catch {}
|
|
9296
|
-
},
|
|
9324
|
+
}, Kd = async (e) => {
|
|
9297
9325
|
let t = window.__MESURER_HOST__?.codexBridge;
|
|
9298
|
-
if (!t) throw Error(
|
|
9326
|
+
if (!t) throw Error(Rd);
|
|
9299
9327
|
let n = await t(e);
|
|
9300
9328
|
if (n.ok === !1) throw Error(n.error ?? "Codex Bridge request failed.");
|
|
9301
9329
|
return n;
|
|
9302
|
-
},
|
|
9330
|
+
}, qd = (e) => {
|
|
9303
9331
|
let t = e.runtime;
|
|
9304
9332
|
return !t || ![
|
|
9305
9333
|
"shared",
|
|
@@ -9317,10 +9345,10 @@ var Ed = "mesurer.codex", Dd = "codex:v1", Od = "mesurer.plugin.before-disable",
|
|
|
9317
9345
|
available: t.available === !0,
|
|
9318
9346
|
reason: t.reason
|
|
9319
9347
|
};
|
|
9320
|
-
},
|
|
9348
|
+
}, Jd = (e) => ({
|
|
9321
9349
|
thread: e.thread?.trim() || null,
|
|
9322
9350
|
threads: Array.isArray(e.threads) ? e.threads.filter((e) => e.trim().length > 0) : []
|
|
9323
|
-
}),
|
|
9351
|
+
}), Yd = (e) => {
|
|
9324
9352
|
let t = e.deliveryId?.trim(), n = e.thread?.trim(), r = e.status;
|
|
9325
9353
|
if (!t || !n || !r) throw Error("Codex Bridge returned an invalid delivery state.");
|
|
9326
9354
|
let i = {
|
|
@@ -9332,7 +9360,7 @@ var Ed = "mesurer.codex", Dd = "codex:v1", Od = "mesurer.plugin.before-disable",
|
|
|
9332
9360
|
updatedAt: Number.isFinite(e.updatedAt) ? Number(e.updatedAt) : 0
|
|
9333
9361
|
};
|
|
9334
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;
|
|
9335
|
-
},
|
|
9363
|
+
}, Xd = (e) => ({
|
|
9336
9364
|
thread: e.thread?.trim() || null,
|
|
9337
9365
|
threads: Array.isArray(e.threadDetails) ? e.threadDetails.flatMap((e) => {
|
|
9338
9366
|
let t = e.id?.trim() ?? "";
|
|
@@ -9344,7 +9372,7 @@ var Ed = "mesurer.codex", Dd = "codex:v1", Od = "mesurer.plugin.before-disable",
|
|
|
9344
9372
|
}] : [];
|
|
9345
9373
|
}) : [],
|
|
9346
9374
|
hasMore: e.hasMore === !0
|
|
9347
|
-
}),
|
|
9375
|
+
}), Zd = async (e, t, n) => {
|
|
9348
9376
|
let r = t?.instruction?.trim() || n, i = await e.annotations(), a = t?.annotationIds, o = a ? a.flatMap((e) => {
|
|
9349
9377
|
let t = i.find((t) => t.id === e);
|
|
9350
9378
|
return t ? [t] : [];
|
|
@@ -9367,18 +9395,18 @@ var Ed = "mesurer.codex", Dd = "codex:v1", Od = "mesurer.plugin.before-disable",
|
|
|
9367
9395
|
])
|
|
9368
9396
|
].join("\n").trimEnd()
|
|
9369
9397
|
};
|
|
9370
|
-
},
|
|
9371
|
-
function
|
|
9372
|
-
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;
|
|
9373
9401
|
return {
|
|
9374
|
-
id:
|
|
9375
|
-
version:
|
|
9376
|
-
requires: [
|
|
9377
|
-
provides: [
|
|
9402
|
+
id: Od,
|
|
9403
|
+
version: Tu,
|
|
9404
|
+
requires: [_d],
|
|
9405
|
+
provides: [kd],
|
|
9378
9406
|
async setup(e) {
|
|
9379
|
-
let i = e.service.get(
|
|
9407
|
+
let i = e.service.get(_d);
|
|
9380
9408
|
if (!i) throw Error("Mesurer Codex plugin requires context() from mesurer-solid/plugins.");
|
|
9381
|
-
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 ? {
|
|
9382
9410
|
id: a.delivery.id,
|
|
9383
9411
|
thread: a.delivery.thread,
|
|
9384
9412
|
status: a.delivery.status,
|
|
@@ -9387,47 +9415,47 @@ function $d(e = {}) {
|
|
|
9387
9415
|
dispatch: a.delivery.dispatch ?? null,
|
|
9388
9416
|
dispatchError: a.delivery.dispatchError ?? null
|
|
9389
9417
|
} : null, x = 0, S = 0, C = null, w = !1, T = null, E = async (e) => {
|
|
9390
|
-
if (e.action === "activate" || e.action === "runtime") return
|
|
9418
|
+
if (e.action === "activate" || e.action === "runtime") return Kd(e);
|
|
9391
9419
|
if (!T) throw Error("Codex Bridge lease is not active for this plugin.");
|
|
9392
|
-
return
|
|
9420
|
+
return Kd({
|
|
9393
9421
|
...e,
|
|
9394
9422
|
leaseId: T
|
|
9395
9423
|
});
|
|
9396
9424
|
}, D = async () => {
|
|
9397
9425
|
let e = T;
|
|
9398
9426
|
if (e) {
|
|
9399
|
-
if ((await
|
|
9427
|
+
if ((await Kd({
|
|
9400
9428
|
action: "deactivate",
|
|
9401
9429
|
leaseId: e
|
|
9402
9430
|
})).released !== !0) throw Error("Codex Bridge did not confirm lease release.");
|
|
9403
9431
|
T = null;
|
|
9404
9432
|
}
|
|
9405
|
-
}, O = await
|
|
9433
|
+
}, O = await Kd({
|
|
9406
9434
|
action: "activate",
|
|
9407
9435
|
thread: u ?? l ?? void 0
|
|
9408
|
-
}),
|
|
9409
|
-
if (!
|
|
9410
|
-
T =
|
|
9411
|
-
let
|
|
9412
|
-
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(() => {
|
|
9413
9441
|
T && D().catch((e) => {
|
|
9414
9442
|
let t = e instanceof Error ? e.message : String(e);
|
|
9415
9443
|
console.error(`[Mesurer] Failed to release Codex host lease: ${t}`);
|
|
9416
9444
|
});
|
|
9417
|
-
}), e.hook.on(
|
|
9445
|
+
}), e.hook.on(Ad, async (e) => {
|
|
9418
9446
|
e === "mesurer.codex" && await D();
|
|
9419
9447
|
});
|
|
9420
|
-
let
|
|
9421
|
-
let e =
|
|
9448
|
+
let j = async () => {
|
|
9449
|
+
let e = qd(await E({ action: "runtime" }));
|
|
9422
9450
|
if (!e) throw Error("Codex Bridge returned an invalid runtime state.");
|
|
9423
9451
|
return s = e, e;
|
|
9424
|
-
},
|
|
9452
|
+
}, M = async () => {
|
|
9425
9453
|
let e = await E({
|
|
9426
9454
|
action: "health",
|
|
9427
9455
|
thread: u ?? l ?? void 0
|
|
9428
9456
|
});
|
|
9429
|
-
return s =
|
|
9430
|
-
},
|
|
9457
|
+
return s = qd(e) ?? s, Jd(e);
|
|
9458
|
+
}, ee = M, N = async (e) => Yd(await E({
|
|
9431
9459
|
action: "delivery",
|
|
9432
9460
|
deliveryId: e
|
|
9433
9461
|
})), P = async (e) => {
|
|
@@ -9437,33 +9465,33 @@ function $d(e = {}) {
|
|
|
9437
9465
|
deliveryId: e.id,
|
|
9438
9466
|
thread: e.thread
|
|
9439
9467
|
};
|
|
9440
|
-
return e.queuedSubmissionId && (t.queuedSubmissionId = e.queuedSubmissionId),
|
|
9441
|
-
},
|
|
9468
|
+
return e.queuedSubmissionId && (t.queuedSubmissionId = e.queuedSubmissionId), Yd(await E(t));
|
|
9469
|
+
}, te = async (e = {}) => {
|
|
9442
9470
|
let t = {
|
|
9443
9471
|
action: "threads",
|
|
9444
|
-
limit: e.limit ??
|
|
9472
|
+
limit: e.limit ?? Id
|
|
9445
9473
|
}, n = e.thread?.trim();
|
|
9446
|
-
return n && (t.thread = n),
|
|
9447
|
-
},
|
|
9474
|
+
return n && (t.thread = n), Xd(await E(t));
|
|
9475
|
+
}, F = () => u ?? l ?? (d ? null : f), I = () => {
|
|
9448
9476
|
if (!n) return;
|
|
9449
9477
|
let e = b?.id && (b.status === "queued" || b.status === "working" || b.status === "interrupted") ? {
|
|
9450
9478
|
id: b.id,
|
|
9451
|
-
thread: b.thread ??
|
|
9479
|
+
thread: b.thread ?? F() ?? "",
|
|
9452
9480
|
status: b.status,
|
|
9453
9481
|
annotationIds: [...b.annotationIds],
|
|
9454
9482
|
queuedSubmissionId: b.queuedSubmissionId,
|
|
9455
9483
|
dispatch: b.dispatch,
|
|
9456
9484
|
dispatchError: b.dispatchError
|
|
9457
9485
|
} : null;
|
|
9458
|
-
|
|
9486
|
+
Gd({
|
|
9459
9487
|
version: 1,
|
|
9460
9488
|
originThread: l,
|
|
9461
9489
|
selectedThread: u,
|
|
9462
9490
|
delivery: e?.thread ? e : null
|
|
9463
9491
|
});
|
|
9464
|
-
},
|
|
9492
|
+
}, L = (e, t = !1) => {
|
|
9465
9493
|
let n = e.trim();
|
|
9466
|
-
n && ((t || !l) && (l = n), u = n, d = !1,
|
|
9494
|
+
n && ((t || !l) && (l = n), u = n, d = !1, I());
|
|
9467
9495
|
}, R = () => !b || b.status === "queued" && (b.dispatch === "desktop-opened" || b.dispatch === "desktop-wake-failed") ? !1 : [
|
|
9468
9496
|
"queueing",
|
|
9469
9497
|
"queued",
|
|
@@ -9473,12 +9501,12 @@ function $d(e = {}) {
|
|
|
9473
9501
|
"queueing",
|
|
9474
9502
|
"queued",
|
|
9475
9503
|
"working"
|
|
9476
|
-
].includes(b.status) ?
|
|
9504
|
+
].includes(b.status) ? Vd : b.status === "completed" ? Hd : Bd : Bd, H = () => {
|
|
9477
9505
|
let e = [], t = /* @__PURE__ */ new Set(), n = (n) => {
|
|
9478
9506
|
t.has(n.id) || (t.add(n.id), e.push(n));
|
|
9479
9507
|
}, r = (e) => ({
|
|
9480
9508
|
id: e,
|
|
9481
|
-
title: `Codex ${
|
|
9509
|
+
title: `Codex ${Qd(e)}`,
|
|
9482
9510
|
updatedAt: null,
|
|
9483
9511
|
connected: !0
|
|
9484
9512
|
});
|
|
@@ -9488,7 +9516,7 @@ function $d(e = {}) {
|
|
|
9488
9516
|
for (let e of m) n(e);
|
|
9489
9517
|
for (let e of p) n(m.find((t) => t.id === e) ?? r(e));
|
|
9490
9518
|
return e;
|
|
9491
|
-
},
|
|
9519
|
+
}, U = (e = !1) => Promise.resolve(), W = () => {
|
|
9492
9520
|
if (o !== "available") {
|
|
9493
9521
|
let e = s?.source === "desktop" && s.reason === "desktop-private-transport", t = !window.__MESURER_HOST__?.codexBridge, n = [];
|
|
9494
9522
|
return o === "unavailable" && t && n.push({
|
|
@@ -9499,36 +9527,36 @@ function $d(e = {}) {
|
|
|
9499
9527
|
}), n.push({
|
|
9500
9528
|
id: "codex.thread.connect",
|
|
9501
9529
|
label: o === "unavailable" ? t ? "Retry host connection" : e ? "Retry Codex Desktop" : "Retry Codex connection" : "Choose Codex thread…",
|
|
9502
|
-
run: () =>
|
|
9530
|
+
run: () => U(!0)
|
|
9503
9531
|
}), n;
|
|
9504
9532
|
}
|
|
9505
|
-
let e =
|
|
9533
|
+
let e = H(), t = e.slice(0, g), n = F(), r = t.map((e) => {
|
|
9506
9534
|
let t = e.id === l ? "Current · " : e.connected ? "Loaded · " : "", r = b?.thread === e.id ? ` · ${z(b.status)}` : "";
|
|
9507
9535
|
return {
|
|
9508
9536
|
id: `codex.thread.${e.id}`,
|
|
9509
|
-
label: `${t}${
|
|
9537
|
+
label: `${t}${$d(e.title)}${r}`,
|
|
9510
9538
|
checked: () => n === e.id,
|
|
9511
9539
|
disabled: () => R(),
|
|
9512
9540
|
run() {
|
|
9513
|
-
R() || (
|
|
9541
|
+
R() || (L(e.id, !l), G());
|
|
9514
9542
|
}
|
|
9515
9543
|
};
|
|
9516
9544
|
});
|
|
9517
|
-
return g <
|
|
9545
|
+
return g < Id && (e.length > g || h) && r.push({
|
|
9518
9546
|
id: "codex.thread.show-more",
|
|
9519
9547
|
label: "Show 5 more…",
|
|
9520
9548
|
run() {
|
|
9521
|
-
g =
|
|
9549
|
+
g = Id, G();
|
|
9522
9550
|
}
|
|
9523
9551
|
}), b?.queuedSubmissionId && b.status === "queued" && (b.dispatch === "desktop-opened" || b.dispatch === "desktop-wake-failed") && r.push({
|
|
9524
9552
|
id: "codex.delivery.receipt",
|
|
9525
|
-
label: `Receipt · ${
|
|
9553
|
+
label: `Receipt · ${Qd(b.queuedSubmissionId)}`,
|
|
9526
9554
|
disabled: () => !0,
|
|
9527
9555
|
run: () => void 0
|
|
9528
9556
|
}), r;
|
|
9529
|
-
},
|
|
9557
|
+
}, G = () => {
|
|
9530
9558
|
if (!n || w) return;
|
|
9531
|
-
let t =
|
|
9559
|
+
let t = F(), r = W(), i = !R() && !d && o !== "unavailable" && (o === "unknown" || !!t), a = s?.source === "desktop" && s.reason === "desktop-private-transport", c = !window.__MESURER_HOST__?.codexBridge, l = B() ?? (o === "unavailable" ? c ? "Codex host not connected" : a ? "Codex Desktop not connected" : "Codex unavailable" : d || o === "available" && !t ? "Choose Codex thread" : "Queue to Codex"), u = JSON.stringify({
|
|
9532
9560
|
bridgeAvailability: o,
|
|
9533
9561
|
codexRuntime: s,
|
|
9534
9562
|
routeNeedsSelection: d,
|
|
@@ -9556,32 +9584,32 @@ function $d(e = {}) {
|
|
|
9556
9584
|
items: r
|
|
9557
9585
|
} : void 0
|
|
9558
9586
|
}));
|
|
9559
|
-
},
|
|
9587
|
+
}, ne = async (e) => {
|
|
9560
9588
|
if (o !== "available") return;
|
|
9561
|
-
let t = await
|
|
9562
|
-
limit:
|
|
9589
|
+
let t = await te({
|
|
9590
|
+
limit: Id,
|
|
9563
9591
|
thread: e ?? void 0
|
|
9564
9592
|
});
|
|
9565
9593
|
m = t.threads, h = t.hasMore, p = t.threads.filter((e) => e.connected).map((e) => e.id), f = t.thread;
|
|
9566
9594
|
};
|
|
9567
|
-
|
|
9595
|
+
U = (e = !1) => w || o === "unknown" && !e ? Promise.resolve() : y || (y = (async () => {
|
|
9568
9596
|
try {
|
|
9569
|
-
let e = await
|
|
9570
|
-
o = "available", c = !0, f = e.thread, await
|
|
9597
|
+
let e = await ee();
|
|
9598
|
+
o = "available", c = !0, f = e.thread, await ne(u ?? l ?? e.thread);
|
|
9571
9599
|
let t = u ?? l;
|
|
9572
|
-
t && p.includes(t) ? d = !1 : p.length === 1 ?
|
|
9600
|
+
t && p.includes(t) ? d = !1 : p.length === 1 ? L(p[0], !0) : d = !0, !d && t && I();
|
|
9573
9601
|
} catch (e) {
|
|
9574
|
-
throw o = "unavailable", s = await
|
|
9602
|
+
throw o = "unavailable", s = await j().catch(() => s), e;
|
|
9575
9603
|
} finally {
|
|
9576
|
-
y = null,
|
|
9604
|
+
y = null, G();
|
|
9577
9605
|
}
|
|
9578
9606
|
})(), y);
|
|
9579
|
-
let
|
|
9607
|
+
let re = () => {
|
|
9580
9608
|
x &&= (globalThis.clearTimeout(x), 0), S &&= (globalThis.clearTimeout(S), 0);
|
|
9581
9609
|
}, K = () => {
|
|
9582
9610
|
S && globalThis.clearTimeout(S), S = globalThis.setTimeout(() => {
|
|
9583
|
-
S = 0, b?.status === "completed" && (b = null,
|
|
9584
|
-
},
|
|
9611
|
+
S = 0, b?.status === "completed" && (b = null, I(), G());
|
|
9612
|
+
}, Nd);
|
|
9585
9613
|
}, ie = async (e) => {
|
|
9586
9614
|
if (!(!b || b.id !== e.id)) {
|
|
9587
9615
|
if (b = {
|
|
@@ -9591,26 +9619,26 @@ function $d(e = {}) {
|
|
|
9591
9619
|
queuedSubmissionId: e.queuedSubmissionId ?? b.queuedSubmissionId,
|
|
9592
9620
|
dispatch: e.dispatch ?? b.dispatch,
|
|
9593
9621
|
dispatchError: e.dispatchError ?? b.dispatchError
|
|
9594
|
-
},
|
|
9595
|
-
|
|
9622
|
+
}, I(), e.status === "queued" && (e.dispatch === "desktop-opened" || e.dispatch === "desktop-wake-failed")) {
|
|
9623
|
+
G();
|
|
9596
9624
|
return;
|
|
9597
9625
|
}
|
|
9598
9626
|
if (e.status === "completed") {
|
|
9599
9627
|
if (r) for (let e of b.annotationIds) await i.removeAnnotation(e);
|
|
9600
|
-
|
|
9628
|
+
I(), G(), K();
|
|
9601
9629
|
return;
|
|
9602
9630
|
}
|
|
9603
9631
|
if (e.status === "interrupted") {
|
|
9604
|
-
|
|
9632
|
+
I(), G();
|
|
9605
9633
|
let t = e.updatedAt > 0 ? e.updatedAt : Date.now();
|
|
9606
|
-
Date.now() - t <
|
|
9634
|
+
Date.now() - t < Fd && (x = globalThis.setTimeout(() => {
|
|
9607
9635
|
x = 0, ae(e.id);
|
|
9608
|
-
},
|
|
9636
|
+
}, Pd));
|
|
9609
9637
|
return;
|
|
9610
9638
|
}
|
|
9611
|
-
|
|
9639
|
+
G(), x = globalThis.setTimeout(() => {
|
|
9612
9640
|
x = 0, ae(e.id);
|
|
9613
|
-
},
|
|
9641
|
+
}, Md);
|
|
9614
9642
|
}
|
|
9615
9643
|
}, ae = async (e) => {
|
|
9616
9644
|
if (!(w || b?.id !== e)) try {
|
|
@@ -9619,7 +9647,7 @@ function $d(e = {}) {
|
|
|
9619
9647
|
if (b?.id !== e) return;
|
|
9620
9648
|
let n = t;
|
|
9621
9649
|
if (b.status === "queued" && b.thread) try {
|
|
9622
|
-
o !== "available" && await
|
|
9650
|
+
o !== "available" && await U(!0);
|
|
9623
9651
|
let e = await P(b);
|
|
9624
9652
|
await ie(e);
|
|
9625
9653
|
return;
|
|
@@ -9628,17 +9656,17 @@ function $d(e = {}) {
|
|
|
9628
9656
|
}
|
|
9629
9657
|
if (b?.id !== e) return;
|
|
9630
9658
|
if (b.status === "interrupted") {
|
|
9631
|
-
|
|
9659
|
+
G();
|
|
9632
9660
|
return;
|
|
9633
9661
|
}
|
|
9634
9662
|
b = {
|
|
9635
9663
|
...b,
|
|
9636
9664
|
status: "failed"
|
|
9637
|
-
},
|
|
9665
|
+
}, I(), ef(n) && (o = "unavailable"), G();
|
|
9638
9666
|
}
|
|
9639
9667
|
}, oe = {
|
|
9640
|
-
health:
|
|
9641
|
-
listThreads:
|
|
9668
|
+
health: M,
|
|
9669
|
+
listThreads: te,
|
|
9642
9670
|
delivery: N,
|
|
9643
9671
|
async useThread(e) {
|
|
9644
9672
|
let t = e.trim();
|
|
@@ -9646,11 +9674,11 @@ function $d(e = {}) {
|
|
|
9646
9674
|
let n = await E({
|
|
9647
9675
|
action: "target",
|
|
9648
9676
|
thread: t
|
|
9649
|
-
}), r =
|
|
9650
|
-
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;
|
|
9651
9679
|
},
|
|
9652
9680
|
async queue(e) {
|
|
9653
|
-
let r = await
|
|
9681
|
+
let r = await Zd(i, e, t), a = e?.thread?.trim(), s = a || (n ? F() : null);
|
|
9654
9682
|
if (n && !a && (d || !s)) throw Error("Choose a Codex thread before queueing feedback.");
|
|
9655
9683
|
let c = { message: r.message };
|
|
9656
9684
|
s && (c.thread = s);
|
|
@@ -9670,26 +9698,26 @@ function $d(e = {}) {
|
|
|
9670
9698
|
};
|
|
9671
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;
|
|
9672
9700
|
} catch (e) {
|
|
9673
|
-
throw n &&
|
|
9701
|
+
throw n && ef(e) && (o = "unavailable", G()), e;
|
|
9674
9702
|
}
|
|
9675
9703
|
},
|
|
9676
9704
|
send(e) {
|
|
9677
9705
|
return oe.queue(e);
|
|
9678
9706
|
}
|
|
9679
9707
|
};
|
|
9680
|
-
e.service.provide(
|
|
9708
|
+
e.service.provide(kd, oe);
|
|
9681
9709
|
let se = async () => {
|
|
9682
|
-
if (!(C || R())) return
|
|
9710
|
+
if (!(C || R())) return re(), b = {
|
|
9683
9711
|
id: null,
|
|
9684
|
-
thread:
|
|
9712
|
+
thread: F(),
|
|
9685
9713
|
status: "queueing",
|
|
9686
9714
|
annotationIds: [],
|
|
9687
9715
|
queuedSubmissionId: null,
|
|
9688
9716
|
dispatch: null,
|
|
9689
9717
|
dispatchError: null
|
|
9690
|
-
},
|
|
9718
|
+
}, G(), C = (async () => {
|
|
9691
9719
|
try {
|
|
9692
|
-
n && o !== "available" && await
|
|
9720
|
+
n && o !== "available" && await U(!0);
|
|
9693
9721
|
let e = await oe.queue();
|
|
9694
9722
|
b = {
|
|
9695
9723
|
id: e.deliveryId,
|
|
@@ -9699,7 +9727,7 @@ function $d(e = {}) {
|
|
|
9699
9727
|
queuedSubmissionId: e.queuedSubmissionId ?? null,
|
|
9700
9728
|
dispatch: e.dispatch ?? null,
|
|
9701
9729
|
dispatchError: e.dispatchError ?? null
|
|
9702
|
-
},
|
|
9730
|
+
}, L(e.thread, !l), I(), G(), console.info(`[Mesurer] Queued feedback for Codex thread ${e.thread}.`), e.deliveryId ? e.status === "completed" || e.status === "interrupted" ? await ie({
|
|
9703
9731
|
id: e.deliveryId,
|
|
9704
9732
|
thread: e.thread,
|
|
9705
9733
|
status: e.status,
|
|
@@ -9708,11 +9736,11 @@ function $d(e = {}) {
|
|
|
9708
9736
|
updatedAt: 0
|
|
9709
9737
|
}) : x = globalThis.setTimeout(() => {
|
|
9710
9738
|
x = 0, ae(e.deliveryId);
|
|
9711
|
-
},
|
|
9712
|
-
S = 0, b?.id === null && b?.status === "queued" && (b = null,
|
|
9713
|
-
},
|
|
9739
|
+
}, Md) : S = globalThis.setTimeout(() => {
|
|
9740
|
+
S = 0, b?.id === null && b?.status === "queued" && (b = null, I(), G());
|
|
9741
|
+
}, Nd);
|
|
9714
9742
|
} catch (e) {
|
|
9715
|
-
b = null,
|
|
9743
|
+
b = null, I(), G();
|
|
9716
9744
|
let t = e instanceof Error ? e.message : String(e);
|
|
9717
9745
|
throw console.error(`[Mesurer] Failed to queue feedback for Codex: ${t}`), e;
|
|
9718
9746
|
} finally {
|
|
@@ -9721,9 +9749,9 @@ function $d(e = {}) {
|
|
|
9721
9749
|
})(), C;
|
|
9722
9750
|
};
|
|
9723
9751
|
if (e.command.register("codex.queue", se), e.command.register("codex.send", se), n) {
|
|
9724
|
-
|
|
9752
|
+
G();
|
|
9725
9753
|
try {
|
|
9726
|
-
await
|
|
9754
|
+
await U(!0);
|
|
9727
9755
|
} catch (e) {
|
|
9728
9756
|
try {
|
|
9729
9757
|
await D();
|
|
@@ -9737,10 +9765,10 @@ function $d(e = {}) {
|
|
|
9737
9765
|
x = 0, b?.id && ae(b.id);
|
|
9738
9766
|
}, 0));
|
|
9739
9767
|
let t = globalThis.setInterval(() => {
|
|
9740
|
-
c &&
|
|
9741
|
-
},
|
|
9768
|
+
c && U().catch(() => void 0);
|
|
9769
|
+
}, jd);
|
|
9742
9770
|
e.lifecycle.onDispose(() => {
|
|
9743
|
-
w = !0,
|
|
9771
|
+
w = !0, re(), globalThis.clearInterval(t), _?.dispose(), _ = void 0;
|
|
9744
9772
|
});
|
|
9745
9773
|
}
|
|
9746
9774
|
}
|
|
@@ -9748,15 +9776,15 @@ function $d(e = {}) {
|
|
|
9748
9776
|
}
|
|
9749
9777
|
//#endregion
|
|
9750
9778
|
//#region src/recording.ts
|
|
9751
|
-
var
|
|
9752
|
-
...
|
|
9753
|
-
version:
|
|
9754
|
-
}),
|
|
9755
|
-
...
|
|
9756
|
-
version:
|
|
9757
|
-
}),
|
|
9779
|
+
var nf = Cl, rf = wl, af = Tl, of = (e = {}) => ({
|
|
9780
|
+
...Gl(e),
|
|
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) => ({
|
|
9758
9786
|
...e,
|
|
9759
|
-
version:
|
|
9760
|
-
}),
|
|
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);
|
|
9761
9789
|
//#endregion
|
|
9762
|
-
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 };
|