mesurer-solid 0.2.1-beta.12 → 0.2.1-beta.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/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 ee(e, t) {
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 k = /* @__PURE__ */ new Set(), A = {
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
- }, j = {
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 te(e) {
84
- e.se & 16 ? e.se &= -12 : (we(e, j), e.se &= -4);
83
+ function ee(e) {
84
+ e.se & 16 ? e.se &= -12 : (we(e, M), e.se &= -4);
85
85
  }
86
- var M = 0, N = null, P = !1, F = !1, I = !1, L = 0, R = /* @__PURE__ */ new Set();
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 k.size === 0 && C.size === 0 && e.vt.length === 0 && t.Me.length === 0 && t.A.length === 0 && t.cn.size === 0 && R.size === 0;
89
+ return A.size === 0 && C.size === 0 && e.vt.length === 0 && t.Me.length === 0 && t.A.length === 0 && t.cn.size === 0 && R.size === 0;
90
90
  }
91
91
  function B() {
92
92
  if (R.size !== 0) for (let e of R) {
@@ -99,7 +99,7 @@ function B() {
99
99
  }
100
100
  function V() {
101
101
  return {
102
- de: M,
102
+ de: N,
103
103
  Qt: [],
104
104
  Ie: /* @__PURE__ */ new Map(),
105
105
  Me: [],
@@ -131,7 +131,7 @@ function U() {
131
131
  G();
132
132
  return;
133
133
  }
134
- P || (P = !0, !L && !q.gt && queueMicrotask(pe));
134
+ te || (te = !0, !L && !q.gt && queueMicrotask(pe));
135
135
  }
136
136
  function W(e) {
137
137
  if (F) return;
@@ -147,7 +147,7 @@ var ne = 0, re = class {
147
147
  bt = [[], []];
148
148
  vt = [];
149
149
  kt = 0;
150
- created = M;
150
+ created = N;
151
151
  addChild(e) {
152
152
  this.vt.push(e), e.ke = this;
153
153
  }
@@ -232,19 +232,19 @@ var ne = 0, re = class {
232
232
  if (!this.gt) {
233
233
  this.gt = !0;
234
234
  try {
235
- if (De(A, e.Ce), N) {
236
- if (!ge(N)) {
237
- let t = N;
238
- De(j, this.m === t ? te : e.Ce), this.m === t && (fe = this.m = V()), C.size && (e.In(1), e.In(2)), this.stashQueues(t.yt), M++, P = A.EE >= A.Ve || this.m.Qt.length > 0, de(t.Qt), N = null, le(null, !0);
235
+ if (De(j, e.Ce), P) {
236
+ if (!ge(P)) {
237
+ let t = P;
238
+ De(M, this.m === t ? ee : e.Ce), this.m === t && (fe = this.m = V()), C.size && (e.In(1), e.In(2)), this.stashQueues(t.yt), N++, te = j.EE >= j.Ve || this.m.Qt.length > 0, de(t.Qt), P = null, le(null, !0);
239
239
  return;
240
240
  }
241
- let t = N, n = this.m;
242
- if (n !== t && n.Qt.push(...t.Qt), this.restoreQueues(t.yt), k.delete(t), N = null, de(n.Qt), le(t), n === t) {
241
+ let t = P, n = this.m;
242
+ if (n !== t && n.Qt.push(...t.Qt), this.restoreQueues(t.yt), A.delete(t), P = null, de(n.Qt), le(t), n === t) {
243
243
  let e = V();
244
244
  e.Qt = n.Qt, e.Me = n.Me, e.A = n.A, e.cn = n.cn, fe = this.m = e;
245
245
  }
246
- } else z(this) ? (ce(), A.EE >= A.Ve && (De(A, e.Ce), ce())) : (k.size && De(j, e.Ce), le());
247
- M++, P = A.EE >= A.Ve, C.size && e.In(1), this.run(1), C.size && e.In(2), this.run(2);
246
+ } else z(this) ? (ce(), j.EE >= j.Ve && (De(j, e.Ce), ce())) : (A.size && De(M, e.Ce), le());
247
+ N++, te = j.EE >= j.Ve, C.size && e.In(1), this.run(1), C.size && e.In(2), this.run(2);
248
248
  } finally {
249
249
  this.gt = !1;
250
250
  }
@@ -255,9 +255,9 @@ var ne = 0, re = class {
255
255
  if (n & 1) {
256
256
  let t = r === void 0 ? e._ : r;
257
257
  if (t?.l) return !0;
258
- if (N && t) {
259
- let n = t.source, r = N.Ie.get(n);
260
- r || N.Ie.set(n, r = /* @__PURE__ */ new Set());
258
+ if (P && t) {
259
+ let n = t.source, r = P.Ie.get(n);
260
+ r || P.Ie.set(n, r = /* @__PURE__ */ new Set());
261
261
  let i = r.size;
262
262
  r.add(e), r.size !== i && U();
263
263
  }
@@ -267,32 +267,32 @@ var ne = 0, re = class {
267
267
  return !1;
268
268
  }
269
269
  initTransition(e) {
270
- if (e &&= _e(e), e && e === N || !e && N && N.de === M) return;
271
- if (!N) N = e ?? V();
270
+ if (e &&= _e(e), e && e === P || !e && P && P.de === N) return;
271
+ if (!P) P = e ?? V();
272
272
  else if (e) {
273
- let t = N;
274
- H(e, t), k.delete(t), N = e;
273
+ let t = P;
274
+ H(e, t), A.delete(t), P = e;
275
275
  }
276
- k.add(N), N.de = M;
276
+ A.add(P), P.de = N;
277
277
  let t = this.m;
278
- if (t !== N) {
278
+ if (t !== P) {
279
279
  for (let e = 0; e < t.Qt.length; e++) {
280
280
  let n = t.Qt[e];
281
- n.Ne = N, N.Qt.push(n);
281
+ n.Ne = P, P.Qt.push(n);
282
282
  }
283
283
  for (let e = 0; e < t.Me.length; e++) {
284
284
  let n = t.Me[e];
285
- n.Ne = N, N.Me.push(n);
285
+ n.Ne = P, P.Me.push(n);
286
286
  }
287
- t.A.length && N.A.push(...t.A);
288
- for (let e of t.cn) N.cn.add(e);
287
+ t.A.length && P.A.push(...t.A);
288
+ for (let e of t.cn) P.cn.add(e);
289
289
  if (t.ln.size) {
290
- for (let e of t.ln) N.ln.add(e);
290
+ for (let e of t.ln) P.ln.add(e);
291
291
  t.ln.clear();
292
292
  }
293
- fe = this.m = N;
293
+ fe = this.m = P;
294
294
  }
295
- for (let e of C) e.Ne ||= N;
295
+ for (let e of C) e.Ne ||= P;
296
296
  }
297
297
  };
298
298
  function ie(e) {
@@ -306,7 +306,7 @@ function oe(e, t = !1) {
306
306
  a.fe.se |= 256;
307
307
  continue;
308
308
  }
309
- t && n ? (a.fe.se |= 128, ee(a.fe, n)) : t && (a.fe.se |= 128, a.fe.Ke = void 0), be(a.fe);
309
+ t && n ? (a.fe.se |= 128, k(a.fe, n)) : t && (a.fe.se |= 128, a.fe.Ke = void 0), be(a.fe);
310
310
  }
311
311
  }
312
312
  function se(e) {
@@ -325,8 +325,8 @@ function ce() {
325
325
  function le(e = null, t = !1) {
326
326
  let n = !t;
327
327
  n && ce(), !t && q.vt.length && ue(q);
328
- let r = A.EE >= A.Ve;
329
- if (r && De(A, K.Ce), n) {
328
+ let r = j.EE >= j.Ve;
329
+ if (r && De(j, K.Ce), n) {
330
330
  r && ce();
331
331
  let t = e ?? q.m;
332
332
  if (t.Me.length && K.En(t.Me), t.ln.size) {
@@ -340,7 +340,7 @@ function ue(e) {
340
340
  for (let t of e.vt) t.ne?.(), ue(t);
341
341
  }
342
342
  function de(e) {
343
- for (let t = 0; t < e.length; t++) e[t].Ne = N;
343
+ for (let t = 0; t < e.length; t++) e[t].Ne = P;
344
344
  }
345
345
  var q = new K(), fe = q.m;
346
346
  function pe(e) {
@@ -356,7 +356,7 @@ function pe(e) {
356
356
  }
357
357
  }
358
358
  }
359
- if (!q.gt && !F) for (; P || N;) q.flush();
359
+ if (!q.gt && !F) for (; te || P;) q.flush();
360
360
  }
361
361
  function me(e, t) {
362
362
  for (let n = 0; n < e.length; n++) e[n](t);
@@ -399,17 +399,17 @@ function _e(e) {
399
399
  return e;
400
400
  }
401
401
  function ve(e, t) {
402
- let n = N;
402
+ let n = P;
403
403
  try {
404
- return N = _e(e), t();
404
+ return P = _e(e), t();
405
405
  } finally {
406
- N = n;
406
+ P = n;
407
407
  }
408
408
  }
409
409
  //#endregion
410
410
  //#region ../../node_modules/.bun/@solidjs+signals@2.0.0-rc.0/node_modules/@solidjs/signals/dist/prod/core/heap.js
411
411
  function ye(e) {
412
- return e.se & 32 ? j : A;
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 ? j : A), e & 8 ? Se(t, j) : Ce(t, j)), ke(t), t = t.He;
493
+ t.se = e | 32, e & 24 && (we(t, e & 32 ? M : j), e & 8 ? Se(t, M) : Ce(t, M)), ke(t), t = t.He;
494
494
  }
495
495
  }
496
496
  function Ae(e, t = !1, n) {
@@ -689,7 +689,7 @@ function $e(e, t) {
689
689
  function et(e) {
690
690
  let t = !1, n, r = /* @__PURE__ */ new Set(), i = K.Se, a = (o) => {
691
691
  if (r.has(o) || !Ke(o, e)) return;
692
- r.add(o), o.de = M;
692
+ r.add(o), o.de = N;
693
693
  let s = o.oe?.values().next().value, c = o.S & 2;
694
694
  s ? (c || Ye(o, s), i !== null && i(o)) : (o.S &= -2, c || Ye(o), i !== null && i(o), o.ue && (be(o), t = !0), o.ue = !1, !o.o && o.T & 32 && (n ??= []).push(o)), Xe(o, a);
695
695
  };
@@ -716,10 +716,10 @@ function nt(e, t, n) {
716
716
  if (e.Te !== t) return;
717
717
  let r = n instanceof d;
718
718
  if (r && e.Ee) {
719
- e.Te = null, Je(e, n), e.de = M;
719
+ e.Te = null, Je(e, n), e.de = N;
720
720
  return;
721
721
  }
722
- o(), it(e, r ? 1 : 2, n), e.de = M, r || Qe(e);
722
+ o(), it(e, r ? 1 : 2, n), e.de = N, r || Qe(e);
723
723
  }, c = (r, i) => {
724
724
  if (e.Te !== t || e.se & 130) return;
725
725
  o();
@@ -727,11 +727,11 @@ function nt(e, t, n) {
727
727
  He(e), rt(e);
728
728
  let s = E(e);
729
729
  if (s && s.Ae.delete(e), n) n(r), a && rt(e, !0);
730
- else if (e._e !== void 0) e.De === _ && ie(e), e.De = r, K.Pe !== null && K.Pe(e, r), O(e) || oe(e), e.de = M;
730
+ else if (e._e !== void 0) e.De === _ && ie(e), e.De = r, K.Pe !== null && K.Pe(e, r), O(e) || oe(e), e.de = N;
731
731
  else if (s) {
732
732
  let t = e.Re, n = e.Ue, i = e.be;
733
733
  try {
734
- (!t && a || !i || !i(r, n)) && (e.Ue = r, e.de = M, K.Pe !== null && K.Pe(e, r), oe(e, !0));
734
+ (!t && a || !i || !i(r, n)) && (e.Ue = r, e.de = N, K.Pe !== null && K.Pe(e, r), oe(e, !0));
735
735
  } catch (t) {
736
736
  it(e, 2, t);
737
737
  }
@@ -796,7 +796,7 @@ function rt(e, t = !1) {
796
796
  function it(e, t, n, r, i) {
797
797
  t === 2 && !(n instanceof f) && !(n instanceof d) && (n = new f(e, n));
798
798
  let a = t === 1 && n instanceof d ? n.source : void 0, o = a === e, s = t === 1 && e._e !== void 0 && !o, c = s && O(e);
799
- r || (t === 1 && a ? (Ge(e, a), e.S = 1 | e.S & 4, Ye(e, a, n)) : (qe(e), e.S = t | (t === 2 ? 0 : e.S & 4), e._ = n), K.Se !== null && K.Se(e), e.u && K.Oe !== null && K.Oe(e)), i && !r && ee(e, i);
799
+ r || (t === 1 && a ? (Ge(e, a), e.S = 1 | e.S & 4, Ye(e, a, n)) : (qe(e), e.S = t | (t === 2 ? 0 : e.S & 4), e._ = n), K.Se !== null && K.Se(e), e.u && K.Oe !== null && K.Oe(e)), i && !r && k(e, i);
800
800
  let l = r || c, u = r || s ? void 0 : i;
801
801
  if (e.i) {
802
802
  if (r && t === 1) return;
@@ -804,7 +804,7 @@ function it(e, t, n, r, i) {
804
804
  return;
805
805
  }
806
806
  Xe(e, (e, r) => {
807
- if (e.de = M, t === 1 && a && !e.oe?.has(a) || t !== 1 && (e._ !== n || e.oe)) {
807
+ if (e.de = N, t === 1 && a && !e.oe?.has(a) || t !== 1 && (e._ !== n || e.oe)) {
808
808
  if (r.Ge && t !== 1 && !(n instanceof d)) {
809
809
  be(e), U();
810
810
  return;
@@ -817,16 +817,16 @@ K.Ce = ut, K.me = Ae;
817
817
  var at = !1, ot = !1, st = !1, ct = !1, J = null, lt = null;
818
818
  function ut(e, t = !1) {
819
819
  let n = e.Re;
820
- t || (e.Ne && (!n || N) && N !== e.Ne && q.initTransition(e.Ne), we(e, ye(e)), e.Te = null, e.Ne || n === 3 ? Ae(e) : (e.Fe !== null || e.ye !== null) && (ke(e), e.Qe = e.ye, e.We = e.Fe, e.ye = null, e.Fe = null, e.qe = 0));
820
+ t || (e.Ne && (!n || P) && P !== e.Ne && q.initTransition(e.Ne), we(e, ye(e)), e.Te = null, e.Ne || n === 3 ? Ae(e) : (e.Fe !== null || e.ye !== null) && (ke(e), e.Qe = e.ye, e.We = e.Fe, e.ye = null, e.Fe = null, e.qe = 0));
821
821
  let r = !!(e.se & 128), i = e._e !== void 0 && e._e !== _, a = !!(e.S & 4), o = e.S & 2 ? e._ : void 0, s = (e.se & g) !== 0, c = e.Ee, l = J;
822
- J = e, e.Ye = null, e.Ze++, e.se = 4, e.de = M;
822
+ J = e, e.Ye = null, e.Ze++, e.se = 4, e.de = N;
823
823
  let u = e.De === _ ? e.Ue : e.De, f = e.xe, p = at, m = lt;
824
824
  at = !0;
825
825
  let h = ct;
826
826
  if (ct = !1, r) {
827
827
  let t = K.je(e, !0);
828
828
  t && (lt = t);
829
- } else if (N && !t && N.Me.length) {
829
+ } else if (P && !t && P.Me.length) {
830
830
  let t = K.je(e, !1);
831
831
  t && (r = !0, lt = t);
832
832
  }
@@ -861,20 +861,20 @@ function ut(e, t = !1) {
861
861
  if (n && l && (e.Je = !e._, t || e.C.enqueue(n, e.Xe ??= K.et.bind(null, e))), !e._) {
862
862
  if (l) {
863
863
  let a = i ? e._e : void 0;
864
- t || n && (N !== e.Ne || N === null) || r ? (e.Ue = u, i && r && (e._e = u === void 0 ? v : u, e.De = _)) : (e.De = u, c && (e.Ee = !0), (N || e.Ne) && K.Pe !== null && K.Pe(e, u)), e.o !== null && (!i || r || e._e !== a) && oe(e, r || i);
864
+ t || n && (P !== e.Ne || P === null) || r ? (e.Ue = u, i && r && (e._e = u === void 0 ? v : u, e.De = _)) : (e.De = u, c && (e.Ee = !0), (P || e.Ne) && K.Pe !== null && K.Pe(e, u)), e.o !== null && (!i || r || e._e !== a) && oe(e, r || i);
865
865
  } else if (i) e.De === _ && ie(e), e.De = u, c && (e.Ee = !0);
866
866
  else if (e.xe != f) for (let t = e.o; t !== null; t = t.le) Ce(t.fe, ye(t.fe));
867
867
  }
868
868
  o !== void 0 && !l && !e._ && $e(e, o);
869
869
  }
870
- lt = m, (e.De !== _ || e.We !== null || e.Qe !== null || e.S & 5) && (!t || e.S & 1) && (!e.Ne || i) && ie(e), e.Ne && n && N !== e.Ne && ve(e.Ne, () => ut(e));
870
+ lt = m, (e.De !== _ || e.We !== null || e.Qe !== null || e.S & 5) && (!t || e.S & 1) && (!e.Ne || i) && ie(e), e.Ne && n && P !== e.Ne && ve(e.Ne, () => ut(e));
871
871
  }
872
872
  function dt(e) {
873
873
  if (e.se & 1) for (let t = e.tt; t; t = t.nt) {
874
874
  let n = t.it, r = n.lt || n;
875
875
  if (r.ce && dt(r), e.se & 2) break;
876
876
  }
877
- (e.se & 130 || e._ && e.de < M && !e.Te) && ut(e), e.se &= 280;
877
+ (e.se & 130 || e._ && e.de < N && !e.Te) && ut(e), e.se &= 280;
878
878
  }
879
879
  function ft(e, t) {
880
880
  let n = t?.transparent ?? !1, r = typeof t == "object" && !!t && "loadingValue" in t, i = {
@@ -903,7 +903,7 @@ function ft(e, t) {
903
903
  Fe: null,
904
904
  se: t?.lazy ? 512 : 0,
905
905
  S: r ? 0 : 4,
906
- de: M,
906
+ de: N,
907
907
  De: _,
908
908
  Qe: null,
909
909
  We: null,
@@ -941,7 +941,7 @@ function pt(e, t, n, r, i, a) {
941
941
  Fe: null,
942
942
  se: 512,
943
943
  S: 4,
944
- de: M,
944
+ de: N,
945
945
  De: _,
946
946
  Qe: null,
947
947
  We: null,
@@ -977,7 +977,7 @@ function gt(e, t, n = null) {
977
977
  Ue: e,
978
978
  o: null,
979
979
  rt: null,
980
- de: M,
980
+ de: N,
981
981
  lt: n,
982
982
  ae: n?.u || null,
983
983
  De: _
@@ -1005,7 +1005,7 @@ function bt(e) {
1005
1005
  let t = J;
1006
1006
  t?.Nt && (t = t.dt);
1007
1007
  let n = e, r = e.lt || e;
1008
- if (typeof n.ce == "function" && yt(e, !1), !n.ce && r === e && e._e === void 0 && e.Le === void 0 && N === null && lt === null) return t && at && We(e, t), !t || e.De === _ ? e.Ue : e.De;
1008
+ if (typeof n.ce == "function" && yt(e, !1), !n.ce && r === e && e._e === void 0 && e.Le === void 0 && P === null && lt === null) return t && at && We(e, t), !t || e.De === _ ? e.Ue : e.De;
1009
1009
  if (t && at && (We(e, t, st), r.ce)) {
1010
1010
  let n = ye(e);
1011
1011
  r.xe >= n.Ve && (Ee(t), Te(n), dt(r));
@@ -1013,24 +1013,24 @@ function bt(e) {
1013
1013
  i >= t.xe && e.ke !== t && (t.xe = i + 1);
1014
1014
  }
1015
1015
  if (r.S & 1) {
1016
- if (t && !(ot && r.Ne && N !== r.Ne)) {
1016
+ if (t && !(ot && r.Ne && P !== r.Ne)) {
1017
1017
  if (lt === null || K.Ot(r)) throw !at && e !== t && We(e, t), r._;
1018
1018
  } else if (t && r !== e && r.S & 4) throw !at && e !== t && We(e, t), r._;
1019
1019
  else if (!t && r.S & 4) throw r._;
1020
1020
  }
1021
1021
  if (r.ce && r.S & 2) {
1022
- if (at && r.de < M) return ut(r), bt(e);
1022
+ if (at && r.de < N) return ut(r), bt(e);
1023
1023
  throw r._;
1024
1024
  }
1025
1025
  if (e._e !== void 0 && e._e !== _) return y(e._e);
1026
- if (lt !== null && N !== null && t !== null && K.Rt(e, r, t)) return e.Ue;
1027
- let i = !t || lt !== null && K.Pt(e, r, t) || e.De === _ || ot && e.Ne && N !== e.Ne ? e.Ue : e.De;
1026
+ if (lt !== null && P !== null && t !== null && K.Rt(e, r, t)) return e.Ue;
1027
+ let i = !t || lt !== null && K.Pt(e, r, t) || e.De === _ || ot && e.Ne && P !== e.Ne ? e.Ue : e.De;
1028
1028
  return !t && r === e && typeof n.ce == "function" && e.T & 32 && !(r.S & 1) && !e.o && Ue(e), i;
1029
1029
  }
1030
1030
  function xt(e, t) {
1031
- if (e.Ne && N !== e.Ne && q.initTransition(e.Ne), e._e !== void 0) return K.Gt(e, t);
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 = M, oe(e), U(), t) : t;
1033
+ return typeof t == "function" && (t = t(n)), e.S & 4 || !e.be || !e.be(n, t) ? (e.De === _ && ie(e), e.De = t, (e.ge !== void 0 || e.pe !== void 0) && K.Pe !== null && K.Pe(e, t), e.de = N, oe(e), U(), t) : t;
1034
1034
  }
1035
1035
  function St(e) {
1036
1036
  we(e, ye(e)), !(e.se & 1024) && e.De === _ && (ie(e), U()), e.se = e.se & -4 | h;
@@ -3310,43 +3310,43 @@ function Xa(e = {}, t = !1) {
3310
3310
  let i = (e.id ?? (t ? "mesurer-text-inspector" : `mesurer-text-inspector-${++Ja}`)).replace(/[^a-zA-Z0-9_-]/g, "-"), a = `${i}-overlay`, o = `${i}-styles`, s = `${i}-mode`, c = new Set((e.ignoredTags ?? Ha).map((e) => e.toUpperCase())), l = Number.isFinite(e.maxPinned) ? Math.max(1, Math.floor(e.maxPinned)) : Infinity, u = new Va(n, r), d = r.HTMLElement, f = r.SVGElement, p = r.Node, m = !1, h = null, g = null, _ = null, v = null, y = {
3311
3311
  x: 0,
3312
3312
  y: 0
3313
- }, b = 0, x = 0, S = 0, C = r.scrollX, w = r.scrollY, T = null, E = [], D = [], O = [], ee = e.portalTarget ?? n.body, k = () => {
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
- ee instanceof r.ShadowRoot && e.push(ee);
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
- }, A = () => h?.isConnected ? h : (h = n.createElement("div"), h.id = a, h.dataset.mesurerInspectorUi = "true", h.dataset.theme = e.theme?.() ?? "system", T ??= e.subscribeTheme?.((e) => {
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
- }), ee.appendChild(h), h), j = (e, t) => {
3328
+ }), k.appendChild(h), h), M = (e, t) => {
3329
3329
  e && (e.dataset.state = t ? "visible" : "hidden");
3330
- }, te = () => {
3331
- let e = A();
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
- }, M = (e) => Array.from(e.childNodes).some((e) => e.nodeType === p.TEXT_NODE && !!e.nodeValue?.trim()), N = (e) => !!e && e instanceof d && !(e instanceof f) && !c.has(e.tagName) && M(e) && !e.closest("[data-mesurer-root], [data-mesurer-inspector-ui='true']"), P = (e, t) => {
3333
+ }, N = (e) => Array.from(e.childNodes).some((e) => e.nodeType === p.TEXT_NODE && !!e.nodeValue?.trim()), P = (e) => !!e && e instanceof d && !(e instanceof f) && !c.has(e.tagName) && N(e) && !e.closest("[data-mesurer-root], [data-mesurer-inspector-ui='true']"), te = (e, t) => {
3334
3334
  for (let i of n.elementsFromPoint(e, t)) {
3335
3335
  if (ri(i, r)) return null;
3336
- if (N(i)) return i;
3336
+ if (P(i)) return i;
3337
3337
  }
3338
3338
  return null;
3339
3339
  }, F = () => {
3340
- v = null, j(g, !1), j(_, !1);
3340
+ v = null, M(g, !1), M(_, !1);
3341
3341
  }, I = (e, t, n) => {
3342
3342
  if (!e || e.dataset.state !== "visible") return !1;
3343
3343
  let r = e.getBoundingClientRect();
3344
3344
  return t >= r.left && t <= r.right && n >= r.top && n <= r.bottom;
3345
3345
  }, L = (e, t) => E.some((n) => I(n.card, e, t)), R = (t) => {
3346
- if (!m || !N(t)) return !1;
3347
- te();
3346
+ if (!m || !P(t)) return !1;
3347
+ ee();
3348
3348
  let i = t.getBoundingClientRect(), a = u.getFast(t);
3349
- return v = t, Aa(n, _, a, !1), Oa(g, i), ja(r, _, i), j(g, !0), j(_, !0), r.clearTimeout(x), x = r.setTimeout(() => {
3349
+ return v = t, Aa(n, _, a, !1), Oa(g, i), ja(r, _, i), M(g, !0), M(_, !0), r.clearTimeout(x), x = r.setTimeout(() => {
3350
3350
  if (!m || v !== t || !_) return;
3351
3351
  let i = u.getFull(t, a);
3352
3352
  Aa(n, _, i, !1), ja(r, _, t.getBoundingClientRect()), e.onInspect?.(t, i);
@@ -3381,12 +3381,12 @@ function Xa(e = {}, t = !1) {
3381
3381
  }, W = (t, i, a = !0, o = !0) => {
3382
3382
  if (E.find((e) => e.sourceEl === t)) return;
3383
3383
  a && B(), E.length >= l && V(E[0], !1, !0);
3384
- let s = A(), c = Da(n, Ga, Ka), d = ka(n, !0);
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`), j(c, !0), j(d, !0);
3389
+ Oa(c, p), ja(r, d, p), i?.userPlaced && (d.classList.add("mesurer-ti-card--pinned"), d.style.left = `${i.left}px`, d.style.top = `${i.top}px`), M(c, !0), M(d, !0);
3390
3390
  let m = {
3391
3391
  sourceEl: t,
3392
3392
  box: c,
@@ -3419,7 +3419,7 @@ function Xa(e = {}, t = !1) {
3419
3419
  let t = e.sourceEl.getBoundingClientRect();
3420
3420
  Oa(e.box, t), e.userPlaced || ja(r, e.card, t);
3421
3421
  let n = t.bottom >= 0 && t.right >= 0 && t.left <= r.innerWidth && t.top <= r.innerHeight;
3422
- j(e.box, n), j(e.card, n), e.card.style.pointerEvents = n ? "auto" : "none";
3422
+ M(e.box, n), M(e.card, n), e.card.style.pointerEvents = n ? "auto" : "none";
3423
3423
  }
3424
3424
  }, ae = () => {
3425
3425
  if (m) {
@@ -3429,14 +3429,14 @@ function Xa(e = {}, t = !1) {
3429
3429
  let e = v.getBoundingClientRect();
3430
3430
  Oa(g, e), ja(r, _, e);
3431
3431
  let t = e.bottom >= 0 && e.right >= 0 && e.left <= r.innerWidth && e.top <= r.innerHeight;
3432
- j(g, t), j(_, t);
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 = P(y.x, y.y);
3439
+ let e = te(y.x, y.y);
3440
3440
  if (!e) F();
3441
3441
  else if (e !== v) R(e);
3442
3442
  else if (g && _) {
@@ -3483,7 +3483,7 @@ function Xa(e = {}, t = !1) {
3483
3483
  return;
3484
3484
  }
3485
3485
  if (e.preventDefault(), e.stopImmediatePropagation(), e.button === 0) {
3486
- let t = P(e.clientX, e.clientY);
3486
+ let t = te(e.clientX, e.clientY);
3487
3487
  t && W(t);
3488
3488
  }
3489
3489
  }
@@ -3496,14 +3496,14 @@ function Xa(e = {}, t = !1) {
3496
3496
  e.preventDefault(), e.stopImmediatePropagation();
3497
3497
  }
3498
3498
  }, me = () => {
3499
- m || (m = !0, k(), A(), 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, {
3499
+ m || (m = !0, A(), j(), n.body.classList.add(s), C = r.scrollX, w = r.scrollY, r.addEventListener("mousemove", le, !0), r.addEventListener("mouseout", q, !0), r.addEventListener("click", fe, !0), r.addEventListener("auxclick", pe, !0), r.addEventListener("scroll", de, {
3500
3500
  capture: !0,
3501
3501
  passive: !0
3502
3502
  }), r.addEventListener("resize", se, !0));
3503
3503
  }, he = () => {
3504
3504
  m && (m = !1, r.cancelAnimationFrame(b), b = 0, r.clearTimeout(x), r.clearTimeout(S), S = 0, r.removeEventListener("mousemove", le, !0), r.removeEventListener("mouseout", q, !0), r.removeEventListener("click", fe, !0), r.removeEventListener("auxclick", pe, !0), r.removeEventListener("scroll", de, !0), r.removeEventListener("resize", se, !0), F(), H(), g?.remove(), _?.remove(), g = null, _ = null, D.length = 0, O.length = 0, n.body.classList.remove(s));
3505
3505
  }, ge = () => {
3506
- he(), T?.(), T = null, h?.remove(), h = null, n.getElementById(o)?.remove(), ee instanceof r.ShadowRoot && ee.querySelector(`#${o}`)?.remove();
3506
+ he(), T?.(), T = null, h?.remove(), h = null, n.getElementById(o)?.remove(), k instanceof r.ShadowRoot && k.querySelector(`#${o}`)?.remove();
3507
3507
  };
3508
3508
  return {
3509
3509
  enable: me,
@@ -3520,7 +3520,7 @@ function Xa(e = {}, t = !1) {
3520
3520
  };
3521
3521
  }
3522
3522
  Xa({}, !0);
3523
- var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@layer properties;\n@layer theme, base, components, utilities;\n@layer theme {\n :root, :host {\n --msr-font-sans: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\",\n \"Noto Sans\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\",\n \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --msr-font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\",\n \"Courier New\", monospace;\n --msr-color-red-50: oklch(97.1% 0.013 17.38);\n --msr-color-red-200: oklch(88.5% 0.062 18.334);\n --msr-color-red-600: oklch(57.7% 0.245 27.325);\n --msr-color-black: #000;\n --msr-color-white: #fff;\n --msr-spacing: 0.25rem;\n --msr-font-weight-normal: 400;\n --msr-font-weight-medium: 500;\n --msr-font-weight-semibold: 600;\n --msr-radius-md: 0.375rem;\n --msr-radius-lg: 0.5rem;\n --msr-default-transition-duration: 150ms;\n --msr-default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --msr-default-font-family: var(--msr-font-sans);\n --msr-default-mono-font-family: var(--msr-font-mono);\n --msr-color-ink-50: #f8fafc;\n --msr-color-ink-200: #e2e8f0;\n --msr-color-ink-500: #64748b;\n --msr-color-ink-700: #334155;\n --msr-color-ink-900: #0f172a;\n }\n}\n@layer base {\n *, ::after, ::before, ::backdrop, ::file-selector-button {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n }\n html, :host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n font-family: var(--msr-default-font-family, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");\n font-feature-settings: var(--msr-default-font-feature-settings, normal);\n font-variation-settings: var(--msr-default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n h1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n b, strong {\n font-weight: bolder;\n }\n code, kbd, samp, pre {\n font-family: var(--msr-default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);\n font-feature-settings: var(--msr-default-mono-font-feature-settings, normal);\n font-variation-settings: var(--msr-default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n small {\n font-size: 80%;\n }\n sub, sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n :-moz-focusring:where(:not(iframe)) {\n outline: auto;\n }\n progress {\n vertical-align: baseline;\n }\n summary {\n display: list-item;\n }\n ol, ul, menu {\n list-style: none;\n }\n img, svg, video, canvas, audio, iframe, embed, object {\n display: block;\n vertical-align: middle;\n }\n img, video {\n max-width: 100%;\n height: auto;\n }\n button, input, select, optgroup, textarea, ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n }\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n ::placeholder {\n opacity: 1;\n }\n @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\n ::placeholder {\n color: currentcolor;\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n textarea {\n resize: vertical;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n ::-webkit-calendar-picker-indicator {\n line-height: 1;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n button, input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]), ::file-selector-button {\n appearance: button;\n }\n ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {\n height: auto;\n }\n [hidden]:where(:not([hidden=\"until-found\"])) {\n display: none !important;\n }\n}\n@layer utilities {\n .msr\\:pointer-events-auto {\n pointer-events: auto;\n }\n .msr\\:pointer-events-none {\n pointer-events: none;\n }\n .msr\\:absolute {\n position: absolute;\n }\n .msr\\:fixed {\n position: fixed;\n }\n .msr\\:relative {\n position: relative;\n }\n .msr\\:inset-0 {\n inset: 0px;\n }\n .msr\\:top-0 {\n top: 0px;\n }\n .msr\\:top-1\\/2 {\n top: calc(1 / 2 * 100%);\n }\n .msr\\:top-\\[18px\\] {\n top: 18px;\n }\n .msr\\:top-full {\n top: 100%;\n }\n .msr\\:right-0 {\n right: 0px;\n }\n .msr\\:right-2 {\n right: calc(var(--msr-spacing) * 2);\n }\n .msr\\:right-\\[8px\\] {\n right: 8px;\n }\n .msr\\:bottom-0 {\n bottom: 0px;\n }\n .msr\\:bottom-full {\n bottom: 100%;\n }\n .msr\\:left-0 {\n left: 0px;\n }\n .msr\\:left-1\\/2 {\n left: calc(1 / 2 * 100%);\n }\n .msr\\:left-\\[8px\\] {\n left: 8px;\n }\n .msr\\:left-\\[18px\\] {\n left: 18px;\n }\n .msr\\:z-10 {\n z-index: 10;\n }\n .msr\\:z-\\[60\\] {\n z-index: 60;\n }\n .msr\\:z-\\[70\\] {\n z-index: 70;\n }\n .msr\\:z-\\[80\\] {\n z-index: 80;\n }\n .msr\\:z-\\[90\\] {\n z-index: 90;\n }\n .msr\\:z-\\[94\\] {\n z-index: 94;\n }\n .msr\\:z-\\[95\\] {\n z-index: 95;\n }\n .msr\\:col-span-2 {\n grid-column: span 2 / span 2;\n }\n .msr\\:col-start-1 {\n grid-column-start: 1;\n }\n .msr\\:col-start-2 {\n grid-column-start: 2;\n }\n .msr\\:col-start-3 {\n grid-column-start: 3;\n }\n .msr\\:m-0 {\n margin: 0px;\n }\n .msr\\:mx-1 {\n margin-inline: var(--msr-spacing);\n }\n .msr\\:mt-1 {\n margin-top: var(--msr-spacing);\n }\n .msr\\:mt-1\\.5 {\n margin-top: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:mt-2 {\n margin-top: calc(var(--msr-spacing) * 2);\n }\n .msr\\:mb-1 {\n margin-bottom: var(--msr-spacing);\n }\n .msr\\:mb-2 {\n margin-bottom: calc(var(--msr-spacing) * 2);\n }\n .msr\\:-ml-1 {\n margin-left: calc(var(--msr-spacing) * -1);\n }\n .msr\\:ml-1 {\n margin-left: var(--msr-spacing);\n }\n .msr\\:ml-2 {\n margin-left: calc(var(--msr-spacing) * 2);\n }\n .msr\\:ml-6 {\n margin-left: calc(var(--msr-spacing) * 6);\n }\n .msr\\:box-border {\n box-sizing: border-box;\n }\n .msr\\:block {\n display: block;\n }\n .msr\\:flex {\n display: flex;\n }\n .msr\\:grid {\n display: grid;\n }\n .msr\\:inline-flex {\n display: inline-flex;\n }\n .msr\\:size-1\\.5 {\n width: calc(var(--msr-spacing) * 1.5);\n height: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:size-3 {\n width: calc(var(--msr-spacing) * 3);\n height: calc(var(--msr-spacing) * 3);\n }\n .msr\\:size-4 {\n width: calc(var(--msr-spacing) * 4);\n height: calc(var(--msr-spacing) * 4);\n }\n .msr\\:size-6 {\n width: calc(var(--msr-spacing) * 6);\n height: calc(var(--msr-spacing) * 6);\n }\n .msr\\:size-7 {\n width: calc(var(--msr-spacing) * 7);\n height: calc(var(--msr-spacing) * 7);\n }\n .msr\\:size-8 {\n width: calc(var(--msr-spacing) * 8);\n height: calc(var(--msr-spacing) * 8);\n }\n .msr\\:size-\\[10px\\] {\n width: 10px;\n height: 10px;\n }\n .msr\\:size-\\[18px\\] {\n width: 18px;\n height: 18px;\n }\n .msr\\:size-full {\n width: 100%;\n height: 100%;\n }\n .msr\\:h-5 {\n height: calc(var(--msr-spacing) * 5);\n }\n .msr\\:h-6 {\n height: calc(var(--msr-spacing) * 6);\n }\n .msr\\:h-7 {\n height: calc(var(--msr-spacing) * 7);\n }\n .msr\\:h-8 {\n height: calc(var(--msr-spacing) * 8);\n }\n .msr\\:h-20 {\n height: calc(var(--msr-spacing) * 20);\n }\n .msr\\:h-\\[14px\\] {\n height: 14px;\n }\n .msr\\:h-\\[18px\\] {\n height: 18px;\n }\n .msr\\:h-\\[19px\\] {\n height: 19px;\n }\n .msr\\:h-full {\n height: 100%;\n }\n .msr\\:h-px {\n height: 1px;\n }\n .msr\\:max-h-36 {\n max-height: calc(var(--msr-spacing) * 36);\n }\n .msr\\:max-h-\\[220px\\] {\n max-height: 220px;\n }\n .msr\\:max-h-\\[calc\\(100vh-16px\\)\\] {\n max-height: calc(100vh - 16px);\n }\n .msr\\:max-h-\\[min\\(70vh\\,34rem\\)\\] {\n max-height: min(70vh, 34rem);\n }\n .msr\\:max-h-\\[min\\(320px\\,calc\\(100vh-16px\\)\\)\\] {\n max-height: min(320px, calc(100vh - 16px));\n }\n .msr\\:min-h-0 {\n min-height: 0px;\n }\n .msr\\:w-0 {\n width: 0px;\n }\n .msr\\:w-3 {\n width: calc(var(--msr-spacing) * 3);\n }\n .msr\\:w-4 {\n width: calc(var(--msr-spacing) * 4);\n }\n .msr\\:w-5 {\n width: calc(var(--msr-spacing) * 5);\n }\n .msr\\:w-6 {\n width: calc(var(--msr-spacing) * 6);\n }\n .msr\\:w-9 {\n width: calc(var(--msr-spacing) * 9);\n }\n .msr\\:w-12 {\n width: calc(var(--msr-spacing) * 12);\n }\n .msr\\:w-44 {\n width: calc(var(--msr-spacing) * 44);\n }\n .msr\\:w-60 {\n width: calc(var(--msr-spacing) * 60);\n }\n .msr\\:w-\\[18px\\] {\n width: 18px;\n }\n .msr\\:w-\\[26px\\] {\n width: 26px;\n }\n .msr\\:w-\\[272px\\] {\n width: 272px;\n }\n .msr\\:w-full {\n width: 100%;\n }\n .msr\\:w-px {\n width: 1px;\n }\n .msr\\:max-w-0 {\n max-width: 0px;\n }\n .msr\\:max-w-20 {\n max-width: calc(var(--msr-spacing) * 20);\n }\n .msr\\:max-w-\\[calc\\(100vw-16px\\)\\] {\n max-width: calc(100vw - 16px);\n }\n .msr\\:min-w-0 {\n min-width: 0px;\n }\n .msr\\:min-w-36 {\n min-width: calc(var(--msr-spacing) * 36);\n }\n .msr\\:flex-1 {\n flex: 1;\n }\n .msr\\:flex-none {\n flex: none;\n }\n .msr\\:shrink-0 {\n flex-shrink: 0;\n }\n .msr\\:-translate-x-1 {\n --tw-translate-x: calc(var(--msr-spacing) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .msr\\:-translate-x-1\\/2 {\n --tw-translate-x: calc(calc(1 / 2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .msr\\:translate-x-0 {\n --tw-translate-x: 0px;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .msr\\:-translate-y-1\\/2 {\n --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .msr\\:-rotate-90 {\n rotate: calc(90deg * -1);\n }\n .msr\\:rotate-45 {\n rotate: 45deg;\n }\n .msr\\:rotate-90 {\n rotate: 90deg;\n }\n .msr\\:rotate-180 {\n rotate: 180deg;\n }\n .msr\\:rotate-\\[45deg\\] {\n rotate: 45deg;\n }\n .msr\\:rotate-\\[135deg\\] {\n rotate: 135deg;\n }\n .msr\\:cursor-crosshair {\n cursor: crosshair;\n }\n .msr\\:cursor-default {\n cursor: default;\n }\n .msr\\:cursor-pointer {\n cursor: pointer;\n }\n .msr\\:touch-none {\n touch-action: none;\n }\n .msr\\:resize-none {\n resize: none;\n }\n .msr\\:list-none {\n list-style-type: none;\n }\n .msr\\:appearance-none {\n appearance: none;\n }\n .msr\\:grid-cols-\\[78px_150px\\] {\n grid-template-columns: 78px 150px;\n }\n .msr\\:grid-cols-\\[78px_156px\\] {\n grid-template-columns: 78px 156px;\n }\n .msr\\:grid-cols-\\[78px_minmax\\(0\\,1fr\\)\\] {\n grid-template-columns: 78px minmax(0,1fr);\n }\n .msr\\:grid-cols-\\[minmax\\(0\\,1fr\\)_28px_34px\\] {\n grid-template-columns: minmax(0,1fr) 28px 34px;\n }\n .msr\\:flex-col {\n flex-direction: column;\n }\n .msr\\:items-center {\n align-items: center;\n }\n .msr\\:items-start {\n align-items: flex-start;\n }\n .msr\\:items-stretch {\n align-items: stretch;\n }\n .msr\\:justify-between {\n justify-content: space-between;\n }\n .msr\\:justify-center {\n justify-content: center;\n }\n .msr\\:justify-end {\n justify-content: flex-end;\n }\n .msr\\:gap-0 {\n gap: 0px;\n }\n .msr\\:gap-0\\.5 {\n gap: calc(var(--msr-spacing) * 0.5);\n }\n .msr\\:gap-1 {\n gap: var(--msr-spacing);\n }\n .msr\\:gap-1\\.5 {\n gap: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:gap-2 {\n gap: calc(var(--msr-spacing) * 2);\n }\n .msr\\:gap-3 {\n gap: calc(var(--msr-spacing) * 3);\n }\n .msr\\:gap-\\[2px\\] {\n gap: 2px;\n }\n .msr\\:gap-px {\n gap: 1px;\n }\n .msr\\:gap-x-3 {\n column-gap: calc(var(--msr-spacing) * 3);\n }\n .msr\\:gap-y-1 {\n row-gap: var(--msr-spacing);\n }\n .msr\\:self-center {\n align-self: center;\n }\n .msr\\:self-stretch {\n align-self: stretch;\n }\n .msr\\:justify-self-end {\n justify-self: flex-end;\n }\n .msr\\:truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .msr\\:overflow-auto {\n overflow: auto;\n }\n .msr\\:overflow-hidden {\n overflow: hidden;\n }\n .msr\\:overflow-visible {\n overflow: visible;\n }\n .msr\\:overflow-x-hidden {\n overflow-x: hidden;\n }\n .msr\\:overflow-y-auto {\n overflow-y: auto;\n }\n .msr\\:rounded {\n border-radius: 0.25rem;\n }\n .msr\\:rounded-\\[3px\\] {\n border-radius: 3px;\n }\n .msr\\:rounded-\\[5px\\] {\n border-radius: 5px;\n }\n .msr\\:rounded-\\[6px\\] {\n border-radius: 6px;\n }\n .msr\\:rounded-\\[7px\\] {\n border-radius: 7px;\n }\n .msr\\:rounded-\\[8px\\] {\n border-radius: 8px;\n }\n .msr\\:rounded-\\[10px\\] {\n border-radius: 10px;\n }\n .msr\\:rounded-\\[12px\\] {\n border-radius: 12px;\n }\n .msr\\:rounded-full {\n border-radius: calc(infinity * 1px);\n }\n .msr\\:rounded-lg {\n border-radius: var(--msr-radius-lg);\n }\n .msr\\:rounded-md {\n border-radius: var(--msr-radius-md);\n }\n .msr\\:rounded-none {\n border-radius: 0;\n }\n .msr\\:border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .msr\\:border-0 {\n border-style: var(--tw-border-style);\n border-width: 0px;\n }\n .msr\\:border-t {\n border-top-style: var(--tw-border-style);\n border-top-width: 1px;\n }\n .msr\\:border-t-2 {\n border-top-style: var(--tw-border-style);\n border-top-width: 2px;\n }\n .msr\\:border-r {\n border-right-style: var(--tw-border-style);\n border-right-width: 1px;\n }\n .msr\\:border-b {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n .msr\\:border-l {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n .msr\\:border-dashed {\n --tw-border-style: dashed;\n border-style: dashed;\n }\n .msr\\:border-dotted {\n --tw-border-style: dotted;\n border-style: dotted;\n }\n .msr\\:border-solid {\n --tw-border-style: solid;\n border-style: solid;\n }\n .msr\\:border-\\[\\#0d99ff\\] {\n border-color: #0d99ff;\n }\n .msr\\:border-\\[\\#2563eb\\]\\/70 {\n border-color: color-mix(in oklab, #2563eb 70%, transparent);\n }\n .msr\\:border-black\\/8 {\n border-color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--msr-color-black) 8%, transparent);\n }\n }\n .msr\\:border-black\\/10 {\n border-color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--msr-color-black) 10%, transparent);\n }\n }\n .msr\\:border-black\\/15 {\n border-color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--msr-color-black) 15%, transparent);\n }\n }\n .msr\\:border-ink-200 {\n border-color: var(--msr-color-ink-200);\n }\n .msr\\:border-ink-500 {\n border-color: var(--msr-color-ink-500);\n }\n .msr\\:border-ink-700 {\n border-color: var(--msr-color-ink-700);\n }\n .msr\\:border-red-200 {\n border-color: var(--msr-color-red-200);\n }\n .msr\\:border-transparent {\n border-color: transparent;\n }\n .msr\\:bg-\\[\\#0d99ff\\] {\n background-color: #0d99ff;\n }\n .msr\\:bg-\\[\\#0d99ff\\]\\/10 {\n background-color: color-mix(in oklab, #0d99ff 10%, transparent);\n }\n .msr\\:bg-\\[\\#2563eb\\] {\n background-color: #2563eb;\n }\n .msr\\:bg-\\[\\#fff\\] {\n background-color: #fff;\n }\n .msr\\:bg-black {\n background-color: var(--msr-color-black);\n }\n .msr\\:bg-black\\/10 {\n background-color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--msr-color-black) 10%, transparent);\n }\n }\n .msr\\:bg-ink-50 {\n background-color: var(--msr-color-ink-50);\n }\n .msr\\:bg-ink-50\\/40 {\n background-color: var(--msr-color-ink-50);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--msr-color-ink-50) 40%, transparent);\n }\n }\n .msr\\:bg-ink-900\\/90 {\n background-color: var(--msr-color-ink-900);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--msr-color-ink-900) 90%, transparent);\n }\n }\n .msr\\:bg-transparent {\n background-color: transparent;\n }\n .msr\\:bg-white {\n background-color: var(--msr-color-white);\n }\n .msr\\:bg-white\\/60 {\n background-color: var(--msr-color-white);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--msr-color-white) 60%, transparent);\n }\n }\n .msr\\:p-0 {\n padding: 0px;\n }\n .msr\\:p-1 {\n padding: var(--msr-spacing);\n }\n .msr\\:p-1\\.5 {\n padding: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:p-2 {\n padding: calc(var(--msr-spacing) * 2);\n }\n .msr\\:p-3 {\n padding: calc(var(--msr-spacing) * 3);\n }\n .msr\\:p-\\[2px\\] {\n padding: 2px;\n }\n .msr\\:p-px {\n padding: 1px;\n }\n .msr\\:px-0 {\n padding-inline: 0px;\n }\n .msr\\:px-0\\.5 {\n padding-inline: calc(var(--msr-spacing) * 0.5);\n }\n .msr\\:px-1 {\n padding-inline: var(--msr-spacing);\n }\n .msr\\:px-1\\.5 {\n padding-inline: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:px-2 {\n padding-inline: calc(var(--msr-spacing) * 2);\n }\n .msr\\:px-2\\.5 {\n padding-inline: calc(var(--msr-spacing) * 2.5);\n }\n .msr\\:py-0 {\n padding-block: 0px;\n }\n .msr\\:py-0\\.5 {\n padding-block: calc(var(--msr-spacing) * 0.5);\n }\n .msr\\:py-1 {\n padding-block: var(--msr-spacing);\n }\n .msr\\:py-1\\.5 {\n padding-block: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:py-2 {\n padding-block: calc(var(--msr-spacing) * 2);\n }\n .msr\\:pt-0\\.5 {\n padding-top: calc(var(--msr-spacing) * 0.5);\n }\n .msr\\:pt-2 {\n padding-top: calc(var(--msr-spacing) * 2);\n }\n .msr\\:pr-0 {\n padding-right: 0px;\n }\n .msr\\:pr-2 {\n padding-right: calc(var(--msr-spacing) * 2);\n }\n .msr\\:pr-6 {\n padding-right: calc(var(--msr-spacing) * 6);\n }\n .msr\\:pb-1 {\n padding-bottom: var(--msr-spacing);\n }\n .msr\\:pb-1\\.5 {\n padding-bottom: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:pb-2 {\n padding-bottom: calc(var(--msr-spacing) * 2);\n }\n .msr\\:text-center {\n text-align: center;\n }\n .msr\\:text-left {\n text-align: left;\n }\n .msr\\:font-mono {\n font-family: var(--msr-font-mono);\n }\n .msr\\:text-\\[9px\\] {\n font-size: 9px;\n }\n .msr\\:text-\\[10px\\] {\n font-size: 10px;\n }\n .msr\\:text-\\[11px\\] {\n font-size: 11px;\n }\n .msr\\:text-\\[12px\\] {\n font-size: 12px;\n }\n .msr\\:text-\\[14px\\] {\n font-size: 14px;\n }\n .msr\\:leading-4 {\n --tw-leading: calc(var(--msr-spacing) * 4);\n line-height: calc(var(--msr-spacing) * 4);\n }\n .msr\\:leading-\\[1\\.4\\] {\n --tw-leading: 1.4;\n line-height: 1.4;\n }\n .msr\\:leading-\\[1\\.45\\] {\n --tw-leading: 1.45;\n line-height: 1.45;\n }\n .msr\\:leading-\\[18px\\] {\n --tw-leading: 18px;\n line-height: 18px;\n }\n .msr\\:leading-none {\n --tw-leading: 1;\n line-height: 1;\n }\n .msr\\:font-medium {\n --tw-font-weight: var(--msr-font-weight-medium);\n font-weight: var(--msr-font-weight-medium);\n }\n .msr\\:font-normal {\n --tw-font-weight: var(--msr-font-weight-normal);\n font-weight: var(--msr-font-weight-normal);\n }\n .msr\\:font-semibold {\n --tw-font-weight: var(--msr-font-weight-semibold);\n font-weight: var(--msr-font-weight-semibold);\n }\n .msr\\:text-ellipsis {\n text-overflow: ellipsis;\n }\n .msr\\:whitespace-nowrap {\n white-space: nowrap;\n }\n .msr\\:whitespace-pre-wrap {\n white-space: pre-wrap;\n }\n .msr\\:text-\\[\\#64748b\\] {\n color: #64748b;\n }\n .msr\\:text-black {\n color: var(--msr-color-black);\n }\n .msr\\:text-black\\/30 {\n color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--msr-color-black) 30%, transparent);\n }\n }\n .msr\\:text-black\\/45 {\n color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--msr-color-black) 45%, transparent);\n }\n }\n .msr\\:text-ink-50 {\n color: var(--msr-color-ink-50);\n }\n .msr\\:text-ink-500 {\n color: var(--msr-color-ink-500);\n }\n .msr\\:text-ink-700 {\n color: var(--msr-color-ink-700);\n }\n .msr\\:text-ink-900 {\n color: var(--msr-color-ink-900);\n }\n .msr\\:text-red-600 {\n color: var(--msr-color-red-600);\n }\n .msr\\:text-white {\n color: var(--msr-color-white);\n }\n .msr\\:text-white\\/60 {\n color: var(--msr-color-white);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--msr-color-white) 60%, transparent);\n }\n }\n .msr\\:tabular-nums {\n --tw-numeric-spacing: tabular-nums;\n font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);\n }\n .msr\\:opacity-0 {\n opacity: 0%;\n }\n .msr\\:opacity-60 {\n opacity: 60%;\n }\n .msr\\:opacity-80 {\n opacity: 80%;\n }\n .msr\\:opacity-100 {\n opacity: 100%;\n }\n .msr\\:shadow-lg {\n --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:shadow-sm {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:outline {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n .msr\\:outline-transparent {\n outline-color: transparent;\n }\n .msr\\:transition-\\[max-width\\,opacity\\,transform\\,padding\\] {\n transition-property: max-width,opacity,transform,padding;\n transition-timing-function: var(--tw-ease, var(--msr-default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--msr-default-transition-duration));\n }\n .msr\\:transition-\\[width\\,opacity\\] {\n transition-property: width,opacity;\n transition-timing-function: var(--tw-ease, var(--msr-default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--msr-default-transition-duration));\n }\n .msr\\:transition-colors {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--msr-default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--msr-default-transition-duration));\n }\n .msr\\:transition-opacity {\n transition-property: opacity;\n transition-timing-function: var(--tw-ease, var(--msr-default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--msr-default-transition-duration));\n }\n .msr\\:transition-transform {\n transition-property: transform, translate, scale, rotate;\n transition-timing-function: var(--tw-ease, var(--msr-default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--msr-default-transition-duration));\n }\n .msr\\:transition-none {\n transition-property: none;\n }\n .msr\\:duration-150 {\n --tw-duration: 150ms;\n transition-duration: 150ms;\n }\n .msr\\:ease-\\[ease\\] {\n --tw-ease: ease;\n transition-timing-function: ease;\n }\n .msr\\:outline-none {\n --tw-outline-style: none;\n outline-style: none;\n }\n .msr\\:select-none {\n -webkit-user-select: none;\n user-select: none;\n }\n @media (hover: hover) {\n .msr\\:group-hover\\:border-ink-200:is(:where(.msr\\:group):hover *) {\n border-color: var(--msr-color-ink-200);\n }\n }\n .msr\\:focus-within\\:rounded-l-\\[5px\\]:focus-within {\n border-top-left-radius: 5px;\n border-bottom-left-radius: 5px;\n }\n .msr\\:focus-within\\:rounded-r-\\[5px\\]:focus-within {\n border-top-right-radius: 5px;\n border-bottom-right-radius: 5px;\n }\n .msr\\:focus-within\\:outline:focus-within {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n .msr\\:focus-within\\:outline-1:focus-within {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n .msr\\:focus-within\\:outline-offset-\\[-1px\\]:focus-within {\n outline-offset: -1px;\n }\n .msr\\:focus-within\\:outline-\\[\\#0d99ff\\]:focus-within {\n outline-color: #0d99ff;\n }\n .msr\\:focus-within\\:outline-\\[var\\(--msr-accent\\)\\]:focus-within {\n outline-color: var(--msr-accent);\n }\n @media (hover: hover) {\n .msr\\:hover\\:border-ink-200:hover {\n border-color: var(--msr-color-ink-200);\n }\n .msr\\:hover\\:bg-\\[\\#0b8eea\\]:hover {\n background-color: #0b8eea;\n }\n .msr\\:hover\\:bg-\\[\\#0d99ff\\]:hover {\n background-color: #0d99ff;\n }\n .msr\\:hover\\:bg-black\\/4:hover {\n background-color: var(--msr-color-black);\n }\n @supports (color: color-mix(in lab, red, red)) {\n .msr\\:hover\\:bg-black\\/4:hover {\n background-color: color-mix(in oklab, var(--msr-color-black) 4%, transparent);\n }\n }\n .msr\\:hover\\:bg-black\\/10:hover {\n background-color: var(--msr-color-black);\n }\n @supports (color: color-mix(in lab, red, red)) {\n .msr\\:hover\\:bg-black\\/10:hover {\n background-color: color-mix(in oklab, var(--msr-color-black) 10%, transparent);\n }\n }\n .msr\\:hover\\:bg-ink-50:hover {\n background-color: var(--msr-color-ink-50);\n }\n .msr\\:hover\\:bg-red-50:hover {\n background-color: var(--msr-color-red-50);\n }\n .msr\\:hover\\:text-ink-700:hover {\n color: var(--msr-color-ink-700);\n }\n .msr\\:hover\\:text-ink-900:hover {\n color: var(--msr-color-ink-900);\n }\n .msr\\:hover\\:text-white:hover {\n color: var(--msr-color-white);\n }\n .msr\\:hover\\:underline:hover {\n text-decoration-line: underline;\n }\n }\n .msr\\:focus\\:border-\\[\\#0d99ff\\]:focus {\n border-color: #0d99ff;\n }\n .msr\\:focus\\:shadow-\\[inset_0_0_0_1px_\\#0d99ff\\]:focus {\n --tw-shadow: inset 0 0 0 1px var(--tw-shadow-color, #0d99ff);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:focus\\:shadow-\\[inset_0_0_0_1px_var\\(--msr-accent\\)\\]:focus {\n --tw-shadow: inset 0 0 0 1px var(--tw-shadow-color, var(--msr-accent));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:focus\\:outline-none:focus {\n --tw-outline-style: none;\n outline-style: none;\n }\n .msr\\:focus-visible\\:border-\\[\\#0d99ff\\]:focus-visible {\n border-color: #0d99ff;\n }\n .msr\\:focus-visible\\:bg-\\[\\#0d99ff\\]:focus-visible {\n background-color: #0d99ff;\n }\n .msr\\:focus-visible\\:text-white:focus-visible {\n color: var(--msr-color-white);\n }\n .msr\\:focus-visible\\:shadow-\\[inset_0_0_0_1px_\\#0d99ff\\]:focus-visible {\n --tw-shadow: inset 0 0 0 1px var(--tw-shadow-color, #0d99ff);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:focus-visible\\:shadow-\\[inset_0_0_0_1px_\\#ef4444\\]:focus-visible {\n --tw-shadow: inset 0 0 0 1px var(--tw-shadow-color, #ef4444);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:focus-visible\\:ring-1:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:focus-visible\\:ring-\\[\\#0d99ff\\]\\/25:focus-visible {\n --tw-ring-color: color-mix(in oklab, #0d99ff 25%, transparent);\n }\n .msr\\:focus-visible\\:outline-none:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .msr\\:disabled\\:cursor-default:disabled {\n cursor: default;\n }\n .msr\\:disabled\\:opacity-40:disabled {\n opacity: 40%;\n }\n .msr\\:disabled\\:opacity-45:disabled {\n opacity: 45%;\n }\n @media (prefers-reduced-motion: reduce) {\n .msr\\:motion-reduce\\:transition-none {\n transition-property: none;\n }\n }\n}\n:root, :host {\n --color-ink-50: #f8fafc;\n --color-ink-200: #e2e8f0;\n --color-ink-500: #64748b;\n --color-ink-700: #334155;\n --color-ink-900: #0f172a;\n}\n:host {\n all: initial;\n display: block;\n color-scheme: light;\n color: #0f172a;\n font-family: ui-sans-serif, system-ui, sans-serif;\n font-size: 16px;\n font-weight: 400;\n line-height: 1.5;\n letter-spacing: normal;\n direction: ltr;\n --msr-spacing: 4px;\n}\n*, *::before, *::after {\n box-sizing: border-box;\n}\n@layer base {\n *, ::before, ::after, ::backdrop {\n --tw-border-style: solid;\n --tw-outline-style: solid;\n --tw-shadow: 0 0 #0000;\n --tw-inset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n }\n button, input, select, textarea {\n appearance: none;\n background-color: transparent;\n padding: 0;\n font: inherit;\n color: inherit;\n letter-spacing: inherit;\n }\n}\n.mesurer-toolbar-surface {\n box-shadow: 0 0 0.5px rgba(0, 0, 0, 0.18), 0 3px 8px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.1);\n}\n.mesurer-menu-surface {\n box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);\n}\n.mesurer-color-picker {\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n}\n.mesurer-settings-tabs {\n box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.08);\n}\n.mesurer-settings-tab[aria-selected=\"true\"] {\n box-shadow: 0 0 0 1px rgba(15, 23, 42, 0.12);\n}\n.mesurer-switch-track {\n box-sizing: border-box;\n border: 1px solid #e2e8f0;\n}\n.mesurer-switch-track[data-checked=\"true\"] {\n border-color: #0d99ff;\n}\n.mesurer-control-shell {\n border: 1px solid transparent;\n}\n.mesurer-control-shell:hover {\n border-color: #e2e8f0;\n}\n.mesurer-control-focus:focus-within {\n outline: 1px solid #0d99ff;\n outline-offset: -1px;\n}\n.mesurer-root {\n --msr-spacing: 4px;\n}\nbody [data-mesurer-native-scroll-anchor=\"box\"][data-mesurer-nested-scroll-compensation=\"true\"] {\n position: absolute !important;\n left: calc(anchor(left) + var(--mesurer-nested-scroll-x, 0px)) !important;\n top: calc(anchor(top) + var(--mesurer-nested-scroll-y, 0px)) !important;\n}\nbody [data-mesurer-native-scroll-anchor=\"label\"][data-mesurer-nested-scroll-compensation=\"true\"] {\n position: absolute !important;\n left: calc(anchor(center) + var(--mesurer-nested-scroll-x, 0px)) !important;\n top: calc(anchor(bottom) + 2px + var(--mesurer-nested-scroll-y, 0px)) !important;\n}\nbody [data-mesurer-native-scroll-anchor=\"offset\"][data-mesurer-nested-scroll-compensation=\"true\"] {\n position: absolute !important;\n left: calc(anchor(left) + var(--mesurer-native-anchor-x, 0px) + var(--mesurer-nested-scroll-x, 0px)) !important;\n top: calc(anchor(top) + var(--mesurer-native-anchor-y, 0px) + var(--mesurer-nested-scroll-y, 0px)) !important;\n}\n[data-mesurer-text-edit-ring=\"true\"], [data-mesurer-text-selection-highlight=\"true\"], [data-mesurer-text-caret=\"true\"] {\n z-index: 2147482900 !important;\n}\n[data-mesurer-text-inspector-placement-shell=\"true\"], .mesurer-ti-card {\n z-index: 2147483647 !important;\n}\n[data-mesurer-context-root=\"true\"] [data-mesurer-annotation-scroll-mode=\"document\"] {\n position: absolute !important;\n}\n[data-mesurer-annotation-scroll-mode=\"native-anchor\"] {\n position: fixed !important;\n}\n[data-mesurer-native-scroll-anchor=\"offset\"][data-mesurer-nested-scroll-compensation=\"true\"][data-mesurer-annotation-scroll-mode=\"native-anchor\"] {\n position: fixed !important;\n}\n[data-mesurer-annotation-badge=\"true\"] {\n width: 20px !important;\n height: 20px !important;\n transform: none !important;\n transition: width 150ms ease, height 150ms ease, background 150ms ease, color 150ms ease, box-shadow 150ms ease !important;\n}\n[data-mesurer-annotation-marker=\"true\"][data-mesurer-annotation-highlighted=\"true\"] > [data-mesurer-annotation-badge=\"true\"] {\n width: 24px !important;\n height: 24px !important;\n}\n[data-mesurer-root=\"true\"][data-mesurer-direct-text-edit-active=\"true\"] [data-mesurer-annotation-trigger=\"true\"], [data-mesurer-context-root=\"true\"][data-mesurer-direct-text-edit-active=\"true\"] [data-mesurer-annotation-trigger=\"true\"] {\n display: none !important;\n}\n[data-mesurer-plugin-settings] [role=\"switch\"] {\n grid-template-columns: minmax(0, 1fr) auto;\n}\n[data-mesurer-plugin-settings] [role=\"switch\"] > span:first-child {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n[data-mesurer-plugin-settings-disclosure=\"plugins\"] {\n width: calc(100% + 16px);\n margin-inline: -8px;\n}\n.mesurer-solid-root {\n position: fixed;\n inset: 0;\n z-index: 2147483000;\n pointer-events: none;\n --msr-spacing: 4px;\n}\n.mesurer-solid-root [role=\"slider\"] {\n border: 0;\n}\n[data-mesurer-distance-kind=\"selection-spacing\"][data-mesurer-distance-active=\"true\"] [data-mesurer-distance-hover-target=\"true\"] {\n opacity: 1 !important;\n}\n[data-mesurer-distance-kind=\"selection-spacing\"][data-mesurer-distance-active=\"true\"]:has([data-mesurer-distance-label-axis=\"x\"]:hover) [data-mesurer-distance-line^=\"vertical\"], [data-mesurer-distance-kind=\"selection-spacing\"][data-mesurer-distance-active=\"true\"]:has([data-mesurer-distance-label-axis=\"y\"]:hover) [data-mesurer-distance-line^=\"horizontal\"], [data-mesurer-distance-kind=\"selection-spacing\"][data-mesurer-distance-active=\"true\"]:has([data-mesurer-distance-label-axis]:hover) [data-mesurer-distance-connector=\"true\"] {\n opacity: 0.16 !important;\n}\nbody.mesurer-solid-xray * {\n outline: solid 1px blue !important;\n}\nbody.mesurer-solid-xray [data-mesurer-root], body.mesurer-solid-xray [data-mesurer-root] *, body.mesurer-solid-xray [data-mesurer-inspector-ui], body.mesurer-solid-xray [data-mesurer-inspector-ui] *, body.mesurer-solid-xray .mesurer-toolbar-surface, body.mesurer-solid-xray .mesurer-toolbar-surface *, body.mesurer-solid-xray .mesurer-ti-box, body.mesurer-solid-xray .mesurer-ti-card, body.mesurer-solid-xray .mesurer-ti-card *, body.mesurer-solid-xray .mesurer-ti-close {\n outline: none !important;\n}\n[data-mesurer-toolbar=\"true\"] > div:has(> [data-mesurer-toolbar-compact-item]) {\n transition: padding-inline 150ms ease;\n}\n[data-mesurer-toolbar=\"true\"][data-mesurer-toolbar-compact=\"true\"] > div:has(> [data-mesurer-toolbar-compact-item]):not(:has(> [data-mesurer-toolbar-compact-item][data-visible=\"true\"])) {\n padding-inline: 0;\n}\n[data-mesurer-selected-measurement=\"true\"]:has(> [data-mesurer-native-scroll-anchor=\"box\"]) {\n display: contents !important;\n}\n@media (prefers-reduced-motion: reduce) {\n [data-mesurer-toolbar=\"true\"] > div:has(> [data-mesurer-toolbar-compact-item]) {\n transition: none;\n }\n [data-mesurer-annotation-badge=\"true\"] {\n transition: none !important;\n }\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) {\n --msr-accent: #0d99ff;\n --msr-surface: #fff;\n --msr-surface-raised: #fff;\n --msr-surface-muted: #f8fafc;\n --msr-content: #18181b;\n --msr-color-white: #fff;\n --msr-color-black: #000;\n --msr-color-ink-50: #f8fafc;\n --msr-color-ink-100: #f1f5f9;\n --msr-color-ink-200: #e2e8f0;\n --msr-color-ink-300: #cbd5e1;\n --msr-color-ink-500: #64748b;\n --msr-color-ink-700: #334155;\n --msr-color-ink-900: #18181b;\n --color-ink-50: var(--msr-color-ink-50);\n --color-ink-100: var(--msr-color-ink-100);\n --color-ink-200: var(--msr-color-ink-200);\n --color-ink-300: var(--msr-color-ink-300);\n --color-ink-500: var(--msr-color-ink-500);\n --color-ink-700: var(--msr-color-ink-700);\n --color-ink-900: var(--msr-color-ink-900);\n --msr-danger-bg: #fef2f2;\n --msr-danger-border: #fecaca;\n --msr-danger-text: #dc2626;\n --msr-danger-solid-bg: #dc2626;\n --msr-danger-solid-hover: #b91c1c;\n --msr-danger-solid-text: #fff;\n --color-red-50: var(--msr-danger-bg);\n --color-red-200: var(--msr-danger-border);\n --color-red-600: var(--msr-danger-text);\n --color-red-700: #b91c1c;\n --msr-control-thumb: #fff;\n --msr-slider-track: rgba(15, 23, 42, 0.16);\n --msr-shadow-toolbar: 0 0 0.4px rgba(0, 0, 0, 0.22),\n 0 6px 18px rgba(0, 0, 0, 0.03),\n 0 3px 9px rgba(0, 0, 0, 0.06),\n 0 1px 1px rgba(0, 0, 0, 0.06);\n --msr-shadow-floating: 0 0 0 0.4px rgba(0, 0, 0, 0.22),\n 0 6px 18px rgba(0, 0, 0, 0.03),\n 0 3px 9px rgba(0, 0, 0, 0.06),\n 0 1px 1px rgba(0, 0, 0, 0.06);\n --msr-shadow-select-menu: var(--msr-shadow-floating);\n color: var(--msr-content);\n color-scheme: light;\n}\n:where( [data-mesurer-root=\"true\"][data-theme=\"dark\"], [data-mesurer-inspector-ui=\"true\"][data-theme=\"dark\"] ) {\n --msr-accent: #0c8ce9;\n --msr-surface: #323232;\n --msr-surface-raised: #3a3a3a;\n --msr-surface-muted: #3a3a3a;\n --msr-content: #f5f5f5;\n --msr-color-white: #f5f5f5;\n --msr-color-black: #171717;\n --msr-color-ink-50: #3a3a3a;\n --msr-color-ink-100: #414141;\n --msr-color-ink-200: #4a4a4a;\n --msr-color-ink-300: #5a5a5a;\n --msr-color-ink-500: #a0a0a0;\n --msr-color-ink-700: #dedede;\n --msr-color-ink-900: #f5f5f5;\n --msr-danger-bg: #3f2020;\n --msr-danger-border: #7f3f46;\n --msr-danger-text: #f87171;\n --msr-danger-solid-bg: #c95058;\n --msr-danger-solid-hover: #b7424b;\n --msr-danger-solid-text: #f5f5f5;\n --color-red-700: #fca5a5;\n --msr-control-thumb: #f4f4f5;\n --msr-slider-track: rgba(245, 245, 245, 0.24);\n --msr-shadow-toolbar: 0 0 0.4px lch(100% 0 0 / 0.10),\n 0 3px 8px lch(0% 0 0 / 0.125),\n 0 2px 5px lch(0% 0 0 / 0.125),\n 0 1px 1px lch(0% 0 0 / 0.125);\n --msr-shadow-floating: 0 0 0 0.4px lch(100% 0 0 / 0.05),\n 0 4px 12px lch(0% 0 0 / 0.12),\n 0 1px 3px lch(0% 0 0 / 0.10);\n --msr-shadow-select-menu: 0 0 0 0.4px lch(100% 0 0 / 0.14),\n 0 4px 12px lch(0% 0 0 / 0.22),\n 0 1px 3px lch(0% 0 0 / 0.18);\n color-scheme: dark;\n}\n@media (prefers-color-scheme: dark) {\n :where( [data-mesurer-root=\"true\"][data-theme=\"system\"], [data-mesurer-inspector-ui=\"true\"][data-theme=\"system\"] ) {\n --msr-accent: #0c8ce9;\n --msr-surface: #323232;\n --msr-surface-raised: #3a3a3a;\n --msr-surface-muted: #3a3a3a;\n --msr-content: #f5f5f5;\n --msr-color-white: #f5f5f5;\n --msr-color-black: #171717;\n --msr-color-ink-50: #3a3a3a;\n --msr-color-ink-100: #414141;\n --msr-color-ink-200: #4a4a4a;\n --msr-color-ink-300: #5a5a5a;\n --msr-color-ink-500: #a0a0a0;\n --msr-color-ink-700: #dedede;\n --msr-color-ink-900: #f5f5f5;\n --msr-danger-bg: #3f2020;\n --msr-danger-border: #7f3f46;\n --msr-danger-text: #f87171;\n --msr-danger-solid-bg: #c95058;\n --msr-danger-solid-hover: #b7424b;\n --msr-danger-solid-text: #f5f5f5;\n --color-red-700: #fca5a5;\n --msr-control-thumb: #f4f4f5;\n --msr-slider-track: rgba(245, 245, 245, 0.24);\n --msr-shadow-toolbar: 0 0 0.4px lch(100% 0 0 / 0.10),\n 0 3px 8px lch(0% 0 0 / 0.125),\n 0 2px 5px lch(0% 0 0 / 0.125),\n 0 1px 1px lch(0% 0 0 / 0.125);\n --msr-shadow-floating: 0 0 0 0.4px lch(100% 0 0 / 0.05),\n 0 4px 12px lch(0% 0 0 / 0.12),\n 0 1px 3px lch(0% 0 0 / 0.10);\n --msr-shadow-select-menu: 0 0 0 0.4px lch(100% 0 0 / 0.14),\n 0 4px 12px lch(0% 0 0 / 0.22),\n 0 1px 3px lch(0% 0 0 / 0.18);\n color-scheme: dark;\n }\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:bg-white\"], :where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:bg-[#fff]\"] {\n background-color: var(--msr-surface) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:text-black\"] {\n color: var(--msr-content) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:hover:bg-black/4\"]:hover, :where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:hover:bg-black/5\"]:hover {\n background-color: var(--msr-content) !important;\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in srgb, var(--msr-content) 6%, transparent) !important;\n }\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) .mesurer-toolbar-surface {\n background-color: var(--msr-surface) !important;\n box-shadow: var(--msr-shadow-toolbar) !important;\n color: var(--msr-content);\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) :is( .mesurer-menu-surface, .mesurer-color-picker, .mesurer-ti-card, [data-mesurer-text-inspector-info=\"true\"], [data-mesurer-annotation-panel=\"true\"], [data-mesurer-annotation-composer=\"true\"] ) {\n background-color: var(--msr-surface-raised) !important;\n color: var(--msr-content) !important;\n box-shadow: var(--msr-shadow-floating) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) .mesurer-switch-track[data-checked=\"false\"], :where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) .mesurer-control-shell {\n background-color: var(--msr-surface-muted) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) .mesurer-switch-track > span {\n background-color: var(--msr-control-thumb) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) :is(.mesurer-settings-select, .mesurer-settings-select-menu) {\n background-color: var(--msr-surface-raised) !important;\n border-color: var(--msr-color-ink-200) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [data-mesurer-rulers=\"true\"] {\n color: var(--msr-color-ink-500) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [data-slider-container=\"true\"] > div:first-child {\n background-color: var(--msr-slider-track) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:bg-[#0d99ff]\"] {\n background-color: var(--msr-accent) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:border-[#0d99ff]\"] {\n border-color: var(--msr-accent) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:hover:bg-[#0d99ff]\"]:hover, :where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:focus-visible:bg-[#0d99ff]\"]:focus-visible {\n background-color: var(--msr-accent) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:text-white\"] {\n color: var(--msr-color-white) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [data-slider-thumb=\"true\"]:focus-visible {\n box-shadow: 0 0 0 1px var(--msr-accent) !important;\n @supports (color: color-mix(in lab, red, red)) {\n box-shadow: 0 0 0 1px color-mix(in srgb, var(--msr-accent) 25%, transparent) !important;\n }\n}\n:where([data-mesurer-root=\"true\"], [data-mesurer-inspector-ui=\"true\"]) {\n --msr-radius-control: 5px;\n}\n@layer utilities {\n .msr\\:rounded-control {\n border-radius: var(--msr-radius-control);\n }\n}\n.mesurer-thin-scrollbar {\n scrollbar-width: thin;\n scrollbar-color: var(--msr-color-ink-200) transparent;\n}\n.mesurer-thin-scrollbar::-webkit-scrollbar {\n width: 4px;\n height: 4px;\n}\n.mesurer-thin-scrollbar::-webkit-scrollbar-track {\n background: transparent;\n}\n.mesurer-thin-scrollbar::-webkit-scrollbar-thumb {\n background: var(--msr-color-ink-200);\n border-radius: var(--msr-radius-control);\n}\n.mesurer-thin-scrollbar:hover {\n scrollbar-color: var(--msr-color-ink-300) transparent;\n}\n.mesurer-thin-scrollbar:hover::-webkit-scrollbar-thumb {\n background: var(--msr-color-ink-300);\n}\n.mesurer-thin-scrollbar::-webkit-scrollbar-corner {\n background: transparent;\n}\n.mesurer-toolbar-mode-switch {\n position: relative;\n z-index: 1;\n isolation: isolate;\n border-radius: 5px;\n background: transparent;\n}\n.mesurer-toolbar-mode-switch-pill {\n position: absolute;\n top: 2px;\n left: 2px;\n z-index: 0;\n width: 28px;\n height: 28px;\n border-radius: 3px;\n background: var(--msr-color-ink-200, #e2e8f0);\n transform: translateX(0);\n}\n.mesurer-toolbar-mode-switch[data-value=\"edit\"] .mesurer-toolbar-mode-switch-pill {\n transform: translateX(30px);\n}\n.mesurer-toolbar-mode-switch > :not(.mesurer-toolbar-mode-switch-pill) {\n position: relative;\n z-index: 1;\n}\n.mesurer-toolbar-mode-button {\n display: flex;\n width: 28px;\n height: 28px;\n align-items: center;\n justify-content: center;\n border-radius: 3px;\n color: var(--msr-color-ink-700, #334155);\n outline: none;\n}\n.mesurer-toolbar-mode-button[aria-pressed=\"true\"] {\n color: var(--msr-color-ink-900, #18181b);\n}\n.mesurer-toolbar-mode-button[aria-pressed=\"false\"]:not(:disabled):hover {\n background: var(--msr-color-ink-200, #e2e8f0);\n @supports (color: color-mix(in lab, red, red)) {\n background: color-mix(in srgb, var(--msr-color-ink-200, #e2e8f0) 50%, transparent);\n }\n}\n.mesurer-toolbar-mode-button:focus-visible {\n outline: 1px solid var(--msr-color-ink-500, #64748b);\n outline-offset: 1px;\n}\n.mesurer-toolbar-mode-button:disabled {\n cursor: default;\n opacity: 0.35;\n}\n.mesurer-toolbar-mode-stage {\n --msr-select-mode-w: 0px;\n --msr-edit-mode-w: 0px;\n position: relative;\n flex: none;\n width: var(--msr-select-mode-w);\n overflow: visible;\n}\n.mesurer-toolbar-mode-stage[data-mode=\"edit\"] {\n width: var(--msr-edit-mode-w);\n}\n.mesurer-toolbar-mode-track {\n display: flex;\n width: max-content;\n align-items: stretch;\n transform: translateX(0);\n}\n.mesurer-toolbar-mode-stage[data-mode=\"edit\"] .mesurer-toolbar-mode-track {\n transform: translateX(calc(-1 * var(--msr-select-mode-w)));\n}\n.mesurer-toolbar-mode-slot {\n flex: none;\n width: var(--msr-select-mode-w);\n}\n.mesurer-toolbar-mode-slot[data-mode=\"edit\"] {\n width: var(--msr-edit-mode-w);\n}\n.mesurer-toolbar-mode-panel {\n display: flex;\n width: max-content;\n align-items: stretch;\n}\n.mesurer-toolbar-mode-slot[data-open=\"false\"] {\n visibility: hidden;\n pointer-events: none;\n}\n.mesurer-toolbar-mode-stage[data-mode-motion=\"true\"] {\n overflow: hidden;\n}\n.mesurer-toolbar-mode-stage[data-mode-motion=\"true\"] .mesurer-toolbar-mode-slot[data-open=\"false\"] {\n visibility: visible;\n}\n.mesurer-toolbar-mode-stage:has( .mesurer-toolbar-mode-slot[data-open=\"true\"] [role=\"menu\"], .mesurer-toolbar-mode-slot[data-open=\"true\"] [role=\"dialog\"] ) {\n overflow: visible;\n}\n.mesurer-toolbar-mode-stage[data-ready=\"true\"], .mesurer-toolbar-mode-stage[data-ready=\"true\"] .mesurer-toolbar-mode-track {\n transition-duration: 150ms;\n transition-timing-function: ease;\n}\n.mesurer-toolbar-mode-stage[data-ready=\"true\"] {\n transition-property: width;\n}\n.mesurer-toolbar-mode-stage[data-compact-motion=\"true\"] {\n transition-property: none;\n}\n.mesurer-toolbar-mode-stage[data-ready=\"true\"] .mesurer-toolbar-mode-track {\n transition-property: transform;\n}\n.mesurer-toolbar-mode-switch {\n --msr-toolbar-mode-motion: 150ms ease;\n}\n.mesurer-toolbar-mode-switch-pill {\n transition: transform var(--msr-toolbar-mode-motion);\n}\n@media (prefers-reduced-motion: reduce) {\n .mesurer-toolbar-mode-stage, .mesurer-toolbar-mode-track, .mesurer-toolbar-mode-switch-pill {\n transition: none !important;\n }\n}\n@property --tw-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-border-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-leading {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-font-weight {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ordinal {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-slashed-zero {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-figure {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-spacing {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-fraction {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-inset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-ring-inset {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-offset-width {\n syntax: \"<length>\";\n inherits: false;\n initial-value: 0px;\n}\n@property --tw-ring-offset-color {\n syntax: \"*\";\n inherits: false;\n initial-value: #fff;\n}\n@property --tw-ring-offset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-outline-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-duration {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ease {\n syntax: \"*\";\n inherits: false;\n}\n@layer properties {\n @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n *, ::before, ::after, ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-border-style: solid;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-ordinal: initial;\n --tw-slashed-zero: initial;\n --tw-numeric-figure: initial;\n --tw-numeric-spacing: initial;\n --tw-numeric-fraction: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-outline-style: solid;\n --tw-duration: initial;\n --tw-ease: initial;\n }\n }\n}\n", Qa = {
3523
+ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@layer properties;\n@layer theme, base, components, utilities;\n@layer theme {\n :root, :host {\n --msr-font-sans: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\",\n \"Noto Sans\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\",\n \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --msr-font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\",\n \"Courier New\", monospace;\n --msr-color-red-50: oklch(97.1% 0.013 17.38);\n --msr-color-red-200: oklch(88.5% 0.062 18.334);\n --msr-color-red-600: oklch(57.7% 0.245 27.325);\n --msr-color-black: #000;\n --msr-color-white: #fff;\n --msr-spacing: 0.25rem;\n --msr-font-weight-normal: 400;\n --msr-font-weight-medium: 500;\n --msr-font-weight-semibold: 600;\n --msr-radius-md: 0.375rem;\n --msr-radius-lg: 0.5rem;\n --msr-default-transition-duration: 150ms;\n --msr-default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --msr-default-font-family: var(--msr-font-sans);\n --msr-default-mono-font-family: var(--msr-font-mono);\n --msr-color-ink-50: #f8fafc;\n --msr-color-ink-200: #e2e8f0;\n --msr-color-ink-500: #64748b;\n --msr-color-ink-700: #334155;\n --msr-color-ink-900: #0f172a;\n }\n}\n@layer base {\n *, ::after, ::before, ::backdrop, ::file-selector-button {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n }\n html, :host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n font-family: var(--msr-default-font-family, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");\n font-feature-settings: var(--msr-default-font-feature-settings, normal);\n font-variation-settings: var(--msr-default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n h1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n b, strong {\n font-weight: bolder;\n }\n code, kbd, samp, pre {\n font-family: var(--msr-default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);\n font-feature-settings: var(--msr-default-mono-font-feature-settings, normal);\n font-variation-settings: var(--msr-default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n small {\n font-size: 80%;\n }\n sub, sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n :-moz-focusring:where(:not(iframe)) {\n outline: auto;\n }\n progress {\n vertical-align: baseline;\n }\n summary {\n display: list-item;\n }\n ol, ul, menu {\n list-style: none;\n }\n img, svg, video, canvas, audio, iframe, embed, object {\n display: block;\n vertical-align: middle;\n }\n img, video {\n max-width: 100%;\n height: auto;\n }\n button, input, select, optgroup, textarea, ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n }\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n ::placeholder {\n opacity: 1;\n }\n @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\n ::placeholder {\n color: currentcolor;\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n textarea {\n resize: vertical;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n ::-webkit-calendar-picker-indicator {\n line-height: 1;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n button, input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]), ::file-selector-button {\n appearance: button;\n }\n ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {\n height: auto;\n }\n [hidden]:where(:not([hidden=\"until-found\"])) {\n display: none !important;\n }\n}\n@layer utilities {\n .msr\\:pointer-events-auto {\n pointer-events: auto;\n }\n .msr\\:pointer-events-none {\n pointer-events: none;\n }\n .msr\\:absolute {\n position: absolute;\n }\n .msr\\:fixed {\n position: fixed;\n }\n .msr\\:relative {\n position: relative;\n }\n .msr\\:inset-0 {\n inset: 0px;\n }\n .msr\\:top-0 {\n top: 0px;\n }\n .msr\\:top-1\\/2 {\n top: calc(1 / 2 * 100%);\n }\n .msr\\:top-\\[18px\\] {\n top: 18px;\n }\n .msr\\:top-full {\n top: 100%;\n }\n .msr\\:right-0 {\n right: 0px;\n }\n .msr\\:right-2 {\n right: calc(var(--msr-spacing) * 2);\n }\n .msr\\:right-\\[8px\\] {\n right: 8px;\n }\n .msr\\:bottom-0 {\n bottom: 0px;\n }\n .msr\\:bottom-full {\n bottom: 100%;\n }\n .msr\\:left-0 {\n left: 0px;\n }\n .msr\\:left-1\\/2 {\n left: calc(1 / 2 * 100%);\n }\n .msr\\:left-\\[8px\\] {\n left: 8px;\n }\n .msr\\:left-\\[18px\\] {\n left: 18px;\n }\n .msr\\:z-10 {\n z-index: 10;\n }\n .msr\\:z-\\[60\\] {\n z-index: 60;\n }\n .msr\\:z-\\[70\\] {\n z-index: 70;\n }\n .msr\\:z-\\[80\\] {\n z-index: 80;\n }\n .msr\\:z-\\[90\\] {\n z-index: 90;\n }\n .msr\\:z-\\[94\\] {\n z-index: 94;\n }\n .msr\\:z-\\[95\\] {\n z-index: 95;\n }\n .msr\\:col-span-2 {\n grid-column: span 2 / span 2;\n }\n .msr\\:col-start-1 {\n grid-column-start: 1;\n }\n .msr\\:col-start-3 {\n grid-column-start: 3;\n }\n .msr\\:col-end-3 {\n grid-column-end: 3;\n }\n .msr\\:m-0 {\n margin: 0px;\n }\n .msr\\:mx-1 {\n margin-inline: var(--msr-spacing);\n }\n .msr\\:mt-1 {\n margin-top: var(--msr-spacing);\n }\n .msr\\:mt-1\\.5 {\n margin-top: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:mt-2 {\n margin-top: calc(var(--msr-spacing) * 2);\n }\n .msr\\:mb-1 {\n margin-bottom: var(--msr-spacing);\n }\n .msr\\:mb-2 {\n margin-bottom: calc(var(--msr-spacing) * 2);\n }\n .msr\\:-ml-1 {\n margin-left: calc(var(--msr-spacing) * -1);\n }\n .msr\\:ml-1 {\n margin-left: var(--msr-spacing);\n }\n .msr\\:ml-2 {\n margin-left: calc(var(--msr-spacing) * 2);\n }\n .msr\\:ml-6 {\n margin-left: calc(var(--msr-spacing) * 6);\n }\n .msr\\:box-border {\n box-sizing: border-box;\n }\n .msr\\:block {\n display: block;\n }\n .msr\\:flex {\n display: flex;\n }\n .msr\\:grid {\n display: grid;\n }\n .msr\\:inline-flex {\n display: inline-flex;\n }\n .msr\\:size-1\\.5 {\n width: calc(var(--msr-spacing) * 1.5);\n height: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:size-3 {\n width: calc(var(--msr-spacing) * 3);\n height: calc(var(--msr-spacing) * 3);\n }\n .msr\\:size-4 {\n width: calc(var(--msr-spacing) * 4);\n height: calc(var(--msr-spacing) * 4);\n }\n .msr\\:size-6 {\n width: calc(var(--msr-spacing) * 6);\n height: calc(var(--msr-spacing) * 6);\n }\n .msr\\:size-7 {\n width: calc(var(--msr-spacing) * 7);\n height: calc(var(--msr-spacing) * 7);\n }\n .msr\\:size-8 {\n width: calc(var(--msr-spacing) * 8);\n height: calc(var(--msr-spacing) * 8);\n }\n .msr\\:size-\\[10px\\] {\n width: 10px;\n height: 10px;\n }\n .msr\\:size-\\[18px\\] {\n width: 18px;\n height: 18px;\n }\n .msr\\:size-full {\n width: 100%;\n height: 100%;\n }\n .msr\\:h-5 {\n height: calc(var(--msr-spacing) * 5);\n }\n .msr\\:h-6 {\n height: calc(var(--msr-spacing) * 6);\n }\n .msr\\:h-7 {\n height: calc(var(--msr-spacing) * 7);\n }\n .msr\\:h-8 {\n height: calc(var(--msr-spacing) * 8);\n }\n .msr\\:h-20 {\n height: calc(var(--msr-spacing) * 20);\n }\n .msr\\:h-\\[14px\\] {\n height: 14px;\n }\n .msr\\:h-\\[18px\\] {\n height: 18px;\n }\n .msr\\:h-\\[19px\\] {\n height: 19px;\n }\n .msr\\:h-full {\n height: 100%;\n }\n .msr\\:h-px {\n height: 1px;\n }\n .msr\\:max-h-36 {\n max-height: calc(var(--msr-spacing) * 36);\n }\n .msr\\:max-h-\\[220px\\] {\n max-height: 220px;\n }\n .msr\\:max-h-\\[calc\\(100vh-16px\\)\\] {\n max-height: calc(100vh - 16px);\n }\n .msr\\:max-h-\\[min\\(70vh\\,34rem\\)\\] {\n max-height: min(70vh, 34rem);\n }\n .msr\\:max-h-\\[min\\(320px\\,calc\\(100vh-16px\\)\\)\\] {\n max-height: min(320px, calc(100vh - 16px));\n }\n .msr\\:min-h-0 {\n min-height: 0px;\n }\n .msr\\:w-0 {\n width: 0px;\n }\n .msr\\:w-3 {\n width: calc(var(--msr-spacing) * 3);\n }\n .msr\\:w-4 {\n width: calc(var(--msr-spacing) * 4);\n }\n .msr\\:w-5 {\n width: calc(var(--msr-spacing) * 5);\n }\n .msr\\:w-6 {\n width: calc(var(--msr-spacing) * 6);\n }\n .msr\\:w-9 {\n width: calc(var(--msr-spacing) * 9);\n }\n .msr\\:w-12 {\n width: calc(var(--msr-spacing) * 12);\n }\n .msr\\:w-44 {\n width: calc(var(--msr-spacing) * 44);\n }\n .msr\\:w-60 {\n width: calc(var(--msr-spacing) * 60);\n }\n .msr\\:w-\\[18px\\] {\n width: 18px;\n }\n .msr\\:w-\\[26px\\] {\n width: 26px;\n }\n .msr\\:w-\\[272px\\] {\n width: 272px;\n }\n .msr\\:w-full {\n width: 100%;\n }\n .msr\\:w-px {\n width: 1px;\n }\n .msr\\:max-w-0 {\n max-width: 0px;\n }\n .msr\\:max-w-20 {\n max-width: calc(var(--msr-spacing) * 20);\n }\n .msr\\:max-w-\\[calc\\(100vw-16px\\)\\] {\n max-width: calc(100vw - 16px);\n }\n .msr\\:min-w-0 {\n min-width: 0px;\n }\n .msr\\:min-w-36 {\n min-width: calc(var(--msr-spacing) * 36);\n }\n .msr\\:flex-1 {\n flex: 1;\n }\n .msr\\:flex-none {\n flex: none;\n }\n .msr\\:shrink-0 {\n flex-shrink: 0;\n }\n .msr\\:-translate-x-1 {\n --tw-translate-x: calc(var(--msr-spacing) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .msr\\:-translate-x-1\\/2 {\n --tw-translate-x: calc(calc(1 / 2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .msr\\:translate-x-0 {\n --tw-translate-x: 0px;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .msr\\:-translate-y-1\\/2 {\n --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .msr\\:-rotate-90 {\n rotate: calc(90deg * -1);\n }\n .msr\\:rotate-45 {\n rotate: 45deg;\n }\n .msr\\:rotate-90 {\n rotate: 90deg;\n }\n .msr\\:rotate-180 {\n rotate: 180deg;\n }\n .msr\\:rotate-\\[45deg\\] {\n rotate: 45deg;\n }\n .msr\\:rotate-\\[135deg\\] {\n rotate: 135deg;\n }\n .msr\\:cursor-crosshair {\n cursor: crosshair;\n }\n .msr\\:cursor-default {\n cursor: default;\n }\n .msr\\:cursor-pointer {\n cursor: pointer;\n }\n .msr\\:touch-none {\n touch-action: none;\n }\n .msr\\:resize-none {\n resize: none;\n }\n .msr\\:list-none {\n list-style-type: none;\n }\n .msr\\:appearance-none {\n appearance: none;\n }\n .msr\\:grid-cols-\\[78px_150px\\] {\n grid-template-columns: 78px 150px;\n }\n .msr\\:grid-cols-\\[78px_156px\\] {\n grid-template-columns: 78px 156px;\n }\n .msr\\:grid-cols-\\[78px_minmax\\(0\\,1fr\\)\\] {\n grid-template-columns: 78px minmax(0,1fr);\n }\n .msr\\:grid-cols-\\[minmax\\(0\\,1fr\\)_28px_34px\\] {\n grid-template-columns: minmax(0,1fr) 28px 34px;\n }\n .msr\\:flex-col {\n flex-direction: column;\n }\n .msr\\:items-center {\n align-items: center;\n }\n .msr\\:items-start {\n align-items: flex-start;\n }\n .msr\\:items-stretch {\n align-items: stretch;\n }\n .msr\\:justify-between {\n justify-content: space-between;\n }\n .msr\\:justify-center {\n justify-content: center;\n }\n .msr\\:justify-end {\n justify-content: flex-end;\n }\n .msr\\:gap-0 {\n gap: 0px;\n }\n .msr\\:gap-0\\.5 {\n gap: calc(var(--msr-spacing) * 0.5);\n }\n .msr\\:gap-1 {\n gap: var(--msr-spacing);\n }\n .msr\\:gap-1\\.5 {\n gap: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:gap-2 {\n gap: calc(var(--msr-spacing) * 2);\n }\n .msr\\:gap-3 {\n gap: calc(var(--msr-spacing) * 3);\n }\n .msr\\:gap-\\[2px\\] {\n gap: 2px;\n }\n .msr\\:gap-px {\n gap: 1px;\n }\n .msr\\:gap-x-3 {\n column-gap: calc(var(--msr-spacing) * 3);\n }\n .msr\\:gap-y-1 {\n row-gap: var(--msr-spacing);\n }\n .msr\\:self-center {\n align-self: center;\n }\n .msr\\:self-stretch {\n align-self: stretch;\n }\n .msr\\:justify-self-end {\n justify-self: flex-end;\n }\n .msr\\:truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .msr\\:overflow-auto {\n overflow: auto;\n }\n .msr\\:overflow-hidden {\n overflow: hidden;\n }\n .msr\\:overflow-visible {\n overflow: visible;\n }\n .msr\\:overflow-x-hidden {\n overflow-x: hidden;\n }\n .msr\\:overflow-y-auto {\n overflow-y: auto;\n }\n .msr\\:rounded {\n border-radius: 0.25rem;\n }\n .msr\\:rounded-\\[3px\\] {\n border-radius: 3px;\n }\n .msr\\:rounded-\\[5px\\] {\n border-radius: 5px;\n }\n .msr\\:rounded-\\[6px\\] {\n border-radius: 6px;\n }\n .msr\\:rounded-\\[7px\\] {\n border-radius: 7px;\n }\n .msr\\:rounded-\\[8px\\] {\n border-radius: 8px;\n }\n .msr\\:rounded-\\[10px\\] {\n border-radius: 10px;\n }\n .msr\\:rounded-\\[12px\\] {\n border-radius: 12px;\n }\n .msr\\:rounded-full {\n border-radius: calc(infinity * 1px);\n }\n .msr\\:rounded-lg {\n border-radius: var(--msr-radius-lg);\n }\n .msr\\:rounded-md {\n border-radius: var(--msr-radius-md);\n }\n .msr\\:rounded-none {\n border-radius: 0;\n }\n .msr\\:border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .msr\\:border-0 {\n border-style: var(--tw-border-style);\n border-width: 0px;\n }\n .msr\\:border-t {\n border-top-style: var(--tw-border-style);\n border-top-width: 1px;\n }\n .msr\\:border-t-2 {\n border-top-style: var(--tw-border-style);\n border-top-width: 2px;\n }\n .msr\\:border-r {\n border-right-style: var(--tw-border-style);\n border-right-width: 1px;\n }\n .msr\\:border-b {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n .msr\\:border-l {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n .msr\\:border-dashed {\n --tw-border-style: dashed;\n border-style: dashed;\n }\n .msr\\:border-dotted {\n --tw-border-style: dotted;\n border-style: dotted;\n }\n .msr\\:border-solid {\n --tw-border-style: solid;\n border-style: solid;\n }\n .msr\\:border-\\[\\#0d99ff\\] {\n border-color: #0d99ff;\n }\n .msr\\:border-\\[\\#2563eb\\]\\/70 {\n border-color: color-mix(in oklab, #2563eb 70%, transparent);\n }\n .msr\\:border-black\\/8 {\n border-color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--msr-color-black) 8%, transparent);\n }\n }\n .msr\\:border-black\\/10 {\n border-color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--msr-color-black) 10%, transparent);\n }\n }\n .msr\\:border-black\\/15 {\n border-color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--msr-color-black) 15%, transparent);\n }\n }\n .msr\\:border-ink-200 {\n border-color: var(--msr-color-ink-200);\n }\n .msr\\:border-ink-500 {\n border-color: var(--msr-color-ink-500);\n }\n .msr\\:border-ink-700 {\n border-color: var(--msr-color-ink-700);\n }\n .msr\\:border-red-200 {\n border-color: var(--msr-color-red-200);\n }\n .msr\\:border-transparent {\n border-color: transparent;\n }\n .msr\\:bg-\\[\\#0d99ff\\] {\n background-color: #0d99ff;\n }\n .msr\\:bg-\\[\\#0d99ff\\]\\/10 {\n background-color: color-mix(in oklab, #0d99ff 10%, transparent);\n }\n .msr\\:bg-\\[\\#2563eb\\] {\n background-color: #2563eb;\n }\n .msr\\:bg-\\[\\#fff\\] {\n background-color: #fff;\n }\n .msr\\:bg-black {\n background-color: var(--msr-color-black);\n }\n .msr\\:bg-black\\/10 {\n background-color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--msr-color-black) 10%, transparent);\n }\n }\n .msr\\:bg-ink-50 {\n background-color: var(--msr-color-ink-50);\n }\n .msr\\:bg-ink-50\\/40 {\n background-color: var(--msr-color-ink-50);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--msr-color-ink-50) 40%, transparent);\n }\n }\n .msr\\:bg-ink-900\\/90 {\n background-color: var(--msr-color-ink-900);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--msr-color-ink-900) 90%, transparent);\n }\n }\n .msr\\:bg-transparent {\n background-color: transparent;\n }\n .msr\\:bg-white {\n background-color: var(--msr-color-white);\n }\n .msr\\:bg-white\\/60 {\n background-color: var(--msr-color-white);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--msr-color-white) 60%, transparent);\n }\n }\n .msr\\:p-0 {\n padding: 0px;\n }\n .msr\\:p-1 {\n padding: var(--msr-spacing);\n }\n .msr\\:p-1\\.5 {\n padding: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:p-2 {\n padding: calc(var(--msr-spacing) * 2);\n }\n .msr\\:p-3 {\n padding: calc(var(--msr-spacing) * 3);\n }\n .msr\\:p-\\[2px\\] {\n padding: 2px;\n }\n .msr\\:p-px {\n padding: 1px;\n }\n .msr\\:px-0 {\n padding-inline: 0px;\n }\n .msr\\:px-0\\.5 {\n padding-inline: calc(var(--msr-spacing) * 0.5);\n }\n .msr\\:px-1 {\n padding-inline: var(--msr-spacing);\n }\n .msr\\:px-1\\.5 {\n padding-inline: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:px-2 {\n padding-inline: calc(var(--msr-spacing) * 2);\n }\n .msr\\:px-2\\.5 {\n padding-inline: calc(var(--msr-spacing) * 2.5);\n }\n .msr\\:py-0 {\n padding-block: 0px;\n }\n .msr\\:py-0\\.5 {\n padding-block: calc(var(--msr-spacing) * 0.5);\n }\n .msr\\:py-1 {\n padding-block: var(--msr-spacing);\n }\n .msr\\:py-1\\.5 {\n padding-block: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:py-2 {\n padding-block: calc(var(--msr-spacing) * 2);\n }\n .msr\\:pt-0\\.5 {\n padding-top: calc(var(--msr-spacing) * 0.5);\n }\n .msr\\:pt-2 {\n padding-top: calc(var(--msr-spacing) * 2);\n }\n .msr\\:pr-0 {\n padding-right: 0px;\n }\n .msr\\:pr-2 {\n padding-right: calc(var(--msr-spacing) * 2);\n }\n .msr\\:pr-6 {\n padding-right: calc(var(--msr-spacing) * 6);\n }\n .msr\\:pb-1 {\n padding-bottom: var(--msr-spacing);\n }\n .msr\\:pb-1\\.5 {\n padding-bottom: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:pb-2 {\n padding-bottom: calc(var(--msr-spacing) * 2);\n }\n .msr\\:text-center {\n text-align: center;\n }\n .msr\\:text-left {\n text-align: left;\n }\n .msr\\:font-mono {\n font-family: var(--msr-font-mono);\n }\n .msr\\:text-\\[9px\\] {\n font-size: 9px;\n }\n .msr\\:text-\\[10px\\] {\n font-size: 10px;\n }\n .msr\\:text-\\[11px\\] {\n font-size: 11px;\n }\n .msr\\:text-\\[12px\\] {\n font-size: 12px;\n }\n .msr\\:text-\\[14px\\] {\n font-size: 14px;\n }\n .msr\\:leading-4 {\n --tw-leading: calc(var(--msr-spacing) * 4);\n line-height: calc(var(--msr-spacing) * 4);\n }\n .msr\\:leading-\\[1\\.4\\] {\n --tw-leading: 1.4;\n line-height: 1.4;\n }\n .msr\\:leading-\\[1\\.45\\] {\n --tw-leading: 1.45;\n line-height: 1.45;\n }\n .msr\\:leading-\\[18px\\] {\n --tw-leading: 18px;\n line-height: 18px;\n }\n .msr\\:leading-none {\n --tw-leading: 1;\n line-height: 1;\n }\n .msr\\:font-medium {\n --tw-font-weight: var(--msr-font-weight-medium);\n font-weight: var(--msr-font-weight-medium);\n }\n .msr\\:font-normal {\n --tw-font-weight: var(--msr-font-weight-normal);\n font-weight: var(--msr-font-weight-normal);\n }\n .msr\\:font-semibold {\n --tw-font-weight: var(--msr-font-weight-semibold);\n font-weight: var(--msr-font-weight-semibold);\n }\n .msr\\:text-ellipsis {\n text-overflow: ellipsis;\n }\n .msr\\:whitespace-nowrap {\n white-space: nowrap;\n }\n .msr\\:whitespace-pre-wrap {\n white-space: pre-wrap;\n }\n .msr\\:text-\\[\\#64748b\\] {\n color: #64748b;\n }\n .msr\\:text-black {\n color: var(--msr-color-black);\n }\n .msr\\:text-black\\/30 {\n color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--msr-color-black) 30%, transparent);\n }\n }\n .msr\\:text-black\\/45 {\n color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--msr-color-black) 45%, transparent);\n }\n }\n .msr\\:text-ink-50 {\n color: var(--msr-color-ink-50);\n }\n .msr\\:text-ink-500 {\n color: var(--msr-color-ink-500);\n }\n .msr\\:text-ink-700 {\n color: var(--msr-color-ink-700);\n }\n .msr\\:text-ink-900 {\n color: var(--msr-color-ink-900);\n }\n .msr\\:text-red-600 {\n color: var(--msr-color-red-600);\n }\n .msr\\:text-white {\n color: var(--msr-color-white);\n }\n .msr\\:text-white\\/60 {\n color: var(--msr-color-white);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--msr-color-white) 60%, transparent);\n }\n }\n .msr\\:tabular-nums {\n --tw-numeric-spacing: tabular-nums;\n font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);\n }\n .msr\\:opacity-0 {\n opacity: 0%;\n }\n .msr\\:opacity-60 {\n opacity: 60%;\n }\n .msr\\:opacity-80 {\n opacity: 80%;\n }\n .msr\\:opacity-100 {\n opacity: 100%;\n }\n .msr\\:shadow-lg {\n --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:shadow-sm {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:outline {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n .msr\\:outline-transparent {\n outline-color: transparent;\n }\n .msr\\:transition-\\[max-width\\,opacity\\,transform\\,padding\\] {\n transition-property: max-width,opacity,transform,padding;\n transition-timing-function: var(--tw-ease, var(--msr-default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--msr-default-transition-duration));\n }\n .msr\\:transition-\\[width\\,opacity\\] {\n transition-property: width,opacity;\n transition-timing-function: var(--tw-ease, var(--msr-default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--msr-default-transition-duration));\n }\n .msr\\:transition-colors {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--msr-default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--msr-default-transition-duration));\n }\n .msr\\:transition-opacity {\n transition-property: opacity;\n transition-timing-function: var(--tw-ease, var(--msr-default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--msr-default-transition-duration));\n }\n .msr\\:transition-transform {\n transition-property: transform, translate, scale, rotate;\n transition-timing-function: var(--tw-ease, var(--msr-default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--msr-default-transition-duration));\n }\n .msr\\:transition-none {\n transition-property: none;\n }\n .msr\\:duration-150 {\n --tw-duration: 150ms;\n transition-duration: 150ms;\n }\n .msr\\:ease-\\[ease\\] {\n --tw-ease: ease;\n transition-timing-function: ease;\n }\n .msr\\:outline-none {\n --tw-outline-style: none;\n outline-style: none;\n }\n .msr\\:select-none {\n -webkit-user-select: none;\n user-select: none;\n }\n @media (hover: hover) {\n .msr\\:group-hover\\:border-ink-200:is(:where(.msr\\:group):hover *) {\n border-color: var(--msr-color-ink-200);\n }\n }\n .msr\\:focus-within\\:rounded-l-\\[5px\\]:focus-within {\n border-top-left-radius: 5px;\n border-bottom-left-radius: 5px;\n }\n .msr\\:focus-within\\:rounded-r-\\[5px\\]:focus-within {\n border-top-right-radius: 5px;\n border-bottom-right-radius: 5px;\n }\n .msr\\:focus-within\\:outline:focus-within {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n .msr\\:focus-within\\:outline-1:focus-within {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n .msr\\:focus-within\\:outline-offset-\\[-1px\\]:focus-within {\n outline-offset: -1px;\n }\n .msr\\:focus-within\\:outline-\\[\\#0d99ff\\]:focus-within {\n outline-color: #0d99ff;\n }\n .msr\\:focus-within\\:outline-\\[var\\(--msr-accent\\)\\]:focus-within {\n outline-color: var(--msr-accent);\n }\n @media (hover: hover) {\n .msr\\:hover\\:border-ink-200:hover {\n border-color: var(--msr-color-ink-200);\n }\n .msr\\:hover\\:bg-\\[\\#0b8eea\\]:hover {\n background-color: #0b8eea;\n }\n .msr\\:hover\\:bg-\\[\\#0d99ff\\]:hover {\n background-color: #0d99ff;\n }\n .msr\\:hover\\:bg-black\\/4:hover {\n background-color: var(--msr-color-black);\n }\n @supports (color: color-mix(in lab, red, red)) {\n .msr\\:hover\\:bg-black\\/4:hover {\n background-color: color-mix(in oklab, var(--msr-color-black) 4%, transparent);\n }\n }\n .msr\\:hover\\:bg-black\\/10:hover {\n background-color: var(--msr-color-black);\n }\n @supports (color: color-mix(in lab, red, red)) {\n .msr\\:hover\\:bg-black\\/10:hover {\n background-color: color-mix(in oklab, var(--msr-color-black) 10%, transparent);\n }\n }\n .msr\\:hover\\:bg-ink-50:hover {\n background-color: var(--msr-color-ink-50);\n }\n .msr\\:hover\\:bg-red-50:hover {\n background-color: var(--msr-color-red-50);\n }\n .msr\\:hover\\:text-ink-700:hover {\n color: var(--msr-color-ink-700);\n }\n .msr\\:hover\\:text-ink-900:hover {\n color: var(--msr-color-ink-900);\n }\n .msr\\:hover\\:text-white:hover {\n color: var(--msr-color-white);\n }\n .msr\\:hover\\:underline:hover {\n text-decoration-line: underline;\n }\n }\n .msr\\:focus\\:border-\\[\\#0d99ff\\]:focus {\n border-color: #0d99ff;\n }\n .msr\\:focus\\:shadow-\\[inset_0_0_0_1px_\\#0d99ff\\]:focus {\n --tw-shadow: inset 0 0 0 1px var(--tw-shadow-color, #0d99ff);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:focus\\:shadow-\\[inset_0_0_0_1px_var\\(--msr-accent\\)\\]:focus {\n --tw-shadow: inset 0 0 0 1px var(--tw-shadow-color, var(--msr-accent));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:focus\\:outline-none:focus {\n --tw-outline-style: none;\n outline-style: none;\n }\n .msr\\:focus-visible\\:border-\\[\\#0d99ff\\]:focus-visible {\n border-color: #0d99ff;\n }\n .msr\\:focus-visible\\:bg-\\[\\#0d99ff\\]:focus-visible {\n background-color: #0d99ff;\n }\n .msr\\:focus-visible\\:text-white:focus-visible {\n color: var(--msr-color-white);\n }\n .msr\\:focus-visible\\:shadow-\\[inset_0_0_0_1px_\\#0d99ff\\]:focus-visible {\n --tw-shadow: inset 0 0 0 1px var(--tw-shadow-color, #0d99ff);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:focus-visible\\:shadow-\\[inset_0_0_0_1px_\\#ef4444\\]:focus-visible {\n --tw-shadow: inset 0 0 0 1px var(--tw-shadow-color, #ef4444);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:focus-visible\\:ring-1:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:focus-visible\\:ring-\\[\\#0d99ff\\]\\/25:focus-visible {\n --tw-ring-color: color-mix(in oklab, #0d99ff 25%, transparent);\n }\n .msr\\:focus-visible\\:outline-none:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .msr\\:disabled\\:cursor-default:disabled {\n cursor: default;\n }\n .msr\\:disabled\\:opacity-40:disabled {\n opacity: 40%;\n }\n .msr\\:disabled\\:opacity-45:disabled {\n opacity: 45%;\n }\n @media (prefers-reduced-motion: reduce) {\n .msr\\:motion-reduce\\:transition-none {\n transition-property: none;\n }\n }\n}\n:root, :host {\n --color-ink-50: #f8fafc;\n --color-ink-200: #e2e8f0;\n --color-ink-500: #64748b;\n --color-ink-700: #334155;\n --color-ink-900: #0f172a;\n}\n:host {\n all: initial;\n display: block;\n color-scheme: light;\n color: #0f172a;\n font-family: ui-sans-serif, system-ui, sans-serif;\n font-size: 16px;\n font-weight: 400;\n line-height: 1.5;\n letter-spacing: normal;\n direction: ltr;\n --msr-spacing: 4px;\n}\n*, *::before, *::after {\n box-sizing: border-box;\n}\n@layer base {\n *, ::before, ::after, ::backdrop {\n --tw-border-style: solid;\n --tw-outline-style: solid;\n --tw-shadow: 0 0 #0000;\n --tw-inset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n }\n button, input, select, textarea {\n appearance: none;\n background-color: transparent;\n padding: 0;\n font: inherit;\n color: inherit;\n letter-spacing: inherit;\n }\n}\n.mesurer-toolbar-surface {\n box-shadow: 0 0 0.5px rgba(0, 0, 0, 0.18), 0 3px 8px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.1);\n}\n.mesurer-menu-surface {\n box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);\n}\n.mesurer-color-picker {\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n}\n.mesurer-settings-tabs {\n box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.08);\n}\n.mesurer-settings-tab[aria-selected=\"true\"] {\n box-shadow: 0 0 0 1px rgba(15, 23, 42, 0.12);\n}\n.mesurer-switch-track {\n box-sizing: border-box;\n border: 1px solid #e2e8f0;\n}\n.mesurer-switch-track[data-checked=\"true\"] {\n border-color: #0d99ff;\n}\n.mesurer-control-shell {\n border: 1px solid transparent;\n}\n.mesurer-control-shell:hover {\n border-color: #e2e8f0;\n}\n.mesurer-control-focus:focus-within {\n outline: 1px solid #0d99ff;\n outline-offset: -1px;\n}\n.mesurer-root {\n --msr-spacing: 4px;\n}\nbody [data-mesurer-native-scroll-anchor=\"box\"][data-mesurer-nested-scroll-compensation=\"true\"] {\n position: absolute !important;\n left: calc(anchor(left) + var(--mesurer-nested-scroll-x, 0px)) !important;\n top: calc(anchor(top) + var(--mesurer-nested-scroll-y, 0px)) !important;\n}\nbody [data-mesurer-native-scroll-anchor=\"label\"][data-mesurer-nested-scroll-compensation=\"true\"] {\n position: absolute !important;\n left: calc(anchor(center) + var(--mesurer-nested-scroll-x, 0px)) !important;\n top: calc(anchor(bottom) + 2px + var(--mesurer-nested-scroll-y, 0px)) !important;\n}\nbody [data-mesurer-native-scroll-anchor=\"offset\"][data-mesurer-nested-scroll-compensation=\"true\"] {\n position: absolute !important;\n left: calc(anchor(left) + var(--mesurer-native-anchor-x, 0px) + var(--mesurer-nested-scroll-x, 0px)) !important;\n top: calc(anchor(top) + var(--mesurer-native-anchor-y, 0px) + var(--mesurer-nested-scroll-y, 0px)) !important;\n}\n[data-mesurer-text-edit-ring=\"true\"], [data-mesurer-text-selection-highlight=\"true\"], [data-mesurer-text-caret=\"true\"] {\n z-index: 2147482900 !important;\n}\n[data-mesurer-text-inspector-placement-shell=\"true\"], .mesurer-ti-card {\n z-index: 2147483647 !important;\n}\n[data-mesurer-context-root=\"true\"] [data-mesurer-annotation-scroll-mode=\"document\"] {\n position: absolute !important;\n}\n[data-mesurer-annotation-scroll-mode=\"native-anchor\"] {\n position: fixed !important;\n}\n[data-mesurer-native-scroll-anchor=\"offset\"][data-mesurer-nested-scroll-compensation=\"true\"][data-mesurer-annotation-scroll-mode=\"native-anchor\"] {\n position: fixed !important;\n}\n[data-mesurer-annotation-badge=\"true\"] {\n width: 20px !important;\n height: 20px !important;\n transform: none !important;\n transition: width 150ms ease, height 150ms ease, background 150ms ease, color 150ms ease, box-shadow 150ms ease !important;\n}\n[data-mesurer-annotation-marker=\"true\"][data-mesurer-annotation-highlighted=\"true\"] > [data-mesurer-annotation-badge=\"true\"] {\n width: 24px !important;\n height: 24px !important;\n}\n[data-mesurer-root=\"true\"][data-mesurer-direct-text-edit-active=\"true\"] [data-mesurer-annotation-trigger=\"true\"], [data-mesurer-context-root=\"true\"][data-mesurer-direct-text-edit-active=\"true\"] [data-mesurer-annotation-trigger=\"true\"] {\n display: none !important;\n}\n[data-mesurer-plugin-settings] [role=\"switch\"] {\n grid-template-columns: minmax(0, 1fr) auto;\n}\n[data-mesurer-plugin-settings] [role=\"switch\"] > span:first-child {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n[data-mesurer-plugin-settings-disclosure=\"plugins\"] {\n width: calc(100% + 16px);\n margin-inline: -8px;\n}\n.mesurer-solid-root {\n position: fixed;\n inset: 0;\n z-index: 2147483000;\n pointer-events: none;\n --msr-spacing: 4px;\n}\n.mesurer-solid-root [role=\"slider\"] {\n border: 0;\n}\n[data-mesurer-distance-kind=\"selection-spacing\"][data-mesurer-distance-active=\"true\"] [data-mesurer-distance-hover-target=\"true\"] {\n opacity: 1 !important;\n}\n[data-mesurer-distance-kind=\"selection-spacing\"][data-mesurer-distance-active=\"true\"]:has([data-mesurer-distance-label-axis=\"x\"]:hover) [data-mesurer-distance-line^=\"vertical\"], [data-mesurer-distance-kind=\"selection-spacing\"][data-mesurer-distance-active=\"true\"]:has([data-mesurer-distance-label-axis=\"y\"]:hover) [data-mesurer-distance-line^=\"horizontal\"], [data-mesurer-distance-kind=\"selection-spacing\"][data-mesurer-distance-active=\"true\"]:has([data-mesurer-distance-label-axis]:hover) [data-mesurer-distance-connector=\"true\"] {\n opacity: 0.16 !important;\n}\nbody.mesurer-solid-xray * {\n outline: solid 1px blue !important;\n}\nbody.mesurer-solid-xray [data-mesurer-root], body.mesurer-solid-xray [data-mesurer-root] *, body.mesurer-solid-xray [data-mesurer-inspector-ui], body.mesurer-solid-xray [data-mesurer-inspector-ui] *, body.mesurer-solid-xray .mesurer-toolbar-surface, body.mesurer-solid-xray .mesurer-toolbar-surface *, body.mesurer-solid-xray .mesurer-ti-box, body.mesurer-solid-xray .mesurer-ti-card, body.mesurer-solid-xray .mesurer-ti-card *, body.mesurer-solid-xray .mesurer-ti-close {\n outline: none !important;\n}\n[data-mesurer-toolbar=\"true\"] > div:has(> [data-mesurer-toolbar-compact-item]) {\n transition: padding-inline 150ms ease;\n}\n[data-mesurer-toolbar=\"true\"][data-mesurer-toolbar-compact=\"true\"] > div:has(> [data-mesurer-toolbar-compact-item]):not(:has(> [data-mesurer-toolbar-compact-item][data-visible=\"true\"])) {\n padding-inline: 0;\n}\n[data-mesurer-selected-measurement=\"true\"]:has(> [data-mesurer-native-scroll-anchor=\"box\"]) {\n display: contents !important;\n}\n@media (prefers-reduced-motion: reduce) {\n [data-mesurer-toolbar=\"true\"] > div:has(> [data-mesurer-toolbar-compact-item]) {\n transition: none;\n }\n [data-mesurer-annotation-badge=\"true\"] {\n transition: none !important;\n }\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) {\n --msr-accent: #0d99ff;\n --msr-surface: #fff;\n --msr-surface-raised: #fff;\n --msr-surface-muted: #f8fafc;\n --msr-content: #18181b;\n --msr-color-white: #fff;\n --msr-color-black: #000;\n --msr-color-ink-50: #f8fafc;\n --msr-color-ink-100: #f1f5f9;\n --msr-color-ink-200: #e2e8f0;\n --msr-color-ink-300: #cbd5e1;\n --msr-color-ink-500: #64748b;\n --msr-color-ink-700: #334155;\n --msr-color-ink-900: #18181b;\n --color-ink-50: var(--msr-color-ink-50);\n --color-ink-100: var(--msr-color-ink-100);\n --color-ink-200: var(--msr-color-ink-200);\n --color-ink-300: var(--msr-color-ink-300);\n --color-ink-500: var(--msr-color-ink-500);\n --color-ink-700: var(--msr-color-ink-700);\n --color-ink-900: var(--msr-color-ink-900);\n --msr-danger-bg: #fef2f2;\n --msr-danger-border: #fecaca;\n --msr-danger-text: #dc2626;\n --msr-danger-solid-bg: #dc2626;\n --msr-danger-solid-hover: #b91c1c;\n --msr-danger-solid-text: #fff;\n --color-red-50: var(--msr-danger-bg);\n --color-red-200: var(--msr-danger-border);\n --color-red-600: var(--msr-danger-text);\n --color-red-700: #b91c1c;\n --msr-control-thumb: #fff;\n --msr-slider-track: rgba(15, 23, 42, 0.16);\n --msr-shadow-toolbar: 0 0 0.4px rgba(0, 0, 0, 0.22),\n 0 6px 18px rgba(0, 0, 0, 0.03),\n 0 3px 9px rgba(0, 0, 0, 0.06),\n 0 1px 1px rgba(0, 0, 0, 0.06);\n --msr-shadow-floating: 0 0 0 0.4px rgba(0, 0, 0, 0.22),\n 0 6px 18px rgba(0, 0, 0, 0.03),\n 0 3px 9px rgba(0, 0, 0, 0.06),\n 0 1px 1px rgba(0, 0, 0, 0.06);\n --msr-shadow-select-menu: var(--msr-shadow-floating);\n color: var(--msr-content);\n color-scheme: light;\n}\n:where( [data-mesurer-root=\"true\"][data-theme=\"dark\"], [data-mesurer-inspector-ui=\"true\"][data-theme=\"dark\"] ) {\n --msr-accent: #0c8ce9;\n --msr-surface: #323232;\n --msr-surface-raised: #3a3a3a;\n --msr-surface-muted: #3a3a3a;\n --msr-content: #f5f5f5;\n --msr-color-white: #f5f5f5;\n --msr-color-black: #171717;\n --msr-color-ink-50: #3a3a3a;\n --msr-color-ink-100: #414141;\n --msr-color-ink-200: #4a4a4a;\n --msr-color-ink-300: #5a5a5a;\n --msr-color-ink-500: #a0a0a0;\n --msr-color-ink-700: #dedede;\n --msr-color-ink-900: #f5f5f5;\n --msr-danger-bg: #3f2020;\n --msr-danger-border: #7f3f46;\n --msr-danger-text: #f87171;\n --msr-danger-solid-bg: #c95058;\n --msr-danger-solid-hover: #b7424b;\n --msr-danger-solid-text: #f5f5f5;\n --color-red-700: #fca5a5;\n --msr-control-thumb: #f4f4f5;\n --msr-slider-track: rgba(245, 245, 245, 0.24);\n --msr-shadow-toolbar: 0 0 0.4px lch(100% 0 0 / 0.10),\n 0 3px 8px lch(0% 0 0 / 0.125),\n 0 2px 5px lch(0% 0 0 / 0.125),\n 0 1px 1px lch(0% 0 0 / 0.125);\n --msr-shadow-floating: 0 0 0 0.4px lch(100% 0 0 / 0.05),\n 0 4px 12px lch(0% 0 0 / 0.12),\n 0 1px 3px lch(0% 0 0 / 0.10);\n --msr-shadow-select-menu: 0 0 0 0.4px lch(100% 0 0 / 0.14),\n 0 4px 12px lch(0% 0 0 / 0.22),\n 0 1px 3px lch(0% 0 0 / 0.18);\n color-scheme: dark;\n}\n@media (prefers-color-scheme: dark) {\n :where( [data-mesurer-root=\"true\"][data-theme=\"system\"], [data-mesurer-inspector-ui=\"true\"][data-theme=\"system\"] ) {\n --msr-accent: #0c8ce9;\n --msr-surface: #323232;\n --msr-surface-raised: #3a3a3a;\n --msr-surface-muted: #3a3a3a;\n --msr-content: #f5f5f5;\n --msr-color-white: #f5f5f5;\n --msr-color-black: #171717;\n --msr-color-ink-50: #3a3a3a;\n --msr-color-ink-100: #414141;\n --msr-color-ink-200: #4a4a4a;\n --msr-color-ink-300: #5a5a5a;\n --msr-color-ink-500: #a0a0a0;\n --msr-color-ink-700: #dedede;\n --msr-color-ink-900: #f5f5f5;\n --msr-danger-bg: #3f2020;\n --msr-danger-border: #7f3f46;\n --msr-danger-text: #f87171;\n --msr-danger-solid-bg: #c95058;\n --msr-danger-solid-hover: #b7424b;\n --msr-danger-solid-text: #f5f5f5;\n --color-red-700: #fca5a5;\n --msr-control-thumb: #f4f4f5;\n --msr-slider-track: rgba(245, 245, 245, 0.24);\n --msr-shadow-toolbar: 0 0 0.4px lch(100% 0 0 / 0.10),\n 0 3px 8px lch(0% 0 0 / 0.125),\n 0 2px 5px lch(0% 0 0 / 0.125),\n 0 1px 1px lch(0% 0 0 / 0.125);\n --msr-shadow-floating: 0 0 0 0.4px lch(100% 0 0 / 0.05),\n 0 4px 12px lch(0% 0 0 / 0.12),\n 0 1px 3px lch(0% 0 0 / 0.10);\n --msr-shadow-select-menu: 0 0 0 0.4px lch(100% 0 0 / 0.14),\n 0 4px 12px lch(0% 0 0 / 0.22),\n 0 1px 3px lch(0% 0 0 / 0.18);\n color-scheme: dark;\n }\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:bg-white\"], :where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:bg-[#fff]\"] {\n background-color: var(--msr-surface) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:text-black\"] {\n color: var(--msr-content) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:hover:bg-black/4\"]:hover, :where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:hover:bg-black/5\"]:hover {\n background-color: var(--msr-content) !important;\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in srgb, var(--msr-content) 6%, transparent) !important;\n }\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) .mesurer-toolbar-surface {\n background-color: var(--msr-surface) !important;\n box-shadow: var(--msr-shadow-toolbar) !important;\n color: var(--msr-content);\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) :is( .mesurer-menu-surface, .mesurer-color-picker, .mesurer-ti-card, [data-mesurer-text-inspector-info=\"true\"], [data-mesurer-annotation-panel=\"true\"], [data-mesurer-annotation-composer=\"true\"] ) {\n background-color: var(--msr-surface-raised) !important;\n color: var(--msr-content) !important;\n box-shadow: var(--msr-shadow-floating) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) .mesurer-switch-track[data-checked=\"false\"], :where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) .mesurer-control-shell {\n background-color: var(--msr-surface-muted) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) .mesurer-switch-track > span {\n background-color: var(--msr-control-thumb) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) :is(.mesurer-settings-select, .mesurer-settings-select-menu) {\n background-color: var(--msr-surface-raised) !important;\n border-color: var(--msr-color-ink-200) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [data-mesurer-rulers=\"true\"] {\n color: var(--msr-color-ink-500) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [data-slider-container=\"true\"] > div:first-child {\n background-color: var(--msr-slider-track) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:bg-[#0d99ff]\"] {\n background-color: var(--msr-accent) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:border-[#0d99ff]\"] {\n border-color: var(--msr-accent) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:hover:bg-[#0d99ff]\"]:hover, :where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:focus-visible:bg-[#0d99ff]\"]:focus-visible {\n background-color: var(--msr-accent) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:text-white\"] {\n color: var(--msr-color-white) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [data-slider-thumb=\"true\"]:focus-visible {\n box-shadow: 0 0 0 1px var(--msr-accent) !important;\n @supports (color: color-mix(in lab, red, red)) {\n box-shadow: 0 0 0 1px color-mix(in srgb, var(--msr-accent) 25%, transparent) !important;\n }\n}\n:where([data-mesurer-root=\"true\"], [data-mesurer-inspector-ui=\"true\"]) {\n --msr-radius-control: 5px;\n}\n@layer utilities {\n .msr\\:rounded-control {\n border-radius: var(--msr-radius-control);\n }\n}\n.mesurer-thin-scrollbar {\n scrollbar-width: thin;\n scrollbar-color: var(--msr-color-ink-200) transparent;\n}\n.mesurer-thin-scrollbar::-webkit-scrollbar {\n width: 4px;\n height: 4px;\n}\n.mesurer-thin-scrollbar::-webkit-scrollbar-track {\n background: transparent;\n}\n.mesurer-thin-scrollbar::-webkit-scrollbar-thumb {\n background: var(--msr-color-ink-200);\n border-radius: var(--msr-radius-control);\n}\n.mesurer-thin-scrollbar:hover {\n scrollbar-color: var(--msr-color-ink-300) transparent;\n}\n.mesurer-thin-scrollbar:hover::-webkit-scrollbar-thumb {\n background: var(--msr-color-ink-300);\n}\n.mesurer-thin-scrollbar::-webkit-scrollbar-corner {\n background: transparent;\n}\n.mesurer-toolbar-mode-switch {\n position: relative;\n z-index: 1;\n isolation: isolate;\n border-radius: 5px;\n background: transparent;\n}\n.mesurer-toolbar-mode-switch-pill {\n position: absolute;\n top: 2px;\n left: 2px;\n z-index: 0;\n width: 28px;\n height: 28px;\n border-radius: 3px;\n background: var(--msr-color-ink-200, #e2e8f0);\n transform: translateX(0);\n}\n.mesurer-toolbar-mode-switch[data-value=\"edit\"] .mesurer-toolbar-mode-switch-pill {\n transform: translateX(30px);\n}\n.mesurer-toolbar-mode-switch > :not(.mesurer-toolbar-mode-switch-pill) {\n position: relative;\n z-index: 1;\n}\n.mesurer-toolbar-mode-button {\n display: flex;\n width: 28px;\n height: 28px;\n align-items: center;\n justify-content: center;\n border-radius: 3px;\n color: var(--msr-color-ink-700, #334155);\n outline: none;\n}\n.mesurer-toolbar-mode-button[aria-pressed=\"true\"] {\n color: var(--msr-color-ink-900, #18181b);\n}\n.mesurer-toolbar-mode-button[aria-pressed=\"false\"]:not(:disabled):hover {\n background: var(--msr-color-ink-200, #e2e8f0);\n @supports (color: color-mix(in lab, red, red)) {\n background: color-mix(in srgb, var(--msr-color-ink-200, #e2e8f0) 50%, transparent);\n }\n}\n.mesurer-toolbar-mode-button:focus-visible {\n outline: 1px solid var(--msr-color-ink-500, #64748b);\n outline-offset: 1px;\n}\n.mesurer-toolbar-mode-button:disabled {\n cursor: default;\n opacity: 0.35;\n}\n.mesurer-toolbar-mode-stage {\n --msr-select-mode-w: 0px;\n --msr-edit-mode-w: 0px;\n position: relative;\n flex: none;\n width: var(--msr-select-mode-w);\n overflow: visible;\n}\n.mesurer-toolbar-mode-stage[data-mode=\"edit\"] {\n width: var(--msr-edit-mode-w);\n}\n.mesurer-toolbar-mode-track {\n display: flex;\n width: max-content;\n align-items: stretch;\n transform: translateX(0);\n}\n.mesurer-toolbar-mode-stage[data-mode=\"edit\"] .mesurer-toolbar-mode-track {\n transform: translateX(calc(-1 * var(--msr-select-mode-w)));\n}\n.mesurer-toolbar-mode-slot {\n flex: none;\n width: var(--msr-select-mode-w);\n}\n.mesurer-toolbar-mode-slot[data-mode=\"edit\"] {\n width: var(--msr-edit-mode-w);\n}\n.mesurer-toolbar-mode-panel {\n display: flex;\n width: max-content;\n align-items: stretch;\n}\n.mesurer-toolbar-mode-slot[data-open=\"false\"] {\n visibility: hidden;\n pointer-events: none;\n}\n.mesurer-toolbar-mode-stage[data-mode-motion=\"true\"] {\n overflow: hidden;\n}\n.mesurer-toolbar-mode-stage[data-mode-motion=\"true\"] .mesurer-toolbar-mode-slot[data-open=\"false\"] {\n visibility: visible;\n}\n.mesurer-toolbar-mode-stage:has( .mesurer-toolbar-mode-slot[data-open=\"true\"] [role=\"menu\"], .mesurer-toolbar-mode-slot[data-open=\"true\"] [role=\"dialog\"] ) {\n overflow: visible;\n}\n.mesurer-toolbar-mode-stage[data-ready=\"true\"], .mesurer-toolbar-mode-stage[data-ready=\"true\"] .mesurer-toolbar-mode-track {\n transition-duration: 150ms;\n transition-timing-function: ease;\n}\n.mesurer-toolbar-mode-stage[data-ready=\"true\"] {\n transition-property: width;\n}\n.mesurer-toolbar-mode-stage[data-compact-motion=\"true\"] {\n transition-property: none;\n}\n.mesurer-toolbar-mode-stage[data-ready=\"true\"] .mesurer-toolbar-mode-track {\n transition-property: transform;\n}\n.mesurer-toolbar-mode-switch {\n --msr-toolbar-mode-motion: 150ms ease;\n}\n.mesurer-toolbar-mode-switch-pill {\n transition: transform var(--msr-toolbar-mode-motion);\n}\n@media (prefers-reduced-motion: reduce) {\n .mesurer-toolbar-mode-stage, .mesurer-toolbar-mode-track, .mesurer-toolbar-mode-switch-pill {\n transition: none !important;\n }\n}\n@property --tw-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-border-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-leading {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-font-weight {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ordinal {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-slashed-zero {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-figure {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-spacing {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-fraction {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-inset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-ring-inset {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-offset-width {\n syntax: \"<length>\";\n inherits: false;\n initial-value: 0px;\n}\n@property --tw-ring-offset-color {\n syntax: \"*\";\n inherits: false;\n initial-value: #fff;\n}\n@property --tw-ring-offset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-outline-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-duration {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ease {\n syntax: \"*\";\n inherits: false;\n}\n@layer properties {\n @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n *, ::before, ::after, ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-border-style: solid;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-ordinal: initial;\n --tw-slashed-zero: initial;\n --tw-numeric-figure: initial;\n --tw-numeric-spacing: initial;\n --tw-numeric-fraction: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-outline-style: solid;\n --tw-duration: initial;\n --tw-ease: initial;\n }\n }\n}\n", Qa = {
3524
3524
  keepTextChanges: !1,
3525
3525
  keepArrangeChanges: !1
3526
3526
  }, $a = (e) => e.state.get("mesurer.presentation.preferences") ?? Qa, eo = "mesurer.arrange", to = "arrange", no = "mesurer.arrange.intents", ro = "mesurer.arrange.active", io = "mesurer.arrange.settings", ao = "runtime:solid", oo = "builtin.select", so = "arrange.toggle", co = "arrange.commit", lo = "arrange.clear", uo = "arrange.reset-selection", fo = "arrange.reset-all", po = "mesurer.arrange.selection-available", mo = 1, ho = 24, go = 160, _o = 500, vo = "#ef4444", yo = 24, bo = 6, xo = 30, So = .5, Co = 4, wo = "[data-mesurer-text-editor='true']", To = {
@@ -3676,18 +3676,18 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
3676
3676
  ...e,
3677
3677
  ...t
3678
3678
  }));
3679
- }, ee = () => Po(r), k = () => T().intents.filter((e) => e.pageUrl === ee()), A = (e) => !!e.closest("[data-mesurer-island='true'], [data-mesurer-inspector-ui='true'], [data-mesurer-root='true']"), j = (e) => ra(e, o) && !A(e), te = (e) => {
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) && !A(o) && t.push(o);
3682
- for (let n of o.querySelectorAll(e)) n instanceof c.HTMLElement && j(n) && t.push(n);
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
- }, M = (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)), N = (e) => {
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 && j(n) && M(n, e)) return n;
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 = te(e.selector).filter((e) => ca(e, t));
3690
+ r = ee(e.selector).filter((e) => ca(e, t));
3691
3691
  } catch {
3692
3692
  return null;
3693
3693
  }
@@ -3695,22 +3695,22 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
3695
3695
  if (!t.id && !t.testId) {
3696
3696
  let e = [];
3697
3697
  try {
3698
- e = te(t.tag).filter((e) => ca(e, t));
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
- }, P = {
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, P)) && h.set(e, t), Vo(t, P) || e.style.setProperty("transition-property", P.value, P.priority);
3710
+ (!h.get(e) || !Vo(t, te)) && h.set(e, t), Vo(t, te) || e.style.setProperty("transition-property", te.value, te.priority);
3711
3711
  }, I = (e) => {
3712
3712
  let t = h.get(e);
3713
- t && (Vo(zo(e, "transition-property"), P) && (t.value || t.priority ? e.style.setProperty("transition-property", t.value, t.priority) : e.style.removeProperty("transition-property")), h.delete(e));
3713
+ t && (Vo(zo(e, "transition-property"), te) && (t.value || t.priority ? e.style.setProperty("transition-property", t.value, t.priority) : e.style.removeProperty("transition-property")), h.delete(e));
3714
3714
  }, L = (e) => {
3715
3715
  for (let t of h.keys()) e.has(t) || I(t);
3716
3716
  }, R = () => {
@@ -3760,10 +3760,10 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
3760
3760
  x: 0,
3761
3761
  y: 0
3762
3762
  };
3763
- }, K = (e = k()) => {
3763
+ }, K = (e = A()) => {
3764
3764
  let t = /* @__PURE__ */ new Map();
3765
3765
  for (let n of e) for (let e of n.targets) {
3766
- let n = N(e);
3766
+ let n = P(e);
3767
3767
  n && t.set(n, e);
3768
3768
  }
3769
3769
  return t;
@@ -3777,7 +3777,7 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
3777
3777
  n = ne(n);
3778
3778
  }
3779
3779
  return null;
3780
- }, oe = (e = k(), t = /* @__PURE__ */ new Map()) => {
3780
+ }, oe = (e = A(), t = /* @__PURE__ */ new Map()) => {
3781
3781
  let n = K(e), r = /* @__PURE__ */ new Set([...n.keys(), ...t.keys()]), i = /* @__PURE__ */ new Map(), a = /* @__PURE__ */ new Set(), o = (e) => {
3782
3782
  let s = i.get(e);
3783
3783
  if (s) return s;
@@ -3813,7 +3813,7 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
3813
3813
  if (!e) return oe();
3814
3814
  let t = /* @__PURE__ */ new Map();
3815
3815
  for (let n of e.targets) {
3816
- let e = N(n);
3816
+ let e = P(n);
3817
3817
  e && t.set(e, v.state === "before" ? {
3818
3818
  x: n.beforeOffsetX,
3819
3819
  y: n.beforeOffsetY
@@ -3825,7 +3825,7 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
3825
3825
  return t;
3826
3826
  }, ce = (e) => {
3827
3827
  let t = [...e].flatMap(([t, n]) => {
3828
- if (!t.isConnected || !j(t)) return [];
3828
+ if (!t.isConnected || !M(t)) return [];
3829
3829
  let r = re(t, e), i = {
3830
3830
  x: n.x - r.x,
3831
3831
  y: n.y - r.y
@@ -3853,7 +3853,7 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
3853
3853
  } finally {
3854
3854
  !S && !y && le();
3855
3855
  }
3856
- }, de = () => i.currentSelection().elements.filter((e) => e instanceof c.HTMLElement && e.isConnected && j(e));
3856
+ }, de = () => i.currentSelection().elements.filter((e) => e instanceof c.HTMLElement && e.isConnected && M(e));
3857
3857
  e.state.register({
3858
3858
  id: po,
3859
3859
  initial: de().length > 0
@@ -3877,7 +3877,7 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
3877
3877
  me();
3878
3878
  return;
3879
3879
  }
3880
- let t = k(), r = K(t), i = oe(t), a = /* @__PURE__ */ new Set();
3880
+ let t = A(), r = K(t), i = oe(t), a = /* @__PURE__ */ new Set();
3881
3881
  for (let t of de()) {
3882
3882
  let o = r.get(t);
3883
3883
  if (!o) continue;
@@ -3903,9 +3903,9 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
3903
3903
  let n = new Set(t);
3904
3904
  n.size && (e.state.update("mesurer.arrange.intents", (e) => {
3905
3905
  let t = !1, r = e.intents.flatMap((e) => {
3906
- if (e.pageUrl !== ee()) return [e];
3906
+ if (e.pageUrl !== k()) return [e];
3907
3907
  let r = e.targets.filter((e) => {
3908
- let r = N(e), i = r !== null && n.has(r);
3908
+ let r = P(e), i = r !== null && n.has(r);
3909
3909
  return i && (t = !0), !i;
3910
3910
  });
3911
3911
  return r.length ? r.length === e.targets.length ? [e] : [{
@@ -3917,14 +3917,14 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
3917
3917
  }), xe(), be());
3918
3918
  }, ve = () => {
3919
3919
  e.state.update(no, (e) => {
3920
- let t = e.intents.filter((e) => e.pageUrl !== ee());
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)) || !j(i)) return;
3927
+ if (u >= _o || a.has(i) || e.some((e) => e.contains(i)) || !M(i)) return;
3928
3928
  let o = r.getComputedStyle(i);
3929
3929
  if (o.display === "none" || o.visibility === "hidden" || o.visibility === "collapse") return;
3930
3930
  let s = o.outlineStyle === "solid" && (Number.parseFloat(o.outlineWidth) || 0) > 0;
@@ -4033,7 +4033,7 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
4033
4033
  x: e.clientX,
4034
4034
  y: e.clientY
4035
4035
  }, o, n))) : null, s = e.shiftKey ? a : null;
4036
- if (e.shiftKey && s instanceof c.HTMLElement && j(s) && !r.includes(s)) {
4036
+ if (e.shiftKey && s instanceof c.HTMLElement && M(s) && !r.includes(s)) {
4037
4037
  e.preventDefault(), e.stopPropagation(), i.toggleSelection(s);
4038
4038
  return;
4039
4039
  }
@@ -4041,7 +4041,7 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
4041
4041
  intentId: null,
4042
4042
  state: "desired"
4043
4043
  }, le();
4044
- let u = K(k()), d = oe(k()), p = new Set(r);
4044
+ let u = K(A()), d = oe(A()), p = new Set(r);
4045
4045
  z();
4046
4046
  let m = r.map((e, t) => {
4047
4047
  let n = zi(e), r = re(e, d), i = d.get(e) ?? r, a = u.get(e), o = (a ? ie(a) : null) ?? {
@@ -4097,7 +4097,7 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
4097
4097
  targets: m,
4098
4098
  groupBefore: h,
4099
4099
  snapCandidates: ye(r),
4100
- pressTarget: a instanceof c.HTMLElement && j(a) ? a : null,
4100
+ pressTarget: a instanceof c.HTMLElement && M(a) ? a : null,
4101
4101
  shiftToggleElement: e.shiftKey && s instanceof c.HTMLElement && r.includes(s) ? s : null,
4102
4102
  moved: !1,
4103
4103
  dx: 0,
@@ -4129,7 +4129,7 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
4129
4129
  y: n
4130
4130
  }), a = r === "y" ? null : No("x", i, y.snapCandidates), o = r === "x" ? null : No("y", i, y.snapCandidates);
4131
4131
  t += a?.delta ?? 0, n += o?.delta ?? 0, y.dx = t, y.dy = n;
4132
- let s = oe(k(), De(y, t, n));
4132
+ let s = oe(A(), De(y, t, n));
4133
4133
  ce(s);
4134
4134
  let c = Eo(y.groupBefore, {
4135
4135
  x: t,
@@ -4154,11 +4154,11 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
4154
4154
  xe(), be();
4155
4155
  return;
4156
4156
  }
4157
- let a = oe(k(), De(n, n.dx, n.dy));
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: ee(),
4161
+ pageUrl: k(),
4162
4162
  targets: n.targets.map(({ element: e, movesDirectly: t, target: r }) => {
4163
4163
  let i = {
4164
4164
  x: r.beforeLocalOffsetX ?? 0,
@@ -4199,7 +4199,7 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
4199
4199
  let n = e.composedPath();
4200
4200
  if (!n.includes(f) && t.rendererRoot && n.includes(t.rendererRoot)) return;
4201
4201
  let r = Me(e);
4202
- i.setHover(r instanceof c.HTMLElement && j(r) ? r : null);
4202
+ i.setHover(r instanceof c.HTMLElement && M(r) ? r : null);
4203
4203
  }, Pe = (t) => {
4204
4204
  if (t.key !== "Escape" || !E() && !y || Wo(t.target) || s.querySelector("[data-mesurer-tool-menu]")) return;
4205
4205
  if (t.preventDefault(), t.stopImmediatePropagation(), y) {
@@ -4241,7 +4241,7 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
4241
4241
  top: e.desiredTop,
4242
4242
  width: e.desiredWidth,
4243
4243
  height: e.desiredHeight
4244
- }))) : ue(() => Oo(e.targets.map((e) => N(e)).filter((e) => e !== null).map((e) => zi(e)))), !n) throw Error(`Edit movement intent has no resolvable capture region: ${e.id}`);
4244
+ }))) : ue(() => Oo(e.targets.map((e) => P(e)).filter((e) => e !== null).map((e) => zi(e)))), !n) throw Error(`Edit movement intent has no resolvable capture region: ${e.id}`);
4245
4245
  let i = Math.max(0, n.left - ho), a = Math.max(0, n.top - ho), o = Math.min(r.innerWidth, n.left + n.width + ho), s = Math.min(r.innerHeight, n.top + n.height + ho);
4246
4246
  return {
4247
4247
  left: i,
@@ -4291,7 +4291,7 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
4291
4291
  let n = Le(e);
4292
4292
  if (!n) throw Error(`Edit movement intent not found: ${e}`);
4293
4293
  let r = ue(() => n.targets.map((e) => {
4294
- let n = N(e), r = {
4294
+ let n = P(e), r = {
4295
4295
  left: e.desiredLeft,
4296
4296
  top: e.desiredTop,
4297
4297
  width: e.desiredWidth,
@@ -4391,7 +4391,7 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
4391
4391
  {
4392
4392
  id: "reset-all-positions",
4393
4393
  label: "Reset all positions",
4394
- disabled: () => k().length === 0,
4394
+ disabled: () => A().length === 0,
4395
4395
  run: async () => {
4396
4396
  await e.command.execute(fo, void 0, { source: "arrange-menu" });
4397
4397
  }
@@ -4770,7 +4770,7 @@ var ms = (e, t, n) => Math.min(Math.max(e, t), Math.max(t, n)), hs = 0, gs = (e)
4770
4770
  } : bs(e, t, n, r, i);
4771
4771
  };
4772
4772
  function Ss(e) {
4773
- let [t, n] = en(0), [r, i] = en(0), [a, o] = en(null), [s, c] = en(null), [l, u] = en(null), [d, f] = en({}), [p, m] = en(null), [h, g] = en(!1), [_, v] = en(""), [y, b] = en(null), [x, S] = en(!1), [C, w] = en(null), [T, E] = en(null), D = `--mesurer-annotation-trigger-${++hs}`, O = null, ee = e.initialTriggerFallback === "current-and-next", k = null, A = null, j = null, te, M, N = null, P = null, F = null, I = null, L = null, R = null, z = /* @__PURE__ */ new Map(), B = () => te?.ownerDocument.defaultView ?? window, V = () => e.coordinateSpace === "viewport", H = (e) => e ? "native-anchor" : V() ? "cached-delta" : "document", U = (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, k = e.initialTriggerFallback === "current-and-next", A = null, j = null, M = null, ee, N, P = null, te = null, F = null, I = null, L = null, R = null, z = /* @__PURE__ */ new Map(), B = () => ee?.ownerDocument.defaultView ?? window, V = () => e.coordinateSpace === "viewport", H = (e) => e ? "native-anchor" : V() ? "cached-delta" : "document", U = (e) => {
4774
4774
  if (V()) return e;
4775
4775
  let t = B();
4776
4776
  return {
@@ -4784,7 +4784,7 @@ function Ss(e) {
4784
4784
  region: t.region ? { ...t.region } : null
4785
4785
  };
4786
4786
  }, G = (e, t) => e.elements.length !== t.elements.length || e.elements.some((e, n) => e !== t.elements[n]) ? !1 : e.region === t.region ? !0 : !e.region || !t.region ? !1 : e.region.left === t.region.left && e.region.top === t.region.top && e.region.width === t.region.width && e.region.height === t.region.height, ne = () => {
4787
- k = null, v(""), g(!1), b(null), m(null);
4787
+ A = null, v(""), g(!1), b(null), m(null);
4788
4788
  }, re = () => {
4789
4789
  let e = B();
4790
4790
  return !!(e.CSS?.supports("anchor-name: --mesurer-annotation-trigger") && e.CSS.supports("position-anchor: --mesurer-annotation-trigger") && e.CSS.supports("left: anchor(left)"));
@@ -4793,9 +4793,9 @@ function Ss(e) {
4793
4793
  if (!t.length) return null;
4794
4794
  let n = e.runtime.hoveredElement();
4795
4795
  return t.find((e) => e === n) ?? t.find((e) => n && e.contains(n)) ?? t[0];
4796
- }, ie = () => te?.parentElement, ae = () => {
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 !== M || P === null) : [];
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() && te && re() && e.getRootNode() === te.getRootNode()), ue = (e) => {
4808
+ }, le = (e) => !!(_s(e) && V() && ee && re() && e.getRootNode() === ee.getRootNode()), ue = (e) => {
4809
4809
  let t = ce(e), n = z.get(e);
4810
4810
  if (!t) {
4811
4811
  n && (se(e), i((e) => e + 1));
@@ -4849,22 +4849,22 @@ function Ss(e) {
4849
4849
  };
4850
4850
  e.initialTriggerFallback && (O = K());
4851
4851
  let pe = () => {
4852
- I?.release(), I = null, F?.(), F = null, N = null, P = null;
4853
- }, me = (e) => !!(_s(e) && V() && te && e !== O && re() && e.getRootNode() === te.getRootNode()), he = () => {
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 = N, n = !!(e?.isConnected && me(e)), r = P === e;
4857
- if (e === N && e?.isConnected && n === r) {
4856
+ let t = P, n = !!(e?.isConnected && me(e)), r = te === e;
4857
+ if (e === P && e?.isConnected && n === r) {
4858
4858
  I?.sync();
4859
4859
  return;
4860
4860
  }
4861
4861
  let i = e === t ? D : `--mesurer-annotation-trigger-${++hs}`;
4862
4862
  if (pe(), !e?.isConnected) return;
4863
- N = e;
4863
+ P = e;
4864
4864
  let a = e.ownerDocument.defaultView;
4865
4865
  if (a) {
4866
4866
  if (n && _s(e)) {
4867
- F = vs(e, i), P = e, D = i, I = mi(a, e, ae, { trackWindow: !1 });
4867
+ F = vs(e, i), te = e, D = i, I = mi(a, e, ae, { trackWindow: !1 });
4868
4868
  return;
4869
4869
  }
4870
4870
  D = i, I = mi(a, e, ae, { trackWindow: V() });
@@ -4886,9 +4886,9 @@ function Ss(e) {
4886
4886
  ge(ye);
4887
4887
  let be = e.runtime.subscribe(() => {
4888
4888
  let t = e.runtime.selectGestureActive();
4889
- h() && t ? (ee = !0, ne()) : h() && k !== null && !G(k, W()) && (O = K(), ee = !1, ne());
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), ee && (ee = !1, O = r)), he(), i && ve(), n((e) => e + 1), fe();
4891
+ i && (ye = r, ge(ye), k && (k = !1, O = r)), he(), i && ve(), n((e) => e + 1), fe();
4892
4892
  });
4893
4893
  he(), B().queueMicrotask(de), At(() => {
4894
4894
  L?.disconnect(), L = null, R?.removeEventListener("resize", ve), R = null, pe();
@@ -4920,7 +4920,7 @@ function Ss(e) {
4920
4920
  return o ? [{ ...o }] : [];
4921
4921
  }), De = () => xe().elements.length > 0 || xe().region !== null, Oe = () => {
4922
4922
  t();
4923
- let e = k;
4923
+ let e = A;
4924
4924
  return e !== null && G(e, W());
4925
4925
  }, ke = $t(() => {
4926
4926
  let e = xe(), t = e.elements.filter((e) => e.isConnected).map((e) => {
@@ -4964,7 +4964,7 @@ function Ss(e) {
4964
4964
  }, {
4965
4965
  obstacles: i,
4966
4966
  maxShiftRings: 1
4967
- }), o = a?.left ?? ms(n.left + n.width + 6, 4, r.innerWidth - 24 - 4), s = a?.top ?? ms(n.top, 4, r.innerHeight - 24 - 4), c = P === e, l = V() && !c;
4967
+ }), o = a?.left ?? ms(n.left + n.width + 6, 4, r.innerWidth - 24 - 4), s = a?.top ?? ms(n.top, 4, r.innerHeight - 24 - 4), c = te === e, l = V() && !c;
4968
4968
  return {
4969
4969
  left: c || l ? o : o + r.scrollX,
4970
4970
  top: c || l ? s : s + r.scrollY,
@@ -5013,7 +5013,7 @@ function Ss(e) {
5013
5013
  }, ze = () => {
5014
5014
  r();
5015
5015
  let e = Re(), t = Ne();
5016
- if (!t?.isConnected || P !== t) return {
5016
+ if (!t?.isConnected || te !== t) return {
5017
5017
  ...U(e),
5018
5018
  nativeAnchor: !1
5019
5019
  };
@@ -5098,14 +5098,14 @@ function Ss(e) {
5098
5098
  });
5099
5099
  });
5100
5100
  }, Ue = (e) => Le(e, Ve(e)), We = (e) => {
5101
- ee = !1, k = null, g(!1), ue(e), He(e), o(e), w(null), q(e);
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"), A = {
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 (!A || t.pointerId !== A.pointerId) return;
5120
- let r = A, i = Math.max(8, s.innerWidth - r.width - 8), a = Math.max(8, s.innerHeight - r.height - 8), o = {
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
- !A || e.pointerId !== t.pointerId || (c.style.userSelect = l, s.removeEventListener("pointermove", u), s.removeEventListener("pointerup", d), s.removeEventListener("pointercancel", d), A = null, E(null), j = null);
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), j = () => {
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
- j?.(), j = null, A = null;
5149
+ M?.(), M = null, j = null;
5150
5150
  });
5151
5151
  let Ke = async (e, t) => {
5152
5152
  if (!x()) {
@@ -5161,7 +5161,7 @@ function Ss(e) {
5161
5161
  }
5162
5162
  }, qe = ne, Je = () => {
5163
5163
  if (!De()) return;
5164
- ee = !1, k = W(), v(""), b(null), w(null), o(null);
5164
+ k = !1, A = W(), v(""), b(null), w(null), o(null);
5165
5165
  let e = Ae();
5166
5166
  if (e) {
5167
5167
  let t = xs(e, 272, 168, B());
@@ -5173,13 +5173,13 @@ function Ss(e) {
5173
5173
  g(!0), B().queueMicrotask(() => I?.sync());
5174
5174
  }, Ye = () => {
5175
5175
  let e = h();
5176
- k !== null && !G(k, W()) ? (O = K(), ee = !1, he(), ve()) : e && (ee = !1), qe();
5176
+ A !== null && !G(A, W()) ? (O = K(), k = !1, he(), ve()) : e && (k = !1), qe();
5177
5177
  }, Xe = () => {
5178
- h() && (ee = !0, qe());
5178
+ h() && (k = !0, qe());
5179
5179
  }, Ze = () => {
5180
5180
  try {
5181
5181
  let t = e.runtime.addSelectionAnnotation(_());
5182
- ee = !1, k = null, v(""), b(null), g(!1), m(null), ue(t.id), He(t.id), o(t.id), w(null), q(t.id);
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
- te = e, _e(), he();
5198
+ ee = e, _e(), he();
5199
5199
  }, e), e;
5200
5200
  })(),
5201
5201
  Y(on, {
@@ -5227,7 +5227,7 @@ function Ss(e) {
5227
5227
  }
5228
5228
  });
5229
5229
  return fr(() => (e) => {
5230
- M = e, I?.sync();
5230
+ N = e, I?.sync();
5231
5231
  }, t), Q(t, Y(Mi, { size: 14 })), or(() => ({
5232
5232
  e: V() ? "viewport" : "document",
5233
5233
  t: H(e().nativeAnchor),
@@ -6824,63 +6824,63 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
6824
6824
  }), E.append(D);
6825
6825
  let O = e.createElement("div");
6826
6826
  E.append(O);
6827
- let ee = e.createElement("p");
6828
- ee.textContent = "Size", _l(ee, {
6827
+ let k = e.createElement("p");
6828
+ k.textContent = "Size", _l(k, {
6829
6829
  margin: "0",
6830
6830
  padding: "6px 8px 4px",
6831
6831
  color: "var(--msr-color-ink-500, #64748b)",
6832
6832
  "font-size": "10px",
6833
6833
  "font-weight": "500"
6834
- }), E.append(ee);
6835
- let k = e.createElement("div");
6836
- E.append(k);
6837
- let A = [
6834
+ }), E.append(k);
6835
+ let A = e.createElement("div");
6836
+ E.append(A);
6837
+ let j = [
6838
6838
  1,
6839
6839
  2,
6840
6840
  3
6841
6841
  ].map((t) => {
6842
6842
  let n = bl(e, `${t}×`);
6843
- return n.button.dataset.mesurerRecordingScale = String(t), k.append(n.button), {
6843
+ return n.button.dataset.mesurerRecordingScale = String(t), A.append(n.button), {
6844
6844
  scale: t,
6845
6845
  ...n
6846
6846
  };
6847
- }), j = yl(e, "Download", "↓");
6848
- j.dataset.mesurerRecordingExport = "true", d.append(j);
6849
- let te = yl(e, "Grow preview", "↗");
6850
- te.dataset.mesurerRecordingExpand = "true", d.append(te);
6851
- let M = e.createElement("p");
6852
- M.dataset.mesurerRecordingPreviewStatus = "true", M.setAttribute("role", "status"), _l(M, {
6847
+ }), M = yl(e, "Download", "↓");
6848
+ M.dataset.mesurerRecordingExport = "true", d.append(M);
6849
+ let ee = yl(e, "Grow preview", "↗");
6850
+ ee.dataset.mesurerRecordingExpand = "true", d.append(ee);
6851
+ let N = e.createElement("p");
6852
+ N.dataset.mesurerRecordingPreviewStatus = "true", N.setAttribute("role", "status"), _l(N, {
6853
6853
  display: "none",
6854
6854
  margin: "8px 0 0",
6855
6855
  color: "var(--msr-color-ink-500, #64748b)",
6856
6856
  "font-size": "11px",
6857
6857
  "line-height": "16px"
6858
- }), o.append(M);
6859
- let N = null, P = 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 = N?.duration ?? 0;
6858
+ }), o.append(N);
6859
+ let P = null, te = null, F = !1, I = !1, L = 0, R = ["webm"], z = "webm", B = 1, V = 0, H = 0, U = null, W = null, G = null, ne = (e) => {
6860
+ let t = P?.duration ?? 0;
6861
6861
  return t <= 0 ? 0 : Math.min(1, Math.max(0, e / t));
6862
6862
  }, re = () => ({
6863
6863
  start: V,
6864
6864
  end: H
6865
6865
  }), K = (e) => {
6866
- let t = N?.duration ?? 0, n = h.getBoundingClientRect();
6866
+ let t = P?.duration ?? 0, n = h.getBoundingClientRect();
6867
6867
  return t <= 0 || n.width <= 0 ? 0 : Math.min(t, Math.max(0, (e - n.left) / n.width * t));
6868
6868
  }, ie = () => {
6869
- let e = N?.duration ?? 0, t = Math.min(e, Math.max(0, c.currentTime || 0)), n = ne(V) * 100, r = ne(H) * 100;
6869
+ let e = P?.duration ?? 0, t = Math.min(e, Math.max(0, c.currentTime || 0)), n = ne(V) * 100, r = ne(H) * 100;
6870
6870
  x.style.left = `${n}%`, S.style.left = `${r}%`, _.style.left = `${n}%`, _.style.width = `${Math.max(0, r - n)}%`, y.style.left = `${ne(t) * 100}%`, x.setAttribute("aria-valuemax", String(Math.max(0, H - ml))), x.setAttribute("aria-valuenow", String(V)), x.setAttribute("aria-valuetext", vl(V)), S.setAttribute("aria-valuemin", String(Math.min(e, V + ml))), S.setAttribute("aria-valuemax", String(e)), S.setAttribute("aria-valuenow", String(H)), S.setAttribute("aria-valuetext", vl(H)), p.textContent = vl(t), C.textContent = vl(e);
6871
6871
  }, ae = (e, t = !0) => {
6872
- if (!N) return;
6872
+ if (!P) return;
6873
6873
  let n = Math.min(H, Math.max(V, e));
6874
6874
  t && !c.paused && c.pause(), c.currentTime = n, ie();
6875
6875
  }, oe = (e, t = !1) => {
6876
- N && (V = Math.min(Math.max(0, e), Math.max(0, H - ml)), (t || c.currentTime < V) && ae(V), ie());
6876
+ P && (V = Math.min(Math.max(0, e), Math.max(0, H - ml)), (t || c.currentTime < V) && ae(V), ie());
6877
6877
  }, se = (e, t = !1) => {
6878
- N && (H = Math.max(Math.min(N.duration, e), Math.min(N.duration, V + ml)), t ? ae(H) : c.currentTime > H && ae(V), ie());
6878
+ P && (H = Math.max(Math.min(P.duration, e), Math.min(P.duration, V + ml)), t ? ae(H) : c.currentTime > H && ae(V), ie());
6879
6879
  }, ce = () => {
6880
6880
  T.textContent = `${B}×`;
6881
- for (let e of A) {
6881
+ for (let e of j) {
6882
6882
  let t = e.scale === B;
6883
- e.button.setAttribute("aria-checked", t ? "true" : "false"), e.check.style.opacity = t ? "1" : "0", e.text.textContent = N ? `${e.scale}× ${Math.round(N.width * e.scale)} × ${Math.round(N.height * e.scale)}` : `${e.scale}×`;
6883
+ e.button.setAttribute("aria-checked", t ? "true" : "false"), e.check.style.opacity = t ? "1" : "0", e.text.textContent = P ? `${e.scale}× ${Math.round(P.width * e.scale)} × ${Math.round(P.height * e.scale)}` : `${e.scale}×`;
6884
6884
  }
6885
6885
  }, le = () => {
6886
6886
  O.replaceChildren();
@@ -6904,20 +6904,20 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
6904
6904
  x,
6905
6905
  S,
6906
6906
  T,
6907
- j,
6908
- te,
6909
- ...A.map((e) => e.button)
6907
+ M,
6908
+ ee,
6909
+ ...j.map((e) => e.button)
6910
6910
  ]) t.toggleAttribute("disabled", e);
6911
6911
  }, fe = () => n.closest("[data-mesurer-root='true']")?.querySelector("[data-mesurer-tool-id='recording']") ?? e.querySelector("[data-mesurer-tool-id='recording']"), pe = () => {
6912
6912
  if (o.style.display === "none") return;
6913
6913
  let e = Math.min(F ? dl : ul, Math.max(1, t.innerWidth - 16)), n = Math.max(180, o.offsetHeight), r = fe()?.getBoundingClientRect(), i = r ? r.left + r.width / 2 : t.innerWidth - fl - e / 2, a = fl + e / 2, s = Math.max(a, t.innerWidth - fl - e / 2), c = Math.min(Math.max(a, i), s), l = r ? r.bottom + pl : fl;
6914
6914
  l + n > t.innerHeight - fl && (l = r ? r.top - n - pl : t.innerHeight - n - fl), o.style.left = `${c}px`, o.style.top = `${Math.max(fl, l)}px`, E.style.display !== "none" && ue();
6915
6915
  }, me = () => {
6916
- c.pause(), c.removeAttribute("src"), c.load(), P &&= (globalThis.URL.revokeObjectURL(P), null);
6916
+ c.pause(), c.removeAttribute("src"), c.load(), te &&= (globalThis.URL.revokeObjectURL(te), null);
6917
6917
  }, he = () => {
6918
- L += 1, G &&= (G.cancel(), null), me(), N = 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"), M.style.display = "none", q(!1);
6918
+ L += 1, G &&= (G.cancel(), null), me(), P = null, U = null, W = null, de(!1), o.style.display = "none", o.style.pointerEvents = "auto", o.style.opacity = "1", o.style.transform = "translateX(-50%)", o.style.removeProperty("transform-origin"), o.style.removeProperty("will-change"), N.style.display = "none", q(!1);
6919
6919
  }, ge = () => {
6920
- if (!N || o.style.display === "none" || G) return;
6920
+ if (!P || o.style.display === "none" || G) return;
6921
6921
  let e = o.getBoundingClientRect(), t = fe()?.getBoundingClientRect(), n = t ? t.left + t.width / 2 : e.left + e.width / 2, r = t ? t.top + t.height / 2 : e.top + e.height / 2;
6922
6922
  c.pause(), de(!1), o.style.pointerEvents = "none", o.style.left = `${e.left}px`, o.style.top = `${e.top}px`, o.style.transform = "none", o.style.transformOrigin = `${n - e.left}px ${r - e.top}px`, o.style.willChange = "transform, opacity";
6923
6923
  let a = o.animate([{
@@ -6935,7 +6935,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
6935
6935
  G === a && (a.cancel(), G = null, o.style.removeProperty("will-change"), i());
6936
6936
  });
6937
6937
  }, _e = () => {
6938
- if (!(!N || I)) {
6938
+ if (!(!P || I)) {
6939
6939
  if (!c.paused) {
6940
6940
  c.pause();
6941
6941
  return;
@@ -6949,7 +6949,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
6949
6949
  let t = K(e);
6950
6950
  U === "start" ? oe(t, !0) : U === "end" ? se(t, !0) : ae(t);
6951
6951
  }, be = (e, t) => {
6952
- !N || I || t.button !== 0 || (t.preventDefault(), t.stopPropagation(), U = e, W = t.pointerId, y.style.height = "10px", ye(t.clientX));
6952
+ !P || I || t.button !== 0 || (t.preventDefault(), t.stopPropagation(), U = e, W = t.pointerId, y.style.height = "10px", ye(t.clientX));
6953
6953
  }, xe = (e) => {
6954
6954
  W !== null && e.pointerId === W && ye(e.clientX);
6955
6955
  }, Se = (e) => {
@@ -6964,7 +6964,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
6964
6964
  v.style.display = "none";
6965
6965
  });
6966
6966
  for (let [e, t] of [["start", x], ["end", S]]) t.addEventListener("keydown", (t) => {
6967
- if (!N || t.key !== "ArrowLeft" && t.key !== "ArrowRight") return;
6967
+ if (!P || t.key !== "ArrowLeft" && t.key !== "ArrowRight") return;
6968
6968
  t.preventDefault();
6969
6969
  let n = t.key === "ArrowLeft" ? -1 : 1, r = (e === "start" ? V : H) + n * .05;
6970
6970
  e === "start" ? oe(r, !0) : se(r, !0);
@@ -6979,24 +6979,24 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
6979
6979
  }), c.addEventListener("pause", () => {
6980
6980
  f.textContent = "▶", f.setAttribute("aria-label", "Play"), f.title = "Play";
6981
6981
  }), c.addEventListener("timeupdate", () => {
6982
- N && (c.currentTime >= H - .01 ? (c.pause(), c.currentTime = V) : c.currentTime < V && (c.currentTime = V), ie());
6982
+ P && (c.currentTime >= H - .01 ? (c.pause(), c.currentTime = V) : c.currentTime < V && (c.currentTime = V), ie());
6983
6983
  }), c.addEventListener("loadedmetadata", () => {
6984
6984
  ie();
6985
6985
  }), T.addEventListener("click", () => {
6986
6986
  I || de(E.style.display === "none");
6987
6987
  });
6988
- for (let e of A) e.button.addEventListener("click", () => {
6988
+ for (let e of j) e.button.addEventListener("click", () => {
6989
6989
  B = e.scale, ce();
6990
6990
  });
6991
6991
  let Ce = (e) => {
6992
6992
  E.style.display !== "none" && (e.composedPath().includes(w) || de(!1));
6993
6993
  };
6994
- e.addEventListener("pointerdown", Ce, !0), te.addEventListener("click", () => {
6995
- F = !F, o.style.width = `${F ? dl : ul}px`, s.style.maxHeight = F ? "448px" : "144px", c.style.maxHeight = F ? "448px" : "144px", te.textContent = F ? "↙" : "↗", te.setAttribute("aria-label", F ? "Shrink preview" : "Grow preview"), te.title = F ? "Shrink preview" : "Grow preview", t.requestAnimationFrame(pe);
6996
- }), j.addEventListener("click", () => {
6997
- if (!N || I || R.length === 0) return;
6994
+ e.addEventListener("pointerdown", Ce, !0), ee.addEventListener("click", () => {
6995
+ F = !F, o.style.width = `${F ? dl : ul}px`, s.style.maxHeight = F ? "448px" : "144px", c.style.maxHeight = F ? "448px" : "144px", ee.textContent = F ? "↙" : "↗", ee.setAttribute("aria-label", F ? "Shrink preview" : "Grow preview"), ee.title = F ? "Shrink preview" : "Grow preview", t.requestAnimationFrame(pe);
6996
+ }), M.addEventListener("click", () => {
6997
+ if (!P || I || R.length === 0) return;
6998
6998
  let n = ++L, { start: r, end: i } = re();
6999
- q(!0), de(!1), M.style.display = "none", a({
6999
+ q(!0), de(!1), N.style.display = "none", a({
7000
7000
  format: z,
7001
7001
  startTime: r,
7002
7002
  endTime: i,
@@ -7004,7 +7004,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7004
7004
  }).then((r) => {
7005
7005
  n === L && xl(r.blob, r.filename, e, t);
7006
7006
  }).catch((e) => {
7007
- n === L && (M.style.display = "block", M.style.color = "var(--msr-danger-text, #dc2626)", M.textContent = e instanceof Error ? e.message : "Could not export the recording.");
7007
+ n === L && (N.style.display = "block", N.style.color = "var(--msr-danger-text, #dc2626)", N.textContent = e instanceof Error ? e.message : "Could not export the recording.");
7008
7008
  }).finally(() => {
7009
7009
  n === L && q(!1);
7010
7010
  });
@@ -7022,14 +7022,14 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7022
7022
  let we = () => pe();
7023
7023
  return t.addEventListener("resize", we), {
7024
7024
  show(e) {
7025
- L += 1, G &&= (G.cancel(), null), o.style.pointerEvents = "auto", o.style.opacity = "1", o.style.transform = "translateX(-50%)", o.style.removeProperty("transform-origin"), o.style.removeProperty("will-change"), me(), N = e, F = !1, B = 1, z = "webm", R = ["webm"], V = 0, H = e.duration, U = null, W = null;
7025
+ L += 1, G &&= (G.cancel(), null), o.style.pointerEvents = "auto", o.style.opacity = "1", o.style.transform = "translateX(-50%)", o.style.removeProperty("transform-origin"), o.style.removeProperty("will-change"), me(), P = e, F = !1, B = 1, z = "webm", R = ["webm"], V = 0, H = e.duration, U = null, W = null;
7026
7026
  let n = globalThis.URL.createObjectURL(e.blob);
7027
- P = 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", te.textContent = "↗", te.setAttribute("aria-label", "Grow preview"), te.title = "Grow preview", p.textContent = "0:00.00", C.textContent = vl(e.duration), M.style.display = "none", M.style.color = "var(--msr-color-ink-500, #64748b)", de(!1), le(), ce(), ie(), q(!1), o.style.display = "block", pe(), o.focus({ preventScroll: !0 });
7027
+ te = n, c.src = n, c.currentTime = 0, s.style.aspectRatio = e.width > 0 && e.height > 0 ? `${e.width} / ${e.height}` : "16 / 9", o.style.width = `${ul}px`, s.style.maxHeight = "144px", c.style.maxHeight = "144px", ee.textContent = "↗", ee.setAttribute("aria-label", "Grow preview"), ee.title = "Grow preview", p.textContent = "0:00.00", C.textContent = vl(e.duration), N.style.display = "none", N.style.color = "var(--msr-color-ink-500, #64748b)", de(!1), le(), ce(), ie(), q(!1), o.style.display = "block", pe(), o.focus({ preventScroll: !0 });
7028
7028
  let i = L;
7029
7029
  r(e).then((e) => {
7030
- i !== L || !N || (R = e, z = e.includes(z) ? z : e[0] ?? "webm", le(), j.disabled = e.length === 0, e.length === 0 && (M.style.display = "block", M.style.color = "var(--msr-danger-text, #dc2626)", M.textContent = "No MediaBunny video encoder is available in this runtime."));
7030
+ i !== L || !P || (R = e, z = e.includes(z) ? z : e[0] ?? "webm", le(), M.disabled = e.length === 0, e.length === 0 && (N.style.display = "block", N.style.color = "var(--msr-danger-text, #dc2626)", N.textContent = "No MediaBunny video encoder is available in this runtime."));
7031
7031
  }).catch((e) => {
7032
- i === L && (R = [], le(), j.disabled = !0, M.style.display = "block", M.style.color = "var(--msr-danger-text, #dc2626)", M.textContent = e instanceof Error ? e.message : "Could not inspect export support.");
7032
+ i === L && (R = [], le(), M.disabled = !0, N.style.display = "block", N.style.color = "var(--msr-danger-text, #dc2626)", N.textContent = e instanceof Error ? e.message : "Could not inspect export support.");
7033
7033
  }), t.requestAnimationFrame(pe);
7034
7034
  },
7035
7035
  dismiss: he,
@@ -7143,6 +7143,8 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7143
7143
  position: "fixed",
7144
7144
  display: "none",
7145
7145
  background: "transparent",
7146
+ outline: "2px solid var(--msr-accent, #0d99ff)",
7147
+ "outline-offset": "-1px",
7146
7148
  "box-shadow": "0 0 0 100vmax rgb(0 0 0 / 40%)",
7147
7149
  "pointer-events": "none"
7148
7150
  }), h.append(_);
@@ -7236,14 +7238,14 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7236
7238
  D.textContent = "×", D.style.color = "var(--msr-color-ink-500, #64748b)", w.append(D, E);
7237
7239
  let O = r.createElement("span");
7238
7240
  O.textContent = "px", O.style.color = "var(--msr-color-ink-500, #64748b)", w.append(O);
7239
- let ee = S("Position");
7240
- ee.style.marginTop = "8px";
7241
- let k = C("Left"), A = C("Top");
7242
- ee.append(k, A);
7243
- let j = r.createElement("span");
7244
- j.textContent = "px", j.style.color = "var(--msr-color-ink-500, #64748b)", ee.append(j);
7245
- let te = r.createElement("button");
7246
- te.type = "button", te.dataset.mesurerRecordingStart = "true", te.textContent = "● Start recording", Ll(te, {
7241
+ let k = S("Position");
7242
+ k.style.marginTop = "8px";
7243
+ let A = C("Left"), j = C("Top");
7244
+ k.append(A, j);
7245
+ let M = r.createElement("span");
7246
+ M.textContent = "px", M.style.color = "var(--msr-color-ink-500, #64748b)", k.append(M);
7247
+ let ee = r.createElement("button");
7248
+ ee.type = "button", ee.dataset.mesurerRecordingStart = "true", ee.textContent = "● Start recording", Ll(ee, {
7247
7249
  width: "100%",
7248
7250
  height: "28px",
7249
7251
  "margin-top": "8px",
@@ -7255,44 +7257,44 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7255
7257
  "font-size": "11px",
7256
7258
  "font-weight": "500",
7257
7259
  cursor: "pointer"
7258
- }), x.append(te);
7259
- let M = r.createElement("div");
7260
- M.dataset.mesurerRecordingGrid = "true", Ll(M, {
7260
+ }), x.append(ee);
7261
+ let N = r.createElement("div");
7262
+ N.dataset.mesurerRecordingGrid = "true", Ll(N, {
7261
7263
  position: "absolute",
7262
7264
  inset: "0",
7263
7265
  display: "none",
7264
7266
  "pointer-events": "none"
7265
- }), v.append(M);
7266
- let N = (e) => {
7267
+ }), v.append(N);
7268
+ let P = (e) => {
7267
7269
  let t = r.createElement("div");
7268
7270
  Ll(t, {
7269
7271
  position: "absolute",
7270
7272
  opacity: "0.3",
7271
7273
  ...e
7272
- }), M.append(t);
7274
+ }), N.append(t);
7273
7275
  };
7274
- N({
7276
+ P({
7275
7277
  left: "33.333%",
7276
7278
  top: "0",
7277
7279
  bottom: "0",
7278
7280
  borderLeft: "1px dashed var(--msr-color-ink-500, #64748b)"
7279
- }), N({
7281
+ }), P({
7280
7282
  left: "66.666%",
7281
7283
  top: "0",
7282
7284
  bottom: "0",
7283
7285
  borderLeft: "1px dashed var(--msr-color-ink-500, #64748b)"
7284
- }), N({
7286
+ }), P({
7285
7287
  top: "33.333%",
7286
7288
  left: "0",
7287
7289
  right: "0",
7288
7290
  borderTop: "1px dashed var(--msr-color-ink-500, #64748b)"
7289
- }), N({
7291
+ }), P({
7290
7292
  top: "66.666%",
7291
7293
  left: "0",
7292
7294
  right: "0",
7293
7295
  borderTop: "1px dashed var(--msr-color-ink-500, #64748b)"
7294
7296
  });
7295
- let P = Object.entries({
7297
+ let te = Object.entries({
7296
7298
  nw: {
7297
7299
  left: "0",
7298
7300
  top: "0"
@@ -7464,8 +7466,8 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7464
7466
  width: 0,
7465
7467
  height: 0
7466
7468
  });
7467
- v.style.display = "none", v.style.pointerEvents = "none", M.style.display = "none";
7468
- for (let e of P) e.style.display = "none";
7469
+ v.style.display = "none", v.style.pointerEvents = "none", N.style.display = "none";
7470
+ for (let e of te) e.style.display = "none";
7469
7471
  y.style.display = "none", x.style.display = "none", b.textContent = "Drag to select a region · Esc to cancel";
7470
7472
  return;
7471
7473
  }
@@ -7490,14 +7492,14 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7490
7492
  width: t,
7491
7493
  height: Math.max(0, n - e.top - e.height)
7492
7494
  }), v.style.display = "block", ve(v, e), K) {
7493
- v.style.pointerEvents = "auto", v.style.cursor = "move", M.style.display = "block";
7494
- for (let e of P) e.style.display = "block";
7495
- y.style.display = "none", T.value = String(Math.round(e.width)), E.value = String(Math.round(e.height)), k.value = String(Math.round(e.left)), A.value = String(Math.round(e.top)), T.max = String(t), E.max = String(n), k.max = String(Math.max(0, t - e.width)), A.max = String(Math.max(0, n - e.height));
7495
+ v.style.pointerEvents = "auto", v.style.cursor = "move", N.style.display = "block";
7496
+ for (let e of te) e.style.display = "block";
7497
+ y.style.display = "none", T.value = String(Math.round(e.width)), E.value = String(Math.round(e.height)), A.value = String(Math.round(e.left)), j.value = String(Math.round(e.top)), T.max = String(t), E.max = String(n), A.max = String(Math.max(0, t - e.width)), j.max = String(Math.max(0, n - e.height));
7496
7498
  let r = Math.min(Math.max(118, e.left + e.width / 2), Math.max(118, t - 110 - 8)), i = e.top + e.height + 12, a = i + 112 <= n ? i : Math.max(8, e.top - 112);
7497
7499
  x.style.left = `${r}px`, x.style.top = `${a}px`, x.style.display = "block", b.textContent = "Adjust region · Enter to start · Esc to cancel";
7498
7500
  } else {
7499
- v.style.pointerEvents = "none", v.style.cursor = "", M.style.display = "none";
7500
- for (let e of P) e.style.display = "none";
7501
+ v.style.pointerEvents = "none", v.style.cursor = "", N.style.display = "none";
7502
+ for (let e of te) e.style.display = "none";
7501
7503
  x.style.display = "none", y.style.display = "block", y.textContent = `${Math.round(e.width)} × ${Math.round(e.height)}`, ve(y, {
7502
7504
  left: e.left + e.width / 2,
7503
7505
  top: Math.min(n - 22, e.top + e.height + 6)
@@ -7513,8 +7515,8 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7513
7515
  width: 0,
7514
7516
  height: 0
7515
7517
  });
7516
- ve(_, e), _.style.display = "block", v.style.display = "none", y.style.display = "none", x.style.display = "none", M.style.display = "none", b.style.display = "none";
7517
- for (let e of P) e.style.display = "none";
7518
+ ve(_, e), _.style.display = "block", v.style.display = "none", y.style.display = "none", x.style.display = "none", N.style.display = "none", b.style.display = "none";
7519
+ for (let e of te) e.style.display = "none";
7518
7520
  h.style.display = "block", h.style.pointerEvents = "none", h.style.cursor = "default";
7519
7521
  }, we = () => {
7520
7522
  u(!1), _.style.display = "none", h.style.display = "none", h.style.pointerEvents = "auto", h.style.cursor = "crosshair", b.style.removeProperty("display");
@@ -7845,7 +7847,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7845
7847
  let t = e.target;
7846
7848
  t instanceof Element && t.closest("[data-mesurer-recording-resize]") || Be(e, "move");
7847
7849
  });
7848
- for (let e of P) e.addEventListener("pointerdown", (t) => {
7850
+ for (let e of te) e.addEventListener("pointerdown", (t) => {
7849
7851
  Be(t, "resize", e.dataset.mesurerRecordingResize);
7850
7852
  });
7851
7853
  x.addEventListener("pointerdown", (e) => {
@@ -7860,7 +7862,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7860
7862
  [t]: r
7861
7863
  });
7862
7864
  };
7863
- T.addEventListener("change", () => Ke(T, "width")), E.addEventListener("change", () => Ke(E, "height")), k.addEventListener("change", () => Ke(k, "left")), A.addEventListener("change", () => Ke(A, "top")), te.addEventListener("click", () => {
7865
+ T.addEventListener("change", () => Ke(T, "width")), E.addEventListener("change", () => Ke(E, "height")), A.addEventListener("change", () => Ke(A, "left")), j.addEventListener("change", () => Ke(j, "top")), ee.addEventListener("click", () => {
7864
7866
  B.status === "selecting" && K && re && Ie(re).catch(() => void 0);
7865
7867
  }), R.addEventListener("click", () => {
7866
7868
  if (B.status === "recording") {
@@ -7948,14 +7950,14 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7948
7950
  q = !0, ++le, V.clear(), h.removeEventListener("pointerdown", Ve), h.removeEventListener("pointermove", He), h.removeEventListener("pointerup", Ue), h.removeEventListener("pointercancel", We), i.removeEventListener("keydown", Ge, !0), ce && i.clearTimeout(ce), Ne.dispose(), Te(), _e(), ke(!0), s.dispose(), a.dispose();
7949
7951
  });
7950
7952
  }
7951
- }), Kl = 144, ql = 96, Jl = 8, Yl = 4, Xl = 1800, Zl = (e, t) => {
7953
+ }), Kl = 144, ql = 96, Jl = 8, Yl = 4, Xl = 1800, Zl = 200, Ql = (e, t) => {
7952
7954
  for (let [n, r] of Object.entries(t)) e.style.setProperty(n, r);
7953
- }, Ql = (e, t) => ({
7955
+ }, $l = (e, t) => ({
7954
7956
  left: Math.min(Math.max(Jl, e.left), Math.max(Jl, t.innerWidth - Kl - Jl)),
7955
7957
  top: Math.min(Math.max(Jl, e.top), Math.max(Jl, t.innerHeight - ql - Jl))
7956
- }), $l = (e, t) => {
7958
+ }), eu = (e, t) => {
7957
7959
  let n = e.createElement("button");
7958
- return n.type = "button", n.textContent = t, Zl(n, {
7960
+ return n.type = "button", n.textContent = t, Ql(n, {
7959
7961
  height: "32px",
7960
7962
  padding: "0 12px",
7961
7963
  border: "1px solid rgb(255 255 255 / 18%)",
@@ -7967,11 +7969,11 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7967
7969
  "font-weight": "500",
7968
7970
  cursor: "pointer"
7969
7971
  }), n;
7970
- }, eu = ({ 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", tu = (e) => e !== null && (e.nodeType === 1 || e.nodeType === 11), nu = ({ ownerDocument: e, ownerWindow: t, root: n, previewDurationMs: r }) => {
7972
+ }, tu = ({ copied: e, downloaded: t, copyFailed: n, downloadFailed: r }) => e && t ? "Copied and saved screenshot" : e && r ? "Copied screenshot · Save unavailable" : t && n ? "Saved screenshot · Copy unavailable" : e ? "Copied screenshot" : t ? "Saved screenshot" : n && r ? "Screenshot captured · Copy and save unavailable" : n ? "Screenshot captured · Copy unavailable" : r ? "Screenshot captured · Save unavailable" : "Screenshot captured", nu = (e) => e !== null && (e.nodeType === 1 || e.nodeType === 11), ru = ({ ownerDocument: e, ownerWindow: t, root: n, previewDurationMs: r }) => {
7971
7973
  let i = n.closest("[data-mesurer-root='true']")?.parentNode ?? n.parentNode;
7972
- if (!tu(i)) throw Error("Screenshot preview requires a mounted Mesurer host.");
7974
+ if (!nu(i)) throw Error("Screenshot preview requires a mounted Mesurer host.");
7973
7975
  let a = e.createElement("div");
7974
- a.dataset.mesurerInspectorUi = "true", a.dataset.mesurerScreenshotInteractive = "true", Zl(a, {
7976
+ a.dataset.mesurerInspectorUi = "true", a.dataset.mesurerScreenshotInteractive = "true", Ql(a, {
7975
7977
  position: "fixed",
7976
7978
  left: "0",
7977
7979
  top: "0",
@@ -7983,7 +7985,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7983
7985
  "font-family": "ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif"
7984
7986
  }), i.append(a);
7985
7987
  let o = e.createElement("div");
7986
- o.dataset.mesurerScreenshotPreview = "true", o.setAttribute("role", "button"), o.setAttribute("aria-label", "Open captured screenshot"), o.tabIndex = 0, Zl(o, {
7988
+ o.dataset.mesurerScreenshotPreview = "true", o.setAttribute("role", "button"), o.setAttribute("aria-label", "Open captured screenshot"), o.tabIndex = 0, Ql(o, {
7987
7989
  position: "fixed",
7988
7990
  display: "none",
7989
7991
  "z-index": "96",
@@ -8001,7 +8003,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8001
8003
  "touch-action": "none"
8002
8004
  });
8003
8005
  let s = e.createElement("img");
8004
- s.dataset.mesurerScreenshotPreviewImage = "true", s.alt = "Captured screenshot", s.draggable = !1, s.title = "Click to open · Right-click for browser image actions", Zl(s, {
8006
+ s.dataset.mesurerScreenshotPreviewImage = "true", s.alt = "Captured screenshot", s.draggable = !1, s.title = "Click to open · Right-click for browser image actions", Ql(s, {
8005
8007
  display: "block",
8006
8008
  width: "100%",
8007
8009
  height: "100%",
@@ -8009,7 +8011,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8009
8011
  "background-color": "white"
8010
8012
  }), o.append(s);
8011
8013
  let c = e.createElement("button");
8012
- c.dataset.mesurerScreenshotPreviewDismiss = "true", c.type = "button", c.setAttribute("aria-label", "Dismiss screenshot preview"), c.title = "Dismiss", Zl(c, {
8014
+ c.dataset.mesurerScreenshotPreviewDismiss = "true", c.type = "button", c.setAttribute("aria-label", "Dismiss screenshot preview"), c.title = "Dismiss", Ql(c, {
8013
8015
  position: "absolute",
8014
8016
  top: "8px",
8015
8017
  right: "8px",
@@ -8027,15 +8029,16 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8027
8029
  "font-family": "inherit",
8028
8030
  "font-size": "14px",
8029
8031
  "line-height": "1",
8030
- "z-index": "1",
8031
- cursor: "pointer"
8032
+ "z-index": "2",
8033
+ cursor: "pointer",
8034
+ "touch-action": "none"
8032
8035
  });
8033
8036
  let l = e.createElementNS("http://www.w3.org/2000/svg", "svg");
8034
8037
  l.setAttribute("viewBox", "0 0 16 16"), l.setAttribute("width", "12"), l.setAttribute("height", "12"), l.setAttribute("fill", "none"), l.setAttribute("aria-hidden", "true");
8035
8038
  let u = e.createElementNS("http://www.w3.org/2000/svg", "path");
8036
8039
  u.setAttribute("d", "m4 4 8 8M12 4l-8 8"), u.setAttribute("stroke", "currentColor"), u.setAttribute("stroke-width", "1.75"), u.setAttribute("stroke-linecap", "round"), l.append(u), c.append(l), o.append(c), a.append(o);
8037
8040
  let d = e.createElement("div");
8038
- d.dataset.mesurerScreenshotViewer = "true", d.setAttribute("role", "dialog"), d.setAttribute("aria-modal", "true"), d.setAttribute("aria-label", "Screenshot viewer"), Zl(d, {
8041
+ d.dataset.mesurerScreenshotViewer = "true", d.setAttribute("role", "dialog"), d.setAttribute("aria-modal", "true"), d.setAttribute("aria-label", "Screenshot viewer"), Ql(d, {
8039
8042
  position: "fixed",
8040
8043
  inset: "0",
8041
8044
  display: "none",
@@ -8049,7 +8052,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8049
8052
  "pointer-events": "auto"
8050
8053
  });
8051
8054
  let f = e.createElement("img");
8052
- f.dataset.mesurerScreenshotViewerImage = "true", f.alt = "Captured screenshot", Zl(f, {
8055
+ f.dataset.mesurerScreenshotViewerImage = "true", f.alt = "Captured screenshot", Ql(f, {
8053
8056
  display: "block",
8054
8057
  "max-width": "calc(100vw - 96px)",
8055
8058
  "max-height": "calc(100vh - 112px)",
@@ -8060,7 +8063,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8060
8063
  "box-shadow": "0 8px 30px rgb(0 0 0 / 28%)"
8061
8064
  }), d.append(f);
8062
8065
  let p = e.createElement("div");
8063
- p.dataset.mesurerScreenshotViewerControls = "true", Zl(p, {
8066
+ p.dataset.mesurerScreenshotViewerControls = "true", Ql(p, {
8064
8067
  position: "fixed",
8065
8068
  top: "16px",
8066
8069
  right: "16px",
@@ -8068,14 +8071,14 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8068
8071
  gap: "8px",
8069
8072
  "pointer-events": "auto"
8070
8073
  });
8071
- let m = $l(e, "Copy");
8074
+ let m = eu(e, "Copy");
8072
8075
  m.dataset.mesurerScreenshotViewerCopy = "true", m.setAttribute("aria-label", "Copy screenshot");
8073
- let h = $l(e, "Save");
8076
+ let h = eu(e, "Save");
8074
8077
  h.dataset.mesurerScreenshotViewerSave = "true", h.setAttribute("aria-label", "Save screenshot");
8075
- let g = $l(e, "Close");
8078
+ let g = eu(e, "Close");
8076
8079
  g.dataset.mesurerScreenshotViewerClose = "true", g.setAttribute("aria-label", "Close screenshot viewer"), p.append(m, h, g), d.append(p), a.append(d);
8077
8080
  let _ = e.createElement("div");
8078
- _.dataset.mesurerScreenshotToast = "true", _.setAttribute("role", "status"), Zl(_, {
8081
+ _.dataset.mesurerScreenshotToast = "true", _.setAttribute("role", "status"), Ql(_, {
8079
8082
  position: "fixed",
8080
8083
  left: "50%",
8081
8084
  bottom: "20px",
@@ -8090,45 +8093,64 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8090
8093
  "font-weight": "500",
8091
8094
  "pointer-events": "none"
8092
8095
  }), a.append(_);
8093
- let v = null, y = null, b = null, x = null, S = 0, C = 0, w = !1, T = () => {
8096
+ let v = null, y = null, b = null, x = null, S = 0, C = 0, w = null, T = !1, E = () => {
8094
8097
  S && t.clearTimeout(S), S = 0;
8095
- }, E = () => {
8098
+ }, D = () => {
8096
8099
  C && t.clearTimeout(C), C = 0;
8097
- }, D = (e, n = !1) => {
8098
- E(), _.textContent = e, _.style.backgroundColor = n ? "#b42318" : "rgb(28 28 30 / 90%)", _.style.display = "block", C = t.setTimeout(() => {
8100
+ }, O = (e, n = !1) => {
8101
+ D(), _.textContent = e, _.style.backgroundColor = n ? "#b42318" : "rgb(28 28 30 / 90%)", _.style.display = "block", C = t.setTimeout(() => {
8099
8102
  C = 0, _.style.display = "none";
8100
8103
  }, Xl);
8101
- }, O = () => {
8104
+ }, k = () => {
8102
8105
  d.style.display = "none";
8103
- }, ee = () => {
8106
+ }, A = () => {
8104
8107
  y && globalThis.URL.revokeObjectURL(y), y = null, v = null, s.removeAttribute("src"), f.removeAttribute("src");
8105
- }, k = () => {
8106
- T(), O(), o.style.display = "none", ee();
8107
- }, A = () => Ql({
8108
+ }, j = () => {
8109
+ E(), k(), w &&= (w.cancel(), null), o.style.display = "none", o.style.opacity = "1", o.style.transform = "none", o.style.removeProperty("will-change"), o.style.pointerEvents = "auto", A();
8110
+ }, M = () => {
8111
+ if (!v || o.style.display === "none" || w) return;
8112
+ E(), k();
8113
+ let e = o.getBoundingClientRect(), n = Math.max(152, t.innerWidth - e.left + Jl);
8114
+ o.style.pointerEvents = "none", o.style.willChange = "transform, opacity";
8115
+ let r = o.animate([{
8116
+ transform: "translateX(0) scale(1)",
8117
+ opacity: 1
8118
+ }, {
8119
+ transform: `translateX(${n}px) scale(0.92)`,
8120
+ opacity: 0
8121
+ }], {
8122
+ duration: Zl,
8123
+ easing: "ease",
8124
+ fill: "forwards"
8125
+ });
8126
+ w = r, r.finished.catch(() => void 0).then(() => {
8127
+ w === r && (r.cancel(), w = null, j());
8128
+ });
8129
+ }, ee = () => $l({
8108
8130
  left: t.innerWidth - Kl - Jl,
8109
8131
  top: t.innerHeight - ql - Jl
8110
- }, t), j = (e) => {
8111
- let n = Ql(e, t);
8132
+ }, t), N = (e) => {
8133
+ let n = $l(e, t);
8112
8134
  b = n, o.style.left = `${n.left}px`, o.style.top = `${n.top}px`;
8113
- }, te = () => {
8114
- !v || !y || (T(), d.style.display = "flex", g.focus());
8115
- }, M = async () => {
8135
+ }, P = () => {
8136
+ !v || !y || (E(), d.style.display = "flex", g.focus());
8137
+ }, te = async () => {
8116
8138
  let e = v;
8117
8139
  if (e) try {
8118
- await Ar(Promise.resolve(e), t), D("Copied screenshot");
8140
+ await Ar(Promise.resolve(e), t), O("Copied screenshot");
8119
8141
  } catch {
8120
- D("Could not copy screenshot", !0);
8142
+ O("Could not copy screenshot", !0);
8121
8143
  }
8122
- }, N = () => {
8144
+ }, F = () => {
8123
8145
  let n = v;
8124
8146
  if (n) try {
8125
- Mr(n, jr(), e, t), D("Saved screenshot");
8147
+ Mr(n, jr(), e, t), O("Saved screenshot");
8126
8148
  } catch {
8127
- D("Could not save screenshot", !0);
8149
+ O("Could not save screenshot", !0);
8128
8150
  }
8129
- }, P = (e, t, n) => {
8151
+ }, I = (e, t, n) => {
8130
8152
  if (!v) return !1;
8131
- T();
8153
+ E();
8132
8154
  let r = o.getBoundingClientRect();
8133
8155
  return x = {
8134
8156
  pointerId: n,
@@ -8138,73 +8160,73 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8138
8160
  top: r.top,
8139
8161
  moved: !1
8140
8162
  }, o.style.cursor = "grabbing", !0;
8141
- }, F = (e, t) => {
8163
+ }, L = (e, t) => {
8142
8164
  let n = x;
8143
8165
  if (!n) return;
8144
8166
  let r = e - n.startX, i = t - n.startY;
8145
- !n.moved && Math.hypot(r, i) >= Yl && (n.moved = !0), n.moved && j({
8167
+ !n.moved && Math.hypot(r, i) >= Yl && (n.moved = !0), n.moved && N({
8146
8168
  left: n.left + r,
8147
8169
  top: n.top + i
8148
8170
  });
8149
- }, I = () => {
8171
+ }, R = () => {
8150
8172
  let e = x;
8151
- e && (x = null, o.style.cursor = "grab", e.moved || te());
8152
- }, L = () => {
8173
+ e && (x = null, o.style.cursor = "grab", e.moved || P());
8174
+ }, z = () => {
8153
8175
  x && (x = null, o.style.cursor = "grab");
8154
- }, R = (e) => {
8155
- e.button !== 0 || !P(e.clientX, e.clientY, null) || e.preventDefault();
8156
- }, z = (e) => {
8157
- x?.pointerId === null && F(e.clientX, e.clientY);
8158
8176
  }, B = (e) => {
8159
- e.button === 0 && x?.pointerId === null && I();
8177
+ e.button !== 0 || !I(e.clientX, e.clientY, null) || e.preventDefault();
8160
8178
  }, V = (e) => {
8161
- e.pointerType !== "mouse" && e.button === 0 && P(e.clientX, e.clientY, e.pointerId) && (o.setPointerCapture?.(e.pointerId), e.preventDefault());
8179
+ x?.pointerId === null && L(e.clientX, e.clientY);
8162
8180
  }, H = (e) => {
8163
- let t = x?.pointerId;
8164
- t != null && t === e.pointerId && F(e.clientX, e.clientY);
8181
+ e.button === 0 && x?.pointerId === null && R();
8165
8182
  }, U = (e) => {
8166
- let t = x?.pointerId;
8167
- t != null && t === e.pointerId && (o.hasPointerCapture?.(e.pointerId) && o.releasePointerCapture(e.pointerId), I());
8183
+ e.pointerType !== "mouse" && e.button === 0 && I(e.clientX, e.clientY, e.pointerId) && (o.setPointerCapture?.(e.pointerId), e.preventDefault());
8168
8184
  }, W = (e) => {
8169
8185
  let t = x?.pointerId;
8170
- t != null && t === e.pointerId && (o.hasPointerCapture?.(e.pointerId) && o.releasePointerCapture(e.pointerId), L());
8186
+ t != null && t === e.pointerId && L(e.clientX, e.clientY);
8171
8187
  }, G = (e) => {
8172
- (e.key === "Enter" || e.key === " ") && (e.preventDefault(), te());
8188
+ let t = x?.pointerId;
8189
+ t != null && t === e.pointerId && (o.hasPointerCapture?.(e.pointerId) && o.releasePointerCapture(e.pointerId), R());
8173
8190
  }, ne = (e) => {
8174
- e.target !== s && e.preventDefault();
8191
+ let t = x?.pointerId;
8192
+ t != null && t === e.pointerId && (o.hasPointerCapture?.(e.pointerId) && o.releasePointerCapture(e.pointerId), z());
8175
8193
  }, re = (e) => {
8176
- e.target === d && O();
8194
+ (e.key === "Enter" || e.key === " ") && (e.preventDefault(), P());
8177
8195
  }, K = (e) => {
8178
- e.key === "Escape" && d.style.display !== "none" && (e.preventDefault(), e.stopImmediatePropagation(), O());
8196
+ e.target !== s && e.preventDefault();
8197
+ }, ie = (e) => {
8198
+ e.target === d && k();
8199
+ }, ae = (e) => {
8200
+ e.key === "Escape" && d.style.display !== "none" && (e.preventDefault(), e.stopImmediatePropagation(), k());
8179
8201
  };
8180
8202
  return c.addEventListener("pointerdown", (e) => e.stopPropagation()), c.addEventListener("mousedown", (e) => e.stopPropagation()), c.addEventListener("click", (e) => {
8181
- e.stopPropagation(), k();
8182
- }), o.addEventListener("mousedown", R), o.addEventListener("pointerdown", V), o.addEventListener("keydown", G), o.addEventListener("contextmenu", ne), d.addEventListener("click", re), m.addEventListener("click", () => {
8183
- M();
8184
- }), h.addEventListener("click", N), g.addEventListener("click", O), t.addEventListener("mousemove", z, !0), t.addEventListener("mouseup", B, !0), t.addEventListener("pointermove", H, !0), t.addEventListener("pointerup", U, !0), t.addEventListener("pointercancel", W, !0), t.addEventListener("keydown", K, !0), {
8203
+ e.stopPropagation(), M();
8204
+ }), o.addEventListener("mousedown", B), o.addEventListener("pointerdown", U), o.addEventListener("keydown", re), o.addEventListener("contextmenu", K), d.addEventListener("click", ie), m.addEventListener("click", () => {
8205
+ te();
8206
+ }), h.addEventListener("click", F), g.addEventListener("click", k), t.addEventListener("mousemove", V, !0), t.addEventListener("mouseup", H, !0), t.addEventListener("pointermove", W, !0), t.addEventListener("pointerup", G, !0), t.addEventListener("pointercancel", ne, !0), t.addEventListener("keydown", ae, !0), {
8185
8207
  show(e, n) {
8186
- if (w) return;
8187
- T(), O(), ee(), v = e;
8208
+ if (T) return;
8209
+ E(), k(), w &&= (w.cancel(), null), o.style.opacity = "1", o.style.transform = "none", o.style.removeProperty("will-change"), o.style.pointerEvents = "auto", A(), v = e;
8188
8210
  let i = globalThis.URL.createObjectURL(e);
8189
- y = i, s.src = i, f.src = i, o.style.display = "block", j(b ?? A()), D(eu(n)), r > 0 && (S = t.setTimeout(k, r));
8211
+ y = i, s.src = i, f.src = i, o.style.display = "block", N(b ?? ee()), O(tu(n)), r > 0 && (S = t.setTimeout(j, r));
8190
8212
  },
8191
- dismiss: k,
8213
+ dismiss: j,
8192
8214
  dispose() {
8193
- w || (w = !0, T(), E(), k(), t.removeEventListener("mousemove", z, !0), t.removeEventListener("mouseup", B, !0), t.removeEventListener("pointermove", H, !0), t.removeEventListener("pointerup", U, !0), t.removeEventListener("pointercancel", W, !0), t.removeEventListener("keydown", K, !0), o.removeEventListener("mousedown", R), o.removeEventListener("pointerdown", V), o.removeEventListener("keydown", G), o.removeEventListener("contextmenu", ne), d.removeEventListener("click", re), a.remove());
8215
+ T || (T = !0, E(), D(), j(), t.removeEventListener("mousemove", V, !0), t.removeEventListener("mouseup", H, !0), t.removeEventListener("pointermove", W, !0), t.removeEventListener("pointerup", G, !0), t.removeEventListener("pointercancel", ne, !0), t.removeEventListener("keydown", ae, !0), o.removeEventListener("mousedown", B), o.removeEventListener("pointerdown", U), o.removeEventListener("keydown", re), o.removeEventListener("contextmenu", K), d.removeEventListener("click", ie), a.remove());
8194
8216
  }
8195
8217
  };
8196
- }, ru = "mesurer.screenshot", iu = "screenshot", au = "mesurer.screenshot.settings", ou = "mesurer.screenshot.active", su = "runtime:solid", cu = "screenshot.toggle", lu = 2500, uu = 0, du = [
8218
+ }, iu = "mesurer.screenshot", au = "screenshot", ou = "mesurer.screenshot.settings", su = "mesurer.screenshot.active", cu = "runtime:solid", lu = "screenshot.toggle", uu = 2500, du = 0, fu = [
8197
8219
  "[data-mesurer-measurement='true']",
8198
8220
  "[data-mesurer-selected-measurement='true']",
8199
8221
  "[data-mesurer-selection-spacing-target='true']",
8200
8222
  "[data-mesurer-guide='true']",
8201
8223
  "[data-mesurer-distance='true']"
8202
- ].join(","), fu = `${du},[data-mesurer-rulers='true']`, pu = {
8224
+ ].join(","), pu = `${fu},[data-mesurer-rulers='true']`, mu = {
8203
8225
  viewBox: "0 0 256 256",
8204
8226
  paths: ["m 96,50 a 6.0006,6.0006 0 0 0 -4.992188,2.671875 L 76.789062,74 H 40 C 27.920803,74 18,83.920803 18,96 v 96 c 0,12.0792 9.920803,22 22,22 h 176 c 12.0792,0 22,-9.9208 22,-22 V 96 C 238,83.920803 228.0792,74 216,74 H 179.21094 L 164.99219,52.671875 A 6.0006,6.0006 0 0 0 160,50 Z m 3.210937,12 h 57.578123 l 14.21875,21.328125 A 6.0006,6.0006 0 0 0 176,86 h 40 c 5.59392,0 10,4.406085 10,10 v 96 c 0,5.59392 -4.40608,10 -10,10 H 40 c -5.593915,0 -10,-4.40608 -10,-10 V 96 c 0,-5.593915 4.406085,-10 10,-10 h 40 a 6.0006,6.0006 0 0 0 4.992187,-2.671875 z", "m 128,94 c -23.12489,0 -42,18.87511 -42,42 0,23.12489 18.87511,42 42,42 23.12489,0 42,-18.87511 42,-42 0,-23.12489 -18.87511,-42 -42,-42 z m 0,12 c 16.63961,0 30,13.36039 30,30 0,16.63961 -13.36039,30 -30,30 -16.63961,0 -30,-13.36039 -30,-30 0,-16.63961 13.36039,-30 30,-30 z"]
8205
- }, mu = (e, t) => {
8206
- for (let [n, r] of Object.entries(t)) e.style.setProperty(n, r);
8207
8227
  }, hu = (e, t) => {
8228
+ for (let [n, r] of Object.entries(t)) e.style.setProperty(n, r);
8229
+ }, gu = (e, t) => {
8208
8230
  for (let n of [
8209
8231
  "left",
8210
8232
  "top",
@@ -8216,63 +8238,63 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8216
8238
  let r = t[n];
8217
8239
  r === void 0 ? e.style.removeProperty(n) : e.style.setProperty(n, `${r}px`);
8218
8240
  }
8219
- }, gu = (e) => {
8220
- let t = e(au);
8241
+ }, _u = (e) => {
8242
+ let t = e(ou);
8221
8243
  return {
8222
8244
  toolEnabled: t?.toolEnabled ?? !0,
8223
8245
  copy: t?.copy ?? !0,
8224
8246
  download: t?.download ?? !1,
8225
8247
  includeMeasurements: t?.includeMeasurements ?? !1
8226
8248
  };
8227
- }, _u = (e) => ({
8249
+ }, vu = (e) => ({
8228
8250
  value: e.style.getPropertyValue("display"),
8229
8251
  priority: e.style.getPropertyPriority("display")
8230
- }), vu = (e, t) => {
8252
+ }), yu = (e, t) => {
8231
8253
  t.value || t.priority ? e.style.setProperty("display", t.value, t.priority) : e.style.removeProperty("display");
8232
- }, yu = (e, t) => {
8254
+ }, bu = (e, t) => {
8233
8255
  let n = e;
8234
8256
  for (; n.parentElement && n.parentElement !== t;) n = n.parentElement;
8235
8257
  return n.parentElement === t ? n : null;
8236
- }, bu = (e) => {
8258
+ }, xu = (e) => {
8237
8259
  let t = e.querySelector("[data-mesurer-root='true']");
8238
8260
  if (!t) return () => void 0;
8239
8261
  let n = /* @__PURE__ */ new Set();
8240
8262
  for (let e of t.querySelectorAll("[data-mesurer-rulers='true']")) {
8241
- let r = yu(e, t);
8263
+ let r = bu(e, t);
8242
8264
  r && n.add(r);
8243
8265
  }
8244
- for (let e of t.querySelectorAll(du)) {
8245
- let r = yu(e, t);
8266
+ for (let e of t.querySelectorAll(fu)) {
8267
+ let r = bu(e, t);
8246
8268
  r && n.add(r);
8247
8269
  }
8248
8270
  let r = [];
8249
8271
  for (let e of n) e.dataset.mesurerInspectorUi !== "true" && (r.push({
8250
8272
  element: e,
8251
- display: _u(e)
8273
+ display: vu(e)
8252
8274
  }), e.style.setProperty("display", "none", "important"));
8253
8275
  return () => {
8254
- for (let e of r) vu(e.element, e.display);
8276
+ for (let e of r) yu(e.element, e.display);
8255
8277
  };
8256
- }, xu = (e) => Array.from(e.querySelectorAll(fu)).filter((e) => e.dataset.mesurerInspectorUi === "true").map((e) => ({
8278
+ }, Su = (e) => Array.from(e.querySelectorAll(pu)).filter((e) => e.dataset.mesurerInspectorUi === "true").map((e) => ({
8257
8279
  element: e,
8258
- display: _u(e)
8259
- })), Su = (e) => {
8260
- for (let t of e) t.element.isConnected && vu(t.element, t.display);
8261
- }, Cu = (e = {}) => hr({
8262
- id: ru,
8280
+ display: vu(e)
8281
+ })), Cu = (e) => {
8282
+ for (let t of e) t.element.isConnected && yu(t.element, t.display);
8283
+ }, wu = (e = {}) => hr({
8284
+ id: iu,
8263
8285
  version: "0.1.0",
8264
- requires: [su],
8286
+ requires: [cu],
8265
8287
  provides: [
8266
8288
  "tool:screenshot",
8267
8289
  "capture:screenshot",
8268
8290
  "settings:screenshot"
8269
8291
  ],
8270
8292
  setup(t) {
8271
- let n = t.service.get(su);
8293
+ let n = t.service.get(cu);
8272
8294
  if (!n) throw Error("Screenshot plugin requires the Solid renderer runtime.");
8273
- let { ownerDocument: r, ownerWindow: i } = n, a = n.createWorkspaceRuntime(), o = n.createInspectorMount(), s = e.capture ?? e.captureVisibleTab, c = s ?? Zr, l = e.previewDurationMs ?? uu;
8295
+ let { ownerDocument: r, ownerWindow: i } = n, a = n.createWorkspaceRuntime(), o = n.createInspectorMount(), s = e.capture ?? e.captureVisibleTab, c = s ?? Zr, l = e.previewDurationMs ?? du;
8274
8296
  t.state.register({
8275
- id: au,
8297
+ id: ou,
8276
8298
  initial: {
8277
8299
  toolEnabled: e.toolEnabled ?? !0,
8278
8300
  copy: e.copy ?? !0,
@@ -8281,11 +8303,11 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8281
8303
  },
8282
8304
  persist: !0
8283
8305
  }), t.state.register({
8284
- id: ou,
8306
+ id: su,
8285
8307
  initial: !1
8286
8308
  });
8287
8309
  let u = o.element;
8288
- u.dataset.mesurerScreenshot = "true", mu(u, {
8310
+ u.dataset.mesurerScreenshot = "true", hu(u, {
8289
8311
  position: "fixed",
8290
8312
  inset: "0",
8291
8313
  "z-index": "85",
@@ -8293,7 +8315,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8293
8315
  "font-family": "ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif"
8294
8316
  });
8295
8317
  let d = r.createElement("div");
8296
- d.dataset.mesurerScreenshotSelect = "true", d.setAttribute("role", "application"), d.setAttribute("aria-label", "Screenshot selection"), mu(d, {
8318
+ d.dataset.mesurerScreenshotSelect = "true", d.setAttribute("role", "application"), d.setAttribute("aria-label", "Screenshot selection"), hu(d, {
8297
8319
  position: "fixed",
8298
8320
  inset: "0",
8299
8321
  display: "none",
@@ -8305,13 +8327,13 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8305
8327
  }), u.append(d);
8306
8328
  let f = Array.from({ length: 4 }, () => {
8307
8329
  let e = r.createElement("div");
8308
- return mu(e, {
8330
+ return hu(e, {
8309
8331
  position: "fixed",
8310
8332
  "background-color": "rgb(0 0 0 / 40%)",
8311
8333
  "pointer-events": "none"
8312
8334
  }), d.append(e), e;
8313
8335
  }), p = r.createElement("div");
8314
- mu(p, {
8336
+ hu(p, {
8315
8337
  position: "fixed",
8316
8338
  display: "none",
8317
8339
  border: "1px solid #0d99ff",
@@ -8319,7 +8341,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8319
8341
  "pointer-events": "none"
8320
8342
  }), d.append(p);
8321
8343
  let m = r.createElement("div");
8322
- mu(m, {
8344
+ hu(m, {
8323
8345
  position: "fixed",
8324
8346
  display: "none",
8325
8347
  "z-index": "86",
@@ -8333,7 +8355,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8333
8355
  "pointer-events": "none"
8334
8356
  }), d.append(m);
8335
8357
  let h = r.createElement("div");
8336
- h.textContent = "Drag to select · Esc to cancel", mu(h, {
8358
+ h.textContent = "Drag to select · Esc to cancel", hu(h, {
8337
8359
  position: "fixed",
8338
8360
  left: "50%",
8339
8361
  bottom: "16px",
@@ -8346,7 +8368,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8346
8368
  "pointer-events": "none"
8347
8369
  }), d.append(h);
8348
8370
  let g = r.createElement("div");
8349
- g.dataset.mesurerScreenshotError = "true", g.setAttribute("role", "status"), g.textContent = "Could not save screenshot", mu(g, {
8371
+ g.dataset.mesurerScreenshotError = "true", g.setAttribute("role", "status"), g.textContent = "Could not save screenshot", hu(g, {
8350
8372
  position: "fixed",
8351
8373
  display: "none",
8352
8374
  "z-index": "97",
@@ -8357,8 +8379,8 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8357
8379
  "font-size": "11px",
8358
8380
  "pointer-events": "none"
8359
8381
  }), u.append(g);
8360
- let _ = null, v = null, y = 0, b = 0, x = !1, S = !1, C = !1, w = () => t.state.get("mesurer.screenshot.active") ?? !1, T = () => gu(t.state.get), E = (e) => {
8361
- t.state.update(au, (t) => {
8382
+ let _ = null, v = null, y = 0, b = 0, x = !1, S = !1, C = !1, w = () => t.state.get("mesurer.screenshot.active") ?? !1, T = () => _u(t.state.get), E = (e) => {
8383
+ t.state.update(ou, (t) => {
8362
8384
  let n = { ...t };
8363
8385
  return e.toolEnabled !== void 0 && (n.toolEnabled = e.toolEnabled), e.copy !== void 0 && (n.copy = e.copy), e.download !== void 0 && (n.download = e.download), e.includeMeasurements !== void 0 && (n.includeMeasurements = e.includeMeasurements), n;
8364
8386
  });
@@ -8374,20 +8396,20 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8374
8396
  priority: e.style.getPropertyPriority("visibility")
8375
8397
  }
8376
8398
  }, e.style.setProperty("visibility", "hidden", "important"));
8377
- }, ee = () => {
8399
+ }, k = () => {
8378
8400
  if (!v) return;
8379
8401
  let { element: e, visibility: t } = v;
8380
8402
  v = null, t.value || t.priority ? e.style.setProperty("visibility", t.value, t.priority) : e.style.removeProperty("visibility");
8381
- }, k = (e) => {
8403
+ }, A = (e) => {
8382
8404
  let t = i.innerWidth, n = i.innerHeight;
8383
8405
  if (!e || e.width <= 0 || e.height <= 0) {
8384
- hu(f[0], {
8406
+ gu(f[0], {
8385
8407
  left: 0,
8386
8408
  top: 0,
8387
8409
  width: t,
8388
8410
  height: n
8389
8411
  });
8390
- for (let e of f.slice(1)) hu(e, {
8412
+ for (let e of f.slice(1)) gu(e, {
8391
8413
  left: 0,
8392
8414
  top: 0,
8393
8415
  width: 0,
@@ -8396,52 +8418,52 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8396
8418
  p.style.display = "none", m.style.display = "none";
8397
8419
  return;
8398
8420
  }
8399
- hu(f[0], {
8421
+ gu(f[0], {
8400
8422
  left: 0,
8401
8423
  top: 0,
8402
8424
  width: t,
8403
8425
  height: e.top
8404
- }), hu(f[1], {
8426
+ }), gu(f[1], {
8405
8427
  left: 0,
8406
8428
  top: e.top,
8407
8429
  width: e.left,
8408
8430
  height: e.height
8409
- }), hu(f[2], {
8431
+ }), gu(f[2], {
8410
8432
  left: e.left + e.width,
8411
8433
  top: e.top,
8412
8434
  width: Math.max(0, t - e.left - e.width),
8413
8435
  height: e.height
8414
- }), hu(f[3], {
8436
+ }), gu(f[3], {
8415
8437
  left: 0,
8416
8438
  top: e.top + e.height,
8417
8439
  width: t,
8418
8440
  height: Math.max(0, n - e.top - e.height)
8419
- }), p.style.display = "block", hu(p, e), m.style.display = "block", m.textContent = `${Math.round(e.width)} × ${Math.round(e.height)}`, hu(m, {
8441
+ }), p.style.display = "block", gu(p, e), m.style.display = "block", m.textContent = `${Math.round(e.width)} × ${Math.round(e.height)}`, gu(m, {
8420
8442
  left: e.left + e.width / 2,
8421
8443
  top: Math.min(n - 22, e.top + e.height + 6)
8422
8444
  });
8423
- }, A = () => n.portalTarget.querySelector("[data-mesurer-tool-id='screenshot']")?.getBoundingClientRect() ?? null, j = nu({
8445
+ }, j = () => n.portalTarget.querySelector("[data-mesurer-tool-id='screenshot']")?.getBoundingClientRect() ?? null, M = ru({
8424
8446
  ownerDocument: r,
8425
8447
  ownerWindow: i,
8426
8448
  root: u,
8427
8449
  previewDurationMs: l
8428
- }), te = (e) => {
8429
- let t = A(), 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);
8450
+ }), ee = (e) => {
8451
+ let t = j(), n = Math.max(140, e.offsetWidth || 140), r = Math.max(26, e.offsetHeight || 26), a = t ? Math.min(i.innerWidth - n - 8, Math.max(8, t.left + t.width / 2 - n / 2)) : 8, o = t ? t.bottom + 8 : 8, s = o + r <= i.innerHeight - 8 ? o : Math.max(8, (t?.top ?? i.innerHeight) - r - 8);
8430
8452
  e.style.left = `${a}px`, e.style.top = `${s}px`;
8431
- }, M = () => {
8432
- y && i.clearTimeout(y), g.style.display = "block", te(g), y = i.setTimeout(() => {
8433
- y = 0, g.style.display = "none";
8434
- }, lu);
8435
8453
  }, N = () => {
8436
- _ = null, k(null), d.style.visibility = "", d.style.display = "none", u.style.pointerEvents = "none", D(!1), ee();
8454
+ y && i.clearTimeout(y), g.style.display = "block", ee(g), y = i.setTimeout(() => {
8455
+ y = 0, g.style.display = "none";
8456
+ }, uu);
8437
8457
  }, P = () => {
8438
- b += 1, N(), Qr(i);
8458
+ _ = null, A(null), d.style.visibility = "", d.style.display = "none", u.style.pointerEvents = "none", D(!1), k();
8459
+ }, te = () => {
8460
+ b += 1, P(), Qr(i);
8439
8461
  }, F = async (e) => {
8440
8462
  if (x) throw Error("A screenshot capture is already running.");
8441
8463
  if (e.width < 4 || e.height < 4) throw Error("Screenshot selection must be at least 4px by 4px.");
8442
8464
  x = !0;
8443
- let o = ++b, s = T(), l = s.includeMeasurements ? xu(r) : [], u = s.includeMeasurements ? () => void 0 : bu(n.portalTarget);
8444
- a.prepareCapture(), s.includeMeasurements && Su(l);
8465
+ let o = ++b, s = T(), l = s.includeMeasurements ? Su(r) : [], u = s.includeMeasurements ? () => void 0 : xu(n.portalTarget);
8466
+ a.prepareCapture(), s.includeMeasurements && Cu(l);
8445
8467
  try {
8446
8468
  d.style.visibility = "hidden", await Nr(i);
8447
8469
  let n = await kr(await c({
@@ -8458,7 +8480,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8458
8480
  Mr(n, jr(), r, i), l = !0;
8459
8481
  }) : Promise.resolve(), p = await Promise.allSettled([u, f]), m = s.copy && p[0]?.status === "rejected", h = s.download && p[1]?.status === "rejected";
8460
8482
  if (b !== o) throw Error("Screenshot capture was cancelled.");
8461
- return j.show(n, {
8483
+ return M.show(n, {
8462
8484
  copied: a,
8463
8485
  downloaded: l,
8464
8486
  copyFailed: m,
@@ -8474,23 +8496,23 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8474
8496
  downloaded: l
8475
8497
  };
8476
8498
  } catch (e) {
8477
- throw b === o && M(), e;
8499
+ throw b === o && N(), e;
8478
8500
  } finally {
8479
8501
  d.style.visibility = "", u(), a.finishCapture(), x = !1;
8480
8502
  }
8481
8503
  }, I = async () => {
8482
8504
  if (T().toolEnabled) {
8483
8505
  if (w()) {
8484
- P();
8506
+ te();
8485
8507
  return;
8486
8508
  }
8487
8509
  if (!S) {
8488
- S = !0, j.dismiss();
8510
+ S = !0, M.dismiss();
8489
8511
  try {
8490
8512
  if (s || await Xr(r, i), C) return;
8491
- O(), k(null), d.style.visibility = "visible", u.style.pointerEvents = "auto", d.style.display = "block", D(!0);
8513
+ O(), A(null), d.style.visibility = "visible", u.style.pointerEvents = "auto", d.style.display = "block", D(!0);
8492
8514
  } catch (e) {
8493
- throw e instanceof Error && e.name === "AbortError" || M(), e;
8515
+ throw e instanceof Error && e.name === "AbortError" || N(), e;
8494
8516
  } finally {
8495
8517
  S = !1;
8496
8518
  }
@@ -8500,12 +8522,12 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8500
8522
  !w() || e.button !== 0 || (e.preventDefault(), e.stopPropagation(), _ = {
8501
8523
  x: e.clientX,
8502
8524
  y: e.clientY
8503
- }, k(Or(_, _, {
8525
+ }, A(Or(_, _, {
8504
8526
  width: i.innerWidth,
8505
8527
  height: i.innerHeight
8506
8528
  })), d.setPointerCapture?.(e.pointerId));
8507
8529
  }, R = (e) => {
8508
- !w() || !_ || k(Or(_, {
8530
+ !w() || !_ || A(Or(_, {
8509
8531
  x: e.clientX,
8510
8532
  y: e.clientY
8511
8533
  }, {
@@ -8523,17 +8545,17 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8523
8545
  width: i.innerWidth,
8524
8546
  height: i.innerHeight
8525
8547
  });
8526
- if (k(n), n.width < 4 || n.height < 4) {
8527
- k(null);
8548
+ if (A(n), n.width < 4 || n.height < 4) {
8549
+ A(null);
8528
8550
  return;
8529
8551
  }
8530
8552
  F(n).catch(() => void 0).finally(() => {
8531
- w() && N();
8553
+ w() && P();
8532
8554
  });
8533
8555
  }, B = (e) => {
8534
- _ = null, d.hasPointerCapture?.(e.pointerId) && d.releasePointerCapture(e.pointerId), k(null);
8556
+ _ = null, d.hasPointerCapture?.(e.pointerId) && d.releasePointerCapture(e.pointerId), A(null);
8535
8557
  }, V = (e) => {
8536
- e.key !== "Escape" || !w() || (e.preventDefault(), e.stopImmediatePropagation(), P());
8558
+ e.key !== "Escape" || !w() || (e.preventDefault(), e.stopImmediatePropagation(), te());
8537
8559
  };
8538
8560
  d.addEventListener("pointerdown", L), d.addEventListener("pointermove", R), d.addEventListener("pointerup", z), d.addEventListener("pointercancel", B), i.addEventListener("keydown", V, !0);
8539
8561
  let H = {
@@ -8541,7 +8563,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8541
8563
  settings: T,
8542
8564
  setSettings: E,
8543
8565
  start: I,
8544
- cancel: P,
8566
+ cancel: te,
8545
8567
  capture: F
8546
8568
  };
8547
8569
  t.tool.register({
@@ -8549,10 +8571,10 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8549
8571
  label: "Screenshot",
8550
8572
  shortcut: "Shift+S",
8551
8573
  order: 70,
8552
- command: cu,
8574
+ command: lu,
8553
8575
  toolbarMode: "select",
8554
8576
  compactPinned: !0,
8555
- icon: pu,
8577
+ icon: mu,
8556
8578
  active: w,
8557
8579
  hidden: () => !T().toolEnabled,
8558
8580
  menu: {
@@ -8590,7 +8612,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8590
8612
  description: "Show the camera tool in the toolbar.",
8591
8613
  value: () => T().toolEnabled,
8592
8614
  set: (e) => {
8593
- E({ toolEnabled: e }), !e && w() && P();
8615
+ E({ toolEnabled: e }), !e && w() && te();
8594
8616
  }
8595
8617
  },
8596
8618
  {
@@ -8618,14 +8640,14 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8618
8640
  set: (e) => E({ includeMeasurements: e })
8619
8641
  }
8620
8642
  ]
8621
- }), t.command.register(cu, I), t.service.provide(iu, H), t.lifecycle.onDispose(() => {
8622
- C = !0, b += 1, d.removeEventListener("pointerdown", L), d.removeEventListener("pointermove", R), d.removeEventListener("pointerup", z), d.removeEventListener("pointercancel", B), i.removeEventListener("keydown", V, !0), y && i.clearTimeout(y), j.dispose(), ee(), Qr(i), a.finishCapture(), a.dispose(), o.dispose();
8643
+ }), t.command.register(lu, I), t.service.provide(au, H), t.lifecycle.onDispose(() => {
8644
+ C = !0, b += 1, d.removeEventListener("pointerdown", L), d.removeEventListener("pointermove", R), d.removeEventListener("pointerup", z), d.removeEventListener("pointercancel", B), i.removeEventListener("keydown", V, !0), y && i.clearTimeout(y), M.dispose(), k(), Qr(i), a.finishCapture(), a.dispose(), o.dispose();
8623
8645
  });
8624
8646
  }
8625
- }), wu = "0.2.1-beta.12", Tu = ro, Eu = eo, Du = to, Ou = io, ku = no, Au = () => ({
8647
+ }), Tu = "0.2.1-beta.13", Eu = ro, Du = eo, Ou = to, ku = io, Au = no, ju = () => ({
8626
8648
  ...Zo(),
8627
- version: wu
8628
- }), ju = Au, Mu = Tu, Nu = Eu, Pu = Du, Fu = Ou, Iu = ku, Lu = (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, Ru = (e) => {
8649
+ version: Tu
8650
+ }), Mu = ju, Nu = Eu, Pu = Du, Fu = Ou, Iu = ku, Lu = Au, Ru = (e, t) => e.left <= t.left + t.width && e.left + e.width >= t.left && e.top <= t.top + t.height && e.top + e.height >= t.top, zu = (e) => {
8629
8651
  if (!e.length) return null;
8630
8652
  let t = Math.min(...e.map((e) => e.left)), n = Math.min(...e.map((e) => e.top)), r = Math.max(...e.map((e) => e.left + e.width)), i = Math.max(...e.map((e) => e.top + e.height));
8631
8653
  return {
@@ -8634,43 +8656,43 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8634
8656
  width: r - t,
8635
8657
  height: i - n
8636
8658
  };
8637
- }, zu = (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), Bu = (e) => [...e.measurements, ...e.activeMeasurement && !e.measurements.some((t) => t.id === e.activeMeasurement?.id) ? [e.activeMeasurement] : []];
8638
- function Vu(e) {
8659
+ }, Bu = (e, t, n) => t.some((t) => e.orientation === "vertical" ? e.position >= t.left - n && e.position <= t.left + t.width + n : e.position >= t.top - n && e.position <= t.top + t.height + n), Vu = (e) => [...e.measurements, ...e.activeMeasurement && !e.measurements.some((t) => t.id === e.activeMeasurement?.id) ? [e.activeMeasurement] : []];
8660
+ function Hu(e) {
8639
8661
  let { workspace: t, scope: n, guideTolerance: r } = e;
8640
8662
  if (n.kind === "workspace") return {
8641
8663
  guides: t.guides.map((e) => ({ ...e })),
8642
- measurements: Bu(t),
8664
+ measurements: Vu(t),
8643
8665
  distances: [...t.distances]
8644
8666
  };
8645
- let i = new Set(n.elements), a = (e) => e != null && i.has(e), o = (e) => n.regions.some((t) => Lu(e, t));
8667
+ let i = new Set(n.elements), a = (e) => e != null && i.has(e), o = (e) => n.regions.some((t) => Ru(e, t));
8646
8668
  return {
8647
- guides: t.guides.filter((e) => zu(e, n.regions, r)).map((e) => ({ ...e })),
8648
- measurements: Bu(t).filter((e) => a(e.elementRef) || o(e.rect)),
8669
+ guides: t.guides.filter((e) => Bu(e, n.regions, r)).map((e) => ({ ...e })),
8670
+ measurements: Vu(t).filter((e) => a(e.elementRef) || o(e.rect)),
8649
8671
  distances: t.distances.filter((e) => a(e.elementRefA) || a(e.elementRefB) || o(e.rectA) || o(e.rectB))
8650
8672
  };
8651
8673
  }
8652
8674
  //#endregion
8653
8675
  //#region ../mesurer-core/dist/domain.js
8654
- var Hu = {
8676
+ var Uu = {
8655
8677
  opacity: 1,
8656
8678
  width: 1,
8657
8679
  pattern: "solid",
8658
8680
  dashLength: 6,
8659
8681
  gap: 4
8660
- }, Uu = {
8682
+ }, Wu = {
8661
8683
  opacity: 1,
8662
8684
  edgeReveal: !1
8663
8685
  };
8664
- ({ ...Hu }), { ...Uu };
8686
+ ({ ...Uu }), { ...Wu };
8665
8687
  //#endregion
8666
8688
  //#region ../mesurer-dom/dist/index.js
8667
- var Wu = (e) => Number.parseFloat(e) || 0, Gu = 0, Ku = (e, t) => {
8689
+ var Gu = (e) => Number.parseFloat(e) || 0, Ku = 0, qu = (e, t) => {
8668
8690
  let n = t.CSS;
8669
8691
  return n?.escape ? n.escape(e) : e.replace(/[^a-zA-Z0-9_-]/g, (e) => `\\${e}`);
8670
8692
  };
8671
- function qu(e) {
8693
+ function Ju(e) {
8672
8694
  let t = e.ownerDocument.defaultView ?? window;
8673
- if (e.id) return `#${Ku(e.id, t)}`;
8695
+ if (e.id) return `#${qu(e.id, t)}`;
8674
8696
  let n = e.getAttribute("data-testid");
8675
8697
  if (n) return `[data-testid=${JSON.stringify(n)}]`;
8676
8698
  let r = [], i = e;
@@ -8684,17 +8706,17 @@ function qu(e) {
8684
8706
  }
8685
8707
  return r.join(" > ");
8686
8708
  }
8687
- function Ju(e, t, n = `dom-inspection-${++Gu}`) {
8709
+ function Yu(e, t, n = `dom-inspection-${++Ku}`) {
8688
8710
  let r = e.getBoundingClientRect(), i = t.getComputedStyle(e), a = {
8689
- top: Wu(i.paddingTop),
8690
- right: Wu(i.paddingRight),
8691
- bottom: Wu(i.paddingBottom),
8692
- left: Wu(i.paddingLeft)
8711
+ top: Gu(i.paddingTop),
8712
+ right: Gu(i.paddingRight),
8713
+ bottom: Gu(i.paddingBottom),
8714
+ left: Gu(i.paddingLeft)
8693
8715
  }, o = {
8694
- top: Wu(i.marginTop),
8695
- right: Wu(i.marginRight),
8696
- bottom: Wu(i.marginBottom),
8697
- left: Wu(i.marginLeft)
8716
+ top: Gu(i.marginTop),
8717
+ right: Gu(i.marginRight),
8718
+ bottom: Gu(i.marginBottom),
8719
+ left: Gu(i.marginLeft)
8698
8720
  }, s = {
8699
8721
  left: r.left + a.left,
8700
8722
  top: r.top + a.top,
@@ -8722,8 +8744,8 @@ function Ju(e, t, n = `dom-inspection-${++Gu}`) {
8722
8744
  elementRef: e
8723
8745
  };
8724
8746
  }
8725
- function Yu(e) {
8726
- let t = e.ownerDocument.defaultView ?? window, n = t.getComputedStyle(e), r = e instanceof t.HTMLElement ? e : null, i = e.getBoundingClientRect(), a = r ? Ju(r, t) : null, o = (e) => {
8747
+ function Xu(e) {
8748
+ let t = e.ownerDocument.defaultView ?? window, n = t.getComputedStyle(e), r = e instanceof t.HTMLElement ? e : null, i = e.getBoundingClientRect(), a = r ? Yu(r, t) : null, o = (e) => {
8727
8749
  let t = Number.parseFloat(e);
8728
8750
  return Number.isFinite(t) ? t : 0;
8729
8751
  }, s = (e) => ({
@@ -8733,7 +8755,7 @@ function Yu(e) {
8733
8755
  left: o(n.getPropertyValue(`${e}-left${e === "border" ? "-width" : ""}`))
8734
8756
  });
8735
8757
  return {
8736
- selector: qu(e),
8758
+ selector: Ju(e),
8737
8759
  tag: e.localName,
8738
8760
  id: e.id || null,
8739
8761
  classes: [...e.classList],
@@ -8795,17 +8817,17 @@ function Yu(e) {
8795
8817
  }
8796
8818
  //#endregion
8797
8819
  //#region src/context.ts
8798
- var Xu = 10, Zu = (e) => ({
8820
+ var Zu = 10, Qu = (e) => ({
8799
8821
  left: e.left,
8800
8822
  top: e.top,
8801
8823
  width: e.width,
8802
8824
  height: e.height
8803
- }), Qu = (e) => {
8825
+ }), $u = (e) => {
8804
8826
  let t = /* @__PURE__ */ new Set(), n = [];
8805
8827
  for (let r of e) !r?.isConnected || t.has(r) || (t.add(r), n.push(r));
8806
8828
  return n;
8807
- }, $u = (e) => e.crypto?.randomUUID?.() ?? `${Date.now()}-${Math.random().toString(36).slice(2)}`;
8808
- function ed(e) {
8829
+ }, ed = (e) => e.crypto?.randomUUID?.() ?? `${Date.now()}-${Math.random().toString(36).slice(2)}`;
8830
+ function td(e) {
8809
8831
  let { runtime: t, ownerDocument: n, ownerWindow: r } = e, i = e.request ?? { scope: "workspace" }, a = t.snapshot();
8810
8832
  if (!a) throw Error("Mesurer workspace is not ready yet.");
8811
8833
  let o = [], s = [], c = { kind: "workspace" }, l = /* @__PURE__ */ new Map();
@@ -8813,7 +8835,7 @@ function ed(e) {
8813
8835
  let e = t.annotation(i.annotation);
8814
8836
  if (!e) throw Error(`Mesurer annotation not found: ${i.annotation}`);
8815
8837
  for (let t of e.resolvedTargets) t.element?.isConnected && l.set(t.element, t.target.id);
8816
- o = Qu(e.resolvedTargets.map((e) => e.element));
8838
+ o = $u(e.resolvedTargets.map((e) => e.element));
8817
8839
  let n = t.annotationRect(e.id);
8818
8840
  n && (s = [n]);
8819
8841
  let r = e.resolvedTargets.length, a = e.resolvedTargets.filter((e) => e.element?.isConnected).length, u = e.anchor.kind === "region" ? "connected" : r === 0 || a === 0 ? "stale" : a === r ? "connected" : "partial";
@@ -8825,15 +8847,15 @@ function ed(e) {
8825
8847
  };
8826
8848
  } else if (i.scope === "selection") {
8827
8849
  let e = t.currentSelection();
8828
- if (o = Qu(e.elements), !o.length && !e.region) throw Error("Mesurer has no current selection.");
8829
- s = e.region ? [e.region] : o.map((e) => Zu(e.getBoundingClientRect())), c = { kind: "selection" };
8830
- } else o = Qu([
8850
+ if (o = $u(e.elements), !o.length && !e.region) throw Error("Mesurer has no current selection.");
8851
+ s = e.region ? [e.region] : o.map((e) => Qu(e.getBoundingClientRect())), c = { kind: "selection" };
8852
+ } else o = $u([
8831
8853
  ...t.currentSelection().elements,
8832
8854
  ...a.measurements.map((e) => e.elementRef),
8833
8855
  a.activeMeasurement?.elementRef,
8834
8856
  ...a.heldDistances.flatMap((e) => [e.elementRefA, e.elementRefB])
8835
8857
  ]);
8836
- let u = c.kind === "workspace" ? [] : s.length ? s : o.map((e) => Zu(e.getBoundingClientRect())), d = Vu({
8858
+ let u = c.kind === "workspace" ? [] : s.length ? s : o.map((e) => Qu(e.getBoundingClientRect())), d = Hu({
8837
8859
  workspace: {
8838
8860
  guides: a.guides,
8839
8861
  measurements: a.measurements,
@@ -8845,8 +8867,8 @@ function ed(e) {
8845
8867
  elements: o,
8846
8868
  regions: u
8847
8869
  },
8848
- guideTolerance: a.guideRelevanceTolerance ?? Xu
8849
- }), f = d.measurements, p = d.distances, m = d.guides, h = Qu([
8870
+ guideTolerance: a.guideRelevanceTolerance ?? Zu
8871
+ }), f = d.measurements, p = d.distances, m = d.guides, h = $u([
8850
8872
  ...o,
8851
8873
  ...f.map((e) => e.elementRef),
8852
8874
  ...p.flatMap((e) => [e.elementRefA, e.elementRefB])
@@ -8858,12 +8880,12 @@ function ed(e) {
8858
8880
  let t = l.get(e) ?? y();
8859
8881
  return g.set(e, t), {
8860
8882
  ref: t,
8861
- inspection: Yu(e)
8883
+ inspection: Xu(e)
8862
8884
  };
8863
8885
  }), x = f.map((e) => {
8864
8886
  let t = {
8865
8887
  id: e.id,
8866
- rect: Zu(e.rect),
8888
+ rect: Qu(e.rect),
8867
8889
  deltaX: e.deltaX,
8868
8890
  deltaY: e.deltaY
8869
8891
  };
@@ -8873,8 +8895,8 @@ function ed(e) {
8873
8895
  }), S = p.map((e) => {
8874
8896
  let t = {
8875
8897
  id: e.id,
8876
- rectA: Zu(e.rectA),
8877
- rectB: Zu(e.rectB),
8898
+ rectA: Qu(e.rectA),
8899
+ rectB: Qu(e.rectB),
8878
8900
  horizontal: e.horizontal ? { ...e.horizontal } : null,
8879
8901
  vertical: e.vertical ? { ...e.vertical } : null
8880
8902
  }, n = e.elementRefA ? g.get(e.elementRefA) : void 0, r = e.elementRefB ? g.get(e.elementRefB) : void 0;
@@ -8882,7 +8904,7 @@ function ed(e) {
8882
8904
  });
8883
8905
  return {
8884
8906
  schema: "mesurer.context/v1",
8885
- id: $u(r),
8907
+ id: ed(r),
8886
8908
  createdAt: (/* @__PURE__ */ new Date()).toISOString(),
8887
8909
  scope: c,
8888
8910
  page: {
@@ -8897,7 +8919,7 @@ function ed(e) {
8897
8919
  scrollY: r.scrollY
8898
8920
  },
8899
8921
  coordinateSpace: "viewport-css-px",
8900
- regions: c.kind === "workspace" ? [] : s.map(Zu),
8922
+ regions: c.kind === "workspace" ? [] : s.map(Qu),
8901
8923
  visualState: {
8902
8924
  rulersVisible: a.rulersVisible,
8903
8925
  xrayVisible: a.xrayVisible
@@ -8911,48 +8933,48 @@ function ed(e) {
8911
8933
  }
8912
8934
  };
8913
8935
  }
8914
- var td = (e) => `${Math.round(e * 100) / 100}px`, nd = (e) => `x=${td(e.left)} y=${td(e.top)} w=${td(e.width)} h=${td(e.height)}`;
8915
- function rd(e) {
8936
+ var nd = (e) => `${Math.round(e * 100) / 100}px`, rd = (e) => `x=${nd(e.left)} y=${nd(e.top)} w=${nd(e.width)} h=${nd(e.height)}`;
8937
+ function id(e) {
8916
8938
  let t = [
8917
8939
  "Mesurer visual context",
8918
8940
  "",
8919
8941
  `Page: ${e.page.url}`,
8920
8942
  `Viewport: ${e.viewport.width} × ${e.viewport.height} CSS px; scroll x=${e.viewport.scrollX} y=${e.viewport.scrollY}`
8921
8943
  ];
8922
- if (e.scope.kind === "annotation" ? t.push("", "Annotation", e.scope.note, `Target status: ${e.scope.targetStatus}`) : t.push("", `Scope: ${e.scope.kind}`), e.regions.length && (t.push("", "Requested regions"), e.regions.forEach((e, n) => t.push(`- region-${n + 1}: ${nd(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) {
8944
+ if (e.scope.kind === "annotation" ? t.push("", "Annotation", e.scope.note, `Target status: ${e.scope.targetStatus}`) : t.push("", `Scope: ${e.scope.kind}`), e.regions.length && (t.push("", "Requested regions"), e.regions.forEach((e, n) => t.push(`- region-${n + 1}: ${rd(e)}`))), (e.visualState.rulersVisible || e.visualState.xrayVisible) && t.push("", `Visual state: rulers=${e.visualState.rulersVisible ? "on" : "off"}; x-ray=${e.visualState.xrayVisible ? "on" : "off"}`), e.targets.length) {
8923
8945
  t.push("", "Targets");
8924
8946
  for (let n of e.targets) {
8925
8947
  let e = n.inspection;
8926
- t.push(`[${n.ref}] ${e.selector}`, ` rect: ${nd(e.rect)}`, ` margin: ${td(e.margin.top)} ${td(e.margin.right)} ${td(e.margin.bottom)} ${td(e.margin.left)}`, ` padding: ${td(e.padding.top)} ${td(e.padding.right)} ${td(e.padding.bottom)} ${td(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)}`);
8948
+ t.push(`[${n.ref}] ${e.selector}`, ` rect: ${rd(e.rect)}`, ` margin: ${nd(e.margin.top)} ${nd(e.margin.right)} ${nd(e.margin.bottom)} ${nd(e.margin.left)}`, ` padding: ${nd(e.padding.top)} ${nd(e.padding.right)} ${nd(e.padding.bottom)} ${nd(e.padding.left)}`, ` layout: display=${e.layout.display}; position=${e.layout.position}; gap=${e.layout.gap}`, ` typography: ${e.typography.fontSize} / ${e.typography.lineHeight}; weight=${e.typography.fontWeight}; align=${e.typography.textAlign}`), e.text && t.push(` text: ${JSON.stringify(e.text)}`);
8927
8949
  }
8928
8950
  }
8929
8951
  if (e.visualContext.guides.length) {
8930
8952
  t.push("", "Relevant guides");
8931
- for (let n of e.visualContext.guides) t.push(`- ${n.orientation} ${n.orientation === "vertical" ? "x" : "y"}=${td(n.position)}`);
8953
+ for (let n of e.visualContext.guides) t.push(`- ${n.orientation} ${n.orientation === "vertical" ? "x" : "y"}=${nd(n.position)}`);
8932
8954
  }
8933
8955
  if (e.visualContext.layoutGuides.length) {
8934
8956
  t.push("", "Layout guides");
8935
8957
  for (let n of e.visualContext.layoutGuides) {
8936
8958
  if (!n.visible) continue;
8937
- let e = n.kind === "grid" ? `grid ${td(n.size)}` : `${n.count} ${n.kind}; gutter=${td(n.gutter)}; offset=${td(n.offset)}; align=${n.align}`;
8959
+ let e = n.kind === "grid" ? `grid ${nd(n.size)}` : `${n.count} ${n.kind}; gutter=${nd(n.gutter)}; offset=${nd(n.offset)}; align=${n.align}`;
8938
8960
  t.push(`- ${e}; color=${n.color}; opacity=${Math.round(n.opacity * 100)}%`);
8939
8961
  }
8940
8962
  }
8941
8963
  if (e.visualContext.measurements.length) {
8942
8964
  t.push("", "Relevant measurements");
8943
- for (let n of e.visualContext.measurements) t.push(`- ${n.targetRef ? `${n.targetRef}: ` : ""}${nd(n.rect)}; delta=${td(n.deltaX)} × ${td(n.deltaY)}`);
8965
+ for (let n of e.visualContext.measurements) t.push(`- ${n.targetRef ? `${n.targetRef}: ` : ""}${rd(n.rect)}; delta=${nd(n.deltaX)} × ${nd(n.deltaY)}`);
8944
8966
  }
8945
8967
  if (e.visualContext.distances.length) {
8946
8968
  t.push("", "Relevant distances");
8947
8969
  for (let n of e.visualContext.distances) {
8948
- let e = [n.targetARef, n.targetBRef].filter(Boolean).join(" → "), r = [n.horizontal ? `horizontal=${td(n.horizontal.value)}` : null, n.vertical ? `vertical=${td(n.vertical.value)}` : null].filter(Boolean).join("; ");
8970
+ let e = [n.targetARef, n.targetBRef].filter(Boolean).join(" → "), r = [n.horizontal ? `horizontal=${nd(n.horizontal.value)}` : null, n.vertical ? `vertical=${nd(n.vertical.value)}` : null].filter(Boolean).join("; ");
8949
8971
  t.push(`- ${e ? `${e}: ` : ""}${r || "overlapping"}`);
8950
8972
  }
8951
8973
  }
8952
8974
  return t.join("\n").trimEnd();
8953
8975
  }
8954
- function id(e) {
8955
- let t = Ru([
8976
+ function ad(e) {
8977
+ let t = zu([
8956
8978
  ...e.regions,
8957
8979
  ...e.targets.map((e) => e.inspection.rect),
8958
8980
  ...e.visualContext.measurements.map((e) => e.rect),
@@ -8982,7 +9004,7 @@ function id(e) {
8982
9004
  captures: n
8983
9005
  };
8984
9006
  }
8985
- var ad = (e, t, n, r, i) => {
9007
+ var od = (e, t, n, r, i) => {
8986
9008
  !Number.isFinite(r) || !Number.isFinite(i) || Math.abs(r - i) < .01 || e.push({
8987
9009
  kind: t,
8988
9010
  label: n,
@@ -8991,16 +9013,16 @@ var ad = (e, t, n, r, i) => {
8991
9013
  delta: i - r,
8992
9014
  unit: "px"
8993
9015
  });
8994
- }, od = (e, t, n, r) => e.push({
9016
+ }, sd = (e, t, n, r) => e.push({
8995
9017
  kind: "missing",
8996
9018
  evidence: t,
8997
9019
  id: n,
8998
9020
  label: r
8999
- }), sd = (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;
9000
- function cd(e) {
9021
+ }), cd = (e, t) => Math.abs(e.left - t.left) < .01 && Math.abs(e.top - t.top) < .01 && Math.abs(e.width - t.width) < .01 && Math.abs(e.height - t.height) < .01;
9022
+ function ld(e) {
9001
9023
  let t = e.runtime.annotation(e.annotationId);
9002
9024
  if (!t) throw Error(`Mesurer annotation not found: ${e.annotationId}`);
9003
- let n = ed({
9025
+ let n = td({
9004
9026
  runtime: e.runtime,
9005
9027
  ownerDocument: e.ownerDocument,
9006
9028
  ownerWindow: e.ownerWindow,
@@ -9010,42 +9032,42 @@ function cd(e) {
9010
9032
  if (n.scope.kind !== "annotation") throw Error("Mesurer annotation context invariant failed.");
9011
9033
  let r = e.runtime.snapshot();
9012
9034
  if (!r) throw Error("Mesurer workspace is not ready yet.");
9013
- let i = Bu({
9035
+ let i = Vu({
9014
9036
  measurements: r.measurements,
9015
9037
  activeMeasurement: r.activeMeasurement
9016
9038
  }), a = [];
9017
9039
  for (let e of t.baseline.targets) {
9018
9040
  let t = n.targets.find((t) => t.ref === e.id);
9019
9041
  if (!t) {
9020
- od(a, "target", e.id, e.selector);
9042
+ sd(a, "target", e.id, e.selector);
9021
9043
  continue;
9022
9044
  }
9023
- ad(a, "target-rect", `${t.inspection.selector} left`, e.rect.left, t.inspection.rect.left), ad(a, "target-rect", `${t.inspection.selector} top`, e.rect.top, t.inspection.rect.top), ad(a, "target-rect", `${t.inspection.selector} width`, e.rect.width, t.inspection.rect.width), ad(a, "target-rect", `${t.inspection.selector} height`, e.rect.height, t.inspection.rect.height);
9045
+ od(a, "target-rect", `${t.inspection.selector} left`, e.rect.left, t.inspection.rect.left), od(a, "target-rect", `${t.inspection.selector} top`, e.rect.top, t.inspection.rect.top), od(a, "target-rect", `${t.inspection.selector} width`, e.rect.width, t.inspection.rect.width), od(a, "target-rect", `${t.inspection.selector} height`, e.rect.height, t.inspection.rect.height);
9024
9046
  }
9025
9047
  for (let e of t.baseline.guides) {
9026
9048
  let t = n.visualContext.guides.find((t) => t.id === e.id) ?? r.guides.find((t) => t.id === e.id);
9027
9049
  if (!t) {
9028
- od(a, "guide", e.id, `${e.orientation} guide ${e.id}`);
9050
+ sd(a, "guide", e.id, `${e.orientation} guide ${e.id}`);
9029
9051
  continue;
9030
9052
  }
9031
- ad(a, "guide", `${e.orientation} guide ${e.id}`, e.position, t.position);
9053
+ od(a, "guide", `${e.orientation} guide ${e.id}`, e.position, t.position);
9032
9054
  }
9033
9055
  for (let e of t.baseline.measurements) {
9034
9056
  let r = n.visualContext.measurements.find((t) => t.id === e.id) ?? i.find((t) => t.id === e.id);
9035
9057
  if (!r) {
9036
- let r = t.baseline.targets.find((t) => sd(t.rect, e.rect));
9037
- r && n.targets.some((e) => e.ref === r.id) || od(a, "measurement", e.id, e.id);
9058
+ let r = t.baseline.targets.find((t) => cd(t.rect, e.rect));
9059
+ r && n.targets.some((e) => e.ref === r.id) || sd(a, "measurement", e.id, e.id);
9038
9060
  continue;
9039
9061
  }
9040
- ad(a, "measurement", `${e.id} width`, e.rect.width, r.rect.width), ad(a, "measurement", `${e.id} height`, e.rect.height, r.rect.height);
9062
+ od(a, "measurement", `${e.id} width`, e.rect.width, r.rect.width), od(a, "measurement", `${e.id} height`, e.rect.height, r.rect.height);
9041
9063
  }
9042
9064
  for (let e of t.baseline.distances) {
9043
9065
  let t = n.visualContext.distances.find((t) => t.id === e.id) ?? r.heldDistances.find((t) => t.id === e.id);
9044
9066
  if (!t) {
9045
- od(a, "distance", e.id, e.id);
9067
+ sd(a, "distance", e.id, e.id);
9046
9068
  continue;
9047
9069
  }
9048
- e.horizontal && t.horizontal ? ad(a, "distance", `${e.id} horizontal`, e.horizontal.value, t.horizontal.value) : e.horizontal && !t.horizontal && od(a, "distance", e.id, `${e.id} horizontal`), e.vertical && t.vertical ? ad(a, "distance", `${e.id} vertical`, e.vertical.value, t.vertical.value) : e.vertical && !t.vertical && od(a, "distance", e.id, `${e.id} vertical`);
9070
+ e.horizontal && t.horizontal ? od(a, "distance", `${e.id} horizontal`, e.horizontal.value, t.horizontal.value) : e.horizontal && !t.horizontal && sd(a, "distance", e.id, `${e.id} horizontal`), e.vertical && t.vertical ? od(a, "distance", `${e.id} vertical`, e.vertical.value, t.vertical.value) : e.vertical && !t.vertical && sd(a, "distance", e.id, `${e.id} vertical`);
9049
9071
  }
9050
9072
  return {
9051
9073
  schema: "mesurer.review/v1",
@@ -9057,7 +9079,7 @@ function cd(e) {
9057
9079
  changes: a
9058
9080
  };
9059
9081
  }
9060
- async function ld(e, t, n) {
9082
+ async function ud(e, t, n) {
9061
9083
  try {
9062
9084
  if (t.navigator.clipboard?.writeText) {
9063
9085
  await t.navigator.clipboard.writeText(n);
@@ -9071,43 +9093,43 @@ async function ld(e, t, n) {
9071
9093
  }
9072
9094
  //#endregion
9073
9095
  //#region src/layout-guides.ts
9074
- var ud = Zs, dd = Qs, fd = $s, pd = ec, md = () => ({
9096
+ var dd = Zs, fd = Qs, pd = $s, md = ec, hd = () => ({
9075
9097
  ...wc(),
9076
- version: wu
9077
- }), hd = "mesurer.context", gd = "context:v1", _d = "mesurer.context.settings", vd = "context.ui", yd = "data-mesurer-direct-text-edit-active", bd = {
9098
+ version: Tu
9099
+ }), gd = "mesurer.context", _d = "context:v1", vd = "mesurer.context.settings", yd = "context.ui", bd = "data-mesurer-direct-text-edit-active", xd = {
9078
9100
  viewBox: "0 0 256 256",
9079
9101
  paths: ["M216,32H88a8,8,0,0,0-8,8V80H40a8,8,0,0,0-8,8V216a8,8,0,0,0,8,8H168a8,8,0,0,0,8-8V176h40a8,8,0,0,0,8-8V40A8,8,0,0,0,216,32ZM160,208H48V96H160Zm48-48H176V88a8,8,0,0,0-8-8H96V48H208Z"]
9080
- }, xd = {
9102
+ }, Sd = {
9081
9103
  viewBox: "0 0 256 256",
9082
9104
  paths: ["M152,40a8,8,0,0,1-8,8H112a8,8,0,0,1,0-16h32A8,8,0,0,1,152,40Zm-8,168H112a8,8,0,0,0,0,16h32a8,8,0,0,0,0-16ZM208,32H184a8,8,0,0,0,0,16h24V72a8,8,0,0,0,16,0V48A16,16,0,0,0,208,32Zm8,72a8,8,0,0,0-8,8v32a8,8,0,0,0,16,0V112A8,8,0,0,0,216,104Zm0,72a8,8,0,0,0-8,8v24H184a8,8,0,0,0,0,16h24a16,16,0,0,0,16-16V184A8,8,0,0,0,216,176ZM40,152a8,8,0,0,0,8-8V112a8,8,0,0,0-16,0v32A8,8,0,0,0,40,152Zm32,56H48V184a8,8,0,0,0-16,0v24a16,16,0,0,0,16,16H72a8,8,0,0,0,0-16ZM72,32H48A16,16,0,0,0,32,48V72a8,8,0,0,0,16,0V48H72a8,8,0,0,0,0-16Z"]
9083
- }, Sd = {
9105
+ }, Cd = {
9084
9106
  viewBox: "0 0 256 256",
9085
9107
  paths: ["M229.66,58.34l-32-32a8,8,0,0,0-11.32,0l-96,96A8,8,0,0,0,88,128v32a8,8,0,0,0,8,8h32a8,8,0,0,0,5.66-2.34l96-96A8,8,0,0,0,229.66,58.34ZM124.69,152H104V131.31l64-64L188.69,88ZM200,76.69,179.31,56,192,43.31,212.69,64ZM224,128v80a16,16,0,0,1-16,16H48a16,16,0,0,1-16-16V48A16,16,0,0,1,48,32h80a8,8,0,0,1,0,16H48V208H208V128a8,8,0,0,1,16,0Z"]
9086
- }, Cd = async (e, t, n = 1) => {
9108
+ }, wd = async (e, t, n = 1) => {
9087
9109
  await e.fonts?.ready;
9088
9110
  for (let e = 0; e < Math.max(1, n); e += 1) await new Promise((e) => t.requestAnimationFrame(() => e()));
9089
- }, wd = (e, t, n, r) => {
9090
- let i = async (i) => ed({
9111
+ }, Td = (e, t, n, r) => {
9112
+ let i = async (i) => td({
9091
9113
  runtime: e,
9092
9114
  ownerDocument: t,
9093
9115
  ownerWindow: n,
9094
9116
  request: i,
9095
9117
  layoutGuides: r()
9096
- }), a = async (e) => rd(await i(e));
9118
+ }), a = async (e) => id(await i(e));
9097
9119
  return {
9098
9120
  context: i,
9099
9121
  contextText: a,
9100
- copyContext: async (e) => ld(t, n, await a(e)),
9122
+ copyContext: async (e) => ud(t, n, await a(e)),
9101
9123
  select: async (r) => {
9102
9124
  let a = Array.isArray(r) ? [...r] : [String(r)];
9103
- return e.select(a), await Cd(t, n), i({ scope: "selection" });
9125
+ return e.select(a), await wd(t, n), i({ scope: "selection" });
9104
9126
  },
9105
9127
  annotations: async () => e.annotations(),
9106
9128
  removeAnnotation: async (r) => {
9107
- e.removeAnnotation(r), await Cd(t, n);
9129
+ e.removeAnnotation(r), await wd(t, n);
9108
9130
  },
9109
9131
  review: async (i) => {
9110
- if (await Cd(t, n), i) return cd({
9132
+ if (await wd(t, n), i) return ld({
9111
9133
  runtime: e,
9112
9134
  ownerDocument: t,
9113
9135
  ownerWindow: n,
@@ -9115,7 +9137,7 @@ var ud = Zs, dd = Qs, fd = $s, pd = ec, md = () => ({
9115
9137
  layoutGuides: r()
9116
9138
  });
9117
9139
  let a = r();
9118
- return e.annotations().map((r) => cd({
9140
+ return e.annotations().map((r) => ld({
9119
9141
  runtime: e,
9120
9142
  ownerDocument: t,
9121
9143
  ownerWindow: n,
@@ -9123,38 +9145,38 @@ var ud = Zs, dd = Qs, fd = $s, pd = ec, md = () => ({
9123
9145
  layoutGuides: a
9124
9146
  }));
9125
9147
  },
9126
- capturePlan: async (e) => id(await i(e)),
9148
+ capturePlan: async (e) => ad(await i(e)),
9127
9149
  prepareCapture: async () => {
9128
- e.prepareCapture(), await Cd(t, n);
9150
+ e.prepareCapture(), await wd(t, n);
9129
9151
  },
9130
9152
  finishCapture: async () => {
9131
- e.finishCapture(), await Cd(t, n);
9153
+ e.finishCapture(), await wd(t, n);
9132
9154
  }
9133
9155
  };
9134
- }, Td = (e) => {
9156
+ }, Ed = (e) => {
9135
9157
  let t = e.currentSelection();
9136
9158
  return t.elements.length > 0 || t.region !== null;
9137
9159
  };
9138
- function Ed(e = {}) {
9160
+ function Dd(e = {}) {
9139
9161
  return {
9140
- id: hd,
9141
- version: wu,
9162
+ id: gd,
9163
+ version: Tu,
9142
9164
  requires: ["runtime:solid"],
9143
- provides: [gd],
9165
+ provides: [_d],
9144
9166
  setup(t) {
9145
9167
  let n = t.service.get("runtime:solid");
9146
9168
  if (!n) throw Error("Mesurer context plugin requires the renderer runtime service.");
9147
- let r = n.createWorkspaceRuntime(hd), i = wd(r, n.ownerDocument, n.ownerWindow, () => t.service.get(dd)?.list() ?? []);
9148
- t.service.provide(gd, i), t.state.register({
9149
- id: _d,
9169
+ let r = n.createWorkspaceRuntime(gd), i = Td(r, n.ownerDocument, n.ownerWindow, () => t.service.get(fd)?.list() ?? []);
9170
+ t.service.provide(_d, i), t.state.register({
9171
+ id: vd,
9150
9172
  initial: { ui: e.ui ?? !0 },
9151
9173
  persist: !0
9152
9174
  }), t.state.register({
9153
- id: vd,
9154
- initial: { hasSelection: Td(r) }
9175
+ id: yd,
9176
+ initial: { hasSelection: Ed(r) }
9155
9177
  });
9156
- let a = () => t.state.get("mesurer.context.settings")?.ui ?? !0, o = () => t.state.get(vd)?.hasSelection === !0, s = (e) => {
9157
- t.state.update(_d, (t) => ({
9178
+ let a = () => t.state.get("mesurer.context.settings")?.ui ?? !0, o = () => t.state.get(yd)?.hasSelection === !0, s = (e) => {
9179
+ t.state.update(vd, (t) => ({
9158
9180
  ...t,
9159
9181
  ui: e
9160
9182
  }));
@@ -9168,12 +9190,12 @@ function Ed(e = {}) {
9168
9190
  region: e.region ? { ...e.region } : null
9169
9191
  }, r.selectGestureActive() ? c?.abandonNoteComposer() : n && c?.closeNoteComposer();
9170
9192
  let i = e.elements.length > 0 || e.region !== null;
9171
- i !== (t.state.get(vd)?.hasSelection ?? !1) && t.state.update(vd, () => ({ hasSelection: i }));
9193
+ i !== (t.state.get(yd)?.hasSelection ?? !1) && t.state.update(yd, () => ({ hasSelection: i }));
9172
9194
  });
9173
9195
  t.command.register("context.copy", () => i.copyContext()), t.command.register("context.copy-selection", () => i.copyContext({ scope: "selection" }));
9174
9196
  let g = () => {
9175
9197
  let e = u?.element;
9176
- e && (n.rendererRoot?.hasAttribute(yd) ? e.setAttribute(yd, "true") : e.removeAttribute(yd));
9198
+ e && (n.rendererRoot?.hasAttribute(bd) ? e.setAttribute(bd, "true") : e.removeAttribute(bd));
9177
9199
  }, _ = () => {
9178
9200
  d?.disconnect(), d = null, c = null, l?.(), l = null, u?.dispose(), u = null;
9179
9201
  }, v = () => {
@@ -9182,7 +9204,7 @@ function Ed(e = {}) {
9182
9204
  let e = new n.ownerWindow.MutationObserver(g);
9183
9205
  d = e, e.observe(n.rendererRoot, {
9184
9206
  attributes: !0,
9185
- attributeFilter: [yd]
9207
+ attributeFilter: [bd]
9186
9208
  }), g();
9187
9209
  }
9188
9210
  let e = {
@@ -9206,7 +9228,7 @@ function Ed(e = {}) {
9206
9228
  command: "context.copy",
9207
9229
  order: 70,
9208
9230
  toolbarMode: "always",
9209
- icon: bd,
9231
+ icon: xd,
9210
9232
  hidden: () => !a()
9211
9233
  }), t.tool.register({
9212
9234
  id: "context.copy-selection",
@@ -9215,7 +9237,7 @@ function Ed(e = {}) {
9215
9237
  command: "context.copy-selection",
9216
9238
  order: 71,
9217
9239
  toolbarMode: "always",
9218
- icon: xd,
9240
+ icon: Sd,
9219
9241
  hidden: () => !a(),
9220
9242
  disabled: () => !o()
9221
9243
  }), t.tool.register({
@@ -9225,7 +9247,7 @@ function Ed(e = {}) {
9225
9247
  command: "context.add-note",
9226
9248
  order: 72,
9227
9249
  toolbarMode: "always",
9228
- icon: Sd,
9250
+ icon: Cd,
9229
9251
  hidden: () => !a(),
9230
9252
  disabled: () => !o()
9231
9253
  }), t.settings.register({
@@ -9248,28 +9270,28 @@ function Ed(e = {}) {
9248
9270
  }
9249
9271
  //#endregion
9250
9272
  //#region src/plugins/codex/index.ts
9251
- var Dd = "mesurer.codex", Od = "codex:v1", kd = "mesurer.plugin.before-disable", Ad = 2e3, jd = 750, Md = 1800, Nd = 2e3, Pd = 12e4, Fd = 10, Id = 5, Ld = "Codex host connection is unavailable. Electron apps must expose window.__MESURER_HOST__.codexBridge from preload.", Rd = [
9273
+ var Od = "mesurer.codex", kd = "codex:v1", Ad = "mesurer.plugin.before-disable", jd = 2e3, Md = 750, Nd = 1800, Pd = 2e3, Fd = 12e4, Id = 10, Ld = 5, Rd = "Codex host connection is unavailable. Electron apps must expose window.__MESURER_HOST__.codexBridge from preload.", zd = [
9252
9274
  "Implement the current human feedback from Mesurer in this project.",
9253
9275
  "Treat the rendered page as the source of truth, preserve unrelated Mesurer review state,",
9254
9276
  "and verify the affected UI in the live page with Mesurer before claiming completion."
9255
- ].join(" "), zd = {
9277
+ ].join(" "), Bd = {
9256
9278
  viewBox: "0 0 256 256",
9257
9279
  paths: ["M224,48,32,120l88,32,32,88Z M120,152l104-104"]
9258
- }, Bd = {
9280
+ }, Vd = {
9259
9281
  viewBox: "0 0 256 256",
9260
9282
  paths: ["M72,32H184a8,8,0,0,1,0,16h-8v20.69a40,40,0,0,1-11.72,28.28L137.25,124l27.03,27.03A40,40,0,0,1,176,179.31V208h8a8,8,0,0,1,0,16H72a8,8,0,0,1,0-16h8V179.31a40,40,0,0,1,11.72-28.28L118.75,124,91.72,96.97A40,40,0,0,1,80,68.69V48H72a8,8,0,0,1,0-16Zm24,16V68.69a24,24,0,0,0,7.03,16.97L128,110.63l24.97-24.97A24,24,0,0,0,160,68.69V48Zm32,90.63-24.97,24.97A24,24,0,0,0,96,180.57V208h64V180.57a24,24,0,0,0-7.03-16.97Z"]
9261
- }, Vd = {
9283
+ }, Hd = {
9262
9284
  viewBox: "0 0 256 256",
9263
9285
  paths: ["M229.66,77.66l-128,128a8,8,0,0,1-11.32,0l-56-56a8,8,0,0,1,11.32-11.32L96,188.69,218.34,66.34a8,8,0,0,1,11.32,11.32Z"]
9264
- }, Hd = () => {
9286
+ }, Ud = () => {
9265
9287
  try {
9266
9288
  let e = globalThis.location;
9267
9289
  return e?.origin ? `mesurer-codex-ui:v2:${e.origin}${e.pathname}` : null;
9268
9290
  } catch {
9269
9291
  return null;
9270
9292
  }
9271
- }, Ud = () => {
9272
- let e = Hd();
9293
+ }, Wd = () => {
9294
+ let e = Ud();
9273
9295
  if (!e) return null;
9274
9296
  try {
9275
9297
  let t = globalThis.sessionStorage?.getItem(e);
@@ -9294,18 +9316,18 @@ var Dd = "mesurer.codex", Od = "codex:v1", kd = "mesurer.plugin.before-disable",
9294
9316
  } catch {
9295
9317
  return null;
9296
9318
  }
9297
- }, Wd = (e) => {
9298
- let t = Hd();
9319
+ }, Gd = (e) => {
9320
+ let t = Ud();
9299
9321
  if (t) try {
9300
9322
  globalThis.sessionStorage?.setItem(t, JSON.stringify(e));
9301
9323
  } catch {}
9302
- }, Gd = async (e) => {
9324
+ }, Kd = async (e) => {
9303
9325
  let t = window.__MESURER_HOST__?.codexBridge;
9304
- if (!t) throw Error(Ld);
9326
+ if (!t) throw Error(Rd);
9305
9327
  let n = await t(e);
9306
9328
  if (n.ok === !1) throw Error(n.error ?? "Codex Bridge request failed.");
9307
9329
  return n;
9308
- }, Kd = (e) => {
9330
+ }, qd = (e) => {
9309
9331
  let t = e.runtime;
9310
9332
  return !t || ![
9311
9333
  "shared",
@@ -9323,10 +9345,10 @@ var Dd = "mesurer.codex", Od = "codex:v1", kd = "mesurer.plugin.before-disable",
9323
9345
  available: t.available === !0,
9324
9346
  reason: t.reason
9325
9347
  };
9326
- }, qd = (e) => ({
9348
+ }, Jd = (e) => ({
9327
9349
  thread: e.thread?.trim() || null,
9328
9350
  threads: Array.isArray(e.threads) ? e.threads.filter((e) => e.trim().length > 0) : []
9329
- }), Jd = (e) => {
9351
+ }), Yd = (e) => {
9330
9352
  let t = e.deliveryId?.trim(), n = e.thread?.trim(), r = e.status;
9331
9353
  if (!t || !n || !r) throw Error("Codex Bridge returned an invalid delivery state.");
9332
9354
  let i = {
@@ -9338,7 +9360,7 @@ var Dd = "mesurer.codex", Od = "codex:v1", kd = "mesurer.plugin.before-disable",
9338
9360
  updatedAt: Number.isFinite(e.updatedAt) ? Number(e.updatedAt) : 0
9339
9361
  };
9340
9362
  return e.queuedSubmissionId !== void 0 && (i.queuedSubmissionId = e.queuedSubmissionId?.trim() || null), e.dispatch !== void 0 && (i.dispatch = e.dispatch), e.dispatchError !== void 0 && (i.dispatchError = e.dispatchError?.trim() || null), i;
9341
- }, Yd = (e) => ({
9363
+ }, Xd = (e) => ({
9342
9364
  thread: e.thread?.trim() || null,
9343
9365
  threads: Array.isArray(e.threadDetails) ? e.threadDetails.flatMap((e) => {
9344
9366
  let t = e.id?.trim() ?? "";
@@ -9350,7 +9372,7 @@ var Dd = "mesurer.codex", Od = "codex:v1", kd = "mesurer.plugin.before-disable",
9350
9372
  }] : [];
9351
9373
  }) : [],
9352
9374
  hasMore: e.hasMore === !0
9353
- }), Xd = async (e, t, n) => {
9375
+ }), Zd = async (e, t, n) => {
9354
9376
  let r = t?.instruction?.trim() || n, i = await e.annotations(), a = t?.annotationIds, o = a ? a.flatMap((e) => {
9355
9377
  let t = i.find((t) => t.id === e);
9356
9378
  return t ? [t] : [];
@@ -9373,18 +9395,18 @@ var Dd = "mesurer.codex", Od = "codex:v1", kd = "mesurer.plugin.before-disable",
9373
9395
  ])
9374
9396
  ].join("\n").trimEnd()
9375
9397
  };
9376
- }, Zd = (e) => e.length > 16 ? `${e.slice(0, 8)}…${e.slice(-4)}` : e, Qd = (e, t = 42) => e.length > t ? `${e.slice(0, t - 1)}…` : e, $d = (e) => e instanceof Error && (e.message === Ld || e.message === "Codex Bridge is unavailable in this host." || e.message.includes("Codex Bridge lease"));
9377
- function ef(e = {}) {
9378
- let t = e.instruction?.trim() || Rd, n = e.ui ?? !0, r = e.clearCompletedAnnotations ?? !0;
9398
+ }, Qd = (e) => e.length > 16 ? `${e.slice(0, 8)}…${e.slice(-4)}` : e, $d = (e, t = 42) => e.length > t ? `${e.slice(0, t - 1)}…` : e, ef = (e) => e instanceof Error && (e.message === Rd || e.message === "Codex Bridge is unavailable in this host." || e.message.includes("Codex Bridge lease"));
9399
+ function tf(e = {}) {
9400
+ let t = e.instruction?.trim() || zd, n = e.ui ?? !0, r = e.clearCompletedAnnotations ?? !0;
9379
9401
  return {
9380
- id: Dd,
9381
- version: wu,
9382
- requires: [gd],
9383
- provides: [Od],
9402
+ id: Od,
9403
+ version: Tu,
9404
+ requires: [_d],
9405
+ provides: [kd],
9384
9406
  async setup(e) {
9385
- let i = e.service.get(gd);
9407
+ let i = e.service.get(_d);
9386
9408
  if (!i) throw Error("Mesurer Codex plugin requires context() from mesurer-solid/plugins.");
9387
- let a = n ? Ud() : 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 = Id, _, v = "", y = null, b = a?.delivery ? {
9409
+ let a = n ? Wd() : null, o = "unknown", s = null, c = !1, l = a?.originThread ?? null, u = a?.selectedThread ?? a?.originThread ?? null, d = !1, f = null, p = [], m = [], h = !1, g = Ld, _, v = "", y = null, b = a?.delivery ? {
9388
9410
  id: a.delivery.id,
9389
9411
  thread: a.delivery.thread,
9390
9412
  status: a.delivery.status,
@@ -9393,63 +9415,63 @@ function ef(e = {}) {
9393
9415
  dispatch: a.delivery.dispatch ?? null,
9394
9416
  dispatchError: a.delivery.dispatchError ?? null
9395
9417
  } : null, x = 0, S = 0, C = null, w = !1, T = null, E = async (e) => {
9396
- if (e.action === "activate" || e.action === "runtime") return Gd(e);
9418
+ if (e.action === "activate" || e.action === "runtime") return Kd(e);
9397
9419
  if (!T) throw Error("Codex Bridge lease is not active for this plugin.");
9398
- return Gd({
9420
+ return Kd({
9399
9421
  ...e,
9400
9422
  leaseId: T
9401
9423
  });
9402
9424
  }, D = async () => {
9403
9425
  let e = T;
9404
9426
  if (e) {
9405
- if ((await Gd({
9427
+ if ((await Kd({
9406
9428
  action: "deactivate",
9407
9429
  leaseId: e
9408
9430
  })).released !== !0) throw Error("Codex Bridge did not confirm lease release.");
9409
9431
  T = null;
9410
9432
  }
9411
- }, O = await Gd({
9433
+ }, O = await Kd({
9412
9434
  action: "activate",
9413
9435
  thread: u ?? l ?? void 0
9414
- }), ee = O.leaseId?.trim();
9415
- if (!ee) throw Error("Codex Bridge did not return an activation lease.");
9416
- T = ee, o = "available", s = Kd(O);
9417
- let k = qd(O);
9418
- c = !0, f = k.thread, p = k.threads, e.lifecycle.onDispose(() => {
9436
+ }), k = O.leaseId?.trim();
9437
+ if (!k) throw Error("Codex Bridge did not return an activation lease.");
9438
+ T = k, o = "available", s = qd(O);
9439
+ let A = Jd(O);
9440
+ c = !0, f = A.thread, p = A.threads, e.lifecycle.onDispose(() => {
9419
9441
  T && D().catch((e) => {
9420
9442
  let t = e instanceof Error ? e.message : String(e);
9421
9443
  console.error(`[Mesurer] Failed to release Codex host lease: ${t}`);
9422
9444
  });
9423
- }), e.hook.on(kd, async (e) => {
9445
+ }), e.hook.on(Ad, async (e) => {
9424
9446
  e === "mesurer.codex" && await D();
9425
9447
  });
9426
- let A = async () => {
9427
- let e = Kd(await E({ action: "runtime" }));
9448
+ let j = async () => {
9449
+ let e = qd(await E({ action: "runtime" }));
9428
9450
  if (!e) throw Error("Codex Bridge returned an invalid runtime state.");
9429
9451
  return s = e, e;
9430
- }, j = async () => {
9452
+ }, M = async () => {
9431
9453
  let e = await E({
9432
9454
  action: "health",
9433
9455
  thread: u ?? l ?? void 0
9434
9456
  });
9435
- return s = Kd(e) ?? s, qd(e);
9436
- }, te = j, M = async (e) => Jd(await E({
9457
+ return s = qd(e) ?? s, Jd(e);
9458
+ }, ee = M, N = async (e) => Yd(await E({
9437
9459
  action: "delivery",
9438
9460
  deliveryId: e
9439
- })), N = async (e) => {
9461
+ })), P = async (e) => {
9440
9462
  if (!e.id || !e.thread) throw Error("Cannot restore a Codex delivery without its id and thread.");
9441
9463
  let t = {
9442
9464
  action: "restore",
9443
9465
  deliveryId: e.id,
9444
9466
  thread: e.thread
9445
9467
  };
9446
- return e.queuedSubmissionId && (t.queuedSubmissionId = e.queuedSubmissionId), Jd(await E(t));
9447
- }, P = async (e = {}) => {
9468
+ return e.queuedSubmissionId && (t.queuedSubmissionId = e.queuedSubmissionId), Yd(await E(t));
9469
+ }, te = async (e = {}) => {
9448
9470
  let t = {
9449
9471
  action: "threads",
9450
- limit: e.limit ?? Fd
9472
+ limit: e.limit ?? Id
9451
9473
  }, n = e.thread?.trim();
9452
- return n && (t.thread = n), Yd(await E(t));
9474
+ return n && (t.thread = n), Xd(await E(t));
9453
9475
  }, F = () => u ?? l ?? (d ? null : f), I = () => {
9454
9476
  if (!n) return;
9455
9477
  let e = b?.id && (b.status === "queued" || b.status === "working" || b.status === "interrupted") ? {
@@ -9461,7 +9483,7 @@ function ef(e = {}) {
9461
9483
  dispatch: b.dispatch,
9462
9484
  dispatchError: b.dispatchError
9463
9485
  } : null;
9464
- Wd({
9486
+ Gd({
9465
9487
  version: 1,
9466
9488
  originThread: l,
9467
9489
  selectedThread: u,
@@ -9479,12 +9501,12 @@ function ef(e = {}) {
9479
9501
  "queueing",
9480
9502
  "queued",
9481
9503
  "working"
9482
- ].includes(b.status) ? Bd : b.status === "completed" ? Vd : zd : zd, H = () => {
9504
+ ].includes(b.status) ? Vd : b.status === "completed" ? Hd : Bd : Bd, H = () => {
9483
9505
  let e = [], t = /* @__PURE__ */ new Set(), n = (n) => {
9484
9506
  t.has(n.id) || (t.add(n.id), e.push(n));
9485
9507
  }, r = (e) => ({
9486
9508
  id: e,
9487
- title: `Codex ${Zd(e)}`,
9509
+ title: `Codex ${Qd(e)}`,
9488
9510
  updatedAt: null,
9489
9511
  connected: !0
9490
9512
  });
@@ -9512,7 +9534,7 @@ function ef(e = {}) {
9512
9534
  let t = e.id === l ? "Current · " : e.connected ? "Loaded · " : "", r = b?.thread === e.id ? ` · ${z(b.status)}` : "";
9513
9535
  return {
9514
9536
  id: `codex.thread.${e.id}`,
9515
- label: `${t}${Qd(e.title)}${r}`,
9537
+ label: `${t}${$d(e.title)}${r}`,
9516
9538
  checked: () => n === e.id,
9517
9539
  disabled: () => R(),
9518
9540
  run() {
@@ -9520,15 +9542,15 @@ function ef(e = {}) {
9520
9542
  }
9521
9543
  };
9522
9544
  });
9523
- return g < Fd && (e.length > g || h) && r.push({
9545
+ return g < Id && (e.length > g || h) && r.push({
9524
9546
  id: "codex.thread.show-more",
9525
9547
  label: "Show 5 more…",
9526
9548
  run() {
9527
- g = Fd, G();
9549
+ g = Id, G();
9528
9550
  }
9529
9551
  }), b?.queuedSubmissionId && b.status === "queued" && (b.dispatch === "desktop-opened" || b.dispatch === "desktop-wake-failed") && r.push({
9530
9552
  id: "codex.delivery.receipt",
9531
- label: `Receipt · ${Zd(b.queuedSubmissionId)}`,
9553
+ label: `Receipt · ${Qd(b.queuedSubmissionId)}`,
9532
9554
  disabled: () => !0,
9533
9555
  run: () => void 0
9534
9556
  }), r;
@@ -9564,20 +9586,20 @@ function ef(e = {}) {
9564
9586
  }));
9565
9587
  }, ne = async (e) => {
9566
9588
  if (o !== "available") return;
9567
- let t = await P({
9568
- limit: Fd,
9589
+ let t = await te({
9590
+ limit: Id,
9569
9591
  thread: e ?? void 0
9570
9592
  });
9571
9593
  m = t.threads, h = t.hasMore, p = t.threads.filter((e) => e.connected).map((e) => e.id), f = t.thread;
9572
9594
  };
9573
9595
  U = (e = !1) => w || o === "unknown" && !e ? Promise.resolve() : y || (y = (async () => {
9574
9596
  try {
9575
- let e = await te();
9597
+ let e = await ee();
9576
9598
  o = "available", c = !0, f = e.thread, await ne(u ?? l ?? e.thread);
9577
9599
  let t = u ?? l;
9578
9600
  t && p.includes(t) ? d = !1 : p.length === 1 ? L(p[0], !0) : d = !0, !d && t && I();
9579
9601
  } catch (e) {
9580
- throw o = "unavailable", s = await A().catch(() => s), e;
9602
+ throw o = "unavailable", s = await j().catch(() => s), e;
9581
9603
  } finally {
9582
9604
  y = null, G();
9583
9605
  }
@@ -9587,7 +9609,7 @@ function ef(e = {}) {
9587
9609
  }, K = () => {
9588
9610
  S && globalThis.clearTimeout(S), S = globalThis.setTimeout(() => {
9589
9611
  S = 0, b?.status === "completed" && (b = null, I(), G());
9590
- }, Md);
9612
+ }, Nd);
9591
9613
  }, ie = async (e) => {
9592
9614
  if (!(!b || b.id !== e.id)) {
9593
9615
  if (b = {
@@ -9609,24 +9631,24 @@ function ef(e = {}) {
9609
9631
  if (e.status === "interrupted") {
9610
9632
  I(), G();
9611
9633
  let t = e.updatedAt > 0 ? e.updatedAt : Date.now();
9612
- Date.now() - t < Pd && (x = globalThis.setTimeout(() => {
9634
+ Date.now() - t < Fd && (x = globalThis.setTimeout(() => {
9613
9635
  x = 0, ae(e.id);
9614
- }, Nd));
9636
+ }, Pd));
9615
9637
  return;
9616
9638
  }
9617
9639
  G(), x = globalThis.setTimeout(() => {
9618
9640
  x = 0, ae(e.id);
9619
- }, jd);
9641
+ }, Md);
9620
9642
  }
9621
9643
  }, ae = async (e) => {
9622
9644
  if (!(w || b?.id !== e)) try {
9623
- await ie(await M(e));
9645
+ await ie(await N(e));
9624
9646
  } catch (t) {
9625
9647
  if (b?.id !== e) return;
9626
9648
  let n = t;
9627
9649
  if (b.status === "queued" && b.thread) try {
9628
9650
  o !== "available" && await U(!0);
9629
- let e = await N(b);
9651
+ let e = await P(b);
9630
9652
  await ie(e);
9631
9653
  return;
9632
9654
  } catch (e) {
@@ -9640,23 +9662,23 @@ function ef(e = {}) {
9640
9662
  b = {
9641
9663
  ...b,
9642
9664
  status: "failed"
9643
- }, I(), $d(n) && (o = "unavailable"), G();
9665
+ }, I(), ef(n) && (o = "unavailable"), G();
9644
9666
  }
9645
9667
  }, oe = {
9646
- health: j,
9647
- listThreads: P,
9648
- delivery: M,
9668
+ health: M,
9669
+ listThreads: te,
9670
+ delivery: N,
9649
9671
  async useThread(e) {
9650
9672
  let t = e.trim();
9651
9673
  if (!t) throw Error("Codex thread must be a non-empty string.");
9652
9674
  let n = await E({
9653
9675
  action: "target",
9654
9676
  thread: t
9655
- }), r = qd(n);
9656
- return s = Kd(n) ?? s, L(t, !l), f = r.thread, p = r.threads, o = "available", c = !0, G(), r;
9677
+ }), r = Jd(n);
9678
+ return s = qd(n) ?? s, L(t, !l), f = r.thread, p = r.threads, o = "available", c = !0, G(), r;
9657
9679
  },
9658
9680
  async queue(e) {
9659
- let r = await Xd(i, e, t), a = e?.thread?.trim(), s = a || (n ? F() : null);
9681
+ let r = await Zd(i, e, t), a = e?.thread?.trim(), s = a || (n ? F() : null);
9660
9682
  if (n && !a && (d || !s)) throw Error("Choose a Codex thread before queueing feedback.");
9661
9683
  let c = { message: r.message };
9662
9684
  s && (c.thread = s);
@@ -9676,14 +9698,14 @@ function ef(e = {}) {
9676
9698
  };
9677
9699
  return e.queuedSubmissionId !== void 0 && (n.queuedSubmissionId = e.queuedSubmissionId?.trim() || null), e.dispatch !== void 0 && (n.dispatch = e.dispatch), e.dispatchError !== void 0 && (n.dispatchError = e.dispatchError?.trim() || null), n;
9678
9700
  } catch (e) {
9679
- throw n && $d(e) && (o = "unavailable", G()), e;
9701
+ throw n && ef(e) && (o = "unavailable", G()), e;
9680
9702
  }
9681
9703
  },
9682
9704
  send(e) {
9683
9705
  return oe.queue(e);
9684
9706
  }
9685
9707
  };
9686
- e.service.provide(Od, oe);
9708
+ e.service.provide(kd, oe);
9687
9709
  let se = async () => {
9688
9710
  if (!(C || R())) return re(), b = {
9689
9711
  id: null,
@@ -9714,9 +9736,9 @@ function ef(e = {}) {
9714
9736
  updatedAt: 0
9715
9737
  }) : x = globalThis.setTimeout(() => {
9716
9738
  x = 0, ae(e.deliveryId);
9717
- }, jd) : S = globalThis.setTimeout(() => {
9739
+ }, Md) : S = globalThis.setTimeout(() => {
9718
9740
  S = 0, b?.id === null && b?.status === "queued" && (b = null, I(), G());
9719
- }, Md);
9741
+ }, Nd);
9720
9742
  } catch (e) {
9721
9743
  b = null, I(), G();
9722
9744
  let t = e instanceof Error ? e.message : String(e);
@@ -9744,7 +9766,7 @@ function ef(e = {}) {
9744
9766
  }, 0));
9745
9767
  let t = globalThis.setInterval(() => {
9746
9768
  c && U().catch(() => void 0);
9747
- }, Ad);
9769
+ }, jd);
9748
9770
  e.lifecycle.onDispose(() => {
9749
9771
  w = !0, re(), globalThis.clearInterval(t), _?.dispose(), _ = void 0;
9750
9772
  });
@@ -9754,15 +9776,15 @@ function ef(e = {}) {
9754
9776
  }
9755
9777
  //#endregion
9756
9778
  //#region src/recording.ts
9757
- var tf = Cl, nf = wl, rf = Tl, af = (e = {}) => ({
9779
+ var nf = Cl, rf = wl, af = Tl, of = (e = {}) => ({
9758
9780
  ...Gl(e),
9759
- version: wu
9760
- }), of = ou, sf = ru, cf = iu, lf = au, uf = 4, df = $r, ff = (e, t) => Ar(e, t), pf = (e = /* @__PURE__ */ new Date()) => jr(e), mf = (e, t, n, r) => kr(e, t, n, r), hf = (e, t, n) => Or(e, t, n), gf = (e, t) => Xr(e, t), _f = (e) => Qr(e), vf = (e = {}) => ({
9761
- ...Cu(e),
9762
- version: wu
9763
- }), yf = (e) => Nr(e), bf = (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) => ({
9764
9786
  ...e,
9765
- version: wu
9766
- }), xf = () => bf($o()), Sf = () => bf(es()), Cf = () => bf(ts()), wf = () => bf(ns()), Tf = () => bf(rs()), Ef = () => bf(is()), Df = () => bf(os()), Of = () => bf(as()), kf = () => ss().map(bf), Af = (e = [], t = []) => cs(e, t).map((e) => e.id.startsWith("mesurer.") ? bf(e) : e);
9787
+ version: Tu
9788
+ }), Sf = () => xf($o()), Cf = () => xf(es()), wf = () => xf(ts()), Tf = () => xf(ns()), Ef = () => xf(rs()), Df = () => xf(is()), Of = () => xf(os()), kf = () => xf(as()), Af = () => ss().map(xf), jf = (e = [], t = []) => cs(e, t).map((e) => e.id.startsWith("mesurer.") ? xf(e) : e);
9767
9789
  //#endregion
9768
- export { Tu as MESURER_ARRANGE_ACTIVE_STATE_ID, Eu as MESURER_ARRANGE_PLUGIN_ID, Du as MESURER_ARRANGE_SERVICE_ID, Ou as MESURER_ARRANGE_SETTINGS_STATE_ID, ku as MESURER_ARRANGE_STATE_ID, Dd as MESURER_CODEX_PLUGIN_ID, Od as MESURER_CODEX_SERVICE_ID, hd as MESURER_CONTEXT_PLUGIN_ID, gd as MESURER_CONTEXT_SERVICE_ID, _d as MESURER_CONTEXT_SETTINGS_STATE_ID, Mu as MESURER_EDIT_ACTIVE_STATE_ID, Nu as MESURER_EDIT_PLUGIN_ID, Pu as MESURER_EDIT_SERVICE_ID, Fu as MESURER_EDIT_SETTINGS_STATE_ID, Iu as MESURER_EDIT_STATE_ID, pd as MESURER_LAYOUT_GUIDES_ACTIVE_STATE_ID, ud as MESURER_LAYOUT_GUIDES_PLUGIN_ID, dd as MESURER_LAYOUT_GUIDES_SERVICE_ID, fd as MESURER_LAYOUT_GUIDES_STATE_ID, tf as MESURER_RECORDING_PLUGIN_ID, nf as MESURER_RECORDING_SERVICE_ID, rf as MESURER_RECORDING_SETTINGS_STATE_ID, of as MESURER_SCREENSHOT_ACTIVE_STATE_ID, sf as MESURER_SCREENSHOT_PLUGIN_ID, cf as MESURER_SCREENSHOT_SERVICE_ID, lf as MESURER_SCREENSHOT_SETTINGS_STATE_ID, uf as MIN_SCREENSHOT_SELECTION, Au as arrange, df as captureVisibleTabPng, ef as codex, Cf as colorPicker, Af as compose, Ed as context, ff as copyPngToClipboard, pf as createScreenshotFilename, mf as cropPngToViewportRect, kf as defaults, Df as distance, ju as edit, Ef as guides, md as layoutGuides, hf as normalizeScreenshotRect, gf as prepareScreenshotCapture, af as recording, _f as releaseScreenshotCapture, wf as rulers, vf as screenshot, xf as select, Of as settings, Tf as typography, yf as waitForNextPaint, Sf as xray };
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 };