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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/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 M(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 N = 0, P = null, F = !1, I = !1, L = !1, te = 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) {
@@ -114,7 +114,7 @@ function V() {
114
114
  ln: /* @__PURE__ */ new Set()
115
115
  };
116
116
  }
117
- function ne(e, t) {
117
+ function H(e, t) {
118
118
  t.fn = e, e.ie.push(...t.ie);
119
119
  for (let n of C) n.Ne === t && (n.Ne = e);
120
120
  t.Me.length && (e.Me.push(...t.Me), t.Me.length = 0), t.A.length && (e.A.push(...t.A), t.A.length = 0);
@@ -126,23 +126,23 @@ function ne(e, t) {
126
126
  }
127
127
  for (let n of t.ln) e.ln.add(n);
128
128
  }
129
- function H() {
130
- if (I) {
131
- W();
129
+ function U() {
130
+ if (F) {
131
+ G();
132
132
  return;
133
133
  }
134
- F || (F = !0, !te && !q.gt && queueMicrotask(pe));
134
+ te || (te = !0, !L && !q.gt && queueMicrotask(pe));
135
135
  }
136
- function U(e) {
137
- if (I) return;
138
- I = !0;
136
+ function W(e) {
137
+ if (F) return;
138
+ F = !0;
139
139
  let t = "[REACTIVITY_HALTED]";
140
140
  e === void 0 ? console.error(t) : console.error(t, e);
141
141
  }
142
- function W() {
143
- L || (L = !0, console.error("[REACTIVITY_HALTED]"));
142
+ function G() {
143
+ I || (I = !0, console.error("[REACTIVITY_HALTED]"));
144
144
  }
145
- var re = 0, G = class {
145
+ var ne = 0, re = class {
146
146
  ke = null;
147
147
  bt = [[], []];
148
148
  vt = [];
@@ -163,7 +163,7 @@ var re = 0, G = class {
163
163
  let t = this.bt[e - 1];
164
164
  this.bt[e - 1] = [], me(t, e);
165
165
  }
166
- let t = this.vt, n = ++re;
166
+ let t = this.vt, n = ++ne;
167
167
  for (let r = 0; r < t.length;) {
168
168
  let i = t[r];
169
169
  if (i.kt !== n && (i.kt = n, i.run?.(e), t[r] !== i)) {
@@ -174,7 +174,7 @@ var re = 0, G = class {
174
174
  }
175
175
  }
176
176
  enqueue(e, t) {
177
- e && (lt ? w(lt).rn[e - 1].push(t) : this.bt[e - 1].push(t)), H();
177
+ e && (lt ? w(lt).rn[e - 1].push(t) : this.bt[e - 1].push(t)), U();
178
178
  }
179
179
  stashQueues(e) {
180
180
  e.bt[0].push(...this.bt[0]), e.bt[1].push(...this.bt[1]), this.bt = [[], []];
@@ -193,7 +193,7 @@ var re = 0, G = class {
193
193
  r && r.restoreQueues(n);
194
194
  }
195
195
  }
196
- }, K = class e extends G {
196
+ }, K = class e extends re {
197
197
  gt = !1;
198
198
  m = V();
199
199
  static Ce;
@@ -232,19 +232,19 @@ var re = 0, G = class {
232
232
  if (!this.gt) {
233
233
  this.gt = !0;
234
234
  try {
235
- if (De(A, e.Ce), P) {
235
+ if (De(j, e.Ce), P) {
236
236
  if (!ge(P)) {
237
237
  let t = P;
238
- De(j, this.m === t ? M : e.Ce), this.m === t && (fe = this.m = V()), C.size && (e.In(1), e.In(2)), this.stashQueues(t.yt), N++, F = A.EE >= A.Ve || this.m.Qt.length > 0, de(t.Qt), P = null, le(null, !0);
238
+ De(M, this.m === t ? ee : e.Ce), this.m === t && (fe = this.m = V()), C.size && (e.In(1), e.In(2)), this.stashQueues(t.yt), N++, te = j.EE >= j.Ve || this.m.Qt.length > 0, de(t.Qt), P = null, le(null, !0);
239
239
  return;
240
240
  }
241
241
  let t = P, n = this.m;
242
- if (n !== t && n.Qt.push(...t.Qt), this.restoreQueues(t.yt), k.delete(t), P = null, de(n.Qt), le(t), n === t) {
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
- N++, F = 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
  }
@@ -259,7 +259,7 @@ var re = 0, G = class {
259
259
  let n = t.source, r = P.Ie.get(n);
260
260
  r || P.Ie.set(n, r = /* @__PURE__ */ new Set());
261
261
  let i = r.size;
262
- r.add(e), r.size !== i && H();
262
+ r.add(e), r.size !== i && U();
263
263
  }
264
264
  }
265
265
  return !0;
@@ -271,9 +271,9 @@ var re = 0, G = class {
271
271
  if (!P) P = e ?? V();
272
272
  else if (e) {
273
273
  let t = P;
274
- ne(e, t), k.delete(t), P = e;
274
+ H(e, t), A.delete(t), P = e;
275
275
  }
276
- k.add(P), P.de = N;
276
+ A.add(P), P.de = N;
277
277
  let t = this.m;
278
278
  if (t !== P) {
279
279
  for (let e = 0; e < t.Qt.length; e++) {
@@ -306,7 +306,7 @@ function oe(e, t = !1) {
306
306
  a.fe.se |= 256;
307
307
  continue;
308
308
  }
309
- t && n ? (a.fe.se |= 128, 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,13 +325,13 @@ function ce() {
325
325
  function le(e = null, t = !1) {
326
326
  let n = !t;
327
327
  n && ce(), !t && q.vt.length && ue(q);
328
- let r = 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) {
333
333
  for (let e of t.ln) e.se & 64 || be(e);
334
- t.ln.clear(), H();
334
+ t.ln.clear(), U();
335
335
  }
336
336
  t.A.length && (K.G(t.A), q.vt.length && ue(q)), t.cn.size && K.Dt(t.cn, e), B(), C.size && K.dn(e);
337
337
  }
@@ -345,18 +345,18 @@ function de(e) {
345
345
  var q = new K(), fe = q.m;
346
346
  function pe(e) {
347
347
  if (e) {
348
- te++;
348
+ L++;
349
349
  try {
350
350
  return e();
351
351
  } finally {
352
352
  try {
353
353
  pe();
354
354
  } finally {
355
- te--;
355
+ L--;
356
356
  }
357
357
  }
358
358
  }
359
- if (!q.gt && !I) for (; F || P;) 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);
@@ -409,7 +409,7 @@ function ve(e, t) {
409
409
  //#endregion
410
410
  //#region ../../node_modules/.bun/@solidjs+signals@2.0.0-rc.0/node_modules/@solidjs/signals/dist/prod/core/heap.js
411
411
  function ye(e) {
412
- return e.se & 32 ? 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) {
@@ -684,7 +684,7 @@ function $e(e, t) {
684
684
  let n = !1, r = /* @__PURE__ */ new Set(), i = (e) => {
685
685
  r.has(e) || (r.add(e), e._ === t && (be(e), n = !0), Xe(e, i));
686
686
  };
687
- Xe(e, i), n && H();
687
+ Xe(e, i), n && U();
688
688
  }
689
689
  function et(e) {
690
690
  let t = !1, n, r = /* @__PURE__ */ new Set(), i = K.Se, a = (o) => {
@@ -694,7 +694,7 @@ function et(e) {
694
694
  s ? (c || Ye(o, s), i !== null && i(o)) : (o.S &= -2, c || Ye(o), i !== null && i(o), o.ue && (be(o), t = !0), o.ue = !1, !o.o && o.T & 32 && (n ??= []).push(o)), Xe(o, a);
695
695
  };
696
696
  if (Xe(e, a), n) for (let e of n) Ze(e);
697
- t && H();
697
+ t && U();
698
698
  }
699
699
  function tt(e) {
700
700
  return typeof e == "object" && !!e && typeof e.then == "function";
@@ -740,7 +740,7 @@ function nt(e, t, n) {
740
740
  } catch (t) {
741
741
  it(e, 2, t);
742
742
  }
743
- e.De === _ && (e.Ee = !1), et(e), H(), pe(), i?.();
743
+ e.De === _ && (e.Ee = !1), et(e), U(), pe(), i?.();
744
744
  }, l = () => e.T & 32 && !e.o && !(e.S & 1) ? (Ue(e), !0) : !1;
745
745
  if (i) {
746
746
  let n = !1, r = !1, i, o = !0;
@@ -773,7 +773,7 @@ function nt(e, t, n) {
773
773
  if ((tt(_) ? _ : { then: (e) => void e(_) }).then((n) => {
774
774
  if (g && o) d = n, m = !0, n.done && (i = !0);
775
775
  else if (e.Te !== t) return;
776
- else n.done ? (i = !0, r ? (H(), pe()) : c(void 0), l()) : (r = !0, c(n.value, u));
776
+ else n.done ? (i = !0, r ? (U(), pe()) : c(void 0), l()) : (r = !0, c(n.value, u));
777
777
  }, (n) => {
778
778
  g ? (p = n, h = !0) : e.Te === t && (i = !0, s(n), l());
779
779
  }), g = !1, h) {
@@ -796,7 +796,7 @@ function rt(e, t = !1) {
796
796
  function it(e, t, n, r, i) {
797
797
  t === 2 && !(n instanceof f) && !(n instanceof d) && (n = new f(e, n));
798
798
  let a = t === 1 && n instanceof d ? n.source : void 0, o = a === e, s = t === 1 && e._e !== void 0 && !o, c = s && O(e);
799
- r || (t === 1 && a ? (Ge(e, a), e.S = 1 | e.S & 4, Ye(e, a, n)) : (qe(e), e.S = t | (t === 2 ? 0 : e.S & 4), e._ = n), K.Se !== null && K.Se(e), e.u && K.Oe !== null && K.Oe(e)), i && !r && 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;
@@ -806,7 +806,7 @@ function it(e, t, n, r, i) {
806
806
  Xe(e, (e, r) => {
807
807
  if (e.de = N, t === 1 && a && !e.oe?.has(a) || t !== 1 && (e._ !== n || e.oe)) {
808
808
  if (r.Ge && t !== 1 && !(n instanceof d)) {
809
- be(e), H();
809
+ be(e), U();
810
810
  return;
811
811
  }
812
812
  !l && !e.Ne && ie(e), it(e, t, n, l, u);
@@ -1030,10 +1030,10 @@ function bt(e) {
1030
1030
  function xt(e, t) {
1031
1031
  if (e.Ne && P !== e.Ne && q.initTransition(e.Ne), e._e !== void 0) return K.Gt(e, t);
1032
1032
  let n = e.De === _ ? e.Ue : e.De;
1033
- return typeof t == "function" && (t = t(n)), e.S & 4 || !e.be || !e.be(n, t) ? (e.De === _ && ie(e), e.De = t, (e.ge !== void 0 || e.pe !== void 0) && K.Pe !== null && K.Pe(e, t), e.de = N, oe(e), H(), 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
- we(e, ye(e)), !(e.se & 1024) && e.De === _ && (ie(e), H()), e.se = e.se & -4 | h;
1036
+ we(e, ye(e)), !(e.se & 1024) && e.De === _ && (ie(e), U()), e.se = e.se & -4 | h;
1037
1037
  }
1038
1038
  function Ct(e, t) {
1039
1039
  let n = xt(e, t);
@@ -1073,7 +1073,7 @@ function Ot(e, t) {
1073
1073
  this.S & 2 && (this.Je = !0, this.C.enqueue(this.Re, this.Xe ??= kt.bind(null, this)));
1074
1074
  return;
1075
1075
  }
1076
- if (!this.C.notify(this, 2, 2)) throw U(p(r)), r;
1076
+ if (!this.C.notify(this, 2, 2)) throw W(p(r)), r;
1077
1077
  } else this.Re === 1 && this.C.notify(this, 3, n, r);
1078
1078
  }
1079
1079
  function kt(e) {
@@ -1087,7 +1087,7 @@ function kt(e) {
1087
1087
  e.Tt = void 0, t?.();
1088
1088
  }) : console.error(t);
1089
1089
  } catch (t) {
1090
- if (!e.C.notify(e, 2, 2)) throw U(t), t;
1090
+ if (!e.C.notify(e, 2, 2)) throw W(t), t;
1091
1091
  }
1092
1092
  return;
1093
1093
  }
@@ -1096,7 +1096,7 @@ function kt(e) {
1096
1096
  try {
1097
1097
  t?.(), e.Tt = e.ft(e.Ue, e._t);
1098
1098
  } catch (t) {
1099
- if (e._ = new f(e, t), e.S |= 2, !e.C.notify(e, 2, 2)) throw U(t), t;
1099
+ if (e._ = new f(e, t), e.S |= 2, !e.C.notify(e, 2, 2)) throw W(t), t;
1100
1100
  } finally {
1101
1101
  e._t = e.Ue, e.Je = !1;
1102
1102
  }
@@ -3310,43 +3310,43 @@ function Xa(e = {}, t = !1) {
3310
3310
  let i = (e.id ?? (t ? "mesurer-text-inspector" : `mesurer-text-inspector-${++Ja}`)).replace(/[^a-zA-Z0-9_-]/g, "-"), a = `${i}-overlay`, o = `${i}-styles`, s = `${i}-mode`, c = new Set((e.ignoredTags ?? Ha).map((e) => e.toUpperCase())), l = Number.isFinite(e.maxPinned) ? Math.max(1, Math.floor(e.maxPinned)) : Infinity, u = new Va(n, r), d = r.HTMLElement, f = r.SVGElement, p = r.Node, m = !1, h = null, g = null, _ = null, v = null, y = {
3311
3311
  x: 0,
3312
3312
  y: 0
3313
- }, b = 0, x = 0, S = 0, C = r.scrollX, w = r.scrollY, T = null, E = [], D = [], O = [], 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
- }, M = () => {
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
- }, N = (e) => Array.from(e.childNodes).some((e) => e.nodeType === p.TEXT_NODE && !!e.nodeValue?.trim()), P = (e) => !!e && e instanceof d && !(e instanceof f) && !c.has(e.tagName) && N(e) && !e.closest("[data-mesurer-root], [data-mesurer-inspector-ui='true']"), F = (e, t) => {
3333
+ }, N = (e) => Array.from(e.childNodes).some((e) => e.nodeType === p.TEXT_NODE && !!e.nodeValue?.trim()), P = (e) => !!e && e instanceof d && !(e instanceof f) && !c.has(e.tagName) && N(e) && !e.closest("[data-mesurer-root], [data-mesurer-inspector-ui='true']"), te = (e, t) => {
3334
3334
  for (let i of n.elementsFromPoint(e, t)) {
3335
3335
  if (ri(i, r)) return null;
3336
3336
  if (P(i)) return i;
3337
3337
  }
3338
3338
  return null;
3339
- }, I = () => {
3340
- v = null, j(g, !1), j(_, !1);
3341
- }, L = (e, t, n) => {
3339
+ }, F = () => {
3340
+ v = null, M(g, !1), M(_, !1);
3341
+ }, I = (e, t, n) => {
3342
3342
  if (!e || e.dataset.state !== "visible") return !1;
3343
3343
  let r = e.getBoundingClientRect();
3344
3344
  return t >= r.left && t <= r.right && n >= r.top && n <= r.bottom;
3345
- }, te = (e, t) => E.some((n) => L(n.card, e, t)), R = (t) => {
3345
+ }, L = (e, t) => E.some((n) => I(n.card, e, t)), R = (t) => {
3346
3346
  if (!m || !P(t)) return !1;
3347
- M();
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);
@@ -3361,9 +3361,9 @@ function Xa(e = {}, t = !1) {
3361
3361
  }, V = (t, n = !0, r = !0) => {
3362
3362
  let i = E.indexOf(t);
3363
3363
  i < 0 || (n && B(), E.splice(i, 1), t.detach(), t.box.remove(), t.card.remove(), r && e.onUnpin?.(t.sourceEl));
3364
- }, ne = (e = !1) => {
3364
+ }, H = (e = !1) => {
3365
3365
  for (; E.length;) V(E[E.length - 1], !1, e);
3366
- }, H = (e) => {
3366
+ }, U = (e) => {
3367
3367
  let t = -1, n = 0, i = 0, a = 0, o = 0, s = !1, c = !1, l = (l) => {
3368
3368
  if (l.pointerId !== t) return;
3369
3369
  let u = l.clientX - n, d = l.clientY - i;
@@ -3378,15 +3378,15 @@ function Xa(e = {}, t = !1) {
3378
3378
  return e.card.addEventListener("pointerdown", f), () => {
3379
3379
  e.card.removeEventListener("pointerdown", f), r.removeEventListener("pointermove", l), r.removeEventListener("pointerup", u), r.removeEventListener("pointercancel", u);
3380
3380
  };
3381
- }, U = (t, i, a = !0, o = !0) => {
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,
@@ -3396,20 +3396,20 @@ function Xa(e = {}, t = !1) {
3396
3396
  userPlaced: i?.userPlaced ?? !1,
3397
3397
  detach: () => {}
3398
3398
  };
3399
- E.push(m), m.detach = H(m), d.querySelector(".mesurer-ti-close")?.addEventListener("click", (e) => {
3399
+ E.push(m), m.detach = U(m), d.querySelector(".mesurer-ti-close")?.addEventListener("click", (e) => {
3400
3400
  e.preventDefault(), e.stopPropagation(), V(m);
3401
3401
  }), o && e.onPin?.(t, f);
3402
- }, W = (e) => {
3403
- ne(!1);
3404
- for (let t of e) t.sourceEl.isConnected && U(t.sourceEl, t, !1, !1);
3405
- }, re = () => {
3402
+ }, G = (e) => {
3403
+ H(!1);
3404
+ for (let t of e) t.sourceEl.isConnected && W(t.sourceEl, t, !1, !1);
3405
+ }, ne = () => {
3406
3406
  let e = D.pop();
3407
- return e ? (O.push(z()), W(e), !0) : !1;
3408
- }, G = () => {
3407
+ return e ? (O.push(z()), G(e), !0) : !1;
3408
+ }, re = () => {
3409
3409
  let e = O.pop();
3410
- return e ? (D.push(z()), W(e), !0) : !1;
3410
+ return e ? (D.push(z()), G(e), !0) : !1;
3411
3411
  }, K = () => {
3412
- E.length && (B(), ne(!0));
3412
+ E.length && (B(), H(!0));
3413
3413
  }, ie = () => {
3414
3414
  for (let e of E.slice()) {
3415
3415
  if (!e.sourceEl.isConnected) {
@@ -3419,25 +3419,25 @@ function Xa(e = {}, t = !1) {
3419
3419
  let t = e.sourceEl.getBoundingClientRect();
3420
3420
  Oa(e.box, t), e.userPlaced || ja(r, e.card, t);
3421
3421
  let n = t.bottom >= 0 && t.right >= 0 && t.left <= r.innerWidth && t.top <= r.innerHeight;
3422
- 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) {
3426
3426
  if (v && g && _) {
3427
- if (!v.isConnected) I();
3427
+ if (!v.isConnected) F();
3428
3428
  else {
3429
3429
  let e = v.getBoundingClientRect();
3430
3430
  Oa(g, e), ja(r, _, e);
3431
3431
  let t = e.bottom >= 0 && e.right >= 0 && e.left <= r.innerWidth && e.top <= r.innerHeight;
3432
- 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 = F(y.x, y.y);
3440
- if (!e) I();
3439
+ let e = te(y.x, y.y);
3440
+ if (!e) F();
3441
3441
  else if (e !== v) R(e);
3442
3442
  else if (g && _) {
3443
3443
  let t = e.getBoundingClientRect();
@@ -3452,11 +3452,11 @@ function Xa(e = {}, t = !1) {
3452
3452
  if (y = {
3453
3453
  x: e.clientX,
3454
3454
  y: e.clientY
3455
- }, ce(e) || te(e.clientX, e.clientY)) {
3456
- I();
3455
+ }, ce(e) || L(e.clientX, e.clientY)) {
3456
+ F();
3457
3457
  return;
3458
3458
  }
3459
- L(_, e.clientX, e.clientY) || se();
3459
+ I(_, e.clientX, e.clientY) || se();
3460
3460
  }, ue = (e, t, n) => {
3461
3461
  if (!e || e.dataset.mesurerNativeScrollAnchor) return;
3462
3462
  let r = Number.parseFloat(e.style.left), i = Number.parseFloat(e.style.top);
@@ -3475,41 +3475,41 @@ function Xa(e = {}, t = !1) {
3475
3475
  }
3476
3476
  ae(), se();
3477
3477
  }, q = (e) => {
3478
- e.relatedTarget || I();
3478
+ e.relatedTarget || F();
3479
3479
  }, fe = (e) => {
3480
3480
  if (!ce(e)) {
3481
- if (L(_, e.clientX, e.clientY) || te(e.clientX, e.clientY)) {
3481
+ if (I(_, e.clientX, e.clientY) || L(e.clientX, e.clientY)) {
3482
3482
  e.preventDefault(), e.stopImmediatePropagation();
3483
3483
  return;
3484
3484
  }
3485
3485
  if (e.preventDefault(), e.stopImmediatePropagation(), e.button === 0) {
3486
- let t = F(e.clientX, e.clientY);
3487
- t && U(t);
3486
+ let t = te(e.clientX, e.clientY);
3487
+ t && W(t);
3488
3488
  }
3489
3489
  }
3490
3490
  }, pe = (e) => {
3491
3491
  if (!ce(e)) {
3492
- if (L(_, e.clientX, e.clientY) || te(e.clientX, e.clientY)) {
3492
+ if (I(_, e.clientX, e.clientY) || L(e.clientX, e.clientY)) {
3493
3493
  e.preventDefault(), e.stopImmediatePropagation();
3494
3494
  return;
3495
3495
  }
3496
3496
  e.preventDefault(), e.stopImmediatePropagation();
3497
3497
  }
3498
3498
  }, me = () => {
3499
- m || (m = !0, 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
- 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), I(), ne(), g?.remove(), _?.remove(), g = null, _ = null, D.length = 0, O.length = 0, n.body.classList.remove(s));
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,
3510
3510
  disable: he,
3511
- undo: re,
3512
- redo: G,
3511
+ undo: ne,
3512
+ redo: re,
3513
3513
  clear: K,
3514
3514
  inspect: R,
3515
3515
  isEnabled: () => m,
@@ -3520,7 +3520,7 @@ function Xa(e = {}, t = !1) {
3520
3520
  };
3521
3521
  }
3522
3522
  Xa({}, !0);
3523
- var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@layer properties;\n@layer theme, base, components, utilities;\n@layer theme {\n :root, :host {\n --msr-font-sans: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\",\n \"Noto Sans\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\",\n \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --msr-font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\",\n \"Courier New\", monospace;\n --msr-color-red-50: oklch(97.1% 0.013 17.38);\n --msr-color-red-200: oklch(88.5% 0.062 18.334);\n --msr-color-red-600: oklch(57.7% 0.245 27.325);\n --msr-color-black: #000;\n --msr-color-white: #fff;\n --msr-spacing: 0.25rem;\n --msr-font-weight-normal: 400;\n --msr-font-weight-medium: 500;\n --msr-font-weight-semibold: 600;\n --msr-radius-md: 0.375rem;\n --msr-radius-lg: 0.5rem;\n --msr-default-transition-duration: 150ms;\n --msr-default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --msr-default-font-family: var(--msr-font-sans);\n --msr-default-mono-font-family: var(--msr-font-mono);\n --msr-color-ink-50: #f8fafc;\n --msr-color-ink-200: #e2e8f0;\n --msr-color-ink-500: #64748b;\n --msr-color-ink-700: #334155;\n --msr-color-ink-900: #0f172a;\n }\n}\n@layer base {\n *, ::after, ::before, ::backdrop, ::file-selector-button {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n }\n html, :host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n font-family: var(--msr-default-font-family, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");\n font-feature-settings: var(--msr-default-font-feature-settings, normal);\n font-variation-settings: var(--msr-default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n h1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n b, strong {\n font-weight: bolder;\n }\n code, kbd, samp, pre {\n font-family: var(--msr-default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);\n font-feature-settings: var(--msr-default-mono-font-feature-settings, normal);\n font-variation-settings: var(--msr-default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n small {\n font-size: 80%;\n }\n sub, sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n :-moz-focusring:where(:not(iframe)) {\n outline: auto;\n }\n progress {\n vertical-align: baseline;\n }\n summary {\n display: list-item;\n }\n ol, ul, menu {\n list-style: none;\n }\n img, svg, video, canvas, audio, iframe, embed, object {\n display: block;\n vertical-align: middle;\n }\n img, video {\n max-width: 100%;\n height: auto;\n }\n button, input, select, optgroup, textarea, ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n }\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n ::placeholder {\n opacity: 1;\n }\n @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\n ::placeholder {\n color: currentcolor;\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n textarea {\n resize: vertical;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n ::-webkit-calendar-picker-indicator {\n line-height: 1;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n button, input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]), ::file-selector-button {\n appearance: button;\n }\n ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {\n height: auto;\n }\n [hidden]:where(:not([hidden=\"until-found\"])) {\n display: none !important;\n }\n}\n@layer utilities {\n .msr\\:pointer-events-auto {\n pointer-events: auto;\n }\n .msr\\:pointer-events-none {\n pointer-events: none;\n }\n .msr\\:absolute {\n position: absolute;\n }\n .msr\\:fixed {\n position: fixed;\n }\n .msr\\:relative {\n position: relative;\n }\n .msr\\:inset-0 {\n inset: 0px;\n }\n .msr\\:top-0 {\n top: 0px;\n }\n .msr\\:top-1\\/2 {\n top: calc(1 / 2 * 100%);\n }\n .msr\\:top-\\[18px\\] {\n top: 18px;\n }\n .msr\\:top-full {\n top: 100%;\n }\n .msr\\:right-0 {\n right: 0px;\n }\n .msr\\:right-2 {\n right: calc(var(--msr-spacing) * 2);\n }\n .msr\\:right-\\[8px\\] {\n right: 8px;\n }\n .msr\\:bottom-0 {\n bottom: 0px;\n }\n .msr\\:bottom-full {\n bottom: 100%;\n }\n .msr\\:left-0 {\n left: 0px;\n }\n .msr\\:left-1\\/2 {\n left: calc(1 / 2 * 100%);\n }\n .msr\\:left-\\[8px\\] {\n left: 8px;\n }\n .msr\\:left-\\[18px\\] {\n left: 18px;\n }\n .msr\\:z-10 {\n z-index: 10;\n }\n .msr\\:z-\\[60\\] {\n z-index: 60;\n }\n .msr\\:z-\\[70\\] {\n z-index: 70;\n }\n .msr\\:z-\\[80\\] {\n z-index: 80;\n }\n .msr\\:z-\\[90\\] {\n z-index: 90;\n }\n .msr\\:z-\\[94\\] {\n z-index: 94;\n }\n .msr\\:z-\\[95\\] {\n z-index: 95;\n }\n .msr\\:col-span-2 {\n grid-column: span 2 / span 2;\n }\n .msr\\:col-start-1 {\n grid-column-start: 1;\n }\n .msr\\:col-start-2 {\n grid-column-start: 2;\n }\n .msr\\:col-start-3 {\n grid-column-start: 3;\n }\n .msr\\:m-0 {\n margin: 0px;\n }\n .msr\\:mx-1 {\n margin-inline: var(--msr-spacing);\n }\n .msr\\:mt-1 {\n margin-top: var(--msr-spacing);\n }\n .msr\\:mt-1\\.5 {\n margin-top: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:mt-2 {\n margin-top: calc(var(--msr-spacing) * 2);\n }\n .msr\\:mb-1 {\n margin-bottom: var(--msr-spacing);\n }\n .msr\\:mb-2 {\n margin-bottom: calc(var(--msr-spacing) * 2);\n }\n .msr\\:-ml-1 {\n margin-left: calc(var(--msr-spacing) * -1);\n }\n .msr\\:ml-1 {\n margin-left: var(--msr-spacing);\n }\n .msr\\:ml-2 {\n margin-left: calc(var(--msr-spacing) * 2);\n }\n .msr\\:ml-6 {\n margin-left: calc(var(--msr-spacing) * 6);\n }\n .msr\\:box-border {\n box-sizing: border-box;\n }\n .msr\\:block {\n display: block;\n }\n .msr\\:flex {\n display: flex;\n }\n .msr\\:grid {\n display: grid;\n }\n .msr\\:inline-flex {\n display: inline-flex;\n }\n .msr\\:size-1\\.5 {\n width: calc(var(--msr-spacing) * 1.5);\n height: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:size-3 {\n width: calc(var(--msr-spacing) * 3);\n height: calc(var(--msr-spacing) * 3);\n }\n .msr\\:size-4 {\n width: calc(var(--msr-spacing) * 4);\n height: calc(var(--msr-spacing) * 4);\n }\n .msr\\:size-6 {\n width: calc(var(--msr-spacing) * 6);\n height: calc(var(--msr-spacing) * 6);\n }\n .msr\\:size-7 {\n width: calc(var(--msr-spacing) * 7);\n height: calc(var(--msr-spacing) * 7);\n }\n .msr\\:size-8 {\n width: calc(var(--msr-spacing) * 8);\n height: calc(var(--msr-spacing) * 8);\n }\n .msr\\:size-\\[10px\\] {\n width: 10px;\n height: 10px;\n }\n .msr\\:size-\\[18px\\] {\n width: 18px;\n height: 18px;\n }\n .msr\\:size-full {\n width: 100%;\n height: 100%;\n }\n .msr\\:h-5 {\n height: calc(var(--msr-spacing) * 5);\n }\n .msr\\:h-6 {\n height: calc(var(--msr-spacing) * 6);\n }\n .msr\\:h-7 {\n height: calc(var(--msr-spacing) * 7);\n }\n .msr\\:h-8 {\n height: calc(var(--msr-spacing) * 8);\n }\n .msr\\:h-20 {\n height: calc(var(--msr-spacing) * 20);\n }\n .msr\\:h-\\[14px\\] {\n height: 14px;\n }\n .msr\\:h-\\[18px\\] {\n height: 18px;\n }\n .msr\\:h-\\[19px\\] {\n height: 19px;\n }\n .msr\\:h-full {\n height: 100%;\n }\n .msr\\:h-px {\n height: 1px;\n }\n .msr\\:max-h-36 {\n max-height: calc(var(--msr-spacing) * 36);\n }\n .msr\\:max-h-\\[220px\\] {\n max-height: 220px;\n }\n .msr\\:max-h-\\[calc\\(100vh-16px\\)\\] {\n max-height: calc(100vh - 16px);\n }\n .msr\\:max-h-\\[min\\(70vh\\,34rem\\)\\] {\n max-height: min(70vh, 34rem);\n }\n .msr\\:max-h-\\[min\\(320px\\,calc\\(100vh-16px\\)\\)\\] {\n max-height: min(320px, calc(100vh - 16px));\n }\n .msr\\:min-h-0 {\n min-height: 0px;\n }\n .msr\\:w-0 {\n width: 0px;\n }\n .msr\\:w-3 {\n width: calc(var(--msr-spacing) * 3);\n }\n .msr\\:w-4 {\n width: calc(var(--msr-spacing) * 4);\n }\n .msr\\:w-5 {\n width: calc(var(--msr-spacing) * 5);\n }\n .msr\\:w-6 {\n width: calc(var(--msr-spacing) * 6);\n }\n .msr\\:w-9 {\n width: calc(var(--msr-spacing) * 9);\n }\n .msr\\:w-12 {\n width: calc(var(--msr-spacing) * 12);\n }\n .msr\\:w-44 {\n width: calc(var(--msr-spacing) * 44);\n }\n .msr\\:w-60 {\n width: calc(var(--msr-spacing) * 60);\n }\n .msr\\:w-\\[18px\\] {\n width: 18px;\n }\n .msr\\:w-\\[26px\\] {\n width: 26px;\n }\n .msr\\:w-\\[272px\\] {\n width: 272px;\n }\n .msr\\:w-full {\n width: 100%;\n }\n .msr\\:w-px {\n width: 1px;\n }\n .msr\\:max-w-0 {\n max-width: 0px;\n }\n .msr\\:max-w-20 {\n max-width: calc(var(--msr-spacing) * 20);\n }\n .msr\\:max-w-\\[calc\\(100vw-16px\\)\\] {\n max-width: calc(100vw - 16px);\n }\n .msr\\:min-w-0 {\n min-width: 0px;\n }\n .msr\\:min-w-36 {\n min-width: calc(var(--msr-spacing) * 36);\n }\n .msr\\:flex-1 {\n flex: 1;\n }\n .msr\\:flex-none {\n flex: none;\n }\n .msr\\:shrink-0 {\n flex-shrink: 0;\n }\n .msr\\:-translate-x-1 {\n --tw-translate-x: calc(var(--msr-spacing) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .msr\\:-translate-x-1\\/2 {\n --tw-translate-x: calc(calc(1 / 2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .msr\\:translate-x-0 {\n --tw-translate-x: 0px;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .msr\\:-translate-y-1\\/2 {\n --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .msr\\:-rotate-90 {\n rotate: calc(90deg * -1);\n }\n .msr\\:rotate-45 {\n rotate: 45deg;\n }\n .msr\\:rotate-90 {\n rotate: 90deg;\n }\n .msr\\:rotate-180 {\n rotate: 180deg;\n }\n .msr\\:rotate-\\[45deg\\] {\n rotate: 45deg;\n }\n .msr\\:rotate-\\[135deg\\] {\n rotate: 135deg;\n }\n .msr\\:cursor-crosshair {\n cursor: crosshair;\n }\n .msr\\:cursor-default {\n cursor: default;\n }\n .msr\\:cursor-pointer {\n cursor: pointer;\n }\n .msr\\:touch-none {\n touch-action: none;\n }\n .msr\\:resize-none {\n resize: none;\n }\n .msr\\:list-none {\n list-style-type: none;\n }\n .msr\\:appearance-none {\n appearance: none;\n }\n .msr\\:grid-cols-\\[78px_150px\\] {\n grid-template-columns: 78px 150px;\n }\n .msr\\:grid-cols-\\[78px_156px\\] {\n grid-template-columns: 78px 156px;\n }\n .msr\\:grid-cols-\\[78px_minmax\\(0\\,1fr\\)\\] {\n grid-template-columns: 78px minmax(0,1fr);\n }\n .msr\\:grid-cols-\\[minmax\\(0\\,1fr\\)_28px_34px\\] {\n grid-template-columns: minmax(0,1fr) 28px 34px;\n }\n .msr\\:flex-col {\n flex-direction: column;\n }\n .msr\\:items-center {\n align-items: center;\n }\n .msr\\:items-start {\n align-items: flex-start;\n }\n .msr\\:items-stretch {\n align-items: stretch;\n }\n .msr\\:justify-between {\n justify-content: space-between;\n }\n .msr\\:justify-center {\n justify-content: center;\n }\n .msr\\:justify-end {\n justify-content: flex-end;\n }\n .msr\\:gap-0 {\n gap: 0px;\n }\n .msr\\:gap-0\\.5 {\n gap: calc(var(--msr-spacing) * 0.5);\n }\n .msr\\:gap-1 {\n gap: var(--msr-spacing);\n }\n .msr\\:gap-1\\.5 {\n gap: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:gap-2 {\n gap: calc(var(--msr-spacing) * 2);\n }\n .msr\\:gap-3 {\n gap: calc(var(--msr-spacing) * 3);\n }\n .msr\\:gap-\\[2px\\] {\n gap: 2px;\n }\n .msr\\:gap-px {\n gap: 1px;\n }\n .msr\\:gap-x-3 {\n column-gap: calc(var(--msr-spacing) * 3);\n }\n .msr\\:gap-y-1 {\n row-gap: var(--msr-spacing);\n }\n .msr\\:self-center {\n align-self: center;\n }\n .msr\\:self-stretch {\n align-self: stretch;\n }\n .msr\\:justify-self-end {\n justify-self: flex-end;\n }\n .msr\\:truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .msr\\:overflow-auto {\n overflow: auto;\n }\n .msr\\:overflow-hidden {\n overflow: hidden;\n }\n .msr\\:overflow-visible {\n overflow: visible;\n }\n .msr\\:overflow-x-hidden {\n overflow-x: hidden;\n }\n .msr\\:overflow-y-auto {\n overflow-y: auto;\n }\n .msr\\:rounded {\n border-radius: 0.25rem;\n }\n .msr\\:rounded-\\[3px\\] {\n border-radius: 3px;\n }\n .msr\\:rounded-\\[5px\\] {\n border-radius: 5px;\n }\n .msr\\:rounded-\\[6px\\] {\n border-radius: 6px;\n }\n .msr\\:rounded-\\[7px\\] {\n border-radius: 7px;\n }\n .msr\\:rounded-\\[8px\\] {\n border-radius: 8px;\n }\n .msr\\:rounded-\\[10px\\] {\n border-radius: 10px;\n }\n .msr\\:rounded-\\[12px\\] {\n border-radius: 12px;\n }\n .msr\\:rounded-full {\n border-radius: calc(infinity * 1px);\n }\n .msr\\:rounded-lg {\n border-radius: var(--msr-radius-lg);\n }\n .msr\\:rounded-md {\n border-radius: var(--msr-radius-md);\n }\n .msr\\:rounded-none {\n border-radius: 0;\n }\n .msr\\:border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .msr\\:border-0 {\n border-style: var(--tw-border-style);\n border-width: 0px;\n }\n .msr\\:border-t {\n border-top-style: var(--tw-border-style);\n border-top-width: 1px;\n }\n .msr\\:border-t-2 {\n border-top-style: var(--tw-border-style);\n border-top-width: 2px;\n }\n .msr\\:border-r {\n border-right-style: var(--tw-border-style);\n border-right-width: 1px;\n }\n .msr\\:border-b {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n .msr\\:border-l {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n .msr\\:border-dashed {\n --tw-border-style: dashed;\n border-style: dashed;\n }\n .msr\\:border-dotted {\n --tw-border-style: dotted;\n border-style: dotted;\n }\n .msr\\:border-solid {\n --tw-border-style: solid;\n border-style: solid;\n }\n .msr\\:border-\\[\\#0d99ff\\] {\n border-color: #0d99ff;\n }\n .msr\\:border-\\[\\#2563eb\\]\\/70 {\n border-color: color-mix(in oklab, #2563eb 70%, transparent);\n }\n .msr\\:border-black\\/8 {\n border-color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--msr-color-black) 8%, transparent);\n }\n }\n .msr\\:border-black\\/10 {\n border-color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--msr-color-black) 10%, transparent);\n }\n }\n .msr\\:border-black\\/15 {\n border-color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--msr-color-black) 15%, transparent);\n }\n }\n .msr\\:border-ink-200 {\n border-color: var(--msr-color-ink-200);\n }\n .msr\\:border-ink-500 {\n border-color: var(--msr-color-ink-500);\n }\n .msr\\:border-ink-700 {\n border-color: var(--msr-color-ink-700);\n }\n .msr\\:border-red-200 {\n border-color: var(--msr-color-red-200);\n }\n .msr\\:border-transparent {\n border-color: transparent;\n }\n .msr\\:bg-\\[\\#0d99ff\\] {\n background-color: #0d99ff;\n }\n .msr\\:bg-\\[\\#0d99ff\\]\\/10 {\n background-color: color-mix(in oklab, #0d99ff 10%, transparent);\n }\n .msr\\:bg-\\[\\#2563eb\\] {\n background-color: #2563eb;\n }\n .msr\\:bg-\\[\\#fff\\] {\n background-color: #fff;\n }\n .msr\\:bg-black {\n background-color: var(--msr-color-black);\n }\n .msr\\:bg-black\\/10 {\n background-color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--msr-color-black) 10%, transparent);\n }\n }\n .msr\\:bg-ink-50 {\n background-color: var(--msr-color-ink-50);\n }\n .msr\\:bg-ink-50\\/40 {\n background-color: var(--msr-color-ink-50);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--msr-color-ink-50) 40%, transparent);\n }\n }\n .msr\\:bg-ink-900\\/90 {\n background-color: var(--msr-color-ink-900);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--msr-color-ink-900) 90%, transparent);\n }\n }\n .msr\\:bg-transparent {\n background-color: transparent;\n }\n .msr\\:bg-white {\n background-color: var(--msr-color-white);\n }\n .msr\\:bg-white\\/60 {\n background-color: var(--msr-color-white);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--msr-color-white) 60%, transparent);\n }\n }\n .msr\\:p-0 {\n padding: 0px;\n }\n .msr\\:p-1 {\n padding: var(--msr-spacing);\n }\n .msr\\:p-1\\.5 {\n padding: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:p-2 {\n padding: calc(var(--msr-spacing) * 2);\n }\n .msr\\:p-3 {\n padding: calc(var(--msr-spacing) * 3);\n }\n .msr\\:p-\\[2px\\] {\n padding: 2px;\n }\n .msr\\:p-px {\n padding: 1px;\n }\n .msr\\:px-0 {\n padding-inline: 0px;\n }\n .msr\\:px-0\\.5 {\n padding-inline: calc(var(--msr-spacing) * 0.5);\n }\n .msr\\:px-1 {\n padding-inline: var(--msr-spacing);\n }\n .msr\\:px-1\\.5 {\n padding-inline: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:px-2 {\n padding-inline: calc(var(--msr-spacing) * 2);\n }\n .msr\\:px-2\\.5 {\n padding-inline: calc(var(--msr-spacing) * 2.5);\n }\n .msr\\:py-0 {\n padding-block: 0px;\n }\n .msr\\:py-0\\.5 {\n padding-block: calc(var(--msr-spacing) * 0.5);\n }\n .msr\\:py-1 {\n padding-block: var(--msr-spacing);\n }\n .msr\\:py-1\\.5 {\n padding-block: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:py-2 {\n padding-block: calc(var(--msr-spacing) * 2);\n }\n .msr\\:pt-0\\.5 {\n padding-top: calc(var(--msr-spacing) * 0.5);\n }\n .msr\\:pt-2 {\n padding-top: calc(var(--msr-spacing) * 2);\n }\n .msr\\:pr-0 {\n padding-right: 0px;\n }\n .msr\\:pr-2 {\n padding-right: calc(var(--msr-spacing) * 2);\n }\n .msr\\:pr-6 {\n padding-right: calc(var(--msr-spacing) * 6);\n }\n .msr\\:pb-1 {\n padding-bottom: var(--msr-spacing);\n }\n .msr\\:pb-1\\.5 {\n padding-bottom: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:pb-2 {\n padding-bottom: calc(var(--msr-spacing) * 2);\n }\n .msr\\:text-center {\n text-align: center;\n }\n .msr\\:text-left {\n text-align: left;\n }\n .msr\\:font-mono {\n font-family: var(--msr-font-mono);\n }\n .msr\\:text-\\[9px\\] {\n font-size: 9px;\n }\n .msr\\:text-\\[10px\\] {\n font-size: 10px;\n }\n .msr\\:text-\\[11px\\] {\n font-size: 11px;\n }\n .msr\\:text-\\[12px\\] {\n font-size: 12px;\n }\n .msr\\:text-\\[14px\\] {\n font-size: 14px;\n }\n .msr\\:leading-4 {\n --tw-leading: calc(var(--msr-spacing) * 4);\n line-height: calc(var(--msr-spacing) * 4);\n }\n .msr\\:leading-\\[1\\.4\\] {\n --tw-leading: 1.4;\n line-height: 1.4;\n }\n .msr\\:leading-\\[1\\.45\\] {\n --tw-leading: 1.45;\n line-height: 1.45;\n }\n .msr\\:leading-\\[18px\\] {\n --tw-leading: 18px;\n line-height: 18px;\n }\n .msr\\:leading-none {\n --tw-leading: 1;\n line-height: 1;\n }\n .msr\\:font-medium {\n --tw-font-weight: var(--msr-font-weight-medium);\n font-weight: var(--msr-font-weight-medium);\n }\n .msr\\:font-normal {\n --tw-font-weight: var(--msr-font-weight-normal);\n font-weight: var(--msr-font-weight-normal);\n }\n .msr\\:font-semibold {\n --tw-font-weight: var(--msr-font-weight-semibold);\n font-weight: var(--msr-font-weight-semibold);\n }\n .msr\\:text-ellipsis {\n text-overflow: ellipsis;\n }\n .msr\\:whitespace-nowrap {\n white-space: nowrap;\n }\n .msr\\:whitespace-pre-wrap {\n white-space: pre-wrap;\n }\n .msr\\:text-\\[\\#64748b\\] {\n color: #64748b;\n }\n .msr\\:text-black {\n color: var(--msr-color-black);\n }\n .msr\\:text-black\\/30 {\n color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--msr-color-black) 30%, transparent);\n }\n }\n .msr\\:text-black\\/45 {\n color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--msr-color-black) 45%, transparent);\n }\n }\n .msr\\:text-ink-50 {\n color: var(--msr-color-ink-50);\n }\n .msr\\:text-ink-500 {\n color: var(--msr-color-ink-500);\n }\n .msr\\:text-ink-700 {\n color: var(--msr-color-ink-700);\n }\n .msr\\:text-ink-900 {\n color: var(--msr-color-ink-900);\n }\n .msr\\:text-red-600 {\n color: var(--msr-color-red-600);\n }\n .msr\\:text-white {\n color: var(--msr-color-white);\n }\n .msr\\:text-white\\/60 {\n color: var(--msr-color-white);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--msr-color-white) 60%, transparent);\n }\n }\n .msr\\:tabular-nums {\n --tw-numeric-spacing: tabular-nums;\n font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);\n }\n .msr\\:opacity-0 {\n opacity: 0%;\n }\n .msr\\:opacity-60 {\n opacity: 60%;\n }\n .msr\\:opacity-80 {\n opacity: 80%;\n }\n .msr\\:opacity-100 {\n opacity: 100%;\n }\n .msr\\:shadow-lg {\n --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:shadow-sm {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:outline {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n .msr\\:outline-transparent {\n outline-color: transparent;\n }\n .msr\\:transition-\\[max-width\\,opacity\\,transform\\,padding\\] {\n transition-property: max-width,opacity,transform,padding;\n transition-timing-function: var(--tw-ease, var(--msr-default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--msr-default-transition-duration));\n }\n .msr\\:transition-\\[width\\,opacity\\] {\n transition-property: width,opacity;\n transition-timing-function: var(--tw-ease, var(--msr-default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--msr-default-transition-duration));\n }\n .msr\\:transition-colors {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--msr-default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--msr-default-transition-duration));\n }\n .msr\\:transition-opacity {\n transition-property: opacity;\n transition-timing-function: var(--tw-ease, var(--msr-default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--msr-default-transition-duration));\n }\n .msr\\:transition-transform {\n transition-property: transform, translate, scale, rotate;\n transition-timing-function: var(--tw-ease, var(--msr-default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--msr-default-transition-duration));\n }\n .msr\\:transition-none {\n transition-property: none;\n }\n .msr\\:duration-150 {\n --tw-duration: 150ms;\n transition-duration: 150ms;\n }\n .msr\\:ease-\\[ease\\] {\n --tw-ease: ease;\n transition-timing-function: ease;\n }\n .msr\\:outline-none {\n --tw-outline-style: none;\n outline-style: none;\n }\n .msr\\:select-none {\n -webkit-user-select: none;\n user-select: none;\n }\n @media (hover: hover) {\n .msr\\:group-hover\\:border-ink-200:is(:where(.msr\\:group):hover *) {\n border-color: var(--msr-color-ink-200);\n }\n }\n .msr\\:focus-within\\:rounded-l-\\[5px\\]:focus-within {\n border-top-left-radius: 5px;\n border-bottom-left-radius: 5px;\n }\n .msr\\:focus-within\\:rounded-r-\\[5px\\]:focus-within {\n border-top-right-radius: 5px;\n border-bottom-right-radius: 5px;\n }\n .msr\\:focus-within\\:outline:focus-within {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n .msr\\:focus-within\\:outline-1:focus-within {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n .msr\\:focus-within\\:outline-offset-\\[-1px\\]:focus-within {\n outline-offset: -1px;\n }\n .msr\\:focus-within\\:outline-\\[\\#0d99ff\\]:focus-within {\n outline-color: #0d99ff;\n }\n .msr\\:focus-within\\:outline-\\[var\\(--msr-accent\\)\\]:focus-within {\n outline-color: var(--msr-accent);\n }\n @media (hover: hover) {\n .msr\\:hover\\:border-ink-200:hover {\n border-color: var(--msr-color-ink-200);\n }\n .msr\\:hover\\:bg-\\[\\#0b8eea\\]:hover {\n background-color: #0b8eea;\n }\n .msr\\:hover\\:bg-\\[\\#0d99ff\\]:hover {\n background-color: #0d99ff;\n }\n .msr\\:hover\\:bg-black\\/4:hover {\n background-color: var(--msr-color-black);\n }\n @supports (color: color-mix(in lab, red, red)) {\n .msr\\:hover\\:bg-black\\/4:hover {\n background-color: color-mix(in oklab, var(--msr-color-black) 4%, transparent);\n }\n }\n .msr\\:hover\\:bg-black\\/10:hover {\n background-color: var(--msr-color-black);\n }\n @supports (color: color-mix(in lab, red, red)) {\n .msr\\:hover\\:bg-black\\/10:hover {\n background-color: color-mix(in oklab, var(--msr-color-black) 10%, transparent);\n }\n }\n .msr\\:hover\\:bg-ink-50:hover {\n background-color: var(--msr-color-ink-50);\n }\n .msr\\:hover\\:bg-red-50:hover {\n background-color: var(--msr-color-red-50);\n }\n .msr\\:hover\\:text-ink-700:hover {\n color: var(--msr-color-ink-700);\n }\n .msr\\:hover\\:text-ink-900:hover {\n color: var(--msr-color-ink-900);\n }\n .msr\\:hover\\:text-white:hover {\n color: var(--msr-color-white);\n }\n .msr\\:hover\\:underline:hover {\n text-decoration-line: underline;\n }\n }\n .msr\\:focus\\:border-\\[\\#0d99ff\\]:focus {\n border-color: #0d99ff;\n }\n .msr\\:focus\\:shadow-\\[inset_0_0_0_1px_\\#0d99ff\\]:focus {\n --tw-shadow: inset 0 0 0 1px var(--tw-shadow-color, #0d99ff);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:focus\\:shadow-\\[inset_0_0_0_1px_var\\(--msr-accent\\)\\]:focus {\n --tw-shadow: inset 0 0 0 1px var(--tw-shadow-color, var(--msr-accent));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:focus\\:outline-none:focus {\n --tw-outline-style: none;\n outline-style: none;\n }\n .msr\\:focus-visible\\:border-\\[\\#0d99ff\\]:focus-visible {\n border-color: #0d99ff;\n }\n .msr\\:focus-visible\\:bg-\\[\\#0d99ff\\]:focus-visible {\n background-color: #0d99ff;\n }\n .msr\\:focus-visible\\:text-white:focus-visible {\n color: var(--msr-color-white);\n }\n .msr\\:focus-visible\\:shadow-\\[inset_0_0_0_1px_\\#0d99ff\\]:focus-visible {\n --tw-shadow: inset 0 0 0 1px var(--tw-shadow-color, #0d99ff);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:focus-visible\\:shadow-\\[inset_0_0_0_1px_\\#ef4444\\]:focus-visible {\n --tw-shadow: inset 0 0 0 1px var(--tw-shadow-color, #ef4444);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:focus-visible\\:ring-1:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:focus-visible\\:ring-\\[\\#0d99ff\\]\\/25:focus-visible {\n --tw-ring-color: color-mix(in oklab, #0d99ff 25%, transparent);\n }\n .msr\\:focus-visible\\:outline-none:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .msr\\:disabled\\:cursor-default:disabled {\n cursor: default;\n }\n .msr\\:disabled\\:opacity-40:disabled {\n opacity: 40%;\n }\n .msr\\:disabled\\:opacity-45:disabled {\n opacity: 45%;\n }\n @media (prefers-reduced-motion: reduce) {\n .msr\\:motion-reduce\\:transition-none {\n transition-property: none;\n }\n }\n}\n:root, :host {\n --color-ink-50: #f8fafc;\n --color-ink-200: #e2e8f0;\n --color-ink-500: #64748b;\n --color-ink-700: #334155;\n --color-ink-900: #0f172a;\n}\n:host {\n all: initial;\n display: block;\n color-scheme: light;\n color: #0f172a;\n font-family: ui-sans-serif, system-ui, sans-serif;\n font-size: 16px;\n font-weight: 400;\n line-height: 1.5;\n letter-spacing: normal;\n direction: ltr;\n --msr-spacing: 4px;\n}\n*, *::before, *::after {\n box-sizing: border-box;\n}\n@layer base {\n *, ::before, ::after, ::backdrop {\n --tw-border-style: solid;\n --tw-outline-style: solid;\n --tw-shadow: 0 0 #0000;\n --tw-inset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n }\n button, input, select, textarea {\n appearance: none;\n background-color: transparent;\n padding: 0;\n font: inherit;\n color: inherit;\n letter-spacing: inherit;\n }\n}\n.mesurer-toolbar-surface {\n box-shadow: 0 0 0.5px rgba(0, 0, 0, 0.18), 0 3px 8px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.1);\n}\n.mesurer-menu-surface {\n box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);\n}\n.mesurer-color-picker {\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n}\n.mesurer-settings-tabs {\n box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.08);\n}\n.mesurer-settings-tab[aria-selected=\"true\"] {\n box-shadow: 0 0 0 1px rgba(15, 23, 42, 0.12);\n}\n.mesurer-switch-track {\n box-sizing: border-box;\n border: 1px solid #e2e8f0;\n}\n.mesurer-switch-track[data-checked=\"true\"] {\n border-color: #0d99ff;\n}\n.mesurer-control-shell {\n border: 1px solid transparent;\n}\n.mesurer-control-shell:hover {\n border-color: #e2e8f0;\n}\n.mesurer-control-focus:focus-within {\n outline: 1px solid #0d99ff;\n outline-offset: -1px;\n}\n.mesurer-root {\n --msr-spacing: 4px;\n}\nbody [data-mesurer-native-scroll-anchor=\"box\"][data-mesurer-nested-scroll-compensation=\"true\"] {\n position: absolute !important;\n left: calc(anchor(left) + var(--mesurer-nested-scroll-x, 0px)) !important;\n top: calc(anchor(top) + var(--mesurer-nested-scroll-y, 0px)) !important;\n}\nbody [data-mesurer-native-scroll-anchor=\"label\"][data-mesurer-nested-scroll-compensation=\"true\"] {\n position: absolute !important;\n left: calc(anchor(center) + var(--mesurer-nested-scroll-x, 0px)) !important;\n top: calc(anchor(bottom) + 2px + var(--mesurer-nested-scroll-y, 0px)) !important;\n}\nbody [data-mesurer-native-scroll-anchor=\"offset\"][data-mesurer-nested-scroll-compensation=\"true\"] {\n position: absolute !important;\n left: calc(anchor(left) + var(--mesurer-native-anchor-x, 0px) + var(--mesurer-nested-scroll-x, 0px)) !important;\n top: calc(anchor(top) + var(--mesurer-native-anchor-y, 0px) + var(--mesurer-nested-scroll-y, 0px)) !important;\n}\n[data-mesurer-text-edit-ring=\"true\"], [data-mesurer-text-selection-highlight=\"true\"], [data-mesurer-text-caret=\"true\"] {\n z-index: 2147482900 !important;\n}\n[data-mesurer-text-inspector-placement-shell=\"true\"], .mesurer-ti-card {\n z-index: 2147483647 !important;\n}\n[data-mesurer-context-root=\"true\"] [data-mesurer-annotation-scroll-mode=\"document\"] {\n position: absolute !important;\n}\n[data-mesurer-annotation-scroll-mode=\"native-anchor\"] {\n position: fixed !important;\n}\n[data-mesurer-native-scroll-anchor=\"offset\"][data-mesurer-nested-scroll-compensation=\"true\"][data-mesurer-annotation-scroll-mode=\"native-anchor\"] {\n position: fixed !important;\n}\n[data-mesurer-annotation-badge=\"true\"] {\n width: 20px !important;\n height: 20px !important;\n transform: none !important;\n transition: width 150ms ease, height 150ms ease, background 150ms ease, color 150ms ease, box-shadow 150ms ease !important;\n}\n[data-mesurer-annotation-marker=\"true\"][data-mesurer-annotation-highlighted=\"true\"] > [data-mesurer-annotation-badge=\"true\"] {\n width: 24px !important;\n height: 24px !important;\n}\n[data-mesurer-root=\"true\"][data-mesurer-direct-text-edit-active=\"true\"] [data-mesurer-annotation-trigger=\"true\"], [data-mesurer-context-root=\"true\"][data-mesurer-direct-text-edit-active=\"true\"] [data-mesurer-annotation-trigger=\"true\"] {\n display: none !important;\n}\n[data-mesurer-plugin-settings] [role=\"switch\"] {\n grid-template-columns: minmax(0, 1fr) auto;\n}\n[data-mesurer-plugin-settings] [role=\"switch\"] > span:first-child {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n[data-mesurer-plugin-settings-disclosure=\"plugins\"] {\n width: calc(100% + 16px);\n margin-inline: -8px;\n}\n.mesurer-solid-root {\n position: fixed;\n inset: 0;\n z-index: 2147483000;\n pointer-events: none;\n --msr-spacing: 4px;\n}\n.mesurer-solid-root [role=\"slider\"] {\n border: 0;\n}\n[data-mesurer-distance-kind=\"selection-spacing\"][data-mesurer-distance-active=\"true\"] [data-mesurer-distance-hover-target=\"true\"] {\n opacity: 1 !important;\n}\n[data-mesurer-distance-kind=\"selection-spacing\"][data-mesurer-distance-active=\"true\"]:has([data-mesurer-distance-label-axis=\"x\"]:hover) [data-mesurer-distance-line^=\"vertical\"], [data-mesurer-distance-kind=\"selection-spacing\"][data-mesurer-distance-active=\"true\"]:has([data-mesurer-distance-label-axis=\"y\"]:hover) [data-mesurer-distance-line^=\"horizontal\"], [data-mesurer-distance-kind=\"selection-spacing\"][data-mesurer-distance-active=\"true\"]:has([data-mesurer-distance-label-axis]:hover) [data-mesurer-distance-connector=\"true\"] {\n opacity: 0.16 !important;\n}\nbody.mesurer-solid-xray * {\n outline: solid 1px blue !important;\n}\nbody.mesurer-solid-xray [data-mesurer-root], body.mesurer-solid-xray [data-mesurer-root] *, body.mesurer-solid-xray [data-mesurer-inspector-ui], body.mesurer-solid-xray [data-mesurer-inspector-ui] *, body.mesurer-solid-xray .mesurer-toolbar-surface, body.mesurer-solid-xray .mesurer-toolbar-surface *, body.mesurer-solid-xray .mesurer-ti-box, body.mesurer-solid-xray .mesurer-ti-card, body.mesurer-solid-xray .mesurer-ti-card *, body.mesurer-solid-xray .mesurer-ti-close {\n outline: none !important;\n}\n[data-mesurer-toolbar=\"true\"] > div:has(> [data-mesurer-toolbar-compact-item]) {\n transition: padding-inline 150ms ease;\n}\n[data-mesurer-toolbar=\"true\"][data-mesurer-toolbar-compact=\"true\"] > div:has(> [data-mesurer-toolbar-compact-item]):not(:has(> [data-mesurer-toolbar-compact-item][data-visible=\"true\"])) {\n padding-inline: 0;\n}\n[data-mesurer-selected-measurement=\"true\"]:has(> [data-mesurer-native-scroll-anchor=\"box\"]) {\n display: contents !important;\n}\n@media (prefers-reduced-motion: reduce) {\n [data-mesurer-toolbar=\"true\"] > div:has(> [data-mesurer-toolbar-compact-item]) {\n transition: none;\n }\n [data-mesurer-annotation-badge=\"true\"] {\n transition: none !important;\n }\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) {\n --msr-accent: #0d99ff;\n --msr-surface: #fff;\n --msr-surface-raised: #fff;\n --msr-surface-muted: #f8fafc;\n --msr-content: #18181b;\n --msr-color-white: #fff;\n --msr-color-black: #000;\n --msr-color-ink-50: #f8fafc;\n --msr-color-ink-100: #f1f5f9;\n --msr-color-ink-200: #e2e8f0;\n --msr-color-ink-300: #cbd5e1;\n --msr-color-ink-500: #64748b;\n --msr-color-ink-700: #334155;\n --msr-color-ink-900: #18181b;\n --color-ink-50: var(--msr-color-ink-50);\n --color-ink-100: var(--msr-color-ink-100);\n --color-ink-200: var(--msr-color-ink-200);\n --color-ink-300: var(--msr-color-ink-300);\n --color-ink-500: var(--msr-color-ink-500);\n --color-ink-700: var(--msr-color-ink-700);\n --color-ink-900: var(--msr-color-ink-900);\n --msr-danger-bg: #fef2f2;\n --msr-danger-border: #fecaca;\n --msr-danger-text: #dc2626;\n --msr-danger-solid-bg: #dc2626;\n --msr-danger-solid-hover: #b91c1c;\n --msr-danger-solid-text: #fff;\n --color-red-50: var(--msr-danger-bg);\n --color-red-200: var(--msr-danger-border);\n --color-red-600: var(--msr-danger-text);\n --color-red-700: #b91c1c;\n --msr-control-thumb: #fff;\n --msr-slider-track: rgba(15, 23, 42, 0.16);\n --msr-shadow-toolbar: 0 0 0.4px rgba(0, 0, 0, 0.22),\n 0 6px 18px rgba(0, 0, 0, 0.03),\n 0 3px 9px rgba(0, 0, 0, 0.06),\n 0 1px 1px rgba(0, 0, 0, 0.06);\n --msr-shadow-floating: 0 0 0 0.4px rgba(0, 0, 0, 0.22),\n 0 6px 18px rgba(0, 0, 0, 0.03),\n 0 3px 9px rgba(0, 0, 0, 0.06),\n 0 1px 1px rgba(0, 0, 0, 0.06);\n --msr-shadow-select-menu: var(--msr-shadow-floating);\n color: var(--msr-content);\n color-scheme: light;\n}\n:where( [data-mesurer-root=\"true\"][data-theme=\"dark\"], [data-mesurer-inspector-ui=\"true\"][data-theme=\"dark\"] ) {\n --msr-accent: #0c8ce9;\n --msr-surface: #323232;\n --msr-surface-raised: #3a3a3a;\n --msr-surface-muted: #3a3a3a;\n --msr-content: #f5f5f5;\n --msr-color-white: #f5f5f5;\n --msr-color-black: #171717;\n --msr-color-ink-50: #3a3a3a;\n --msr-color-ink-100: #414141;\n --msr-color-ink-200: #4a4a4a;\n --msr-color-ink-300: #5a5a5a;\n --msr-color-ink-500: #a0a0a0;\n --msr-color-ink-700: #dedede;\n --msr-color-ink-900: #f5f5f5;\n --msr-danger-bg: #3f2020;\n --msr-danger-border: #7f3f46;\n --msr-danger-text: #f87171;\n --msr-danger-solid-bg: #c95058;\n --msr-danger-solid-hover: #b7424b;\n --msr-danger-solid-text: #f5f5f5;\n --color-red-700: #fca5a5;\n --msr-control-thumb: #f4f4f5;\n --msr-slider-track: rgba(245, 245, 245, 0.24);\n --msr-shadow-toolbar: 0 0 0.4px lch(100% 0 0 / 0.10),\n 0 3px 8px lch(0% 0 0 / 0.125),\n 0 2px 5px lch(0% 0 0 / 0.125),\n 0 1px 1px lch(0% 0 0 / 0.125);\n --msr-shadow-floating: 0 0 0 0.4px lch(100% 0 0 / 0.05),\n 0 4px 12px lch(0% 0 0 / 0.12),\n 0 1px 3px lch(0% 0 0 / 0.10);\n --msr-shadow-select-menu: 0 0 0 0.4px lch(100% 0 0 / 0.14),\n 0 4px 12px lch(0% 0 0 / 0.22),\n 0 1px 3px lch(0% 0 0 / 0.18);\n color-scheme: dark;\n}\n@media (prefers-color-scheme: dark) {\n :where( [data-mesurer-root=\"true\"][data-theme=\"system\"], [data-mesurer-inspector-ui=\"true\"][data-theme=\"system\"] ) {\n --msr-accent: #0c8ce9;\n --msr-surface: #323232;\n --msr-surface-raised: #3a3a3a;\n --msr-surface-muted: #3a3a3a;\n --msr-content: #f5f5f5;\n --msr-color-white: #f5f5f5;\n --msr-color-black: #171717;\n --msr-color-ink-50: #3a3a3a;\n --msr-color-ink-100: #414141;\n --msr-color-ink-200: #4a4a4a;\n --msr-color-ink-300: #5a5a5a;\n --msr-color-ink-500: #a0a0a0;\n --msr-color-ink-700: #dedede;\n --msr-color-ink-900: #f5f5f5;\n --msr-danger-bg: #3f2020;\n --msr-danger-border: #7f3f46;\n --msr-danger-text: #f87171;\n --msr-danger-solid-bg: #c95058;\n --msr-danger-solid-hover: #b7424b;\n --msr-danger-solid-text: #f5f5f5;\n --color-red-700: #fca5a5;\n --msr-control-thumb: #f4f4f5;\n --msr-slider-track: rgba(245, 245, 245, 0.24);\n --msr-shadow-toolbar: 0 0 0.4px lch(100% 0 0 / 0.10),\n 0 3px 8px lch(0% 0 0 / 0.125),\n 0 2px 5px lch(0% 0 0 / 0.125),\n 0 1px 1px lch(0% 0 0 / 0.125);\n --msr-shadow-floating: 0 0 0 0.4px lch(100% 0 0 / 0.05),\n 0 4px 12px lch(0% 0 0 / 0.12),\n 0 1px 3px lch(0% 0 0 / 0.10);\n --msr-shadow-select-menu: 0 0 0 0.4px lch(100% 0 0 / 0.14),\n 0 4px 12px lch(0% 0 0 / 0.22),\n 0 1px 3px lch(0% 0 0 / 0.18);\n color-scheme: dark;\n }\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:bg-white\"], :where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:bg-[#fff]\"] {\n background-color: var(--msr-surface) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:text-black\"] {\n color: var(--msr-content) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:hover:bg-black/4\"]:hover, :where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:hover:bg-black/5\"]:hover {\n background-color: var(--msr-content) !important;\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in srgb, var(--msr-content) 6%, transparent) !important;\n }\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) .mesurer-toolbar-surface {\n background-color: var(--msr-surface) !important;\n box-shadow: var(--msr-shadow-toolbar) !important;\n color: var(--msr-content);\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) :is( .mesurer-menu-surface, .mesurer-color-picker, .mesurer-ti-card, [data-mesurer-text-inspector-info=\"true\"], [data-mesurer-annotation-panel=\"true\"], [data-mesurer-annotation-composer=\"true\"] ) {\n background-color: var(--msr-surface-raised) !important;\n color: var(--msr-content) !important;\n box-shadow: var(--msr-shadow-floating) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) .mesurer-switch-track[data-checked=\"false\"], :where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) .mesurer-control-shell {\n background-color: var(--msr-surface-muted) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) .mesurer-switch-track > span {\n background-color: var(--msr-control-thumb) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) :is(.mesurer-settings-select, .mesurer-settings-select-menu) {\n background-color: var(--msr-surface-raised) !important;\n border-color: var(--msr-color-ink-200) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [data-mesurer-rulers=\"true\"] {\n color: var(--msr-color-ink-500) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [data-slider-container=\"true\"] > div:first-child {\n background-color: var(--msr-slider-track) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:bg-[#0d99ff]\"] {\n background-color: var(--msr-accent) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:border-[#0d99ff]\"] {\n border-color: var(--msr-accent) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:hover:bg-[#0d99ff]\"]:hover, :where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:focus-visible:bg-[#0d99ff]\"]:focus-visible {\n background-color: var(--msr-accent) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:text-white\"] {\n color: var(--msr-color-white) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [data-slider-thumb=\"true\"]:focus-visible {\n box-shadow: 0 0 0 1px var(--msr-accent) !important;\n @supports (color: color-mix(in lab, red, red)) {\n box-shadow: 0 0 0 1px color-mix(in srgb, var(--msr-accent) 25%, transparent) !important;\n }\n}\n:where([data-mesurer-root=\"true\"], [data-mesurer-inspector-ui=\"true\"]) {\n --msr-radius-control: 5px;\n}\n@layer utilities {\n .msr\\:rounded-control {\n border-radius: var(--msr-radius-control);\n }\n}\n.mesurer-thin-scrollbar {\n scrollbar-width: thin;\n scrollbar-color: var(--msr-color-ink-200) transparent;\n}\n.mesurer-thin-scrollbar::-webkit-scrollbar {\n width: 4px;\n height: 4px;\n}\n.mesurer-thin-scrollbar::-webkit-scrollbar-track {\n background: transparent;\n}\n.mesurer-thin-scrollbar::-webkit-scrollbar-thumb {\n background: var(--msr-color-ink-200);\n border-radius: var(--msr-radius-control);\n}\n.mesurer-thin-scrollbar:hover {\n scrollbar-color: var(--msr-color-ink-300) transparent;\n}\n.mesurer-thin-scrollbar:hover::-webkit-scrollbar-thumb {\n background: var(--msr-color-ink-300);\n}\n.mesurer-thin-scrollbar::-webkit-scrollbar-corner {\n background: transparent;\n}\n.mesurer-toolbar-mode-switch {\n position: relative;\n z-index: 1;\n isolation: isolate;\n border-radius: 5px;\n background: transparent;\n}\n.mesurer-toolbar-mode-switch-pill {\n position: absolute;\n top: 2px;\n left: 2px;\n z-index: 0;\n width: 28px;\n height: 28px;\n border-radius: 3px;\n background: var(--msr-color-ink-200, #e2e8f0);\n transform: translateX(0);\n}\n.mesurer-toolbar-mode-switch[data-value=\"edit\"] .mesurer-toolbar-mode-switch-pill {\n transform: translateX(30px);\n}\n.mesurer-toolbar-mode-switch > :not(.mesurer-toolbar-mode-switch-pill) {\n position: relative;\n z-index: 1;\n}\n.mesurer-toolbar-mode-button {\n display: flex;\n width: 28px;\n height: 28px;\n align-items: center;\n justify-content: center;\n border-radius: 3px;\n color: var(--msr-color-ink-700, #334155);\n outline: none;\n}\n.mesurer-toolbar-mode-button[aria-pressed=\"true\"] {\n color: var(--msr-color-ink-900, #18181b);\n}\n.mesurer-toolbar-mode-button[aria-pressed=\"false\"]:not(:disabled):hover {\n background: var(--msr-color-ink-200, #e2e8f0);\n @supports (color: color-mix(in lab, red, red)) {\n background: color-mix(in srgb, var(--msr-color-ink-200, #e2e8f0) 50%, transparent);\n }\n}\n.mesurer-toolbar-mode-button:focus-visible {\n outline: 1px solid var(--msr-color-ink-500, #64748b);\n outline-offset: 1px;\n}\n.mesurer-toolbar-mode-button:disabled {\n cursor: default;\n opacity: 0.35;\n}\n.mesurer-toolbar-mode-stage {\n --msr-select-mode-w: 0px;\n --msr-edit-mode-w: 0px;\n position: relative;\n flex: none;\n width: var(--msr-select-mode-w);\n overflow: visible;\n}\n.mesurer-toolbar-mode-stage[data-mode=\"edit\"] {\n width: var(--msr-edit-mode-w);\n}\n.mesurer-toolbar-mode-track {\n display: flex;\n width: max-content;\n align-items: stretch;\n transform: translateX(0);\n}\n.mesurer-toolbar-mode-stage[data-mode=\"edit\"] .mesurer-toolbar-mode-track {\n transform: translateX(calc(-1 * var(--msr-select-mode-w)));\n}\n.mesurer-toolbar-mode-slot {\n flex: none;\n width: var(--msr-select-mode-w);\n}\n.mesurer-toolbar-mode-slot[data-mode=\"edit\"] {\n width: var(--msr-edit-mode-w);\n}\n.mesurer-toolbar-mode-panel {\n display: flex;\n width: max-content;\n align-items: stretch;\n}\n.mesurer-toolbar-mode-slot[data-open=\"false\"] {\n visibility: hidden;\n pointer-events: none;\n}\n.mesurer-toolbar-mode-stage[data-mode-motion=\"true\"] {\n overflow: hidden;\n}\n.mesurer-toolbar-mode-stage[data-mode-motion=\"true\"] .mesurer-toolbar-mode-slot[data-open=\"false\"] {\n visibility: visible;\n}\n.mesurer-toolbar-mode-stage:has( .mesurer-toolbar-mode-slot[data-open=\"true\"] [role=\"menu\"], .mesurer-toolbar-mode-slot[data-open=\"true\"] [role=\"dialog\"] ) {\n overflow: visible;\n}\n.mesurer-toolbar-mode-stage[data-ready=\"true\"], .mesurer-toolbar-mode-stage[data-ready=\"true\"] .mesurer-toolbar-mode-track {\n transition-duration: 150ms;\n transition-timing-function: ease;\n}\n.mesurer-toolbar-mode-stage[data-ready=\"true\"] {\n transition-property: width;\n}\n.mesurer-toolbar-mode-stage[data-compact-motion=\"true\"] {\n transition-property: none;\n}\n.mesurer-toolbar-mode-stage[data-ready=\"true\"] .mesurer-toolbar-mode-track {\n transition-property: transform;\n}\n.mesurer-toolbar-mode-switch {\n --msr-toolbar-mode-motion: 150ms ease;\n}\n.mesurer-toolbar-mode-switch-pill {\n transition: transform var(--msr-toolbar-mode-motion);\n}\n@media (prefers-reduced-motion: reduce) {\n .mesurer-toolbar-mode-stage, .mesurer-toolbar-mode-track, .mesurer-toolbar-mode-switch-pill {\n transition: none !important;\n }\n}\n@property --tw-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-border-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-leading {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-font-weight {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ordinal {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-slashed-zero {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-figure {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-spacing {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-fraction {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-inset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-ring-inset {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-offset-width {\n syntax: \"<length>\";\n inherits: false;\n initial-value: 0px;\n}\n@property --tw-ring-offset-color {\n syntax: \"*\";\n inherits: false;\n initial-value: #fff;\n}\n@property --tw-ring-offset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-outline-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-duration {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ease {\n syntax: \"*\";\n inherits: false;\n}\n@layer properties {\n @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n *, ::before, ::after, ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-border-style: solid;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-ordinal: initial;\n --tw-slashed-zero: initial;\n --tw-numeric-figure: initial;\n --tw-numeric-spacing: initial;\n --tw-numeric-fraction: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-outline-style: solid;\n --tw-duration: initial;\n --tw-ease: initial;\n }\n }\n}\n", Qa = {
3523
+ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@layer properties;\n@layer theme, base, components, utilities;\n@layer theme {\n :root, :host {\n --msr-font-sans: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\",\n \"Noto Sans\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\",\n \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --msr-font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\",\n \"Courier New\", monospace;\n --msr-color-red-50: oklch(97.1% 0.013 17.38);\n --msr-color-red-200: oklch(88.5% 0.062 18.334);\n --msr-color-red-600: oklch(57.7% 0.245 27.325);\n --msr-color-black: #000;\n --msr-color-white: #fff;\n --msr-spacing: 0.25rem;\n --msr-font-weight-normal: 400;\n --msr-font-weight-medium: 500;\n --msr-font-weight-semibold: 600;\n --msr-radius-md: 0.375rem;\n --msr-radius-lg: 0.5rem;\n --msr-default-transition-duration: 150ms;\n --msr-default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --msr-default-font-family: var(--msr-font-sans);\n --msr-default-mono-font-family: var(--msr-font-mono);\n --msr-color-ink-50: #f8fafc;\n --msr-color-ink-200: #e2e8f0;\n --msr-color-ink-500: #64748b;\n --msr-color-ink-700: #334155;\n --msr-color-ink-900: #0f172a;\n }\n}\n@layer base {\n *, ::after, ::before, ::backdrop, ::file-selector-button {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n }\n html, :host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n font-family: var(--msr-default-font-family, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");\n font-feature-settings: var(--msr-default-font-feature-settings, normal);\n font-variation-settings: var(--msr-default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n h1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n b, strong {\n font-weight: bolder;\n }\n code, kbd, samp, pre {\n font-family: var(--msr-default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);\n font-feature-settings: var(--msr-default-mono-font-feature-settings, normal);\n font-variation-settings: var(--msr-default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n small {\n font-size: 80%;\n }\n sub, sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n :-moz-focusring:where(:not(iframe)) {\n outline: auto;\n }\n progress {\n vertical-align: baseline;\n }\n summary {\n display: list-item;\n }\n ol, ul, menu {\n list-style: none;\n }\n img, svg, video, canvas, audio, iframe, embed, object {\n display: block;\n vertical-align: middle;\n }\n img, video {\n max-width: 100%;\n height: auto;\n }\n button, input, select, optgroup, textarea, ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n }\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n ::placeholder {\n opacity: 1;\n }\n @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\n ::placeholder {\n color: currentcolor;\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n textarea {\n resize: vertical;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n ::-webkit-calendar-picker-indicator {\n line-height: 1;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n button, input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]), ::file-selector-button {\n appearance: button;\n }\n ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {\n height: auto;\n }\n [hidden]:where(:not([hidden=\"until-found\"])) {\n display: none !important;\n }\n}\n@layer utilities {\n .msr\\:pointer-events-auto {\n pointer-events: auto;\n }\n .msr\\:pointer-events-none {\n pointer-events: none;\n }\n .msr\\:absolute {\n position: absolute;\n }\n .msr\\:fixed {\n position: fixed;\n }\n .msr\\:relative {\n position: relative;\n }\n .msr\\:inset-0 {\n inset: 0px;\n }\n .msr\\:top-0 {\n top: 0px;\n }\n .msr\\:top-1\\/2 {\n top: calc(1 / 2 * 100%);\n }\n .msr\\:top-\\[18px\\] {\n top: 18px;\n }\n .msr\\:top-full {\n top: 100%;\n }\n .msr\\:right-0 {\n right: 0px;\n }\n .msr\\:right-2 {\n right: calc(var(--msr-spacing) * 2);\n }\n .msr\\:right-\\[8px\\] {\n right: 8px;\n }\n .msr\\:bottom-0 {\n bottom: 0px;\n }\n .msr\\:bottom-full {\n bottom: 100%;\n }\n .msr\\:left-0 {\n left: 0px;\n }\n .msr\\:left-1\\/2 {\n left: calc(1 / 2 * 100%);\n }\n .msr\\:left-\\[8px\\] {\n left: 8px;\n }\n .msr\\:left-\\[18px\\] {\n left: 18px;\n }\n .msr\\:z-10 {\n z-index: 10;\n }\n .msr\\:z-\\[60\\] {\n z-index: 60;\n }\n .msr\\:z-\\[70\\] {\n z-index: 70;\n }\n .msr\\:z-\\[80\\] {\n z-index: 80;\n }\n .msr\\:z-\\[90\\] {\n z-index: 90;\n }\n .msr\\:z-\\[94\\] {\n z-index: 94;\n }\n .msr\\:z-\\[95\\] {\n z-index: 95;\n }\n .msr\\:col-span-2 {\n grid-column: span 2 / span 2;\n }\n .msr\\:col-start-1 {\n grid-column-start: 1;\n }\n .msr\\:col-start-3 {\n grid-column-start: 3;\n }\n .msr\\:col-end-3 {\n grid-column-end: 3;\n }\n .msr\\:m-0 {\n margin: 0px;\n }\n .msr\\:mx-1 {\n margin-inline: var(--msr-spacing);\n }\n .msr\\:mt-1 {\n margin-top: var(--msr-spacing);\n }\n .msr\\:mt-1\\.5 {\n margin-top: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:mt-2 {\n margin-top: calc(var(--msr-spacing) * 2);\n }\n .msr\\:mb-1 {\n margin-bottom: var(--msr-spacing);\n }\n .msr\\:mb-2 {\n margin-bottom: calc(var(--msr-spacing) * 2);\n }\n .msr\\:-ml-1 {\n margin-left: calc(var(--msr-spacing) * -1);\n }\n .msr\\:ml-1 {\n margin-left: var(--msr-spacing);\n }\n .msr\\:ml-2 {\n margin-left: calc(var(--msr-spacing) * 2);\n }\n .msr\\:ml-6 {\n margin-left: calc(var(--msr-spacing) * 6);\n }\n .msr\\:box-border {\n box-sizing: border-box;\n }\n .msr\\:block {\n display: block;\n }\n .msr\\:flex {\n display: flex;\n }\n .msr\\:grid {\n display: grid;\n }\n .msr\\:inline-flex {\n display: inline-flex;\n }\n .msr\\:size-1\\.5 {\n width: calc(var(--msr-spacing) * 1.5);\n height: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:size-3 {\n width: calc(var(--msr-spacing) * 3);\n height: calc(var(--msr-spacing) * 3);\n }\n .msr\\:size-4 {\n width: calc(var(--msr-spacing) * 4);\n height: calc(var(--msr-spacing) * 4);\n }\n .msr\\:size-6 {\n width: calc(var(--msr-spacing) * 6);\n height: calc(var(--msr-spacing) * 6);\n }\n .msr\\:size-7 {\n width: calc(var(--msr-spacing) * 7);\n height: calc(var(--msr-spacing) * 7);\n }\n .msr\\:size-8 {\n width: calc(var(--msr-spacing) * 8);\n height: calc(var(--msr-spacing) * 8);\n }\n .msr\\:size-\\[10px\\] {\n width: 10px;\n height: 10px;\n }\n .msr\\:size-\\[18px\\] {\n width: 18px;\n height: 18px;\n }\n .msr\\:size-full {\n width: 100%;\n height: 100%;\n }\n .msr\\:h-5 {\n height: calc(var(--msr-spacing) * 5);\n }\n .msr\\:h-6 {\n height: calc(var(--msr-spacing) * 6);\n }\n .msr\\:h-7 {\n height: calc(var(--msr-spacing) * 7);\n }\n .msr\\:h-8 {\n height: calc(var(--msr-spacing) * 8);\n }\n .msr\\:h-20 {\n height: calc(var(--msr-spacing) * 20);\n }\n .msr\\:h-\\[14px\\] {\n height: 14px;\n }\n .msr\\:h-\\[18px\\] {\n height: 18px;\n }\n .msr\\:h-\\[19px\\] {\n height: 19px;\n }\n .msr\\:h-full {\n height: 100%;\n }\n .msr\\:h-px {\n height: 1px;\n }\n .msr\\:max-h-36 {\n max-height: calc(var(--msr-spacing) * 36);\n }\n .msr\\:max-h-\\[220px\\] {\n max-height: 220px;\n }\n .msr\\:max-h-\\[calc\\(100vh-16px\\)\\] {\n max-height: calc(100vh - 16px);\n }\n .msr\\:max-h-\\[min\\(70vh\\,34rem\\)\\] {\n max-height: min(70vh, 34rem);\n }\n .msr\\:max-h-\\[min\\(320px\\,calc\\(100vh-16px\\)\\)\\] {\n max-height: min(320px, calc(100vh - 16px));\n }\n .msr\\:min-h-0 {\n min-height: 0px;\n }\n .msr\\:w-0 {\n width: 0px;\n }\n .msr\\:w-3 {\n width: calc(var(--msr-spacing) * 3);\n }\n .msr\\:w-4 {\n width: calc(var(--msr-spacing) * 4);\n }\n .msr\\:w-5 {\n width: calc(var(--msr-spacing) * 5);\n }\n .msr\\:w-6 {\n width: calc(var(--msr-spacing) * 6);\n }\n .msr\\:w-9 {\n width: calc(var(--msr-spacing) * 9);\n }\n .msr\\:w-12 {\n width: calc(var(--msr-spacing) * 12);\n }\n .msr\\:w-44 {\n width: calc(var(--msr-spacing) * 44);\n }\n .msr\\:w-60 {\n width: calc(var(--msr-spacing) * 60);\n }\n .msr\\:w-\\[18px\\] {\n width: 18px;\n }\n .msr\\:w-\\[26px\\] {\n width: 26px;\n }\n .msr\\:w-\\[272px\\] {\n width: 272px;\n }\n .msr\\:w-full {\n width: 100%;\n }\n .msr\\:w-px {\n width: 1px;\n }\n .msr\\:max-w-0 {\n max-width: 0px;\n }\n .msr\\:max-w-20 {\n max-width: calc(var(--msr-spacing) * 20);\n }\n .msr\\:max-w-\\[calc\\(100vw-16px\\)\\] {\n max-width: calc(100vw - 16px);\n }\n .msr\\:min-w-0 {\n min-width: 0px;\n }\n .msr\\:min-w-36 {\n min-width: calc(var(--msr-spacing) * 36);\n }\n .msr\\:flex-1 {\n flex: 1;\n }\n .msr\\:flex-none {\n flex: none;\n }\n .msr\\:shrink-0 {\n flex-shrink: 0;\n }\n .msr\\:-translate-x-1 {\n --tw-translate-x: calc(var(--msr-spacing) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .msr\\:-translate-x-1\\/2 {\n --tw-translate-x: calc(calc(1 / 2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .msr\\:translate-x-0 {\n --tw-translate-x: 0px;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .msr\\:-translate-y-1\\/2 {\n --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .msr\\:-rotate-90 {\n rotate: calc(90deg * -1);\n }\n .msr\\:rotate-45 {\n rotate: 45deg;\n }\n .msr\\:rotate-90 {\n rotate: 90deg;\n }\n .msr\\:rotate-180 {\n rotate: 180deg;\n }\n .msr\\:rotate-\\[45deg\\] {\n rotate: 45deg;\n }\n .msr\\:rotate-\\[135deg\\] {\n rotate: 135deg;\n }\n .msr\\:cursor-crosshair {\n cursor: crosshair;\n }\n .msr\\:cursor-default {\n cursor: default;\n }\n .msr\\:cursor-pointer {\n cursor: pointer;\n }\n .msr\\:touch-none {\n touch-action: none;\n }\n .msr\\:resize-none {\n resize: none;\n }\n .msr\\:list-none {\n list-style-type: none;\n }\n .msr\\:appearance-none {\n appearance: none;\n }\n .msr\\:grid-cols-\\[78px_150px\\] {\n grid-template-columns: 78px 150px;\n }\n .msr\\:grid-cols-\\[78px_156px\\] {\n grid-template-columns: 78px 156px;\n }\n .msr\\:grid-cols-\\[78px_minmax\\(0\\,1fr\\)\\] {\n grid-template-columns: 78px minmax(0,1fr);\n }\n .msr\\:grid-cols-\\[minmax\\(0\\,1fr\\)_28px_34px\\] {\n grid-template-columns: minmax(0,1fr) 28px 34px;\n }\n .msr\\:flex-col {\n flex-direction: column;\n }\n .msr\\:items-center {\n align-items: center;\n }\n .msr\\:items-start {\n align-items: flex-start;\n }\n .msr\\:items-stretch {\n align-items: stretch;\n }\n .msr\\:justify-between {\n justify-content: space-between;\n }\n .msr\\:justify-center {\n justify-content: center;\n }\n .msr\\:justify-end {\n justify-content: flex-end;\n }\n .msr\\:gap-0 {\n gap: 0px;\n }\n .msr\\:gap-0\\.5 {\n gap: calc(var(--msr-spacing) * 0.5);\n }\n .msr\\:gap-1 {\n gap: var(--msr-spacing);\n }\n .msr\\:gap-1\\.5 {\n gap: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:gap-2 {\n gap: calc(var(--msr-spacing) * 2);\n }\n .msr\\:gap-3 {\n gap: calc(var(--msr-spacing) * 3);\n }\n .msr\\:gap-\\[2px\\] {\n gap: 2px;\n }\n .msr\\:gap-px {\n gap: 1px;\n }\n .msr\\:gap-x-3 {\n column-gap: calc(var(--msr-spacing) * 3);\n }\n .msr\\:gap-y-1 {\n row-gap: var(--msr-spacing);\n }\n .msr\\:self-center {\n align-self: center;\n }\n .msr\\:self-stretch {\n align-self: stretch;\n }\n .msr\\:justify-self-end {\n justify-self: flex-end;\n }\n .msr\\:truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .msr\\:overflow-auto {\n overflow: auto;\n }\n .msr\\:overflow-hidden {\n overflow: hidden;\n }\n .msr\\:overflow-visible {\n overflow: visible;\n }\n .msr\\:overflow-x-hidden {\n overflow-x: hidden;\n }\n .msr\\:overflow-y-auto {\n overflow-y: auto;\n }\n .msr\\:rounded {\n border-radius: 0.25rem;\n }\n .msr\\:rounded-\\[3px\\] {\n border-radius: 3px;\n }\n .msr\\:rounded-\\[5px\\] {\n border-radius: 5px;\n }\n .msr\\:rounded-\\[6px\\] {\n border-radius: 6px;\n }\n .msr\\:rounded-\\[7px\\] {\n border-radius: 7px;\n }\n .msr\\:rounded-\\[8px\\] {\n border-radius: 8px;\n }\n .msr\\:rounded-\\[10px\\] {\n border-radius: 10px;\n }\n .msr\\:rounded-\\[12px\\] {\n border-radius: 12px;\n }\n .msr\\:rounded-full {\n border-radius: calc(infinity * 1px);\n }\n .msr\\:rounded-lg {\n border-radius: var(--msr-radius-lg);\n }\n .msr\\:rounded-md {\n border-radius: var(--msr-radius-md);\n }\n .msr\\:rounded-none {\n border-radius: 0;\n }\n .msr\\:border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .msr\\:border-0 {\n border-style: var(--tw-border-style);\n border-width: 0px;\n }\n .msr\\:border-t {\n border-top-style: var(--tw-border-style);\n border-top-width: 1px;\n }\n .msr\\:border-t-2 {\n border-top-style: var(--tw-border-style);\n border-top-width: 2px;\n }\n .msr\\:border-r {\n border-right-style: var(--tw-border-style);\n border-right-width: 1px;\n }\n .msr\\:border-b {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n .msr\\:border-l {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n .msr\\:border-dashed {\n --tw-border-style: dashed;\n border-style: dashed;\n }\n .msr\\:border-dotted {\n --tw-border-style: dotted;\n border-style: dotted;\n }\n .msr\\:border-solid {\n --tw-border-style: solid;\n border-style: solid;\n }\n .msr\\:border-\\[\\#0d99ff\\] {\n border-color: #0d99ff;\n }\n .msr\\:border-\\[\\#2563eb\\]\\/70 {\n border-color: color-mix(in oklab, #2563eb 70%, transparent);\n }\n .msr\\:border-black\\/8 {\n border-color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--msr-color-black) 8%, transparent);\n }\n }\n .msr\\:border-black\\/10 {\n border-color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--msr-color-black) 10%, transparent);\n }\n }\n .msr\\:border-black\\/15 {\n border-color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--msr-color-black) 15%, transparent);\n }\n }\n .msr\\:border-ink-200 {\n border-color: var(--msr-color-ink-200);\n }\n .msr\\:border-ink-500 {\n border-color: var(--msr-color-ink-500);\n }\n .msr\\:border-ink-700 {\n border-color: var(--msr-color-ink-700);\n }\n .msr\\:border-red-200 {\n border-color: var(--msr-color-red-200);\n }\n .msr\\:border-transparent {\n border-color: transparent;\n }\n .msr\\:bg-\\[\\#0d99ff\\] {\n background-color: #0d99ff;\n }\n .msr\\:bg-\\[\\#0d99ff\\]\\/10 {\n background-color: color-mix(in oklab, #0d99ff 10%, transparent);\n }\n .msr\\:bg-\\[\\#2563eb\\] {\n background-color: #2563eb;\n }\n .msr\\:bg-\\[\\#fff\\] {\n background-color: #fff;\n }\n .msr\\:bg-black {\n background-color: var(--msr-color-black);\n }\n .msr\\:bg-black\\/10 {\n background-color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--msr-color-black) 10%, transparent);\n }\n }\n .msr\\:bg-ink-50 {\n background-color: var(--msr-color-ink-50);\n }\n .msr\\:bg-ink-50\\/40 {\n background-color: var(--msr-color-ink-50);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--msr-color-ink-50) 40%, transparent);\n }\n }\n .msr\\:bg-ink-900\\/90 {\n background-color: var(--msr-color-ink-900);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--msr-color-ink-900) 90%, transparent);\n }\n }\n .msr\\:bg-transparent {\n background-color: transparent;\n }\n .msr\\:bg-white {\n background-color: var(--msr-color-white);\n }\n .msr\\:bg-white\\/60 {\n background-color: var(--msr-color-white);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--msr-color-white) 60%, transparent);\n }\n }\n .msr\\:p-0 {\n padding: 0px;\n }\n .msr\\:p-1 {\n padding: var(--msr-spacing);\n }\n .msr\\:p-1\\.5 {\n padding: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:p-2 {\n padding: calc(var(--msr-spacing) * 2);\n }\n .msr\\:p-3 {\n padding: calc(var(--msr-spacing) * 3);\n }\n .msr\\:p-\\[2px\\] {\n padding: 2px;\n }\n .msr\\:p-px {\n padding: 1px;\n }\n .msr\\:px-0 {\n padding-inline: 0px;\n }\n .msr\\:px-0\\.5 {\n padding-inline: calc(var(--msr-spacing) * 0.5);\n }\n .msr\\:px-1 {\n padding-inline: var(--msr-spacing);\n }\n .msr\\:px-1\\.5 {\n padding-inline: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:px-2 {\n padding-inline: calc(var(--msr-spacing) * 2);\n }\n .msr\\:px-2\\.5 {\n padding-inline: calc(var(--msr-spacing) * 2.5);\n }\n .msr\\:py-0 {\n padding-block: 0px;\n }\n .msr\\:py-0\\.5 {\n padding-block: calc(var(--msr-spacing) * 0.5);\n }\n .msr\\:py-1 {\n padding-block: var(--msr-spacing);\n }\n .msr\\:py-1\\.5 {\n padding-block: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:py-2 {\n padding-block: calc(var(--msr-spacing) * 2);\n }\n .msr\\:pt-0\\.5 {\n padding-top: calc(var(--msr-spacing) * 0.5);\n }\n .msr\\:pt-2 {\n padding-top: calc(var(--msr-spacing) * 2);\n }\n .msr\\:pr-0 {\n padding-right: 0px;\n }\n .msr\\:pr-2 {\n padding-right: calc(var(--msr-spacing) * 2);\n }\n .msr\\:pr-6 {\n padding-right: calc(var(--msr-spacing) * 6);\n }\n .msr\\:pb-1 {\n padding-bottom: var(--msr-spacing);\n }\n .msr\\:pb-1\\.5 {\n padding-bottom: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:pb-2 {\n padding-bottom: calc(var(--msr-spacing) * 2);\n }\n .msr\\:text-center {\n text-align: center;\n }\n .msr\\:text-left {\n text-align: left;\n }\n .msr\\:font-mono {\n font-family: var(--msr-font-mono);\n }\n .msr\\:text-\\[9px\\] {\n font-size: 9px;\n }\n .msr\\:text-\\[10px\\] {\n font-size: 10px;\n }\n .msr\\:text-\\[11px\\] {\n font-size: 11px;\n }\n .msr\\:text-\\[12px\\] {\n font-size: 12px;\n }\n .msr\\:text-\\[14px\\] {\n font-size: 14px;\n }\n .msr\\:leading-4 {\n --tw-leading: calc(var(--msr-spacing) * 4);\n line-height: calc(var(--msr-spacing) * 4);\n }\n .msr\\:leading-\\[1\\.4\\] {\n --tw-leading: 1.4;\n line-height: 1.4;\n }\n .msr\\:leading-\\[1\\.45\\] {\n --tw-leading: 1.45;\n line-height: 1.45;\n }\n .msr\\:leading-\\[18px\\] {\n --tw-leading: 18px;\n line-height: 18px;\n }\n .msr\\:leading-none {\n --tw-leading: 1;\n line-height: 1;\n }\n .msr\\:font-medium {\n --tw-font-weight: var(--msr-font-weight-medium);\n font-weight: var(--msr-font-weight-medium);\n }\n .msr\\:font-normal {\n --tw-font-weight: var(--msr-font-weight-normal);\n font-weight: var(--msr-font-weight-normal);\n }\n .msr\\:font-semibold {\n --tw-font-weight: var(--msr-font-weight-semibold);\n font-weight: var(--msr-font-weight-semibold);\n }\n .msr\\:text-ellipsis {\n text-overflow: ellipsis;\n }\n .msr\\:whitespace-nowrap {\n white-space: nowrap;\n }\n .msr\\:whitespace-pre-wrap {\n white-space: pre-wrap;\n }\n .msr\\:text-\\[\\#64748b\\] {\n color: #64748b;\n }\n .msr\\:text-black {\n color: var(--msr-color-black);\n }\n .msr\\:text-black\\/30 {\n color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--msr-color-black) 30%, transparent);\n }\n }\n .msr\\:text-black\\/45 {\n color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--msr-color-black) 45%, transparent);\n }\n }\n .msr\\:text-ink-50 {\n color: var(--msr-color-ink-50);\n }\n .msr\\:text-ink-500 {\n color: var(--msr-color-ink-500);\n }\n .msr\\:text-ink-700 {\n color: var(--msr-color-ink-700);\n }\n .msr\\:text-ink-900 {\n color: var(--msr-color-ink-900);\n }\n .msr\\:text-red-600 {\n color: var(--msr-color-red-600);\n }\n .msr\\:text-white {\n color: var(--msr-color-white);\n }\n .msr\\:text-white\\/60 {\n color: var(--msr-color-white);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--msr-color-white) 60%, transparent);\n }\n }\n .msr\\:tabular-nums {\n --tw-numeric-spacing: tabular-nums;\n font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);\n }\n .msr\\:opacity-0 {\n opacity: 0%;\n }\n .msr\\:opacity-60 {\n opacity: 60%;\n }\n .msr\\:opacity-80 {\n opacity: 80%;\n }\n .msr\\:opacity-100 {\n opacity: 100%;\n }\n .msr\\:shadow-lg {\n --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:shadow-sm {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:outline {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n .msr\\:outline-transparent {\n outline-color: transparent;\n }\n .msr\\:transition-\\[max-width\\,opacity\\,transform\\,padding\\] {\n transition-property: max-width,opacity,transform,padding;\n transition-timing-function: var(--tw-ease, var(--msr-default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--msr-default-transition-duration));\n }\n .msr\\:transition-\\[width\\,opacity\\] {\n transition-property: width,opacity;\n transition-timing-function: var(--tw-ease, var(--msr-default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--msr-default-transition-duration));\n }\n .msr\\:transition-colors {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--msr-default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--msr-default-transition-duration));\n }\n .msr\\:transition-opacity {\n transition-property: opacity;\n transition-timing-function: var(--tw-ease, var(--msr-default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--msr-default-transition-duration));\n }\n .msr\\:transition-transform {\n transition-property: transform, translate, scale, rotate;\n transition-timing-function: var(--tw-ease, var(--msr-default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--msr-default-transition-duration));\n }\n .msr\\:transition-none {\n transition-property: none;\n }\n .msr\\:duration-150 {\n --tw-duration: 150ms;\n transition-duration: 150ms;\n }\n .msr\\:ease-\\[ease\\] {\n --tw-ease: ease;\n transition-timing-function: ease;\n }\n .msr\\:outline-none {\n --tw-outline-style: none;\n outline-style: none;\n }\n .msr\\:select-none {\n -webkit-user-select: none;\n user-select: none;\n }\n @media (hover: hover) {\n .msr\\:group-hover\\:border-ink-200:is(:where(.msr\\:group):hover *) {\n border-color: var(--msr-color-ink-200);\n }\n }\n .msr\\:focus-within\\:rounded-l-\\[5px\\]:focus-within {\n border-top-left-radius: 5px;\n border-bottom-left-radius: 5px;\n }\n .msr\\:focus-within\\:rounded-r-\\[5px\\]:focus-within {\n border-top-right-radius: 5px;\n border-bottom-right-radius: 5px;\n }\n .msr\\:focus-within\\:outline:focus-within {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n .msr\\:focus-within\\:outline-1:focus-within {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n .msr\\:focus-within\\:outline-offset-\\[-1px\\]:focus-within {\n outline-offset: -1px;\n }\n .msr\\:focus-within\\:outline-\\[\\#0d99ff\\]:focus-within {\n outline-color: #0d99ff;\n }\n .msr\\:focus-within\\:outline-\\[var\\(--msr-accent\\)\\]:focus-within {\n outline-color: var(--msr-accent);\n }\n @media (hover: hover) {\n .msr\\:hover\\:border-ink-200:hover {\n border-color: var(--msr-color-ink-200);\n }\n .msr\\:hover\\:bg-\\[\\#0b8eea\\]:hover {\n background-color: #0b8eea;\n }\n .msr\\:hover\\:bg-\\[\\#0d99ff\\]:hover {\n background-color: #0d99ff;\n }\n .msr\\:hover\\:bg-black\\/4:hover {\n background-color: var(--msr-color-black);\n }\n @supports (color: color-mix(in lab, red, red)) {\n .msr\\:hover\\:bg-black\\/4:hover {\n background-color: color-mix(in oklab, var(--msr-color-black) 4%, transparent);\n }\n }\n .msr\\:hover\\:bg-black\\/10:hover {\n background-color: var(--msr-color-black);\n }\n @supports (color: color-mix(in lab, red, red)) {\n .msr\\:hover\\:bg-black\\/10:hover {\n background-color: color-mix(in oklab, var(--msr-color-black) 10%, transparent);\n }\n }\n .msr\\:hover\\:bg-ink-50:hover {\n background-color: var(--msr-color-ink-50);\n }\n .msr\\:hover\\:bg-red-50:hover {\n background-color: var(--msr-color-red-50);\n }\n .msr\\:hover\\:text-ink-700:hover {\n color: var(--msr-color-ink-700);\n }\n .msr\\:hover\\:text-ink-900:hover {\n color: var(--msr-color-ink-900);\n }\n .msr\\:hover\\:text-white:hover {\n color: var(--msr-color-white);\n }\n .msr\\:hover\\:underline:hover {\n text-decoration-line: underline;\n }\n }\n .msr\\:focus\\:border-\\[\\#0d99ff\\]:focus {\n border-color: #0d99ff;\n }\n .msr\\:focus\\:shadow-\\[inset_0_0_0_1px_\\#0d99ff\\]:focus {\n --tw-shadow: inset 0 0 0 1px var(--tw-shadow-color, #0d99ff);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:focus\\:shadow-\\[inset_0_0_0_1px_var\\(--msr-accent\\)\\]:focus {\n --tw-shadow: inset 0 0 0 1px var(--tw-shadow-color, var(--msr-accent));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:focus\\:outline-none:focus {\n --tw-outline-style: none;\n outline-style: none;\n }\n .msr\\:focus-visible\\:border-\\[\\#0d99ff\\]:focus-visible {\n border-color: #0d99ff;\n }\n .msr\\:focus-visible\\:bg-\\[\\#0d99ff\\]:focus-visible {\n background-color: #0d99ff;\n }\n .msr\\:focus-visible\\:text-white:focus-visible {\n color: var(--msr-color-white);\n }\n .msr\\:focus-visible\\:shadow-\\[inset_0_0_0_1px_\\#0d99ff\\]:focus-visible {\n --tw-shadow: inset 0 0 0 1px var(--tw-shadow-color, #0d99ff);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:focus-visible\\:shadow-\\[inset_0_0_0_1px_\\#ef4444\\]:focus-visible {\n --tw-shadow: inset 0 0 0 1px var(--tw-shadow-color, #ef4444);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:focus-visible\\:ring-1:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:focus-visible\\:ring-\\[\\#0d99ff\\]\\/25:focus-visible {\n --tw-ring-color: color-mix(in oklab, #0d99ff 25%, transparent);\n }\n .msr\\:focus-visible\\:outline-none:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .msr\\:disabled\\:cursor-default:disabled {\n cursor: default;\n }\n .msr\\:disabled\\:opacity-40:disabled {\n opacity: 40%;\n }\n .msr\\:disabled\\:opacity-45:disabled {\n opacity: 45%;\n }\n @media (prefers-reduced-motion: reduce) {\n .msr\\:motion-reduce\\:transition-none {\n transition-property: none;\n }\n }\n}\n:root, :host {\n --color-ink-50: #f8fafc;\n --color-ink-200: #e2e8f0;\n --color-ink-500: #64748b;\n --color-ink-700: #334155;\n --color-ink-900: #0f172a;\n}\n:host {\n all: initial;\n display: block;\n color-scheme: light;\n color: #0f172a;\n font-family: ui-sans-serif, system-ui, sans-serif;\n font-size: 16px;\n font-weight: 400;\n line-height: 1.5;\n letter-spacing: normal;\n direction: ltr;\n --msr-spacing: 4px;\n}\n*, *::before, *::after {\n box-sizing: border-box;\n}\n@layer base {\n *, ::before, ::after, ::backdrop {\n --tw-border-style: solid;\n --tw-outline-style: solid;\n --tw-shadow: 0 0 #0000;\n --tw-inset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n }\n button, input, select, textarea {\n appearance: none;\n background-color: transparent;\n padding: 0;\n font: inherit;\n color: inherit;\n letter-spacing: inherit;\n }\n}\n.mesurer-toolbar-surface {\n box-shadow: 0 0 0.5px rgba(0, 0, 0, 0.18), 0 3px 8px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.1);\n}\n.mesurer-menu-surface {\n box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);\n}\n.mesurer-color-picker {\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n}\n.mesurer-settings-tabs {\n box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.08);\n}\n.mesurer-settings-tab[aria-selected=\"true\"] {\n box-shadow: 0 0 0 1px rgba(15, 23, 42, 0.12);\n}\n.mesurer-switch-track {\n box-sizing: border-box;\n border: 1px solid #e2e8f0;\n}\n.mesurer-switch-track[data-checked=\"true\"] {\n border-color: #0d99ff;\n}\n.mesurer-control-shell {\n border: 1px solid transparent;\n}\n.mesurer-control-shell:hover {\n border-color: #e2e8f0;\n}\n.mesurer-control-focus:focus-within {\n outline: 1px solid #0d99ff;\n outline-offset: -1px;\n}\n.mesurer-root {\n --msr-spacing: 4px;\n}\nbody [data-mesurer-native-scroll-anchor=\"box\"][data-mesurer-nested-scroll-compensation=\"true\"] {\n position: absolute !important;\n left: calc(anchor(left) + var(--mesurer-nested-scroll-x, 0px)) !important;\n top: calc(anchor(top) + var(--mesurer-nested-scroll-y, 0px)) !important;\n}\nbody [data-mesurer-native-scroll-anchor=\"label\"][data-mesurer-nested-scroll-compensation=\"true\"] {\n position: absolute !important;\n left: calc(anchor(center) + var(--mesurer-nested-scroll-x, 0px)) !important;\n top: calc(anchor(bottom) + 2px + var(--mesurer-nested-scroll-y, 0px)) !important;\n}\nbody [data-mesurer-native-scroll-anchor=\"offset\"][data-mesurer-nested-scroll-compensation=\"true\"] {\n position: absolute !important;\n left: calc(anchor(left) + var(--mesurer-native-anchor-x, 0px) + var(--mesurer-nested-scroll-x, 0px)) !important;\n top: calc(anchor(top) + var(--mesurer-native-anchor-y, 0px) + var(--mesurer-nested-scroll-y, 0px)) !important;\n}\n[data-mesurer-text-edit-ring=\"true\"], [data-mesurer-text-selection-highlight=\"true\"], [data-mesurer-text-caret=\"true\"] {\n z-index: 2147482900 !important;\n}\n[data-mesurer-text-inspector-placement-shell=\"true\"], .mesurer-ti-card {\n z-index: 2147483647 !important;\n}\n[data-mesurer-context-root=\"true\"] [data-mesurer-annotation-scroll-mode=\"document\"] {\n position: absolute !important;\n}\n[data-mesurer-annotation-scroll-mode=\"native-anchor\"] {\n position: fixed !important;\n}\n[data-mesurer-native-scroll-anchor=\"offset\"][data-mesurer-nested-scroll-compensation=\"true\"][data-mesurer-annotation-scroll-mode=\"native-anchor\"] {\n position: fixed !important;\n}\n[data-mesurer-annotation-badge=\"true\"] {\n width: 20px !important;\n height: 20px !important;\n transform: none !important;\n transition: width 150ms ease, height 150ms ease, background 150ms ease, color 150ms ease, box-shadow 150ms ease !important;\n}\n[data-mesurer-annotation-marker=\"true\"][data-mesurer-annotation-highlighted=\"true\"] > [data-mesurer-annotation-badge=\"true\"] {\n width: 24px !important;\n height: 24px !important;\n}\n[data-mesurer-root=\"true\"][data-mesurer-direct-text-edit-active=\"true\"] [data-mesurer-annotation-trigger=\"true\"], [data-mesurer-context-root=\"true\"][data-mesurer-direct-text-edit-active=\"true\"] [data-mesurer-annotation-trigger=\"true\"] {\n display: none !important;\n}\n[data-mesurer-plugin-settings] [role=\"switch\"] {\n grid-template-columns: minmax(0, 1fr) auto;\n}\n[data-mesurer-plugin-settings] [role=\"switch\"] > span:first-child {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n[data-mesurer-plugin-settings-disclosure=\"plugins\"] {\n width: calc(100% + 16px);\n margin-inline: -8px;\n}\n.mesurer-solid-root {\n position: fixed;\n inset: 0;\n z-index: 2147483000;\n pointer-events: none;\n --msr-spacing: 4px;\n}\n.mesurer-solid-root [role=\"slider\"] {\n border: 0;\n}\n[data-mesurer-distance-kind=\"selection-spacing\"][data-mesurer-distance-active=\"true\"] [data-mesurer-distance-hover-target=\"true\"] {\n opacity: 1 !important;\n}\n[data-mesurer-distance-kind=\"selection-spacing\"][data-mesurer-distance-active=\"true\"]:has([data-mesurer-distance-label-axis=\"x\"]:hover) [data-mesurer-distance-line^=\"vertical\"], [data-mesurer-distance-kind=\"selection-spacing\"][data-mesurer-distance-active=\"true\"]:has([data-mesurer-distance-label-axis=\"y\"]:hover) [data-mesurer-distance-line^=\"horizontal\"], [data-mesurer-distance-kind=\"selection-spacing\"][data-mesurer-distance-active=\"true\"]:has([data-mesurer-distance-label-axis]:hover) [data-mesurer-distance-connector=\"true\"] {\n opacity: 0.16 !important;\n}\nbody.mesurer-solid-xray * {\n outline: solid 1px blue !important;\n}\nbody.mesurer-solid-xray [data-mesurer-root], body.mesurer-solid-xray [data-mesurer-root] *, body.mesurer-solid-xray [data-mesurer-inspector-ui], body.mesurer-solid-xray [data-mesurer-inspector-ui] *, body.mesurer-solid-xray .mesurer-toolbar-surface, body.mesurer-solid-xray .mesurer-toolbar-surface *, body.mesurer-solid-xray .mesurer-ti-box, body.mesurer-solid-xray .mesurer-ti-card, body.mesurer-solid-xray .mesurer-ti-card *, body.mesurer-solid-xray .mesurer-ti-close {\n outline: none !important;\n}\n[data-mesurer-toolbar=\"true\"] > div:has(> [data-mesurer-toolbar-compact-item]) {\n transition: padding-inline 150ms ease;\n}\n[data-mesurer-toolbar=\"true\"][data-mesurer-toolbar-compact=\"true\"] > div:has(> [data-mesurer-toolbar-compact-item]):not(:has(> [data-mesurer-toolbar-compact-item][data-visible=\"true\"])) {\n padding-inline: 0;\n}\n[data-mesurer-selected-measurement=\"true\"]:has(> [data-mesurer-native-scroll-anchor=\"box\"]) {\n display: contents !important;\n}\n@media (prefers-reduced-motion: reduce) {\n [data-mesurer-toolbar=\"true\"] > div:has(> [data-mesurer-toolbar-compact-item]) {\n transition: none;\n }\n [data-mesurer-annotation-badge=\"true\"] {\n transition: none !important;\n }\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) {\n --msr-accent: #0d99ff;\n --msr-surface: #fff;\n --msr-surface-raised: #fff;\n --msr-surface-muted: #f8fafc;\n --msr-content: #18181b;\n --msr-color-white: #fff;\n --msr-color-black: #000;\n --msr-color-ink-50: #f8fafc;\n --msr-color-ink-100: #f1f5f9;\n --msr-color-ink-200: #e2e8f0;\n --msr-color-ink-300: #cbd5e1;\n --msr-color-ink-500: #64748b;\n --msr-color-ink-700: #334155;\n --msr-color-ink-900: #18181b;\n --color-ink-50: var(--msr-color-ink-50);\n --color-ink-100: var(--msr-color-ink-100);\n --color-ink-200: var(--msr-color-ink-200);\n --color-ink-300: var(--msr-color-ink-300);\n --color-ink-500: var(--msr-color-ink-500);\n --color-ink-700: var(--msr-color-ink-700);\n --color-ink-900: var(--msr-color-ink-900);\n --msr-danger-bg: #fef2f2;\n --msr-danger-border: #fecaca;\n --msr-danger-text: #dc2626;\n --msr-danger-solid-bg: #dc2626;\n --msr-danger-solid-hover: #b91c1c;\n --msr-danger-solid-text: #fff;\n --color-red-50: var(--msr-danger-bg);\n --color-red-200: var(--msr-danger-border);\n --color-red-600: var(--msr-danger-text);\n --color-red-700: #b91c1c;\n --msr-control-thumb: #fff;\n --msr-slider-track: rgba(15, 23, 42, 0.16);\n --msr-shadow-toolbar: 0 0 0.4px rgba(0, 0, 0, 0.22),\n 0 6px 18px rgba(0, 0, 0, 0.03),\n 0 3px 9px rgba(0, 0, 0, 0.06),\n 0 1px 1px rgba(0, 0, 0, 0.06);\n --msr-shadow-floating: 0 0 0 0.4px rgba(0, 0, 0, 0.22),\n 0 6px 18px rgba(0, 0, 0, 0.03),\n 0 3px 9px rgba(0, 0, 0, 0.06),\n 0 1px 1px rgba(0, 0, 0, 0.06);\n --msr-shadow-select-menu: var(--msr-shadow-floating);\n color: var(--msr-content);\n color-scheme: light;\n}\n:where( [data-mesurer-root=\"true\"][data-theme=\"dark\"], [data-mesurer-inspector-ui=\"true\"][data-theme=\"dark\"] ) {\n --msr-accent: #0c8ce9;\n --msr-surface: #323232;\n --msr-surface-raised: #3a3a3a;\n --msr-surface-muted: #3a3a3a;\n --msr-content: #f5f5f5;\n --msr-color-white: #f5f5f5;\n --msr-color-black: #171717;\n --msr-color-ink-50: #3a3a3a;\n --msr-color-ink-100: #414141;\n --msr-color-ink-200: #4a4a4a;\n --msr-color-ink-300: #5a5a5a;\n --msr-color-ink-500: #a0a0a0;\n --msr-color-ink-700: #dedede;\n --msr-color-ink-900: #f5f5f5;\n --msr-danger-bg: #3f2020;\n --msr-danger-border: #7f3f46;\n --msr-danger-text: #f87171;\n --msr-danger-solid-bg: #c95058;\n --msr-danger-solid-hover: #b7424b;\n --msr-danger-solid-text: #f5f5f5;\n --color-red-700: #fca5a5;\n --msr-control-thumb: #f4f4f5;\n --msr-slider-track: rgba(245, 245, 245, 0.24);\n --msr-shadow-toolbar: 0 0 0.4px lch(100% 0 0 / 0.10),\n 0 3px 8px lch(0% 0 0 / 0.125),\n 0 2px 5px lch(0% 0 0 / 0.125),\n 0 1px 1px lch(0% 0 0 / 0.125);\n --msr-shadow-floating: 0 0 0 0.4px lch(100% 0 0 / 0.05),\n 0 4px 12px lch(0% 0 0 / 0.12),\n 0 1px 3px lch(0% 0 0 / 0.10);\n --msr-shadow-select-menu: 0 0 0 0.4px lch(100% 0 0 / 0.14),\n 0 4px 12px lch(0% 0 0 / 0.22),\n 0 1px 3px lch(0% 0 0 / 0.18);\n color-scheme: dark;\n}\n@media (prefers-color-scheme: dark) {\n :where( [data-mesurer-root=\"true\"][data-theme=\"system\"], [data-mesurer-inspector-ui=\"true\"][data-theme=\"system\"] ) {\n --msr-accent: #0c8ce9;\n --msr-surface: #323232;\n --msr-surface-raised: #3a3a3a;\n --msr-surface-muted: #3a3a3a;\n --msr-content: #f5f5f5;\n --msr-color-white: #f5f5f5;\n --msr-color-black: #171717;\n --msr-color-ink-50: #3a3a3a;\n --msr-color-ink-100: #414141;\n --msr-color-ink-200: #4a4a4a;\n --msr-color-ink-300: #5a5a5a;\n --msr-color-ink-500: #a0a0a0;\n --msr-color-ink-700: #dedede;\n --msr-color-ink-900: #f5f5f5;\n --msr-danger-bg: #3f2020;\n --msr-danger-border: #7f3f46;\n --msr-danger-text: #f87171;\n --msr-danger-solid-bg: #c95058;\n --msr-danger-solid-hover: #b7424b;\n --msr-danger-solid-text: #f5f5f5;\n --color-red-700: #fca5a5;\n --msr-control-thumb: #f4f4f5;\n --msr-slider-track: rgba(245, 245, 245, 0.24);\n --msr-shadow-toolbar: 0 0 0.4px lch(100% 0 0 / 0.10),\n 0 3px 8px lch(0% 0 0 / 0.125),\n 0 2px 5px lch(0% 0 0 / 0.125),\n 0 1px 1px lch(0% 0 0 / 0.125);\n --msr-shadow-floating: 0 0 0 0.4px lch(100% 0 0 / 0.05),\n 0 4px 12px lch(0% 0 0 / 0.12),\n 0 1px 3px lch(0% 0 0 / 0.10);\n --msr-shadow-select-menu: 0 0 0 0.4px lch(100% 0 0 / 0.14),\n 0 4px 12px lch(0% 0 0 / 0.22),\n 0 1px 3px lch(0% 0 0 / 0.18);\n color-scheme: dark;\n }\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:bg-white\"], :where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:bg-[#fff]\"] {\n background-color: var(--msr-surface) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:text-black\"] {\n color: var(--msr-content) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:hover:bg-black/4\"]:hover, :where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:hover:bg-black/5\"]:hover {\n background-color: var(--msr-content) !important;\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in srgb, var(--msr-content) 6%, transparent) !important;\n }\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) .mesurer-toolbar-surface {\n background-color: var(--msr-surface) !important;\n box-shadow: var(--msr-shadow-toolbar) !important;\n color: var(--msr-content);\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) :is( .mesurer-menu-surface, .mesurer-color-picker, .mesurer-ti-card, [data-mesurer-text-inspector-info=\"true\"], [data-mesurer-annotation-panel=\"true\"], [data-mesurer-annotation-composer=\"true\"] ) {\n background-color: var(--msr-surface-raised) !important;\n color: var(--msr-content) !important;\n box-shadow: var(--msr-shadow-floating) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) .mesurer-switch-track[data-checked=\"false\"], :where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) .mesurer-control-shell {\n background-color: var(--msr-surface-muted) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) .mesurer-switch-track > span {\n background-color: var(--msr-control-thumb) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) :is(.mesurer-settings-select, .mesurer-settings-select-menu) {\n background-color: var(--msr-surface-raised) !important;\n border-color: var(--msr-color-ink-200) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [data-mesurer-rulers=\"true\"] {\n color: var(--msr-color-ink-500) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [data-slider-container=\"true\"] > div:first-child {\n background-color: var(--msr-slider-track) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:bg-[#0d99ff]\"] {\n background-color: var(--msr-accent) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:border-[#0d99ff]\"] {\n border-color: var(--msr-accent) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:hover:bg-[#0d99ff]\"]:hover, :where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:focus-visible:bg-[#0d99ff]\"]:focus-visible {\n background-color: var(--msr-accent) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:text-white\"] {\n color: var(--msr-color-white) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [data-slider-thumb=\"true\"]:focus-visible {\n box-shadow: 0 0 0 1px var(--msr-accent) !important;\n @supports (color: color-mix(in lab, red, red)) {\n box-shadow: 0 0 0 1px color-mix(in srgb, var(--msr-accent) 25%, transparent) !important;\n }\n}\n:where([data-mesurer-root=\"true\"], [data-mesurer-inspector-ui=\"true\"]) {\n --msr-radius-control: 5px;\n}\n@layer utilities {\n .msr\\:rounded-control {\n border-radius: var(--msr-radius-control);\n }\n}\n.mesurer-thin-scrollbar {\n scrollbar-width: thin;\n scrollbar-color: var(--msr-color-ink-200) transparent;\n}\n.mesurer-thin-scrollbar::-webkit-scrollbar {\n width: 4px;\n height: 4px;\n}\n.mesurer-thin-scrollbar::-webkit-scrollbar-track {\n background: transparent;\n}\n.mesurer-thin-scrollbar::-webkit-scrollbar-thumb {\n background: var(--msr-color-ink-200);\n border-radius: var(--msr-radius-control);\n}\n.mesurer-thin-scrollbar:hover {\n scrollbar-color: var(--msr-color-ink-300) transparent;\n}\n.mesurer-thin-scrollbar:hover::-webkit-scrollbar-thumb {\n background: var(--msr-color-ink-300);\n}\n.mesurer-thin-scrollbar::-webkit-scrollbar-corner {\n background: transparent;\n}\n.mesurer-toolbar-mode-switch {\n position: relative;\n z-index: 1;\n isolation: isolate;\n border-radius: 5px;\n background: transparent;\n}\n.mesurer-toolbar-mode-switch-pill {\n position: absolute;\n top: 2px;\n left: 2px;\n z-index: 0;\n width: 28px;\n height: 28px;\n border-radius: 3px;\n background: var(--msr-color-ink-200, #e2e8f0);\n transform: translateX(0);\n}\n.mesurer-toolbar-mode-switch[data-value=\"edit\"] .mesurer-toolbar-mode-switch-pill {\n transform: translateX(30px);\n}\n.mesurer-toolbar-mode-switch > :not(.mesurer-toolbar-mode-switch-pill) {\n position: relative;\n z-index: 1;\n}\n.mesurer-toolbar-mode-button {\n display: flex;\n width: 28px;\n height: 28px;\n align-items: center;\n justify-content: center;\n border-radius: 3px;\n color: var(--msr-color-ink-700, #334155);\n outline: none;\n}\n.mesurer-toolbar-mode-button[aria-pressed=\"true\"] {\n color: var(--msr-color-ink-900, #18181b);\n}\n.mesurer-toolbar-mode-button[aria-pressed=\"false\"]:not(:disabled):hover {\n background: var(--msr-color-ink-200, #e2e8f0);\n @supports (color: color-mix(in lab, red, red)) {\n background: color-mix(in srgb, var(--msr-color-ink-200, #e2e8f0) 50%, transparent);\n }\n}\n.mesurer-toolbar-mode-button:focus-visible {\n outline: 1px solid var(--msr-color-ink-500, #64748b);\n outline-offset: 1px;\n}\n.mesurer-toolbar-mode-button:disabled {\n cursor: default;\n opacity: 0.35;\n}\n.mesurer-toolbar-mode-stage {\n --msr-select-mode-w: 0px;\n --msr-edit-mode-w: 0px;\n position: relative;\n flex: none;\n width: var(--msr-select-mode-w);\n overflow: visible;\n}\n.mesurer-toolbar-mode-stage[data-mode=\"edit\"] {\n width: var(--msr-edit-mode-w);\n}\n.mesurer-toolbar-mode-track {\n display: flex;\n width: max-content;\n align-items: stretch;\n transform: translateX(0);\n}\n.mesurer-toolbar-mode-stage[data-mode=\"edit\"] .mesurer-toolbar-mode-track {\n transform: translateX(calc(-1 * var(--msr-select-mode-w)));\n}\n.mesurer-toolbar-mode-slot {\n flex: none;\n width: var(--msr-select-mode-w);\n}\n.mesurer-toolbar-mode-slot[data-mode=\"edit\"] {\n width: var(--msr-edit-mode-w);\n}\n.mesurer-toolbar-mode-panel {\n display: flex;\n width: max-content;\n align-items: stretch;\n}\n.mesurer-toolbar-mode-slot[data-open=\"false\"] {\n visibility: hidden;\n pointer-events: none;\n}\n.mesurer-toolbar-mode-stage[data-mode-motion=\"true\"] {\n overflow: hidden;\n}\n.mesurer-toolbar-mode-stage[data-mode-motion=\"true\"] .mesurer-toolbar-mode-slot[data-open=\"false\"] {\n visibility: visible;\n}\n.mesurer-toolbar-mode-stage:has( .mesurer-toolbar-mode-slot[data-open=\"true\"] [role=\"menu\"], .mesurer-toolbar-mode-slot[data-open=\"true\"] [role=\"dialog\"] ) {\n overflow: visible;\n}\n.mesurer-toolbar-mode-stage[data-ready=\"true\"], .mesurer-toolbar-mode-stage[data-ready=\"true\"] .mesurer-toolbar-mode-track {\n transition-duration: 150ms;\n transition-timing-function: ease;\n}\n.mesurer-toolbar-mode-stage[data-ready=\"true\"] {\n transition-property: width;\n}\n.mesurer-toolbar-mode-stage[data-compact-motion=\"true\"] {\n transition-property: none;\n}\n.mesurer-toolbar-mode-stage[data-ready=\"true\"] .mesurer-toolbar-mode-track {\n transition-property: transform;\n}\n.mesurer-toolbar-mode-switch {\n --msr-toolbar-mode-motion: 150ms ease;\n}\n.mesurer-toolbar-mode-switch-pill {\n transition: transform var(--msr-toolbar-mode-motion);\n}\n@media (prefers-reduced-motion: reduce) {\n .mesurer-toolbar-mode-stage, .mesurer-toolbar-mode-track, .mesurer-toolbar-mode-switch-pill {\n transition: none !important;\n }\n}\n@property --tw-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-border-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-leading {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-font-weight {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ordinal {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-slashed-zero {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-figure {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-spacing {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-fraction {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-inset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-ring-inset {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-offset-width {\n syntax: \"<length>\";\n inherits: false;\n initial-value: 0px;\n}\n@property --tw-ring-offset-color {\n syntax: \"*\";\n inherits: false;\n initial-value: #fff;\n}\n@property --tw-ring-offset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-outline-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-duration {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ease {\n syntax: \"*\";\n inherits: false;\n}\n@layer properties {\n @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n *, ::before, ::after, ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-border-style: solid;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-ordinal: initial;\n --tw-slashed-zero: initial;\n --tw-numeric-figure: initial;\n --tw-numeric-spacing: initial;\n --tw-numeric-fraction: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-outline-style: solid;\n --tw-duration: initial;\n --tw-ease: initial;\n }\n }\n}\n", Qa = {
3524
3524
  keepTextChanges: !1,
3525
3525
  keepArrangeChanges: !1
3526
3526
  }, $a = (e) => e.state.get("mesurer.presentation.preferences") ?? Qa, eo = "mesurer.arrange", to = "arrange", no = "mesurer.arrange.intents", ro = "mesurer.arrange.active", io = "mesurer.arrange.settings", ao = "runtime:solid", oo = "builtin.select", so = "arrange.toggle", co = "arrange.commit", lo = "arrange.clear", uo = "arrange.reset-selection", fo = "arrange.reset-all", po = "mesurer.arrange.selection-available", mo = 1, ho = 24, go = 160, _o = 500, vo = "#ef4444", yo = 24, bo = 6, xo = 30, So = .5, Co = 4, wo = "[data-mesurer-text-editor='true']", To = {
@@ -3676,18 +3676,18 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
3676
3676
  ...e,
3677
3677
  ...t
3678
3678
  }));
3679
- }, 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), M = (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
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) && N(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 = M(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,26 +3695,26 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
3695
3695
  if (!t.id && !t.testId) {
3696
3696
  let e = [];
3697
3697
  try {
3698
- e = M(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
- }, F = {
3705
+ }, te = {
3706
3706
  value: "none",
3707
3707
  priority: "important"
3708
- }, I = (e) => {
3708
+ }, F = (e) => {
3709
3709
  let t = zo(e, "transition-property");
3710
- (!h.get(e) || !Vo(t, F)) && h.set(e, t), Vo(t, F) || e.style.setProperty("transition-property", F.value, F.priority);
3711
- }, L = (e) => {
3710
+ (!h.get(e) || !Vo(t, te)) && h.set(e, t), Vo(t, te) || e.style.setProperty("transition-property", te.value, te.priority);
3711
+ }, I = (e) => {
3712
3712
  let t = h.get(e);
3713
- t && (Vo(zo(e, "transition-property"), F) && (t.value || t.priority ? e.style.setProperty("transition-property", t.value, t.priority) : e.style.removeProperty("transition-property")), h.delete(e));
3714
- }, te = (e) => {
3715
- for (let t of h.keys()) e.has(t) || L(t);
3713
+ t && (Vo(zo(e, "transition-property"), te) && (t.value || t.priority ? e.style.setProperty("transition-property", t.value, t.priority) : e.style.removeProperty("transition-property")), h.delete(e));
3714
+ }, L = (e) => {
3715
+ for (let t of h.keys()) e.has(t) || I(t);
3716
3716
  }, R = () => {
3717
- for (let e of h.keys()) L(e);
3717
+ for (let e of h.keys()) I(e);
3718
3718
  }, z = () => {
3719
3719
  for (let e of p.values()) Uo(e);
3720
3720
  p.clear();
@@ -3722,7 +3722,7 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
3722
3722
  z(), R();
3723
3723
  }, V = () => {
3724
3724
  u.style.display = "none", d.style.display = "none";
3725
- }, ne = (e, t, n) => {
3725
+ }, H = (e, t, n) => {
3726
3726
  if (V(), D().snapLines) {
3727
3727
  if (e) {
3728
3728
  let t = Math.min(n.top, e.start), r = Math.max(n.top + n.height, e.end);
@@ -3733,34 +3733,34 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
3733
3733
  d.style.display = "block", d.style.left = `${e}px`, d.style.top = `${t.position}px`, d.style.width = `${Math.max(1, r - e)}px`;
3734
3734
  }
3735
3735
  }
3736
- }, H = () => !!(n.querySelector(wo) || s.querySelector(wo)), U = () => {
3736
+ }, U = () => !!(n.querySelector(wo) || s.querySelector(wo)), W = () => {
3737
3737
  for (let [e, t] of g) t.value || t.priority ? e.style.setProperty("visibility", t.value, t.priority) : e.style.removeProperty("visibility");
3738
3738
  g.clear();
3739
- }, W = () => {
3740
- if (H()) {
3741
- U();
3739
+ }, G = () => {
3740
+ if (U()) {
3741
+ W();
3742
3742
  return;
3743
3743
  }
3744
3744
  if (!(g.size > 0)) for (let e of s.querySelectorAll("[data-mesurer-measurement='true']")) e instanceof c.HTMLElement && (e.matches("[data-mesurer-selected-measurement='true'][data-mesurer-inspector-ui='true']") && e.getRootNode() === n && e.parentElement === n.body || (g.set(e, {
3745
3745
  value: e.style.getPropertyValue("visibility"),
3746
3746
  priority: e.style.getPropertyPriority("visibility")
3747
3747
  }), e.style.setProperty("visibility", "hidden", "important")));
3748
- }, re = (e) => {
3748
+ }, ne = (e) => {
3749
3749
  if (e.parentElement instanceof c.HTMLElement) return e.parentElement;
3750
3750
  let t = e.getRootNode();
3751
3751
  return t instanceof c.ShadowRoot && t.host instanceof c.HTMLElement ? t.host : null;
3752
- }, G = (e, t) => {
3753
- let n = re(e);
3752
+ }, re = (e, t) => {
3753
+ let n = ne(e);
3754
3754
  for (; n;) {
3755
3755
  let e = t.get(n);
3756
3756
  if (e) return e;
3757
- n = re(n);
3757
+ n = ne(n);
3758
3758
  }
3759
3759
  return {
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
3766
  let n = P(e);
@@ -3771,13 +3771,13 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
3771
3771
  x: e.desiredLocalOffsetX,
3772
3772
  y: e.desiredLocalOffsetY
3773
3773
  }, ae = (e, t) => {
3774
- let n = re(e);
3774
+ let n = ne(e);
3775
3775
  for (; n;) {
3776
3776
  if (t.has(n)) return n;
3777
- n = re(n);
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;
@@ -3825,8 +3825,8 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
3825
3825
  return t;
3826
3826
  }, ce = (e) => {
3827
3827
  let t = [...e].flatMap(([t, n]) => {
3828
- if (!t.isConnected || !j(t)) return [];
3829
- let r = G(t, e), i = {
3828
+ if (!t.isConnected || !M(t)) return [];
3829
+ let r = re(t, e), i = {
3830
3830
  x: n.x - r.x,
3831
3831
  y: n.y - r.y
3832
3832
  };
@@ -3835,7 +3835,7 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
3835
3835
  offset: i
3836
3836
  }];
3837
3837
  }), n = new Set(t.map(({ element: e }) => e));
3838
- for (let { element: e } of t) I(e);
3838
+ for (let { element: e } of t) F(e);
3839
3839
  z();
3840
3840
  for (let { element: e, offset: n } of t) {
3841
3841
  let t = Bo(e), i = r.getComputedStyle(e).transform, a = i && i !== "none" ? ` ${i}` : "";
@@ -3845,7 +3845,7 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
3845
3845
  appliedTransform: Bo(e)
3846
3846
  });
3847
3847
  }
3848
- te(n);
3848
+ L(n);
3849
3849
  }, le = () => ce(se()), ue = (e) => {
3850
3850
  z();
3851
3851
  try {
@@ -3853,7 +3853,7 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
3853
3853
  } finally {
3854
3854
  !S && !y && le();
3855
3855
  }
3856
- }, de = () => i.currentSelection().elements.filter((e) => e instanceof c.HTMLElement && e.isConnected && 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,13 +3877,13 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
3877
3877
  me();
3878
3878
  return;
3879
3879
  }
3880
- let t = 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;
3884
3884
  let s = i.get(t);
3885
3885
  if (!s) continue;
3886
- let c = G(t, i), u = ie(o) ?? {
3886
+ let c = re(t, i), u = ie(o) ?? {
3887
3887
  x: s.x - c.x,
3888
3888
  y: s.y - c.y
3889
3889
  };
@@ -3903,7 +3903,7 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
3903
3903
  let n = new Set(t);
3904
3904
  n.size && (e.state.update("mesurer.arrange.intents", (e) => {
3905
3905
  let t = !1, r = e.intents.flatMap((e) => {
3906
- if (e.pageUrl !== ee()) return [e];
3906
+ if (e.pageUrl !== k()) return [e];
3907
3907
  let r = e.targets.filter((e) => {
3908
3908
  let r = P(e), i = r !== null && n.has(r);
3909
3909
  return i && (t = !0), !i;
@@ -3917,14 +3917,14 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
3917
3917
  }), xe(), be());
3918
3918
  }, ve = () => {
3919
3919
  e.state.update(no, (e) => {
3920
- let t = e.intents.filter((e) => e.pageUrl !== 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;
@@ -4007,14 +4007,14 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
4007
4007
  v = {
4008
4008
  intentId: null,
4009
4009
  state: "desired"
4010
- }, le(), V(), E() ? W() : U();
4010
+ }, le(), V(), E() ? G() : W();
4011
4011
  }, Se = () => {
4012
4012
  v = {
4013
4013
  intentId: null,
4014
4014
  state: "live"
4015
- }, B(), V(), U();
4015
+ }, B(), V(), W();
4016
4016
  }, Ce = () => {
4017
- S || y || (le(), V(), E() ? W() : U(), be());
4017
+ S || y || (le(), V(), E() ? G() : W(), be());
4018
4018
  }, we = () => {
4019
4019
  C || S || (C = r.requestAnimationFrame(() => {
4020
4020
  C = 0, Ce();
@@ -4033,7 +4033,7 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
4033
4033
  x: e.clientX,
4034
4034
  y: e.clientY
4035
4035
  }, o, n))) : null, s = e.shiftKey ? a : null;
4036
- if (e.shiftKey && s instanceof c.HTMLElement && 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,10 +4041,10 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
4041
4041
  intentId: null,
4042
4042
  state: "desired"
4043
4043
  }, le();
4044
- let u = K(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
- let n = zi(e), r = G(e, d), i = d.get(e) ?? r, a = u.get(e), o = (a ? ie(a) : null) ?? {
4047
+ let n = zi(e), r = re(e, d), i = d.get(e) ?? r, a = u.get(e), o = (a ? ie(a) : null) ?? {
4048
4048
  x: i.x - r.x,
4049
4049
  y: i.y - r.y
4050
4050
  }, s = Eo(n, i), c = oa(e);
@@ -4090,14 +4090,14 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
4090
4090
  le();
4091
4091
  return;
4092
4092
  }
4093
- le(), W(), V(), y = {
4093
+ le(), G(), V(), y = {
4094
4094
  pointerId: e.pointerId,
4095
4095
  originX: e.clientX,
4096
4096
  originY: e.clientY,
4097
4097
  targets: m,
4098
4098
  groupBefore: h,
4099
4099
  snapCandidates: ye(r),
4100
- pressTarget: a instanceof c.HTMLElement && 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,13 +4129,13 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
4129
4129
  y: n
4130
4130
  }), a = r === "y" ? null : No("x", i, y.snapCandidates), o = r === "x" ? null : No("y", i, y.snapCandidates);
4131
4131
  t += a?.delta ?? 0, n += o?.delta ?? 0, y.dx = t, y.dy = n;
4132
- let s = oe(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,
4136
4136
  y: n
4137
4137
  });
4138
- be(c), ne(a, o, c);
4138
+ be(c), H(a, o, c);
4139
4139
  }, ke = () => {
4140
4140
  if (!y) return;
4141
4141
  let e = y.pointerId;
@@ -4154,11 +4154,11 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
4154
4154
  xe(), be();
4155
4155
  return;
4156
4156
  }
4157
- let a = oe(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,
@@ -4192,14 +4192,14 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
4192
4192
  y: e.clientY
4193
4193
  }, t.rendererRoot ?? null, n, o)), Ne = (e) => {
4194
4194
  if (!E()) return;
4195
- if (y || e.buttons !== 0 || H()) {
4195
+ if (y || e.buttons !== 0 || U()) {
4196
4196
  i.clearHover();
4197
4197
  return;
4198
4198
  }
4199
4199
  let n = e.composedPath();
4200
4200
  if (!n.includes(f) && t.rendererRoot && n.includes(t.rendererRoot)) return;
4201
4201
  let r = Me(e);
4202
- i.setHover(r instanceof c.HTMLElement && 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) {
@@ -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
  }
@@ -4474,9 +4474,9 @@ var Za = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
4474
4474
  e.state.update(no, () => ({ intents: [] })), v = {
4475
4475
  intentId: null,
4476
4476
  state: "desired"
4477
- }, B(), V(), E() ? W() : U(), be();
4477
+ }, B(), V(), E() ? G() : W(), be();
4478
4478
  }), e.service.provide(to, ze), le(), be(), e.lifecycle.onDispose(() => {
4479
- S = !0, C && r.cancelAnimationFrame(C), w?.disconnect(), w = null, f.removeEventListener("pointerdown", Ee), f.removeEventListener("pointermove", Oe), f.removeEventListener("pointerup", Ae), f.removeEventListener("pointercancel", je), r.removeEventListener("pointermove", Ne, !0), r.removeEventListener("keydown", Pe, !0), r.removeEventListener("resize", we), r.removeEventListener("scroll", we, !0), o.removeEventListener("scroll", we, !0), Fe(), Ie.dispose(), B(), me(), V(), U(), i.dispose(), a.dispose();
4479
+ S = !0, C && r.cancelAnimationFrame(C), w?.disconnect(), w = null, f.removeEventListener("pointerdown", Ee), f.removeEventListener("pointermove", Oe), f.removeEventListener("pointerup", Ae), f.removeEventListener("pointercancel", je), r.removeEventListener("pointermove", Ne, !0), r.removeEventListener("keydown", Pe, !0), r.removeEventListener("resize", we), r.removeEventListener("scroll", we, !0), o.removeEventListener("scroll", we, !0), Fe(), Ie.dispose(), B(), me(), V(), W(), i.dispose(), a.dispose();
4480
4480
  });
4481
4481
  }
4482
4482
  }), Ko = (e, t, n) => {
@@ -4770,22 +4770,22 @@ var ms = (e, t, n) => Math.min(Math.max(e, t), Math.max(t, n)), hs = 0, gs = (e)
4770
4770
  } : bs(e, t, n, r, i);
4771
4771
  };
4772
4772
  function Ss(e) {
4773
- let [t, n] = en(0), [r, i] = en(0), [a, o] = en(null), [s, c] = en(null), [l, u] = en(null), [d, f] = en({}), [p, m] = en(null), [h, g] = en(!1), [_, v] = en(""), [y, b] = en(null), [x, S] = en(!1), [C, w] = en(null), [T, E] = en(null), D = `--mesurer-annotation-trigger-${++hs}`, O = null, ee = e.initialTriggerFallback === "current-and-next", k = null, A = null, j = null, M, N, P = null, F = null, I = null, L = null, te = null, R = null, z = /* @__PURE__ */ new Map(), B = () => M?.ownerDocument.defaultView ?? window, V = () => e.coordinateSpace === "viewport", ne = (e) => e ? "native-anchor" : V() ? "cached-delta" : "document", H = (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 {
4777
4777
  left: e.left + t.scrollX,
4778
4778
  top: e.top + t.scrollY
4779
4779
  };
4780
- }, U = () => {
4780
+ }, W = () => {
4781
4781
  let t = e.runtime.currentSelection();
4782
4782
  return {
4783
4783
  elements: [...t.elements],
4784
4784
  region: t.region ? { ...t.region } : null
4785
4785
  };
4786
- }, W = (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, re = () => {
4787
- k = null, v(""), g(!1), b(null), m(null);
4788
- }, G = () => {
4786
+ }, G = (e, t) => e.elements.length !== t.elements.length || e.elements.some((e, n) => e !== t.elements[n]) ? !1 : e.region === t.region ? !0 : !e.region || !t.region ? !1 : e.region.left === t.region.left && e.region.top === t.region.top && e.region.width === t.region.width && e.region.height === t.region.height, ne = () => {
4787
+ A = null, v(""), g(!1), b(null), m(null);
4788
+ }, re = () => {
4789
4789
  let e = B();
4790
4790
  return !!(e.CSS?.supports("anchor-name: --mesurer-annotation-trigger") && e.CSS.supports("position-anchor: --mesurer-annotation-trigger") && e.CSS.supports("left: anchor(left)"));
4791
4791
  }, K = () => {
@@ -4793,9 +4793,9 @@ function Ss(e) {
4793
4793
  if (!t.length) return null;
4794
4794
  let n = e.runtime.hoveredElement();
4795
4795
  return t.find((e) => e === n) ?? t.find((e) => n && e.contains(n)) ?? t[0];
4796
- }, ie = () => M?.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 !== N || F === 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() && M && G() && e.getRootNode() === M.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,13 +4849,13 @@ function Ss(e) {
4849
4849
  };
4850
4850
  e.initialTriggerFallback && (O = K());
4851
4851
  let pe = () => {
4852
- L?.release(), L = null, I?.(), I = null, P = null, F = null;
4853
- }, me = (e) => !!(_s(e) && V() && M && e !== O && G() && e.getRootNode() === M.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 = P, n = !!(e?.isConnected && me(e)), r = F === e;
4856
+ let t = P, n = !!(e?.isConnected && me(e)), r = te === e;
4857
4857
  if (e === P && e?.isConnected && n === r) {
4858
- L?.sync();
4858
+ I?.sync();
4859
4859
  return;
4860
4860
  }
4861
4861
  let i = e === t ? D : `--mesurer-annotation-trigger-${++hs}`;
@@ -4864,17 +4864,17 @@ function Ss(e) {
4864
4864
  let a = e.ownerDocument.defaultView;
4865
4865
  if (a) {
4866
4866
  if (n && _s(e)) {
4867
- I = vs(e, i), F = e, D = i, L = 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
- D = i, L = mi(a, e, ae, { trackWindow: V() });
4870
+ D = i, I = mi(a, e, ae, { trackWindow: V() });
4871
4871
  }
4872
4872
  }, ge = (e) => {
4873
- if (te?.disconnect(), te = null, !e?.isConnected) return;
4873
+ if (L?.disconnect(), L = null, !e?.isConnected) return;
4874
4874
  let t = e.ownerDocument.defaultView;
4875
- t && (te = new t.ResizeObserver(() => {
4875
+ t && (L = new t.ResizeObserver(() => {
4876
4876
  i((e) => e + 1);
4877
- }), te.observe(e));
4877
+ }), L.observe(e));
4878
4878
  }, _e = () => {
4879
4879
  let e = B();
4880
4880
  R !== e && (R?.removeEventListener("resize", ve), R = e, R.addEventListener("resize", ve, { passive: !0 }));
@@ -4886,12 +4886,12 @@ function Ss(e) {
4886
4886
  ge(ye);
4887
4887
  let be = e.runtime.subscribe(() => {
4888
4888
  let t = e.runtime.selectGestureActive();
4889
- h() && t ? (ee = !0, re()) : h() && k !== null && !W(k, U()) && (O = K(), ee = !1, re());
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
- te?.disconnect(), te = null, R?.removeEventListener("resize", ve), R = null, pe();
4894
+ L?.disconnect(), L = null, R?.removeEventListener("resize", ve), R = null, pe();
4895
4895
  for (let e of z.keys()) se(e);
4896
4896
  be();
4897
4897
  });
@@ -4920,8 +4920,8 @@ function Ss(e) {
4920
4920
  return o ? [{ ...o }] : [];
4921
4921
  }), De = () => xe().elements.length > 0 || xe().region !== null, Oe = () => {
4922
4922
  t();
4923
- let e = k;
4924
- return e !== null && W(e, U());
4923
+ let e = A;
4924
+ return e !== null && G(e, W());
4925
4925
  }, ke = $t(() => {
4926
4926
  let e = xe(), t = e.elements.filter((e) => e.isConnected).map((e) => {
4927
4927
  let t = e.getBoundingClientRect();
@@ -4964,7 +4964,7 @@ function Ss(e) {
4964
4964
  }, {
4965
4965
  obstacles: i,
4966
4966
  maxShiftRings: 1
4967
- }), o = a?.left ?? ms(n.left + n.width + 6, 4, r.innerWidth - 24 - 4), s = a?.top ?? ms(n.top, 4, r.innerHeight - 24 - 4), c = F === 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,
@@ -4990,7 +4990,7 @@ function Ss(e) {
4990
4990
  r();
4991
4991
  let n = z.get(e);
4992
4992
  if (!n?.anchorName || !n.target.isConnected) return {
4993
- ...H(t),
4993
+ ...U(t),
4994
4994
  nativeAnchor: !1
4995
4995
  };
4996
4996
  let i = n.target.getBoundingClientRect();
@@ -5013,8 +5013,8 @@ function Ss(e) {
5013
5013
  }, ze = () => {
5014
5014
  r();
5015
5015
  let e = Re(), t = Ne();
5016
- if (!t?.isConnected || F !== t) return {
5017
- ...H(e),
5016
+ if (!t?.isConnected || te !== t) return {
5017
+ ...U(e),
5018
5018
  nativeAnchor: !1
5019
5019
  };
5020
5020
  let n = t.getBoundingClientRect();
@@ -5098,14 +5098,14 @@ function Ss(e) {
5098
5098
  });
5099
5099
  });
5100
5100
  }, Ue = (e) => Le(e, Ve(e)), We = (e) => {
5101
- 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()) {
@@ -5159,9 +5159,9 @@ function Ss(e) {
5159
5159
  S(!1);
5160
5160
  }
5161
5161
  }
5162
- }, qe = re, Je = () => {
5162
+ }, qe = ne, Je = () => {
5163
5163
  if (!De()) return;
5164
- ee = !1, k = U(), 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());
@@ -5170,16 +5170,16 @@ function Ss(e) {
5170
5170
  top: t.top - e.top
5171
5171
  });
5172
5172
  } else m(null);
5173
- g(!0), B().queueMicrotask(() => L?.sync());
5173
+ g(!0), B().queueMicrotask(() => I?.sync());
5174
5174
  }, Ye = () => {
5175
5175
  let e = h();
5176
- k !== null && !W(k, U()) ? (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
- M = e, _e(), he();
5198
+ ee = e, _e(), he();
5199
5199
  }, e), e;
5200
5200
  })(),
5201
5201
  Y(on, {
@@ -5227,10 +5227,10 @@ function Ss(e) {
5227
5227
  }
5228
5228
  });
5229
5229
  return fr(() => (e) => {
5230
- N = e, L?.sync();
5230
+ N = e, I?.sync();
5231
5231
  }, t), Q(t, Y(Mi, { size: 14 })), or(() => ({
5232
5232
  e: V() ? "viewport" : "document",
5233
- t: ne(e().nativeAnchor),
5233
+ t: H(e().nativeAnchor),
5234
5234
  a: {
5235
5235
  position: e().nativeAnchor || e().viewportOwned ? "fixed" : "absolute",
5236
5236
  left: e().nativeAnchor ? `calc(anchor(left) + ${e().anchorX}px)` : `${e().left}px`,
@@ -5306,7 +5306,7 @@ function Ss(e) {
5306
5306
  })()
5307
5307
  }), c), Z(c, l), Z(c, u), Z(l, cr("⌘/Ctrl ↵")), Z(u, d), Z(u, f), Z(d, cr("Cancel")), Z(f, cr("Add note")), or(() => ({
5308
5308
  e: V() ? "viewport" : "document",
5309
- t: ne(e().nativeAnchor),
5309
+ t: H(e().nativeAnchor),
5310
5310
  a: {
5311
5311
  position: e().nativeAnchor || V() ? "fixed" : "absolute",
5312
5312
  left: e().nativeAnchor ? `calc(anchor(left) + ${e().anchorX}px)` : `${e().left}px`,
@@ -5335,7 +5335,7 @@ function Ss(e) {
5335
5335
  left: e.left,
5336
5336
  top: e.top
5337
5337
  }) : {
5338
- ...H({
5338
+ ...U({
5339
5339
  left: e.left,
5340
5340
  top: e.top
5341
5341
  }),
@@ -5351,7 +5351,7 @@ function Ss(e) {
5351
5351
  });
5352
5352
  return or(() => ({
5353
5353
  e: t() ?? void 0,
5354
- t: ne(n().nativeAnchor),
5354
+ t: H(n().nativeAnchor),
5355
5355
  a: {
5356
5356
  position: n().nativeAnchor || V() ? "fixed" : "absolute",
5357
5357
  left: n().nativeAnchor ? `calc(anchor(left) + ${n().anchorX}px)` : `${n().left}px`,
@@ -5413,7 +5413,7 @@ function Ss(e) {
5413
5413
  t: t() + 1,
5414
5414
  a: i() ? "true" : void 0,
5415
5415
  o: o() ? "true" : void 0,
5416
- i: ne(n().nativeAnchor),
5416
+ i: H(n().nativeAnchor),
5417
5417
  n: V() ? "viewport" : "document",
5418
5418
  s: `Mesurer annotation ${t() + 1}: ${e.note}`,
5419
5419
  h: e.note,
@@ -5509,7 +5509,7 @@ function Ss(e) {
5509
5509
  })()
5510
5510
  }), null), or(() => ({
5511
5511
  e: t().id,
5512
- t: ne(n().nativeAnchor),
5512
+ t: H(n().nativeAnchor),
5513
5513
  a: V() ? "viewport" : "document",
5514
5514
  o: {
5515
5515
  position: n().nativeAnchor || V() ? "fixed" : "absolute",
@@ -6510,14 +6510,14 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
6510
6510
  } finally {
6511
6511
  f.dispose();
6512
6512
  }
6513
- }, ll = (e, t = /* @__PURE__ */ new Date()) => `mesurer-recording-${t.toISOString().replace(/[:.]/g, "-")}.${e}`, ul = 352, dl = 576, fl = 8, pl = 8, ml = .05, hl = 200, gl = (e, t) => {
6513
+ }, ll = (e, t = /* @__PURE__ */ new Date()) => `mesurer-recording-${t.toISOString().replace(/[:.]/g, "-")}.${e}`, ul = 352, dl = 576, fl = 8, pl = 8, ml = .05, hl = 200, gl = 10, _l = (e, t) => {
6514
6514
  for (let [n, r] of Object.entries(t)) e.style.setProperty(n, r);
6515
- }, _l = (e) => {
6515
+ }, vl = (e) => {
6516
6516
  let t = Number.isFinite(e) ? Math.max(0, e) : 0, n = Math.floor(t / 60);
6517
6517
  return `${n}:${(t - n * 60).toFixed(2).padStart(5, "0")}`;
6518
- }, vl = (e, t, n) => {
6518
+ }, yl = (e, t, n) => {
6519
6519
  let r = e.createElement("button");
6520
- return r.type = "button", r.setAttribute("aria-label", t), r.title = t, r.textContent = n, gl(r, {
6520
+ return r.type = "button", r.setAttribute("aria-label", t), r.title = t, r.textContent = n, _l(r, {
6521
6521
  display: "inline-flex",
6522
6522
  width: "20px",
6523
6523
  height: "20px",
@@ -6533,9 +6533,9 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
6533
6533
  "line-height": "1",
6534
6534
  cursor: "pointer"
6535
6535
  }), r;
6536
- }, yl = (e, t) => {
6536
+ }, bl = (e, t) => {
6537
6537
  let n = e.createElement("button");
6538
- n.type = "button", n.setAttribute("role", "menuitemradio"), gl(n, {
6538
+ n.type = "button", n.setAttribute("role", "menuitemradio"), _l(n, {
6539
6539
  display: "grid",
6540
6540
  width: "100%",
6541
6541
  height: "28px",
@@ -6560,12 +6560,12 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
6560
6560
  check: r,
6561
6561
  text: i
6562
6562
  };
6563
- }, bl = (e, t, n, r) => {
6563
+ }, xl = (e, t, n, r) => {
6564
6564
  let i = globalThis.URL.createObjectURL(e), a = n.createElement("a");
6565
6565
  a.href = i, a.download = t, a.rel = "noopener", n.documentElement.append(a), a.click(), a.remove(), r.setTimeout(() => globalThis.URL.revokeObjectURL(i), 1e3);
6566
- }, xl = ({ ownerDocument: e, ownerWindow: t, root: n, formats: r, onDiscard: i, onExport: a }) => {
6566
+ }, Sl = ({ ownerDocument: e, ownerWindow: t, root: n, formats: r, onDiscard: i, onExport: a }) => {
6567
6567
  let o = e.createElement("section");
6568
- o.dataset.mesurerRecordingPreview = "true", o.dataset.mesurerInspectorUi = "true", o.setAttribute("role", "dialog"), o.setAttribute("aria-label", "Screen recording editor"), o.tabIndex = 0, gl(o, {
6568
+ o.dataset.mesurerRecordingPreview = "true", o.dataset.mesurerInspectorUi = "true", o.setAttribute("role", "dialog"), o.setAttribute("aria-label", "Screen recording editor"), o.tabIndex = 0, _l(o, {
6569
6569
  position: "fixed",
6570
6570
  display: "none",
6571
6571
  width: `${ul}px`,
@@ -6583,10 +6583,10 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
6583
6583
  "pointer-events": "auto",
6584
6584
  outline: "none",
6585
6585
  transform: "translateX(-50%)",
6586
- transition: "width 200ms ease, left 200ms ease"
6586
+ transition: "width 200ms ease"
6587
6587
  }), n.append(o);
6588
6588
  let s = e.createElement("div");
6589
- gl(s, {
6589
+ _l(s, {
6590
6590
  position: "relative",
6591
6591
  display: "flex",
6592
6592
  width: "100%",
@@ -6601,7 +6601,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
6601
6601
  cursor: "default"
6602
6602
  }), o.append(s);
6603
6603
  let c = e.createElement("video");
6604
- c.muted = !0, c.playsInline = !0, c.preload = "auto", gl(c, {
6604
+ c.muted = !0, c.playsInline = !0, c.preload = "auto", _l(c, {
6605
6605
  display: "block",
6606
6606
  width: "100%",
6607
6607
  height: "100%",
@@ -6611,7 +6611,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
6611
6611
  transition: "max-height 200ms ease"
6612
6612
  }), s.append(c);
6613
6613
  let l = e.createElement("div");
6614
- l.dataset.mesurerRecordingExporting = "true", l.textContent = "Exporting…", gl(l, {
6614
+ l.dataset.mesurerRecordingExporting = "true", l.textContent = "Exporting…", _l(l, {
6615
6615
  position: "absolute",
6616
6616
  inset: "0",
6617
6617
  display: "none",
@@ -6623,8 +6623,8 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
6623
6623
  "font-size": "11px",
6624
6624
  "pointer-events": "none"
6625
6625
  }), s.append(l);
6626
- let u = vl(e, "Close", "×");
6627
- u.dataset.mesurerRecordingDiscard = "true", gl(u, {
6626
+ let u = yl(e, "Close", "×");
6627
+ u.dataset.mesurerRecordingDiscard = "true", _l(u, {
6628
6628
  position: "absolute",
6629
6629
  top: "6px",
6630
6630
  right: "6px",
@@ -6646,63 +6646,73 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
6646
6646
  u.style.opacity = "0", u.style.pointerEvents = "none";
6647
6647
  });
6648
6648
  let d = e.createElement("div");
6649
- gl(d, {
6649
+ _l(d, {
6650
6650
  display: "flex",
6651
- height: "24px",
6651
+ height: "28px",
6652
6652
  "align-items": "center",
6653
- gap: "6px",
6653
+ gap: "8px",
6654
6654
  "margin-top": "8px"
6655
6655
  }), o.append(d);
6656
- let f = vl(e, "Play", "▶");
6656
+ let f = yl(e, "Play", "▶");
6657
6657
  f.dataset.mesurerRecordingPlay = "true", d.append(f);
6658
6658
  let p = e.createElement("span");
6659
- p.textContent = "0:00.00", gl(p, {
6659
+ p.dataset.mesurerRecordingCurrentTime = "true", p.textContent = "0:00.00", _l(p, {
6660
6660
  display: "flex",
6661
- width: "32px",
6661
+ width: "8ch",
6662
+ "min-width": "8ch",
6662
6663
  height: "20px",
6663
6664
  "align-items": "center",
6664
6665
  "flex-shrink": "0",
6665
6666
  color: "var(--msr-color-ink-500, #64748b)",
6666
6667
  "font-family": "ui-monospace, SFMono-Regular, Menlo, monospace",
6667
6668
  "font-size": "10px",
6668
- "font-variant-numeric": "tabular-nums"
6669
+ "font-variant-numeric": "tabular-nums",
6670
+ "white-space": "nowrap"
6669
6671
  }), d.append(p);
6670
6672
  let m = e.createElement("div");
6671
- m.dataset.mesurerRecordingTimeline = "true", gl(m, {
6673
+ m.dataset.mesurerRecordingTimeline = "true", _l(m, {
6672
6674
  position: "relative",
6673
- height: "24px",
6675
+ height: "28px",
6674
6676
  "min-width": "0",
6675
6677
  flex: "1 1 0",
6676
6678
  cursor: "pointer",
6677
6679
  "user-select": "none"
6678
6680
  }), d.append(m);
6679
6681
  let h = e.createElement("div");
6680
- h.dataset.mesurerRecordingTimelineRail = "true", gl(h, {
6682
+ h.dataset.mesurerRecordingTimelineTrack = "true", _l(h, {
6683
+ position: "absolute",
6684
+ left: `${gl}px`,
6685
+ right: `${gl}px`,
6686
+ top: "0",
6687
+ bottom: "0"
6688
+ }), m.append(h);
6689
+ let g = e.createElement("div");
6690
+ g.dataset.mesurerRecordingTimelineRail = "true", _l(g, {
6681
6691
  position: "absolute",
6682
6692
  left: "0",
6683
6693
  right: "0",
6684
- top: "16px",
6694
+ top: "21px",
6685
6695
  height: "3px",
6686
6696
  transform: "translateY(-50%)",
6687
6697
  "border-radius": "999px",
6688
6698
  background: "var(--msr-color-ink-200, #e2e8f0)",
6689
6699
  "pointer-events": "none"
6690
- }), m.append(h);
6691
- let g = e.createElement("div");
6692
- g.dataset.mesurerRecordingTimelineClip = "true", gl(g, {
6700
+ }), h.append(g);
6701
+ let _ = e.createElement("div");
6702
+ _.dataset.mesurerRecordingTimelineClip = "true", _l(_, {
6693
6703
  position: "absolute",
6694
- top: "16px",
6704
+ top: "21px",
6695
6705
  height: "3px",
6696
6706
  transform: "translateY(-50%)",
6697
6707
  "border-radius": "999px",
6698
6708
  background: "var(--msr-color-ink-300, #cbd5e1)",
6699
6709
  "pointer-events": "none"
6700
- }), m.append(g);
6701
- let _ = e.createElement("div");
6702
- gl(_, {
6710
+ }), h.append(_);
6711
+ let v = e.createElement("div");
6712
+ _l(v, {
6703
6713
  position: "absolute",
6704
6714
  display: "none",
6705
- top: "16px",
6715
+ top: "21px",
6706
6716
  width: "2px",
6707
6717
  height: "10px",
6708
6718
  transform: "translate(-50%, -50%)",
@@ -6710,11 +6720,11 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
6710
6720
  background: "var(--msr-color-ink-500, #64748b)",
6711
6721
  opacity: "0.5",
6712
6722
  "pointer-events": "none"
6713
- }), m.append(_);
6714
- let v = e.createElement("div");
6715
- v.dataset.mesurerRecordingPlayhead = "true", gl(v, {
6723
+ }), h.append(v);
6724
+ let y = e.createElement("div");
6725
+ y.dataset.mesurerRecordingPlayhead = "true", _l(y, {
6716
6726
  position: "absolute",
6717
- top: "16px",
6727
+ top: "21px",
6718
6728
  left: "0",
6719
6729
  width: "2px",
6720
6730
  height: "9px",
@@ -6724,15 +6734,15 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
6724
6734
  "z-index": "25",
6725
6735
  "pointer-events": "none",
6726
6736
  transition: "height 150ms ease"
6727
- }), m.append(v);
6728
- let y = (t, n) => {
6737
+ }), h.append(y);
6738
+ let b = (t, n) => {
6729
6739
  let r = e.createElement("button");
6730
- r.type = "button", r.dataset.mesurerRecordingTrimHandle = t, r.setAttribute("role", "slider"), r.setAttribute("aria-label", n), r.setAttribute("aria-valuemin", "0"), gl(r, {
6740
+ r.type = "button", r.dataset.mesurerRecordingTrimHandle = t, r.setAttribute("role", "slider"), r.setAttribute("aria-label", n), r.setAttribute("aria-valuemin", "0"), _l(r, {
6731
6741
  position: "absolute",
6732
6742
  top: "0",
6733
6743
  display: "flex",
6734
- width: "14px",
6735
- height: "11px",
6744
+ width: "20px",
6745
+ height: "16px",
6736
6746
  padding: "0",
6737
6747
  border: "0",
6738
6748
  "border-radius": "4px",
@@ -6740,32 +6750,31 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
6740
6750
  color: "var(--msr-content, #18181b)",
6741
6751
  transform: "translateX(-50%)",
6742
6752
  "z-index": "30",
6743
- "align-items": "flex-start",
6753
+ "align-items": "center",
6744
6754
  "justify-content": "center",
6745
- "font-family": "ui-sans-serif, system-ui, sans-serif",
6746
- "font-size": "10px",
6747
- "font-weight": "700",
6748
- "line-height": "8px",
6749
6755
  cursor: "ew-resize",
6750
6756
  "touch-action": "none"
6751
6757
  });
6752
- let i = e.createElement("span");
6753
- i.dataset.mesurerRecordingTrimChevron = t, i.setAttribute("aria-hidden", "true"), i.textContent = t === "start" ? "›" : "‹", r.append(i);
6754
- let a = e.createElement("span");
6755
- return a.setAttribute("aria-hidden", "true"), gl(a, {
6758
+ let i = e.createElementNS("http://www.w3.org/2000/svg", "svg");
6759
+ i.dataset.mesurerRecordingTrimChevron = t, i.setAttribute("aria-hidden", "true"), i.setAttribute("viewBox", "0 0 12 14"), i.setAttribute("width", "12"), i.setAttribute("height", "14");
6760
+ let a = e.createElementNS("http://www.w3.org/2000/svg", "path");
6761
+ a.setAttribute("d", t === "start" ? "M3.5 2.5L8.5 7L3.5 11.5" : "M8.5 2.5L3.5 7L8.5 11.5"), a.setAttribute("fill", "none"), a.setAttribute("stroke", "currentColor"), a.setAttribute("stroke-width", "2"), a.setAttribute("stroke-linecap", "round"), a.setAttribute("stroke-linejoin", "round"), i.append(a), r.append(i);
6762
+ let o = e.createElement("span");
6763
+ return o.setAttribute("aria-hidden", "true"), _l(o, {
6756
6764
  position: "absolute",
6757
6765
  left: "50%",
6758
- top: "8px",
6766
+ top: "15px",
6759
6767
  width: "1px",
6760
- height: "6px",
6768
+ height: "4px",
6761
6769
  background: "var(--msr-content, #18181b)",
6762
6770
  transform: "translateX(-50%)",
6763
6771
  "pointer-events": "none"
6764
- }), r.append(a), m.append(r), r;
6765
- }, b = y("start", "Trim start"), x = y("end", "Trim end"), S = e.createElement("span");
6766
- gl(S, {
6772
+ }), r.append(o), h.append(r), r;
6773
+ }, x = b("start", "Trim start"), S = b("end", "Trim end"), C = e.createElement("span");
6774
+ C.dataset.mesurerRecordingDuration = "true", _l(C, {
6767
6775
  display: "flex",
6768
- width: "32px",
6776
+ width: "8ch",
6777
+ "min-width": "8ch",
6769
6778
  height: "20px",
6770
6779
  "align-items": "center",
6771
6780
  "justify-content": "flex-end",
@@ -6773,23 +6782,24 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
6773
6782
  color: "var(--msr-color-ink-500, #64748b)",
6774
6783
  "font-family": "ui-monospace, SFMono-Regular, Menlo, monospace",
6775
6784
  "font-size": "10px",
6776
- "font-variant-numeric": "tabular-nums"
6777
- }), d.append(S);
6778
- let C = e.createElement("div");
6779
- gl(C, {
6785
+ "font-variant-numeric": "tabular-nums",
6786
+ "white-space": "nowrap"
6787
+ }), d.append(C);
6788
+ let w = e.createElement("div");
6789
+ _l(w, {
6780
6790
  position: "relative",
6781
6791
  display: "flex",
6782
6792
  height: "20px",
6783
6793
  "align-items": "center"
6784
- }), d.append(C);
6785
- let w = vl(e, "Export options", "1×");
6786
- w.dataset.mesurerRecordingExportOptions = "true", w.setAttribute("aria-haspopup", "menu"), w.setAttribute("aria-expanded", "false"), gl(w, {
6794
+ }), d.append(w);
6795
+ let T = yl(e, "Export options", "1×");
6796
+ T.dataset.mesurerRecordingExportOptions = "true", T.setAttribute("aria-haspopup", "menu"), T.setAttribute("aria-expanded", "false"), _l(T, {
6787
6797
  width: "28px",
6788
6798
  "font-family": "ui-monospace, SFMono-Regular, Menlo, monospace",
6789
6799
  "font-size": "10px"
6790
- }), C.append(w);
6791
- let T = e.createElement("div");
6792
- T.dataset.mesurerRecordingExportMenu = "true", T.setAttribute("role", "menu"), gl(T, {
6800
+ }), w.append(T);
6801
+ let E = e.createElement("div");
6802
+ E.dataset.mesurerRecordingExportMenu = "true", E.setAttribute("role", "menu"), _l(E, {
6793
6803
  position: "absolute",
6794
6804
  display: "none",
6795
6805
  right: "0",
@@ -6803,247 +6813,243 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
6803
6813
  color: "var(--msr-content, #18181b)",
6804
6814
  "box-shadow": "var(--msr-shadow-floating, 0 10px 30px rgba(0, 0, 0, 0.12))",
6805
6815
  "pointer-events": "auto"
6806
- }), C.append(T);
6807
- let E = e.createElement("p");
6808
- E.textContent = "Format", gl(E, {
6816
+ }), w.append(E);
6817
+ let D = e.createElement("p");
6818
+ D.textContent = "Format", _l(D, {
6809
6819
  margin: "0",
6810
6820
  padding: "4px 8px",
6811
6821
  color: "var(--msr-color-ink-500, #64748b)",
6812
6822
  "font-size": "10px",
6813
6823
  "font-weight": "500"
6814
- }), T.append(E);
6815
- let D = e.createElement("div");
6816
- T.append(D);
6817
- let O = e.createElement("p");
6818
- O.textContent = "Size", gl(O, {
6824
+ }), E.append(D);
6825
+ let O = e.createElement("div");
6826
+ E.append(O);
6827
+ let k = e.createElement("p");
6828
+ k.textContent = "Size", _l(k, {
6819
6829
  margin: "0",
6820
6830
  padding: "6px 8px 4px",
6821
6831
  color: "var(--msr-color-ink-500, #64748b)",
6822
6832
  "font-size": "10px",
6823
6833
  "font-weight": "500"
6824
- }), T.append(O);
6825
- let ee = e.createElement("div");
6826
- T.append(ee);
6827
- let k = [
6834
+ }), E.append(k);
6835
+ let A = e.createElement("div");
6836
+ E.append(A);
6837
+ let j = [
6828
6838
  1,
6829
6839
  2,
6830
6840
  3
6831
6841
  ].map((t) => {
6832
- let n = yl(e, `${t}×`);
6833
- return n.button.dataset.mesurerRecordingScale = String(t), ee.append(n.button), {
6842
+ let n = bl(e, `${t}×`);
6843
+ return n.button.dataset.mesurerRecordingScale = String(t), A.append(n.button), {
6834
6844
  scale: t,
6835
6845
  ...n
6836
6846
  };
6837
- }), A = vl(e, "Download", "↓");
6838
- A.dataset.mesurerRecordingExport = "true", d.append(A);
6839
- let j = vl(e, "Grow preview", "↗");
6840
- j.dataset.mesurerRecordingExpand = "true", d.append(j);
6841
- let M = e.createElement("p");
6842
- M.dataset.mesurerRecordingPreviewStatus = "true", M.setAttribute("role", "status"), gl(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, {
6843
6853
  display: "none",
6844
6854
  margin: "8px 0 0",
6845
6855
  color: "var(--msr-color-ink-500, #64748b)",
6846
6856
  "font-size": "11px",
6847
6857
  "line-height": "16px"
6848
- }), o.append(M);
6849
- let N = null, P = null, F = !1, I = !1, L = 0, te = ["webm"], R = "webm", z = 1, B = 0, V = 0, ne = null, H = null, U = null, W = (e) => {
6850
- 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;
6851
6861
  return t <= 0 ? 0 : Math.min(1, Math.max(0, e / t));
6852
6862
  }, re = () => ({
6853
- start: B,
6854
- end: V
6855
- }), G = (e) => {
6856
- let t = N?.duration ?? 0, n = m.getBoundingClientRect();
6863
+ start: V,
6864
+ end: H
6865
+ }), K = (e) => {
6866
+ let t = P?.duration ?? 0, n = h.getBoundingClientRect();
6857
6867
  return t <= 0 || n.width <= 0 ? 0 : Math.min(t, Math.max(0, (e - n.left) / n.width * t));
6858
- }, K = () => {
6859
- let e = N?.duration ?? 0, t = Math.min(e, Math.max(0, c.currentTime || 0)), n = W(B) * 100, r = W(V) * 100;
6860
- b.style.left = `${n}%`, x.style.left = `${r}%`, g.style.left = `${n}%`, g.style.width = `${Math.max(0, r - n)}%`, v.style.left = `${W(t) * 100}%`, b.setAttribute("aria-valuemax", String(Math.max(0, V - ml))), b.setAttribute("aria-valuenow", String(B)), b.setAttribute("aria-valuetext", _l(B)), x.setAttribute("aria-valuemin", String(Math.min(e, B + ml))), x.setAttribute("aria-valuemax", String(e)), x.setAttribute("aria-valuenow", String(V)), x.setAttribute("aria-valuetext", _l(V)), p.textContent = _l(t), S.textContent = _l(e);
6861
- }, ie = (e, t = !0) => {
6862
- if (!N) return;
6863
- let n = Math.min(V, Math.max(B, e));
6864
- t && !c.paused && c.pause(), c.currentTime = n, K();
6865
- }, ae = (e, t = !1) => {
6866
- N && (B = Math.min(Math.max(0, e), Math.max(0, V - ml)), (t || c.currentTime < B) && ie(B), K());
6868
+ }, ie = () => {
6869
+ let e = P?.duration ?? 0, t = Math.min(e, Math.max(0, c.currentTime || 0)), n = ne(V) * 100, r = ne(H) * 100;
6870
+ x.style.left = `${n}%`, S.style.left = `${r}%`, _.style.left = `${n}%`, _.style.width = `${Math.max(0, r - n)}%`, y.style.left = `${ne(t) * 100}%`, x.setAttribute("aria-valuemax", String(Math.max(0, H - ml))), x.setAttribute("aria-valuenow", String(V)), x.setAttribute("aria-valuetext", vl(V)), S.setAttribute("aria-valuemin", String(Math.min(e, V + ml))), S.setAttribute("aria-valuemax", String(e)), S.setAttribute("aria-valuenow", String(H)), S.setAttribute("aria-valuetext", vl(H)), p.textContent = vl(t), C.textContent = vl(e);
6871
+ }, ae = (e, t = !0) => {
6872
+ if (!P) return;
6873
+ let n = Math.min(H, Math.max(V, e));
6874
+ t && !c.paused && c.pause(), c.currentTime = n, ie();
6867
6875
  }, oe = (e, t = !1) => {
6868
- N && (V = Math.max(Math.min(N.duration, e), Math.min(N.duration, B + ml)), t ? ie(V) : c.currentTime > V && ie(B), K());
6869
- }, se = () => {
6870
- w.textContent = `${z}×`;
6871
- for (let e of k) {
6872
- let t = e.scale === z;
6873
- e.button.setAttribute("aria-checked", t ? "true" : "false"), e.check.style.opacity = t ? "1" : "0", e.text.textContent = N ? `${e.scale}× ${Math.round(N.width * e.scale)} × ${Math.round(N.height * e.scale)}` : `${e.scale}×`;
6874
- }
6876
+ P && (V = Math.min(Math.max(0, e), Math.max(0, H - ml)), (t || c.currentTime < V) && ae(V), ie());
6877
+ }, se = (e, t = !1) => {
6878
+ P && (H = Math.max(Math.min(P.duration, e), Math.min(P.duration, V + ml)), t ? ae(H) : c.currentTime > H && ae(V), ie());
6875
6879
  }, ce = () => {
6876
- D.replaceChildren();
6877
- for (let t of te) {
6878
- let n = yl(e, t === "mp4" ? "MP4" : "WebM"), r = t === R;
6879
- n.button.dataset.mesurerRecordingFormat = t, n.button.setAttribute("aria-checked", r ? "true" : "false"), n.check.style.opacity = r ? "1" : "0", n.button.addEventListener("click", () => {
6880
- R = t, ce();
6881
- }), D.append(n.button);
6880
+ T.textContent = `${B}×`;
6881
+ for (let e of j) {
6882
+ let t = e.scale === B;
6883
+ e.button.setAttribute("aria-checked", t ? "true" : "false"), e.check.style.opacity = t ? "1" : "0", e.text.textContent = P ? `${e.scale}× ${Math.round(P.width * e.scale)} × ${Math.round(P.height * e.scale)}` : `${e.scale}×`;
6882
6884
  }
6883
6885
  }, le = () => {
6884
- if (T.style.display === "none") return;
6885
- let e = C.getBoundingClientRect(), n = Math.max(1, T.offsetHeight), r = e.top - fl, i = t.innerHeight - e.bottom - fl;
6886
- r >= n || r >= i ? (T.style.top = "auto", T.style.bottom = "24px") : (T.style.top = "24px", T.style.bottom = "auto");
6887
- }, ue = (e) => {
6888
- T.style.display = e ? "block" : "none", w.setAttribute("aria-expanded", e ? "true" : "false"), e && le();
6886
+ O.replaceChildren();
6887
+ for (let t of R) {
6888
+ let n = bl(e, t === "mp4" ? "MP4" : "WebM"), r = t === z;
6889
+ n.button.dataset.mesurerRecordingFormat = t, n.button.setAttribute("aria-checked", r ? "true" : "false"), n.check.style.opacity = r ? "1" : "0", n.button.addEventListener("click", () => {
6890
+ z = t, le();
6891
+ }), O.append(n.button);
6892
+ }
6893
+ }, ue = () => {
6894
+ if (E.style.display === "none") return;
6895
+ let e = w.getBoundingClientRect(), n = Math.max(1, E.offsetHeight), r = e.top - fl, i = t.innerHeight - e.bottom - fl;
6896
+ r >= n || r >= i ? (E.style.top = "auto", E.style.bottom = "24px") : (E.style.top = "24px", E.style.bottom = "auto");
6889
6897
  }, de = (e) => {
6898
+ E.style.display = e ? "block" : "none", T.setAttribute("aria-expanded", e ? "true" : "false"), e && ue();
6899
+ }, q = (e) => {
6890
6900
  I = e, l.style.display = e ? "flex" : "none";
6891
6901
  for (let t of [
6892
6902
  f,
6893
6903
  u,
6894
- b,
6895
6904
  x,
6896
- w,
6897
- A,
6898
- j,
6899
- ...k.map((e) => e.button)
6905
+ S,
6906
+ T,
6907
+ M,
6908
+ ee,
6909
+ ...j.map((e) => e.button)
6900
6910
  ]) t.toggleAttribute("disabled", e);
6901
- }, q = () => n.closest("[data-mesurer-root='true']")?.querySelector("[data-mesurer-tool-id='recording']") ?? e.querySelector("[data-mesurer-tool-id='recording']"), fe = () => {
6911
+ }, fe = () => n.closest("[data-mesurer-root='true']")?.querySelector("[data-mesurer-tool-id='recording']") ?? e.querySelector("[data-mesurer-tool-id='recording']"), pe = () => {
6902
6912
  if (o.style.display === "none") return;
6903
- let e = Math.min(F ? dl : ul, Math.max(1, t.innerWidth - 16)), n = Math.max(180, o.offsetHeight), r = q()?.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;
6904
- l + n > t.innerHeight - fl && (l = r ? r.top - n - pl : t.innerHeight - n - fl), o.style.left = `${c}px`, o.style.top = `${Math.max(fl, l)}px`, T.style.display !== "none" && le();
6905
- }, pe = () => {
6906
- c.pause(), c.removeAttribute("src"), c.load(), P &&= (globalThis.URL.revokeObjectURL(P), null);
6913
+ let e = Math.min(F ? dl : ul, Math.max(1, t.innerWidth - 16)), n = Math.max(180, o.offsetHeight), r = fe()?.getBoundingClientRect(), i = r ? r.left + r.width / 2 : t.innerWidth - fl - e / 2, a = fl + e / 2, s = Math.max(a, t.innerWidth - fl - e / 2), c = Math.min(Math.max(a, i), s), l = r ? r.bottom + pl : fl;
6914
+ l + n > t.innerHeight - fl && (l = r ? r.top - n - pl : t.innerHeight - n - fl), o.style.left = `${c}px`, o.style.top = `${Math.max(fl, l)}px`, E.style.display !== "none" && ue();
6907
6915
  }, me = () => {
6908
- L += 1, U &&= (U.cancel(), null), pe(), N = null, ne = null, H = null, ue(!1), o.style.display = "none", o.style.pointerEvents = "auto", o.style.opacity = "1", o.style.transform = "translateX(-50%)", M.style.display = "none", de(!1);
6916
+ c.pause(), c.removeAttribute("src"), c.load(), te &&= (globalThis.URL.revokeObjectURL(te), null);
6909
6917
  }, he = () => {
6910
- if (!N || o.style.display === "none" || U) return;
6911
- let e = o.getBoundingClientRect(), t = q()?.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) - e.height / 2;
6912
- c.pause(), ue(!1), o.style.pointerEvents = "none";
6918
+ L += 1, G &&= (G.cancel(), null), me(), P = null, U = null, W = null, de(!1), o.style.display = "none", o.style.pointerEvents = "auto", o.style.opacity = "1", o.style.transform = "translateX(-50%)", o.style.removeProperty("transform-origin"), o.style.removeProperty("will-change"), N.style.display = "none", q(!1);
6919
+ }, ge = () => {
6920
+ if (!P || o.style.display === "none" || G) return;
6921
+ let e = o.getBoundingClientRect(), t = fe()?.getBoundingClientRect(), n = t ? t.left + t.width / 2 : e.left + e.width / 2, r = t ? t.top + t.height / 2 : e.top + e.height / 2;
6922
+ c.pause(), de(!1), o.style.pointerEvents = "none", o.style.left = `${e.left}px`, o.style.top = `${e.top}px`, o.style.transform = "none", o.style.transformOrigin = `${n - e.left}px ${r - e.top}px`, o.style.willChange = "transform, opacity";
6913
6923
  let a = o.animate([{
6914
- left: `${e.left + e.width / 2}px`,
6915
- top: `${e.top}px`,
6916
- transform: "translateX(-50%) scale(1)",
6924
+ transform: "scale(1)",
6917
6925
  opacity: 1
6918
6926
  }, {
6919
- left: `${n}px`,
6920
- top: `${r}px`,
6921
- transform: "translateX(-50%) scale(0.08)",
6927
+ transform: "scale(0.08)",
6922
6928
  opacity: 0
6923
6929
  }], {
6924
6930
  duration: hl,
6925
6931
  easing: "ease",
6926
6932
  fill: "forwards"
6927
6933
  });
6928
- U = a, a.finished.catch(() => void 0).then(() => {
6929
- U === a && (U = null, i());
6934
+ G = a, a.finished.catch(() => void 0).then(() => {
6935
+ G === a && (a.cancel(), G = null, o.style.removeProperty("will-change"), i());
6930
6936
  });
6931
- }, ge = () => {
6932
- if (!(!N || I)) {
6937
+ }, _e = () => {
6938
+ if (!(!P || I)) {
6933
6939
  if (!c.paused) {
6934
6940
  c.pause();
6935
6941
  return;
6936
6942
  }
6937
- (c.currentTime < B || c.currentTime >= V) && (c.currentTime = B), c.play();
6938
- }
6939
- }, _e = () => {
6940
- ne = null, H = null, v.style.height = "8px";
6941
- }, ve = (e) => {
6942
- if (!ne) return;
6943
- let t = G(e);
6944
- ne === "start" ? ae(t, !0) : ne === "end" ? oe(t, !0) : ie(t);
6945
- }, ye = (e, t) => {
6946
- !N || I || t.button !== 0 || (t.preventDefault(), t.stopPropagation(), ne = e, H = t.pointerId, v.style.height = "10px", ve(t.clientX));
6947
- }, be = (e) => {
6948
- H !== null && e.pointerId === H && ve(e.clientX);
6943
+ (c.currentTime < V || c.currentTime >= H) && (c.currentTime = V), c.play();
6944
+ }
6945
+ }, ve = () => {
6946
+ U = null, W = null, y.style.height = "8px";
6947
+ }, ye = (e) => {
6948
+ if (!U) return;
6949
+ let t = K(e);
6950
+ U === "start" ? oe(t, !0) : U === "end" ? se(t, !0) : ae(t);
6951
+ }, be = (e, t) => {
6952
+ !P || I || t.button !== 0 || (t.preventDefault(), t.stopPropagation(), U = e, W = t.pointerId, y.style.height = "10px", ye(t.clientX));
6949
6953
  }, xe = (e) => {
6950
- H !== null && e.pointerId === H && _e();
6954
+ W !== null && e.pointerId === W && ye(e.clientX);
6955
+ }, Se = (e) => {
6956
+ W !== null && e.pointerId === W && ve();
6951
6957
  };
6952
- b.addEventListener("pointerdown", (e) => ye("start", e)), x.addEventListener("pointerdown", (e) => ye("end", e)), m.addEventListener("pointerdown", (e) => {
6958
+ x.addEventListener("pointerdown", (e) => be("start", e)), S.addEventListener("pointerdown", (e) => be("end", e)), m.addEventListener("pointerdown", (e) => {
6953
6959
  let t = e.target;
6954
- t instanceof Element && t.closest("[data-mesurer-recording-trim-handle]") || ye("playhead", e);
6960
+ t instanceof Element && t.closest("[data-mesurer-recording-trim-handle]") || be("playhead", e);
6955
6961
  }), m.addEventListener("pointermove", (e) => {
6956
- H === null && (_.style.display = "block", _.style.left = `${W(G(e.clientX)) * 100}%`);
6962
+ W === null && (v.style.display = "block", v.style.left = `${ne(K(e.clientX)) * 100}%`);
6957
6963
  }), m.addEventListener("pointerleave", () => {
6958
- _.style.display = "none";
6964
+ v.style.display = "none";
6959
6965
  });
6960
- for (let [e, t] of [["start", b], ["end", x]]) t.addEventListener("keydown", (t) => {
6961
- if (!N || t.key !== "ArrowLeft" && t.key !== "ArrowRight") return;
6966
+ for (let [e, t] of [["start", x], ["end", S]]) t.addEventListener("keydown", (t) => {
6967
+ if (!P || t.key !== "ArrowLeft" && t.key !== "ArrowRight") return;
6962
6968
  t.preventDefault();
6963
- let n = t.key === "ArrowLeft" ? -1 : 1, r = (e === "start" ? B : V) + n * .05;
6964
- e === "start" ? ae(r, !0) : oe(r, !0);
6969
+ let n = t.key === "ArrowLeft" ? -1 : 1, r = (e === "start" ? V : H) + n * .05;
6970
+ e === "start" ? oe(r, !0) : se(r, !0);
6965
6971
  });
6966
- t.addEventListener("pointermove", be, !0), t.addEventListener("pointerup", xe, !0), t.addEventListener("pointercancel", xe, !0), u.addEventListener("click", (e) => {
6967
- e.stopPropagation(), he();
6972
+ t.addEventListener("pointermove", xe, !0), t.addEventListener("pointerup", Se, !0), t.addEventListener("pointercancel", Se, !0), u.addEventListener("click", (e) => {
6973
+ e.stopPropagation(), ge();
6968
6974
  }), s.addEventListener("click", (e) => {
6969
6975
  let t = e.target;
6970
- t instanceof Element && t.closest("button") || ge();
6971
- }), f.addEventListener("click", ge), c.addEventListener("play", () => {
6976
+ t instanceof Element && t.closest("button") || _e();
6977
+ }), f.addEventListener("click", _e), c.addEventListener("play", () => {
6972
6978
  f.textContent = "Ⅱ", f.setAttribute("aria-label", "Pause"), f.title = "Pause";
6973
6979
  }), c.addEventListener("pause", () => {
6974
6980
  f.textContent = "▶", f.setAttribute("aria-label", "Play"), f.title = "Play";
6975
6981
  }), c.addEventListener("timeupdate", () => {
6976
- N && (c.currentTime >= V - .01 ? (c.pause(), c.currentTime = B) : c.currentTime < B && (c.currentTime = B), K());
6982
+ P && (c.currentTime >= H - .01 ? (c.pause(), c.currentTime = V) : c.currentTime < V && (c.currentTime = V), ie());
6977
6983
  }), c.addEventListener("loadedmetadata", () => {
6978
- K();
6979
- }), w.addEventListener("click", () => {
6980
- I || ue(T.style.display === "none");
6984
+ ie();
6985
+ }), T.addEventListener("click", () => {
6986
+ I || de(E.style.display === "none");
6981
6987
  });
6982
- for (let e of k) e.button.addEventListener("click", () => {
6983
- z = e.scale, se();
6988
+ for (let e of j) e.button.addEventListener("click", () => {
6989
+ B = e.scale, ce();
6984
6990
  });
6985
- let Se = (e) => {
6986
- T.style.display !== "none" && (e.composedPath().includes(C) || ue(!1));
6991
+ let Ce = (e) => {
6992
+ E.style.display !== "none" && (e.composedPath().includes(w) || de(!1));
6987
6993
  };
6988
- e.addEventListener("pointerdown", Se, !0), j.addEventListener("click", () => {
6989
- F = !F, o.style.width = `${F ? dl : ul}px`, s.style.maxHeight = F ? "448px" : "144px", c.style.maxHeight = F ? "448px" : "144px", j.textContent = F ? "↙" : "↗", j.setAttribute("aria-label", F ? "Shrink preview" : "Grow preview"), j.title = F ? "Shrink preview" : "Grow preview", t.requestAnimationFrame(fe);
6990
- }), A.addEventListener("click", () => {
6991
- if (!N || I || te.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;
6992
6998
  let n = ++L, { start: r, end: i } = re();
6993
- de(!0), ue(!1), M.style.display = "none", a({
6994
- format: R,
6999
+ q(!0), de(!1), N.style.display = "none", a({
7000
+ format: z,
6995
7001
  startTime: r,
6996
7002
  endTime: i,
6997
- scale: z
7003
+ scale: B
6998
7004
  }).then((r) => {
6999
- n === L && bl(r.blob, r.filename, e, t);
7005
+ n === L && xl(r.blob, r.filename, e, t);
7000
7006
  }).catch((e) => {
7001
- 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.");
7002
7008
  }).finally(() => {
7003
- n === L && de(!1);
7009
+ n === L && q(!1);
7004
7010
  });
7005
7011
  }), o.addEventListener("keydown", (e) => {
7006
7012
  if (e.key === "Escape") {
7007
- if (T.style.display !== "none") {
7008
- e.preventDefault(), ue(!1);
7013
+ if (E.style.display !== "none") {
7014
+ e.preventDefault(), de(!1);
7009
7015
  return;
7010
7016
  }
7011
- e.preventDefault(), he();
7017
+ e.preventDefault(), ge();
7012
7018
  return;
7013
7019
  }
7014
- (e.key === " " || e.code === "Space") && e.target === o && (e.preventDefault(), ge());
7020
+ (e.key === " " || e.code === "Space") && e.target === o && (e.preventDefault(), _e());
7015
7021
  });
7016
- let Ce = () => fe();
7017
- return t.addEventListener("resize", Ce), {
7022
+ let we = () => pe();
7023
+ return t.addEventListener("resize", we), {
7018
7024
  show(e) {
7019
- L += 1, U &&= (U.cancel(), null), o.style.pointerEvents = "auto", o.style.opacity = "1", o.style.transform = "translateX(-50%)", pe(), N = e, F = !1, z = 1, R = "webm", te = ["webm"], B = 0, V = e.duration, ne = null, H = 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;
7020
7026
  let n = globalThis.URL.createObjectURL(e.blob);
7021
- 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", j.textContent = "↗", j.setAttribute("aria-label", "Grow preview"), j.title = "Grow preview", p.textContent = "0:00.00", S.textContent = _l(e.duration), M.style.display = "none", M.style.color = "var(--msr-color-ink-500, #64748b)", ue(!1), ce(), se(), K(), de(!1), o.style.display = "block", fe(), 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 });
7022
7028
  let i = L;
7023
7029
  r(e).then((e) => {
7024
- i !== L || !N || (te = e, R = e.includes(R) ? R : e[0] ?? "webm", ce(), A.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."));
7025
7031
  }).catch((e) => {
7026
- i === L && (te = [], ce(), A.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.");
7027
- }), t.requestAnimationFrame(fe);
7032
+ i === L && (R = [], le(), M.disabled = !0, N.style.display = "block", N.style.color = "var(--msr-danger-text, #dc2626)", N.textContent = e instanceof Error ? e.message : "Could not inspect export support.");
7033
+ }), t.requestAnimationFrame(pe);
7028
7034
  },
7029
- dismiss: me,
7035
+ dismiss: he,
7030
7036
  dispose() {
7031
- me(), t.removeEventListener("resize", Ce), t.removeEventListener("pointermove", be, !0), t.removeEventListener("pointerup", xe, !0), t.removeEventListener("pointercancel", xe, !0), e.removeEventListener("pointerdown", Se, !0), o.remove();
7037
+ he(), t.removeEventListener("resize", we), t.removeEventListener("pointermove", xe, !0), t.removeEventListener("pointerup", Se, !0), t.removeEventListener("pointercancel", Se, !0), e.removeEventListener("pointerdown", Ce, !0), o.remove();
7032
7038
  }
7033
7039
  };
7034
- }, Sl = "mesurer.recording", Cl = "recording:v1", wl = "mesurer.recording.settings", Tl = "runtime:solid", El = "recording.toggle", Dl = "recording.stop", Ol = "recording.discard", kl = "recording.export", Al = 60, jl = 60, Ml = 3e3, Nl = {
7040
+ }, Cl = "mesurer.recording", wl = "recording:v1", Tl = "mesurer.recording.settings", El = "runtime:solid", Dl = "recording.toggle", Ol = "recording.stop", kl = "recording.discard", Al = "recording.export", jl = 60, Ml = 60, Nl = 3e3, Pl = {
7035
7041
  viewBox: "0 0 24 24",
7036
7042
  paths: ["M7 5.75A3.25 3.25 0 0 0 3.75 9v6A3.25 3.25 0 0 0 7 18.25h7A3.25 3.25 0 0 0 17.25 15v-1.03l2.13 1.42a.75.75 0 0 0 1.17-.624V9.234a.75.75 0 0 0-1.17-.624l-2.13 1.42V9A3.25 3.25 0 0 0 14 5.75H7Zm10.25 6.082 1.8-1.2v2.736l-1.8-1.2v-.336Z", "M10.5 9.25a2.75 2.75 0 1 0 0 5.5 2.75 2.75 0 0 0 0-5.5Z"]
7037
- }, Pl = (e) => e ? { ...e } : null, Fl = (e) => ({
7043
+ }, Fl = (e) => e ? { ...e } : null, Il = (e) => ({
7038
7044
  ...e,
7039
- rect: Pl(e.rect)
7040
- }), Il = (e, t) => {
7045
+ rect: Fl(e.rect)
7046
+ }), Ll = (e, t) => {
7041
7047
  for (let [n, r] of Object.entries(t)) e.style.setProperty(n, r);
7042
- }, Ll = (e) => e != null && !Array.isArray(e) && typeof e == "object", Rl = (e) => typeof e == "number" && Number.isFinite(e), zl = (e) => {
7043
- if (!Ll(e)) return {};
7048
+ }, Rl = (e) => e != null && !Array.isArray(e) && typeof e == "object", zl = (e) => typeof e == "number" && Number.isFinite(e), Bl = (e) => {
7049
+ if (!Rl(e)) return {};
7044
7050
  let t = {};
7045
- return (e.format === "webm" || e.format === "mp4") && (t.format = e.format), Rl(e.startTime) && (t.startTime = e.startTime), Rl(e.endTime) && (t.endTime = e.endTime), (e.scale === 1 || e.scale === 2 || e.scale === 3) && (t.scale = e.scale), t;
7046
- }, Bl = (e) => ({
7051
+ return (e.format === "webm" || e.format === "mp4") && (t.format = e.format), zl(e.startTime) && (t.startTime = e.startTime), zl(e.endTime) && (t.endTime = e.endTime), (e.scale === 1 || e.scale === 2 || e.scale === 3) && (t.scale = e.scale), t;
7052
+ }, Vl = (e) => ({
7047
7053
  status: e.status,
7048
7054
  elapsed: e.elapsed,
7049
7055
  rect: e.rect ? { ...e.rect } : null,
@@ -7051,71 +7057,71 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7051
7057
  width: e.width,
7052
7058
  height: e.height,
7053
7059
  error: e.error
7054
- }), Vl = (e) => ({
7060
+ }), Hl = (e) => ({
7055
7061
  filename: e.filename,
7056
7062
  format: e.format,
7057
7063
  duration: e.duration,
7058
7064
  width: e.width,
7059
7065
  height: e.height,
7060
7066
  bytes: e.blob.size
7061
- }), Hl = (e) => ({
7067
+ }), Ul = (e) => ({
7062
7068
  format: e.format,
7063
7069
  duration: e.duration,
7064
7070
  width: e.width,
7065
7071
  height: e.height,
7066
7072
  bytes: e.blob.size,
7067
7073
  createdAt: e.createdAt
7068
- }), Ul = (e, t, n) => {
7074
+ }), Wl = (e, t, n) => {
7069
7075
  let r = globalThis.URL.createObjectURL(e.blob), i = t.createElement("a");
7070
7076
  i.href = r, i.download = e.filename, i.rel = "noopener", t.documentElement.append(i), i.click(), i.remove(), n.setTimeout(() => globalThis.URL.revokeObjectURL(r), 1e3);
7071
- }, Wl = (e = {}) => hr({
7072
- id: Sl,
7077
+ }, Gl = (e = {}) => hr({
7078
+ id: Cl,
7073
7079
  version: "0.1.0",
7074
- requires: [Tl],
7075
- provides: ["tool:recording", Cl],
7080
+ requires: [El],
7081
+ provides: ["tool:recording", wl],
7076
7082
  setup(t) {
7077
- let n = t.service.get(Tl);
7083
+ let n = t.service.get(El);
7078
7084
  if (!n) throw Error("Recording plugin requires the Solid renderer runtime.");
7079
7085
  let { ownerDocument: r, ownerWindow: i } = n, a = n.createInspectorMount(), o = a.element, s = n.createInspectorMount(), c = s.element, l = n.rendererRoot ?? n.portalTarget.querySelector("[data-mesurer-root='true']"), u = (e) => {
7080
7086
  l?.toggleAttribute("data-mesurer-recording-active", e);
7081
7087
  let t = l?.querySelector("[data-mesurer-interaction-overlay='true']");
7082
7088
  t && (e ? (t.style.setProperty("pointer-events", "none", "important"), t.style.setProperty("cursor", "default", "important")) : (t.style.removeProperty("pointer-events"), t.style.removeProperty("cursor")));
7083
7089
  };
7084
- o.dataset.mesurerRecording = "true", c.dataset.mesurerRecordingStatusRoot = "true", Il(o, {
7090
+ o.dataset.mesurerRecording = "true", c.dataset.mesurerRecordingStatusRoot = "true", Ll(o, {
7085
7091
  position: "fixed",
7086
7092
  inset: "0",
7087
7093
  "z-index": "86",
7088
7094
  "pointer-events": "none",
7089
7095
  "font-family": "ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif"
7090
- }), Il(c, {
7096
+ }), Ll(c, {
7091
7097
  position: "fixed",
7092
7098
  inset: "0",
7093
7099
  "z-index": "96",
7094
7100
  "pointer-events": "none",
7095
7101
  "font-family": "ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif"
7096
7102
  });
7097
- let d = Math.max(1, Math.min(600, e.maxDurationSeconds ?? jl)), f = e.quality ?? "medium";
7103
+ let d = Math.max(1, Math.min(600, e.maxDurationSeconds ?? Ml)), f = e.quality ?? "medium";
7098
7104
  t.state.register({
7099
- id: wl,
7105
+ id: Tl,
7100
7106
  initial: {
7101
7107
  toolEnabled: e.toolEnabled ?? !0,
7102
- frameRate: e.frameRate ?? Al
7108
+ frameRate: e.frameRate ?? jl
7103
7109
  },
7104
7110
  persist: !0
7105
7111
  });
7106
7112
  let p = () => {
7107
- let e = t.state.get(wl);
7113
+ let e = t.state.get(Tl);
7108
7114
  return {
7109
7115
  toolEnabled: e?.toolEnabled ?? !0,
7110
7116
  frameRate: e?.frameRate === 120 ? 120 : 60
7111
7117
  };
7112
7118
  }, m = (e) => {
7113
- t.state.update(wl, (t) => {
7119
+ t.state.update(Tl, (t) => {
7114
7120
  let n = { ...t };
7115
7121
  return e.toolEnabled !== void 0 && (n.toolEnabled = e.toolEnabled), (e.frameRate === 60 || e.frameRate === 120) && (n.frameRate = e.frameRate), n;
7116
7122
  });
7117
7123
  }, h = r.createElement("div");
7118
- h.dataset.mesurerRecordingSelect = "true", h.dataset.mesurerInspectorUi = "true", h.setAttribute("role", "application"), h.setAttribute("aria-label", "Recording selection"), Il(h, {
7124
+ h.dataset.mesurerRecordingSelect = "true", h.dataset.mesurerInspectorUi = "true", h.setAttribute("role", "application"), h.setAttribute("aria-label", "Recording selection"), Ll(h, {
7119
7125
  position: "fixed",
7120
7126
  inset: "0",
7121
7127
  display: "none",
@@ -7127,21 +7133,23 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7127
7133
  }), o.append(h);
7128
7134
  let g = Array.from({ length: 4 }, () => {
7129
7135
  let e = r.createElement("div");
7130
- return e.dataset.mesurerRecordingShade = "true", Il(e, {
7136
+ return e.dataset.mesurerRecordingShade = "true", Ll(e, {
7131
7137
  position: "fixed",
7132
7138
  background: "rgb(0 0 0 / 40%)",
7133
7139
  "pointer-events": "none"
7134
7140
  }), h.append(e), e;
7135
7141
  }), _ = r.createElement("div");
7136
- _.dataset.mesurerRecordingMask = "true", Il(_, {
7142
+ _.dataset.mesurerRecordingMask = "true", Ll(_, {
7137
7143
  position: "fixed",
7138
7144
  display: "none",
7139
7145
  background: "transparent",
7146
+ outline: "2px solid var(--msr-accent, #0d99ff)",
7147
+ "outline-offset": "-1px",
7140
7148
  "box-shadow": "0 0 0 100vmax rgb(0 0 0 / 40%)",
7141
7149
  "pointer-events": "none"
7142
7150
  }), h.append(_);
7143
7151
  let v = r.createElement("div");
7144
- v.dataset.mesurerRecordingSelection = "true", Il(v, {
7152
+ v.dataset.mesurerRecordingSelection = "true", Ll(v, {
7145
7153
  position: "fixed",
7146
7154
  display: "none",
7147
7155
  border: "1px solid var(--msr-accent, #0d99ff)",
@@ -7149,7 +7157,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7149
7157
  "pointer-events": "none"
7150
7158
  }), h.append(v);
7151
7159
  let y = r.createElement("div");
7152
- Il(y, {
7160
+ Ll(y, {
7153
7161
  position: "fixed",
7154
7162
  display: "none",
7155
7163
  transform: "translateX(-50%)",
@@ -7162,7 +7170,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7162
7170
  "pointer-events": "none"
7163
7171
  }), h.append(y);
7164
7172
  let b = r.createElement("div");
7165
- b.textContent = "Drag a region to record · Esc to cancel", Il(b, {
7173
+ b.textContent = "Drag a region to record · Esc to cancel", Ll(b, {
7166
7174
  position: "fixed",
7167
7175
  left: "50%",
7168
7176
  bottom: "16px",
@@ -7175,7 +7183,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7175
7183
  "pointer-events": "none"
7176
7184
  }), h.append(b);
7177
7185
  let x = r.createElement("div");
7178
- x.dataset.mesurerRecordingRegion = "true", x.dataset.mesurerInspectorUi = "true", x.setAttribute("role", "dialog"), x.setAttribute("aria-label", "Recording region"), Il(x, {
7186
+ x.dataset.mesurerRecordingRegion = "true", x.dataset.mesurerInspectorUi = "true", x.setAttribute("role", "dialog"), x.setAttribute("aria-label", "Recording region"), Ll(x, {
7179
7187
  position: "fixed",
7180
7188
  display: "none",
7181
7189
  width: "220px",
@@ -7193,7 +7201,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7193
7201
  }), h.append(x);
7194
7202
  let S = (e) => {
7195
7203
  let t = r.createElement("label");
7196
- Il(t, {
7204
+ Ll(t, {
7197
7205
  display: "grid",
7198
7206
  "grid-template-columns": "44px minmax(0,1fr)",
7199
7207
  "align-items": "center",
@@ -7202,7 +7210,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7202
7210
  let n = r.createElement("span");
7203
7211
  n.textContent = e, n.style.color = "var(--msr-color-ink-500, #64748b)", t.append(n);
7204
7212
  let i = r.createElement("div");
7205
- return Il(i, {
7213
+ return Ll(i, {
7206
7214
  display: "flex",
7207
7215
  "align-items": "center",
7208
7216
  gap: "4px",
@@ -7210,7 +7218,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7210
7218
  }), t.append(i), x.append(t), i;
7211
7219
  }, C = (e) => {
7212
7220
  let t = r.createElement("input");
7213
- return t.type = "number", t.setAttribute("aria-label", e), t.step = "1", Il(t, {
7221
+ return t.type = "number", t.setAttribute("aria-label", e), t.step = "1", Ll(t, {
7214
7222
  width: "0",
7215
7223
  "min-width": "0",
7216
7224
  flex: "1 1 0",
@@ -7230,14 +7238,14 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7230
7238
  D.textContent = "×", D.style.color = "var(--msr-color-ink-500, #64748b)", w.append(D, E);
7231
7239
  let O = r.createElement("span");
7232
7240
  O.textContent = "px", O.style.color = "var(--msr-color-ink-500, #64748b)", w.append(O);
7233
- let ee = S("Position");
7234
- ee.style.marginTop = "8px";
7235
- let k = C("Left"), A = C("Top");
7236
- ee.append(k, A);
7237
- let j = r.createElement("span");
7238
- j.textContent = "px", j.style.color = "var(--msr-color-ink-500, #64748b)", ee.append(j);
7239
- let M = r.createElement("button");
7240
- M.type = "button", M.dataset.mesurerRecordingStart = "true", M.textContent = "● Start recording", Il(M, {
7241
+ let k = S("Position");
7242
+ k.style.marginTop = "8px";
7243
+ let A = C("Left"), j = C("Top");
7244
+ k.append(A, j);
7245
+ let M = r.createElement("span");
7246
+ M.textContent = "px", M.style.color = "var(--msr-color-ink-500, #64748b)", k.append(M);
7247
+ let ee = r.createElement("button");
7248
+ ee.type = "button", ee.dataset.mesurerRecordingStart = "true", ee.textContent = "● Start recording", Ll(ee, {
7241
7249
  width: "100%",
7242
7250
  height: "28px",
7243
7251
  "margin-top": "8px",
@@ -7249,9 +7257,9 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7249
7257
  "font-size": "11px",
7250
7258
  "font-weight": "500",
7251
7259
  cursor: "pointer"
7252
- }), x.append(M);
7260
+ }), x.append(ee);
7253
7261
  let N = r.createElement("div");
7254
- N.dataset.mesurerRecordingGrid = "true", Il(N, {
7262
+ N.dataset.mesurerRecordingGrid = "true", Ll(N, {
7255
7263
  position: "absolute",
7256
7264
  inset: "0",
7257
7265
  display: "none",
@@ -7259,7 +7267,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7259
7267
  }), v.append(N);
7260
7268
  let P = (e) => {
7261
7269
  let t = r.createElement("div");
7262
- Il(t, {
7270
+ Ll(t, {
7263
7271
  position: "absolute",
7264
7272
  opacity: "0.3",
7265
7273
  ...e
@@ -7286,7 +7294,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7286
7294
  right: "0",
7287
7295
  borderTop: "1px dashed var(--msr-color-ink-500, #64748b)"
7288
7296
  });
7289
- let F = Object.entries({
7297
+ let te = Object.entries({
7290
7298
  nw: {
7291
7299
  left: "0",
7292
7300
  top: "0"
@@ -7321,7 +7329,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7321
7329
  }
7322
7330
  }).map(([e, t]) => {
7323
7331
  let n = r.createElement("button");
7324
- return n.type = "button", n.dataset.mesurerRecordingResize = e, n.setAttribute("aria-label", `Resize ${e}`), Il(n, {
7332
+ return n.type = "button", n.dataset.mesurerRecordingResize = e, n.setAttribute("aria-label", `Resize ${e}`), Ll(n, {
7325
7333
  position: "absolute",
7326
7334
  display: "none",
7327
7335
  left: t.left,
@@ -7337,8 +7345,8 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7337
7345
  cursor: e === "n" || e === "s" ? "ns-resize" : e === "e" || e === "w" ? "ew-resize" : e === "nw" || e === "se" ? "nwse-resize" : "nesw-resize",
7338
7346
  "pointer-events": "auto"
7339
7347
  }), v.append(n), n;
7340
- }), I = r.createElement("section");
7341
- I.dataset.mesurerRecordingStatus = "true", I.dataset.mesurerInspectorUi = "true", I.setAttribute("aria-label", "Screen recording"), Il(I, {
7348
+ }), F = r.createElement("section");
7349
+ F.dataset.mesurerRecordingStatus = "true", F.dataset.mesurerInspectorUi = "true", F.setAttribute("aria-label", "Screen recording"), Ll(F, {
7342
7350
  position: "fixed",
7343
7351
  display: "none",
7344
7352
  height: "34px",
@@ -7354,23 +7362,23 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7354
7362
  "font-size": "11px",
7355
7363
  "pointer-events": "auto"
7356
7364
  });
7357
- let L = r.createElement("span");
7358
- L.setAttribute("aria-hidden", "true"), Il(L, {
7365
+ let I = r.createElement("span");
7366
+ I.setAttribute("aria-hidden", "true"), Ll(I, {
7359
7367
  width: "6px",
7360
7368
  height: "6px",
7361
7369
  "border-radius": "999px",
7362
7370
  background: "var(--msr-danger-solid-bg, #dc2626)",
7363
7371
  "flex-shrink": "0"
7364
- }), I.append(L);
7365
- let te = r.createElement("span");
7366
- te.dataset.mesurerRecordingTime = "true", te.textContent = "00:00", Il(te, {
7372
+ }), F.append(I);
7373
+ let L = r.createElement("span");
7374
+ L.dataset.mesurerRecordingTime = "true", L.textContent = "00:00", Ll(L, {
7367
7375
  color: "var(--msr-content, #18181b)",
7368
7376
  "font-family": "ui-monospace, SFMono-Regular, Menlo, monospace",
7369
7377
  "font-size": "11px",
7370
7378
  "font-variant-numeric": "tabular-nums"
7371
- }), I.append(te);
7379
+ }), F.append(L);
7372
7380
  let R = r.createElement("button");
7373
- R.type = "button", R.dataset.mesurerRecordingStop = "true", R.textContent = "Stop", R.setAttribute("aria-label", "Stop recording"), Il(R, {
7381
+ R.type = "button", R.dataset.mesurerRecordingStop = "true", R.textContent = "Stop", R.setAttribute("aria-label", "Stop recording"), Ll(R, {
7374
7382
  height: "24px",
7375
7383
  padding: "0 8px",
7376
7384
  border: "0",
@@ -7381,9 +7389,9 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7381
7389
  "font-size": "11px",
7382
7390
  "font-weight": "500",
7383
7391
  cursor: "pointer"
7384
- }), I.append(R), c.append(I);
7392
+ }), F.append(R), c.append(F);
7385
7393
  let z = r.createElement("div");
7386
- z.dataset.mesurerRecordingError = "true", z.dataset.mesurerInspectorUi = "true", z.setAttribute("role", "status"), Il(z, {
7394
+ z.dataset.mesurerRecordingError = "true", z.dataset.mesurerInspectorUi = "true", z.setAttribute("role", "status"), Ll(z, {
7387
7395
  position: "fixed",
7388
7396
  display: "none",
7389
7397
  left: "8px",
@@ -7404,14 +7412,14 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7404
7412
  width: null,
7405
7413
  height: null,
7406
7414
  error: null
7407
- }, V = /* @__PURE__ */ new Set(), ne = null, H = null, U = null, W = null, re = null, G = null, K = !1, ie = null, ae = null, oe = 0, se = 0, ce = 0, le = 0, ue = 0, de = -1, q = !1, fe = null, pe = () => {
7408
- let e = Fl(B);
7415
+ }, V = /* @__PURE__ */ new Set(), H = null, U = null, W = null, G = null, ne = null, re = null, K = !1, ie = null, ae = null, oe = 0, se = 0, ce = 0, le = 0, ue = 0, de = -1, q = !1, fe = null, pe = () => {
7416
+ let e = Il(B);
7409
7417
  for (let t of V) t(e);
7410
7418
  }, me = (e) => {
7411
7419
  B = {
7412
7420
  ...B,
7413
7421
  ...e,
7414
- rect: e.rect === void 0 ? B.rect : Pl(e.rect)
7422
+ rect: e.rect === void 0 ? B.rect : Fl(e.rect)
7415
7423
  }, pe();
7416
7424
  }, he = () => B.status === "selecting" || B.status === "recording" || B.status === "exporting", ge = () => {
7417
7425
  if (ae) return;
@@ -7459,7 +7467,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7459
7467
  height: 0
7460
7468
  });
7461
7469
  v.style.display = "none", v.style.pointerEvents = "none", N.style.display = "none";
7462
- for (let e of F) e.style.display = "none";
7470
+ for (let e of te) e.style.display = "none";
7463
7471
  y.style.display = "none", x.style.display = "none", b.textContent = "Drag to select a region · Esc to cancel";
7464
7472
  return;
7465
7473
  }
@@ -7485,13 +7493,13 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7485
7493
  height: Math.max(0, n - e.top - e.height)
7486
7494
  }), v.style.display = "block", ve(v, e), K) {
7487
7495
  v.style.pointerEvents = "auto", v.style.cursor = "move", N.style.display = "block";
7488
- for (let e of F) e.style.display = "block";
7489
- 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));
7496
+ for (let e of te) e.style.display = "block";
7497
+ y.style.display = "none", T.value = String(Math.round(e.width)), E.value = String(Math.round(e.height)), A.value = String(Math.round(e.left)), j.value = String(Math.round(e.top)), T.max = String(t), E.max = String(n), A.max = String(Math.max(0, t - e.width)), j.max = String(Math.max(0, n - e.height));
7490
7498
  let r = Math.min(Math.max(118, e.left + e.width / 2), Math.max(118, t - 110 - 8)), i = e.top + e.height + 12, a = i + 112 <= n ? i : Math.max(8, e.top - 112);
7491
7499
  x.style.left = `${r}px`, x.style.top = `${a}px`, x.style.display = "block", b.textContent = "Adjust region · Enter to start · Esc to cancel";
7492
7500
  } else {
7493
7501
  v.style.pointerEvents = "none", v.style.cursor = "", N.style.display = "none";
7494
- for (let e of F) e.style.display = "none";
7502
+ for (let e of te) e.style.display = "none";
7495
7503
  x.style.display = "none", y.style.display = "block", y.textContent = `${Math.round(e.width)} × ${Math.round(e.height)}`, ve(y, {
7496
7504
  left: e.left + e.width / 2,
7497
7505
  top: Math.min(n - 22, e.top + e.height + 6)
@@ -7499,7 +7507,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7499
7507
  }
7500
7508
  }, Se = (e) => {
7501
7509
  let t = ye(e);
7502
- G = t, me({ rect: t }), xe(t);
7510
+ re = t, me({ rect: t }), xe(t);
7503
7511
  }, Ce = (e) => {
7504
7512
  for (let e of g) ve(e, {
7505
7513
  left: 0,
@@ -7508,41 +7516,41 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7508
7516
  height: 0
7509
7517
  });
7510
7518
  ve(_, e), _.style.display = "block", v.style.display = "none", y.style.display = "none", x.style.display = "none", N.style.display = "none", b.style.display = "none";
7511
- for (let e of F) e.style.display = "none";
7519
+ for (let e of te) e.style.display = "none";
7512
7520
  h.style.display = "block", h.style.pointerEvents = "none", h.style.cursor = "default";
7513
7521
  }, we = () => {
7514
7522
  u(!1), _.style.display = "none", h.style.display = "none", h.style.pointerEvents = "auto", h.style.cursor = "crosshair", b.style.removeProperty("display");
7515
7523
  }, Te = () => {
7516
- re = null, G = null, K = !1, ie = null, xe(null), h.style.display = "none", h.style.cursor = "crosshair", o.style.pointerEvents = "none";
7524
+ ne = null, re = null, K = !1, ie = null, xe(null), h.style.display = "none", h.style.cursor = "crosshair", o.style.pointerEvents = "none";
7517
7525
  }, Ee = (e) => {
7518
7526
  let t = i.innerHeight, n = i.innerWidth;
7519
- I.style.visibility = "hidden", I.style.display = "flex";
7520
- let r = Math.max(112, I.offsetWidth || 112), a = Math.min(n - r - 8, Math.max(8, e.left + e.width / 2 - r / 2)), o = l?.querySelector("[data-mesurer-toolbar='true']")?.getBoundingClientRect(), s = [e.top >= 50 ? e.top - 34 - 8 : null, t - (e.top + e.height) >= 50 ? e.top + e.height + 8 : null].filter((e) => e !== null), c = (e) => o ? a < o.right && a + r > o.left && e < o.bottom && e + 34 > o.top : !1, u = s.find((e) => !c(e)) ?? s[0] ?? null;
7527
+ F.style.visibility = "hidden", F.style.display = "flex";
7528
+ let r = Math.max(112, F.offsetWidth || 112), a = Math.min(n - r - 8, Math.max(8, e.left + e.width / 2 - r / 2)), o = l?.querySelector("[data-mesurer-toolbar='true']")?.getBoundingClientRect(), s = [e.top >= 50 ? e.top - 34 - 8 : null, t - (e.top + e.height) >= 50 ? e.top + e.height + 8 : null].filter((e) => e !== null), c = (e) => o ? a < o.right && a + r > o.left && e < o.bottom && e + 34 > o.top : !1, u = s.find((e) => !c(e)) ?? s[0] ?? null;
7521
7529
  if (u === null) {
7522
- I.style.display = "none", I.style.removeProperty("visibility");
7530
+ F.style.display = "none", F.style.removeProperty("visibility");
7523
7531
  return;
7524
7532
  }
7525
- I.style.left = `${a}px`, I.style.top = `${u}px`, I.style.removeProperty("visibility");
7533
+ F.style.left = `${a}px`, F.style.top = `${u}px`, F.style.removeProperty("visibility");
7526
7534
  }, De = () => {
7527
- I.style.display = "none";
7535
+ F.style.display = "none";
7528
7536
  }, Oe = (e) => {
7529
7537
  ce && i.clearTimeout(ce);
7530
7538
  let t = e instanceof Error ? e.message : "Could not record this region.";
7531
7539
  z.textContent = t, z.style.display = "block", ce = i.setTimeout(() => {
7532
7540
  ce = 0, z.style.display = "none";
7533
- }, Ml);
7541
+ }, Nl);
7534
7542
  }, ke = async (e) => {
7535
7543
  oe && i.cancelAnimationFrame(oe), oe = 0, se && i.clearTimeout(se), se = 0;
7536
- let t = W;
7537
- if (W = null, t) try {
7544
+ let t = G;
7545
+ if (G = null, t) try {
7538
7546
  await t;
7539
7547
  } catch {}
7540
- let n = U;
7541
- U = null, e && await n?.cancel();
7542
- let r = H;
7543
- H = null, r && Jc(r), we(), De();
7548
+ let n = W;
7549
+ W = null, e && await n?.cancel();
7550
+ let r = U;
7551
+ U = null, r && Jc(r), we(), De();
7544
7552
  }, Ae = () => {
7545
- ne = null, Ne.dismiss(), me({
7553
+ H = null, Ne.dismiss(), me({
7546
7554
  status: "idle",
7547
7555
  elapsed: 0,
7548
7556
  rect: null,
@@ -7552,10 +7560,10 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7552
7560
  error: null
7553
7561
  }), t.hook.emit("recording:discard", {});
7554
7562
  }, je = async () => {
7555
- let e = ne;
7563
+ let e = H;
7556
7564
  return il(e?.width ?? Math.max(2, Math.round(i.innerWidth)), e?.height ?? Math.max(2, Math.round(i.innerHeight)), p().frameRate);
7557
7565
  }, Me = async (e = {}) => {
7558
- let n = ne;
7566
+ let n = H;
7559
7567
  if (!n) throw Error("No recording is ready to export.");
7560
7568
  let r = B.status;
7561
7569
  me({
@@ -7587,7 +7595,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7587
7595
  error: e instanceof Error ? e.message : "Could not export the recording."
7588
7596
  }), e;
7589
7597
  }
7590
- }, Ne = xl({
7598
+ }, Ne = Sl({
7591
7599
  ownerDocument: r,
7592
7600
  ownerWindow: i,
7593
7601
  root: o,
@@ -7596,15 +7604,15 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7596
7604
  onExport: Me
7597
7605
  }), Pe = async () => {
7598
7606
  if (fe) return fe;
7599
- if (B.status !== "recording" || !U || !H) throw Error("No recording is active.");
7600
- let e = le, n = U, r = H, a = Pl(B.rect);
7607
+ if (B.status !== "recording" || !W || !U) throw Error("No recording is active.");
7608
+ let e = le, n = W, r = U, a = Fl(B.rect);
7601
7609
  if (!a) throw Error("Recording region is unavailable.");
7602
7610
  return fe = (async () => {
7603
7611
  oe && i.cancelAnimationFrame(oe), oe = 0, se && i.clearTimeout(se), se = 0;
7604
- let s = W;
7605
- W = null, s && await s;
7612
+ let s = G;
7613
+ G = null, s && await s;
7606
7614
  let c = await n.finalize();
7607
- if (U = null, H = null, Jc(r), le !== e || q) throw Error("Recording was cancelled.");
7615
+ if (W = null, U = null, Jc(r), le !== e || q) throw Error("Recording was cancelled.");
7608
7616
  let l = await sl(c), u = {
7609
7617
  blob: c,
7610
7618
  format: "webm",
@@ -7613,7 +7621,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7613
7621
  height: l.height,
7614
7622
  createdAt: Date.now()
7615
7623
  };
7616
- return ne = u, we(), De(), _e(), o.style.pointerEvents = "none", me({
7624
+ return H = u, we(), De(), _e(), o.style.pointerEvents = "none", me({
7617
7625
  status: "ready",
7618
7626
  elapsed: l.duration,
7619
7627
  duration: l.duration,
@@ -7641,16 +7649,16 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7641
7649
  }), fe;
7642
7650
  }, Fe = (e, t, n, r) => {
7643
7651
  let a = 1 / r, o = (r) => {
7644
- if (q || le !== n || B.status !== "recording" || U !== t || H !== e) return;
7652
+ if (q || le !== n || B.status !== "recording" || W !== t || U !== e) return;
7645
7653
  let s = Math.max(0, (r - ue) / 1e3);
7646
- me({ elapsed: s }), te.textContent = `${String(Math.floor(s / 60)).padStart(2, "0")}:${String(Math.floor(s % 60)).padStart(2, "0")}`;
7654
+ me({ elapsed: s }), L.textContent = `${String(Math.floor(s / 60)).padStart(2, "0")}:${String(Math.floor(s % 60)).padStart(2, "0")}`;
7647
7655
  let c = s;
7648
- !W && c - de >= a * .8 && (qc(e, B.rect ?? {
7656
+ !G && c - de >= a * .8 && (qc(e, B.rect ?? {
7649
7657
  left: 0,
7650
7658
  top: 0,
7651
7659
  width: i.innerWidth,
7652
7660
  height: i.innerHeight
7653
- }, Ac(i)), de = c, W = t.addFrame(c, a).catch((e) => {
7661
+ }, Ac(i)), de = c, G = t.addFrame(c, a).catch((e) => {
7654
7662
  throw le === n && !q && ke(!0).then(() => {
7655
7663
  _e();
7656
7664
  let t = e instanceof Error ? e.message : "MediaBunny could not encode the recording.";
@@ -7660,13 +7668,13 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7660
7668
  }), Oe(e);
7661
7669
  }), e;
7662
7670
  }).finally(() => {
7663
- W = null;
7671
+ G = null;
7664
7672
  })), oe = i.requestAnimationFrame(o);
7665
7673
  };
7666
7674
  oe = i.requestAnimationFrame(o);
7667
7675
  }, Ie = async (e) => {
7668
7676
  let n = ++le, a = p().frameRate;
7669
- Ne.dismiss(), ne = null, re = null, G = null, K = !1, ie = null, Ce(e), o.style.pointerEvents = "none", u(!0), _e(), me({
7677
+ Ne.dismiss(), H = null, ne = null, re = null, K = !1, ie = null, Ce(e), o.style.pointerEvents = "none", u(!0), _e(), me({
7670
7678
  status: "selecting",
7671
7679
  elapsed: 0,
7672
7680
  rect: e,
@@ -7674,7 +7682,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7674
7682
  width: null,
7675
7683
  height: null,
7676
7684
  error: null
7677
- }), te.textContent = "00:00", Ee(e);
7685
+ }), L.textContent = "00:00", Ee(e);
7678
7686
  try {
7679
7687
  let s = await Kc(r, i, e, a);
7680
7688
  if (q || le !== n) {
@@ -7690,14 +7698,14 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7690
7698
  await c.cancel(), Jc(s);
7691
7699
  return;
7692
7700
  }
7693
- if (H = s, U = c, ue = i.performance.now(), de = 0, qc(s, e, Ac(i)), await c.addFrame(0, 1 / a), q || le !== n) {
7701
+ if (U = s, W = c, ue = i.performance.now(), de = 0, qc(s, e, Ac(i)), await c.addFrame(0, 1 / a), q || le !== n) {
7694
7702
  await ke(!0);
7695
7703
  return;
7696
7704
  }
7697
7705
  me({
7698
7706
  status: "recording",
7699
7707
  elapsed: 0
7700
- }), o.style.pointerEvents = "none", u(!0), Ce(e), te.textContent = "00:00", Ee(e), Fe(s, c, n, a), s.track.addEventListener("ended", () => {
7708
+ }), o.style.pointerEvents = "none", u(!0), Ce(e), L.textContent = "00:00", Ee(e), Fe(s, c, n, a), s.track.addEventListener("ended", () => {
7701
7709
  le === n && B.status === "recording" && Pe().catch(() => void 0);
7702
7710
  }, { once: !0 }), se = i.setTimeout(() => {
7703
7711
  le === n && B.status === "recording" && Pe().catch(() => void 0);
@@ -7716,7 +7724,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7716
7724
  }), r || Oe(t), t;
7717
7725
  }
7718
7726
  }, Le = () => {
7719
- B.status !== "selecting" && (++le, Ne.dismiss(), ne = null, G = null, K = !1, ie = null, ge(), xe(null), h.style.display = "block", h.style.pointerEvents = "auto", b.style.removeProperty("display"), o.style.pointerEvents = "auto", me({
7727
+ B.status !== "selecting" && (++le, Ne.dismiss(), H = null, re = null, K = !1, ie = null, ge(), xe(null), h.style.display = "block", h.style.pointerEvents = "auto", b.style.removeProperty("display"), o.style.pointerEvents = "auto", me({
7720
7728
  status: "selecting",
7721
7729
  elapsed: 0,
7722
7730
  rect: null,
@@ -7751,7 +7759,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7751
7759
  error: null
7752
7760
  });
7753
7761
  }, Be = (e, t, n) => {
7754
- let r = G;
7762
+ let r = re;
7755
7763
  !K || !r || e.button !== 0 || (e.preventDefault(), e.stopPropagation(), ie = {
7756
7764
  kind: t,
7757
7765
  handle: n,
@@ -7761,13 +7769,13 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7761
7769
  rect: { ...r }
7762
7770
  }, h.setPointerCapture?.(e.pointerId));
7763
7771
  }, Ve = (e) => {
7764
- B.status === "selecting" && e.button === 0 && (K && G && be(G, {
7772
+ B.status === "selecting" && e.button === 0 && (K && re && be(re, {
7765
7773
  x: e.clientX,
7766
7774
  y: e.clientY
7767
- }) || (e.preventDefault(), e.stopPropagation(), K = !1, G = null, me({ rect: null }), h.style.cursor = "crosshair", re = {
7775
+ }) || (e.preventDefault(), e.stopPropagation(), K = !1, re = null, me({ rect: null }), h.style.cursor = "crosshair", ne = {
7768
7776
  x: e.clientX,
7769
7777
  y: e.clientY
7770
- }, xe(Or(re, re, {
7778
+ }, xe(Or(ne, ne, {
7771
7779
  width: i.innerWidth,
7772
7780
  height: i.innerHeight
7773
7781
  })), h.setPointerCapture?.(e.pointerId)));
@@ -7792,7 +7800,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7792
7800
  });
7793
7801
  return;
7794
7802
  }
7795
- re && xe(Or(re, {
7803
+ ne && xe(Or(ne, {
7796
7804
  x: e.clientX,
7797
7805
  y: e.clientY
7798
7806
  }, {
@@ -7802,11 +7810,11 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7802
7810
  }
7803
7811
  }, Ue = (e) => {
7804
7812
  if (ie) {
7805
- ie = null, h.hasPointerCapture?.(e.pointerId) && h.releasePointerCapture(e.pointerId), G && xe(G);
7813
+ ie = null, h.hasPointerCapture?.(e.pointerId) && h.releasePointerCapture(e.pointerId), re && xe(re);
7806
7814
  return;
7807
7815
  }
7808
- let t = re;
7809
- if (re = null, B.status !== "selecting" || !t) return;
7816
+ let t = ne;
7817
+ if (ne = null, B.status !== "selecting" || !t) return;
7810
7818
  h.hasPointerCapture?.(e.pointerId) && h.releasePointerCapture(e.pointerId);
7811
7819
  let n = Or(t, {
7812
7820
  x: e.clientX,
@@ -7816,15 +7824,15 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7816
7824
  height: i.innerHeight
7817
7825
  });
7818
7826
  if (n.width < 4 || n.height < 4) {
7819
- G = null, K = !1, me({ rect: null }), xe(null);
7827
+ re = null, K = !1, me({ rect: null }), xe(null);
7820
7828
  return;
7821
7829
  }
7822
- G = ye(n), K = !0, h.style.cursor = "default", me({ rect: G }), xe(G);
7830
+ re = ye(n), K = !0, h.style.cursor = "default", me({ rect: re }), xe(re);
7823
7831
  }, We = (e) => {
7824
- re = null, ie = null, h.hasPointerCapture?.(e.pointerId) && h.releasePointerCapture(e.pointerId), xe(G && K ? G : null);
7832
+ ne = null, ie = null, h.hasPointerCapture?.(e.pointerId) && h.releasePointerCapture(e.pointerId), xe(re && K ? re : null);
7825
7833
  }, Ge = (e) => {
7826
- if (e.key === "Enter" && B.status === "selecting" && K && G) {
7827
- e.preventDefault(), e.stopImmediatePropagation(), Ie(G).catch(() => void 0);
7834
+ if (e.key === "Enter" && B.status === "selecting" && K && re) {
7835
+ e.preventDefault(), e.stopImmediatePropagation(), Ie(re).catch(() => void 0);
7828
7836
  return;
7829
7837
  }
7830
7838
  if (e.key === "Escape") {
@@ -7839,7 +7847,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7839
7847
  let t = e.target;
7840
7848
  t instanceof Element && t.closest("[data-mesurer-recording-resize]") || Be(e, "move");
7841
7849
  });
7842
- for (let e of F) e.addEventListener("pointerdown", (t) => {
7850
+ for (let e of te) e.addEventListener("pointerdown", (t) => {
7843
7851
  Be(t, "resize", e.dataset.mesurerRecordingResize);
7844
7852
  });
7845
7853
  x.addEventListener("pointerdown", (e) => {
@@ -7848,23 +7856,23 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7848
7856
  e.stopPropagation();
7849
7857
  });
7850
7858
  let Ke = (e, t) => {
7851
- let n = G, r = Number(e.value);
7859
+ let n = re, r = Number(e.value);
7852
7860
  !n || !Number.isFinite(r) || Se({
7853
7861
  ...n,
7854
7862
  [t]: r
7855
7863
  });
7856
7864
  };
7857
- T.addEventListener("change", () => Ke(T, "width")), E.addEventListener("change", () => Ke(E, "height")), k.addEventListener("change", () => Ke(k, "left")), A.addEventListener("change", () => Ke(A, "top")), M.addEventListener("click", () => {
7858
- B.status === "selecting" && K && G && Ie(G).catch(() => void 0);
7865
+ T.addEventListener("change", () => Ke(T, "width")), E.addEventListener("change", () => Ke(E, "height")), A.addEventListener("change", () => Ke(A, "left")), j.addEventListener("change", () => Ke(j, "top")), ee.addEventListener("click", () => {
7866
+ B.status === "selecting" && K && re && Ie(re).catch(() => void 0);
7859
7867
  }), R.addEventListener("click", () => {
7860
7868
  if (B.status === "recording") {
7861
7869
  Pe().catch(() => void 0);
7862
7870
  return;
7863
7871
  }
7864
- B.status === "selecting" && I.style.display !== "none" && ze().catch(() => void 0);
7872
+ B.status === "selecting" && F.style.display !== "none" && ze().catch(() => void 0);
7865
7873
  });
7866
7874
  let qe = {
7867
- snapshot: () => Fl(B),
7875
+ snapshot: () => Il(B),
7868
7876
  subscribe(e) {
7869
7877
  return V.add(e), () => V.delete(e);
7870
7878
  },
@@ -7882,10 +7890,10 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7882
7890
  label: "Record",
7883
7891
  shortcut: "Shift+R",
7884
7892
  order: 72,
7885
- command: El,
7893
+ command: Dl,
7886
7894
  toolbarMode: "select",
7887
7895
  compactPinned: !0,
7888
- icon: Nl,
7896
+ icon: Pl,
7889
7897
  active: he,
7890
7898
  hidden: () => !p().toolEnabled,
7891
7899
  menu: {
@@ -7906,7 +7914,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7906
7914
  {
7907
7915
  id: "discard",
7908
7916
  label: "Discard clip",
7909
- disabled: () => ne === null,
7917
+ disabled: () => H === null,
7910
7918
  run: Ae
7911
7919
  }
7912
7920
  ]
@@ -7935,21 +7943,21 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7935
7943
  m({ frameRate: e ? 120 : 60 });
7936
7944
  }
7937
7945
  }]
7938
- }), t.command.register(El, async () => (await Re(), Bl(B))), t.command.register(Dl, async () => Hl(await Pe())), t.command.register(Ol, () => (Ae(), Bl(B))), t.command.register(kl, async (e) => {
7939
- let t = await Me(zl(e));
7940
- return Ul(t, r, i), Vl(t);
7941
- }), t.service.provide(Cl, qe), t.lifecycle.onDispose(() => {
7946
+ }), t.command.register(Dl, async () => (await Re(), Vl(B))), t.command.register(Ol, async () => Ul(await Pe())), t.command.register(kl, () => (Ae(), Vl(B))), t.command.register(Al, async (e) => {
7947
+ let t = await Me(Bl(e));
7948
+ return Wl(t, r, i), Hl(t);
7949
+ }), t.service.provide(wl, qe), t.lifecycle.onDispose(() => {
7942
7950
  q = !0, ++le, V.clear(), h.removeEventListener("pointerdown", Ve), h.removeEventListener("pointermove", He), h.removeEventListener("pointerup", Ue), h.removeEventListener("pointercancel", We), i.removeEventListener("keydown", Ge, !0), ce && i.clearTimeout(ce), Ne.dispose(), Te(), _e(), ke(!0), s.dispose(), a.dispose();
7943
7951
  });
7944
7952
  }
7945
- }), Gl = 144, Kl = 96, ql = 8, Jl = 4, Yl = 1800, Xl = (e, t) => {
7953
+ }), Kl = 144, ql = 96, Jl = 8, Yl = 4, Xl = 1800, Zl = 200, Ql = (e, t) => {
7946
7954
  for (let [n, r] of Object.entries(t)) e.style.setProperty(n, r);
7947
- }, Zl = (e, t) => ({
7948
- left: Math.min(Math.max(ql, e.left), Math.max(ql, t.innerWidth - Gl - ql)),
7949
- top: Math.min(Math.max(ql, e.top), Math.max(ql, t.innerHeight - Kl - ql))
7950
- }), Ql = (e, t) => {
7955
+ }, $l = (e, t) => ({
7956
+ left: Math.min(Math.max(Jl, e.left), Math.max(Jl, t.innerWidth - Kl - Jl)),
7957
+ top: Math.min(Math.max(Jl, e.top), Math.max(Jl, t.innerHeight - ql - Jl))
7958
+ }), eu = (e, t) => {
7951
7959
  let n = e.createElement("button");
7952
- return n.type = "button", n.textContent = t, Xl(n, {
7960
+ return n.type = "button", n.textContent = t, Ql(n, {
7953
7961
  height: "32px",
7954
7962
  padding: "0 12px",
7955
7963
  border: "1px solid rgb(255 255 255 / 18%)",
@@ -7961,11 +7969,11 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7961
7969
  "font-weight": "500",
7962
7970
  cursor: "pointer"
7963
7971
  }), n;
7964
- }, $l = ({ 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", eu = (e) => e !== null && (e.nodeType === 1 || e.nodeType === 11), tu = ({ 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 }) => {
7965
7973
  let i = n.closest("[data-mesurer-root='true']")?.parentNode ?? n.parentNode;
7966
- if (!eu(i)) throw Error("Screenshot preview requires a mounted Mesurer host.");
7974
+ if (!nu(i)) throw Error("Screenshot preview requires a mounted Mesurer host.");
7967
7975
  let a = e.createElement("div");
7968
- a.dataset.mesurerInspectorUi = "true", a.dataset.mesurerScreenshotInteractive = "true", Xl(a, {
7976
+ a.dataset.mesurerInspectorUi = "true", a.dataset.mesurerScreenshotInteractive = "true", Ql(a, {
7969
7977
  position: "fixed",
7970
7978
  left: "0",
7971
7979
  top: "0",
@@ -7977,12 +7985,12 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7977
7985
  "font-family": "ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif"
7978
7986
  }), i.append(a);
7979
7987
  let o = e.createElement("div");
7980
- o.dataset.mesurerScreenshotPreview = "true", o.setAttribute("role", "button"), o.setAttribute("aria-label", "Open captured screenshot"), o.tabIndex = 0, Xl(o, {
7988
+ o.dataset.mesurerScreenshotPreview = "true", o.setAttribute("role", "button"), o.setAttribute("aria-label", "Open captured screenshot"), o.tabIndex = 0, Ql(o, {
7981
7989
  position: "fixed",
7982
7990
  display: "none",
7983
7991
  "z-index": "96",
7984
- width: `${Gl}px`,
7985
- height: `${Kl}px`,
7992
+ width: `${Kl}px`,
7993
+ height: `${ql}px`,
7986
7994
  "box-sizing": "border-box",
7987
7995
  overflow: "hidden",
7988
7996
  "border-radius": "10px",
@@ -7995,7 +8003,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
7995
8003
  "touch-action": "none"
7996
8004
  });
7997
8005
  let s = e.createElement("img");
7998
- s.dataset.mesurerScreenshotPreviewImage = "true", s.alt = "Captured screenshot", s.draggable = !1, s.title = "Click to open · Right-click for browser image actions", Xl(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, {
7999
8007
  display: "block",
8000
8008
  width: "100%",
8001
8009
  height: "100%",
@@ -8003,7 +8011,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8003
8011
  "background-color": "white"
8004
8012
  }), o.append(s);
8005
8013
  let c = e.createElement("button");
8006
- c.dataset.mesurerScreenshotPreviewDismiss = "true", c.type = "button", c.setAttribute("aria-label", "Dismiss screenshot preview"), c.title = "Dismiss", Xl(c, {
8014
+ c.dataset.mesurerScreenshotPreviewDismiss = "true", c.type = "button", c.setAttribute("aria-label", "Dismiss screenshot preview"), c.title = "Dismiss", Ql(c, {
8007
8015
  position: "absolute",
8008
8016
  top: "8px",
8009
8017
  right: "8px",
@@ -8021,15 +8029,16 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8021
8029
  "font-family": "inherit",
8022
8030
  "font-size": "14px",
8023
8031
  "line-height": "1",
8024
- "z-index": "1",
8025
- cursor: "pointer"
8032
+ "z-index": "2",
8033
+ cursor: "pointer",
8034
+ "touch-action": "none"
8026
8035
  });
8027
8036
  let l = e.createElementNS("http://www.w3.org/2000/svg", "svg");
8028
8037
  l.setAttribute("viewBox", "0 0 16 16"), l.setAttribute("width", "12"), l.setAttribute("height", "12"), l.setAttribute("fill", "none"), l.setAttribute("aria-hidden", "true");
8029
8038
  let u = e.createElementNS("http://www.w3.org/2000/svg", "path");
8030
8039
  u.setAttribute("d", "m4 4 8 8M12 4l-8 8"), u.setAttribute("stroke", "currentColor"), u.setAttribute("stroke-width", "1.75"), u.setAttribute("stroke-linecap", "round"), l.append(u), c.append(l), o.append(c), a.append(o);
8031
8040
  let d = e.createElement("div");
8032
- d.dataset.mesurerScreenshotViewer = "true", d.setAttribute("role", "dialog"), d.setAttribute("aria-modal", "true"), d.setAttribute("aria-label", "Screenshot viewer"), Xl(d, {
8041
+ d.dataset.mesurerScreenshotViewer = "true", d.setAttribute("role", "dialog"), d.setAttribute("aria-modal", "true"), d.setAttribute("aria-label", "Screenshot viewer"), Ql(d, {
8033
8042
  position: "fixed",
8034
8043
  inset: "0",
8035
8044
  display: "none",
@@ -8043,7 +8052,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8043
8052
  "pointer-events": "auto"
8044
8053
  });
8045
8054
  let f = e.createElement("img");
8046
- f.dataset.mesurerScreenshotViewerImage = "true", f.alt = "Captured screenshot", Xl(f, {
8055
+ f.dataset.mesurerScreenshotViewerImage = "true", f.alt = "Captured screenshot", Ql(f, {
8047
8056
  display: "block",
8048
8057
  "max-width": "calc(100vw - 96px)",
8049
8058
  "max-height": "calc(100vh - 112px)",
@@ -8054,7 +8063,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8054
8063
  "box-shadow": "0 8px 30px rgb(0 0 0 / 28%)"
8055
8064
  }), d.append(f);
8056
8065
  let p = e.createElement("div");
8057
- p.dataset.mesurerScreenshotViewerControls = "true", Xl(p, {
8066
+ p.dataset.mesurerScreenshotViewerControls = "true", Ql(p, {
8058
8067
  position: "fixed",
8059
8068
  top: "16px",
8060
8069
  right: "16px",
@@ -8062,14 +8071,14 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8062
8071
  gap: "8px",
8063
8072
  "pointer-events": "auto"
8064
8073
  });
8065
- let m = Ql(e, "Copy");
8074
+ let m = eu(e, "Copy");
8066
8075
  m.dataset.mesurerScreenshotViewerCopy = "true", m.setAttribute("aria-label", "Copy screenshot");
8067
- let h = Ql(e, "Save");
8076
+ let h = eu(e, "Save");
8068
8077
  h.dataset.mesurerScreenshotViewerSave = "true", h.setAttribute("aria-label", "Save screenshot");
8069
- let g = Ql(e, "Close");
8078
+ let g = eu(e, "Close");
8070
8079
  g.dataset.mesurerScreenshotViewerClose = "true", g.setAttribute("aria-label", "Close screenshot viewer"), p.append(m, h, g), d.append(p), a.append(d);
8071
8080
  let _ = e.createElement("div");
8072
- _.dataset.mesurerScreenshotToast = "true", _.setAttribute("role", "status"), Xl(_, {
8081
+ _.dataset.mesurerScreenshotToast = "true", _.setAttribute("role", "status"), Ql(_, {
8073
8082
  position: "fixed",
8074
8083
  left: "50%",
8075
8084
  bottom: "20px",
@@ -8084,45 +8093,64 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8084
8093
  "font-weight": "500",
8085
8094
  "pointer-events": "none"
8086
8095
  }), a.append(_);
8087
- let v = null, y = null, b = null, x = null, S = 0, C = 0, w = !1, T = () => {
8096
+ let v = null, y = null, b = null, x = null, S = 0, C = 0, w = null, T = !1, E = () => {
8088
8097
  S && t.clearTimeout(S), S = 0;
8089
- }, E = () => {
8098
+ }, D = () => {
8090
8099
  C && t.clearTimeout(C), C = 0;
8091
- }, D = (e, n = !1) => {
8092
- 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(() => {
8093
8102
  C = 0, _.style.display = "none";
8094
- }, Yl);
8095
- }, O = () => {
8103
+ }, Xl);
8104
+ }, k = () => {
8096
8105
  d.style.display = "none";
8097
- }, ee = () => {
8106
+ }, A = () => {
8098
8107
  y && globalThis.URL.revokeObjectURL(y), y = null, v = null, s.removeAttribute("src"), f.removeAttribute("src");
8099
- }, k = () => {
8100
- T(), O(), o.style.display = "none", ee();
8101
- }, A = () => Zl({
8102
- left: t.innerWidth - Gl - ql,
8103
- top: t.innerHeight - Kl - ql
8104
- }, t), j = (e) => {
8105
- let n = Zl(e, t);
8106
- b = n, o.style.left = `${n.left}px`, o.style.top = `${n.top}px`;
8108
+ }, j = () => {
8109
+ E(), k(), w &&= (w.cancel(), null), o.style.display = "none", o.style.opacity = "1", o.style.transform = "none", o.style.removeProperty("will-change"), o.style.pointerEvents = "auto", A();
8107
8110
  }, M = () => {
8108
- !v || !y || (T(), d.style.display = "flex", g.focus());
8109
- }, N = async () => {
8111
+ if (!v || o.style.display === "none" || w) return;
8112
+ E(), k();
8113
+ let e = o.getBoundingClientRect(), n = Math.max(152, t.innerWidth - e.left + Jl);
8114
+ o.style.pointerEvents = "none", o.style.willChange = "transform, opacity";
8115
+ let r = o.animate([{
8116
+ transform: "translateX(0) scale(1)",
8117
+ opacity: 1
8118
+ }, {
8119
+ transform: `translateX(${n}px) scale(0.92)`,
8120
+ opacity: 0
8121
+ }], {
8122
+ duration: Zl,
8123
+ easing: "ease",
8124
+ fill: "forwards"
8125
+ });
8126
+ w = r, r.finished.catch(() => void 0).then(() => {
8127
+ w === r && (r.cancel(), w = null, j());
8128
+ });
8129
+ }, ee = () => $l({
8130
+ left: t.innerWidth - Kl - Jl,
8131
+ top: t.innerHeight - ql - Jl
8132
+ }, t), N = (e) => {
8133
+ let n = $l(e, t);
8134
+ b = n, o.style.left = `${n.left}px`, o.style.top = `${n.top}px`;
8135
+ }, P = () => {
8136
+ !v || !y || (E(), d.style.display = "flex", g.focus());
8137
+ }, te = async () => {
8110
8138
  let e = v;
8111
8139
  if (e) try {
8112
- await Ar(Promise.resolve(e), t), D("Copied screenshot");
8140
+ await Ar(Promise.resolve(e), t), O("Copied screenshot");
8113
8141
  } catch {
8114
- D("Could not copy screenshot", !0);
8142
+ O("Could not copy screenshot", !0);
8115
8143
  }
8116
- }, P = () => {
8144
+ }, F = () => {
8117
8145
  let n = v;
8118
8146
  if (n) try {
8119
- Mr(n, jr(), e, t), D("Saved screenshot");
8147
+ Mr(n, jr(), e, t), O("Saved screenshot");
8120
8148
  } catch {
8121
- D("Could not save screenshot", !0);
8149
+ O("Could not save screenshot", !0);
8122
8150
  }
8123
- }, F = (e, t, n) => {
8151
+ }, I = (e, t, n) => {
8124
8152
  if (!v) return !1;
8125
- T();
8153
+ E();
8126
8154
  let r = o.getBoundingClientRect();
8127
8155
  return x = {
8128
8156
  pointerId: n,
@@ -8132,73 +8160,73 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8132
8160
  top: r.top,
8133
8161
  moved: !1
8134
8162
  }, o.style.cursor = "grabbing", !0;
8135
- }, I = (e, t) => {
8163
+ }, L = (e, t) => {
8136
8164
  let n = x;
8137
8165
  if (!n) return;
8138
8166
  let r = e - n.startX, i = t - n.startY;
8139
- !n.moved && Math.hypot(r, i) >= Jl && (n.moved = !0), n.moved && j({
8167
+ !n.moved && Math.hypot(r, i) >= Yl && (n.moved = !0), n.moved && N({
8140
8168
  left: n.left + r,
8141
8169
  top: n.top + i
8142
8170
  });
8143
- }, L = () => {
8171
+ }, R = () => {
8144
8172
  let e = x;
8145
- e && (x = null, o.style.cursor = "grab", e.moved || M());
8146
- }, te = () => {
8173
+ e && (x = null, o.style.cursor = "grab", e.moved || P());
8174
+ }, z = () => {
8147
8175
  x && (x = null, o.style.cursor = "grab");
8148
- }, R = (e) => {
8149
- e.button !== 0 || !F(e.clientX, e.clientY, null) || e.preventDefault();
8150
- }, z = (e) => {
8151
- x?.pointerId === null && I(e.clientX, e.clientY);
8152
8176
  }, B = (e) => {
8153
- e.button === 0 && x?.pointerId === null && L();
8177
+ e.button !== 0 || !I(e.clientX, e.clientY, null) || e.preventDefault();
8154
8178
  }, V = (e) => {
8155
- e.pointerType !== "mouse" && e.button === 0 && F(e.clientX, e.clientY, e.pointerId) && (o.setPointerCapture?.(e.pointerId), e.preventDefault());
8156
- }, ne = (e) => {
8157
- let t = x?.pointerId;
8158
- t != null && t === e.pointerId && I(e.clientX, e.clientY);
8179
+ x?.pointerId === null && L(e.clientX, e.clientY);
8159
8180
  }, H = (e) => {
8160
- let t = x?.pointerId;
8161
- t != null && t === e.pointerId && (o.hasPointerCapture?.(e.pointerId) && o.releasePointerCapture(e.pointerId), L());
8181
+ e.button === 0 && x?.pointerId === null && R();
8162
8182
  }, U = (e) => {
8163
- let t = x?.pointerId;
8164
- t != null && t === e.pointerId && (o.hasPointerCapture?.(e.pointerId) && o.releasePointerCapture(e.pointerId), te());
8183
+ e.pointerType !== "mouse" && e.button === 0 && I(e.clientX, e.clientY, e.pointerId) && (o.setPointerCapture?.(e.pointerId), e.preventDefault());
8165
8184
  }, W = (e) => {
8166
- (e.key === "Enter" || e.key === " ") && (e.preventDefault(), M());
8167
- }, re = (e) => {
8168
- e.target !== s && e.preventDefault();
8185
+ let t = x?.pointerId;
8186
+ t != null && t === e.pointerId && L(e.clientX, e.clientY);
8169
8187
  }, G = (e) => {
8170
- e.target === d && O();
8188
+ let t = x?.pointerId;
8189
+ t != null && t === e.pointerId && (o.hasPointerCapture?.(e.pointerId) && o.releasePointerCapture(e.pointerId), R());
8190
+ }, ne = (e) => {
8191
+ let t = x?.pointerId;
8192
+ t != null && t === e.pointerId && (o.hasPointerCapture?.(e.pointerId) && o.releasePointerCapture(e.pointerId), z());
8193
+ }, re = (e) => {
8194
+ (e.key === "Enter" || e.key === " ") && (e.preventDefault(), P());
8171
8195
  }, K = (e) => {
8172
- e.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());
8173
8201
  };
8174
8202
  return c.addEventListener("pointerdown", (e) => e.stopPropagation()), c.addEventListener("mousedown", (e) => e.stopPropagation()), c.addEventListener("click", (e) => {
8175
- e.stopPropagation(), k();
8176
- }), o.addEventListener("mousedown", R), o.addEventListener("pointerdown", V), o.addEventListener("keydown", W), o.addEventListener("contextmenu", re), d.addEventListener("click", G), m.addEventListener("click", () => {
8177
- N();
8178
- }), h.addEventListener("click", P), g.addEventListener("click", O), t.addEventListener("mousemove", z, !0), t.addEventListener("mouseup", B, !0), t.addEventListener("pointermove", ne, !0), t.addEventListener("pointerup", H, !0), t.addEventListener("pointercancel", U, !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), {
8179
8207
  show(e, n) {
8180
- if (w) return;
8181
- 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;
8182
8210
  let i = globalThis.URL.createObjectURL(e);
8183
- y = i, s.src = i, f.src = i, o.style.display = "block", j(b ?? A()), D($l(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));
8184
8212
  },
8185
- dismiss: k,
8213
+ dismiss: j,
8186
8214
  dispose() {
8187
- w || (w = !0, T(), E(), k(), t.removeEventListener("mousemove", z, !0), t.removeEventListener("mouseup", B, !0), t.removeEventListener("pointermove", ne, !0), t.removeEventListener("pointerup", H, !0), t.removeEventListener("pointercancel", U, !0), t.removeEventListener("keydown", K, !0), o.removeEventListener("mousedown", R), o.removeEventListener("pointerdown", V), o.removeEventListener("keydown", W), o.removeEventListener("contextmenu", re), d.removeEventListener("click", G), 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());
8188
8216
  }
8189
8217
  };
8190
- }, nu = "mesurer.screenshot", ru = "screenshot", iu = "mesurer.screenshot.settings", au = "mesurer.screenshot.active", ou = "runtime:solid", su = "screenshot.toggle", cu = 2500, lu = 0, uu = [
8218
+ }, iu = "mesurer.screenshot", au = "screenshot", ou = "mesurer.screenshot.settings", su = "mesurer.screenshot.active", cu = "runtime:solid", lu = "screenshot.toggle", uu = 2500, du = 0, fu = [
8191
8219
  "[data-mesurer-measurement='true']",
8192
8220
  "[data-mesurer-selected-measurement='true']",
8193
8221
  "[data-mesurer-selection-spacing-target='true']",
8194
8222
  "[data-mesurer-guide='true']",
8195
8223
  "[data-mesurer-distance='true']"
8196
- ].join(","), du = `${uu},[data-mesurer-rulers='true']`, fu = {
8224
+ ].join(","), pu = `${fu},[data-mesurer-rulers='true']`, mu = {
8197
8225
  viewBox: "0 0 256 256",
8198
8226
  paths: ["m 96,50 a 6.0006,6.0006 0 0 0 -4.992188,2.671875 L 76.789062,74 H 40 C 27.920803,74 18,83.920803 18,96 v 96 c 0,12.0792 9.920803,22 22,22 h 176 c 12.0792,0 22,-9.9208 22,-22 V 96 C 238,83.920803 228.0792,74 216,74 H 179.21094 L 164.99219,52.671875 A 6.0006,6.0006 0 0 0 160,50 Z m 3.210937,12 h 57.578123 l 14.21875,21.328125 A 6.0006,6.0006 0 0 0 176,86 h 40 c 5.59392,0 10,4.406085 10,10 v 96 c 0,5.59392 -4.40608,10 -10,10 H 40 c -5.593915,0 -10,-4.40608 -10,-10 V 96 c 0,-5.593915 4.406085,-10 10,-10 h 40 a 6.0006,6.0006 0 0 0 4.992187,-2.671875 z", "m 128,94 c -23.12489,0 -42,18.87511 -42,42 0,23.12489 18.87511,42 42,42 23.12489,0 42,-18.87511 42,-42 0,-23.12489 -18.87511,-42 -42,-42 z m 0,12 c 16.63961,0 30,13.36039 30,30 0,16.63961 -13.36039,30 -30,30 -16.63961,0 -30,-13.36039 -30,-30 0,-16.63961 13.36039,-30 30,-30 z"]
8199
- }, pu = (e, t) => {
8227
+ }, hu = (e, t) => {
8200
8228
  for (let [n, r] of Object.entries(t)) e.style.setProperty(n, r);
8201
- }, mu = (e, t) => {
8229
+ }, gu = (e, t) => {
8202
8230
  for (let n of [
8203
8231
  "left",
8204
8232
  "top",
@@ -8210,63 +8238,63 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8210
8238
  let r = t[n];
8211
8239
  r === void 0 ? e.style.removeProperty(n) : e.style.setProperty(n, `${r}px`);
8212
8240
  }
8213
- }, hu = (e) => {
8214
- let t = e(iu);
8241
+ }, _u = (e) => {
8242
+ let t = e(ou);
8215
8243
  return {
8216
8244
  toolEnabled: t?.toolEnabled ?? !0,
8217
8245
  copy: t?.copy ?? !0,
8218
8246
  download: t?.download ?? !1,
8219
8247
  includeMeasurements: t?.includeMeasurements ?? !1
8220
8248
  };
8221
- }, gu = (e) => ({
8249
+ }, vu = (e) => ({
8222
8250
  value: e.style.getPropertyValue("display"),
8223
8251
  priority: e.style.getPropertyPriority("display")
8224
- }), _u = (e, t) => {
8252
+ }), yu = (e, t) => {
8225
8253
  t.value || t.priority ? e.style.setProperty("display", t.value, t.priority) : e.style.removeProperty("display");
8226
- }, vu = (e, t) => {
8254
+ }, bu = (e, t) => {
8227
8255
  let n = e;
8228
8256
  for (; n.parentElement && n.parentElement !== t;) n = n.parentElement;
8229
8257
  return n.parentElement === t ? n : null;
8230
- }, yu = (e) => {
8258
+ }, xu = (e) => {
8231
8259
  let t = e.querySelector("[data-mesurer-root='true']");
8232
8260
  if (!t) return () => void 0;
8233
8261
  let n = /* @__PURE__ */ new Set();
8234
8262
  for (let e of t.querySelectorAll("[data-mesurer-rulers='true']")) {
8235
- let r = vu(e, t);
8263
+ let r = bu(e, t);
8236
8264
  r && n.add(r);
8237
8265
  }
8238
- for (let e of t.querySelectorAll(uu)) {
8239
- let r = vu(e, t);
8266
+ for (let e of t.querySelectorAll(fu)) {
8267
+ let r = bu(e, t);
8240
8268
  r && n.add(r);
8241
8269
  }
8242
8270
  let r = [];
8243
8271
  for (let e of n) e.dataset.mesurerInspectorUi !== "true" && (r.push({
8244
8272
  element: e,
8245
- display: gu(e)
8273
+ display: vu(e)
8246
8274
  }), e.style.setProperty("display", "none", "important"));
8247
8275
  return () => {
8248
- for (let e of r) _u(e.element, e.display);
8276
+ for (let e of r) yu(e.element, e.display);
8249
8277
  };
8250
- }, bu = (e) => Array.from(e.querySelectorAll(du)).filter((e) => e.dataset.mesurerInspectorUi === "true").map((e) => ({
8278
+ }, Su = (e) => Array.from(e.querySelectorAll(pu)).filter((e) => e.dataset.mesurerInspectorUi === "true").map((e) => ({
8251
8279
  element: e,
8252
- display: gu(e)
8253
- })), xu = (e) => {
8254
- for (let t of e) t.element.isConnected && _u(t.element, t.display);
8255
- }, Su = (e = {}) => hr({
8256
- id: nu,
8280
+ display: vu(e)
8281
+ })), Cu = (e) => {
8282
+ for (let t of e) t.element.isConnected && yu(t.element, t.display);
8283
+ }, wu = (e = {}) => hr({
8284
+ id: iu,
8257
8285
  version: "0.1.0",
8258
- requires: [ou],
8286
+ requires: [cu],
8259
8287
  provides: [
8260
8288
  "tool:screenshot",
8261
8289
  "capture:screenshot",
8262
8290
  "settings:screenshot"
8263
8291
  ],
8264
8292
  setup(t) {
8265
- let n = t.service.get(ou);
8293
+ let n = t.service.get(cu);
8266
8294
  if (!n) throw Error("Screenshot plugin requires the Solid renderer runtime.");
8267
- let { ownerDocument: r, ownerWindow: i } = n, a = n.createWorkspaceRuntime(), o = n.createInspectorMount(), s = e.capture ?? e.captureVisibleTab, c = s ?? Zr, l = e.previewDurationMs ?? lu;
8295
+ let { ownerDocument: r, ownerWindow: i } = n, a = n.createWorkspaceRuntime(), o = n.createInspectorMount(), s = e.capture ?? e.captureVisibleTab, c = s ?? Zr, l = e.previewDurationMs ?? du;
8268
8296
  t.state.register({
8269
- id: iu,
8297
+ id: ou,
8270
8298
  initial: {
8271
8299
  toolEnabled: e.toolEnabled ?? !0,
8272
8300
  copy: e.copy ?? !0,
@@ -8275,11 +8303,11 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8275
8303
  },
8276
8304
  persist: !0
8277
8305
  }), t.state.register({
8278
- id: au,
8306
+ id: su,
8279
8307
  initial: !1
8280
8308
  });
8281
8309
  let u = o.element;
8282
- u.dataset.mesurerScreenshot = "true", pu(u, {
8310
+ u.dataset.mesurerScreenshot = "true", hu(u, {
8283
8311
  position: "fixed",
8284
8312
  inset: "0",
8285
8313
  "z-index": "85",
@@ -8287,7 +8315,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8287
8315
  "font-family": "ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif"
8288
8316
  });
8289
8317
  let d = r.createElement("div");
8290
- d.dataset.mesurerScreenshotSelect = "true", d.setAttribute("role", "application"), d.setAttribute("aria-label", "Screenshot selection"), pu(d, {
8318
+ d.dataset.mesurerScreenshotSelect = "true", d.setAttribute("role", "application"), d.setAttribute("aria-label", "Screenshot selection"), hu(d, {
8291
8319
  position: "fixed",
8292
8320
  inset: "0",
8293
8321
  display: "none",
@@ -8299,13 +8327,13 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8299
8327
  }), u.append(d);
8300
8328
  let f = Array.from({ length: 4 }, () => {
8301
8329
  let e = r.createElement("div");
8302
- return pu(e, {
8330
+ return hu(e, {
8303
8331
  position: "fixed",
8304
8332
  "background-color": "rgb(0 0 0 / 40%)",
8305
8333
  "pointer-events": "none"
8306
8334
  }), d.append(e), e;
8307
8335
  }), p = r.createElement("div");
8308
- pu(p, {
8336
+ hu(p, {
8309
8337
  position: "fixed",
8310
8338
  display: "none",
8311
8339
  border: "1px solid #0d99ff",
@@ -8313,7 +8341,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8313
8341
  "pointer-events": "none"
8314
8342
  }), d.append(p);
8315
8343
  let m = r.createElement("div");
8316
- pu(m, {
8344
+ hu(m, {
8317
8345
  position: "fixed",
8318
8346
  display: "none",
8319
8347
  "z-index": "86",
@@ -8327,7 +8355,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8327
8355
  "pointer-events": "none"
8328
8356
  }), d.append(m);
8329
8357
  let h = r.createElement("div");
8330
- h.textContent = "Drag to select · Esc to cancel", pu(h, {
8358
+ h.textContent = "Drag to select · Esc to cancel", hu(h, {
8331
8359
  position: "fixed",
8332
8360
  left: "50%",
8333
8361
  bottom: "16px",
@@ -8340,7 +8368,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8340
8368
  "pointer-events": "none"
8341
8369
  }), d.append(h);
8342
8370
  let g = r.createElement("div");
8343
- g.dataset.mesurerScreenshotError = "true", g.setAttribute("role", "status"), g.textContent = "Could not save screenshot", pu(g, {
8371
+ g.dataset.mesurerScreenshotError = "true", g.setAttribute("role", "status"), g.textContent = "Could not save screenshot", hu(g, {
8344
8372
  position: "fixed",
8345
8373
  display: "none",
8346
8374
  "z-index": "97",
@@ -8351,8 +8379,8 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8351
8379
  "font-size": "11px",
8352
8380
  "pointer-events": "none"
8353
8381
  }), u.append(g);
8354
- let _ = null, v = null, y = 0, b = 0, x = !1, S = !1, C = !1, w = () => t.state.get("mesurer.screenshot.active") ?? !1, T = () => hu(t.state.get), E = (e) => {
8355
- t.state.update(iu, (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) => {
8356
8384
  let n = { ...t };
8357
8385
  return e.toolEnabled !== void 0 && (n.toolEnabled = e.toolEnabled), e.copy !== void 0 && (n.copy = e.copy), e.download !== void 0 && (n.download = e.download), e.includeMeasurements !== void 0 && (n.includeMeasurements = e.includeMeasurements), n;
8358
8386
  });
@@ -8368,20 +8396,20 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8368
8396
  priority: e.style.getPropertyPriority("visibility")
8369
8397
  }
8370
8398
  }, e.style.setProperty("visibility", "hidden", "important"));
8371
- }, ee = () => {
8399
+ }, k = () => {
8372
8400
  if (!v) return;
8373
8401
  let { element: e, visibility: t } = v;
8374
8402
  v = null, t.value || t.priority ? e.style.setProperty("visibility", t.value, t.priority) : e.style.removeProperty("visibility");
8375
- }, k = (e) => {
8403
+ }, A = (e) => {
8376
8404
  let t = i.innerWidth, n = i.innerHeight;
8377
8405
  if (!e || e.width <= 0 || e.height <= 0) {
8378
- mu(f[0], {
8406
+ gu(f[0], {
8379
8407
  left: 0,
8380
8408
  top: 0,
8381
8409
  width: t,
8382
8410
  height: n
8383
8411
  });
8384
- for (let e of f.slice(1)) mu(e, {
8412
+ for (let e of f.slice(1)) gu(e, {
8385
8413
  left: 0,
8386
8414
  top: 0,
8387
8415
  width: 0,
@@ -8390,52 +8418,52 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8390
8418
  p.style.display = "none", m.style.display = "none";
8391
8419
  return;
8392
8420
  }
8393
- mu(f[0], {
8421
+ gu(f[0], {
8394
8422
  left: 0,
8395
8423
  top: 0,
8396
8424
  width: t,
8397
8425
  height: e.top
8398
- }), mu(f[1], {
8426
+ }), gu(f[1], {
8399
8427
  left: 0,
8400
8428
  top: e.top,
8401
8429
  width: e.left,
8402
8430
  height: e.height
8403
- }), mu(f[2], {
8431
+ }), gu(f[2], {
8404
8432
  left: e.left + e.width,
8405
8433
  top: e.top,
8406
8434
  width: Math.max(0, t - e.left - e.width),
8407
8435
  height: e.height
8408
- }), mu(f[3], {
8436
+ }), gu(f[3], {
8409
8437
  left: 0,
8410
8438
  top: e.top + e.height,
8411
8439
  width: t,
8412
8440
  height: Math.max(0, n - e.top - e.height)
8413
- }), p.style.display = "block", mu(p, e), m.style.display = "block", m.textContent = `${Math.round(e.width)} × ${Math.round(e.height)}`, mu(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, {
8414
8442
  left: e.left + e.width / 2,
8415
8443
  top: Math.min(n - 22, e.top + e.height + 6)
8416
8444
  });
8417
- }, A = () => n.portalTarget.querySelector("[data-mesurer-tool-id='screenshot']")?.getBoundingClientRect() ?? null, j = tu({
8445
+ }, j = () => n.portalTarget.querySelector("[data-mesurer-tool-id='screenshot']")?.getBoundingClientRect() ?? null, M = ru({
8418
8446
  ownerDocument: r,
8419
8447
  ownerWindow: i,
8420
8448
  root: u,
8421
8449
  previewDurationMs: l
8422
- }), M = (e) => {
8423
- 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);
8424
8452
  e.style.left = `${a}px`, e.style.top = `${s}px`;
8425
8453
  }, N = () => {
8426
- y && i.clearTimeout(y), g.style.display = "block", M(g), y = i.setTimeout(() => {
8454
+ y && i.clearTimeout(y), g.style.display = "block", ee(g), y = i.setTimeout(() => {
8427
8455
  y = 0, g.style.display = "none";
8428
- }, cu);
8456
+ }, uu);
8429
8457
  }, P = () => {
8430
- _ = null, k(null), d.style.visibility = "", d.style.display = "none", u.style.pointerEvents = "none", D(!1), ee();
8431
- }, F = () => {
8458
+ _ = null, A(null), d.style.visibility = "", d.style.display = "none", u.style.pointerEvents = "none", D(!1), k();
8459
+ }, te = () => {
8432
8460
  b += 1, P(), Qr(i);
8433
- }, I = async (e) => {
8461
+ }, F = async (e) => {
8434
8462
  if (x) throw Error("A screenshot capture is already running.");
8435
8463
  if (e.width < 4 || e.height < 4) throw Error("Screenshot selection must be at least 4px by 4px.");
8436
8464
  x = !0;
8437
- let o = ++b, s = T(), l = s.includeMeasurements ? bu(r) : [], u = s.includeMeasurements ? () => void 0 : yu(n.portalTarget);
8438
- a.prepareCapture(), s.includeMeasurements && xu(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);
8439
8467
  try {
8440
8468
  d.style.visibility = "hidden", await Nr(i);
8441
8469
  let n = await kr(await c({
@@ -8452,7 +8480,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8452
8480
  Mr(n, jr(), r, i), l = !0;
8453
8481
  }) : Promise.resolve(), p = await Promise.allSettled([u, f]), m = s.copy && p[0]?.status === "rejected", h = s.download && p[1]?.status === "rejected";
8454
8482
  if (b !== o) throw Error("Screenshot capture was cancelled.");
8455
- return j.show(n, {
8483
+ return M.show(n, {
8456
8484
  copied: a,
8457
8485
  downloaded: l,
8458
8486
  copyFailed: m,
@@ -8472,17 +8500,17 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8472
8500
  } finally {
8473
8501
  d.style.visibility = "", u(), a.finishCapture(), x = !1;
8474
8502
  }
8475
- }, L = async () => {
8503
+ }, I = async () => {
8476
8504
  if (T().toolEnabled) {
8477
8505
  if (w()) {
8478
- F();
8506
+ te();
8479
8507
  return;
8480
8508
  }
8481
8509
  if (!S) {
8482
- S = !0, j.dismiss();
8510
+ S = !0, M.dismiss();
8483
8511
  try {
8484
8512
  if (s || await Xr(r, i), C) return;
8485
- 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);
8486
8514
  } catch (e) {
8487
8515
  throw e instanceof Error && e.name === "AbortError" || N(), e;
8488
8516
  } finally {
@@ -8490,16 +8518,16 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8490
8518
  }
8491
8519
  }
8492
8520
  }
8493
- }, te = (e) => {
8521
+ }, L = (e) => {
8494
8522
  !w() || e.button !== 0 || (e.preventDefault(), e.stopPropagation(), _ = {
8495
8523
  x: e.clientX,
8496
8524
  y: e.clientY
8497
- }, k(Or(_, _, {
8525
+ }, A(Or(_, _, {
8498
8526
  width: i.innerWidth,
8499
8527
  height: i.innerHeight
8500
8528
  })), d.setPointerCapture?.(e.pointerId));
8501
8529
  }, R = (e) => {
8502
- !w() || !_ || k(Or(_, {
8530
+ !w() || !_ || A(Or(_, {
8503
8531
  x: e.clientX,
8504
8532
  y: e.clientY
8505
8533
  }, {
@@ -8517,36 +8545,36 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8517
8545
  width: i.innerWidth,
8518
8546
  height: i.innerHeight
8519
8547
  });
8520
- if (k(n), n.width < 4 || n.height < 4) {
8521
- k(null);
8548
+ if (A(n), n.width < 4 || n.height < 4) {
8549
+ A(null);
8522
8550
  return;
8523
8551
  }
8524
- I(n).catch(() => void 0).finally(() => {
8552
+ F(n).catch(() => void 0).finally(() => {
8525
8553
  w() && P();
8526
8554
  });
8527
8555
  }, B = (e) => {
8528
- _ = null, d.hasPointerCapture?.(e.pointerId) && d.releasePointerCapture(e.pointerId), k(null);
8556
+ _ = null, d.hasPointerCapture?.(e.pointerId) && d.releasePointerCapture(e.pointerId), A(null);
8529
8557
  }, V = (e) => {
8530
- e.key !== "Escape" || !w() || (e.preventDefault(), e.stopImmediatePropagation(), F());
8558
+ e.key !== "Escape" || !w() || (e.preventDefault(), e.stopImmediatePropagation(), te());
8531
8559
  };
8532
- d.addEventListener("pointerdown", te), d.addEventListener("pointermove", R), d.addEventListener("pointerup", z), d.addEventListener("pointercancel", B), i.addEventListener("keydown", V, !0);
8533
- let ne = {
8560
+ d.addEventListener("pointerdown", L), d.addEventListener("pointermove", R), d.addEventListener("pointerup", z), d.addEventListener("pointercancel", B), i.addEventListener("keydown", V, !0);
8561
+ let H = {
8534
8562
  active: w,
8535
8563
  settings: T,
8536
8564
  setSettings: E,
8537
- start: L,
8538
- cancel: F,
8539
- capture: I
8565
+ start: I,
8566
+ cancel: te,
8567
+ capture: F
8540
8568
  };
8541
8569
  t.tool.register({
8542
8570
  id: "screenshot",
8543
8571
  label: "Screenshot",
8544
8572
  shortcut: "Shift+S",
8545
8573
  order: 70,
8546
- command: su,
8574
+ command: lu,
8547
8575
  toolbarMode: "select",
8548
8576
  compactPinned: !0,
8549
- icon: fu,
8577
+ icon: mu,
8550
8578
  active: w,
8551
8579
  hidden: () => !T().toolEnabled,
8552
8580
  menu: {
@@ -8584,7 +8612,7 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8584
8612
  description: "Show the camera tool in the toolbar.",
8585
8613
  value: () => T().toolEnabled,
8586
8614
  set: (e) => {
8587
- E({ toolEnabled: e }), !e && w() && F();
8615
+ E({ toolEnabled: e }), !e && w() && te();
8588
8616
  }
8589
8617
  },
8590
8618
  {
@@ -8612,14 +8640,14 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8612
8640
  set: (e) => E({ includeMeasurements: e })
8613
8641
  }
8614
8642
  ]
8615
- }), t.command.register(su, L), t.service.provide(ru, ne), t.lifecycle.onDispose(() => {
8616
- C = !0, b += 1, d.removeEventListener("pointerdown", te), 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();
8617
8645
  });
8618
8646
  }
8619
- }), Cu = "0.2.1-beta.11", wu = ro, Tu = eo, Eu = to, Du = io, Ou = no, ku = () => ({
8647
+ }), Tu = "0.2.1-beta.13", Eu = ro, Du = eo, Ou = to, ku = io, Au = no, ju = () => ({
8620
8648
  ...Zo(),
8621
- version: Cu
8622
- }), Au = ku, ju = wu, Mu = Tu, Nu = Eu, Pu = Du, Fu = Ou, Iu = (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, Lu = (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) => {
8623
8651
  if (!e.length) return null;
8624
8652
  let t = Math.min(...e.map((e) => e.left)), n = Math.min(...e.map((e) => e.top)), r = Math.max(...e.map((e) => e.left + e.width)), i = Math.max(...e.map((e) => e.top + e.height));
8625
8653
  return {
@@ -8628,43 +8656,43 @@ var Zs = "mesurer.layout-guides", Qs = "layout-guides:v1", $s = "mesurer.layout-
8628
8656
  width: r - t,
8629
8657
  height: i - n
8630
8658
  };
8631
- }, Ru = (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), zu = (e) => [...e.measurements, ...e.activeMeasurement && !e.measurements.some((t) => t.id === e.activeMeasurement?.id) ? [e.activeMeasurement] : []];
8632
- function Bu(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) {
8633
8661
  let { workspace: t, scope: n, guideTolerance: r } = e;
8634
8662
  if (n.kind === "workspace") return {
8635
8663
  guides: t.guides.map((e) => ({ ...e })),
8636
- measurements: zu(t),
8664
+ measurements: Vu(t),
8637
8665
  distances: [...t.distances]
8638
8666
  };
8639
- let i = new Set(n.elements), a = (e) => e != null && i.has(e), o = (e) => n.regions.some((t) => Iu(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));
8640
8668
  return {
8641
- guides: t.guides.filter((e) => Ru(e, n.regions, r)).map((e) => ({ ...e })),
8642
- measurements: zu(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)),
8643
8671
  distances: t.distances.filter((e) => a(e.elementRefA) || a(e.elementRefB) || o(e.rectA) || o(e.rectB))
8644
8672
  };
8645
8673
  }
8646
8674
  //#endregion
8647
8675
  //#region ../mesurer-core/dist/domain.js
8648
- var Vu = {
8676
+ var Uu = {
8649
8677
  opacity: 1,
8650
8678
  width: 1,
8651
8679
  pattern: "solid",
8652
8680
  dashLength: 6,
8653
8681
  gap: 4
8654
- }, Hu = {
8682
+ }, Wu = {
8655
8683
  opacity: 1,
8656
8684
  edgeReveal: !1
8657
8685
  };
8658
- ({ ...Vu }), { ...Hu };
8686
+ ({ ...Uu }), { ...Wu };
8659
8687
  //#endregion
8660
8688
  //#region ../mesurer-dom/dist/index.js
8661
- var Uu = (e) => Number.parseFloat(e) || 0, Wu = 0, Gu = (e, t) => {
8689
+ var Gu = (e) => Number.parseFloat(e) || 0, Ku = 0, qu = (e, t) => {
8662
8690
  let n = t.CSS;
8663
8691
  return n?.escape ? n.escape(e) : e.replace(/[^a-zA-Z0-9_-]/g, (e) => `\\${e}`);
8664
8692
  };
8665
- function Ku(e) {
8693
+ function Ju(e) {
8666
8694
  let t = e.ownerDocument.defaultView ?? window;
8667
- if (e.id) return `#${Gu(e.id, t)}`;
8695
+ if (e.id) return `#${qu(e.id, t)}`;
8668
8696
  let n = e.getAttribute("data-testid");
8669
8697
  if (n) return `[data-testid=${JSON.stringify(n)}]`;
8670
8698
  let r = [], i = e;
@@ -8678,17 +8706,17 @@ function Ku(e) {
8678
8706
  }
8679
8707
  return r.join(" > ");
8680
8708
  }
8681
- function qu(e, t, n = `dom-inspection-${++Wu}`) {
8709
+ function Yu(e, t, n = `dom-inspection-${++Ku}`) {
8682
8710
  let r = e.getBoundingClientRect(), i = t.getComputedStyle(e), a = {
8683
- top: Uu(i.paddingTop),
8684
- right: Uu(i.paddingRight),
8685
- bottom: Uu(i.paddingBottom),
8686
- left: Uu(i.paddingLeft)
8711
+ top: Gu(i.paddingTop),
8712
+ right: Gu(i.paddingRight),
8713
+ bottom: Gu(i.paddingBottom),
8714
+ left: Gu(i.paddingLeft)
8687
8715
  }, o = {
8688
- top: Uu(i.marginTop),
8689
- right: Uu(i.marginRight),
8690
- bottom: Uu(i.marginBottom),
8691
- left: Uu(i.marginLeft)
8716
+ top: Gu(i.marginTop),
8717
+ right: Gu(i.marginRight),
8718
+ bottom: Gu(i.marginBottom),
8719
+ left: Gu(i.marginLeft)
8692
8720
  }, s = {
8693
8721
  left: r.left + a.left,
8694
8722
  top: r.top + a.top,
@@ -8716,8 +8744,8 @@ function qu(e, t, n = `dom-inspection-${++Wu}`) {
8716
8744
  elementRef: e
8717
8745
  };
8718
8746
  }
8719
- function Ju(e) {
8720
- let t = e.ownerDocument.defaultView ?? window, n = t.getComputedStyle(e), r = e instanceof t.HTMLElement ? e : null, i = e.getBoundingClientRect(), a = r ? qu(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) => {
8721
8749
  let t = Number.parseFloat(e);
8722
8750
  return Number.isFinite(t) ? t : 0;
8723
8751
  }, s = (e) => ({
@@ -8727,7 +8755,7 @@ function Ju(e) {
8727
8755
  left: o(n.getPropertyValue(`${e}-left${e === "border" ? "-width" : ""}`))
8728
8756
  });
8729
8757
  return {
8730
- selector: Ku(e),
8758
+ selector: Ju(e),
8731
8759
  tag: e.localName,
8732
8760
  id: e.id || null,
8733
8761
  classes: [...e.classList],
@@ -8789,17 +8817,17 @@ function Ju(e) {
8789
8817
  }
8790
8818
  //#endregion
8791
8819
  //#region src/context.ts
8792
- var Yu = 10, Xu = (e) => ({
8820
+ var Zu = 10, Qu = (e) => ({
8793
8821
  left: e.left,
8794
8822
  top: e.top,
8795
8823
  width: e.width,
8796
8824
  height: e.height
8797
- }), Zu = (e) => {
8825
+ }), $u = (e) => {
8798
8826
  let t = /* @__PURE__ */ new Set(), n = [];
8799
8827
  for (let r of e) !r?.isConnected || t.has(r) || (t.add(r), n.push(r));
8800
8828
  return n;
8801
- }, Qu = (e) => e.crypto?.randomUUID?.() ?? `${Date.now()}-${Math.random().toString(36).slice(2)}`;
8802
- function $u(e) {
8829
+ }, ed = (e) => e.crypto?.randomUUID?.() ?? `${Date.now()}-${Math.random().toString(36).slice(2)}`;
8830
+ function td(e) {
8803
8831
  let { runtime: t, ownerDocument: n, ownerWindow: r } = e, i = e.request ?? { scope: "workspace" }, a = t.snapshot();
8804
8832
  if (!a) throw Error("Mesurer workspace is not ready yet.");
8805
8833
  let o = [], s = [], c = { kind: "workspace" }, l = /* @__PURE__ */ new Map();
@@ -8807,7 +8835,7 @@ function $u(e) {
8807
8835
  let e = t.annotation(i.annotation);
8808
8836
  if (!e) throw Error(`Mesurer annotation not found: ${i.annotation}`);
8809
8837
  for (let t of e.resolvedTargets) t.element?.isConnected && l.set(t.element, t.target.id);
8810
- o = Zu(e.resolvedTargets.map((e) => e.element));
8838
+ o = $u(e.resolvedTargets.map((e) => e.element));
8811
8839
  let n = t.annotationRect(e.id);
8812
8840
  n && (s = [n]);
8813
8841
  let r = e.resolvedTargets.length, a = e.resolvedTargets.filter((e) => e.element?.isConnected).length, u = e.anchor.kind === "region" ? "connected" : r === 0 || a === 0 ? "stale" : a === r ? "connected" : "partial";
@@ -8819,15 +8847,15 @@ function $u(e) {
8819
8847
  };
8820
8848
  } else if (i.scope === "selection") {
8821
8849
  let e = t.currentSelection();
8822
- if (o = Zu(e.elements), !o.length && !e.region) throw Error("Mesurer has no current selection.");
8823
- s = e.region ? [e.region] : o.map((e) => Xu(e.getBoundingClientRect())), c = { kind: "selection" };
8824
- } else o = Zu([
8850
+ if (o = $u(e.elements), !o.length && !e.region) throw Error("Mesurer has no current selection.");
8851
+ s = e.region ? [e.region] : o.map((e) => Qu(e.getBoundingClientRect())), c = { kind: "selection" };
8852
+ } else o = $u([
8825
8853
  ...t.currentSelection().elements,
8826
8854
  ...a.measurements.map((e) => e.elementRef),
8827
8855
  a.activeMeasurement?.elementRef,
8828
8856
  ...a.heldDistances.flatMap((e) => [e.elementRefA, e.elementRefB])
8829
8857
  ]);
8830
- let u = c.kind === "workspace" ? [] : s.length ? s : o.map((e) => Xu(e.getBoundingClientRect())), d = Bu({
8858
+ let u = c.kind === "workspace" ? [] : s.length ? s : o.map((e) => Qu(e.getBoundingClientRect())), d = Hu({
8831
8859
  workspace: {
8832
8860
  guides: a.guides,
8833
8861
  measurements: a.measurements,
@@ -8839,8 +8867,8 @@ function $u(e) {
8839
8867
  elements: o,
8840
8868
  regions: u
8841
8869
  },
8842
- guideTolerance: a.guideRelevanceTolerance ?? Yu
8843
- }), f = d.measurements, p = d.distances, m = d.guides, h = Zu([
8870
+ guideTolerance: a.guideRelevanceTolerance ?? Zu
8871
+ }), f = d.measurements, p = d.distances, m = d.guides, h = $u([
8844
8872
  ...o,
8845
8873
  ...f.map((e) => e.elementRef),
8846
8874
  ...p.flatMap((e) => [e.elementRefA, e.elementRefB])
@@ -8852,12 +8880,12 @@ function $u(e) {
8852
8880
  let t = l.get(e) ?? y();
8853
8881
  return g.set(e, t), {
8854
8882
  ref: t,
8855
- inspection: Ju(e)
8883
+ inspection: Xu(e)
8856
8884
  };
8857
8885
  }), x = f.map((e) => {
8858
8886
  let t = {
8859
8887
  id: e.id,
8860
- rect: Xu(e.rect),
8888
+ rect: Qu(e.rect),
8861
8889
  deltaX: e.deltaX,
8862
8890
  deltaY: e.deltaY
8863
8891
  };
@@ -8867,8 +8895,8 @@ function $u(e) {
8867
8895
  }), S = p.map((e) => {
8868
8896
  let t = {
8869
8897
  id: e.id,
8870
- rectA: Xu(e.rectA),
8871
- rectB: Xu(e.rectB),
8898
+ rectA: Qu(e.rectA),
8899
+ rectB: Qu(e.rectB),
8872
8900
  horizontal: e.horizontal ? { ...e.horizontal } : null,
8873
8901
  vertical: e.vertical ? { ...e.vertical } : null
8874
8902
  }, n = e.elementRefA ? g.get(e.elementRefA) : void 0, r = e.elementRefB ? g.get(e.elementRefB) : void 0;
@@ -8876,7 +8904,7 @@ function $u(e) {
8876
8904
  });
8877
8905
  return {
8878
8906
  schema: "mesurer.context/v1",
8879
- id: Qu(r),
8907
+ id: ed(r),
8880
8908
  createdAt: (/* @__PURE__ */ new Date()).toISOString(),
8881
8909
  scope: c,
8882
8910
  page: {
@@ -8891,7 +8919,7 @@ function $u(e) {
8891
8919
  scrollY: r.scrollY
8892
8920
  },
8893
8921
  coordinateSpace: "viewport-css-px",
8894
- regions: c.kind === "workspace" ? [] : s.map(Xu),
8922
+ regions: c.kind === "workspace" ? [] : s.map(Qu),
8895
8923
  visualState: {
8896
8924
  rulersVisible: a.rulersVisible,
8897
8925
  xrayVisible: a.xrayVisible
@@ -8905,48 +8933,48 @@ function $u(e) {
8905
8933
  }
8906
8934
  };
8907
8935
  }
8908
- var ed = (e) => `${Math.round(e * 100) / 100}px`, td = (e) => `x=${ed(e.left)} y=${ed(e.top)} w=${ed(e.width)} h=${ed(e.height)}`;
8909
- function nd(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) {
8910
8938
  let t = [
8911
8939
  "Mesurer visual context",
8912
8940
  "",
8913
8941
  `Page: ${e.page.url}`,
8914
8942
  `Viewport: ${e.viewport.width} × ${e.viewport.height} CSS px; scroll x=${e.viewport.scrollX} y=${e.viewport.scrollY}`
8915
8943
  ];
8916
- if (e.scope.kind === "annotation" ? t.push("", "Annotation", e.scope.note, `Target status: ${e.scope.targetStatus}`) : t.push("", `Scope: ${e.scope.kind}`), e.regions.length && (t.push("", "Requested regions"), e.regions.forEach((e, n) => t.push(`- region-${n + 1}: ${td(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) {
8917
8945
  t.push("", "Targets");
8918
8946
  for (let n of e.targets) {
8919
8947
  let e = n.inspection;
8920
- t.push(`[${n.ref}] ${e.selector}`, ` rect: ${td(e.rect)}`, ` margin: ${ed(e.margin.top)} ${ed(e.margin.right)} ${ed(e.margin.bottom)} ${ed(e.margin.left)}`, ` padding: ${ed(e.padding.top)} ${ed(e.padding.right)} ${ed(e.padding.bottom)} ${ed(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)}`);
8921
8949
  }
8922
8950
  }
8923
8951
  if (e.visualContext.guides.length) {
8924
8952
  t.push("", "Relevant guides");
8925
- for (let n of e.visualContext.guides) t.push(`- ${n.orientation} ${n.orientation === "vertical" ? "x" : "y"}=${ed(n.position)}`);
8953
+ for (let n of e.visualContext.guides) t.push(`- ${n.orientation} ${n.orientation === "vertical" ? "x" : "y"}=${nd(n.position)}`);
8926
8954
  }
8927
8955
  if (e.visualContext.layoutGuides.length) {
8928
8956
  t.push("", "Layout guides");
8929
8957
  for (let n of e.visualContext.layoutGuides) {
8930
8958
  if (!n.visible) continue;
8931
- let e = n.kind === "grid" ? `grid ${ed(n.size)}` : `${n.count} ${n.kind}; gutter=${ed(n.gutter)}; offset=${ed(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}`;
8932
8960
  t.push(`- ${e}; color=${n.color}; opacity=${Math.round(n.opacity * 100)}%`);
8933
8961
  }
8934
8962
  }
8935
8963
  if (e.visualContext.measurements.length) {
8936
8964
  t.push("", "Relevant measurements");
8937
- for (let n of e.visualContext.measurements) t.push(`- ${n.targetRef ? `${n.targetRef}: ` : ""}${td(n.rect)}; delta=${ed(n.deltaX)} × ${ed(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)}`);
8938
8966
  }
8939
8967
  if (e.visualContext.distances.length) {
8940
8968
  t.push("", "Relevant distances");
8941
8969
  for (let n of e.visualContext.distances) {
8942
- let e = [n.targetARef, n.targetBRef].filter(Boolean).join(" → "), r = [n.horizontal ? `horizontal=${ed(n.horizontal.value)}` : null, n.vertical ? `vertical=${ed(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("; ");
8943
8971
  t.push(`- ${e ? `${e}: ` : ""}${r || "overlapping"}`);
8944
8972
  }
8945
8973
  }
8946
8974
  return t.join("\n").trimEnd();
8947
8975
  }
8948
- function rd(e) {
8949
- let t = Lu([
8976
+ function ad(e) {
8977
+ let t = zu([
8950
8978
  ...e.regions,
8951
8979
  ...e.targets.map((e) => e.inspection.rect),
8952
8980
  ...e.visualContext.measurements.map((e) => e.rect),
@@ -8976,7 +9004,7 @@ function rd(e) {
8976
9004
  captures: n
8977
9005
  };
8978
9006
  }
8979
- var id = (e, t, n, r, i) => {
9007
+ var od = (e, t, n, r, i) => {
8980
9008
  !Number.isFinite(r) || !Number.isFinite(i) || Math.abs(r - i) < .01 || e.push({
8981
9009
  kind: t,
8982
9010
  label: n,
@@ -8985,16 +9013,16 @@ var id = (e, t, n, r, i) => {
8985
9013
  delta: i - r,
8986
9014
  unit: "px"
8987
9015
  });
8988
- }, ad = (e, t, n, r) => e.push({
9016
+ }, sd = (e, t, n, r) => e.push({
8989
9017
  kind: "missing",
8990
9018
  evidence: t,
8991
9019
  id: n,
8992
9020
  label: r
8993
- }), od = (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;
8994
- function sd(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) {
8995
9023
  let t = e.runtime.annotation(e.annotationId);
8996
9024
  if (!t) throw Error(`Mesurer annotation not found: ${e.annotationId}`);
8997
- let n = $u({
9025
+ let n = td({
8998
9026
  runtime: e.runtime,
8999
9027
  ownerDocument: e.ownerDocument,
9000
9028
  ownerWindow: e.ownerWindow,
@@ -9004,42 +9032,42 @@ function sd(e) {
9004
9032
  if (n.scope.kind !== "annotation") throw Error("Mesurer annotation context invariant failed.");
9005
9033
  let r = e.runtime.snapshot();
9006
9034
  if (!r) throw Error("Mesurer workspace is not ready yet.");
9007
- let i = zu({
9035
+ let i = Vu({
9008
9036
  measurements: r.measurements,
9009
9037
  activeMeasurement: r.activeMeasurement
9010
9038
  }), a = [];
9011
9039
  for (let e of t.baseline.targets) {
9012
9040
  let t = n.targets.find((t) => t.ref === e.id);
9013
9041
  if (!t) {
9014
- ad(a, "target", e.id, e.selector);
9042
+ sd(a, "target", e.id, e.selector);
9015
9043
  continue;
9016
9044
  }
9017
- id(a, "target-rect", `${t.inspection.selector} left`, e.rect.left, t.inspection.rect.left), id(a, "target-rect", `${t.inspection.selector} top`, e.rect.top, t.inspection.rect.top), id(a, "target-rect", `${t.inspection.selector} width`, e.rect.width, t.inspection.rect.width), id(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);
9018
9046
  }
9019
9047
  for (let e of t.baseline.guides) {
9020
9048
  let t = n.visualContext.guides.find((t) => t.id === e.id) ?? r.guides.find((t) => t.id === e.id);
9021
9049
  if (!t) {
9022
- ad(a, "guide", e.id, `${e.orientation} guide ${e.id}`);
9050
+ sd(a, "guide", e.id, `${e.orientation} guide ${e.id}`);
9023
9051
  continue;
9024
9052
  }
9025
- id(a, "guide", `${e.orientation} guide ${e.id}`, e.position, t.position);
9053
+ od(a, "guide", `${e.orientation} guide ${e.id}`, e.position, t.position);
9026
9054
  }
9027
9055
  for (let e of t.baseline.measurements) {
9028
9056
  let r = n.visualContext.measurements.find((t) => t.id === e.id) ?? i.find((t) => t.id === e.id);
9029
9057
  if (!r) {
9030
- let r = t.baseline.targets.find((t) => od(t.rect, e.rect));
9031
- r && n.targets.some((e) => e.ref === r.id) || ad(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);
9032
9060
  continue;
9033
9061
  }
9034
- id(a, "measurement", `${e.id} width`, e.rect.width, r.rect.width), id(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);
9035
9063
  }
9036
9064
  for (let e of t.baseline.distances) {
9037
9065
  let t = n.visualContext.distances.find((t) => t.id === e.id) ?? r.heldDistances.find((t) => t.id === e.id);
9038
9066
  if (!t) {
9039
- ad(a, "distance", e.id, e.id);
9067
+ sd(a, "distance", e.id, e.id);
9040
9068
  continue;
9041
9069
  }
9042
- e.horizontal && t.horizontal ? id(a, "distance", `${e.id} horizontal`, e.horizontal.value, t.horizontal.value) : e.horizontal && !t.horizontal && ad(a, "distance", e.id, `${e.id} horizontal`), e.vertical && t.vertical ? id(a, "distance", `${e.id} vertical`, e.vertical.value, t.vertical.value) : e.vertical && !t.vertical && ad(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`);
9043
9071
  }
9044
9072
  return {
9045
9073
  schema: "mesurer.review/v1",
@@ -9051,7 +9079,7 @@ function sd(e) {
9051
9079
  changes: a
9052
9080
  };
9053
9081
  }
9054
- async function cd(e, t, n) {
9082
+ async function ud(e, t, n) {
9055
9083
  try {
9056
9084
  if (t.navigator.clipboard?.writeText) {
9057
9085
  await t.navigator.clipboard.writeText(n);
@@ -9065,43 +9093,43 @@ async function cd(e, t, n) {
9065
9093
  }
9066
9094
  //#endregion
9067
9095
  //#region src/layout-guides.ts
9068
- var ld = Zs, ud = Qs, dd = $s, fd = ec, pd = () => ({
9096
+ var dd = Zs, fd = Qs, pd = $s, md = ec, hd = () => ({
9069
9097
  ...wc(),
9070
- version: Cu
9071
- }), md = "mesurer.context", hd = "context:v1", gd = "mesurer.context.settings", _d = "context.ui", vd = "data-mesurer-direct-text-edit-active", yd = {
9098
+ version: Tu
9099
+ }), gd = "mesurer.context", _d = "context:v1", vd = "mesurer.context.settings", yd = "context.ui", bd = "data-mesurer-direct-text-edit-active", xd = {
9072
9100
  viewBox: "0 0 256 256",
9073
9101
  paths: ["M216,32H88a8,8,0,0,0-8,8V80H40a8,8,0,0,0-8,8V216a8,8,0,0,0,8,8H168a8,8,0,0,0,8-8V176h40a8,8,0,0,0,8-8V40A8,8,0,0,0,216,32ZM160,208H48V96H160Zm48-48H176V88a8,8,0,0,0-8-8H96V48H208Z"]
9074
- }, bd = {
9102
+ }, Sd = {
9075
9103
  viewBox: "0 0 256 256",
9076
9104
  paths: ["M152,40a8,8,0,0,1-8,8H112a8,8,0,0,1,0-16h32A8,8,0,0,1,152,40Zm-8,168H112a8,8,0,0,0,0,16h32a8,8,0,0,0,0-16ZM208,32H184a8,8,0,0,0,0,16h24V72a8,8,0,0,0,16,0V48A16,16,0,0,0,208,32Zm8,72a8,8,0,0,0-8,8v32a8,8,0,0,0,16,0V112A8,8,0,0,0,216,104Zm0,72a8,8,0,0,0-8,8v24H184a8,8,0,0,0,0,16h24a16,16,0,0,0,16-16V184A8,8,0,0,0,216,176ZM40,152a8,8,0,0,0,8-8V112a8,8,0,0,0-16,0v32A8,8,0,0,0,40,152Zm32,56H48V184a8,8,0,0,0-16,0v24a16,16,0,0,0,16,16H72a8,8,0,0,0,0-16ZM72,32H48A16,16,0,0,0,32,48V72a8,8,0,0,0,16,0V48H72a8,8,0,0,0,0-16Z"]
9077
- }, xd = {
9105
+ }, Cd = {
9078
9106
  viewBox: "0 0 256 256",
9079
9107
  paths: ["M229.66,58.34l-32-32a8,8,0,0,0-11.32,0l-96,96A8,8,0,0,0,88,128v32a8,8,0,0,0,8,8h32a8,8,0,0,0,5.66-2.34l96-96A8,8,0,0,0,229.66,58.34ZM124.69,152H104V131.31l64-64L188.69,88ZM200,76.69,179.31,56,192,43.31,212.69,64ZM224,128v80a16,16,0,0,1-16,16H48a16,16,0,0,1-16-16V48A16,16,0,0,1,48,32h80a8,8,0,0,1,0,16H48V208H208V128a8,8,0,0,1,16,0Z"]
9080
- }, Sd = async (e, t, n = 1) => {
9108
+ }, wd = async (e, t, n = 1) => {
9081
9109
  await e.fonts?.ready;
9082
9110
  for (let e = 0; e < Math.max(1, n); e += 1) await new Promise((e) => t.requestAnimationFrame(() => e()));
9083
- }, Cd = (e, t, n, r) => {
9084
- let i = async (i) => $u({
9111
+ }, Td = (e, t, n, r) => {
9112
+ let i = async (i) => td({
9085
9113
  runtime: e,
9086
9114
  ownerDocument: t,
9087
9115
  ownerWindow: n,
9088
9116
  request: i,
9089
9117
  layoutGuides: r()
9090
- }), a = async (e) => nd(await i(e));
9118
+ }), a = async (e) => id(await i(e));
9091
9119
  return {
9092
9120
  context: i,
9093
9121
  contextText: a,
9094
- copyContext: async (e) => cd(t, n, await a(e)),
9122
+ copyContext: async (e) => ud(t, n, await a(e)),
9095
9123
  select: async (r) => {
9096
9124
  let a = Array.isArray(r) ? [...r] : [String(r)];
9097
- return e.select(a), await Sd(t, n), i({ scope: "selection" });
9125
+ return e.select(a), await wd(t, n), i({ scope: "selection" });
9098
9126
  },
9099
9127
  annotations: async () => e.annotations(),
9100
9128
  removeAnnotation: async (r) => {
9101
- e.removeAnnotation(r), await Sd(t, n);
9129
+ e.removeAnnotation(r), await wd(t, n);
9102
9130
  },
9103
9131
  review: async (i) => {
9104
- if (await Sd(t, n), i) return sd({
9132
+ if (await wd(t, n), i) return ld({
9105
9133
  runtime: e,
9106
9134
  ownerDocument: t,
9107
9135
  ownerWindow: n,
@@ -9109,7 +9137,7 @@ var ld = Zs, ud = Qs, dd = $s, fd = ec, pd = () => ({
9109
9137
  layoutGuides: r()
9110
9138
  });
9111
9139
  let a = r();
9112
- return e.annotations().map((r) => sd({
9140
+ return e.annotations().map((r) => ld({
9113
9141
  runtime: e,
9114
9142
  ownerDocument: t,
9115
9143
  ownerWindow: n,
@@ -9117,38 +9145,38 @@ var ld = Zs, ud = Qs, dd = $s, fd = ec, pd = () => ({
9117
9145
  layoutGuides: a
9118
9146
  }));
9119
9147
  },
9120
- capturePlan: async (e) => rd(await i(e)),
9148
+ capturePlan: async (e) => ad(await i(e)),
9121
9149
  prepareCapture: async () => {
9122
- e.prepareCapture(), await Sd(t, n);
9150
+ e.prepareCapture(), await wd(t, n);
9123
9151
  },
9124
9152
  finishCapture: async () => {
9125
- e.finishCapture(), await Sd(t, n);
9153
+ e.finishCapture(), await wd(t, n);
9126
9154
  }
9127
9155
  };
9128
- }, wd = (e) => {
9156
+ }, Ed = (e) => {
9129
9157
  let t = e.currentSelection();
9130
9158
  return t.elements.length > 0 || t.region !== null;
9131
9159
  };
9132
- function Td(e = {}) {
9160
+ function Dd(e = {}) {
9133
9161
  return {
9134
- id: md,
9135
- version: Cu,
9162
+ id: gd,
9163
+ version: Tu,
9136
9164
  requires: ["runtime:solid"],
9137
- provides: [hd],
9165
+ provides: [_d],
9138
9166
  setup(t) {
9139
9167
  let n = t.service.get("runtime:solid");
9140
9168
  if (!n) throw Error("Mesurer context plugin requires the renderer runtime service.");
9141
- let r = n.createWorkspaceRuntime(md), i = Cd(r, n.ownerDocument, n.ownerWindow, () => t.service.get(ud)?.list() ?? []);
9142
- t.service.provide(hd, i), t.state.register({
9143
- id: gd,
9169
+ let r = n.createWorkspaceRuntime(gd), i = Td(r, n.ownerDocument, n.ownerWindow, () => t.service.get(fd)?.list() ?? []);
9170
+ t.service.provide(_d, i), t.state.register({
9171
+ id: vd,
9144
9172
  initial: { ui: e.ui ?? !0 },
9145
9173
  persist: !0
9146
9174
  }), t.state.register({
9147
- id: _d,
9148
- initial: { hasSelection: wd(r) }
9175
+ id: yd,
9176
+ initial: { hasSelection: Ed(r) }
9149
9177
  });
9150
- let a = () => t.state.get("mesurer.context.settings")?.ui ?? !0, o = () => t.state.get(_d)?.hasSelection === !0, s = (e) => {
9151
- t.state.update(gd, (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) => ({
9152
9180
  ...t,
9153
9181
  ui: e
9154
9182
  }));
@@ -9162,12 +9190,12 @@ function Td(e = {}) {
9162
9190
  region: e.region ? { ...e.region } : null
9163
9191
  }, r.selectGestureActive() ? c?.abandonNoteComposer() : n && c?.closeNoteComposer();
9164
9192
  let i = e.elements.length > 0 || e.region !== null;
9165
- i !== (t.state.get(_d)?.hasSelection ?? !1) && t.state.update(_d, () => ({ hasSelection: i }));
9193
+ i !== (t.state.get(yd)?.hasSelection ?? !1) && t.state.update(yd, () => ({ hasSelection: i }));
9166
9194
  });
9167
9195
  t.command.register("context.copy", () => i.copyContext()), t.command.register("context.copy-selection", () => i.copyContext({ scope: "selection" }));
9168
9196
  let g = () => {
9169
9197
  let e = u?.element;
9170
- e && (n.rendererRoot?.hasAttribute(vd) ? e.setAttribute(vd, "true") : e.removeAttribute(vd));
9198
+ e && (n.rendererRoot?.hasAttribute(bd) ? e.setAttribute(bd, "true") : e.removeAttribute(bd));
9171
9199
  }, _ = () => {
9172
9200
  d?.disconnect(), d = null, c = null, l?.(), l = null, u?.dispose(), u = null;
9173
9201
  }, v = () => {
@@ -9176,7 +9204,7 @@ function Td(e = {}) {
9176
9204
  let e = new n.ownerWindow.MutationObserver(g);
9177
9205
  d = e, e.observe(n.rendererRoot, {
9178
9206
  attributes: !0,
9179
- attributeFilter: [vd]
9207
+ attributeFilter: [bd]
9180
9208
  }), g();
9181
9209
  }
9182
9210
  let e = {
@@ -9200,7 +9228,7 @@ function Td(e = {}) {
9200
9228
  command: "context.copy",
9201
9229
  order: 70,
9202
9230
  toolbarMode: "always",
9203
- icon: yd,
9231
+ icon: xd,
9204
9232
  hidden: () => !a()
9205
9233
  }), t.tool.register({
9206
9234
  id: "context.copy-selection",
@@ -9209,7 +9237,7 @@ function Td(e = {}) {
9209
9237
  command: "context.copy-selection",
9210
9238
  order: 71,
9211
9239
  toolbarMode: "always",
9212
- icon: bd,
9240
+ icon: Sd,
9213
9241
  hidden: () => !a(),
9214
9242
  disabled: () => !o()
9215
9243
  }), t.tool.register({
@@ -9219,7 +9247,7 @@ function Td(e = {}) {
9219
9247
  command: "context.add-note",
9220
9248
  order: 72,
9221
9249
  toolbarMode: "always",
9222
- icon: xd,
9250
+ icon: Cd,
9223
9251
  hidden: () => !a(),
9224
9252
  disabled: () => !o()
9225
9253
  }), t.settings.register({
@@ -9242,28 +9270,28 @@ function Td(e = {}) {
9242
9270
  }
9243
9271
  //#endregion
9244
9272
  //#region src/plugins/codex/index.ts
9245
- var Ed = "mesurer.codex", Dd = "codex:v1", Od = "mesurer.plugin.before-disable", kd = 2e3, Ad = 750, jd = 1800, Md = 2e3, Nd = 12e4, Pd = 10, Fd = 5, Id = "Codex host connection is unavailable. Electron apps must expose window.__MESURER_HOST__.codexBridge from preload.", Ld = [
9273
+ var Od = "mesurer.codex", kd = "codex:v1", Ad = "mesurer.plugin.before-disable", jd = 2e3, Md = 750, Nd = 1800, Pd = 2e3, Fd = 12e4, Id = 10, Ld = 5, Rd = "Codex host connection is unavailable. Electron apps must expose window.__MESURER_HOST__.codexBridge from preload.", zd = [
9246
9274
  "Implement the current human feedback from Mesurer in this project.",
9247
9275
  "Treat the rendered page as the source of truth, preserve unrelated Mesurer review state,",
9248
9276
  "and verify the affected UI in the live page with Mesurer before claiming completion."
9249
- ].join(" "), Rd = {
9277
+ ].join(" "), Bd = {
9250
9278
  viewBox: "0 0 256 256",
9251
9279
  paths: ["M224,48,32,120l88,32,32,88Z M120,152l104-104"]
9252
- }, zd = {
9280
+ }, Vd = {
9253
9281
  viewBox: "0 0 256 256",
9254
9282
  paths: ["M72,32H184a8,8,0,0,1,0,16h-8v20.69a40,40,0,0,1-11.72,28.28L137.25,124l27.03,27.03A40,40,0,0,1,176,179.31V208h8a8,8,0,0,1,0,16H72a8,8,0,0,1,0-16h8V179.31a40,40,0,0,1,11.72-28.28L118.75,124,91.72,96.97A40,40,0,0,1,80,68.69V48H72a8,8,0,0,1,0-16Zm24,16V68.69a24,24,0,0,0,7.03,16.97L128,110.63l24.97-24.97A24,24,0,0,0,160,68.69V48Zm32,90.63-24.97,24.97A24,24,0,0,0,96,180.57V208h64V180.57a24,24,0,0,0-7.03-16.97Z"]
9255
- }, Bd = {
9283
+ }, Hd = {
9256
9284
  viewBox: "0 0 256 256",
9257
9285
  paths: ["M229.66,77.66l-128,128a8,8,0,0,1-11.32,0l-56-56a8,8,0,0,1,11.32-11.32L96,188.69,218.34,66.34a8,8,0,0,1,11.32,11.32Z"]
9258
- }, Vd = () => {
9286
+ }, Ud = () => {
9259
9287
  try {
9260
9288
  let e = globalThis.location;
9261
9289
  return e?.origin ? `mesurer-codex-ui:v2:${e.origin}${e.pathname}` : null;
9262
9290
  } catch {
9263
9291
  return null;
9264
9292
  }
9265
- }, Hd = () => {
9266
- let e = Vd();
9293
+ }, Wd = () => {
9294
+ let e = Ud();
9267
9295
  if (!e) return null;
9268
9296
  try {
9269
9297
  let t = globalThis.sessionStorage?.getItem(e);
@@ -9288,18 +9316,18 @@ var Ed = "mesurer.codex", Dd = "codex:v1", Od = "mesurer.plugin.before-disable",
9288
9316
  } catch {
9289
9317
  return null;
9290
9318
  }
9291
- }, Ud = (e) => {
9292
- let t = Vd();
9319
+ }, Gd = (e) => {
9320
+ let t = Ud();
9293
9321
  if (t) try {
9294
9322
  globalThis.sessionStorage?.setItem(t, JSON.stringify(e));
9295
9323
  } catch {}
9296
- }, Wd = async (e) => {
9324
+ }, Kd = async (e) => {
9297
9325
  let t = window.__MESURER_HOST__?.codexBridge;
9298
- if (!t) throw Error(Id);
9326
+ if (!t) throw Error(Rd);
9299
9327
  let n = await t(e);
9300
9328
  if (n.ok === !1) throw Error(n.error ?? "Codex Bridge request failed.");
9301
9329
  return n;
9302
- }, Gd = (e) => {
9330
+ }, qd = (e) => {
9303
9331
  let t = e.runtime;
9304
9332
  return !t || ![
9305
9333
  "shared",
@@ -9317,10 +9345,10 @@ var Ed = "mesurer.codex", Dd = "codex:v1", Od = "mesurer.plugin.before-disable",
9317
9345
  available: t.available === !0,
9318
9346
  reason: t.reason
9319
9347
  };
9320
- }, Kd = (e) => ({
9348
+ }, Jd = (e) => ({
9321
9349
  thread: e.thread?.trim() || null,
9322
9350
  threads: Array.isArray(e.threads) ? e.threads.filter((e) => e.trim().length > 0) : []
9323
- }), qd = (e) => {
9351
+ }), Yd = (e) => {
9324
9352
  let t = e.deliveryId?.trim(), n = e.thread?.trim(), r = e.status;
9325
9353
  if (!t || !n || !r) throw Error("Codex Bridge returned an invalid delivery state.");
9326
9354
  let i = {
@@ -9332,7 +9360,7 @@ var Ed = "mesurer.codex", Dd = "codex:v1", Od = "mesurer.plugin.before-disable",
9332
9360
  updatedAt: Number.isFinite(e.updatedAt) ? Number(e.updatedAt) : 0
9333
9361
  };
9334
9362
  return e.queuedSubmissionId !== void 0 && (i.queuedSubmissionId = e.queuedSubmissionId?.trim() || null), e.dispatch !== void 0 && (i.dispatch = e.dispatch), e.dispatchError !== void 0 && (i.dispatchError = e.dispatchError?.trim() || null), i;
9335
- }, Jd = (e) => ({
9363
+ }, Xd = (e) => ({
9336
9364
  thread: e.thread?.trim() || null,
9337
9365
  threads: Array.isArray(e.threadDetails) ? e.threadDetails.flatMap((e) => {
9338
9366
  let t = e.id?.trim() ?? "";
@@ -9344,7 +9372,7 @@ var Ed = "mesurer.codex", Dd = "codex:v1", Od = "mesurer.plugin.before-disable",
9344
9372
  }] : [];
9345
9373
  }) : [],
9346
9374
  hasMore: e.hasMore === !0
9347
- }), Yd = async (e, t, n) => {
9375
+ }), Zd = async (e, t, n) => {
9348
9376
  let r = t?.instruction?.trim() || n, i = await e.annotations(), a = t?.annotationIds, o = a ? a.flatMap((e) => {
9349
9377
  let t = i.find((t) => t.id === e);
9350
9378
  return t ? [t] : [];
@@ -9367,18 +9395,18 @@ var Ed = "mesurer.codex", Dd = "codex:v1", Od = "mesurer.plugin.before-disable",
9367
9395
  ])
9368
9396
  ].join("\n").trimEnd()
9369
9397
  };
9370
- }, Xd = (e) => e.length > 16 ? `${e.slice(0, 8)}…${e.slice(-4)}` : e, Zd = (e, t = 42) => e.length > t ? `${e.slice(0, t - 1)}…` : e, Qd = (e) => e instanceof Error && (e.message === Id || e.message === "Codex Bridge is unavailable in this host." || e.message.includes("Codex Bridge lease"));
9371
- function $d(e = {}) {
9372
- let t = e.instruction?.trim() || Ld, 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;
9373
9401
  return {
9374
- id: Ed,
9375
- version: Cu,
9376
- requires: [hd],
9377
- provides: [Dd],
9402
+ id: Od,
9403
+ version: Tu,
9404
+ requires: [_d],
9405
+ provides: [kd],
9378
9406
  async setup(e) {
9379
- let i = e.service.get(hd);
9407
+ let i = e.service.get(_d);
9380
9408
  if (!i) throw Error("Mesurer Codex plugin requires context() from mesurer-solid/plugins.");
9381
- let a = n ? Hd() : 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 = Fd, _, 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 ? {
9382
9410
  id: a.delivery.id,
9383
9411
  thread: a.delivery.thread,
9384
9412
  status: a.delivery.status,
@@ -9387,47 +9415,47 @@ function $d(e = {}) {
9387
9415
  dispatch: a.delivery.dispatch ?? null,
9388
9416
  dispatchError: a.delivery.dispatchError ?? null
9389
9417
  } : null, x = 0, S = 0, C = null, w = !1, T = null, E = async (e) => {
9390
- if (e.action === "activate" || e.action === "runtime") return Wd(e);
9418
+ if (e.action === "activate" || e.action === "runtime") return Kd(e);
9391
9419
  if (!T) throw Error("Codex Bridge lease is not active for this plugin.");
9392
- return Wd({
9420
+ return Kd({
9393
9421
  ...e,
9394
9422
  leaseId: T
9395
9423
  });
9396
9424
  }, D = async () => {
9397
9425
  let e = T;
9398
9426
  if (e) {
9399
- if ((await Wd({
9427
+ if ((await Kd({
9400
9428
  action: "deactivate",
9401
9429
  leaseId: e
9402
9430
  })).released !== !0) throw Error("Codex Bridge did not confirm lease release.");
9403
9431
  T = null;
9404
9432
  }
9405
- }, O = await Wd({
9433
+ }, O = await Kd({
9406
9434
  action: "activate",
9407
9435
  thread: u ?? l ?? void 0
9408
- }), ee = O.leaseId?.trim();
9409
- if (!ee) throw Error("Codex Bridge did not return an activation lease.");
9410
- T = ee, o = "available", s = Gd(O);
9411
- let k = Kd(O);
9412
- 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(() => {
9413
9441
  T && D().catch((e) => {
9414
9442
  let t = e instanceof Error ? e.message : String(e);
9415
9443
  console.error(`[Mesurer] Failed to release Codex host lease: ${t}`);
9416
9444
  });
9417
- }), e.hook.on(Od, async (e) => {
9445
+ }), e.hook.on(Ad, async (e) => {
9418
9446
  e === "mesurer.codex" && await D();
9419
9447
  });
9420
- let A = async () => {
9421
- let e = Gd(await E({ action: "runtime" }));
9448
+ let j = async () => {
9449
+ let e = qd(await E({ action: "runtime" }));
9422
9450
  if (!e) throw Error("Codex Bridge returned an invalid runtime state.");
9423
9451
  return s = e, e;
9424
- }, j = async () => {
9452
+ }, M = async () => {
9425
9453
  let e = await E({
9426
9454
  action: "health",
9427
9455
  thread: u ?? l ?? void 0
9428
9456
  });
9429
- return s = Gd(e) ?? s, Kd(e);
9430
- }, M = j, N = async (e) => qd(await E({
9457
+ return s = qd(e) ?? s, Jd(e);
9458
+ }, ee = M, N = async (e) => Yd(await E({
9431
9459
  action: "delivery",
9432
9460
  deliveryId: e
9433
9461
  })), P = async (e) => {
@@ -9437,33 +9465,33 @@ function $d(e = {}) {
9437
9465
  deliveryId: e.id,
9438
9466
  thread: e.thread
9439
9467
  };
9440
- return e.queuedSubmissionId && (t.queuedSubmissionId = e.queuedSubmissionId), qd(await E(t));
9441
- }, F = async (e = {}) => {
9468
+ return e.queuedSubmissionId && (t.queuedSubmissionId = e.queuedSubmissionId), Yd(await E(t));
9469
+ }, te = async (e = {}) => {
9442
9470
  let t = {
9443
9471
  action: "threads",
9444
- limit: e.limit ?? Pd
9472
+ limit: e.limit ?? Id
9445
9473
  }, n = e.thread?.trim();
9446
- return n && (t.thread = n), Jd(await E(t));
9447
- }, I = () => u ?? l ?? (d ? null : f), L = () => {
9474
+ return n && (t.thread = n), Xd(await E(t));
9475
+ }, F = () => u ?? l ?? (d ? null : f), I = () => {
9448
9476
  if (!n) return;
9449
9477
  let e = b?.id && (b.status === "queued" || b.status === "working" || b.status === "interrupted") ? {
9450
9478
  id: b.id,
9451
- thread: b.thread ?? I() ?? "",
9479
+ thread: b.thread ?? F() ?? "",
9452
9480
  status: b.status,
9453
9481
  annotationIds: [...b.annotationIds],
9454
9482
  queuedSubmissionId: b.queuedSubmissionId,
9455
9483
  dispatch: b.dispatch,
9456
9484
  dispatchError: b.dispatchError
9457
9485
  } : null;
9458
- Ud({
9486
+ Gd({
9459
9487
  version: 1,
9460
9488
  originThread: l,
9461
9489
  selectedThread: u,
9462
9490
  delivery: e?.thread ? e : null
9463
9491
  });
9464
- }, te = (e, t = !1) => {
9492
+ }, L = (e, t = !1) => {
9465
9493
  let n = e.trim();
9466
- n && ((t || !l) && (l = n), u = n, d = !1, L());
9494
+ n && ((t || !l) && (l = n), u = n, d = !1, I());
9467
9495
  }, R = () => !b || b.status === "queued" && (b.dispatch === "desktop-opened" || b.dispatch === "desktop-wake-failed") ? !1 : [
9468
9496
  "queueing",
9469
9497
  "queued",
@@ -9473,12 +9501,12 @@ function $d(e = {}) {
9473
9501
  "queueing",
9474
9502
  "queued",
9475
9503
  "working"
9476
- ].includes(b.status) ? zd : b.status === "completed" ? Bd : Rd : Rd, ne = () => {
9504
+ ].includes(b.status) ? Vd : b.status === "completed" ? Hd : Bd : Bd, H = () => {
9477
9505
  let e = [], t = /* @__PURE__ */ new Set(), n = (n) => {
9478
9506
  t.has(n.id) || (t.add(n.id), e.push(n));
9479
9507
  }, r = (e) => ({
9480
9508
  id: e,
9481
- title: `Codex ${Xd(e)}`,
9509
+ title: `Codex ${Qd(e)}`,
9482
9510
  updatedAt: null,
9483
9511
  connected: !0
9484
9512
  });
@@ -9488,7 +9516,7 @@ function $d(e = {}) {
9488
9516
  for (let e of m) n(e);
9489
9517
  for (let e of p) n(m.find((t) => t.id === e) ?? r(e));
9490
9518
  return e;
9491
- }, H = (e = !1) => Promise.resolve(), U = () => {
9519
+ }, U = (e = !1) => Promise.resolve(), W = () => {
9492
9520
  if (o !== "available") {
9493
9521
  let e = s?.source === "desktop" && s.reason === "desktop-private-transport", t = !window.__MESURER_HOST__?.codexBridge, n = [];
9494
9522
  return o === "unavailable" && t && n.push({
@@ -9499,36 +9527,36 @@ function $d(e = {}) {
9499
9527
  }), n.push({
9500
9528
  id: "codex.thread.connect",
9501
9529
  label: o === "unavailable" ? t ? "Retry host connection" : e ? "Retry Codex Desktop" : "Retry Codex connection" : "Choose Codex thread…",
9502
- run: () => H(!0)
9530
+ run: () => U(!0)
9503
9531
  }), n;
9504
9532
  }
9505
- let e = ne(), t = e.slice(0, g), n = I(), r = t.map((e) => {
9533
+ let e = H(), t = e.slice(0, g), n = F(), r = t.map((e) => {
9506
9534
  let t = e.id === l ? "Current · " : e.connected ? "Loaded · " : "", r = b?.thread === e.id ? ` · ${z(b.status)}` : "";
9507
9535
  return {
9508
9536
  id: `codex.thread.${e.id}`,
9509
- label: `${t}${Zd(e.title)}${r}`,
9537
+ label: `${t}${$d(e.title)}${r}`,
9510
9538
  checked: () => n === e.id,
9511
9539
  disabled: () => R(),
9512
9540
  run() {
9513
- R() || (te(e.id, !l), W());
9541
+ R() || (L(e.id, !l), G());
9514
9542
  }
9515
9543
  };
9516
9544
  });
9517
- return g < Pd && (e.length > g || h) && r.push({
9545
+ return g < Id && (e.length > g || h) && r.push({
9518
9546
  id: "codex.thread.show-more",
9519
9547
  label: "Show 5 more…",
9520
9548
  run() {
9521
- g = Pd, W();
9549
+ g = Id, G();
9522
9550
  }
9523
9551
  }), b?.queuedSubmissionId && b.status === "queued" && (b.dispatch === "desktop-opened" || b.dispatch === "desktop-wake-failed") && r.push({
9524
9552
  id: "codex.delivery.receipt",
9525
- label: `Receipt · ${Xd(b.queuedSubmissionId)}`,
9553
+ label: `Receipt · ${Qd(b.queuedSubmissionId)}`,
9526
9554
  disabled: () => !0,
9527
9555
  run: () => void 0
9528
9556
  }), r;
9529
- }, W = () => {
9557
+ }, G = () => {
9530
9558
  if (!n || w) return;
9531
- let t = I(), r = U(), i = !R() && !d && o !== "unavailable" && (o === "unknown" || !!t), a = s?.source === "desktop" && s.reason === "desktop-private-transport", c = !window.__MESURER_HOST__?.codexBridge, l = B() ?? (o === "unavailable" ? c ? "Codex host not connected" : a ? "Codex Desktop not connected" : "Codex unavailable" : d || o === "available" && !t ? "Choose Codex thread" : "Queue to Codex"), u = JSON.stringify({
9559
+ let t = F(), r = W(), i = !R() && !d && o !== "unavailable" && (o === "unknown" || !!t), a = s?.source === "desktop" && s.reason === "desktop-private-transport", c = !window.__MESURER_HOST__?.codexBridge, l = B() ?? (o === "unavailable" ? c ? "Codex host not connected" : a ? "Codex Desktop not connected" : "Codex unavailable" : d || o === "available" && !t ? "Choose Codex thread" : "Queue to Codex"), u = JSON.stringify({
9532
9560
  bridgeAvailability: o,
9533
9561
  codexRuntime: s,
9534
9562
  routeNeedsSelection: d,
@@ -9556,32 +9584,32 @@ function $d(e = {}) {
9556
9584
  items: r
9557
9585
  } : void 0
9558
9586
  }));
9559
- }, re = async (e) => {
9587
+ }, ne = async (e) => {
9560
9588
  if (o !== "available") return;
9561
- let t = await F({
9562
- limit: Pd,
9589
+ let t = await te({
9590
+ limit: Id,
9563
9591
  thread: e ?? void 0
9564
9592
  });
9565
9593
  m = t.threads, h = t.hasMore, p = t.threads.filter((e) => e.connected).map((e) => e.id), f = t.thread;
9566
9594
  };
9567
- H = (e = !1) => w || o === "unknown" && !e ? Promise.resolve() : y || (y = (async () => {
9595
+ U = (e = !1) => w || o === "unknown" && !e ? Promise.resolve() : y || (y = (async () => {
9568
9596
  try {
9569
- let e = await M();
9570
- o = "available", c = !0, f = e.thread, await re(u ?? l ?? e.thread);
9597
+ let e = await ee();
9598
+ o = "available", c = !0, f = e.thread, await ne(u ?? l ?? e.thread);
9571
9599
  let t = u ?? l;
9572
- t && p.includes(t) ? d = !1 : p.length === 1 ? te(p[0], !0) : d = !0, !d && t && L();
9600
+ t && p.includes(t) ? d = !1 : p.length === 1 ? L(p[0], !0) : d = !0, !d && t && I();
9573
9601
  } catch (e) {
9574
- throw o = "unavailable", s = await A().catch(() => s), e;
9602
+ throw o = "unavailable", s = await j().catch(() => s), e;
9575
9603
  } finally {
9576
- y = null, W();
9604
+ y = null, G();
9577
9605
  }
9578
9606
  })(), y);
9579
- let G = () => {
9607
+ let re = () => {
9580
9608
  x &&= (globalThis.clearTimeout(x), 0), S &&= (globalThis.clearTimeout(S), 0);
9581
9609
  }, K = () => {
9582
9610
  S && globalThis.clearTimeout(S), S = globalThis.setTimeout(() => {
9583
- S = 0, b?.status === "completed" && (b = null, L(), W());
9584
- }, jd);
9611
+ S = 0, b?.status === "completed" && (b = null, I(), G());
9612
+ }, Nd);
9585
9613
  }, ie = async (e) => {
9586
9614
  if (!(!b || b.id !== e.id)) {
9587
9615
  if (b = {
@@ -9591,26 +9619,26 @@ function $d(e = {}) {
9591
9619
  queuedSubmissionId: e.queuedSubmissionId ?? b.queuedSubmissionId,
9592
9620
  dispatch: e.dispatch ?? b.dispatch,
9593
9621
  dispatchError: e.dispatchError ?? b.dispatchError
9594
- }, L(), e.status === "queued" && (e.dispatch === "desktop-opened" || e.dispatch === "desktop-wake-failed")) {
9595
- W();
9622
+ }, I(), e.status === "queued" && (e.dispatch === "desktop-opened" || e.dispatch === "desktop-wake-failed")) {
9623
+ G();
9596
9624
  return;
9597
9625
  }
9598
9626
  if (e.status === "completed") {
9599
9627
  if (r) for (let e of b.annotationIds) await i.removeAnnotation(e);
9600
- L(), W(), K();
9628
+ I(), G(), K();
9601
9629
  return;
9602
9630
  }
9603
9631
  if (e.status === "interrupted") {
9604
- L(), W();
9632
+ I(), G();
9605
9633
  let t = e.updatedAt > 0 ? e.updatedAt : Date.now();
9606
- Date.now() - t < Nd && (x = globalThis.setTimeout(() => {
9634
+ Date.now() - t < Fd && (x = globalThis.setTimeout(() => {
9607
9635
  x = 0, ae(e.id);
9608
- }, Md));
9636
+ }, Pd));
9609
9637
  return;
9610
9638
  }
9611
- W(), x = globalThis.setTimeout(() => {
9639
+ G(), x = globalThis.setTimeout(() => {
9612
9640
  x = 0, ae(e.id);
9613
- }, Ad);
9641
+ }, Md);
9614
9642
  }
9615
9643
  }, ae = async (e) => {
9616
9644
  if (!(w || b?.id !== e)) try {
@@ -9619,7 +9647,7 @@ function $d(e = {}) {
9619
9647
  if (b?.id !== e) return;
9620
9648
  let n = t;
9621
9649
  if (b.status === "queued" && b.thread) try {
9622
- o !== "available" && await H(!0);
9650
+ o !== "available" && await U(!0);
9623
9651
  let e = await P(b);
9624
9652
  await ie(e);
9625
9653
  return;
@@ -9628,17 +9656,17 @@ function $d(e = {}) {
9628
9656
  }
9629
9657
  if (b?.id !== e) return;
9630
9658
  if (b.status === "interrupted") {
9631
- W();
9659
+ G();
9632
9660
  return;
9633
9661
  }
9634
9662
  b = {
9635
9663
  ...b,
9636
9664
  status: "failed"
9637
- }, L(), Qd(n) && (o = "unavailable"), W();
9665
+ }, I(), ef(n) && (o = "unavailable"), G();
9638
9666
  }
9639
9667
  }, oe = {
9640
- health: j,
9641
- listThreads: F,
9668
+ health: M,
9669
+ listThreads: te,
9642
9670
  delivery: N,
9643
9671
  async useThread(e) {
9644
9672
  let t = e.trim();
@@ -9646,11 +9674,11 @@ function $d(e = {}) {
9646
9674
  let n = await E({
9647
9675
  action: "target",
9648
9676
  thread: t
9649
- }), r = Kd(n);
9650
- return s = Gd(n) ?? s, te(t, !l), f = r.thread, p = r.threads, o = "available", c = !0, W(), 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;
9651
9679
  },
9652
9680
  async queue(e) {
9653
- let r = await Yd(i, e, t), a = e?.thread?.trim(), s = a || (n ? I() : null);
9681
+ let r = await Zd(i, e, t), a = e?.thread?.trim(), s = a || (n ? F() : null);
9654
9682
  if (n && !a && (d || !s)) throw Error("Choose a Codex thread before queueing feedback.");
9655
9683
  let c = { message: r.message };
9656
9684
  s && (c.thread = s);
@@ -9670,26 +9698,26 @@ function $d(e = {}) {
9670
9698
  };
9671
9699
  return e.queuedSubmissionId !== void 0 && (n.queuedSubmissionId = e.queuedSubmissionId?.trim() || null), e.dispatch !== void 0 && (n.dispatch = e.dispatch), e.dispatchError !== void 0 && (n.dispatchError = e.dispatchError?.trim() || null), n;
9672
9700
  } catch (e) {
9673
- throw n && Qd(e) && (o = "unavailable", W()), e;
9701
+ throw n && ef(e) && (o = "unavailable", G()), e;
9674
9702
  }
9675
9703
  },
9676
9704
  send(e) {
9677
9705
  return oe.queue(e);
9678
9706
  }
9679
9707
  };
9680
- e.service.provide(Dd, oe);
9708
+ e.service.provide(kd, oe);
9681
9709
  let se = async () => {
9682
- if (!(C || R())) return G(), b = {
9710
+ if (!(C || R())) return re(), b = {
9683
9711
  id: null,
9684
- thread: I(),
9712
+ thread: F(),
9685
9713
  status: "queueing",
9686
9714
  annotationIds: [],
9687
9715
  queuedSubmissionId: null,
9688
9716
  dispatch: null,
9689
9717
  dispatchError: null
9690
- }, W(), C = (async () => {
9718
+ }, G(), C = (async () => {
9691
9719
  try {
9692
- n && o !== "available" && await H(!0);
9720
+ n && o !== "available" && await U(!0);
9693
9721
  let e = await oe.queue();
9694
9722
  b = {
9695
9723
  id: e.deliveryId,
@@ -9699,7 +9727,7 @@ function $d(e = {}) {
9699
9727
  queuedSubmissionId: e.queuedSubmissionId ?? null,
9700
9728
  dispatch: e.dispatch ?? null,
9701
9729
  dispatchError: e.dispatchError ?? null
9702
- }, te(e.thread, !l), L(), W(), console.info(`[Mesurer] Queued feedback for Codex thread ${e.thread}.`), e.deliveryId ? e.status === "completed" || e.status === "interrupted" ? await ie({
9730
+ }, L(e.thread, !l), I(), G(), console.info(`[Mesurer] Queued feedback for Codex thread ${e.thread}.`), e.deliveryId ? e.status === "completed" || e.status === "interrupted" ? await ie({
9703
9731
  id: e.deliveryId,
9704
9732
  thread: e.thread,
9705
9733
  status: e.status,
@@ -9708,11 +9736,11 @@ function $d(e = {}) {
9708
9736
  updatedAt: 0
9709
9737
  }) : x = globalThis.setTimeout(() => {
9710
9738
  x = 0, ae(e.deliveryId);
9711
- }, Ad) : S = globalThis.setTimeout(() => {
9712
- S = 0, b?.id === null && b?.status === "queued" && (b = null, L(), W());
9713
- }, jd);
9739
+ }, Md) : S = globalThis.setTimeout(() => {
9740
+ S = 0, b?.id === null && b?.status === "queued" && (b = null, I(), G());
9741
+ }, Nd);
9714
9742
  } catch (e) {
9715
- b = null, L(), W();
9743
+ b = null, I(), G();
9716
9744
  let t = e instanceof Error ? e.message : String(e);
9717
9745
  throw console.error(`[Mesurer] Failed to queue feedback for Codex: ${t}`), e;
9718
9746
  } finally {
@@ -9721,9 +9749,9 @@ function $d(e = {}) {
9721
9749
  })(), C;
9722
9750
  };
9723
9751
  if (e.command.register("codex.queue", se), e.command.register("codex.send", se), n) {
9724
- W();
9752
+ G();
9725
9753
  try {
9726
- await H(!0);
9754
+ await U(!0);
9727
9755
  } catch (e) {
9728
9756
  try {
9729
9757
  await D();
@@ -9737,10 +9765,10 @@ function $d(e = {}) {
9737
9765
  x = 0, b?.id && ae(b.id);
9738
9766
  }, 0));
9739
9767
  let t = globalThis.setInterval(() => {
9740
- c && H().catch(() => void 0);
9741
- }, kd);
9768
+ c && U().catch(() => void 0);
9769
+ }, jd);
9742
9770
  e.lifecycle.onDispose(() => {
9743
- w = !0, G(), globalThis.clearInterval(t), _?.dispose(), _ = void 0;
9771
+ w = !0, re(), globalThis.clearInterval(t), _?.dispose(), _ = void 0;
9744
9772
  });
9745
9773
  }
9746
9774
  }
@@ -9748,15 +9776,15 @@ function $d(e = {}) {
9748
9776
  }
9749
9777
  //#endregion
9750
9778
  //#region src/recording.ts
9751
- var ef = Sl, tf = Cl, nf = wl, rf = (e = {}) => ({
9752
- ...Wl(e),
9753
- version: Cu
9754
- }), af = au, of = nu, sf = ru, cf = iu, lf = 4, uf = $r, df = (e, t) => Ar(e, t), ff = (e = /* @__PURE__ */ new Date()) => jr(e), pf = (e, t, n, r) => kr(e, t, n, r), mf = (e, t, n) => Or(e, t, n), hf = (e, t) => Xr(e, t), gf = (e) => Qr(e), _f = (e = {}) => ({
9755
- ...Su(e),
9756
- version: Cu
9757
- }), vf = (e) => Nr(e), yf = (e) => ({
9779
+ var nf = Cl, rf = wl, af = Tl, of = (e = {}) => ({
9780
+ ...Gl(e),
9781
+ version: Tu
9782
+ }), sf = su, cf = iu, lf = au, uf = ou, df = 4, ff = $r, pf = (e, t) => Ar(e, t), mf = (e = /* @__PURE__ */ new Date()) => jr(e), hf = (e, t, n, r) => kr(e, t, n, r), gf = (e, t, n) => Or(e, t, n), _f = (e, t) => Xr(e, t), vf = (e) => Qr(e), yf = (e = {}) => ({
9783
+ ...wu(e),
9784
+ version: Tu
9785
+ }), bf = (e) => Nr(e), xf = (e) => ({
9758
9786
  ...e,
9759
- version: Cu
9760
- }), bf = () => yf($o()), xf = () => yf(es()), Sf = () => yf(ts()), Cf = () => yf(ns()), wf = () => yf(rs()), Tf = () => yf(is()), Ef = () => yf(os()), Df = () => yf(as()), Of = () => ss().map(yf), kf = (e = [], t = []) => cs(e, t).map((e) => e.id.startsWith("mesurer.") ? yf(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);
9761
9789
  //#endregion
9762
- export { wu as MESURER_ARRANGE_ACTIVE_STATE_ID, Tu as MESURER_ARRANGE_PLUGIN_ID, Eu as MESURER_ARRANGE_SERVICE_ID, Du as MESURER_ARRANGE_SETTINGS_STATE_ID, Ou as MESURER_ARRANGE_STATE_ID, Ed as MESURER_CODEX_PLUGIN_ID, Dd as MESURER_CODEX_SERVICE_ID, md as MESURER_CONTEXT_PLUGIN_ID, hd as MESURER_CONTEXT_SERVICE_ID, gd as MESURER_CONTEXT_SETTINGS_STATE_ID, ju as MESURER_EDIT_ACTIVE_STATE_ID, Mu as MESURER_EDIT_PLUGIN_ID, Nu as MESURER_EDIT_SERVICE_ID, Pu as MESURER_EDIT_SETTINGS_STATE_ID, Fu as MESURER_EDIT_STATE_ID, fd as MESURER_LAYOUT_GUIDES_ACTIVE_STATE_ID, ld as MESURER_LAYOUT_GUIDES_PLUGIN_ID, ud as MESURER_LAYOUT_GUIDES_SERVICE_ID, dd as MESURER_LAYOUT_GUIDES_STATE_ID, ef as MESURER_RECORDING_PLUGIN_ID, tf as MESURER_RECORDING_SERVICE_ID, nf as MESURER_RECORDING_SETTINGS_STATE_ID, af as MESURER_SCREENSHOT_ACTIVE_STATE_ID, of as MESURER_SCREENSHOT_PLUGIN_ID, sf as MESURER_SCREENSHOT_SERVICE_ID, cf as MESURER_SCREENSHOT_SETTINGS_STATE_ID, lf as MIN_SCREENSHOT_SELECTION, ku as arrange, uf as captureVisibleTabPng, $d as codex, Sf as colorPicker, kf as compose, Td as context, df as copyPngToClipboard, ff as createScreenshotFilename, pf as cropPngToViewportRect, Of as defaults, Ef as distance, Au as edit, Tf as guides, pd as layoutGuides, mf as normalizeScreenshotRect, hf as prepareScreenshotCapture, rf as recording, gf as releaseScreenshotCapture, Cf as rulers, _f as screenshot, bf as select, Df as settings, wf as typography, vf as waitForNextPaint, xf 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 };