mesurer-solid 0.1.8-beta.1 → 0.1.8-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -5142,8 +5142,10 @@ function oc(e) {
5142
5142
  var n = X("div", {
5143
5143
  "data-mesurer-measurement-chrome": "true",
5144
5144
  class: "msr:absolute"
5145
- }), i = t;
5146
- return typeof i == "function" || Array.isArray(i) ? Ji(() => i, n) : t = n, Q(n, Y(q, {
5145
+ });
5146
+ return Ji(() => (e) => {
5147
+ t = e;
5148
+ }, n), Q(n, Y(q, {
5147
5149
  get when() {
5148
5150
  return a().top;
5149
5151
  },
@@ -5208,9 +5210,9 @@ function oc(e) {
5208
5210
  "data-mesurer-measurement-label": "true",
5209
5211
  class: "msr:pointer-events-none msr:absolute msr:rounded msr:px-1 msr:py-0.5 msr:text-[10px] msr:text-ink-50 msr:tabular-nums msr:select-none msr:-translate-x-1/2 msr:bg-ink-900/90"
5210
5212
  }), t = Wi(" x ");
5211
- Z(e, t);
5212
- var i = n;
5213
- return typeof i == "function" || Array.isArray(i) ? Ji(() => i, e) : n = e, Q(e, () => ic(r().rect.width), t), Q(e, () => ic(r().rect.height), null), J(() => ({
5213
+ return Z(e, t), Ji(() => (e) => {
5214
+ n = e;
5215
+ }, e), Q(e, () => ic(r().rect.width), t), Q(e, () => ic(r().rect.height), null), J(() => ({
5214
5216
  left: `${r().rect.left + d().x + r().rect.width / 2}px`,
5215
5217
  top: `${r().rect.top + d().y + r().rect.height + 2}px`,
5216
5218
  "z-index": s() ? ac : void 0,
@@ -11141,7 +11143,19 @@ function lp(e, t) {
11141
11143
  u = !0, p.disconnect(), l && r.clearTimeout(l), r.removeEventListener("scroll", h, !0), o.clear(), a.remove();
11142
11144
  });
11143
11145
  }
11144
- var up = "mesurer.text-edit.intents", dp = "text-edit", fp = "text-edit.commit", pp = "text-edit.clear", mp = 600, hp = 360, gp = 24, _p = 80, vp = "#0d99ff", yp = "#0f172a", bp = "#8a8a8a", xp = 288, Sp = "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)", Cp = /* @__PURE__ */ new Set([
11146
+ var up = /* @__PURE__ */ new WeakMap(), dp = (e) => {
11147
+ let t = up.get(e.pageTarget);
11148
+ t && (e.ownerWindow.clearTimeout(t.clearTimer), up.delete(e.pageTarget));
11149
+ }, fp = (e, t) => {
11150
+ dp(e);
11151
+ let n = e.pageTarget, r = {
11152
+ target: t,
11153
+ clearTimer: 0
11154
+ };
11155
+ up.set(n, r), r.clearTimer = e.ownerWindow.setTimeout(() => {
11156
+ up.get(n) === r && up.delete(n);
11157
+ }, 0);
11158
+ }, pp = (e) => up.get(e.pageTarget)?.target ?? null, mp = "mesurer.text-edit.intents", hp = "text-edit", gp = "text-edit.commit", _p = "text-edit.clear", vp = 600, yp = 360, bp = 24, xp = 80, Sp = "#0d99ff", Cp = "#0f172a", wp = "#8a8a8a", Tp = 288, Ep = "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)", Dp = /* @__PURE__ */ new Set([
11145
11159
  "HTML",
11146
11160
  "BODY",
11147
11161
  "SCRIPT",
@@ -11157,7 +11171,7 @@ var up = "mesurer.text-edit.intents", dp = "text-edit", fp = "text-edit.commit",
11157
11171
  "TEXTAREA",
11158
11172
  "SELECT",
11159
11173
  "OPTION"
11160
- ]), wp = [
11174
+ ]), Op = [
11161
11175
  "font-family",
11162
11176
  "font-size",
11163
11177
  "font-weight",
@@ -11166,10 +11180,10 @@ var up = "mesurer.text-edit.intents", dp = "text-edit", fp = "text-edit.commit",
11166
11180
  "letter-spacing",
11167
11181
  "text-transform",
11168
11182
  "color"
11169
- ], Tp = (e) => {
11183
+ ], kp = (e) => {
11170
11184
  let { origin: t, pathname: n, search: r } = e.location;
11171
11185
  return `${t}${n}${r}`;
11172
- }, Ep = (e, t) => `${t}-${e.crypto?.randomUUID?.() ?? `${Date.now()}-${Math.random().toString(36).slice(2)}`}`, Dp = (e) => ({
11186
+ }, Ap = (e, t) => `${t}-${e.crypto?.randomUUID?.() ?? `${Date.now()}-${Math.random().toString(36).slice(2)}`}`, jp = (e) => ({
11173
11187
  tag: e.fingerprintTag,
11174
11188
  id: e.fingerprintId,
11175
11189
  testId: e.fingerprintTestId,
@@ -11177,11 +11191,11 @@ var up = "mesurer.text-edit.intents", dp = "text-edit", fp = "text-edit.commit",
11177
11191
  ariaLabel: e.fingerprintAriaLabel,
11178
11192
  classes: e.fingerprintClasses,
11179
11193
  text: e.fingerprintText
11180
- }), Op = (e) => ({
11194
+ }), Mp = (e) => ({
11181
11195
  property: e.property,
11182
11196
  before: e.before,
11183
11197
  desired: e.desired
11184
- }), kp = (e) => ({
11198
+ }), Np = (e) => ({
11185
11199
  id: e.id,
11186
11200
  createdAt: e.createdAt,
11187
11201
  pageUrl: e.pageUrl,
@@ -11189,29 +11203,29 @@ var up = "mesurer.text-edit.intents", dp = "text-edit", fp = "text-edit.commit",
11189
11203
  nodeIndex: e.nodeIndex,
11190
11204
  before: e.beforeText,
11191
11205
  desired: e.desiredText,
11192
- styles: e.styleChanges.map(Op)
11193
- }), Ap = (e) => {
11206
+ styles: e.styleChanges.map(Mp)
11207
+ }), Pp = (e) => {
11194
11208
  let t = e.match(/^\s*/)?.[0] ?? "", n = e.slice(t.length), r = n.match(/\s*$/)?.[0] ?? "";
11195
11209
  return {
11196
11210
  leading: t,
11197
11211
  trailing: r,
11198
11212
  value: n.slice(0, Math.max(0, n.length - r.length))
11199
11213
  };
11200
- }, jp = (e) => e.map((e) => ({ ...e })), Mp = (e) => (e.split(",")[0] ?? e).trim().replace(/^['"]|['"]$/g, ""), Np = (e) => {
11214
+ }, Fp = (e) => e.map((e) => ({ ...e })), Ip = (e) => (e.split(",")[0] ?? e).trim().replace(/^['"]|['"]$/g, ""), Lp = (e) => {
11201
11215
  if (e === "bold") return 700;
11202
11216
  if (e === "normal") return 400;
11203
11217
  let t = Number(e);
11204
11218
  return Number.isFinite(t) ? t : 400;
11205
- }, Pp = (e) => e === "transparent" || /^rgba\([^)]*,\s*0(?:\.0+)?\s*\)$/.test(e) || /^rgba\(0\s+0\s+0\s*\/\s*0(?:\.0+)?\)$/.test(e), Fp = (e) => {
11219
+ }, Rp = (e) => e === "transparent" || /^rgba\([^)]*,\s*0(?:\.0+)?\s*\)$/.test(e) || /^rgba\(0\s+0\s+0\s*\/\s*0(?:\.0+)?\)$/.test(e), zp = (e) => {
11206
11220
  let t = /^rgba?\(\s*(\d+(?:\.\d+)?)\D+(\d+(?:\.\d+)?)\D+(\d+(?:\.\d+)?)/.exec(e);
11207
11221
  if (!t) return "#000000";
11208
11222
  let n = (e) => Math.max(0, Math.min(255, Math.round(Number(e)))).toString(16).padStart(2, "0");
11209
11223
  return `#${n(t[1])}${n(t[2])}${n(t[3])}`;
11210
- }, Ip = (e, t) => [...e.entries()].sort((e, t) => t[1] - e[1] || e[0].localeCompare(t[0])).slice(0, t).map(([e]) => e), Lp = (e, t) => t ? [t, ...e.filter((e) => e !== t)] : e;
11211
- function Rp(e, t) {
11224
+ }, Bp = (e, t) => [...e.entries()].sort((e, t) => t[1] - e[1] || e[0].localeCompare(t[0])).slice(0, t).map(([e]) => e), Vp = (e, t) => t ? [t, ...e.filter((e) => e !== t)] : e;
11225
+ function Hp(e, t) {
11212
11226
  let { ownerDocument: n, ownerWindow: r, pageTarget: i } = t, a = r, o = t.createWorkspaceRuntime(), s = new td(n, r), c = t.createInspectorMount();
11213
11227
  c.element.dataset.mesurerTextEditRuntime = "true", c.element.style.position = "fixed", c.element.style.inset = "0", c.element.style.zIndex = "2147483646", c.element.style.pointerEvents = "none", e.state.register({
11214
- id: up,
11228
+ id: mp,
11215
11229
  initial: { edits: [] },
11216
11230
  history: !0,
11217
11231
  persist: !0
@@ -11228,7 +11242,7 @@ function Rp(e, t) {
11228
11242
  let t = u.get(e.id);
11229
11243
  if (t?.element.isConnected && t.node.isConnected && x(t.element)) return t;
11230
11244
  u.delete(e.id);
11231
- let n = Dp(e);
11245
+ let n = jp(e);
11232
11246
  if (!kl(n)) return null;
11233
11247
  let r = [];
11234
11248
  try {
@@ -11290,7 +11304,7 @@ function Rp(e, t) {
11290
11304
  for (let e of d.values()) e.node.isConnected && e.node.nodeValue === e.desiredText && T(e.node, e.beforeText), e.element.isConnected && O(e.element, e.styleChanges);
11291
11305
  d.clear();
11292
11306
  }, j = () => {
11293
- let e = l().edits.filter((e) => e.pageUrl === Tp(r)), t = new Set(e.map((e) => e.id));
11307
+ let e = l().edits.filter((e) => e.pageUrl === kp(r)), t = new Set(e.map((e) => e.id));
11294
11308
  for (let [e, n] of d) t.has(e) && n.node.isConnected && n.element.isConnected || (n.node.isConnected && n.node.nodeValue === n.desiredText && T(n.node, n.beforeText), n.element.isConnected && O(n.element, n.styleChanges), d.delete(e));
11295
11309
  for (let t of e) {
11296
11310
  let e = w(t);
@@ -11331,9 +11345,9 @@ function Rp(e, t) {
11331
11345
  }, P = (e) => [...e.values()].sort((e, t) => t.count - e.count)[0] ?? null, F = (e) => {
11332
11346
  let t = /* @__PURE__ */ new Map(), n = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Map(), c = [], l = /* @__PURE__ */ new Map(), u = /* @__PURE__ */ new Map(), d = null;
11333
11347
  i instanceof a.HTMLElement && c.push(i);
11334
- for (let e of i.querySelectorAll("*")) if (e instanceof a.HTMLElement && c.push(e), c.length >= mp) break;
11348
+ for (let e of i.querySelectorAll("*")) if (e instanceof a.HTMLElement && c.push(e), c.length >= vp) break;
11335
11349
  for (let e of c) {
11336
- if (!x(e) || !S(e) || Cp.has(e.tagName)) continue;
11350
+ if (!x(e) || !S(e) || Dp.has(e.tagName)) continue;
11337
11351
  let i = r.getComputedStyle(e);
11338
11352
  if (i.display === "none" || i.visibility === "hidden") continue;
11339
11353
  let a = (e, t) => {
@@ -11380,17 +11394,17 @@ function Rp(e, t) {
11380
11394
  });
11381
11395
  }
11382
11396
  return {
11383
- fontFamilies: Lp(Ip(t, 12), f.fontFamily),
11384
- fontSizes: Lp(Ip(n, 12), f.fontSize),
11385
- fontWeights: Lp(Ip(o, 9).sort((e, t) => Np(e) - Np(t)), f.fontWeight),
11386
- colors: Lp(Ip(s, 10), f.color),
11397
+ fontFamilies: Vp(Bp(t, 12), f.fontFamily),
11398
+ fontSizes: Vp(Bp(n, 12), f.fontSize),
11399
+ fontWeights: Vp(Bp(o, 9).sort((e, t) => Lp(e) - Lp(t)), f.fontWeight),
11400
+ colors: Vp(Bp(s, 10), f.color),
11387
11401
  presets: p
11388
11402
  };
11389
11403
  }, I = (e) => {
11390
11404
  let t = e;
11391
11405
  for (; t;) {
11392
11406
  let e = r.getComputedStyle(t).backgroundColor;
11393
- if (e && !Pp(e)) return e;
11407
+ if (e && !Rp(e)) return e;
11394
11408
  t = t.parentElement;
11395
11409
  }
11396
11410
  return "Canvas";
@@ -11425,23 +11439,23 @@ function Rp(e, t) {
11425
11439
  }, V = (e, t) => {
11426
11440
  for (let [n, r] of t) B(e, n, r);
11427
11441
  pe(e), R(e, !0), me();
11428
- }, H = (e, t, n) => V(e, [[t, n]]), ee = (e, t) => wp.every((n) => {
11442
+ }, H = (e, t, n) => V(e, [[t, n]]), ee = (e, t) => Op.every((n) => {
11429
11443
  let r = t.styles[n];
11430
11444
  return r === void 0 || z(e, n) === E(n, r);
11431
11445
  }), U = (e) => e.catalog.presets.find((t) => ee(e, t)) ?? null, te = (e, t) => {
11432
11446
  e.menuOpen = !1;
11433
- let n = wp.flatMap((e) => {
11447
+ let n = Op.flatMap((e) => {
11434
11448
  let n = t.styles[e];
11435
11449
  return n === void 0 ? [] : [[e, n]];
11436
11450
  });
11437
11451
  V(e, n), e.editor.focus({ preventScroll: !0 });
11438
11452
  }, ne = (e) => {
11439
11453
  let t = z(e, "font-weight"), n = L(e, "font-weight");
11440
- if (n && Np(n.desired) >= 600 && Np(n.before) < 600) {
11454
+ if (n && Lp(n.desired) >= 600 && Lp(n.before) < 600) {
11441
11455
  H(e, "font-weight", n.before);
11442
11456
  return;
11443
11457
  }
11444
- H(e, "font-weight", Np(t) >= 600 ? "400" : "700");
11458
+ H(e, "font-weight", Lp(t) >= 600 ? "400" : "700");
11445
11459
  }, re = (e) => {
11446
11460
  let t = z(e, "font-style"), n = L(e, "font-style");
11447
11461
  if (n && n.desired !== "normal" && n.before === "normal") {
@@ -11463,7 +11477,7 @@ function Rp(e, t) {
11463
11477
  height: "32px",
11464
11478
  border: "0",
11465
11479
  borderRadius: "8px",
11466
- background: i ? vp : "transparent",
11480
+ background: i ? Sp : "transparent",
11467
11481
  color: i ? "#ffffff" : "#000000",
11468
11482
  font: "600 13px/1 ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, sans-serif",
11469
11483
  textDecoration: r === "Underline" ? "underline" : "none",
@@ -11473,7 +11487,7 @@ function Rp(e, t) {
11473
11487
  }), o.addEventListener("mouseenter", () => {
11474
11488
  i || (o.style.background = "rgba(0, 0, 0, 0.04)");
11475
11489
  }), o.addEventListener("mouseleave", () => {
11476
- o.style.background = i ? vp : "transparent";
11490
+ o.style.background = i ? Sp : "transparent";
11477
11491
  }), o.addEventListener("click", (t) => {
11478
11492
  t.preventDefault(), t.stopPropagation(), m === e && (a(), e.editor.focus({ preventScroll: !0 }));
11479
11493
  }), o;
@@ -11486,11 +11500,11 @@ function Rp(e, t) {
11486
11500
  gap: "8px",
11487
11501
  minHeight: "38px",
11488
11502
  padding: "0 8px",
11489
- color: yp,
11503
+ color: Cp,
11490
11504
  font: "500 12px/1 ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, sans-serif"
11491
11505
  });
11492
11506
  let c = n.createElement("span");
11493
- c.textContent = t, c.style.color = bp;
11507
+ c.textContent = t, c.style.color = wp;
11494
11508
  let l = n.createElement("select");
11495
11509
  l.setAttribute("aria-label", t), l.dataset.mesurerTextStyleSelect = t.toLowerCase().replace(/\s+/g, "-"), Object.assign(l.style, {
11496
11510
  width: "100%",
@@ -11498,13 +11512,13 @@ function Rp(e, t) {
11498
11512
  border: "0",
11499
11513
  borderRadius: "8px",
11500
11514
  background: "rgba(0, 0, 0, 0.035)",
11501
- color: yp,
11515
+ color: Cp,
11502
11516
  font: "500 12px/1 ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, sans-serif",
11503
11517
  padding: "0 8px",
11504
11518
  cursor: "pointer",
11505
11519
  outline: "none"
11506
11520
  });
11507
- for (let e of Lp(r, i)) {
11521
+ for (let e of Vp(r, i)) {
11508
11522
  let t = n.createElement("option");
11509
11523
  t.value = e, t.textContent = a(e), t.selected = e === i, l.append(t);
11510
11524
  }
@@ -11520,11 +11534,11 @@ function Rp(e, t) {
11520
11534
  gap: "8px",
11521
11535
  minHeight: "38px",
11522
11536
  padding: "0 8px",
11523
- color: yp,
11537
+ color: Cp,
11524
11538
  font: "500 12px/1 ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, sans-serif"
11525
11539
  });
11526
11540
  let o = n.createElement("span");
11527
- o.textContent = t, o.style.color = bp;
11541
+ o.textContent = t, o.style.color = wp;
11528
11542
  let s = n.createElement("input");
11529
11543
  s.type = "text", s.value = i, s.setAttribute("aria-label", t), s.dataset.mesurerTextStyleInput = t.toLowerCase().replace(/\s+/g, "-"), Object.assign(s.style, {
11530
11544
  width: "100%",
@@ -11533,7 +11547,7 @@ function Rp(e, t) {
11533
11547
  border: "0",
11534
11548
  borderRadius: "8px",
11535
11549
  background: "rgba(0, 0, 0, 0.035)",
11536
- color: yp,
11550
+ color: Cp,
11537
11551
  font: "500 12px/1 ui-monospace, SFMono-Regular, Menlo, monospace",
11538
11552
  padding: "0 8px",
11539
11553
  outline: "none"
@@ -11578,7 +11592,7 @@ function Rp(e, t) {
11578
11592
  a.textContent = t.label;
11579
11593
  let o = n.createElement("span");
11580
11594
  return o.textContent = ce(t.shortcut), Object.assign(o.style, {
11581
- color: bp,
11595
+ color: wp,
11582
11596
  font: "500 12px/1 ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, sans-serif",
11583
11597
  whiteSpace: "nowrap"
11584
11598
  }), i.append(a, o), i.addEventListener("mouseenter", () => {
@@ -11602,7 +11616,7 @@ function Rp(e, t) {
11602
11616
  for (let n of e.catalog.presets) t.append(le(e, n, r?.id === n.id));
11603
11617
  t.append(ue());
11604
11618
  let i = z(e, "font-family"), a = z(e, "font-size"), o = z(e, "font-weight"), s = z(e, "line-height"), c = z(e, "letter-spacing"), l = z(e, "color");
11605
- t.append(oe(e, "Font", e.catalog.fontFamilies, i, Mp, (t) => H(e, "font-family", t)), oe(e, "Size", e.catalog.fontSizes, a, (e) => e, (t) => H(e, "font-size", t)), oe(e, "Weight", e.catalog.fontWeights, o, (e) => e, (t) => H(e, "font-weight", t)), se(e, "Line", "line-height", s), se(e, "Tracking", "letter-spacing", c)), t.append(ue());
11619
+ t.append(oe(e, "Font", e.catalog.fontFamilies, i, Ip, (t) => H(e, "font-family", t)), oe(e, "Size", e.catalog.fontSizes, a, (e) => e, (t) => H(e, "font-size", t)), oe(e, "Weight", e.catalog.fontWeights, o, (e) => e, (t) => H(e, "font-weight", t)), se(e, "Line", "line-height", s), se(e, "Tracking", "letter-spacing", c)), t.append(ue());
11606
11620
  let u = n.createElement("div");
11607
11621
  Object.assign(u.style, {
11608
11622
  display: "grid",
@@ -11611,7 +11625,7 @@ function Rp(e, t) {
11611
11625
  });
11612
11626
  let d = n.createElement("div");
11613
11627
  d.textContent = "Text color", Object.assign(d.style, {
11614
- color: bp,
11628
+ color: wp,
11615
11629
  font: "500 12px/1 ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, sans-serif"
11616
11630
  });
11617
11631
  let f = n.createElement("div");
@@ -11627,7 +11641,7 @@ function Rp(e, t) {
11627
11641
  width: "22px",
11628
11642
  height: "22px",
11629
11643
  borderRadius: "50%",
11630
- border: t === l ? `2px solid ${vp}` : "1px solid rgba(0, 0, 0, 0.18)",
11644
+ border: t === l ? `2px solid ${Sp}` : "1px solid rgba(0, 0, 0, 0.18)",
11631
11645
  boxShadow: t === l ? "0 0 0 2px #ffffff inset" : "none",
11632
11646
  background: t,
11633
11647
  cursor: "pointer",
@@ -11637,7 +11651,7 @@ function Rp(e, t) {
11637
11651
  }), f.append(r);
11638
11652
  }
11639
11653
  let p = n.createElement("input");
11640
- p.type = "color", p.value = Fp(l), p.title = "Custom text color", p.setAttribute("aria-label", "Custom text color"), p.dataset.mesurerTextCustomColor = "true", Object.assign(p.style, {
11654
+ p.type = "color", p.value = zp(l), p.title = "Custom text color", p.setAttribute("aria-label", "Custom text color"), p.dataset.mesurerTextCustomColor = "true", Object.assign(p.style, {
11641
11655
  width: "28px",
11642
11656
  height: "28px",
11643
11657
  border: "0",
@@ -11670,7 +11684,7 @@ function Rp(e, t) {
11670
11684
  i.textContent = t?.label ?? "Text";
11671
11685
  let a = n.createElement("span");
11672
11686
  return a.textContent = "⌄", a.setAttribute("aria-hidden", "true"), Object.assign(a.style, {
11673
- color: bp,
11687
+ color: wp,
11674
11688
  fontSize: "15px",
11675
11689
  transform: e.menuOpen ? "rotate(180deg)" : "none",
11676
11690
  transformOrigin: "center"
@@ -11685,7 +11699,7 @@ function Rp(e, t) {
11685
11699
  let t = e.toolbar;
11686
11700
  t.replaceChildren();
11687
11701
  let n = z(e, "font-weight"), r = z(e, "font-style"), i = z(e, "text-decoration-line");
11688
- t.append(ae(e, "B", "Bold", Np(n) >= 600, () => ne(e)), ae(e, "I", "Italic", r === "italic" || r === "oblique", () => re(e)), ae(e, "U", "Underline", i.includes("underline"), () => ie(e)), fe(e)), de(e);
11702
+ t.append(ae(e, "B", "Bold", Lp(n) >= 600, () => ne(e)), ae(e, "I", "Italic", r === "italic" || r === "oblique", () => re(e)), ae(e, "U", "Underline", i.includes("underline"), () => ie(e)), fe(e)), de(e);
11689
11703
  }, me = () => {
11690
11704
  let e = m;
11691
11705
  if (!e || !e.element.isConnected) return;
@@ -11714,7 +11728,7 @@ function Rp(e, t) {
11714
11728
  e.toolbar.style.left = `${h}px`, e.toolbar.style.top = `${f}px`;
11715
11729
  let g = f, _ = f, v = !1;
11716
11730
  if (e.menuOpen) {
11717
- let t = e.menu.getBoundingClientRect(), n = Math.max(0, t.height), i = Math.max(xp, t.width), a = f - n - 8;
11731
+ let t = e.menu.getBoundingClientRect(), n = Math.max(0, t.height), i = Math.max(Tp, t.width), a = f - n - 8;
11718
11732
  v = a >= 8, g = v ? a : Math.min(r.innerHeight - n - 8, f + l + 8);
11719
11733
  let o = Math.min(Math.max(8, h + p - i), Math.max(8, r.innerWidth - i - 8));
11720
11734
  e.menu.style.left = `${o}px`, e.menu.style.top = `${Math.max(8, g)}px`, _ = Math.max(8, g) + n;
@@ -11749,7 +11763,7 @@ function Rp(e, t) {
11749
11763
  }, _e = () => {
11750
11764
  let t = m;
11751
11765
  if (!t) return;
11752
- let n = `${t.leading}${t.editor.value}${t.trailing}`, i = jp(t.styleChanges);
11766
+ let n = `${t.leading}${t.editor.value}${t.trailing}`, i = Fp(t.styleChanges);
11753
11767
  if (n === t.initialText && JSON.stringify(i) === JSON.stringify(t.initialStyleChanges)) {
11754
11768
  T(t.node, t.initialText), he();
11755
11769
  return;
@@ -11757,7 +11771,7 @@ function Rp(e, t) {
11757
11771
  p = {
11758
11772
  id: t.editId,
11759
11773
  createdAt: Date.now(),
11760
- pageUrl: Tp(r),
11774
+ pageUrl: kp(r),
11761
11775
  selector: t.selector,
11762
11776
  nodeIndex: t.nodeIndex,
11763
11777
  beforeText: t.beforeText,
@@ -11779,26 +11793,28 @@ function Rp(e, t) {
11779
11793
  beforeText: t.beforeText,
11780
11794
  desiredText: n,
11781
11795
  styleChanges: i
11782
- }), T(t.node, n), he(), e.command.execute(fp, void 0, { source: "text-inspector" }).catch(() => {
11796
+ }), T(t.node, n), he(), e.command.execute(gp, void 0, { source: "text-inspector" }).catch(() => {
11783
11797
  let e = d.get(t.editId);
11784
11798
  e && (e.node.isConnected && e.node.nodeValue === n && T(e.node, t.beforeText), e.element.isConnected && O(e.element, e.styleChanges)), d.delete(t.editId);
11785
11799
  });
11786
- }, ve = (e, t) => {
11787
- for (let r of n.elementsFromPoint(e, t)) {
11788
- if (!(r instanceof a.HTMLElement) || !x(r) || Cp.has(r.tagName) || r.isContentEditable) continue;
11789
- let e = Array.from(r.childNodes).map((e, t) => ({
11800
+ }, ve = (e, r) => {
11801
+ let i = pp(t);
11802
+ if (i && i.element.isConnected && i.node.isConnected && i.node.parentNode === i.element && i.node.nodeValue?.trim() && x(i.element) && !Dp.has(i.element.tagName) && !i.element.isContentEditable) return i;
11803
+ for (let t of n.elementsFromPoint(e, r)) {
11804
+ if (!(t instanceof a.HTMLElement) || !x(t) || Dp.has(t.tagName) || t.isContentEditable) continue;
11805
+ let e = Array.from(t.childNodes).map((e, t) => ({
11790
11806
  node: e,
11791
11807
  index: t
11792
11808
  })).filter(({ node: e }) => e.nodeType === a.Node.TEXT_NODE && !!e.nodeValue?.trim());
11793
11809
  if (e.length === 1) return {
11794
- element: r,
11810
+ element: t,
11795
11811
  node: e[0].node,
11796
11812
  nodeIndex: e[0].index
11797
11813
  };
11798
11814
  }
11799
11815
  return null;
11800
11816
  }, ye = (e, t, n, i) => {
11801
- let a = Tp(r);
11817
+ let a = kp(r);
11802
11818
  return l().edits.find((r) => {
11803
11819
  if (r.pageUrl !== a || r.nodeIndex !== i) return !1;
11804
11820
  let o = w(r);
@@ -11809,10 +11825,10 @@ function Rp(e, t) {
11809
11825
  let a = ve(e, t);
11810
11826
  if (!a) return;
11811
11827
  i?.preventDefault(), i?.stopImmediatePropagation(), ge();
11812
- let o = Dl(a.element), l = Ol(a.element), u = ye(a.element, a.node, o, a.nodeIndex), f = a.node.nodeValue ?? "", p = u ? d.get(u.id) : void 0, h = !!(u && p?.node === a.node && (f === p.desiredText || p.styleChanges.length > 0)), g = f, _ = f, v = [], y = u?.id ?? Ep(r, "text-edit");
11813
- if (u && h) g = u.beforeText, _ = u.desiredText, v = jp(u.styleChanges), T(a.node, _);
11828
+ let o = Dl(a.element), l = Ol(a.element), u = ye(a.element, a.node, o, a.nodeIndex), f = a.node.nodeValue ?? "", p = u ? d.get(u.id) : void 0, h = !!(u && p?.node === a.node && (f === p.desiredText || p.styleChanges.length > 0)), g = f, _ = f, v = [], y = u?.id ?? Ap(r, "text-edit");
11829
+ if (u && h) g = u.beforeText, _ = u.desiredText, v = Fp(u.styleChanges), T(a.node, _);
11814
11830
  else if (u && f === u.beforeText) {
11815
- g = u.beforeText, _ = u.desiredText, v = jp(u.styleChanges), T(a.node, _);
11831
+ g = u.beforeText, _ = u.desiredText, v = Fp(u.styleChanges), T(a.node, _);
11816
11832
  let e = k(a.element, v, []);
11817
11833
  d.set(u.id, {
11818
11834
  ...a,
@@ -11821,7 +11837,7 @@ function Rp(e, t) {
11821
11837
  styleChanges: e
11822
11838
  });
11823
11839
  } else u && f === u.desiredText && (g = f, _ = f, v = []);
11824
- let x = Ap(_), S = n.createElement("textarea");
11840
+ let x = Pp(_), S = n.createElement("textarea");
11825
11841
  S.dataset.mesurerTextEditor = "true", S.dataset.mesurerInspectorUi = "true", S.setAttribute("aria-label", "Edit text"), S.rows = 1, S.value = x.value, Object.assign(S.style, {
11826
11842
  position: "fixed",
11827
11843
  boxSizing: "border-box",
@@ -11846,14 +11862,14 @@ function Rp(e, t) {
11846
11862
  padding: "4px",
11847
11863
  borderRadius: "12px",
11848
11864
  background: "#ffffff",
11849
- color: yp,
11850
- boxShadow: Sp
11865
+ color: Cp,
11866
+ boxShadow: Ep
11851
11867
  });
11852
11868
  let w = n.createElement("div");
11853
11869
  w.className = "mesurer-toolbar-surface", w.dataset.mesurerTextStyleMenu = "true", w.dataset.mesurerInspectorUi = "true", w.setAttribute("role", "menu"), w.setAttribute("aria-label", "Text style menu"), Object.assign(w.style, {
11854
11870
  position: "fixed",
11855
11871
  zIndex: "2147483647",
11856
- width: `${xp}px`,
11872
+ width: `${Tp}px`,
11857
11873
  maxWidth: "calc(100vw - 16px)",
11858
11874
  maxHeight: "min(520px, calc(100vh - 16px))",
11859
11875
  overflowY: "auto",
@@ -11862,8 +11878,8 @@ function Rp(e, t) {
11862
11878
  padding: "6px",
11863
11879
  borderRadius: "12px",
11864
11880
  background: "#ffffff",
11865
- color: yp,
11866
- boxShadow: Sp
11881
+ color: Cp,
11882
+ boxShadow: Ep
11867
11883
  });
11868
11884
  let E = Uu(n, !1);
11869
11885
  E.dataset.mesurerTextInspectorInfo = "true", E.dataset.mesurerInspectorUi = "true", E.setAttribute("aria-label", "Text inspector"), Object.assign(E.style, {
@@ -11890,7 +11906,7 @@ function Rp(e, t) {
11890
11906
  nodeIndex: a.nodeIndex,
11891
11907
  selector: o,
11892
11908
  fingerprint: l,
11893
- initialStyleChanges: jp(v),
11909
+ initialStyleChanges: Fp(v),
11894
11910
  styleChanges: v,
11895
11911
  catalog: F(a.element)
11896
11912
  }, pe(m), R(m, !1), me(), S.addEventListener("input", () => {
@@ -11907,7 +11923,7 @@ function Rp(e, t) {
11907
11923
  return;
11908
11924
  }
11909
11925
  let n = r.performance.now(), i = h;
11910
- if (i && i.element === t.element && n - i.time <= hp && Math.hypot(e.clientX - i.x, e.clientY - i.y) <= gp) {
11926
+ if (i && i.element === t.element && n - i.time <= yp && Math.hypot(e.clientX - i.x, e.clientY - i.y) <= bp) {
11911
11927
  h = null, be(e.clientX, e.clientY, e);
11912
11928
  return;
11913
11929
  }
@@ -11934,7 +11950,7 @@ function Rp(e, t) {
11934
11950
  }
11935
11951
  _ &&= (r.cancelAnimationFrame(_), 0), v && r.clearTimeout(v), v = r.setTimeout(() => {
11936
11952
  v = 0, we();
11937
- }, _p);
11953
+ }, xp);
11938
11954
  }, Ee = (e) => {
11939
11955
  let t = m;
11940
11956
  if (!t) return;
@@ -11969,7 +11985,7 @@ function Rp(e, t) {
11969
11985
  e && t.key === "Enter" && !t.shiftKey && (t.preventDefault(), t.stopImmediatePropagation(), _e());
11970
11986
  return;
11971
11987
  }
11972
- t.key === "Escape" && y() === "text-inspector" && e.command.execute(pp, void 0, { source: "text-inspector-clear" });
11988
+ t.key === "Escape" && y() === "text-inspector" && e.command.execute(_p, void 0, { source: "text-inspector-clear" });
11973
11989
  }, Oe = new a.MutationObserver((e) => {
11974
11990
  for (let t of e) {
11975
11991
  if (t.type !== "characterData" || !(t.target instanceof a.Text)) continue;
@@ -11994,100 +12010,100 @@ function Rp(e, t) {
11994
12010
  "role",
11995
12011
  "aria-label"
11996
12012
  ]
11997
- }), e.command.register(fp, () => {
12013
+ }), e.command.register(gp, () => {
11998
12014
  let t = p;
11999
12015
  p = null, t && e.state.update("mesurer.text-edit.intents", (e) => {
12000
12016
  let n = e.edits.filter((e) => e.id !== t.id);
12001
12017
  return { edits: t.desiredText !== t.beforeText || t.styleChanges.length > 0 ? [...n, t].slice(-100) : n };
12002
12018
  });
12003
- }), e.command.register(pp, () => {
12004
- p = null, e.state.update(up, () => ({ edits: [] }));
12005
- }), e.service.provide(dp, {
12006
- intents: () => l().edits.map(kp),
12019
+ }), e.command.register(_p, () => {
12020
+ p = null, e.state.update(mp, () => ({ edits: [] }));
12021
+ }), e.service.provide(hp, {
12022
+ intents: () => l().edits.map(Np),
12007
12023
  intent: (e) => {
12008
12024
  let t = l().edits.find((t) => t.id === e);
12009
- return t ? kp(t) : null;
12025
+ return t ? Np(t) : null;
12010
12026
  },
12011
- clear: () => e.command.execute(pp)
12027
+ clear: () => e.command.execute(_p)
12012
12028
  });
12013
12029
  let ke = o.subscribe(we);
12014
12030
  e.state.subscribe(we), r.addEventListener("dblclick", xe, !0), r.addEventListener("pointerup", Se, !0), r.addEventListener("pointerdown", Ee, !0), r.addEventListener("keydown", De, !0), r.addEventListener("resize", we), r.addEventListener("scroll", Te, !0), we(), e.lifecycle.onDispose(() => {
12015
12031
  g = !0, _ && r.cancelAnimationFrame(_), _ = 0, v && r.clearTimeout(v), v = 0, ge(), A(), Oe.disconnect(), ke(), r.removeEventListener("dblclick", xe, !0), r.removeEventListener("pointerup", Se, !0), r.removeEventListener("pointerdown", Ee, !0), r.removeEventListener("keydown", De, !0), r.removeEventListener("resize", we), r.removeEventListener("scroll", Te, !0), u.clear(), o.dispose(), c.dispose();
12016
12032
  });
12017
12033
  }
12018
- var zp = "[data-mesurer-text-editor='true']", Bp = "[data-mesurer-text-edit-runtime='true']", Vp = "[data-mesurer-root='true']", Hp = "data-mesurer-direct-text-edit-active";
12019
- function Up(e, t, n) {
12020
- let { ownerWindow: r, portalTarget: i } = t, a = r, o = i.querySelectorAll(Bp), s = o.item(o.length - 1), c = n.rendererRoot ?? s?.closest(Vp) ?? null;
12034
+ var Up = "[data-mesurer-text-editor='true']", Wp = "[data-mesurer-text-edit-runtime='true']", Gp = "[data-mesurer-root='true']", Kp = "data-mesurer-direct-text-edit-active";
12035
+ function qp(e, t, n) {
12036
+ let { ownerWindow: r, portalTarget: i } = t, a = r, o = i.querySelectorAll(Wp), s = o.item(o.length - 1), c = n.rendererRoot ?? s?.closest(Gp) ?? null;
12021
12037
  if (!s?.isConnected || !c?.isConnected) return;
12022
12038
  let l = !1, u = () => {
12023
- let e = !!s.querySelector(zp);
12024
- e !== l && (l = e, l ? c.setAttribute(Hp, "true") : c.removeAttribute(Hp));
12039
+ let e = !!s.querySelector(Up);
12040
+ e !== l && (l = e, l ? c.setAttribute(Kp, "true") : c.removeAttribute(Kp));
12025
12041
  }, d = new a.MutationObserver(u);
12026
12042
  d.observe(s, {
12027
12043
  childList: !0,
12028
12044
  subtree: !0
12029
12045
  }), u(), e.lifecycle.onDispose(() => {
12030
- d.disconnect(), c.removeAttribute(Hp);
12046
+ d.disconnect(), c.removeAttribute(Kp);
12031
12047
  });
12032
12048
  }
12033
- var Wp = 8, Gp = 2, Kp = 4, qp = 20, Jp = "[data-mesurer-selected-measurement='true']", Yp = "[data-mesurer-measurement-chrome='true']", Xp = "[data-mesurer-measurement-label='true']", Zp = "[data-mesurer-text-editor='true']", Qp = "[data-mesurer-text-edit-ring='true']", $p = "[data-mesurer-text-inspector-info='true']", em = "[data-mesurer-text-inspector-placement-shell='true']", tm = "data-mesurer-measurement-label-clearance", nm = (e) => ({
12049
+ var Jp = 8, Yp = 2, Xp = 4, Zp = 20, Qp = "[data-mesurer-selected-measurement='true']", $p = "[data-mesurer-measurement-chrome='true']", em = "[data-mesurer-measurement-label='true']", tm = "[data-mesurer-text-editor='true']", nm = "[data-mesurer-text-edit-ring='true']", rm = "[data-mesurer-text-inspector-info='true']", im = "[data-mesurer-text-inspector-placement-shell='true']", am = "data-mesurer-measurement-label-clearance", om = (e) => ({
12034
12050
  left: e.left,
12035
12051
  top: e.top,
12036
12052
  right: e.right,
12037
12053
  bottom: e.bottom,
12038
12054
  width: e.width,
12039
12055
  height: e.height
12040
- }), rm = (e, t, n = Kp) => Math.abs(e.left - t.left) <= n && Math.abs(e.top - t.top) <= n && Math.abs(e.width - t.width) <= n && Math.abs(e.height - t.height) <= n, im = (e, t) => Math.max(0, Math.min(e.right, t.right) - Math.max(e.left, t.left)) > 0 && Math.max(0, Math.min(e.bottom, t.bottom) - Math.max(e.top, t.top)) > 0, am = (e) => e.reduce((e, t) => ({
12056
+ }), sm = (e, t, n = Xp) => Math.abs(e.left - t.left) <= n && Math.abs(e.top - t.top) <= n && Math.abs(e.width - t.width) <= n && Math.abs(e.height - t.height) <= n, cm = (e, t) => Math.max(0, Math.min(e.right, t.right) - Math.max(e.left, t.left)) > 0 && Math.max(0, Math.min(e.bottom, t.bottom) - Math.max(e.top, t.top)) > 0, lm = (e) => e.reduce((e, t) => ({
12041
12057
  left: Math.min(e.left, t.left),
12042
12058
  top: Math.min(e.top, t.top),
12043
12059
  right: Math.max(e.right, t.right),
12044
12060
  bottom: Math.max(e.bottom, t.bottom),
12045
12061
  width: Math.max(e.right, t.right) - Math.min(e.left, t.left),
12046
12062
  height: Math.max(e.bottom, t.bottom) - Math.min(e.top, t.top)
12047
- })), om = (e) => ({
12063
+ })), um = (e) => ({
12048
12064
  left: e.left,
12049
12065
  top: e.bottom + 2,
12050
12066
  right: e.right,
12051
- bottom: e.bottom + 2 + qp,
12067
+ bottom: e.bottom + 2 + Zp,
12052
12068
  width: e.width,
12053
- height: qp
12069
+ height: Zp
12054
12070
  });
12055
- function sm(e, t, n, r) {
12056
- let i = am(t.length > 0 ? [e, ...t] : [e, om(e)]), a = n.width, o = n.height, s = r.width - Wp, c = r.height - Wp, l = Math.max(Wp, s - a), u = Math.max(Wp, c - o), d = Math.min(Math.max(e.left + e.width / 2 - a / 2, Wp), l), f = Math.min(Math.max(e.top + e.height / 2 - o / 2, Wp), u), p = [
12071
+ function dm(e, t, n, r) {
12072
+ let i = lm(t.length > 0 ? [e, ...t] : [e, um(e)]), a = n.width, o = n.height, s = r.width - Jp, c = r.height - Jp, l = Math.max(Jp, s - a), u = Math.max(Jp, c - o), d = Math.min(Math.max(e.left + e.width / 2 - a / 2, Jp), l), f = Math.min(Math.max(e.top + e.height / 2 - o / 2, Jp), u), p = [
12057
12073
  {
12058
12074
  left: d,
12059
- top: i.top - Gp - o,
12075
+ top: i.top - Yp - o,
12060
12076
  placement: "above",
12061
12077
  maxHeight: null
12062
12078
  },
12063
12079
  {
12064
12080
  left: d,
12065
- top: i.bottom + Gp,
12081
+ top: i.bottom + Yp,
12066
12082
  placement: "below",
12067
12083
  maxHeight: null
12068
12084
  },
12069
12085
  {
12070
- left: i.right + Gp,
12086
+ left: i.right + Yp,
12071
12087
  top: f,
12072
12088
  placement: "side",
12073
12089
  maxHeight: null
12074
12090
  },
12075
12091
  {
12076
- left: i.left - Gp - a,
12092
+ left: i.left - Yp - a,
12077
12093
  top: f,
12078
12094
  placement: "side",
12079
12095
  maxHeight: null
12080
12096
  }
12081
- ], m = (e) => e.left >= Wp && e.top >= Wp && e.left + a <= s && e.top + o <= c, h = p.find((e) => m(e));
12097
+ ], m = (e) => e.left >= Jp && e.top >= Jp && e.left + a <= s && e.top + o <= c, h = p.find((e) => m(e));
12082
12098
  if (h) return h;
12083
12099
  let g = [{
12084
12100
  placement: "above",
12085
- top: Wp,
12086
- height: Math.max(0, i.top - Gp - Wp)
12101
+ top: Jp,
12102
+ height: Math.max(0, i.top - Yp - Jp)
12087
12103
  }, {
12088
12104
  placement: "below",
12089
- top: i.bottom + Gp,
12090
- height: Math.max(0, c - i.bottom - Gp)
12105
+ top: i.bottom + Yp,
12106
+ height: Math.max(0, c - i.bottom - Yp)
12091
12107
  }].sort((e, t) => t.height - e.height)[0];
12092
12108
  return g && g.height > 0 ? {
12093
12109
  left: d,
@@ -12096,42 +12112,42 @@ function sm(e, t, n, r) {
12096
12112
  maxHeight: g.height
12097
12113
  } : {
12098
12114
  left: d,
12099
- top: Wp,
12115
+ top: Jp,
12100
12116
  placement: "viewport",
12101
12117
  maxHeight: Math.max(0, r.height - 16)
12102
12118
  };
12103
12119
  }
12104
- var cm = (e, t) => ({
12120
+ var fm = (e, t) => ({
12105
12121
  value: e.style.getPropertyValue(t),
12106
12122
  priority: e.style.getPropertyPriority(t)
12107
- }), lm = (e, t, n, r = "") => {
12123
+ }), pm = (e, t, n, r = "") => {
12108
12124
  (e.style.getPropertyValue(t) !== n || e.style.getPropertyPriority(t) !== r) && e.style.setProperty(t, n, r);
12109
- }, um = (e, t, n) => {
12125
+ }, mm = (e, t, n) => {
12110
12126
  (e.style.getPropertyValue(t) !== n.value || e.style.getPropertyPriority(t) !== n.priority) && (n.value || n.priority ? e.style.setProperty(t, n.value, n.priority) : e.style.removeProperty(t));
12111
- }, dm = (e, t, n) => {
12127
+ }, hm = (e, t, n) => {
12112
12128
  e.getAttribute(t) !== n && e.setAttribute(t, n);
12113
- }, fm = (e, t) => {
12129
+ }, gm = (e, t) => {
12114
12130
  let n = t.bottom + 2, r = t.left + t.width / 2, i = e.left + e.width / 2;
12115
12131
  return Math.abs(e.top - n) <= 8 && Math.abs(i - r) <= 8;
12116
- }, pm = (e, t, n) => {
12132
+ }, _m = (e, t, n) => {
12117
12133
  let r = /* @__PURE__ */ new Set();
12118
- for (let t of e) for (let e of t.querySelectorAll(Jp)) r.add(e);
12134
+ for (let t of e) for (let e of t.querySelectorAll(Qp)) r.add(e);
12119
12135
  let i = [];
12120
12136
  for (let e of r) {
12121
12137
  let r = n.getComputedStyle(e);
12122
12138
  if (r.display === "none" || r.visibility === "hidden") continue;
12123
- let a = e.querySelector(Xp);
12139
+ let a = e.querySelector(em);
12124
12140
  if (!a) continue;
12125
12141
  let o = n.getComputedStyle(a);
12126
12142
  if (o.display === "none" || o.visibility === "hidden") continue;
12127
- let s = nm(a.getBoundingClientRect());
12143
+ let s = om(a.getBoundingClientRect());
12128
12144
  if (s.width <= 0 || s.height <= 0) continue;
12129
- let c = e.querySelector(Yp), l = c?.isConnected ? nm(c.getBoundingClientRect()) : null;
12130
- !(l && l.width > 0 && l.height > 0 && rm(l, t)) && !fm(s, t) || i.push(s);
12145
+ let c = e.querySelector($p), l = c?.isConnected ? om(c.getBoundingClientRect()) : null;
12146
+ !(l && l.width > 0 && l.height > 0 && sm(l, t)) && !gm(s, t) || i.push(s);
12131
12147
  }
12132
12148
  return i;
12133
- }, mm = (e, t) => e instanceof t.HTMLElement ? e.matches(Jp) || !!e.closest(Jp) || !!e.querySelector(Jp) : !1;
12134
- function hm(e, t, n = t.portalTarget) {
12149
+ }, vm = (e, t) => e instanceof t.HTMLElement ? e.matches(Qp) || !!e.closest(Qp) || !!e.querySelector(Qp) : !1;
12150
+ function ym(e, t, n = t.portalTarget) {
12135
12151
  let { ownerDocument: r, ownerWindow: i, portalTarget: a } = t, o = i, s = a.querySelectorAll("[data-mesurer-text-edit-runtime='true']"), c = s.item(s.length - 1);
12136
12152
  if (!c) return;
12137
12153
  let l = null, u = 0, d = !1, f = () => {
@@ -12141,42 +12157,42 @@ function hm(e, t, n = t.portalTarget) {
12141
12157
  let e = l;
12142
12158
  if (!e) return;
12143
12159
  let { shell: t, card: n } = e;
12144
- t.isConnected && (um(t, "left", e.shellLeft), um(t, "top", e.shellTop), um(t, "--mesurer-native-anchor-x", e.anchorX), um(t, "--mesurer-native-anchor-y", e.anchorY), e.marker === null ? t.removeAttribute(tm) : dm(t, tm, e.marker)), n.isConnected && (um(n, "max-height", e.cardMaxHeight), e.placement === null ? delete n.dataset.mesurerTextInspectorPlacement : n.dataset.mesurerTextInspectorPlacement !== e.placement && (n.dataset.mesurerTextInspectorPlacement = e.placement)), l = null;
12160
+ t.isConnected && (mm(t, "left", e.shellLeft), mm(t, "top", e.shellTop), mm(t, "--mesurer-native-anchor-x", e.anchorX), mm(t, "--mesurer-native-anchor-y", e.anchorY), e.marker === null ? t.removeAttribute(am) : hm(t, am, e.marker)), n.isConnected && (mm(n, "max-height", e.cardMaxHeight), e.placement === null ? delete n.dataset.mesurerTextInspectorPlacement : n.dataset.mesurerTextInspectorPlacement !== e.placement && (n.dataset.mesurerTextInspectorPlacement = e.placement)), l = null;
12145
12161
  }, m = (e, t) => {
12146
12162
  l = {
12147
12163
  shell: e,
12148
12164
  card: t,
12149
- shellLeft: cm(e, "left"),
12150
- shellTop: cm(e, "top"),
12151
- anchorX: cm(e, "--mesurer-native-anchor-x"),
12152
- anchorY: cm(e, "--mesurer-native-anchor-y"),
12153
- cardMaxHeight: cm(t, "max-height"),
12165
+ shellLeft: fm(e, "left"),
12166
+ shellTop: fm(e, "top"),
12167
+ anchorX: fm(e, "--mesurer-native-anchor-x"),
12168
+ anchorY: fm(e, "--mesurer-native-anchor-y"),
12169
+ cardMaxHeight: fm(t, "max-height"),
12154
12170
  placement: t.getAttribute("data-mesurer-text-inspector-placement"),
12155
- marker: e.getAttribute(tm)
12171
+ marker: e.getAttribute(am)
12156
12172
  };
12157
12173
  }, h = () => {
12158
12174
  if (d) return;
12159
- let e = c.querySelector(Zp), t = c.querySelector(em), n = c.querySelector($p), r = c.querySelectorAll(Qp), a = r.item(r.length - 1);
12175
+ let e = c.querySelector(tm), t = c.querySelector(im), n = c.querySelector(rm), r = c.querySelectorAll(nm), a = r.item(r.length - 1);
12160
12176
  if (!e?.isConnected || !t?.isConnected || !n?.isConnected || !a?.isConnected) {
12161
12177
  p();
12162
12178
  return;
12163
12179
  }
12164
12180
  l && (l.shell !== t || l.card !== n) && p();
12165
- let s = nm(a.getBoundingClientRect());
12181
+ let s = om(a.getBoundingClientRect());
12166
12182
  if (s.width <= 0 || s.height <= 0) return;
12167
12183
  let u = t.dataset.mesurerNativeScrollOwner === "typography" && t.dataset.mesurerNativeScrollAnchor === "offset", h = s.right > 0 && s.bottom > 0 && s.left < i.innerWidth && s.top < i.innerHeight;
12168
12184
  if (u && !h) return;
12169
- let g = pm(f(), s, o), _ = om(s), v = nm(n.getBoundingClientRect()), y = im(v, _) || g.some((e) => im(v, e));
12185
+ let g = _m(f(), s, o), _ = um(s), v = om(n.getBoundingClientRect()), y = cm(v, _) || g.some((e) => cm(v, e));
12170
12186
  if (!l && !y) return;
12171
12187
  l || m(t, n);
12172
- let b = Math.max(v.height, n.scrollHeight), x = sm(s, g, {
12188
+ let b = Math.max(v.height, n.scrollHeight), x = dm(s, g, {
12173
12189
  width: v.width,
12174
12190
  height: b
12175
12191
  }, {
12176
12192
  width: i.innerWidth,
12177
12193
  height: i.innerHeight
12178
12194
  });
12179
- u ? (lm(t, "--mesurer-native-anchor-x", `${x.left - s.left}px`), lm(t, "--mesurer-native-anchor-y", `${x.top - s.top}px`)) : (lm(t, "left", `${x.left}px`), lm(t, "top", `${x.top}px`)), x.maxHeight === null && l ? um(n, "max-height", l.cardMaxHeight) : x.maxHeight !== null && lm(n, "max-height", `${x.maxHeight}px`), n.dataset.mesurerTextInspectorPlacement !== x.placement && (n.dataset.mesurerTextInspectorPlacement = x.placement), dm(t, tm, "true");
12195
+ u ? (pm(t, "--mesurer-native-anchor-x", `${x.left - s.left}px`), pm(t, "--mesurer-native-anchor-y", `${x.top - s.top}px`)) : (pm(t, "left", `${x.left}px`), pm(t, "top", `${x.top}px`)), x.maxHeight === null && l ? mm(n, "max-height", l.cardMaxHeight) : x.maxHeight !== null && pm(n, "max-height", `${x.maxHeight}px`), n.dataset.mesurerTextInspectorPlacement !== x.placement && (n.dataset.mesurerTextInspectorPlacement = x.placement), hm(t, am, "true");
12180
12196
  }, g = () => {
12181
12197
  d || u || (u = i.requestAnimationFrame(() => {
12182
12198
  u = 0, h();
@@ -12187,7 +12203,7 @@ function hm(e, t, n = t.portalTarget) {
12187
12203
  subtree: !0
12188
12204
  });
12189
12205
  let v = n === a ? null : new o.MutationObserver((e) => {
12190
- e.some((e) => e.type === "attributes" ? mm(e.target, o) : mm(e.target, o) ? !0 : [...e.addedNodes, ...e.removedNodes].some((e) => mm(e, o))) && g();
12206
+ e.some((e) => e.type === "attributes" ? vm(e.target, o) : vm(e.target, o) ? !0 : [...e.addedNodes, ...e.removedNodes].some((e) => vm(e, o))) && g();
12191
12207
  });
12192
12208
  v?.observe(n, {
12193
12209
  childList: !0,
@@ -12198,8 +12214,8 @@ function hm(e, t, n = t.portalTarget) {
12198
12214
  d = !0, _.disconnect(), v?.disconnect(), i.removeEventListener("resize", g, !0), i.removeEventListener("dblclick", g, !0), u && i.cancelAnimationFrame(u), p();
12199
12215
  });
12200
12216
  }
12201
- var gm = "#0d99ff", _m = "#8a8a8a", vm = 288, ym = 1.5, bm = 80, xm = (e, t, n = 2) => Math.abs(e.left - t.left) <= n && Math.abs(e.top - t.top) <= n && Math.abs(e.width - t.width) <= n && Math.abs(e.height - t.height) <= n, Sm = (e, t, n) => Math.min(Math.max(e, t), n);
12202
- function Cm(e, t) {
12217
+ var bm = "#0d99ff", xm = "#8a8a8a", Sm = 288, Cm = 1.5, wm = 80, Tm = (e, t, n = 2) => Math.abs(e.left - t.left) <= n && Math.abs(e.top - t.top) <= n && Math.abs(e.width - t.width) <= n && Math.abs(e.height - t.height) <= n, Em = (e, t, n) => Math.min(Math.max(e, t), n);
12218
+ function Dm(e, t) {
12203
12219
  let { ownerDocument: n, ownerWindow: r, pageTarget: i, portalTarget: a } = t, o = r, s = a.querySelectorAll("[data-mesurer-text-edit-runtime='true']"), c = s.item(s.length - 1);
12204
12220
  if (!c) return;
12205
12221
  let l = c.closest("[data-mesurer-root='true']"), u = null, d = /* @__PURE__ */ new Map(), f = null, p = !1, m = null, h = null, g = null, _ = 0, v = 0, y = !1, b = !1, x = () => l?.querySelector("button[data-mesurer-builtin='text-inspector']") ?? null, S = () => {
@@ -12242,7 +12258,7 @@ function Cm(e, t) {
12242
12258
  ariaPressed: t.getAttribute("aria-pressed"),
12243
12259
  background: t.style.backgroundColor,
12244
12260
  color: t.style.color
12245
- }, t.setAttribute("aria-pressed", "true"), t.style.backgroundColor = gm, t.style.color = "#ffffff";
12261
+ }, t.setAttribute("aria-pressed", "true"), t.style.backgroundColor = bm, t.style.color = "#ffffff";
12246
12262
  return;
12247
12263
  }
12248
12264
  if (delete l.dataset.mesurerTypographyContextActive, !t || !u) {
@@ -12302,8 +12318,8 @@ function Cm(e, t) {
12302
12318
  height: "7px",
12303
12319
  flex: "0 0 7px",
12304
12320
  boxSizing: "border-box",
12305
- borderRight: `1.5px solid ${_m}`,
12306
- borderBottom: `1.5px solid ${_m}`,
12321
+ borderRight: `1.5px solid ${xm}`,
12322
+ borderBottom: `1.5px solid ${xm}`,
12307
12323
  color: "transparent",
12308
12324
  fontSize: "0",
12309
12325
  lineHeight: "0",
@@ -12321,9 +12337,9 @@ function Cm(e, t) {
12321
12337
  }, M = () => g?.isConnected ? g : (g = n.createElement("div"), g.dataset.mesurerTextCaret = "true", g.dataset.mesurerInspectorUi = "true", g.setAttribute("aria-hidden", "true"), Object.assign(g.style, {
12322
12338
  position: "fixed",
12323
12339
  zIndex: "2147483647",
12324
- width: `${ym}px`,
12340
+ width: `${Cm}px`,
12325
12341
  pointerEvents: "none",
12326
- transform: `translateX(-${ym / 2}px)`,
12342
+ transform: `translateX(-${Cm / 2}px)`,
12327
12343
  transformOrigin: "center"
12328
12344
  }), a.append(g), g.animate?.([
12329
12345
  {
@@ -12360,7 +12376,7 @@ function Cm(e, t) {
12360
12376
  ], s = [];
12361
12377
  for (let [e, t] of a) for (let r of n.elementsFromPoint(e, t)) !(r instanceof o.HTMLElement) || s.includes(r) || i.contains(r) && (r.closest("[data-mesurer-root='true'], [data-mesurer-inspector-ui='true']") || s.push(r));
12362
12378
  for (let t of s) {
12363
- if (!xm(t.getBoundingClientRect(), r)) continue;
12379
+ if (!Tm(t.getBoundingClientRect(), r)) continue;
12364
12380
  let n = Array.from(t.childNodes).filter((e) => e.nodeType === o.Node.TEXT_NODE).flatMap((t) => {
12365
12381
  let n = N(t, e.value);
12366
12382
  return n ? [{
@@ -12423,7 +12439,7 @@ function Cm(e, t) {
12423
12439
  j();
12424
12440
  return;
12425
12441
  }
12426
- let o = a.leadingLength + Sm(i, 0, e.value.length), s = F(a.node, o);
12442
+ let o = a.leadingLength + Em(i, 0, e.value.length), s = F(a.node, o);
12427
12443
  if (!s || s.left < 0 || s.top < 0 || s.left > r.innerWidth || s.top > r.innerHeight) {
12428
12444
  j();
12429
12445
  return;
@@ -12433,7 +12449,7 @@ function Cm(e, t) {
12433
12449
  left: `${s.left}px`,
12434
12450
  top: `${s.top}px`,
12435
12451
  height: `${Math.max(1, s.height)}px`,
12436
- background: c.color && c.color !== "transparent" ? c.color : gm
12452
+ background: c.color && c.color !== "transparent" ? c.color : bm
12437
12453
  });
12438
12454
  }, L = () => {
12439
12455
  if (_ = 0, y) return;
@@ -12448,7 +12464,7 @@ function Cm(e, t) {
12448
12464
  }, z = () => {
12449
12465
  _ &&= (r.cancelAnimationFrame(_), 0), g && j(), v && r.clearTimeout(v), v = r.setTimeout(() => {
12450
12466
  v = 0, R();
12451
- }, bm);
12467
+ }, wm);
12452
12468
  }, B = () => {
12453
12469
  m && (m.removeEventListener("input", R), m.removeEventListener("select", R), m.removeEventListener("keyup", R), m.removeEventListener("pointerup", R), m.removeEventListener("focus", R), m.removeEventListener("blur", R), m = null, h = null);
12454
12470
  }, V = (e) => {
@@ -12482,7 +12498,7 @@ function Cm(e, t) {
12482
12498
  }
12483
12499
  for (let e of Array.from(r.children)) e instanceof o.HTMLButtonElement && e.hasAttribute("data-mesurer-text-style-preset") || e.remove();
12484
12500
  Object.assign(r.style, {
12485
- width: `${vm}px`,
12501
+ width: `${Sm}px`,
12486
12502
  maxHeight: "min(260px, calc(100vh - 16px))",
12487
12503
  overflowY: "auto"
12488
12504
  }), r.setAttribute("aria-label", "Text presets");
@@ -12509,7 +12525,7 @@ function Cm(e, t) {
12509
12525
  y = !0, ee.disconnect(), r.removeEventListener("resize", R), r.removeEventListener("scroll", z, !0), _ && r.cancelAnimationFrame(_), v && r.clearTimeout(v), _ = 0, v = 0, B(), w(), j(), C(), E(!1);
12510
12526
  });
12511
12527
  }
12512
- var wm = "#0d99ff", Tm = "rgba(13, 153, 255, 0.22)", Em = /* @__PURE__ */ new Set([
12528
+ var Om = "#0d99ff", km = "rgba(13, 153, 255, 0.22)", Am = /* @__PURE__ */ new Set([
12513
12529
  "HTML",
12514
12530
  "BODY",
12515
12531
  "SCRIPT",
@@ -12525,10 +12541,10 @@ var wm = "#0d99ff", Tm = "rgba(13, 153, 255, 0.22)", Em = /* @__PURE__ */ new Se
12525
12541
  "TEXTAREA",
12526
12542
  "SELECT",
12527
12543
  "OPTION"
12528
- ]), Dm = /* @__PURE__ */ new WeakMap(), Om = (e, t) => Array.from(e.childNodes).map((e, t) => ({
12544
+ ]), jm = (e, t) => Array.from(e.childNodes).map((e, t) => ({
12529
12545
  node: e,
12530
12546
  index: t
12531
- })).filter((e) => e.node.nodeType === t.Node.TEXT_NODE && !!e.node.nodeValue?.trim()), km = (e, t, n, r, i) => {
12547
+ })).filter((e) => e.node.nodeType === t.Node.TEXT_NODE && !!e.node.nodeValue?.trim()), Mm = (e, t, n, r, i) => {
12532
12548
  let a = e, o = a.caretPositionFromPoint?.(r, i);
12533
12549
  if (o?.offsetNode instanceof t.Text) {
12534
12550
  let e = n.find((e) => e.node === o.offsetNode);
@@ -12551,50 +12567,43 @@ var wm = "#0d99ff", Tm = "rgba(13, 153, 255, 0.22)", Em = /* @__PURE__ */ new Se
12551
12567
  if (Array.from(a).some((e) => r >= e.left - 1 && r <= e.right + 1 && i >= e.top - 1 && i <= e.bottom + 1)) return t;
12552
12568
  }
12553
12569
  return null;
12554
- }, Am = (e, t, n) => Math.min(Math.max(e, t), n);
12555
- function jm(e, t) {
12570
+ }, Nm = (e, t, n) => Math.min(Math.max(e, t), n);
12571
+ function Pm(e, t) {
12556
12572
  let { ownerDocument: n, ownerWindow: r, pageTarget: i } = t, a = r, o = () => {
12557
12573
  let e = t.currentToolMode?.() ?? "none";
12558
12574
  return e === "text-inspector" || e === "select";
12559
12575
  }, s = (e) => Tl(e, i) && !e.closest("[data-mesurer-root='true'], [data-mesurer-inspector-ui='true']"), c = (e, i) => {
12560
- if (Dm.delete(t), o()) for (let o of n.elementsFromPoint(e, i)) {
12576
+ if (dp(t), o()) for (let o of n.elementsFromPoint(e, i)) {
12561
12577
  if (mo(o, r)) return;
12562
- if (!(o instanceof a.HTMLElement) || !s(o) || Em.has(o.tagName) || o.isContentEditable) continue;
12563
- let c = Om(o, a);
12578
+ if (!(o instanceof a.HTMLElement) || !s(o) || Am.has(o.tagName) || o.isContentEditable) continue;
12579
+ let c = jm(o, a);
12564
12580
  if (c.length === 0) continue;
12565
12581
  if (c.length === 1) {
12566
- Dm.set(t, {
12582
+ fp(t, {
12567
12583
  element: o,
12568
- node: c[0].node
12584
+ node: c[0].node,
12585
+ nodeIndex: c[0].index
12569
12586
  });
12570
12587
  return;
12571
12588
  }
12572
- let l = km(n, a, c, e, i);
12573
- if (!l) continue;
12574
- if (Dm.set(t, {
12575
- element: o,
12576
- node: l.node
12577
- }), Object.prototype.hasOwnProperty.call(o, "childNodes")) {
12578
- Dm.delete(t);
12579
- continue;
12589
+ let l = Mm(n, a, c, e, i);
12590
+ if (l) {
12591
+ fp(t, {
12592
+ element: o,
12593
+ node: l.node,
12594
+ nodeIndex: l.index
12595
+ });
12596
+ return;
12580
12597
  }
12581
- let u = Array.from(o.childNodes).map((e, t) => t === l.index || e.nodeType !== a.Node.TEXT_NODE || !e.nodeValue?.trim() ? e : n.createComment("mesurer-non-target-text")), d = () => u;
12582
- Object.defineProperty(o, "childNodes", {
12583
- configurable: !0,
12584
- get: d
12585
- }), r.setTimeout(() => {
12586
- Object.getOwnPropertyDescriptor(o, "childNodes")?.get === d && Reflect.deleteProperty(o, "childNodes");
12587
- }, 0);
12588
- return;
12589
12598
  }
12590
12599
  }, l = (e) => c(e.clientX, e.clientY), u = (e) => {
12591
12600
  !e.pointerType || e.pointerType === "mouse" || c(e.clientX, e.clientY);
12592
12601
  };
12593
12602
  r.addEventListener("dblclick", l, !0), r.addEventListener("pointerup", u, !0), e.lifecycle.onDispose(() => {
12594
- Dm.delete(t), r.removeEventListener("dblclick", l, !0), r.removeEventListener("pointerup", u, !0);
12603
+ dp(t), r.removeEventListener("dblclick", l, !0), r.removeEventListener("pointerup", u, !0);
12595
12604
  });
12596
12605
  }
12597
- function Mm(e, t) {
12606
+ function Fm(e, t) {
12598
12607
  let { ownerDocument: n, ownerWindow: r, pageTarget: i, portalTarget: a } = t, o = r, s = a.querySelectorAll("[data-mesurer-text-edit-runtime='true']"), c = s.item(s.length - 1);
12599
12608
  if (!c) return;
12600
12609
  let l = t.createWorkspaceRuntime(), u = null, d = [], f = null, p = null, m = !1, h = 0, g = !1, _ = () => {
@@ -12611,7 +12620,7 @@ function Mm(e, t) {
12611
12620
  zIndex: "2147483644",
12612
12621
  pointerEvents: "none",
12613
12622
  borderRadius: "2px",
12614
- background: Tm,
12623
+ background: km,
12615
12624
  transition: "none",
12616
12625
  animation: "none"
12617
12626
  }), a.append(r), d[e] = r, r;
@@ -12623,7 +12632,7 @@ function Mm(e, t) {
12623
12632
  pointerEvents: "none",
12624
12633
  boxSizing: "border-box",
12625
12634
  background: "transparent",
12626
- boxShadow: `inset 0 0 0 1.5px ${wm}`,
12635
+ boxShadow: `inset 0 0 0 1.5px ${Om}`,
12627
12636
  transition: "none",
12628
12637
  animation: "none"
12629
12638
  }), c.append(u), u), S = () => {
@@ -12640,7 +12649,7 @@ function Mm(e, t) {
12640
12649
  v();
12641
12650
  return;
12642
12651
  }
12643
- let o = t.node.nodeValue ?? "", s = o.length - o.trimStart().length, c = o.length - o.trimEnd().length, l = Math.max(0, o.length - s - c), u = s + Am(Math.min(i, a), 0, l), d = s + Am(Math.max(i, a), 0, l);
12652
+ let o = t.node.nodeValue ?? "", s = o.length - o.trimStart().length, c = o.length - o.trimEnd().length, l = Math.max(0, o.length - s - c), u = s + Nm(Math.min(i, a), 0, l), d = s + Nm(Math.max(i, a), 0, l);
12644
12653
  if (u === d) {
12645
12654
  v();
12646
12655
  return;
@@ -12674,12 +12683,13 @@ function Mm(e, t) {
12674
12683
  }, T = (e) => {
12675
12684
  let t = l.currentSelection().elements.filter((e) => e.isConnected && Tl(e, i) && !e.closest("[data-mesurer-root='true'], [data-mesurer-inspector-ui='true']"));
12676
12685
  if (t.length !== 1) return null;
12677
- let n = t[0], r = Om(n, o);
12686
+ let n = t[0], r = jm(n, o);
12678
12687
  if (!r.length) return null;
12679
12688
  let a = e.value.trim(), s = r.find(({ node: e }) => (e.nodeValue ?? "").trim() === a) ?? (r.length === 1 ? r[0] : null);
12680
12689
  return s ? {
12681
12690
  element: n,
12682
- node: s.node
12691
+ node: s.node,
12692
+ nodeIndex: s.index
12683
12693
  } : null;
12684
12694
  }, E = () => {
12685
12695
  if (g) return;
@@ -12689,7 +12699,7 @@ function Mm(e, t) {
12689
12699
  return;
12690
12700
  }
12691
12701
  e.style.opacity = "0", e.style.background = "transparent", e.style.boxShadow = "none", w(e);
12692
- let n = Dm.get(t) ?? null ?? p ?? T(e);
12702
+ let n = pp(t) ?? p ?? T(e);
12693
12703
  n?.element.isConnected && n.node.isConnected && (p = n);
12694
12704
  let a = n?.element ?? null, o = a?.isConnected && Tl(a, i) && !a.closest("[data-mesurer-root='true'], [data-mesurer-inspector-ui='true']") ? a : null, s = o?.getBoundingClientRect() ?? e.getBoundingClientRect(), l = r.getComputedStyle(o ?? e), u = x();
12695
12705
  Object.assign(u.style, {
@@ -12711,25 +12721,25 @@ function Mm(e, t) {
12711
12721
  capture: !0,
12712
12722
  passive: !0
12713
12723
  }), E(), e.lifecycle.onDispose(() => {
12714
- g = !0, Dm.delete(t), O.disconnect(), r.removeEventListener("resize", S), r.removeEventListener("scroll", D, !0), h && r.cancelAnimationFrame(h), f && (f.removeEventListener("input", S), f.removeEventListener("select", S), f.removeEventListener("keyup", S), f.removeEventListener("pointerup", S)), p = null, v(), _(), l.dispose();
12724
+ g = !0, dp(t), O.disconnect(), r.removeEventListener("resize", S), r.removeEventListener("scroll", D, !0), h && r.cancelAnimationFrame(h), f && (f.removeEventListener("input", S), f.removeEventListener("select", S), f.removeEventListener("keyup", S), f.removeEventListener("pointerup", S)), p = null, v(), _(), l.dispose();
12715
12725
  });
12716
12726
  }
12717
- var Nm = "[data-mesurer-selected-measurement='true']", Pm = "[data-mesurer-hover-measurement='true']", Fm = "[data-mesurer-text-editor='true']", Im = "data-mesurer-direct-edit-selection-suppressed", Lm = "data-mesurer-direct-edit-hover-suppressed";
12718
- function Rm(e, t, n = t.portalTarget) {
12727
+ var Im = "[data-mesurer-selected-measurement='true']", Lm = "[data-mesurer-hover-measurement='true']", Rm = "[data-mesurer-text-editor='true']", zm = "data-mesurer-direct-edit-selection-suppressed", Bm = "data-mesurer-direct-edit-hover-suppressed";
12728
+ function Vm(e, t, n = t.portalTarget) {
12719
12729
  let { ownerDocument: r, ownerWindow: i, portalTarget: a } = t, o = i, s = a.querySelectorAll("[data-mesurer-text-edit-runtime='true']"), c = s.item(s.length - 1);
12720
12730
  if (!c) return;
12721
12731
  let l = t.createWorkspaceRuntime(), u = /* @__PURE__ */ new Map(), d = /* @__PURE__ */ new Map(), f = /* @__PURE__ */ new Set(), p = /* @__PURE__ */ new Set(), m = /* @__PURE__ */ new Set(), h = !1, g = !1, _ = !1, v = null, y = () => {
12722
12732
  let e = [a];
12723
12733
  return n !== a && e.push(n), r.body && !e.includes(r.body) && e.push(r.body), e;
12724
12734
  }, b = (e) => {
12725
- e.matches(Nm) && f.add(e), e.matches(Pm) && p.add(e);
12735
+ e.matches(Im) && f.add(e), e.matches(Lm) && p.add(e);
12726
12736
  }, x = (e) => {
12727
12737
  if (e instanceof o.HTMLElement) {
12728
12738
  b(e);
12729
- for (let t of e.querySelectorAll(`${Nm}, ${Pm}`)) b(t);
12739
+ for (let t of e.querySelectorAll(`${Im}, ${Lm}`)) b(t);
12730
12740
  }
12731
12741
  }, S = (e) => {
12732
- for (let t of e.querySelectorAll(`${Nm}, ${Pm}`)) b(t);
12742
+ for (let t of e.querySelectorAll(`${Im}, ${Lm}`)) b(t);
12733
12743
  };
12734
12744
  for (let e of y()) S(e);
12735
12745
  let C = (e, t, n) => {
@@ -12747,28 +12757,28 @@ function Rm(e, t, n = t.portalTarget) {
12747
12757
  if (!e.isConnected) {
12748
12758
  f.delete(e);
12749
12759
  let t = u.get(e);
12750
- t && w(e, t, u, Im);
12760
+ t && w(e, t, u, zm);
12751
12761
  continue;
12752
12762
  }
12753
- C(e, u, Im);
12763
+ C(e, u, zm);
12754
12764
  }
12755
- for (let [e, t] of Array.from(u)) (!e.isConnected || !f.has(e)) && w(e, t, u, Im);
12765
+ for (let [e, t] of Array.from(u)) (!e.isConnected || !f.has(e)) && w(e, t, u, zm);
12756
12766
  }, D = () => {
12757
12767
  let e = l.hoveredElement(), t = l.currentSelection().elements, n = e ? m.has(e) : !1, r = e ? t.includes(e) : !1;
12758
12768
  if (!n && !r) {
12759
- T(d, Lm);
12769
+ T(d, Bm);
12760
12770
  return;
12761
12771
  }
12762
12772
  for (let e of Array.from(p)) {
12763
12773
  if (!e.isConnected) {
12764
12774
  p.delete(e);
12765
12775
  let t = d.get(e);
12766
- t && w(e, t, d, Lm);
12776
+ t && w(e, t, d, Bm);
12767
12777
  continue;
12768
12778
  }
12769
- C(e, d, Lm);
12779
+ C(e, d, Bm);
12770
12780
  }
12771
- for (let [e, t] of Array.from(d)) (!e.isConnected || !p.has(e)) && w(e, t, d, Lm);
12781
+ for (let [e, t] of Array.from(d)) (!e.isConnected || !p.has(e)) && w(e, t, d, Bm);
12772
12782
  }, O = () => {
12773
12783
  _ || g || (g = !0, i.queueMicrotask(() => {
12774
12784
  g = !1, M();
@@ -12791,11 +12801,11 @@ function Rm(e, t, n = t.portalTarget) {
12791
12801
  v?.disconnect(), v = null;
12792
12802
  }, M = () => {
12793
12803
  if (!_) {
12794
- if (c.querySelector(Fm)) {
12804
+ if (c.querySelector(Rm)) {
12795
12805
  h || (m = new Set(l.currentSelection().elements)), h = !0, E(), D(), A();
12796
12806
  return;
12797
12807
  }
12798
- !h && u.size === 0 && d.size === 0 || (h = !1, m.clear(), j(), T(u, Im), T(d, Lm));
12808
+ !h && u.size === 0 && d.size === 0 || (h = !1, m.clear(), j(), T(u, zm), T(d, Bm));
12799
12809
  }
12800
12810
  }, N = new o.MutationObserver(k);
12801
12811
  N.observe(c, {
@@ -12804,39 +12814,39 @@ function Rm(e, t, n = t.portalTarget) {
12804
12814
  });
12805
12815
  let P = l.subscribe(O);
12806
12816
  M(), e.lifecycle.onDispose(() => {
12807
- _ = !0, N.disconnect(), j(), P(), l.dispose(), T(u, Im), T(d, Lm), f.clear(), p.clear();
12817
+ _ = !0, N.disconnect(), j(), P(), l.dispose(), T(u, zm), T(d, Bm), f.clear(), p.clear();
12808
12818
  });
12809
12819
  }
12810
- var zm = "[data-mesurer-text-editor='true']", Bm = "[data-mesurer-text-edit-ring='true']", Vm = "[data-mesurer-text-inspector-info='true']", Hm = "[data-mesurer-text-inspector-placement-shell='true']", Um = "[data-mesurer-measurement='true']", Wm = "[data-mesurer-measurement-chrome='true']", Gm = "[data-mesurer-measurement-label='true']", Km = 20, qm = .75, Jm = "data-mesurer-symmetric-measurement-spacing", Ym = "mesurerSymmetricCardOffsetY", Xm = (e) => ({
12820
+ var Hm = "[data-mesurer-text-editor='true']", Um = "[data-mesurer-text-edit-ring='true']", Wm = "[data-mesurer-text-inspector-info='true']", Gm = "[data-mesurer-text-inspector-placement-shell='true']", Km = "[data-mesurer-measurement='true']", qm = "[data-mesurer-measurement-chrome='true']", Jm = "[data-mesurer-measurement-label='true']", Ym = 20, Xm = .75, Zm = "data-mesurer-symmetric-measurement-spacing", Qm = "mesurerSymmetricCardOffsetY", $m = (e) => ({
12811
12821
  left: e.left,
12812
12822
  top: e.top,
12813
12823
  right: e.right,
12814
12824
  bottom: e.bottom,
12815
12825
  width: e.width,
12816
12826
  height: e.height
12817
- }), Zm = (e, t) => Math.abs(e.left - t.left) + Math.abs(e.top - t.top) + Math.abs(e.width - t.width) + Math.abs(e.height - t.height), Qm = (e) => ({
12827
+ }), eh = (e, t) => Math.abs(e.left - t.left) + Math.abs(e.top - t.top) + Math.abs(e.width - t.width) + Math.abs(e.height - t.height), th = (e) => ({
12818
12828
  left: e.left,
12819
12829
  top: e.bottom + 2,
12820
12830
  right: e.right,
12821
- bottom: e.bottom + 2 + Km,
12831
+ bottom: e.bottom + 2 + Ym,
12822
12832
  width: e.width,
12823
- height: Km
12824
- }), $m = (e, t, n) => e.style.getPropertyValue(t) !== n && (e.style.setProperty(t, n), !0);
12825
- function eh(e, t, n = t.portalTarget) {
12833
+ height: Ym
12834
+ }), nh = (e, t, n) => e.style.getPropertyValue(t) !== n && (e.style.setProperty(t, n), !0);
12835
+ function rh(e, t, n = t.portalTarget) {
12826
12836
  let { ownerDocument: r, ownerWindow: i, portalTarget: a } = t, o = i, s = a.querySelectorAll("[data-mesurer-text-edit-runtime='true']"), c = s.item(s.length - 1);
12827
12837
  if (!c) return;
12828
12838
  let l = /* @__PURE__ */ new Set(), u = null, d = null, f = null, p = null, m = !1, h = 0, g = !1, _ = (e) => {
12829
- e instanceof o.HTMLTextAreaElement && e.matches(zm) && (u = e), e.matches(Bm) && (d = e), e.matches(Hm) && (f = e), e.matches(Vm) && (p = e), e.matches(Gm) && l.add(e);
12839
+ e instanceof o.HTMLTextAreaElement && e.matches(Hm) && (u = e), e.matches(Um) && (d = e), e.matches(Gm) && (f = e), e.matches(Wm) && (p = e), e.matches(Jm) && l.add(e);
12830
12840
  }, v = (e) => {
12831
- if (e instanceof o.HTMLElement && (_(e), e === c || e.matches(`${Um}, [data-mesurer-text-edit-runtime='true'], [data-mesurer-root='true']`))) for (let t of [
12832
- zm,
12833
- Bm,
12841
+ if (e instanceof o.HTMLElement && (_(e), e === c || e.matches(`${Km}, [data-mesurer-text-edit-runtime='true'], [data-mesurer-root='true']`))) for (let t of [
12834
12842
  Hm,
12835
- Vm,
12836
- Gm
12843
+ Um,
12844
+ Gm,
12845
+ Wm,
12846
+ Jm
12837
12847
  ]) for (let n of e.querySelectorAll(t)) _(n);
12838
12848
  }, y = (e) => {
12839
- for (let t of e.querySelectorAll(Um)) v(t);
12849
+ for (let t of e.querySelectorAll(Km)) v(t);
12840
12850
  };
12841
12851
  v(c), y(a), n !== a && y(n);
12842
12852
  let b = (e) => {
@@ -12846,27 +12856,27 @@ function eh(e, t, n = t.portalTarget) {
12846
12856
  l.delete(n);
12847
12857
  continue;
12848
12858
  }
12849
- let r = n.closest(Um);
12859
+ let r = n.closest(Km);
12850
12860
  if (!(r instanceof o.HTMLElement) || r.getAttribute("data-mesurer-selected-measurement") !== "true") continue;
12851
- let i = Xm(n.getBoundingClientRect());
12861
+ let i = $m(n.getBoundingClientRect());
12852
12862
  if (i.width <= 0 || i.height <= 0) continue;
12853
- let a = r.querySelector(Wm), s = a?.isConnected ? Xm(a.getBoundingClientRect()) : null, c = e.bottom + 2, u = e.left + e.width / 2, d = i.left + i.width / 2, f = s && s.width > 0 && s.height > 0 ? Zm(s, e) : Math.abs(i.top - c) + Math.abs(d - u);
12863
+ let a = r.querySelector(qm), s = a?.isConnected ? $m(a.getBoundingClientRect()) : null, c = e.bottom + 2, u = e.left + e.width / 2, d = i.left + i.width / 2, f = s && s.width > 0 && s.height > 0 ? eh(s, e) : Math.abs(i.top - c) + Math.abs(d - u);
12854
12864
  f > 32 || (!t || f < t.score) && (t = {
12855
12865
  rect: i,
12856
12866
  score: f
12857
12867
  });
12858
12868
  }
12859
- return t?.rect ?? Qm(e);
12869
+ return t?.rect ?? th(e);
12860
12870
  }, x = () => {
12861
12871
  if (g || !u?.isConnected || !d?.isConnected || !f?.isConnected || !p?.isConnected) return;
12862
- let e = Xm(d.getBoundingClientRect());
12872
+ let e = $m(d.getBoundingClientRect());
12863
12873
  if (e.width <= 0 || e.height <= 0 || !(e.right > 0 && e.bottom > 0 && e.left < i.innerWidth && e.top < i.innerHeight)) return;
12864
- let t = Xm(p.getBoundingClientRect());
12874
+ let t = $m(p.getBoundingClientRect());
12865
12875
  if (t.width <= 0 || t.height <= 0 || t.top < e.bottom) return;
12866
12876
  let n = b(e), r = n.top - e.bottom, a = t.top - n.bottom, o = a - r;
12867
- if (f.setAttribute(Jm, "true"), f.dataset.mesurerSymmetricSourceGap = r.toFixed(3), f.dataset.mesurerSymmetricTypographyGap = a.toFixed(3), Math.abs(o) <= qm) return;
12868
- let s = Number.parseFloat(p.dataset[Ym] ?? "0"), c = (Number.isFinite(s) ? s : 0) - o;
12869
- p.dataset[Ym] = c.toFixed(3), $m(p, "translate", `0px ${c}px`);
12877
+ if (f.setAttribute(Zm, "true"), f.dataset.mesurerSymmetricSourceGap = r.toFixed(3), f.dataset.mesurerSymmetricTypographyGap = a.toFixed(3), Math.abs(o) <= Xm) return;
12878
+ let s = Number.parseFloat(p.dataset[Qm] ?? "0"), c = (Number.isFinite(s) ? s : 0) - o;
12879
+ p.dataset[Qm] = c.toFixed(3), nh(p, "translate", `0px ${c}px`);
12870
12880
  }, S = () => {
12871
12881
  g || m || (m = !0, i.queueMicrotask(() => {
12872
12882
  m = !1, !h && (h = i.requestAnimationFrame(() => {
@@ -12881,7 +12891,7 @@ function eh(e, t, n = t.portalTarget) {
12881
12891
  t = !0;
12882
12892
  continue;
12883
12893
  }
12884
- n.target instanceof o.HTMLElement && n.target.matches(Hm) && (_(n.target), t = !0);
12894
+ n.target instanceof o.HTMLElement && n.target.matches(Gm) && (_(n.target), t = !0);
12885
12895
  }
12886
12896
  t && S();
12887
12897
  });
@@ -12897,7 +12907,7 @@ function eh(e, t, n = t.portalTarget) {
12897
12907
  });
12898
12908
  let w = new o.MutationObserver((e) => {
12899
12909
  let t = !1;
12900
- for (let n of e) for (let e of n.addedNodes) e instanceof o.HTMLElement && e.matches(`${Um}, [data-mesurer-root='true']`) && (v(e), t = !0);
12910
+ for (let n of e) for (let e of n.addedNodes) e instanceof o.HTMLElement && e.matches(`${Km}, [data-mesurer-root='true']`) && (v(e), t = !0);
12901
12911
  t && S();
12902
12912
  }), T = /* @__PURE__ */ new Set(), E = (e, t) => {
12903
12913
  T.has(e) || e === c || (T.add(e), w.observe(e, {
@@ -12906,10 +12916,10 @@ function eh(e, t, n = t.portalTarget) {
12906
12916
  }));
12907
12917
  };
12908
12918
  E(a, a !== r.body), n !== a && E(n, !0), r.body && E(r.body, !1), i.addEventListener("resize", S, !0), i.addEventListener("dblclick", S, !0), S(), e.lifecycle.onDispose(() => {
12909
- g = !0, C.disconnect(), w.disconnect(), i.removeEventListener("resize", S, !0), i.removeEventListener("dblclick", S, !0), h && i.cancelAnimationFrame(h), l.clear(), f?.removeAttribute(Jm), p && (p.style.removeProperty("translate"), delete p.dataset[Ym]);
12919
+ g = !0, C.disconnect(), w.disconnect(), i.removeEventListener("resize", S, !0), i.removeEventListener("dblclick", S, !0), h && i.cancelAnimationFrame(h), l.clear(), f?.removeAttribute(Zm), p && (p.style.removeProperty("translate"), delete p.dataset[Qm]);
12910
12920
  });
12911
12921
  }
12912
- var th = (e, t) => {
12922
+ var ih = (e, t) => {
12913
12923
  let n = {
12914
12924
  document: e.document,
12915
12925
  location: e.location,
@@ -12946,8 +12956,8 @@ var th = (e, t) => {
12946
12956
  requestAnimationFrame: t
12947
12957
  };
12948
12958
  return Object.defineProperties(Object.create(null), Object.getOwnPropertyDescriptors(n));
12949
- }, nh = (e, t) => {
12950
- let n = t.ownerWindow, r = !1, i = !1, a = null, o = th(n, (e) => n.requestAnimationFrame((t) => {
12959
+ }, ah = (e, t) => {
12960
+ let n = t.ownerWindow, r = !1, i = !1, a = null, o = ih(n, (e) => n.requestAnimationFrame((t) => {
12951
12961
  r = !0;
12952
12962
  try {
12953
12963
  e(t);
@@ -12981,7 +12991,7 @@ var th = (e, t) => {
12981
12991
  currentToolMode: s,
12982
12992
  createInspectorMount: c
12983
12993
  };
12984
- }, rh = "#f8fafc", ih = "#f1f5f9", ah = "#e2e8f0", oh = "#64748b", sh = "#334155", ch = "#0f172a", lh = "#0d99ff", uh = 8, dh = 8, fh = (e, t) => {
12994
+ }, oh = "#f8fafc", sh = "#f1f5f9", ch = "#e2e8f0", lh = "#64748b", uh = "#334155", dh = "#0f172a", fh = "#0d99ff", ph = 8, mh = 8, hh = (e, t) => {
12985
12995
  let n = /* @__PURE__ */ new Map(), r = Array.from(e.children).filter((e) => e instanceof t.HTMLElement);
12986
12996
  for (let e = 0; e + 1 < r.length; e += 2) {
12987
12997
  let t = r[e], i = r[e + 1], a = t.textContent?.trim();
@@ -12991,8 +13001,8 @@ var th = (e, t) => {
12991
13001
  });
12992
13002
  }
12993
13003
  return n;
12994
- }, ph = (e) => Array.from(e.querySelectorAll("span")).map((e) => e.textContent?.trim() ?? "").find((e) => e.startsWith("--")) ?? null;
12995
- function mh(e, t) {
13004
+ }, gh = (e) => Array.from(e.querySelectorAll("span")).map((e) => e.textContent?.trim() ?? "").find((e) => e.startsWith("--")) ?? null;
13005
+ function _h(e, t) {
12996
13006
  let { ownerDocument: n, ownerWindow: r, portalTarget: i } = t, a = r, o = i.querySelectorAll("[data-mesurer-text-edit-runtime='true']"), s = o.item(o.length - 1);
12997
13007
  if (!s) return;
12998
13008
  let c = !1, l = !1, u = 0, d = 0, f = null, p = () => {
@@ -13046,28 +13056,28 @@ function mh(e, t) {
13046
13056
  });
13047
13057
  let o = n.getBoundingClientRect(), l = e.getBoundingClientRect();
13048
13058
  if (l.width <= 0 || l.height <= 0) return;
13049
- let u = l.width, d = l.height, f = r.innerWidth - uh, p = r.innerHeight - uh, m = Math.max(uh, f - u), g = Math.max(uh, p - d), _ = Math.min(Math.max(o.left + o.width / 2 - u / 2, uh), m), v = Math.min(Math.max(o.top + o.height / 2 - d / 2, uh), g), y = [
13059
+ let u = l.width, d = l.height, f = r.innerWidth - ph, p = r.innerHeight - ph, m = Math.max(ph, f - u), g = Math.max(ph, p - d), _ = Math.min(Math.max(o.left + o.width / 2 - u / 2, ph), m), v = Math.min(Math.max(o.top + o.height / 2 - d / 2, ph), g), y = [
13050
13060
  {
13051
13061
  left: _,
13052
- top: o.top - dh - d,
13062
+ top: o.top - mh - d,
13053
13063
  placement: "above"
13054
13064
  },
13055
13065
  {
13056
13066
  left: _,
13057
- top: o.bottom + dh,
13067
+ top: o.bottom + mh,
13058
13068
  placement: "below"
13059
13069
  },
13060
13070
  {
13061
- left: o.right + dh,
13071
+ left: o.right + mh,
13062
13072
  top: v,
13063
13073
  placement: "side"
13064
13074
  },
13065
13075
  {
13066
- left: o.left - dh - u,
13076
+ left: o.left - mh - u,
13067
13077
  top: v,
13068
13078
  placement: "side"
13069
13079
  }
13070
- ], b = (e, t) => e >= uh && t >= uh && e + u <= f && t + d <= p, x = (e, t) => {
13080
+ ], b = (e, t) => e >= ph && t >= ph && e + u <= f && t + d <= p, x = (e, t) => {
13071
13081
  let n = Math.max(0, Math.min(e + u, o.right) - Math.max(e, o.left)), r = Math.max(0, Math.min(t + d, o.bottom) - Math.max(t, o.top));
13072
13082
  return n > 0 && r > 0;
13073
13083
  }, S = y.find((e) => b(e.left, e.top) && !x(e.left, e.top));
@@ -13077,18 +13087,18 @@ function mh(e, t) {
13077
13087
  }
13078
13088
  let C = [{
13079
13089
  name: "above",
13080
- top: uh,
13081
- height: Math.max(0, o.top - dh - uh)
13090
+ top: ph,
13091
+ height: Math.max(0, o.top - mh - ph)
13082
13092
  }, {
13083
13093
  name: "below",
13084
- top: o.bottom + dh,
13085
- height: Math.max(0, p - o.bottom - dh)
13094
+ top: o.bottom + mh,
13095
+ height: Math.max(0, p - o.bottom - mh)
13086
13096
  }].sort((e, t) => t.height - e.height)[0];
13087
13097
  if (C && C.height > 0) {
13088
13098
  e.style.maxHeight = `${C.height}px`, a.style.left = `${_}px`, a.style.top = `${C.top}px`, e.dataset.mesurerTextInspectorPlacement = C.name;
13089
13099
  return;
13090
13100
  }
13091
- a.style.left = `${_}px`, a.style.top = `${uh}px`, e.dataset.mesurerTextInspectorPlacement = "viewport";
13101
+ a.style.left = `${_}px`, a.style.top = `${ph}px`, e.dataset.mesurerTextInspectorPlacement = "viewport";
13092
13102
  }, v = () => {
13093
13103
  c || u || (u = r.requestAnimationFrame(() => {
13094
13104
  u = 0, _();
@@ -13104,16 +13114,16 @@ function mh(e, t) {
13104
13114
  boxSizing: "border-box",
13105
13115
  border: "1px solid transparent",
13106
13116
  borderRadius: "5px",
13107
- background: rh,
13108
- color: sh,
13117
+ background: oh,
13118
+ color: uh,
13109
13119
  outline: "none",
13110
13120
  transition: "border-color 120ms ease, box-shadow 120ms ease, background 120ms ease"
13111
13121
  }), e.addEventListener("mouseenter", () => {
13112
- e.style.borderColor = ah;
13122
+ e.style.borderColor = ch;
13113
13123
  }), e.addEventListener("mouseleave", () => {
13114
13124
  n.activeElement !== e && (e.style.borderColor = "transparent");
13115
13125
  }), e.addEventListener("focus", () => {
13116
- e.style.borderColor = "transparent", e.style.boxShadow = `inset 0 0 0 1px ${lh}`;
13126
+ e.style.borderColor = "transparent", e.style.boxShadow = `inset 0 0 0 1px ${fh}`;
13117
13127
  }), e.addEventListener("blur", () => {
13118
13128
  e.style.boxShadow = "none", e.style.borderColor = "transparent";
13119
13129
  });
@@ -13126,7 +13136,7 @@ function mh(e, t) {
13126
13136
  height: "28px",
13127
13137
  border: "1px solid transparent",
13128
13138
  borderRadius: "5px",
13129
- background: rh,
13139
+ background: oh,
13130
13140
  transition: "border-color 120ms ease, box-shadow 120ms ease, background 120ms ease"
13131
13141
  }), Object.assign(e.style, {
13132
13142
  appearance: "none",
@@ -13138,7 +13148,7 @@ function mh(e, t) {
13138
13148
  border: "0",
13139
13149
  borderRadius: "5px",
13140
13150
  background: "transparent",
13141
- color: sh,
13151
+ color: uh,
13142
13152
  font: "500 11px/1 ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, sans-serif",
13143
13153
  padding: "0 27px 0 8px",
13144
13154
  outline: "none",
@@ -13151,17 +13161,17 @@ function mh(e, t) {
13151
13161
  top: "8px",
13152
13162
  width: "7px",
13153
13163
  height: "7px",
13154
- borderRight: `1.5px solid ${oh}`,
13155
- borderBottom: `1.5px solid ${oh}`,
13164
+ borderRight: `1.5px solid ${lh}`,
13165
+ borderBottom: `1.5px solid ${lh}`,
13156
13166
  transform: "rotate(45deg)",
13157
13167
  transformOrigin: "center",
13158
13168
  pointerEvents: "none"
13159
13169
  }), t.addEventListener("mouseenter", () => {
13160
- t.style.borderColor = ah;
13170
+ t.style.borderColor = ch;
13161
13171
  }), t.addEventListener("mouseleave", () => {
13162
13172
  n.activeElement !== e && (t.style.borderColor = "transparent");
13163
13173
  }), e.addEventListener("focus", () => {
13164
- t.style.borderColor = "transparent", t.style.boxShadow = `inset 0 0 0 1px ${lh}`;
13174
+ t.style.borderColor = "transparent", t.style.boxShadow = `inset 0 0 0 1px ${fh}`;
13165
13175
  }), e.addEventListener("blur", () => {
13166
13176
  t.style.boxShadow = "none", t.style.borderColor = "transparent";
13167
13177
  }), t.append(e, r), t;
@@ -13178,18 +13188,18 @@ function mh(e, t) {
13178
13188
  Object.assign(e.style, {
13179
13189
  width: "28px",
13180
13190
  height: "28px",
13181
- border: `1px solid ${t ? lh : "transparent"}`,
13191
+ border: `1px solid ${t ? fh : "transparent"}`,
13182
13192
  borderRadius: "5px",
13183
- background: t ? "rgba(13, 153, 255, 0.10)" : rh,
13184
- color: ch,
13193
+ background: t ? "rgba(13, 153, 255, 0.10)" : oh,
13194
+ color: dh,
13185
13195
  padding: "0",
13186
13196
  fontSize: "12px",
13187
13197
  cursor: "pointer",
13188
13198
  transition: "border-color 120ms ease, background 120ms ease"
13189
13199
  }), e.addEventListener("mouseenter", () => {
13190
- t || (e.style.borderColor = ah);
13200
+ t || (e.style.borderColor = ch);
13191
13201
  }), e.addEventListener("mouseleave", () => {
13192
- e.style.borderColor = t ? lh : "transparent";
13202
+ e.style.borderColor = t ? fh : "transparent";
13193
13203
  });
13194
13204
  }, T = (e) => {
13195
13205
  Object.assign(e.style, {
@@ -13215,10 +13225,10 @@ function mh(e, t) {
13215
13225
  height: "28px",
13216
13226
  border: "1px solid transparent",
13217
13227
  borderRadius: "5px",
13218
- background: rh,
13228
+ background: oh,
13219
13229
  padding: "3px"
13220
13230
  }), n.addEventListener("mouseenter", () => {
13221
- n.style.borderColor = ah;
13231
+ n.style.borderColor = ch;
13222
13232
  }), n.addEventListener("mouseleave", () => {
13223
13233
  n.style.borderColor = "transparent";
13224
13234
  }));
@@ -13229,17 +13239,17 @@ function mh(e, t) {
13229
13239
  height: "28px",
13230
13240
  border: "1px solid transparent",
13231
13241
  borderRadius: "5px",
13232
- background: rh,
13233
- color: sh,
13242
+ background: oh,
13243
+ color: uh,
13234
13244
  padding: "0 8px",
13235
13245
  font: "500 11px/1 ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, sans-serif",
13236
13246
  transition: "border-color 120ms ease, box-shadow 120ms ease, background 120ms ease"
13237
13247
  }), e.addEventListener("mouseenter", () => {
13238
- e.style.borderColor = ah;
13248
+ e.style.borderColor = ch;
13239
13249
  }), e.addEventListener("mouseleave", () => {
13240
13250
  e.style.borderColor = "transparent";
13241
13251
  }), e.addEventListener("focus", () => {
13242
- e.style.boxShadow = `inset 0 0 0 1px ${lh}`;
13252
+ e.style.boxShadow = `inset 0 0 0 1px ${fh}`;
13243
13253
  }), e.addEventListener("blur", () => {
13244
13254
  e.style.boxShadow = "none";
13245
13255
  });
@@ -13267,7 +13277,7 @@ function mh(e, t) {
13267
13277
  if (!n) return;
13268
13278
  let r = e.get(t);
13269
13279
  if (!r) return;
13270
- let i = ph(r.value);
13280
+ let i = gh(r.value);
13271
13281
  r.value.replaceChildren(D(n, i)), Object.assign(r.value.style, {
13272
13282
  overflow: "visible",
13273
13283
  textOverflow: "clip",
@@ -13278,7 +13288,7 @@ function mh(e, t) {
13278
13288
  if (!r) return;
13279
13289
  let i = n.createElement("span");
13280
13290
  i.textContent = t, i.dataset.mesurerUnifiedTextRow = "true", Object.assign(i.style, {
13281
- color: oh,
13291
+ color: lh,
13282
13292
  fontSize: "11px",
13283
13293
  alignSelf: "center"
13284
13294
  });
@@ -13319,7 +13329,7 @@ function mh(e, t) {
13319
13329
  let o = i.children.item(1);
13320
13330
  if (!(o instanceof a.HTMLElement)) return;
13321
13331
  if (t.querySelector("[data-mesurer-text-style-menu-button='true']")) for (let e of i.querySelectorAll("[data-mesurer-unified-text-row='true'], [data-mesurer-unified-text-presets='true']")) e.remove();
13322
- let c = fh(o, a);
13332
+ let c = hh(o, a);
13323
13333
  i.dataset.mesurerTextInspectorUnified = "true", i.setAttribute("aria-label", "Typography editor"), i.removeAttribute("aria-hidden"), i.style.removeProperty("visibility"), Object.assign(i.style, {
13324
13334
  pointerEvents: "auto",
13325
13335
  position: "static",
@@ -13364,7 +13374,7 @@ function mh(e, t) {
13364
13374
  gap: "3px",
13365
13375
  marginTop: "9px",
13366
13376
  paddingTop: "8px",
13367
- borderTop: `1px solid ${ih}`
13377
+ borderTop: `1px solid ${sh}`
13368
13378
  });
13369
13379
  for (let t of Array.from(r.querySelectorAll("[data-mesurer-text-style-preset]"))) t.style.width = "100%", t.style.minHeight = "34px", e.append(t);
13370
13380
  e.childElementCount && i.append(e);
@@ -13387,8 +13397,8 @@ function mh(e, t) {
13387
13397
  c = !0, P.disconnect(), u && r.cancelAnimationFrame(u), d && r.clearTimeout(d), s.removeEventListener("click", A, !0), s.removeEventListener("change", j, !0), s.removeEventListener("keydown", M, !0), r.removeEventListener("resize", v), r.removeEventListener("scroll", y, !0), g();
13388
13398
  });
13389
13399
  }
13390
- var hh = 4, gh = 4, _h = 220, vh = 60, yh = (e, t, n) => Math.min(Math.max(e, t), n);
13391
- function bh(e, t) {
13400
+ var vh = 4, yh = 4, bh = 220, xh = 60, Sh = (e, t, n) => Math.min(Math.max(e, t), n);
13401
+ function Ch(e, t) {
13392
13402
  let { ownerWindow: n, portalTarget: r } = t, i = n, a = (e) => {
13393
13403
  if (e.key !== "Escape") return;
13394
13404
  let t = e.composedPath().find((e) => e instanceof i.HTMLElement && e.dataset.mesurerUnifiedSelectPopup === "true"), n = t instanceof i.HTMLElement ? t : r.querySelector("[data-mesurer-unified-select-popup='true']");
@@ -13402,7 +13412,7 @@ function bh(e, t) {
13402
13412
  n.removeEventListener("keydown", a, !0);
13403
13413
  });
13404
13414
  }
13405
- function xh(e, t) {
13415
+ function wh(e, t) {
13406
13416
  let { ownerDocument: n, ownerWindow: r, portalTarget: i } = t, a = r, o = i.querySelectorAll("[data-mesurer-text-edit-runtime='true']"), s = o.item(o.length - 1);
13407
13417
  if (!s) return;
13408
13418
  let c = !1, l = !1, u = 0, d = null, f = /* @__PURE__ */ new Map(), p = (e) => {
@@ -13433,10 +13443,10 @@ function xh(e, t) {
13433
13443
  e.style.position = "absolute", e.style.inset = "auto", e.style.margin = "0", e.style.pointerEvents = "auto", e.style.zIndex = "2147483647", e.style.transform = "none";
13434
13444
  let s = Math.max(1, o.width - 8), c = Math.min(Math.max(i.width, 120), s);
13435
13445
  e.style.width = `${c}px`, e.style.maxWidth = `${s}px`;
13436
- let l = Math.max(1, o.height - 8), u = Math.min(_h, Math.max(vh, e.scrollHeight)), d = Math.min(u, l);
13446
+ let l = Math.max(1, o.height - 8), u = Math.min(bh, Math.max(xh, e.scrollHeight)), d = Math.min(u, l);
13437
13447
  e.style.maxHeight = `${d}px`;
13438
- let m = o.left - a.left, h = o.top - a.top, g = i.left - a.left, _ = i.top - a.top, v = i.bottom - a.top, y = Math.max(0, _ - h - hh - gh), b = o.bottom - a.top, x = Math.max(0, b - v - hh - gh), S = x >= d || x >= y ? v + hh : _ - hh - d, C = m + gh, w = Math.max(C, m + o.width - gh - c), T = h + gh, E = Math.max(T, h + o.height - gh - d);
13439
- e.style.left = `${yh(g, C, w)}px`, e.style.top = `${yh(S, T, E)}px`, f.set(e, {
13448
+ let m = o.left - a.left, h = o.top - a.top, g = i.left - a.left, _ = i.top - a.top, v = i.bottom - a.top, y = Math.max(0, _ - h - vh - yh), b = o.bottom - a.top, x = Math.max(0, b - v - vh - yh), S = x >= d || x >= y ? v + vh : _ - vh - d, C = m + yh, w = Math.max(C, m + o.width - yh - c), T = h + yh, E = Math.max(T, h + o.height - yh - d);
13449
+ e.style.left = `${Sh(g, C, w)}px`, e.style.top = `${Sh(S, T, E)}px`, f.set(e, {
13440
13450
  left: n.scrollLeft,
13441
13451
  top: n.scrollTop
13442
13452
  });
@@ -13471,8 +13481,8 @@ function xh(e, t) {
13471
13481
  c = !0, b.disconnect(), u && r.cancelAnimationFrame(u), r.removeEventListener("resize", y), g(null);
13472
13482
  });
13473
13483
  }
13474
- var Sh = "#f8fafc", Ch = "#f1f5f9", wh = "#e2e8f0", Th = "#64748b", Eh = "#334155", Dh = "#0f172a", Oh = "#0d99ff", kh = 8, Ah = 4;
13475
- function jh(e, t) {
13484
+ var Th = "#f8fafc", Eh = "#f1f5f9", Dh = "#e2e8f0", Oh = "#64748b", kh = "#334155", Ah = "#0f172a", jh = "#0d99ff", Mh = 8, Nh = 4;
13485
+ function Ph(e, t) {
13476
13486
  let { ownerDocument: n, ownerWindow: r, portalTarget: i } = t, a = r, o = i.querySelectorAll("[data-mesurer-text-edit-runtime='true']"), s = o.item(o.length - 1);
13477
13487
  if (!s) return;
13478
13488
  let c = !1, l = !1, u = null, d = (e = !1) => {
@@ -13488,11 +13498,11 @@ function jh(e, t) {
13488
13498
  }
13489
13499
  let e = u.trigger.getBoundingClientRect(), t = u.popup.getBoundingClientRect(), n = Math.max(e.width, Math.min(260, t.width || e.width));
13490
13500
  u.popup.style.width = `${n}px`;
13491
- let i = u.popup.getBoundingClientRect(), a = r.innerWidth - kh, o = r.innerHeight - kh, s = Math.max(kh, a - i.width), c = Math.min(Math.max(e.left, kh), s), l = e.bottom + Ah, f = e.top - Ah - i.height, p = l + i.height <= o || f < kh ? Math.min(l, Math.max(kh, o - i.height)) : f;
13492
- u.popup.style.left = `${c}px`, u.popup.style.top = `${Math.max(kh, p)}px`;
13493
- }, p = (e, t) => {
13494
- let r = n.createElement("button");
13495
- r.type = "button", r.dataset.mesurerUnifiedSelectOption = e.key, r.setAttribute("role", "option"), r.setAttribute("aria-selected", e.selected ? "true" : "false"), r.disabled = e.disabled, Object.assign(r.style, {
13501
+ let i = u.popup.getBoundingClientRect(), a = r.innerWidth - Mh, o = r.innerHeight - Mh, s = Math.max(Mh, a - i.width), c = Math.min(Math.max(e.left, Mh), s), l = e.bottom + Nh, f = e.top - Nh - i.height, p = l + i.height <= o || f < Mh ? Math.min(l, Math.max(Mh, o - i.height)) : f;
13502
+ u.popup.style.left = `${c}px`, u.popup.style.top = `${Math.max(Mh, p)}px`;
13503
+ }, p = (e) => {
13504
+ let t = n.createElement("button");
13505
+ t.type = "button", t.dataset.mesurerUnifiedSelectOption = e.key, t.setAttribute("role", "option"), t.setAttribute("aria-selected", e.selected ? "true" : "false"), t.disabled = e.disabled, Object.assign(t.style, {
13496
13506
  width: "100%",
13497
13507
  minHeight: "30px",
13498
13508
  display: "flex",
@@ -13502,8 +13512,8 @@ function jh(e, t) {
13502
13512
  boxSizing: "border-box",
13503
13513
  border: "0",
13504
13514
  borderRadius: "5px",
13505
- background: e.selected ? Ch : "transparent",
13506
- color: e.disabled ? Th : Dh,
13515
+ background: e.selected ? Eh : "transparent",
13516
+ color: e.disabled ? Oh : Ah,
13507
13517
  padding: "0 9px",
13508
13518
  textAlign: "left",
13509
13519
  font: `${e.selected ? "600" : "500"} 11px/1.2 ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, sans-serif`,
@@ -13511,39 +13521,39 @@ function jh(e, t) {
13511
13521
  opacity: e.disabled ? "0.55" : "1",
13512
13522
  pointerEvents: "auto"
13513
13523
  });
13514
- let i = n.createElement("span");
13515
- if (i.textContent = e.label, Object.assign(i.style, {
13524
+ let r = n.createElement("span");
13525
+ if (r.textContent = e.label, Object.assign(r.style, {
13516
13526
  minWidth: "0",
13517
13527
  overflow: "hidden",
13518
13528
  textOverflow: "ellipsis",
13519
13529
  whiteSpace: "nowrap"
13520
- }), r.append(i), e.shortcut) {
13521
- let t = n.createElement("span");
13522
- t.textContent = e.shortcut, Object.assign(t.style, {
13530
+ }), t.append(r), e.shortcut) {
13531
+ let r = n.createElement("span");
13532
+ r.textContent = e.shortcut, Object.assign(r.style, {
13523
13533
  flex: "0 0 auto",
13524
- color: Th,
13534
+ color: Oh,
13525
13535
  font: "500 10px/1 ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, sans-serif",
13526
13536
  whiteSpace: "nowrap"
13527
- }), r.append(t);
13537
+ }), t.append(r);
13528
13538
  }
13529
- return r.addEventListener("mouseenter", () => {
13530
- e.disabled || (r.style.background = e.selected ? Ch : Sh);
13531
- }), r.addEventListener("mouseleave", () => {
13532
- r.style.background = e.selected ? Ch : "transparent";
13533
- }), r.addEventListener("click", () => {
13539
+ return t.addEventListener("mouseenter", () => {
13540
+ e.disabled || (t.style.background = e.selected ? Eh : Th);
13541
+ }), t.addEventListener("mouseleave", () => {
13542
+ t.style.background = e.selected ? Eh : "transparent";
13543
+ }), t.addEventListener("click", () => {
13534
13544
  e.disabled || (e.activate(), d());
13535
- }), r.addEventListener("keydown", (e) => {
13545
+ }), t.addEventListener("keydown", (e) => {
13536
13546
  if (e.key === "Escape") {
13537
13547
  e.preventDefault(), d(!0);
13538
13548
  return;
13539
13549
  }
13540
13550
  if (e.key !== "ArrowDown" && e.key !== "ArrowUp") return;
13541
13551
  e.preventDefault();
13542
- let t = r.closest("[data-mesurer-unified-select-popup='true']");
13543
- if (!t) return;
13544
- let n = Array.from(t.querySelectorAll("[data-mesurer-unified-select-option]")).filter((e) => !e.disabled), i = n.indexOf(r);
13545
- i < 0 || n.length === 0 || n[(i + (e.key === "ArrowDown" ? 1 : -1) + n.length) % n.length]?.focus({ preventScroll: !0 });
13546
- }), r;
13552
+ let n = t.closest("[data-mesurer-unified-select-popup='true']");
13553
+ if (!n) return;
13554
+ let r = Array.from(n.querySelectorAll("[data-mesurer-unified-select-option]")).filter((e) => !e.disabled), i = r.indexOf(t);
13555
+ i < 0 || r.length === 0 || r[(i + (e.key === "ArrowDown" ? 1 : -1) + r.length) % r.length]?.focus({ preventScroll: !0 });
13556
+ }), t;
13547
13557
  }, m = (e, t, r) => {
13548
13558
  if (u?.trigger === e) {
13549
13559
  d(!0);
@@ -13559,17 +13569,17 @@ function jh(e, t) {
13559
13569
  maxHeight: "220px",
13560
13570
  overflowY: "auto",
13561
13571
  boxSizing: "border-box",
13562
- border: `1px solid ${wh}`,
13572
+ border: `1px solid ${Dh}`,
13563
13573
  borderRadius: "8px",
13564
13574
  background: "#ffffff",
13565
13575
  padding: "4px",
13566
13576
  boxShadow: "0 8px 24px rgba(15, 23, 42, 0.14), 0 2px 6px rgba(15, 23, 42, 0.08)",
13567
13577
  pointerEvents: "auto"
13568
13578
  });
13569
- for (let t of r) i.append(p(t, e));
13579
+ for (let e of r) i.append(p(e));
13570
13580
  s.append(i), e.setAttribute("aria-expanded", "true"), t?.style.setProperty("transform", "rotate(225deg)");
13571
13581
  let a = e.closest("[data-mesurer-unified-select-shell='true'], [data-mesurer-unified-style-shell='true']");
13572
- a && (a.style.borderColor = "transparent", a.style.boxShadow = `inset 0 0 0 1px ${Oh}`), u = {
13582
+ a && (a.style.borderColor = "transparent", a.style.boxShadow = `inset 0 0 0 1px ${jh}`), u = {
13573
13583
  popup: i,
13574
13584
  trigger: e,
13575
13585
  chevron: t
@@ -13585,14 +13595,14 @@ function jh(e, t) {
13585
13595
  border: "0",
13586
13596
  borderRadius: "5px",
13587
13597
  background: "transparent",
13588
- color: Eh,
13598
+ color: kh,
13589
13599
  padding: "0 28px 0 8px",
13590
13600
  textAlign: "left",
13591
13601
  font: "500 11px/1 ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, sans-serif",
13592
13602
  cursor: "pointer",
13593
13603
  outline: "none"
13594
13604
  }), e.addEventListener("focus", () => {
13595
- t.style.borderColor = "transparent", t.style.boxShadow = `inset 0 0 0 1px ${Oh}`;
13605
+ t.style.borderColor = "transparent", t.style.boxShadow = `inset 0 0 0 1px ${jh}`;
13596
13606
  }), e.addEventListener("blur", () => {
13597
13607
  u?.trigger !== e && (t.style.boxShadow = "none");
13598
13608
  });
@@ -13658,12 +13668,12 @@ function jh(e, t) {
13658
13668
  boxSizing: "border-box",
13659
13669
  border: "1px solid transparent",
13660
13670
  borderRadius: "5px",
13661
- background: Sh,
13671
+ background: Th,
13662
13672
  transition: "border-color 120ms ease, box-shadow 120ms ease, background 120ms ease"
13663
13673
  });
13664
13674
  let a = n.createElement("button");
13665
13675
  a.type = "button", a.dataset.mesurerUnifiedSelectTrigger = "style", a.dataset.mesurerTextStyleMenuButton = "true", a.setAttribute("aria-haspopup", "listbox"), a.setAttribute("aria-expanded", "false"), a.setAttribute("aria-label", "Text style"), h(a, i), i.addEventListener("mouseenter", () => {
13666
- i.style.borderColor = wh;
13676
+ i.style.borderColor = Dh;
13667
13677
  }), i.addEventListener("mouseleave", () => {
13668
13678
  u?.trigger !== a && n.activeElement !== a && (i.style.borderColor = "transparent");
13669
13679
  });
@@ -13675,8 +13685,8 @@ function jh(e, t) {
13675
13685
  top: "8px",
13676
13686
  width: "7px",
13677
13687
  height: "7px",
13678
- borderRight: `1.5px solid ${Th}`,
13679
- borderBottom: `1.5px solid ${Th}`,
13688
+ borderRight: `1.5px solid ${Oh}`,
13689
+ borderBottom: `1.5px solid ${Oh}`,
13680
13690
  transform: "rotate(45deg)",
13681
13691
  transformOrigin: "center",
13682
13692
  pointerEvents: "none"
@@ -13737,22 +13747,22 @@ function jh(e, t) {
13737
13747
  c = !0, x.disconnect(), d(), r.removeEventListener("pointerdown", y, !0), r.removeEventListener("resize", b);
13738
13748
  });
13739
13749
  }
13740
- function Mh(e, t) {
13750
+ function Fh(e, t) {
13741
13751
  op(e, t);
13742
13752
  let { runtime: n } = tp(t);
13743
- jm(e, n), bh(e, n), Rp(e, nh(e, n)), Cm(e, n), mh(e, n), Rm(e, n, t.portalTarget), Up(e, n, t), Mm(e, n), jh(e, n), xh(e, n), $f(e, n), lp(e, n), hm(e, n, t.portalTarget), eh(e, n, t.portalTarget);
13753
+ Pm(e, n), Ch(e, n), Hp(e, ah(e, n)), Dm(e, n), _h(e, n), Vm(e, n, t.portalTarget), qp(e, n, t), Fm(e, n), Ph(e, n), wh(e, n), $f(e, n), lp(e, n), ym(e, n, t.portalTarget), rh(e, n, t.portalTarget);
13744
13754
  }
13745
- var Nh = 1, Ph = (e, t) => {
13755
+ var Ih = 1, Lh = (e, t) => {
13746
13756
  if (!t) return [];
13747
13757
  try {
13748
13758
  let n = e.sessionStorage.getItem(t);
13749
13759
  if (!n) return [];
13750
13760
  let r = JSON.parse(n);
13751
- return r.version !== Nh || !Array.isArray(r.annotations) ? [] : r.annotations.map(Fh);
13761
+ return r.version !== Ih || !Array.isArray(r.annotations) ? [] : r.annotations.map(Rh);
13752
13762
  } catch {
13753
13763
  return [];
13754
13764
  }
13755
- }, Fh = (e) => ({
13765
+ }, Rh = (e) => ({
13756
13766
  ...e,
13757
13767
  anchor: e.anchor.kind === "elements" ? {
13758
13768
  kind: "elements",
@@ -13787,7 +13797,7 @@ var Nh = 1, Ph = (e, t) => {
13787
13797
  vertical: e.vertical ? { ...e.vertical } : null
13788
13798
  }))
13789
13799
  }
13790
- }), Ih = (e, t) => `${t}-${e.crypto?.randomUUID?.() ?? `${Date.now()}-${Math.random().toString(36).slice(2)}`}`, Lh = (e) => {
13800
+ }), zh = (e, t) => `${t}-${e.crypto?.randomUUID?.() ?? `${Date.now()}-${Math.random().toString(36).slice(2)}`}`, Bh = (e) => {
13791
13801
  let t = /* @__PURE__ */ new Set(), n = [];
13792
13802
  for (let r of e.current.selectedMeasurements) {
13793
13803
  let e = r.elementRef;
@@ -13796,8 +13806,8 @@ var Nh = 1, Ph = (e, t) => {
13796
13806
  let r = e.current.selectedMeasurement?.elementRef;
13797
13807
  return r?.isConnected && !t.has(r) && n.push(r), n;
13798
13808
  };
13799
- function Rh(e) {
13800
- let { model: t, ownerDocument: n, ownerWindow: r, uiRoot: i } = e, a = r, o = e.pageTarget ?? n.body ?? n.documentElement, s = o instanceof a.ShadowRoot ? o : o.getRootNode(), c = s instanceof a.ShadowRoot ? s : n, l = o, u = Ph(r, e.persistenceKey), d = /* @__PURE__ */ new Set(), f = /* @__PURE__ */ new Map(), p = /* @__PURE__ */ new Map(), m = /* @__PURE__ */ new Map(), h = !1, g = 0, _ = null, v = !1, y = (e, t) => `${e}:${t}`, b = (e) => Tl(e, o), x = (e) => {
13809
+ function Vh(e) {
13810
+ let { model: t, ownerDocument: n, ownerWindow: r, uiRoot: i } = e, a = r, o = e.pageTarget ?? n.body ?? n.documentElement, s = o instanceof a.ShadowRoot ? o : o.getRootNode(), c = s instanceof a.ShadowRoot ? s : n, l = o, u = Lh(r, e.persistenceKey), d = /* @__PURE__ */ new Set(), f = /* @__PURE__ */ new Map(), p = /* @__PURE__ */ new Map(), m = /* @__PURE__ */ new Map(), h = !1, g = 0, _ = null, v = !1, y = (e, t) => `${e}:${t}`, b = (e) => Tl(e, o), x = (e) => {
13801
13811
  let t = [];
13802
13812
  o instanceof a.HTMLElement && o.matches(e) && t.push(o);
13803
13813
  for (let n of c.querySelectorAll(e)) n instanceof a.HTMLElement && b(n) && t.push(n);
@@ -13810,8 +13820,8 @@ function Rh(e) {
13810
13820
  return;
13811
13821
  }
13812
13822
  r.sessionStorage.setItem(t, JSON.stringify({
13813
- version: Nh,
13814
- annotations: u.map(Fh)
13823
+ version: Ih,
13824
+ annotations: u.map(Rh)
13815
13825
  }));
13816
13826
  } catch {}
13817
13827
  }, C = () => {
@@ -13910,12 +13920,12 @@ function Rh(e) {
13910
13920
  }, F = (e, t = []) => (u.push(e), e.anchor.kind === "elements" && e.anchor.targets.forEach((n, r) => {
13911
13921
  let i = t[r], a = y(e.id, n.id);
13912
13922
  i && b(i) && p.set(a, i), m.set(a, !!(i && b(i)));
13913
- }), O(), S(), C(), Fh(e)), I = (e, t) => {
13923
+ }), O(), S(), C(), Rh(e)), I = (e, t) => {
13914
13924
  let n = e.trim();
13915
13925
  if (!n) throw Error("Annotation note cannot be empty.");
13916
13926
  let i = Yi(t);
13917
13927
  return F({
13918
- id: Ih(r, "annotation"),
13928
+ id: zh(r, "annotation"),
13919
13929
  note: n,
13920
13930
  createdAt: Date.now(),
13921
13931
  anchor: {
@@ -13930,14 +13940,14 @@ function Rh(e) {
13930
13940
  }, L = (e) => {
13931
13941
  let n = e.trim();
13932
13942
  if (!n) throw Error("Annotation note cannot be empty.");
13933
- let i = Lh(t).filter(b), a = t.current.selectionOriginRect ? Yi(t.current.selectionOriginRect) : null;
13943
+ let i = Bh(t).filter(b), a = t.current.selectionOriginRect ? Yi(t.current.selectionOriginRect) : null;
13934
13944
  if (!i.length) {
13935
13945
  if (!a) throw Error("Select a page element or drag a region before adding an annotation.");
13936
13946
  return I(n, a);
13937
13947
  }
13938
13948
  let o = i.map(N);
13939
13949
  return F({
13940
- id: Ih(r, "annotation"),
13950
+ id: zh(r, "annotation"),
13941
13951
  note: n,
13942
13952
  createdAt: Date.now(),
13943
13953
  anchor: {
@@ -13967,12 +13977,12 @@ function Rh(e) {
13967
13977
  activeMeasurement: t.current.activeMeasurement,
13968
13978
  heldDistances: [...t.current.heldDistances],
13969
13979
  guides: t.current.guides.map((e) => ({ ...e })),
13970
- annotations: u.map(Fh)
13980
+ annotations: u.map(Rh)
13971
13981
  };
13972
13982
  },
13973
13983
  currentSelection() {
13974
13984
  return {
13975
- elements: Lh(t).filter(b),
13985
+ elements: Bh(t).filter(b),
13976
13986
  region: t.current.selectionOriginRect ? Yi(t.current.selectionOriginRect) : null
13977
13987
  };
13978
13988
  },
@@ -13984,12 +13994,12 @@ function Rh(e) {
13984
13994
  return t.current.hoverElement?.isConnected && b(t.current.hoverElement) ? t.current.hoverElement : null;
13985
13995
  },
13986
13996
  annotations() {
13987
- return u.map(Fh);
13997
+ return u.map(Rh);
13988
13998
  },
13989
13999
  annotation(e) {
13990
14000
  let t = u.find((t) => t.id === e);
13991
14001
  if (!t) return null;
13992
- let n = Fh(t), r = [];
14002
+ let n = Rh(t), r = [];
13993
14003
  if (n.anchor.kind === "elements" && t.anchor.kind === "elements") {
13994
14004
  let e = t.anchor.targets;
13995
14005
  r = n.anchor.targets.map((n, r) => ({
@@ -14055,7 +14065,7 @@ function Rh(e) {
14055
14065
  }
14056
14066
  };
14057
14067
  }
14058
- var zh = [
14068
+ var Hh = [
14059
14069
  "select",
14060
14070
  "xray",
14061
14071
  "color-picker",
@@ -14063,22 +14073,22 @@ var zh = [
14063
14073
  "text-inspector",
14064
14074
  "guides",
14065
14075
  "settings"
14066
- ], Bh = "mesurer-plugin-settings", Vh = 1, Hh = (e) => (e.startsWith("mesurer.") ? e.slice(8) : e).split(/[.-]/g).filter(Boolean).map((e) => e[0]?.toUpperCase() + e.slice(1)).join(" ") || e, Uh = (e) => "create" in e && typeof e.create == "function", Wh = (e) => e === "select" || e === "xray" || e === "color-picker" || e === "rulers" || e === "text-inspector" || e === "guides" || e === "distance" || e === "settings", Gh = (e) => `builtin.${e}`, Kh = (e, t) => {
14076
+ ], Uh = "mesurer-plugin-settings", Wh = 1, Gh = (e) => (e.startsWith("mesurer.") ? e.slice(8) : e).split(/[.-]/g).filter(Boolean).map((e) => e[0]?.toUpperCase() + e.slice(1)).join(" ") || e, Kh = (e) => "create" in e && typeof e.create == "function", qh = (e) => e === "select" || e === "xray" || e === "color-picker" || e === "rulers" || e === "text-inspector" || e === "guides" || e === "distance" || e === "settings", Jh = (e) => `builtin.${e}`, Yh = (e, t) => {
14067
14077
  let n = t.toLowerCase().replaceAll("cmd", "meta").split("+").map((e) => e.trim()).filter(Boolean);
14068
14078
  if (!n.length) return !1;
14069
14079
  let r = n.at(-1), i = new Set(n.slice(0, -1)), a = i.has("mod"), o = i.has("meta"), s = i.has("ctrl") || i.has("control"), c = i.has("shift"), l = i.has("alt") || i.has("option");
14070
14080
  return (a ? !(e.metaKey || e.ctrlKey) : o !== e.metaKey || s !== e.ctrlKey) || c !== e.shiftKey || l !== e.altKey || !a && !o && !s && (e.metaKey || e.ctrlKey) ? !1 : e.key.toLowerCase() === r;
14071
14081
  };
14072
- function qh(e) {
14082
+ function Xh(e) {
14073
14083
  let t = bt(() => e.pluginHost), n = t ?? ha(), r = !t, i = bt(() => e.version ?? "0.1.0"), a = (t) => e.version && t.id.startsWith("mesurer.") ? {
14074
14084
  ...t,
14075
14085
  version: i
14076
14086
  } : t, o = new Set(bt(() => e.excludePlugins ?? [])), s = bt(() => Nf([], e.excludePlugins ?? []).map(a)), c = /* @__PURE__ */ new Map();
14077
14087
  for (let [t, n] of bt(() => [...e.plugins ?? []]).entries()) {
14078
- if (Uh(n)) {
14088
+ if (Kh(n)) {
14079
14089
  c.set(n.id, {
14080
14090
  ...n,
14081
- label: n.label ?? Hh(n.id),
14091
+ label: n.label ?? Gh(n.id),
14082
14092
  order: n.order ?? 1e3 + t
14083
14093
  });
14084
14094
  continue;
@@ -14086,7 +14096,7 @@ function qh(e) {
14086
14096
  let e = a(n);
14087
14097
  c.set(e.id, {
14088
14098
  id: e.id,
14089
- label: Hh(e.id),
14099
+ label: Gh(e.id),
14090
14100
  order: 1e3 + t,
14091
14101
  enabled: !0,
14092
14102
  create: () => e
@@ -14094,7 +14104,7 @@ function qh(e) {
14094
14104
  }
14095
14105
  let l = /* @__PURE__ */ new Set();
14096
14106
  for (let e of c.values()) e.enabled !== !1 && l.add(e.id);
14097
- let u = new Map([...c.values()].map((e) => [e.id, new Set(e.settingsIds ?? [])])), d = /* @__PURE__ */ new Map(), f = /* @__PURE__ */ new Map(), p = /* @__PURE__ */ new Set(), m = /* @__PURE__ */ new Map(), h = null, g = null, _ = () => void 0, v = async () => void 0, [y, b] = K(0), [x, S] = K(!1), C = (e) => (y(), n.tools().find((t) => (t.builtin === e || t.id === e) && t.command !== Gh(e))), w = (e) => (y(), x() ? e === "distance" ? n.overlays().some((t) => t.builtin === e || t.id === e) : n.tools().some((t) => t.builtin === e || t.id === e) : !o.has(e)), T = () => (y(), n.state.get("mesurer.arrange.active") ?? !1), E = (e) => T() && (e === "color-picker" || e === "text-inspector" || e === "guides"), D = G(() => (y(), n.tools().filter((e) => e.hidden?.() ? !1 : !e.builtin || !Wh(e.builtin) || e.command !== Gh(e.builtin)))), O = G(() => {
14107
+ let u = new Map([...c.values()].map((e) => [e.id, new Set(e.settingsIds ?? [])])), d = /* @__PURE__ */ new Map(), f = /* @__PURE__ */ new Map(), p = /* @__PURE__ */ new Set(), m = /* @__PURE__ */ new Map(), h = null, g = null, _ = () => void 0, v = async () => void 0, [y, b] = K(0), [x, S] = K(!1), C = (e) => (y(), n.tools().find((t) => (t.builtin === e || t.id === e) && t.command !== Jh(e))), w = (e) => (y(), x() ? e === "distance" ? n.overlays().some((t) => t.builtin === e || t.id === e) : n.tools().some((t) => t.builtin === e || t.id === e) : !o.has(e)), T = () => (y(), n.state.get("mesurer.arrange.active") ?? !1), E = (e) => T() && (e === "color-picker" || e === "text-inspector" || e === "guides"), D = G(() => (y(), n.tools().filter((e) => e.hidden?.() ? !1 : !e.builtin || !qh(e.builtin) || e.command !== Jh(e.builtin)))), O = G(() => {
14098
14108
  y();
14099
14109
  let e = n.settings();
14100
14110
  return [...c.values()].sort((e, t) => (e.order ?? 0) - (t.order ?? 0)).map((t) => {
@@ -14104,7 +14114,7 @@ function qh(e) {
14104
14114
  })).filter((e) => (e.controls?.length ?? 0) > 0);
14105
14115
  return {
14106
14116
  id: t.id,
14107
- label: t.label ?? Hh(t.id),
14117
+ label: t.label ?? Gh(t.id),
14108
14118
  enabled: n.has(t.id),
14109
14119
  busy: p.has(t.id),
14110
14120
  sections: a
@@ -14113,7 +14123,7 @@ function qh(e) {
14113
14123
  }), k = G(() => (y(), n.settings().filter((e) => e.id === Ad))), A = () => {
14114
14124
  y();
14115
14125
  let e = [];
14116
- for (let t of zh) (!w(t) || C(t)) && e.push(`[data-mesurer-builtin='${t}']{display:none!important}`);
14126
+ for (let t of Hh) (!w(t) || C(t)) && e.push(`[data-mesurer-builtin='${t}']{display:none!important}`);
14117
14127
  return (!w("guides") || C("guides")) && e.push("[data-mesurer-builtin='guides-menu']{display:none!important}"), w("guides") || e.push("[data-mesurer-guide='true']{display:none!important}"), w("distance") || e.push("[data-mesurer-distance='true']{display:none!important}"), w("rulers") || e.push("[data-mesurer-rulers='true']{display:none!important}"), w("color-picker") || e.push(".mesurer-color-picker{display:none!important}"), e.join("\n");
14118
14128
  }, j = async (t, r = "toolbar") => {
14119
14129
  if (!t.disabled?.()) try {
@@ -14169,21 +14179,21 @@ function qh(e) {
14169
14179
  t || (t = !0, e.remove());
14170
14180
  }
14171
14181
  };
14172
- }, ee = (e) => Rh({
14182
+ }, ee = (e) => Vh({
14173
14183
  model: z(),
14174
14184
  ownerDocument: F,
14175
14185
  ownerWindow: L,
14176
14186
  uiRoot: P,
14177
14187
  pageTarget: R,
14178
- persistenceKey: e ? `${N.persistKey ?? Bh}:${e}:${L.location.origin}${L.location.pathname}` : void 0
14188
+ persistenceKey: e ? `${N.persistKey ?? Uh}:${e}:${L.location.origin}${L.location.pathname}` : void 0
14179
14189
  }), U = F.createElement("style");
14180
14190
  U.dataset.mesurerPluginVisibility = "true", U.dataset.mesurerInspectorUi = "true", U.textContent = A(), P.append(U);
14181
- let te = N.persistKey ? `${N.persistKey}:plugins` : Bh, ne = `${te}:availability`, re = /* @__PURE__ */ new Map();
14191
+ let te = N.persistKey ? `${N.persistKey}:plugins` : Uh, ne = `${te}:availability`, re = /* @__PURE__ */ new Map();
14182
14192
  try {
14183
14193
  let e = L.localStorage.getItem(ne);
14184
14194
  if (e) {
14185
14195
  let t = JSON.parse(e);
14186
- if (t?.version === Vh) {
14196
+ if (t?.version === Wh) {
14187
14197
  for (let [e, n] of Object.entries(t.enabled ?? {})) re.set(e, n);
14188
14198
  for (let [e, n] of Object.entries(t.state ?? {})) f.set(e, n);
14189
14199
  }
@@ -14195,7 +14205,7 @@ function qh(e) {
14195
14205
  let e = Object.fromEntries([...c.keys()].map((e) => [e, k.has(e)])), t = Object.fromEntries(f);
14196
14206
  try {
14197
14207
  L.localStorage.setItem(ne, JSON.stringify({
14198
- version: Vh,
14208
+ version: Wh,
14199
14209
  enabled: e,
14200
14210
  state: t
14201
14211
  }));
@@ -14218,7 +14228,7 @@ function qh(e) {
14218
14228
  let le = k.subscribe((e) => {
14219
14229
  if (b((e) => e + 1), U.textContent = A(), (e.reason === "state" || e.reason === "history" || e.reason === "remove" || e.reason === "replace") && oe(), x() && !y && (e.reason === "load" || e.reason === "remove" || e.reason === "replace") && ie(), e.reason === "remove" && e.pluginId?.startsWith("mesurer.")) {
14220
14230
  let t = e.pluginId.slice(8);
14221
- Wh(t) && V().deactivate(t);
14231
+ qh(t) && V().deactivate(t);
14222
14232
  }
14223
14233
  });
14224
14234
  N.onPluginHost?.(k);
@@ -14318,8 +14328,8 @@ function qh(e) {
14318
14328
  createWorkspaceRuntime: ee,
14319
14329
  createInspectorMount: H
14320
14330
  };
14321
- e.service.provide("runtime:solid", t), Pd(e), If(e, t), Mh(e, t);
14322
- for (let t of zh) e.command.register(Gh(t), () => _e(t));
14331
+ e.service.provide("runtime:solid", t), Pd(e), If(e, t), Fh(e, t);
14332
+ for (let t of Hh) e.command.register(Jh(t), () => _e(t));
14323
14333
  }
14324
14334
  }), t)) {
14325
14335
  for (let e of [...c.values()].sort((e, t) => (e.order ?? 0) - (t.order ?? 0))) {
@@ -14371,7 +14381,7 @@ function qh(e) {
14371
14381
  e.preventDefault(), e.stopImmediatePropagation();
14372
14382
  return;
14373
14383
  }
14374
- let i = D().find((t) => t.shortcut && !t.disabled?.() && Kh(e, t.shortcut));
14384
+ let i = D().find((t) => t.shortcut && !t.disabled?.() && Yh(e, t.shortcut));
14375
14385
  if (i) {
14376
14386
  e.preventDefault(), e.stopImmediatePropagation(), M(i);
14377
14387
  return;
@@ -14421,7 +14431,7 @@ function qh(e) {
14421
14431
  }
14422
14432
  });
14423
14433
  }
14424
- var Jh = (e, t, n) => Math.min(Math.max(e, t), Math.max(t, n)), Yh = (e, t, n = 0) => !(e.left + e.width + n <= t.left || t.left + t.width + n <= e.left || e.top + e.height + n <= t.top || t.top + t.height + n <= e.top), Xh = (e, t, n, r, i) => {
14434
+ var Zh = (e, t, n) => Math.min(Math.max(e, t), Math.max(t, n)), Qh = (e, t, n = 0) => !(e.left + e.width + n <= t.left || t.left + t.width + n <= e.left || e.top + e.height + n <= t.top || t.top + t.height + n <= e.top), $h = (e, t, n, r, i) => {
14425
14435
  let a = e.left + e.width, o = e.top + e.height, s = [
14426
14436
  {
14427
14437
  axis: "vertical",
@@ -14469,7 +14479,7 @@ var Jh = (e, t, n) => Math.min(Math.max(e, t), Math.max(t, n)), Yh = (e, t, n =
14469
14479
  }
14470
14480
  ];
14471
14481
  return i ? s.sort((e, t) => t.space - e.space) : s;
14472
- }, Zh = (e, t, n) => {
14482
+ }, eg = (e, t, n) => {
14473
14483
  let r = [];
14474
14484
  for (let i = 0; i <= n; i += 1) {
14475
14485
  let n = i * t;
@@ -14495,14 +14505,14 @@ var Jh = (e, t, n) => Math.min(Math.max(e, t), Math.max(t, n)), Yh = (e, t, n =
14495
14505
  }
14496
14506
  return r;
14497
14507
  };
14498
- function Qh(e, t, n = {}) {
14508
+ function tg(e, t, n = {}) {
14499
14509
  let r = n.markerSize ?? 24, i = n.markerGap ?? 4, a = n.targetGap ?? 6, o = n.targetClearance ?? 2, s = n.viewportPadding ?? 4, c = n.obstacles ?? [], l = Math.max(0, n.maxShiftRings ?? 2), u = n.viewportAware ?? !1, d = r + i, f = Math.max(s, t.width - r - s), p = Math.max(s, t.height - r - s), m = [], h = e.map((e) => e.rect), g = [];
14500
14510
  for (let n of e) {
14501
- let e = /* @__PURE__ */ new Set(), _ = [], v = Xh(n.rect, t, r, a, u);
14502
- for (let t of Zh(v, d, l)) {
14511
+ let e = /* @__PURE__ */ new Set(), _ = [], v = $h(n.rect, t, r, a, u);
14512
+ for (let t of eg(v, d, l)) {
14503
14513
  let n = u ? {
14504
- left: Jh(t.left, s, f),
14505
- top: Jh(t.top, s, p)
14514
+ left: Zh(t.left, s, f),
14515
+ top: Zh(t.top, s, p)
14506
14516
  } : t, r = `${n.left}:${n.top}`;
14507
14517
  e.has(r) || (e.add(r), _.push(n));
14508
14518
  }
@@ -14512,21 +14522,21 @@ function Qh(e, t, n = {}) {
14512
14522
  width: r,
14513
14523
  height: r
14514
14524
  };
14515
- return h.every((e) => !Yh(t, e, o)) && c.every((e) => !Yh(t, e, i));
14525
+ return h.every((e) => !Qh(t, e, o)) && c.every((e) => !Qh(t, e, i));
14516
14526
  }), b = y.find((e) => {
14517
14527
  let t = {
14518
14528
  ...e,
14519
14529
  width: r,
14520
14530
  height: r
14521
14531
  };
14522
- return m.every((e) => !Yh(t, e, i));
14532
+ return m.every((e) => !Qh(t, e, i));
14523
14533
  }) ?? y.find((e) => {
14524
14534
  let t = {
14525
14535
  ...e,
14526
14536
  width: r,
14527
14537
  height: r
14528
14538
  };
14529
- return m.every((e) => !Yh(t, e));
14539
+ return m.every((e) => !Qh(t, e));
14530
14540
  }) ?? y[0] ?? _[0] ?? {
14531
14541
  left: s,
14532
14542
  top: s
@@ -14542,17 +14552,17 @@ function Qh(e, t, n = {}) {
14542
14552
  }
14543
14553
  return g;
14544
14554
  }
14545
- var $h = (e, t, n) => Math.min(Math.max(e, t), Math.max(t, n)), eg = 0, tg = (e) => e.split(",").map((e) => e.trim()).filter((e) => e.length > 0 && e !== "none"), ng = (e, t) => {
14546
- let n = e.style.getPropertyValue("anchor-name"), r = e.style.getPropertyPriority("anchor-name"), i = tg(n);
14555
+ var ng = (e, t, n) => Math.min(Math.max(e, t), Math.max(t, n)), rg = 0, ig = (e) => e.split(",").map((e) => e.trim()).filter((e) => e.length > 0 && e !== "none"), ag = (e, t) => {
14556
+ let n = e.style.getPropertyValue("anchor-name"), r = e.style.getPropertyPriority("anchor-name"), i = ig(n);
14547
14557
  i.includes(t) || e.style.setProperty("anchor-name", [...i, t].join(", "), r);
14548
14558
  let a = !1;
14549
14559
  return () => {
14550
14560
  if (a) return;
14551
14561
  a = !0;
14552
- let i = tg(e.style.getPropertyValue("anchor-name")).filter((e) => e !== t);
14562
+ let i = ig(e.style.getPropertyValue("anchor-name")).filter((e) => e !== t);
14553
14563
  i.length ? e.style.setProperty("anchor-name", i.join(", "), e.style.getPropertyPriority("anchor-name")) : n.trim() === "none" ? e.style.setProperty("anchor-name", n, r) : e.style.removeProperty("anchor-name");
14554
14564
  };
14555
- }, rg = (e) => {
14565
+ }, og = (e) => {
14556
14566
  if (!e.length) return null;
14557
14567
  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));
14558
14568
  return {
@@ -14561,14 +14571,14 @@ var $h = (e, t, n) => Math.min(Math.max(e, t), Math.max(t, n)), eg = 0, tg = (e)
14561
14571
  width: r - t,
14562
14572
  height: i - n
14563
14573
  };
14564
- }, ig = (e, t, n, r, i = 8) => {
14574
+ }, sg = (e, t, n, r, i = 8) => {
14565
14575
  let a = r.innerWidth - t - 8, o = r.innerHeight - n - 8, s = e.left + e.width + i, c = e.left - t - i;
14566
14576
  return {
14567
- left: s + t <= r.innerWidth - 8 ? s : c >= 8 ? c : $h(e.left + e.width - t, 8, a),
14568
- top: $h(e.top, 8, o)
14577
+ left: s + t <= r.innerWidth - 8 ? s : c >= 8 ? c : ng(e.left + e.width - t, 8, a),
14578
+ top: ng(e.top, 8, o)
14569
14579
  };
14570
- }, ag = (e, t, n, r, i = 8) => {
14571
- let a = r.innerWidth - t - 8, o = $h(e.left + e.width / 2 - t / 2, 8, a), s = e.top + e.height + i;
14580
+ }, cg = (e, t, n, r, i = 8) => {
14581
+ let a = r.innerWidth - t - 8, o = ng(e.left + e.width / 2 - t / 2, 8, a), s = e.top + e.height + i;
14572
14582
  if (s + n <= r.innerHeight - 8) return {
14573
14583
  left: o,
14574
14584
  top: s
@@ -14577,10 +14587,10 @@ var $h = (e, t, n) => Math.min(Math.max(e, t), Math.max(t, n)), eg = 0, tg = (e)
14577
14587
  return c >= 8 ? {
14578
14588
  left: o,
14579
14589
  top: c
14580
- } : ig(e, t, n, r, i);
14590
+ } : sg(e, t, n, r, i);
14581
14591
  };
14582
- function og(e) {
14583
- let [t, n] = K(0), [r, i] = K(0), [a, o] = K(null), [s, c] = K(null), [l, u] = K(null), [d, f] = K({}), [p, m] = K(null), [h, g] = K(!1), [_, v] = K(""), [y, b] = K(null), [x, S] = K(!1), [C, w] = K(null), [T, E] = K(null), D = `--mesurer-annotation-trigger-${++eg}`, O = null, k = e.initialTriggerFallback === "current-and-next", A = null, j = null, M = null, N, P, F = null, I = null, L = null, R = null, z = null, B = null, V = /* @__PURE__ */ new Map(), H = () => N?.ownerDocument.defaultView ?? window, ee = () => e.coordinateSpace === "viewport", U = (e) => e ? "native-anchor" : ee() ? "cached-delta" : "document", te = (e) => {
14592
+ function lg(e) {
14593
+ let [t, n] = K(0), [r, i] = K(0), [a, o] = K(null), [s, c] = K(null), [l, u] = K(null), [d, f] = K({}), [p, m] = K(null), [h, g] = K(!1), [_, v] = K(""), [y, b] = K(null), [x, S] = K(!1), [C, w] = K(null), [T, E] = K(null), D = `--mesurer-annotation-trigger-${++rg}`, O = null, k = e.initialTriggerFallback === "current-and-next", A = null, j = null, M = null, N, P, F = null, I = null, L = null, R = null, z = null, B = null, V = /* @__PURE__ */ new Map(), H = () => N?.ownerDocument.defaultView ?? window, ee = () => e.coordinateSpace === "viewport", U = (e) => e ? "native-anchor" : ee() ? "cached-delta" : "document", te = (e) => {
14584
14594
  if (ee()) return e;
14585
14595
  let t = H();
14586
14596
  return {
@@ -14630,11 +14640,11 @@ function og(e) {
14630
14640
  let a = t.ownerDocument.defaultView;
14631
14641
  if (a) {
14632
14642
  if (r) {
14633
- let n = `--mesurer-annotation-${++eg}`;
14643
+ let n = `--mesurer-annotation-${++rg}`;
14634
14644
  V.set(e, {
14635
14645
  target: t,
14636
14646
  anchorName: n,
14637
- releaseAnchor: ng(t, n),
14647
+ releaseAnchor: ag(t, n),
14638
14648
  scroll: nc(a, t, () => le(e), { trackWindow: !1 })
14639
14649
  });
14640
14650
  } else V.set(e, {
@@ -14668,13 +14678,13 @@ function og(e) {
14668
14678
  R?.sync();
14669
14679
  return;
14670
14680
  }
14671
- let i = e === t ? D : `--mesurer-annotation-trigger-${++eg}`;
14681
+ let i = e === t ? D : `--mesurer-annotation-trigger-${++rg}`;
14672
14682
  if (_e(), !e?.isConnected) return;
14673
14683
  F = e;
14674
14684
  let a = e.ownerDocument.defaultView;
14675
14685
  if (a) {
14676
14686
  if (n) {
14677
- L = ng(e, i), I = e, D = i, R = nc(a, e, ce, { trackWindow: !1 });
14687
+ L = ag(e, i), I = e, D = i, R = nc(a, e, ce, { trackWindow: !1 });
14678
14688
  return;
14679
14689
  }
14680
14690
  D = i, R = nc(a, e, ce, { trackWindow: ee() });
@@ -14743,7 +14753,7 @@ function og(e) {
14743
14753
  };
14744
14754
  });
14745
14755
  return e.region && t.push({ ...e.region }), t;
14746
- }), Pe = G(() => rg(Ne())), Fe = () => {
14756
+ }), Pe = G(() => og(Ne())), Fe = () => {
14747
14757
  let e = Te().elements.length;
14748
14758
  return e > 1 ? `${e} selected elements` : e === 1 ? "Selected element" : "Selected region";
14749
14759
  }, Ie = (e) => e.anchor.kind === "elements" ? `${e.anchor.targets.length} selected ${e.anchor.targets.length === 1 ? "element" : "elements"}` : "Selected region", Le = G(() => {
@@ -14765,7 +14775,7 @@ function og(e) {
14765
14775
  top: e.top,
14766
14776
  width: 24,
14767
14777
  height: 24
14768
- })), [a] = Qh([{
14778
+ })), [a] = tg([{
14769
14779
  id: "selection-note-trigger",
14770
14780
  rect: n
14771
14781
  }], {
@@ -14774,7 +14784,7 @@ function og(e) {
14774
14784
  }, {
14775
14785
  obstacles: i,
14776
14786
  maxShiftRings: 1
14777
- }), o = a?.left ?? $h(n.left + n.width + 6, 4, r.innerWidth - 24 - 4), s = a?.top ?? $h(n.top, 4, r.innerHeight - 24 - 4), c = I === e, l = ee() && !c;
14787
+ }), o = a?.left ?? ng(n.left + n.width + 6, 4, r.innerWidth - 24 - 4), s = a?.top ?? ng(n.top, 4, r.innerHeight - 24 - 4), c = I === e, l = ee() && !c;
14778
14788
  return {
14779
14789
  left: c || l ? o : o + r.scrollX,
14780
14790
  top: c || l ? s : s + r.scrollY,
@@ -14792,7 +14802,7 @@ function og(e) {
14792
14802
  rect: n
14793
14803
  }] : [];
14794
14804
  });
14795
- return new Map(Qh(i, {
14805
+ return new Map(tg(i, {
14796
14806
  width: n.innerWidth,
14797
14807
  height: n.innerHeight
14798
14808
  }, { obstacles: Ne() }).map((e) => [e.id, e]));
@@ -14816,7 +14826,7 @@ function og(e) {
14816
14826
  return n && e ? {
14817
14827
  left: e.left + n.left,
14818
14828
  top: e.top + n.top
14819
- } : e ? ag(e, 272, 168, t) : {
14829
+ } : e ? cg(e, 272, 168, t) : {
14820
14830
  left: 8,
14821
14831
  top: 8
14822
14832
  };
@@ -14837,7 +14847,7 @@ function og(e) {
14837
14847
  };
14838
14848
  }, We = (e, t) => {
14839
14849
  let n = H(), r = ze(), i = r.get(e);
14840
- if (!i) return ig(t, 272, 176, n);
14850
+ if (!i) return sg(t, 272, 176, n);
14841
14851
  let a = n.innerWidth - 272 - 8, o = n.innerHeight - 176 - 8, s = [...r.values()].map((e) => ({
14842
14852
  left: e.left,
14843
14853
  top: e.top,
@@ -14863,8 +14873,8 @@ function og(e) {
14863
14873
  }
14864
14874
  ]) {
14865
14875
  let t = {
14866
- left: $h(e.left, 8, a),
14867
- top: $h(e.top, 8, o)
14876
+ left: ng(e.left, 8, a),
14877
+ top: ng(e.top, 8, o)
14868
14878
  }, n = `${t.left}:${t.top}`;
14869
14879
  l.has(n) || (l.add(n), u.push(t));
14870
14880
  }
@@ -14880,7 +14890,7 @@ function og(e) {
14880
14890
  targetOverlap: c(r, t),
14881
14891
  index: n
14882
14892
  };
14883
- }).sort((e, t) => e.markerOverlap - t.markerOverlap || e.targetOverlap - t.targetOverlap || e.index - t.index)[0]?.candidate ?? ig(t, 272, 176, n);
14893
+ }).sort((e, t) => e.markerOverlap - t.markerOverlap || e.targetOverlap - t.targetOverlap || e.index - t.index)[0]?.candidate ?? sg(t, 272, 176, n);
14884
14894
  }, Ge = (t) => {
14885
14895
  let n = e.runtime.annotationRect(t);
14886
14896
  if (!n) return {
@@ -14928,8 +14938,8 @@ function og(e) {
14928
14938
  let u = (t) => {
14929
14939
  if (!j || t.pointerId !== j.pointerId) return;
14930
14940
  let r = j, i = Math.max(8, s.innerWidth - r.width - 8), a = Math.max(8, s.innerHeight - r.height - 8), o = {
14931
- left: $h(r.originLeft + t.clientX - r.startX, 8, i),
14932
- top: $h(r.originTop + t.clientY - r.startY, 8, a)
14941
+ left: ng(r.originLeft + t.clientX - r.startX, 8, i),
14942
+ top: ng(r.originTop + t.clientY - r.startY, 8, a)
14933
14943
  };
14934
14944
  if (n === "composer") {
14935
14945
  let e = Pe();
@@ -14974,7 +14984,7 @@ function og(e) {
14974
14984
  k = !1, A = ne(), v(""), b(null), w(null), o(null);
14975
14985
  let e = Pe();
14976
14986
  if (e) {
14977
- let t = ag(e, 272, 168, H());
14987
+ let t = cg(e, 272, 168, H());
14978
14988
  m({
14979
14989
  left: t.left - e.left,
14980
14990
  top: t.top - e.top
@@ -15338,11 +15348,11 @@ function og(e) {
15338
15348
  })
15339
15349
  ];
15340
15350
  }
15341
- function sg(e) {
15351
+ function ug(e) {
15342
15352
  let t = null;
15343
15353
  return Lt(xu(e.ownerWindow, () => {
15344
15354
  t?.abandonNoteComposer();
15345
- })), Y(og, {
15355
+ })), Y(lg, {
15346
15356
  get runtime() {
15347
15357
  return e.runtime;
15348
15358
  },
@@ -15360,8 +15370,8 @@ function sg(e) {
15360
15370
  }
15361
15371
  });
15362
15372
  }
15363
- var cg = "2147482950", lg = "2147483646", ug = "2147483647";
15364
- function dg(e) {
15373
+ var dg = "2147482950", fg = "2147483646", pg = "2147483647";
15374
+ function mg(e) {
15365
15375
  let { ownerDocument: t, ownerWindow: n, pageTarget: r } = e, i = t.body;
15366
15376
  if (!(i && !(r instanceof n.ShadowRoot) && r.getRootNode() === t)) return e.createInspectorMount();
15367
15377
  Fu(vd, i);
@@ -15378,17 +15388,17 @@ function dg(e) {
15378
15388
  o.dataset.mesurerDocumentInspectorLayerStyle = "true", o.textContent = `
15379
15389
  [data-mesurer-document-inspector-mount="true"] [data-mesurer-annotation-target-highlight="true"] {
15380
15390
  position: absolute !important;
15381
- z-index: ${cg} !important;
15391
+ z-index: ${dg} !important;
15382
15392
  }
15383
15393
  [data-mesurer-document-inspector-mount="true"] [data-mesurer-annotation-panel="true"] {
15384
15394
  position: absolute !important;
15385
- z-index: ${lg} !important;
15395
+ z-index: ${fg} !important;
15386
15396
  }
15387
15397
  [data-mesurer-document-inspector-mount="true"] [data-mesurer-annotation-marker="true"],
15388
15398
  [data-mesurer-document-inspector-mount="true"] [data-mesurer-annotation-trigger="true"],
15389
15399
  [data-mesurer-document-inspector-mount="true"] [data-mesurer-annotation-composer="true"] {
15390
15400
  position: absolute !important;
15391
- z-index: ${ug} !important;
15401
+ z-index: ${pg} !important;
15392
15402
  }
15393
15403
  `, t.head.append(o), i.append(a);
15394
15404
  let s = !1;
@@ -15399,7 +15409,7 @@ function dg(e) {
15399
15409
  }
15400
15410
  };
15401
15411
  }
15402
- var fg = "mesurer:capture-bridge-ping", pg = "mesurer:capture-bridge-request", mg = "mesurer:capture-bridge-response", hg = (e, t, n) => {
15412
+ var hg = "mesurer:capture-bridge-ping", gg = "mesurer:capture-bridge-request", _g = "mesurer:capture-bridge-response", vg = (e, t, n) => {
15403
15413
  let r = Math.max(0, Math.min(e.x, t.x, n.width)), i = Math.max(0, Math.min(e.y, t.y, n.height)), a = Math.max(0, Math.min(Math.max(e.x, t.x), n.width)), o = Math.max(0, Math.min(Math.max(e.y, t.y), n.height));
15404
15414
  return {
15405
15415
  left: r,
@@ -15407,7 +15417,7 @@ var fg = "mesurer:capture-bridge-ping", pg = "mesurer:capture-bridge-request", m
15407
15417
  width: Math.max(0, a - r),
15408
15418
  height: Math.max(0, o - i)
15409
15419
  };
15410
- }, gg = async (e, t, n, r) => {
15420
+ }, yg = async (e, t, n, r) => {
15411
15421
  let i = await createImageBitmap(e);
15412
15422
  try {
15413
15423
  let e = i.width / n.width, a = i.height / n.height, o = Math.max(0, Math.round(t.left * e)), s = Math.max(0, Math.round(t.top * a)), c = Math.max(1, Math.min(i.width - o, Math.round(t.width * e))), l = Math.max(1, Math.min(i.height - s, Math.round(t.height * a))), u = r.createElement("canvas");
@@ -15422,34 +15432,34 @@ var fg = "mesurer:capture-bridge-ping", pg = "mesurer:capture-bridge-request", m
15422
15432
  } finally {
15423
15433
  i.close();
15424
15434
  }
15425
- }, _g = async (e, t) => {
15435
+ }, bg = async (e, t) => {
15426
15436
  let n = t.navigator.clipboard, r = globalThis.ClipboardItem;
15427
15437
  if (!n?.write || !r) throw Error("PNG clipboard copy is not available");
15428
15438
  await n.write([new r({ "image/png": e })]);
15429
- }, vg = (e = /* @__PURE__ */ new Date()) => {
15439
+ }, xg = (e = /* @__PURE__ */ new Date()) => {
15430
15440
  let t = (e) => String(e).padStart(2, "0");
15431
15441
  return `mesurer-${e.getFullYear()}-${t(e.getMonth() + 1)}-${t(e.getDate())}-${t(e.getHours())}${t(e.getMinutes())}${t(e.getSeconds())}.png`;
15432
- }, yg = (e, t, n, r) => {
15442
+ }, Sg = (e, t, n, r) => {
15433
15443
  let i = globalThis.URL.createObjectURL(e), a = n.createElement("a");
15434
15444
  a.href = i, a.download = t, a.rel = "noopener", n.documentElement.append(a), a.click(), a.remove(), r.setTimeout(() => globalThis.URL.revokeObjectURL(i), 1e3);
15435
- }, bg = (e) => new Promise((t) => {
15445
+ }, Cg = (e) => new Promise((t) => {
15436
15446
  e.requestAnimationFrame(() => {
15437
15447
  e.requestAnimationFrame(() => t());
15438
15448
  });
15439
- }), xg = (e) => e.crypto?.randomUUID?.() ?? `mesurer-${Date.now()}-${Math.random().toString(36).slice(2)}`, Sg = (e, t, n = "") => `${e}:${t}:${n}`, Cg = (e, t, n) => {
15449
+ }), wg = (e) => e.crypto?.randomUUID?.() ?? `mesurer-${Date.now()}-${Math.random().toString(36).slice(2)}`, Tg = (e, t, n = "") => `${e}:${t}:${n}`, Eg = (e, t, n) => {
15440
15450
  let r = `${t}:${n}:`;
15441
15451
  return e.startsWith(r) ? e.slice(r.length) : null;
15442
- }, wg = (e) => new Promise((t) => {
15443
- let n = xg(e), r = e.location.origin, i = (o) => {
15444
- o.source === e && o.origin === r && Cg(String(o.data ?? ""), "mesurer:capture-bridge-pong", n) !== null && (e.removeEventListener("message", i), e.clearTimeout(a), t(!0));
15452
+ }, Dg = (e) => new Promise((t) => {
15453
+ let n = wg(e), r = e.location.origin, i = (o) => {
15454
+ o.source === e && o.origin === r && Eg(String(o.data ?? ""), "mesurer:capture-bridge-pong", n) !== null && (e.removeEventListener("message", i), e.clearTimeout(a), t(!0));
15445
15455
  }, a = e.setTimeout(() => {
15446
15456
  e.removeEventListener("message", i), t(!1);
15447
15457
  }, 80);
15448
- e.addEventListener("message", i), e.postMessage(Sg(fg, n), r);
15449
- }), Tg = (e) => new Promise((t, n) => {
15450
- let r = xg(e), i = e.location.origin, a = (s) => {
15458
+ e.addEventListener("message", i), e.postMessage(Tg(hg, n), r);
15459
+ }), Og = (e) => new Promise((t, n) => {
15460
+ let r = wg(e), i = e.location.origin, a = (s) => {
15451
15461
  if (s.source !== e || s.origin !== i) return;
15452
- let c = Cg(String(s.data ?? ""), mg, r);
15462
+ let c = Eg(String(s.data ?? ""), _g, r);
15453
15463
  if (c === null) return;
15454
15464
  if (e.removeEventListener("message", a), e.clearTimeout(o), !c.startsWith("ok:")) {
15455
15465
  t(null);
@@ -15464,16 +15474,16 @@ var fg = "mesurer:capture-bridge-ping", pg = "mesurer:capture-bridge-request", m
15464
15474
  }, o = e.setTimeout(() => {
15465
15475
  e.removeEventListener("message", a), t(null);
15466
15476
  }, 4e3);
15467
- e.addEventListener("message", a), e.postMessage(Sg(pg, r), i);
15468
- }), Eg = /* @__PURE__ */ new WeakMap(), Dg = (e) => {
15469
- let t = Eg.get(e), n = t?.stream.getVideoTracks()[0];
15477
+ e.addEventListener("message", a), e.postMessage(Tg(gg, r), i);
15478
+ }), kg = /* @__PURE__ */ new WeakMap(), Ag = (e) => {
15479
+ let t = kg.get(e), n = t?.stream.getVideoTracks()[0];
15470
15480
  if (!t || !n || n.readyState !== "live") {
15471
- Eg.delete(e);
15481
+ kg.delete(e);
15472
15482
  return;
15473
15483
  }
15474
15484
  return t;
15475
- }, Og = async (e, t) => {
15476
- let n = Dg(t);
15485
+ }, jg = async (e, t) => {
15486
+ let n = Ag(t);
15477
15487
  if (n) return n;
15478
15488
  let r = t.navigator.mediaDevices;
15479
15489
  if (!r?.getDisplayMedia) throw Error("Screenshot capture is unavailable");
@@ -15493,17 +15503,17 @@ var fg = "mesurer:capture-bridge-ping", pg = "mesurer:capture-bridge-request", m
15493
15503
  stream: i,
15494
15504
  video: n
15495
15505
  };
15496
- return Eg.set(t, r), a.addEventListener("ended", () => {
15497
- Eg.get(t) === r && Eg.delete(t);
15506
+ return kg.set(t, r), a.addEventListener("ended", () => {
15507
+ kg.get(t) === r && kg.delete(t);
15498
15508
  }, { once: !0 }), r;
15499
15509
  } catch (e) {
15500
15510
  throw i.getTracks().forEach((e) => e.stop()), e;
15501
15511
  }
15502
- }, kg = (e) => {
15503
- let t = Eg.get(e);
15504
- t && (Eg.delete(e), t.video.pause(), t.video.srcObject = null, t.stream.getTracks().forEach((e) => e.stop()));
15505
- }, Ag = async ({ ownerDocument: e, ownerWindow: t }) => {
15506
- let { video: n } = await Og(e, t), r = e.createElement("canvas");
15512
+ }, Mg = (e) => {
15513
+ let t = kg.get(e);
15514
+ t && (kg.delete(e), t.video.pause(), t.video.srcObject = null, t.stream.getTracks().forEach((e) => e.stop()));
15515
+ }, Ng = async ({ ownerDocument: e, ownerWindow: t }) => {
15516
+ let { video: n } = await jg(e, t), r = e.createElement("canvas");
15507
15517
  r.width = n.videoWidth, r.height = n.videoHeight;
15508
15518
  let i = r.getContext("2d");
15509
15519
  if (!i) throw Error("Capture failed");
@@ -15512,25 +15522,25 @@ var fg = "mesurer:capture-bridge-ping", pg = "mesurer:capture-bridge-request", m
15512
15522
  n ? e(n) : t(/* @__PURE__ */ Error("Capture failed"));
15513
15523
  }, "image/png");
15514
15524
  });
15515
- }, jg = async (e, t) => {
15516
- await wg(t) || await Og(e, t);
15517
- }, Mg = async ({ ownerDocument: e, ownerWindow: t }) => {
15518
- if (await wg(t)) {
15519
- let e = await Tg(t);
15525
+ }, Pg = async (e, t) => {
15526
+ await Dg(t) || await jg(e, t);
15527
+ }, Fg = async ({ ownerDocument: e, ownerWindow: t }) => {
15528
+ if (await Dg(t)) {
15529
+ let e = await Og(t);
15520
15530
  if (e) return e;
15521
15531
  }
15522
- return Ag({
15532
+ return Ng({
15523
15533
  ownerDocument: e,
15524
15534
  ownerWindow: t
15525
15535
  });
15526
- }, Ng = 144, Pg = 96, Fg = 8, Ig = 4, Lg = 1800, Rg = (e, t) => {
15536
+ }, Ig = 144, Lg = 96, Rg = 8, zg = 4, Bg = 1800, Vg = (e, t) => {
15527
15537
  for (let [n, r] of Object.entries(t)) e.style.setProperty(n, r);
15528
- }, zg = (e, t) => ({
15529
- left: Math.min(Math.max(Fg, e.left), Math.max(Fg, t.innerWidth - Ng - Fg)),
15530
- top: Math.min(Math.max(Fg, e.top), Math.max(Fg, t.innerHeight - Pg - Fg))
15531
- }), Bg = (e, t) => {
15538
+ }, Hg = (e, t) => ({
15539
+ left: Math.min(Math.max(Rg, e.left), Math.max(Rg, t.innerWidth - Ig - Rg)),
15540
+ top: Math.min(Math.max(Rg, e.top), Math.max(Rg, t.innerHeight - Lg - Rg))
15541
+ }), Ug = (e, t) => {
15532
15542
  let n = e.createElement("button");
15533
- return n.type = "button", n.textContent = t, Rg(n, {
15543
+ return n.type = "button", n.textContent = t, Vg(n, {
15534
15544
  height: "32px",
15535
15545
  padding: "0 12px",
15536
15546
  border: "1px solid rgb(255 255 255 / 18%)",
@@ -15542,11 +15552,11 @@ var fg = "mesurer:capture-bridge-ping", pg = "mesurer:capture-bridge-request", m
15542
15552
  "font-weight": "500",
15543
15553
  cursor: "pointer"
15544
15554
  }), n;
15545
- }, Vg = ({ 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", Hg = (e) => e !== null && (e.nodeType === 1 || e.nodeType === 11), Ug = ({ ownerDocument: e, ownerWindow: t, root: n, previewDurationMs: r }) => {
15555
+ }, Wg = ({ 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", Gg = (e) => e !== null && (e.nodeType === 1 || e.nodeType === 11), Kg = ({ ownerDocument: e, ownerWindow: t, root: n, previewDurationMs: r }) => {
15546
15556
  let i = n.closest("[data-mesurer-root='true']")?.parentNode ?? n.parentNode;
15547
- if (!Hg(i)) throw Error("Screenshot preview requires a mounted Mesurer host.");
15557
+ if (!Gg(i)) throw Error("Screenshot preview requires a mounted Mesurer host.");
15548
15558
  let a = e.createElement("div");
15549
- a.dataset.mesurerInspectorUi = "true", a.dataset.mesurerScreenshotInteractive = "true", Rg(a, {
15559
+ a.dataset.mesurerInspectorUi = "true", a.dataset.mesurerScreenshotInteractive = "true", Vg(a, {
15550
15560
  position: "fixed",
15551
15561
  left: "0",
15552
15562
  top: "0",
@@ -15558,12 +15568,12 @@ var fg = "mesurer:capture-bridge-ping", pg = "mesurer:capture-bridge-request", m
15558
15568
  "font-family": "ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif"
15559
15569
  }), i.append(a);
15560
15570
  let o = e.createElement("div");
15561
- o.dataset.mesurerScreenshotPreview = "true", o.setAttribute("role", "button"), o.setAttribute("aria-label", "Open captured screenshot"), o.tabIndex = 0, Rg(o, {
15571
+ o.dataset.mesurerScreenshotPreview = "true", o.setAttribute("role", "button"), o.setAttribute("aria-label", "Open captured screenshot"), o.tabIndex = 0, Vg(o, {
15562
15572
  position: "fixed",
15563
15573
  display: "none",
15564
15574
  "z-index": "96",
15565
- width: `${Ng}px`,
15566
- height: `${Pg}px`,
15575
+ width: `${Ig}px`,
15576
+ height: `${Lg}px`,
15567
15577
  "box-sizing": "border-box",
15568
15578
  overflow: "hidden",
15569
15579
  "border-radius": "10px",
@@ -15576,7 +15586,7 @@ var fg = "mesurer:capture-bridge-ping", pg = "mesurer:capture-bridge-request", m
15576
15586
  "touch-action": "none"
15577
15587
  });
15578
15588
  let s = e.createElement("img");
15579
- s.dataset.mesurerScreenshotPreviewImage = "true", s.alt = "Captured screenshot", s.draggable = !1, s.title = "Click to open · Right-click for browser image actions", Rg(s, {
15589
+ s.dataset.mesurerScreenshotPreviewImage = "true", s.alt = "Captured screenshot", s.draggable = !1, s.title = "Click to open · Right-click for browser image actions", Vg(s, {
15580
15590
  display: "block",
15581
15591
  width: "100%",
15582
15592
  height: "100%",
@@ -15584,7 +15594,7 @@ var fg = "mesurer:capture-bridge-ping", pg = "mesurer:capture-bridge-request", m
15584
15594
  "background-color": "white"
15585
15595
  }), o.append(s);
15586
15596
  let c = e.createElement("button");
15587
- c.dataset.mesurerScreenshotPreviewDismiss = "true", c.type = "button", c.setAttribute("aria-label", "Dismiss screenshot preview"), c.title = "Dismiss", Rg(c, {
15597
+ c.dataset.mesurerScreenshotPreviewDismiss = "true", c.type = "button", c.setAttribute("aria-label", "Dismiss screenshot preview"), c.title = "Dismiss", Vg(c, {
15588
15598
  position: "absolute",
15589
15599
  top: "8px",
15590
15600
  right: "8px",
@@ -15610,7 +15620,7 @@ var fg = "mesurer:capture-bridge-ping", pg = "mesurer:capture-bridge-request", m
15610
15620
  let u = e.createElementNS("http://www.w3.org/2000/svg", "path");
15611
15621
  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);
15612
15622
  let d = e.createElement("div");
15613
- d.dataset.mesurerScreenshotViewer = "true", d.setAttribute("role", "dialog"), d.setAttribute("aria-modal", "true"), d.setAttribute("aria-label", "Screenshot viewer"), Rg(d, {
15623
+ d.dataset.mesurerScreenshotViewer = "true", d.setAttribute("role", "dialog"), d.setAttribute("aria-modal", "true"), d.setAttribute("aria-label", "Screenshot viewer"), Vg(d, {
15614
15624
  position: "fixed",
15615
15625
  inset: "0",
15616
15626
  display: "none",
@@ -15624,7 +15634,7 @@ var fg = "mesurer:capture-bridge-ping", pg = "mesurer:capture-bridge-request", m
15624
15634
  "pointer-events": "auto"
15625
15635
  });
15626
15636
  let f = e.createElement("img");
15627
- f.dataset.mesurerScreenshotViewerImage = "true", f.alt = "Captured screenshot", Rg(f, {
15637
+ f.dataset.mesurerScreenshotViewerImage = "true", f.alt = "Captured screenshot", Vg(f, {
15628
15638
  display: "block",
15629
15639
  "max-width": "calc(100vw - 96px)",
15630
15640
  "max-height": "calc(100vh - 112px)",
@@ -15635,7 +15645,7 @@ var fg = "mesurer:capture-bridge-ping", pg = "mesurer:capture-bridge-request", m
15635
15645
  "box-shadow": "0 8px 30px rgb(0 0 0 / 28%)"
15636
15646
  }), d.append(f);
15637
15647
  let p = e.createElement("div");
15638
- p.dataset.mesurerScreenshotViewerControls = "true", Rg(p, {
15648
+ p.dataset.mesurerScreenshotViewerControls = "true", Vg(p, {
15639
15649
  position: "fixed",
15640
15650
  top: "16px",
15641
15651
  right: "16px",
@@ -15643,14 +15653,14 @@ var fg = "mesurer:capture-bridge-ping", pg = "mesurer:capture-bridge-request", m
15643
15653
  gap: "8px",
15644
15654
  "pointer-events": "auto"
15645
15655
  });
15646
- let m = Bg(e, "Copy");
15656
+ let m = Ug(e, "Copy");
15647
15657
  m.dataset.mesurerScreenshotViewerCopy = "true", m.setAttribute("aria-label", "Copy screenshot");
15648
- let h = Bg(e, "Save");
15658
+ let h = Ug(e, "Save");
15649
15659
  h.dataset.mesurerScreenshotViewerSave = "true", h.setAttribute("aria-label", "Save screenshot");
15650
- let g = Bg(e, "Close");
15660
+ let g = Ug(e, "Close");
15651
15661
  g.dataset.mesurerScreenshotViewerClose = "true", g.setAttribute("aria-label", "Close screenshot viewer"), p.append(m, h, g), d.append(p), a.append(d);
15652
15662
  let _ = e.createElement("div");
15653
- _.dataset.mesurerScreenshotToast = "true", _.setAttribute("role", "status"), Rg(_, {
15663
+ _.dataset.mesurerScreenshotToast = "true", _.setAttribute("role", "status"), Vg(_, {
15654
15664
  position: "fixed",
15655
15665
  left: "50%",
15656
15666
  bottom: "20px",
@@ -15672,32 +15682,32 @@ var fg = "mesurer:capture-bridge-ping", pg = "mesurer:capture-bridge-request", m
15672
15682
  }, D = (e, n = !1) => {
15673
15683
  E(), _.textContent = e, _.style.backgroundColor = n ? "#b42318" : "rgb(28 28 30 / 90%)", _.style.display = "block", C = t.setTimeout(() => {
15674
15684
  C = 0, _.style.display = "none";
15675
- }, Lg);
15685
+ }, Bg);
15676
15686
  }, O = () => {
15677
15687
  d.style.display = "none";
15678
15688
  }, k = () => {
15679
15689
  y && globalThis.URL.revokeObjectURL(y), y = null, v = null, s.removeAttribute("src"), f.removeAttribute("src");
15680
15690
  }, A = () => {
15681
15691
  T(), O(), o.style.display = "none", k();
15682
- }, j = () => zg({
15683
- left: t.innerWidth - Ng - Fg,
15684
- top: t.innerHeight - Pg - Fg
15692
+ }, j = () => Hg({
15693
+ left: t.innerWidth - Ig - Rg,
15694
+ top: t.innerHeight - Lg - Rg
15685
15695
  }, t), M = (e) => {
15686
- let n = zg(e, t);
15696
+ let n = Hg(e, t);
15687
15697
  b = n, o.style.left = `${n.left}px`, o.style.top = `${n.top}px`;
15688
15698
  }, N = () => {
15689
15699
  !v || !y || (T(), d.style.display = "flex", g.focus());
15690
15700
  }, P = async () => {
15691
15701
  let e = v;
15692
15702
  if (e) try {
15693
- await _g(Promise.resolve(e), t), D("Copied screenshot");
15703
+ await bg(Promise.resolve(e), t), D("Copied screenshot");
15694
15704
  } catch {
15695
15705
  D("Could not copy screenshot", !0);
15696
15706
  }
15697
15707
  }, F = () => {
15698
15708
  let n = v;
15699
15709
  if (n) try {
15700
- yg(n, vg(), e, t), D("Saved screenshot");
15710
+ Sg(n, xg(), e, t), D("Saved screenshot");
15701
15711
  } catch {
15702
15712
  D("Could not save screenshot", !0);
15703
15713
  }
@@ -15717,7 +15727,7 @@ var fg = "mesurer:capture-bridge-ping", pg = "mesurer:capture-bridge-request", m
15717
15727
  let n = x;
15718
15728
  if (!n) return;
15719
15729
  let r = e - n.startX, i = t - n.startY;
15720
- !n.moved && Math.hypot(r, i) >= Ig && (n.moved = !0), n.moved && M({
15730
+ !n.moved && Math.hypot(r, i) >= zg && (n.moved = !0), n.moved && M({
15721
15731
  left: n.left + r,
15722
15732
  top: n.top + i
15723
15733
  });
@@ -15761,25 +15771,25 @@ var fg = "mesurer:capture-bridge-ping", pg = "mesurer:capture-bridge-request", m
15761
15771
  if (w) return;
15762
15772
  T(), O(), k(), v = e;
15763
15773
  let i = globalThis.URL.createObjectURL(e);
15764
- y = i, s.src = i, f.src = i, o.style.display = "block", M(b ?? j()), D(Vg(n)), r > 0 && (S = t.setTimeout(A, r));
15774
+ y = i, s.src = i, f.src = i, o.style.display = "block", M(b ?? j()), D(Wg(n)), r > 0 && (S = t.setTimeout(A, r));
15765
15775
  },
15766
15776
  dismiss: A,
15767
15777
  dispose() {
15768
15778
  w || (w = !0, T(), E(), A(), t.removeEventListener("mousemove", V, !0), t.removeEventListener("mouseup", H, !0), t.removeEventListener("pointermove", U, !0), t.removeEventListener("pointerup", te, !0), t.removeEventListener("pointercancel", ne, !0), t.removeEventListener("keydown", oe, !0), o.removeEventListener("mousedown", B), o.removeEventListener("pointerdown", ee), o.removeEventListener("keydown", re), o.removeEventListener("contextmenu", ie), d.removeEventListener("click", ae), a.remove());
15769
15779
  }
15770
15780
  };
15771
- }, Wg = "mesurer.screenshot", Gg = "screenshot", Kg = "mesurer.screenshot.settings", qg = "mesurer.screenshot.active", Jg = "runtime:solid", Yg = "screenshot.toggle", Xg = 2500, Zg = 0, Qg = [
15781
+ }, qg = "mesurer.screenshot", Jg = "screenshot", Yg = "mesurer.screenshot.settings", Xg = "mesurer.screenshot.active", Zg = "runtime:solid", Qg = "screenshot.toggle", $g = 2500, e_ = 0, t_ = [
15772
15782
  "[data-mesurer-measurement='true']",
15773
15783
  "[data-mesurer-selected-measurement='true']",
15774
15784
  "[data-mesurer-selection-spacing-target='true']",
15775
15785
  "[data-mesurer-guide='true']",
15776
15786
  "[data-mesurer-distance='true']"
15777
- ].join(","), $g = `${Qg},[data-mesurer-rulers='true']`, e_ = {
15787
+ ].join(","), n_ = `${t_},[data-mesurer-rulers='true']`, r_ = {
15778
15788
  viewBox: "0 0 256 256",
15779
15789
  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"]
15780
- }, t_ = (e, t) => {
15790
+ }, i_ = (e, t) => {
15781
15791
  for (let [n, r] of Object.entries(t)) e.style.setProperty(n, r);
15782
- }, n_ = (e, t) => {
15792
+ }, a_ = (e, t) => {
15783
15793
  for (let n of [
15784
15794
  "left",
15785
15795
  "top",
@@ -15791,63 +15801,63 @@ var fg = "mesurer:capture-bridge-ping", pg = "mesurer:capture-bridge-request", m
15791
15801
  let r = t[n];
15792
15802
  r === void 0 ? e.style.removeProperty(n) : e.style.setProperty(n, `${r}px`);
15793
15803
  }
15794
- }, r_ = (e) => {
15795
- let t = e(Kg);
15804
+ }, o_ = (e) => {
15805
+ let t = e(Yg);
15796
15806
  return {
15797
15807
  toolEnabled: t?.toolEnabled ?? !0,
15798
15808
  copy: t?.copy ?? !0,
15799
15809
  download: t?.download ?? !1,
15800
15810
  includeMeasurements: t?.includeMeasurements ?? !1
15801
15811
  };
15802
- }, i_ = (e) => ({
15812
+ }, s_ = (e) => ({
15803
15813
  value: e.style.getPropertyValue("display"),
15804
15814
  priority: e.style.getPropertyPriority("display")
15805
- }), a_ = (e, t) => {
15815
+ }), c_ = (e, t) => {
15806
15816
  t.value || t.priority ? e.style.setProperty("display", t.value, t.priority) : e.style.removeProperty("display");
15807
- }, o_ = (e, t) => {
15817
+ }, l_ = (e, t) => {
15808
15818
  let n = e;
15809
15819
  for (; n.parentElement && n.parentElement !== t;) n = n.parentElement;
15810
15820
  return n.parentElement === t ? n : null;
15811
- }, s_ = (e) => {
15821
+ }, u_ = (e) => {
15812
15822
  let t = e.querySelector("[data-mesurer-root='true']");
15813
15823
  if (!t) return () => void 0;
15814
15824
  let n = /* @__PURE__ */ new Set();
15815
15825
  for (let e of t.querySelectorAll("[data-mesurer-rulers='true']")) {
15816
- let r = o_(e, t);
15826
+ let r = l_(e, t);
15817
15827
  r && n.add(r);
15818
15828
  }
15819
- for (let e of t.querySelectorAll(Qg)) {
15820
- let r = o_(e, t);
15829
+ for (let e of t.querySelectorAll(t_)) {
15830
+ let r = l_(e, t);
15821
15831
  r && n.add(r);
15822
15832
  }
15823
15833
  let r = [];
15824
15834
  for (let e of n) e.dataset.mesurerInspectorUi !== "true" && (r.push({
15825
15835
  element: e,
15826
- display: i_(e)
15836
+ display: s_(e)
15827
15837
  }), e.style.setProperty("display", "none", "important"));
15828
15838
  return () => {
15829
- for (let e of r) a_(e.element, e.display);
15839
+ for (let e of r) c_(e.element, e.display);
15830
15840
  };
15831
- }, c_ = (e) => Array.from(e.querySelectorAll($g)).filter((e) => e.dataset.mesurerInspectorUi === "true").map((e) => ({
15841
+ }, d_ = (e) => Array.from(e.querySelectorAll(n_)).filter((e) => e.dataset.mesurerInspectorUi === "true").map((e) => ({
15832
15842
  element: e,
15833
- display: i_(e)
15834
- })), l_ = (e) => {
15835
- for (let t of e) t.element.isConnected && a_(t.element, t.display);
15836
- }, u_ = (e = {}) => pa({
15837
- id: Wg,
15843
+ display: s_(e)
15844
+ })), f_ = (e) => {
15845
+ for (let t of e) t.element.isConnected && c_(t.element, t.display);
15846
+ }, p_ = (e = {}) => pa({
15847
+ id: qg,
15838
15848
  version: "0.1.0",
15839
- requires: [Jg],
15849
+ requires: [Zg],
15840
15850
  provides: [
15841
15851
  "tool:screenshot",
15842
15852
  "capture:screenshot",
15843
15853
  "settings:screenshot"
15844
15854
  ],
15845
15855
  setup(t) {
15846
- let n = t.service.get(Jg);
15856
+ let n = t.service.get(Zg);
15847
15857
  if (!n) throw Error("Screenshot plugin requires the Solid renderer runtime.");
15848
- let { ownerDocument: r, ownerWindow: i } = n, a = n.createWorkspaceRuntime(), o = n.createInspectorMount(), s = e.captureVisibleTab ?? Mg, c = e.previewDurationMs ?? Zg;
15858
+ let { ownerDocument: r, ownerWindow: i } = n, a = n.createWorkspaceRuntime(), o = n.createInspectorMount(), s = e.captureVisibleTab ?? Fg, c = e.previewDurationMs ?? e_;
15849
15859
  t.state.register({
15850
- id: Kg,
15860
+ id: Yg,
15851
15861
  initial: {
15852
15862
  toolEnabled: e.toolEnabled ?? !0,
15853
15863
  copy: e.copy ?? !0,
@@ -15856,11 +15866,11 @@ var fg = "mesurer:capture-bridge-ping", pg = "mesurer:capture-bridge-request", m
15856
15866
  },
15857
15867
  persist: !0
15858
15868
  }), t.state.register({
15859
- id: qg,
15869
+ id: Xg,
15860
15870
  initial: !1
15861
15871
  });
15862
15872
  let l = o.element;
15863
- l.dataset.mesurerScreenshot = "true", t_(l, {
15873
+ l.dataset.mesurerScreenshot = "true", i_(l, {
15864
15874
  position: "fixed",
15865
15875
  inset: "0",
15866
15876
  "z-index": "85",
@@ -15868,7 +15878,7 @@ var fg = "mesurer:capture-bridge-ping", pg = "mesurer:capture-bridge-request", m
15868
15878
  "font-family": "ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif"
15869
15879
  });
15870
15880
  let u = r.createElement("div");
15871
- u.dataset.mesurerScreenshotSelect = "true", u.setAttribute("role", "application"), u.setAttribute("aria-label", "Screenshot selection"), t_(u, {
15881
+ u.dataset.mesurerScreenshotSelect = "true", u.setAttribute("role", "application"), u.setAttribute("aria-label", "Screenshot selection"), i_(u, {
15872
15882
  position: "fixed",
15873
15883
  inset: "0",
15874
15884
  display: "none",
@@ -15880,13 +15890,13 @@ var fg = "mesurer:capture-bridge-ping", pg = "mesurer:capture-bridge-request", m
15880
15890
  }), l.append(u);
15881
15891
  let d = Array.from({ length: 4 }, () => {
15882
15892
  let e = r.createElement("div");
15883
- return t_(e, {
15893
+ return i_(e, {
15884
15894
  position: "fixed",
15885
15895
  "background-color": "rgb(0 0 0 / 40%)",
15886
15896
  "pointer-events": "none"
15887
15897
  }), u.append(e), e;
15888
15898
  }), f = r.createElement("div");
15889
- t_(f, {
15899
+ i_(f, {
15890
15900
  position: "fixed",
15891
15901
  display: "none",
15892
15902
  border: "1px solid #0d99ff",
@@ -15894,7 +15904,7 @@ var fg = "mesurer:capture-bridge-ping", pg = "mesurer:capture-bridge-request", m
15894
15904
  "pointer-events": "none"
15895
15905
  }), u.append(f);
15896
15906
  let p = r.createElement("div");
15897
- t_(p, {
15907
+ i_(p, {
15898
15908
  position: "fixed",
15899
15909
  display: "none",
15900
15910
  "z-index": "86",
@@ -15908,7 +15918,7 @@ var fg = "mesurer:capture-bridge-ping", pg = "mesurer:capture-bridge-request", m
15908
15918
  "pointer-events": "none"
15909
15919
  }), u.append(p);
15910
15920
  let m = r.createElement("div");
15911
- m.textContent = "Drag to select · Esc to cancel", t_(m, {
15921
+ m.textContent = "Drag to select · Esc to cancel", i_(m, {
15912
15922
  position: "fixed",
15913
15923
  left: "50%",
15914
15924
  bottom: "16px",
@@ -15921,7 +15931,7 @@ var fg = "mesurer:capture-bridge-ping", pg = "mesurer:capture-bridge-request", m
15921
15931
  "pointer-events": "none"
15922
15932
  }), u.append(m);
15923
15933
  let h = r.createElement("div");
15924
- h.dataset.mesurerScreenshotError = "true", h.setAttribute("role", "status"), h.textContent = "Could not save screenshot", t_(h, {
15934
+ h.dataset.mesurerScreenshotError = "true", h.setAttribute("role", "status"), h.textContent = "Could not save screenshot", i_(h, {
15925
15935
  position: "fixed",
15926
15936
  display: "none",
15927
15937
  "z-index": "97",
@@ -15932,8 +15942,8 @@ var fg = "mesurer:capture-bridge-ping", pg = "mesurer:capture-bridge-request", m
15932
15942
  "font-size": "11px",
15933
15943
  "pointer-events": "none"
15934
15944
  }), l.append(h);
15935
- let g = null, _ = null, v = 0, y = 0, b = !1, x = !1, S = !1, C = () => t.state.get("mesurer.screenshot.active") ?? !1, w = () => r_(t.state.get), T = (e) => {
15936
- t.state.update(Kg, (t) => {
15945
+ let g = null, _ = null, v = 0, y = 0, b = !1, x = !1, S = !1, C = () => t.state.get("mesurer.screenshot.active") ?? !1, w = () => o_(t.state.get), T = (e) => {
15946
+ t.state.update(Yg, (t) => {
15937
15947
  let n = { ...t };
15938
15948
  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;
15939
15949
  });
@@ -15956,13 +15966,13 @@ var fg = "mesurer:capture-bridge-ping", pg = "mesurer:capture-bridge-request", m
15956
15966
  }, k = (e) => {
15957
15967
  let t = i.innerWidth, n = i.innerHeight;
15958
15968
  if (!e || e.width <= 0 || e.height <= 0) {
15959
- n_(d[0], {
15969
+ a_(d[0], {
15960
15970
  left: 0,
15961
15971
  top: 0,
15962
15972
  width: t,
15963
15973
  height: n
15964
15974
  });
15965
- for (let e of d.slice(1)) n_(e, {
15975
+ for (let e of d.slice(1)) a_(e, {
15966
15976
  left: 0,
15967
15977
  top: 0,
15968
15978
  width: 0,
@@ -15971,31 +15981,31 @@ var fg = "mesurer:capture-bridge-ping", pg = "mesurer:capture-bridge-request", m
15971
15981
  f.style.display = "none", p.style.display = "none";
15972
15982
  return;
15973
15983
  }
15974
- n_(d[0], {
15984
+ a_(d[0], {
15975
15985
  left: 0,
15976
15986
  top: 0,
15977
15987
  width: t,
15978
15988
  height: e.top
15979
- }), n_(d[1], {
15989
+ }), a_(d[1], {
15980
15990
  left: 0,
15981
15991
  top: e.top,
15982
15992
  width: e.left,
15983
15993
  height: e.height
15984
- }), n_(d[2], {
15994
+ }), a_(d[2], {
15985
15995
  left: e.left + e.width,
15986
15996
  top: e.top,
15987
15997
  width: Math.max(0, t - e.left - e.width),
15988
15998
  height: e.height
15989
- }), n_(d[3], {
15999
+ }), a_(d[3], {
15990
16000
  left: 0,
15991
16001
  top: e.top + e.height,
15992
16002
  width: t,
15993
16003
  height: Math.max(0, n - e.top - e.height)
15994
- }), f.style.display = "block", n_(f, e), p.style.display = "block", p.textContent = `${Math.round(e.width)} × ${Math.round(e.height)}`, n_(p, {
16004
+ }), f.style.display = "block", a_(f, e), p.style.display = "block", p.textContent = `${Math.round(e.width)} × ${Math.round(e.height)}`, a_(p, {
15995
16005
  left: e.left + e.width / 2,
15996
16006
  top: Math.min(n - 22, e.top + e.height + 6)
15997
16007
  });
15998
- }, A = () => n.portalTarget.querySelector("[data-mesurer-tool-id='screenshot']")?.getBoundingClientRect() ?? null, j = Ug({
16008
+ }, A = () => n.portalTarget.querySelector("[data-mesurer-tool-id='screenshot']")?.getBoundingClientRect() ?? null, j = Kg({
15999
16009
  ownerDocument: r,
16000
16010
  ownerWindow: i,
16001
16011
  root: l,
@@ -16006,20 +16016,20 @@ var fg = "mesurer:capture-bridge-ping", pg = "mesurer:capture-bridge-request", m
16006
16016
  }, N = () => {
16007
16017
  v && i.clearTimeout(v), h.style.display = "block", M(h), v = i.setTimeout(() => {
16008
16018
  v = 0, h.style.display = "none";
16009
- }, Xg);
16019
+ }, $g);
16010
16020
  }, P = () => {
16011
16021
  g = null, k(null), u.style.visibility = "", u.style.display = "none", l.style.pointerEvents = "none", E(!1), O();
16012
16022
  }, F = () => {
16013
- y += 1, P(), kg(i);
16023
+ y += 1, P(), Mg(i);
16014
16024
  }, I = async (e) => {
16015
16025
  if (b) throw Error("A screenshot capture is already running.");
16016
16026
  if (e.width < 4 || e.height < 4) throw Error("Screenshot selection must be at least 4px by 4px.");
16017
16027
  b = !0;
16018
- let o = ++y, c = w(), l = c.includeMeasurements ? c_(r) : [], d = c.includeMeasurements ? () => void 0 : s_(n.portalTarget);
16019
- a.prepareCapture(), c.includeMeasurements && l_(l);
16028
+ let o = ++y, c = w(), l = c.includeMeasurements ? d_(r) : [], d = c.includeMeasurements ? () => void 0 : u_(n.portalTarget);
16029
+ a.prepareCapture(), c.includeMeasurements && f_(l);
16020
16030
  try {
16021
- u.style.visibility = "hidden", await bg(i);
16022
- let n = await gg(await s({
16031
+ u.style.visibility = "hidden", await Cg(i);
16032
+ let n = await yg(await s({
16023
16033
  ownerDocument: r,
16024
16034
  ownerWindow: i
16025
16035
  }), e, {
@@ -16027,10 +16037,10 @@ var fg = "mesurer:capture-bridge-ping", pg = "mesurer:capture-bridge-request", m
16027
16037
  height: i.innerHeight
16028
16038
  }, r);
16029
16039
  if (y !== o) throw Error("Screenshot capture was cancelled.");
16030
- let a = !1, l = !1, d = c.copy ? _g(Promise.resolve(n), i).then(() => {
16040
+ let a = !1, l = !1, d = c.copy ? bg(Promise.resolve(n), i).then(() => {
16031
16041
  a = !0;
16032
16042
  }) : Promise.resolve(), f = c.download ? Promise.resolve().then(() => {
16033
- yg(n, vg(), r, i), l = !0;
16043
+ Sg(n, xg(), r, i), l = !0;
16034
16044
  }) : Promise.resolve(), p = await Promise.allSettled([d, f]), m = c.copy && p[0]?.status === "rejected", h = c.download && p[1]?.status === "rejected";
16035
16045
  if (y !== o) throw Error("Screenshot capture was cancelled.");
16036
16046
  return j.show(n, {
@@ -16062,7 +16072,7 @@ var fg = "mesurer:capture-bridge-ping", pg = "mesurer:capture-bridge-request", m
16062
16072
  if (!x) {
16063
16073
  x = !0, j.dismiss();
16064
16074
  try {
16065
- if (e.captureVisibleTab === void 0 && await jg(r, i), S) return;
16075
+ if (e.captureVisibleTab === void 0 && await Pg(r, i), S) return;
16066
16076
  D(), k(null), u.style.visibility = "visible", l.style.pointerEvents = "auto", u.style.display = "block", E(!0);
16067
16077
  } catch (e) {
16068
16078
  throw e instanceof Error && e.name === "AbortError" || N(), e;
@@ -16075,12 +16085,12 @@ var fg = "mesurer:capture-bridge-ping", pg = "mesurer:capture-bridge-request", m
16075
16085
  !C() || e.button !== 0 || (e.preventDefault(), e.stopPropagation(), g = {
16076
16086
  x: e.clientX,
16077
16087
  y: e.clientY
16078
- }, k(hg(g, g, {
16088
+ }, k(vg(g, g, {
16079
16089
  width: i.innerWidth,
16080
16090
  height: i.innerHeight
16081
16091
  })), u.setPointerCapture?.(e.pointerId));
16082
16092
  }, z = (e) => {
16083
- !C() || !g || k(hg(g, {
16093
+ !C() || !g || k(vg(g, {
16084
16094
  x: e.clientX,
16085
16095
  y: e.clientY
16086
16096
  }, {
@@ -16091,7 +16101,7 @@ var fg = "mesurer:capture-bridge-ping", pg = "mesurer:capture-bridge-request", m
16091
16101
  let t = g;
16092
16102
  if (g = null, !C() || !t) return;
16093
16103
  u.hasPointerCapture?.(e.pointerId) && u.releasePointerCapture(e.pointerId);
16094
- let n = hg(t, {
16104
+ let n = vg(t, {
16095
16105
  x: e.clientX,
16096
16106
  y: e.clientY
16097
16107
  }, {
@@ -16124,8 +16134,8 @@ var fg = "mesurer:capture-bridge-ping", pg = "mesurer:capture-bridge-request", m
16124
16134
  label: "Screenshot",
16125
16135
  shortcut: "Shift+S",
16126
16136
  order: 70,
16127
- command: Yg,
16128
- icon: e_,
16137
+ command: Qg,
16138
+ icon: r_,
16129
16139
  active: C,
16130
16140
  hidden: () => !w().toolEnabled,
16131
16141
  menu: {
@@ -16191,25 +16201,25 @@ var fg = "mesurer:capture-bridge-ping", pg = "mesurer:capture-bridge-request", m
16191
16201
  set: (e) => T({ includeMeasurements: e })
16192
16202
  }
16193
16203
  ]
16194
- }), t.command.register(Yg, L), t.service.provide(Gg, ee), t.lifecycle.onDispose(() => {
16195
- S = !0, y += 1, u.removeEventListener("pointerdown", R), u.removeEventListener("pointermove", z), u.removeEventListener("pointerup", B), u.removeEventListener("pointercancel", V), i.removeEventListener("keydown", H, !0), v && i.clearTimeout(v), j.dispose(), O(), kg(i), a.finishCapture(), a.dispose(), o.dispose();
16204
+ }), t.command.register(Qg, L), t.service.provide(Jg, ee), t.lifecycle.onDispose(() => {
16205
+ S = !0, y += 1, u.removeEventListener("pointerdown", R), u.removeEventListener("pointermove", z), u.removeEventListener("pointerup", B), u.removeEventListener("pointercancel", V), i.removeEventListener("keydown", H, !0), v && i.clearTimeout(v), j.dispose(), O(), Mg(i), a.finishCapture(), a.dispose(), o.dispose();
16196
16206
  });
16197
16207
  }
16198
- }), d_ = (e) => Number.parseFloat(e) || 0, f_ = 0, p_ = (e, t) => {
16208
+ }), m_ = (e) => Number.parseFloat(e) || 0, h_ = 0, g_ = (e, t) => {
16199
16209
  let n = t.CSS;
16200
16210
  return n?.escape ? n.escape(e) : e.replace(/[^a-zA-Z0-9_-]/g, (e) => `\\${e}`);
16201
- }, m_ = (e) => e.nodeType === 9, h_ = (e) => e.nodeType === 11;
16202
- function g_(e) {
16211
+ }, __ = (e) => e.nodeType === 9, v_ = (e) => e.nodeType === 11;
16212
+ function y_(e) {
16203
16213
  let t = e.getRootNode();
16204
- return h_(t) ? t : e.ownerDocument;
16214
+ return v_(t) ? t : e.ownerDocument;
16205
16215
  }
16206
- var __ = (e, t) => {
16207
- if (m_(e) || h_(e)) return e;
16208
- let n = g_(e);
16209
- return h_(n) ? n : t;
16216
+ var b_ = (e, t) => {
16217
+ if (__(e) || v_(e)) return e;
16218
+ let n = y_(e);
16219
+ return v_(n) ? n : t;
16210
16220
  };
16211
- function v_(e, t, n = m_(t) ? t : t.ownerDocument ?? document) {
16212
- let r = __(t, n).elementFromPoint(e.x, e.y);
16221
+ function x_(e, t, n = __(t) ? t : t.ownerDocument ?? document) {
16222
+ let r = b_(t, n).elementFromPoint(e.x, e.y);
16213
16223
  for (; r?.shadowRoot;) {
16214
16224
  let t = r.shadowRoot.elementFromPoint(e.x, e.y);
16215
16225
  if (!t || t === r) break;
@@ -16217,18 +16227,18 @@ function v_(e, t, n = m_(t) ? t : t.ownerDocument ?? document) {
16217
16227
  }
16218
16228
  return r;
16219
16229
  }
16220
- function y_(e, t) {
16221
- if (m_(t)) return !0;
16230
+ function S_(e, t) {
16231
+ if (__(t)) return !0;
16222
16232
  let n = e;
16223
16233
  for (; n;) {
16224
16234
  if (t === n || t.contains(n)) return !0;
16225
16235
  let e = n.getRootNode();
16226
- if (!h_(e)) return !1;
16236
+ if (!v_(e)) return !1;
16227
16237
  n = e.host;
16228
16238
  }
16229
16239
  return !1;
16230
16240
  }
16231
- function b_(e, t) {
16241
+ function C_(e, t) {
16232
16242
  if (!e) return t();
16233
16243
  let n = [e, ...e.querySelectorAll("*")], r = n.map((e) => [
16234
16244
  e,
@@ -16242,9 +16252,9 @@ function b_(e, t) {
16242
16252
  for (let [e, t, n] of r) t ? e.style.setProperty("pointer-events", t, n) : e.style.removeProperty("pointer-events");
16243
16253
  }
16244
16254
  }
16245
- function x_(e) {
16255
+ function w_(e) {
16246
16256
  let t = e.ownerDocument.defaultView ?? window;
16247
- if (e.id) return `#${p_(e.id, t)}`;
16257
+ if (e.id) return `#${g_(e.id, t)}`;
16248
16258
  let n = e.getAttribute("data-testid");
16249
16259
  if (n) return `[data-testid=${JSON.stringify(n)}]`;
16250
16260
  let r = [], i = e;
@@ -16258,17 +16268,17 @@ function x_(e) {
16258
16268
  }
16259
16269
  return r.join(" > ");
16260
16270
  }
16261
- function S_(e, t, n = `dom-inspection-${++f_}`) {
16271
+ function T_(e, t, n = `dom-inspection-${++h_}`) {
16262
16272
  let r = e.getBoundingClientRect(), i = t.getComputedStyle(e), a = {
16263
- top: d_(i.paddingTop),
16264
- right: d_(i.paddingRight),
16265
- bottom: d_(i.paddingBottom),
16266
- left: d_(i.paddingLeft)
16273
+ top: m_(i.paddingTop),
16274
+ right: m_(i.paddingRight),
16275
+ bottom: m_(i.paddingBottom),
16276
+ left: m_(i.paddingLeft)
16267
16277
  }, o = {
16268
- top: d_(i.marginTop),
16269
- right: d_(i.marginRight),
16270
- bottom: d_(i.marginBottom),
16271
- left: d_(i.marginLeft)
16278
+ top: m_(i.marginTop),
16279
+ right: m_(i.marginRight),
16280
+ bottom: m_(i.marginBottom),
16281
+ left: m_(i.marginLeft)
16272
16282
  }, s = {
16273
16283
  left: r.left + a.left,
16274
16284
  top: r.top + a.top,
@@ -16296,8 +16306,8 @@ function S_(e, t, n = `dom-inspection-${++f_}`) {
16296
16306
  elementRef: e
16297
16307
  };
16298
16308
  }
16299
- function C_(e) {
16300
- let t = e.ownerDocument.defaultView ?? window, n = t.getComputedStyle(e), r = e instanceof t.HTMLElement ? e : null, i = e.getBoundingClientRect(), a = r ? S_(r, t) : null, o = (e) => {
16309
+ function E_(e) {
16310
+ let t = e.ownerDocument.defaultView ?? window, n = t.getComputedStyle(e), r = e instanceof t.HTMLElement ? e : null, i = e.getBoundingClientRect(), a = r ? T_(r, t) : null, o = (e) => {
16301
16311
  let t = Number.parseFloat(e);
16302
16312
  return Number.isFinite(t) ? t : 0;
16303
16313
  }, s = (e) => ({
@@ -16307,7 +16317,7 @@ function C_(e) {
16307
16317
  left: o(n.getPropertyValue(`${e}-left${e === "border" ? "-width" : ""}`))
16308
16318
  });
16309
16319
  return {
16310
- selector: x_(e),
16320
+ selector: w_(e),
16311
16321
  tag: e.localName,
16312
16322
  id: e.id || null,
16313
16323
  classes: [...e.classList],
@@ -16369,10 +16379,10 @@ function C_(e) {
16369
16379
  }
16370
16380
  //#endregion
16371
16381
  //#region src/agent.ts
16372
- var w_ = "text-edit", T_ = (e) => C_(e);
16373
- function E_(e) {
16374
- let t = e.root ?? e.ownerDocument, n = e.ownerDocument.defaultView ?? window, r = (e, n = 0) => t.querySelectorAll(e).item(n) || null, i = (n) => t === e.ownerDocument || y_(n, t), a = async () => {
16375
- let t = (e.getPluginHost() ?? await e.waitForPluginHost()).service.get(w_);
16382
+ var D_ = "text-edit", O_ = (e) => E_(e);
16383
+ function k_(e) {
16384
+ let t = e.root ?? e.ownerDocument, n = e.ownerDocument.defaultView ?? window, r = (e, n = 0) => t.querySelectorAll(e).item(n) || null, i = (n) => t === e.ownerDocument || S_(n, t), a = async () => {
16385
+ let t = (e.getPluginHost() ?? await e.waitForPluginHost()).service.get(D_);
16376
16386
  if (!t) throw Error("Mesurer text editing service is unavailable.");
16377
16387
  return t;
16378
16388
  }, o = () => {
@@ -16401,25 +16411,25 @@ function E_(e) {
16401
16411
  },
16402
16412
  inspect(e, t = 0) {
16403
16413
  let n = r(e, t);
16404
- return n ? T_(n) : null;
16414
+ return n ? O_(n) : null;
16405
16415
  },
16406
16416
  inspectAll(e, n = 50) {
16407
- return [...t.querySelectorAll(e)].slice(0, Math.max(0, n)).map(T_);
16417
+ return [...t.querySelectorAll(e)].slice(0, Math.max(0, n)).map(O_);
16408
16418
  },
16409
16419
  at(n, r) {
16410
16420
  let a = t.querySelector?.("[data-mesurer-island]") ?? null;
16411
- return b_(a?.shadowRoot?.querySelector("[data-mesurer-root='true']") ?? a, () => {
16412
- let a = v_({
16421
+ return C_(a?.shadowRoot?.querySelector("[data-mesurer-root='true']") ?? a, () => {
16422
+ let a = x_({
16413
16423
  x: n,
16414
16424
  y: r
16415
16425
  }, t, e.ownerDocument);
16416
- return a && i(a) ? T_(a) : null;
16426
+ return a && i(a) ? O_(a) : null;
16417
16427
  });
16418
16428
  },
16419
16429
  distance(e, t) {
16420
16430
  let n = r(e), i = r(t);
16421
16431
  if (!n || !i) return null;
16422
- let a = T_(n), o = T_(i), s = a.rect, c = o.rect;
16432
+ let a = O_(n), o = O_(i), s = a.rect, c = o.rect;
16423
16433
  return {
16424
16434
  a,
16425
16435
  b: o,
@@ -16435,7 +16445,7 @@ function E_(e) {
16435
16445
  let r = e.getPluginHost() ?? await e.waitForPluginHost();
16436
16446
  return {
16437
16447
  viewport: o(),
16438
- elements: n.flatMap((e) => [...t.querySelectorAll(e)].slice(0, 50).map(T_)),
16448
+ elements: n.flatMap((e) => [...t.querySelectorAll(e)].slice(0, 50).map(O_)),
16439
16449
  plugins: r.describe(),
16440
16450
  pluginState: r.state.serialize("all")
16441
16451
  };
@@ -16459,7 +16469,7 @@ function E_(e) {
16459
16469
  }
16460
16470
  //#endregion
16461
16471
  //#region ../mesurer-core/dist/context.js
16462
- var D_ = (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, O_ = (e) => {
16472
+ var A_ = (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, j_ = (e) => {
16463
16473
  if (!e.length) return null;
16464
16474
  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));
16465
16475
  return {
@@ -16468,36 +16478,36 @@ var D_ = (e, t) => e.left <= t.left + t.width && e.left + e.width >= t.left && e
16468
16478
  width: r - t,
16469
16479
  height: i - n
16470
16480
  };
16471
- }, k_ = (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), A_ = (e) => [...e.measurements, ...e.activeMeasurement && !e.measurements.some((t) => t.id === e.activeMeasurement?.id) ? [e.activeMeasurement] : []];
16472
- function j_(e) {
16481
+ }, M_ = (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), N_ = (e) => [...e.measurements, ...e.activeMeasurement && !e.measurements.some((t) => t.id === e.activeMeasurement?.id) ? [e.activeMeasurement] : []];
16482
+ function P_(e) {
16473
16483
  let { workspace: t, scope: n, guideTolerance: r } = e;
16474
16484
  if (n.kind === "workspace") return {
16475
16485
  guides: t.guides.map((e) => ({ ...e })),
16476
- measurements: A_(t),
16486
+ measurements: N_(t),
16477
16487
  distances: [...t.distances]
16478
16488
  };
16479
- let i = new Set(n.elements), a = (e) => e != null && i.has(e), o = (e) => n.regions.some((t) => D_(e, t));
16489
+ let i = new Set(n.elements), a = (e) => e != null && i.has(e), o = (e) => n.regions.some((t) => A_(e, t));
16480
16490
  return {
16481
- guides: t.guides.filter((e) => k_(e, n.regions, r)).map((e) => ({ ...e })),
16482
- measurements: A_(t).filter((e) => a(e.elementRef) || o(e.rect)),
16491
+ guides: t.guides.filter((e) => M_(e, n.regions, r)).map((e) => ({ ...e })),
16492
+ measurements: N_(t).filter((e) => a(e.elementRef) || o(e.rect)),
16483
16493
  distances: t.distances.filter((e) => a(e.elementRefA) || a(e.elementRefB) || o(e.rectA) || o(e.rectB))
16484
16494
  };
16485
16495
  }
16486
16496
  //#endregion
16487
16497
  //#region ../mesurer-core/dist/domain.js
16488
- var M_ = {
16498
+ var F_ = {
16489
16499
  opacity: 1,
16490
16500
  width: 1,
16491
16501
  pattern: "solid",
16492
16502
  dashLength: 6,
16493
16503
  gap: 4
16494
- }, N_ = {
16504
+ }, I_ = {
16495
16505
  opacity: 1,
16496
16506
  edgeReveal: !1
16497
16507
  };
16498
16508
  //#endregion
16499
16509
  //#region ../mesurer-core/dist/events.js
16500
- function P_() {
16510
+ function L_() {
16501
16511
  let e = /* @__PURE__ */ new Map();
16502
16512
  return {
16503
16513
  on(t, n) {
@@ -16515,12 +16525,12 @@ function P_() {
16515
16525
  }
16516
16526
  };
16517
16527
  }
16518
- ({ ...M_ }), { ...N_ };
16528
+ ({ ...F_ }), { ...I_ };
16519
16529
  //#endregion
16520
16530
  //#region ../mesurer-core/dist/plugins.js
16521
- var F_ = 50;
16522
- function I_() {
16523
- let e = 1, t = 0, n = P_(), r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map(), a = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Map(), c = /* @__PURE__ */ new Map(), l = /* @__PURE__ */ new Map(), u = /* @__PURE__ */ new Map(), d = /* @__PURE__ */ new Map(), f = /* @__PURE__ */ new Map(), p = [], m = [], h = (e, t) => {
16531
+ var R_ = 50;
16532
+ function z_() {
16533
+ let e = 1, t = 0, n = L_(), r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map(), a = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Map(), c = /* @__PURE__ */ new Map(), l = /* @__PURE__ */ new Map(), u = /* @__PURE__ */ new Map(), d = /* @__PURE__ */ new Map(), f = /* @__PURE__ */ new Map(), p = [], m = [], h = (e, t) => {
16524
16534
  n.emit("changed", {
16525
16535
  pluginId: e,
16526
16536
  reason: t
@@ -16581,14 +16591,14 @@ function I_() {
16581
16591
  }
16582
16592
  if (o && s) {
16583
16593
  let e = y("history");
16584
- x(s, e) || (p.push(s), p.length > F_ && p.shift(), m.length = 0);
16594
+ x(s, e) || (p.push(s), p.length > R_ && p.shift(), m.length = 0);
16585
16595
  }
16586
16596
  }, w = () => {
16587
16597
  let e = p.pop();
16588
- return e ? (m.push(y("history")), m.length > F_ && m.shift(), b(e, "history"), h(void 0, "history"), !0) : !1;
16598
+ return e ? (m.push(y("history")), m.length > R_ && m.shift(), b(e, "history"), h(void 0, "history"), !0) : !1;
16589
16599
  }, T = () => {
16590
16600
  let e = m.pop();
16591
- return e ? (p.push(y("history")), p.length > F_ && p.shift(), b(e, "history"), h(void 0, "history"), !0) : !1;
16601
+ return e ? (p.push(y("history")), p.length > R_ && p.shift(), b(e, "history"), h(void 0, "history"), !0) : !1;
16592
16602
  }, E = async (e, t) => {
16593
16603
  for (let n of [...l.values()].filter((t) => t.name === e)) await n.handler(t);
16594
16604
  }, D = (e) => [...u.values()].reverse().find((t) => t.id === e)?.value, O = {
@@ -16745,17 +16755,17 @@ function I_() {
16745
16755
  }
16746
16756
  //#endregion
16747
16757
  //#region src/context.ts
16748
- var L_ = 10, R_ = (e) => ({
16758
+ var B_ = 10, V_ = (e) => ({
16749
16759
  left: e.left,
16750
16760
  top: e.top,
16751
16761
  width: e.width,
16752
16762
  height: e.height
16753
- }), z_ = (e) => {
16763
+ }), H_ = (e) => {
16754
16764
  let t = /* @__PURE__ */ new Set(), n = [];
16755
16765
  for (let r of e) !r?.isConnected || t.has(r) || (t.add(r), n.push(r));
16756
16766
  return n;
16757
- }, B_ = (e) => e.crypto?.randomUUID?.() ?? `${Date.now()}-${Math.random().toString(36).slice(2)}`;
16758
- function V_(e) {
16767
+ }, U_ = (e) => e.crypto?.randomUUID?.() ?? `${Date.now()}-${Math.random().toString(36).slice(2)}`;
16768
+ function W_(e) {
16759
16769
  let { runtime: t, ownerDocument: n, ownerWindow: r } = e, i = e.request ?? { scope: "workspace" }, a = t.snapshot();
16760
16770
  if (!a) throw Error("Mesurer workspace is not ready yet.");
16761
16771
  let o = [], s = [], c = { kind: "workspace" }, l = /* @__PURE__ */ new Map();
@@ -16763,7 +16773,7 @@ function V_(e) {
16763
16773
  let e = t.annotation(i.annotation);
16764
16774
  if (!e) throw Error(`Mesurer annotation not found: ${i.annotation}`);
16765
16775
  for (let t of e.resolvedTargets) t.element?.isConnected && l.set(t.element, t.target.id);
16766
- o = z_(e.resolvedTargets.map((e) => e.element));
16776
+ o = H_(e.resolvedTargets.map((e) => e.element));
16767
16777
  let n = t.annotationRect(e.id);
16768
16778
  n && (s = [n]);
16769
16779
  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";
@@ -16775,15 +16785,15 @@ function V_(e) {
16775
16785
  };
16776
16786
  } else if (i.scope === "selection") {
16777
16787
  let e = t.currentSelection();
16778
- if (o = z_(e.elements), !o.length && !e.region) throw Error("Mesurer has no current selection.");
16779
- s = e.region ? [e.region] : o.map((e) => R_(e.getBoundingClientRect())), c = { kind: "selection" };
16780
- } else o = z_([
16788
+ if (o = H_(e.elements), !o.length && !e.region) throw Error("Mesurer has no current selection.");
16789
+ s = e.region ? [e.region] : o.map((e) => V_(e.getBoundingClientRect())), c = { kind: "selection" };
16790
+ } else o = H_([
16781
16791
  ...t.currentSelection().elements,
16782
16792
  ...a.measurements.map((e) => e.elementRef),
16783
16793
  a.activeMeasurement?.elementRef,
16784
16794
  ...a.heldDistances.flatMap((e) => [e.elementRefA, e.elementRefB])
16785
16795
  ]);
16786
- let u = c.kind === "workspace" ? [] : s.length ? s : o.map((e) => R_(e.getBoundingClientRect())), d = j_({
16796
+ let u = c.kind === "workspace" ? [] : s.length ? s : o.map((e) => V_(e.getBoundingClientRect())), d = P_({
16787
16797
  workspace: {
16788
16798
  guides: a.guides,
16789
16799
  measurements: a.measurements,
@@ -16795,8 +16805,8 @@ function V_(e) {
16795
16805
  elements: o,
16796
16806
  regions: u
16797
16807
  },
16798
- guideTolerance: a.guideRelevanceTolerance ?? L_
16799
- }), f = d.measurements, p = d.distances, m = d.guides, h = z_([
16808
+ guideTolerance: a.guideRelevanceTolerance ?? B_
16809
+ }), f = d.measurements, p = d.distances, m = d.guides, h = H_([
16800
16810
  ...o,
16801
16811
  ...f.map((e) => e.elementRef),
16802
16812
  ...p.flatMap((e) => [e.elementRefA, e.elementRefB])
@@ -16808,12 +16818,12 @@ function V_(e) {
16808
16818
  let t = l.get(e) ?? y();
16809
16819
  return g.set(e, t), {
16810
16820
  ref: t,
16811
- inspection: C_(e)
16821
+ inspection: E_(e)
16812
16822
  };
16813
16823
  }), x = f.map((e) => {
16814
16824
  let t = {
16815
16825
  id: e.id,
16816
- rect: R_(e.rect),
16826
+ rect: V_(e.rect),
16817
16827
  deltaX: e.deltaX,
16818
16828
  deltaY: e.deltaY
16819
16829
  };
@@ -16823,8 +16833,8 @@ function V_(e) {
16823
16833
  }), S = p.map((e) => {
16824
16834
  let t = {
16825
16835
  id: e.id,
16826
- rectA: R_(e.rectA),
16827
- rectB: R_(e.rectB),
16836
+ rectA: V_(e.rectA),
16837
+ rectB: V_(e.rectB),
16828
16838
  horizontal: e.horizontal ? { ...e.horizontal } : null,
16829
16839
  vertical: e.vertical ? { ...e.vertical } : null
16830
16840
  }, n = e.elementRefA ? g.get(e.elementRefA) : void 0, r = e.elementRefB ? g.get(e.elementRefB) : void 0;
@@ -16832,7 +16842,7 @@ function V_(e) {
16832
16842
  });
16833
16843
  return {
16834
16844
  schema: "mesurer.context/v1",
16835
- id: B_(r),
16845
+ id: U_(r),
16836
16846
  createdAt: (/* @__PURE__ */ new Date()).toISOString(),
16837
16847
  scope: c,
16838
16848
  page: {
@@ -16847,7 +16857,7 @@ function V_(e) {
16847
16857
  scrollY: r.scrollY
16848
16858
  },
16849
16859
  coordinateSpace: "viewport-css-px",
16850
- regions: c.kind === "workspace" ? [] : s.map(R_),
16860
+ regions: c.kind === "workspace" ? [] : s.map(V_),
16851
16861
  visualState: {
16852
16862
  rulersVisible: a.rulersVisible,
16853
16863
  xrayVisible: a.xrayVisible
@@ -16860,40 +16870,40 @@ function V_(e) {
16860
16870
  }
16861
16871
  };
16862
16872
  }
16863
- var H_ = (e) => `${Math.round(e * 100) / 100}px`, U_ = (e) => `x=${H_(e.left)} y=${H_(e.top)} w=${H_(e.width)} h=${H_(e.height)}`;
16864
- function W_(e) {
16873
+ var G_ = (e) => `${Math.round(e * 100) / 100}px`, K_ = (e) => `x=${G_(e.left)} y=${G_(e.top)} w=${G_(e.width)} h=${G_(e.height)}`;
16874
+ function q_(e) {
16865
16875
  let t = [
16866
16876
  "Mesurer visual context",
16867
16877
  "",
16868
16878
  `Page: ${e.page.url}`,
16869
16879
  `Viewport: ${e.viewport.width} × ${e.viewport.height} CSS px; scroll x=${e.viewport.scrollX} y=${e.viewport.scrollY}`
16870
16880
  ];
16871
- 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}: ${U_(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) {
16881
+ 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}: ${K_(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) {
16872
16882
  t.push("", "Targets");
16873
16883
  for (let n of e.targets) {
16874
16884
  let e = n.inspection;
16875
- t.push(`[${n.ref}] ${e.selector}`, ` rect: ${U_(e.rect)}`, ` margin: ${H_(e.margin.top)} ${H_(e.margin.right)} ${H_(e.margin.bottom)} ${H_(e.margin.left)}`, ` padding: ${H_(e.padding.top)} ${H_(e.padding.right)} ${H_(e.padding.bottom)} ${H_(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)}`);
16885
+ t.push(`[${n.ref}] ${e.selector}`, ` rect: ${K_(e.rect)}`, ` margin: ${G_(e.margin.top)} ${G_(e.margin.right)} ${G_(e.margin.bottom)} ${G_(e.margin.left)}`, ` padding: ${G_(e.padding.top)} ${G_(e.padding.right)} ${G_(e.padding.bottom)} ${G_(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)}`);
16876
16886
  }
16877
16887
  }
16878
16888
  if (e.visualContext.guides.length) {
16879
16889
  t.push("", "Relevant guides");
16880
- for (let n of e.visualContext.guides) t.push(`- ${n.orientation} ${n.orientation === "vertical" ? "x" : "y"}=${H_(n.position)}`);
16890
+ for (let n of e.visualContext.guides) t.push(`- ${n.orientation} ${n.orientation === "vertical" ? "x" : "y"}=${G_(n.position)}`);
16881
16891
  }
16882
16892
  if (e.visualContext.measurements.length) {
16883
16893
  t.push("", "Relevant measurements");
16884
- for (let n of e.visualContext.measurements) t.push(`- ${n.targetRef ? `${n.targetRef}: ` : ""}${U_(n.rect)}; delta=${H_(n.deltaX)} × ${H_(n.deltaY)}`);
16894
+ for (let n of e.visualContext.measurements) t.push(`- ${n.targetRef ? `${n.targetRef}: ` : ""}${K_(n.rect)}; delta=${G_(n.deltaX)} × ${G_(n.deltaY)}`);
16885
16895
  }
16886
16896
  if (e.visualContext.distances.length) {
16887
16897
  t.push("", "Relevant distances");
16888
16898
  for (let n of e.visualContext.distances) {
16889
- let e = [n.targetARef, n.targetBRef].filter(Boolean).join(" → "), r = [n.horizontal ? `horizontal=${H_(n.horizontal.value)}` : null, n.vertical ? `vertical=${H_(n.vertical.value)}` : null].filter(Boolean).join("; ");
16899
+ let e = [n.targetARef, n.targetBRef].filter(Boolean).join(" → "), r = [n.horizontal ? `horizontal=${G_(n.horizontal.value)}` : null, n.vertical ? `vertical=${G_(n.vertical.value)}` : null].filter(Boolean).join("; ");
16890
16900
  t.push(`- ${e ? `${e}: ` : ""}${r || "overlapping"}`);
16891
16901
  }
16892
16902
  }
16893
16903
  return t.join("\n").trimEnd();
16894
16904
  }
16895
- function G_(e) {
16896
- let t = O_([
16905
+ function J_(e) {
16906
+ let t = j_([
16897
16907
  ...e.regions,
16898
16908
  ...e.targets.map((e) => e.inspection.rect),
16899
16909
  ...e.visualContext.measurements.map((e) => e.rect),
@@ -16923,7 +16933,7 @@ function G_(e) {
16923
16933
  captures: n
16924
16934
  };
16925
16935
  }
16926
- var K_ = (e, t, n, r, i) => {
16936
+ var Y_ = (e, t, n, r, i) => {
16927
16937
  !Number.isFinite(r) || !Number.isFinite(i) || Math.abs(r - i) < .01 || e.push({
16928
16938
  kind: t,
16929
16939
  label: n,
@@ -16932,16 +16942,16 @@ var K_ = (e, t, n, r, i) => {
16932
16942
  delta: i - r,
16933
16943
  unit: "px"
16934
16944
  });
16935
- }, q_ = (e, t, n, r) => e.push({
16945
+ }, X_ = (e, t, n, r) => e.push({
16936
16946
  kind: "missing",
16937
16947
  evidence: t,
16938
16948
  id: n,
16939
16949
  label: r
16940
16950
  });
16941
- function J_(e) {
16951
+ function Z_(e) {
16942
16952
  let t = e.runtime.annotation(e.annotationId);
16943
16953
  if (!t) throw Error(`Mesurer annotation not found: ${e.annotationId}`);
16944
- let n = V_({
16954
+ let n = W_({
16945
16955
  runtime: e.runtime,
16946
16956
  ownerDocument: e.ownerDocument,
16947
16957
  ownerWindow: e.ownerWindow,
@@ -16950,41 +16960,41 @@ function J_(e) {
16950
16960
  if (n.scope.kind !== "annotation") throw Error("Mesurer annotation context invariant failed.");
16951
16961
  let r = e.runtime.snapshot();
16952
16962
  if (!r) throw Error("Mesurer workspace is not ready yet.");
16953
- let i = A_({
16963
+ let i = N_({
16954
16964
  measurements: r.measurements,
16955
16965
  activeMeasurement: r.activeMeasurement
16956
16966
  }), a = [];
16957
16967
  for (let e of t.baseline.targets) {
16958
16968
  let t = n.targets.find((t) => t.ref === e.id);
16959
16969
  if (!t) {
16960
- q_(a, "target", e.id, e.selector);
16970
+ X_(a, "target", e.id, e.selector);
16961
16971
  continue;
16962
16972
  }
16963
- K_(a, "target-rect", `${t.inspection.selector} left`, e.rect.left, t.inspection.rect.left), K_(a, "target-rect", `${t.inspection.selector} top`, e.rect.top, t.inspection.rect.top), K_(a, "target-rect", `${t.inspection.selector} width`, e.rect.width, t.inspection.rect.width), K_(a, "target-rect", `${t.inspection.selector} height`, e.rect.height, t.inspection.rect.height);
16973
+ Y_(a, "target-rect", `${t.inspection.selector} left`, e.rect.left, t.inspection.rect.left), Y_(a, "target-rect", `${t.inspection.selector} top`, e.rect.top, t.inspection.rect.top), Y_(a, "target-rect", `${t.inspection.selector} width`, e.rect.width, t.inspection.rect.width), Y_(a, "target-rect", `${t.inspection.selector} height`, e.rect.height, t.inspection.rect.height);
16964
16974
  }
16965
16975
  for (let e of t.baseline.guides) {
16966
16976
  let t = n.visualContext.guides.find((t) => t.id === e.id) ?? r.guides.find((t) => t.id === e.id);
16967
16977
  if (!t) {
16968
- q_(a, "guide", e.id, `${e.orientation} guide ${e.id}`);
16978
+ X_(a, "guide", e.id, `${e.orientation} guide ${e.id}`);
16969
16979
  continue;
16970
16980
  }
16971
- K_(a, "guide", `${e.orientation} guide ${e.id}`, e.position, t.position);
16981
+ Y_(a, "guide", `${e.orientation} guide ${e.id}`, e.position, t.position);
16972
16982
  }
16973
16983
  for (let e of t.baseline.measurements) {
16974
16984
  let t = n.visualContext.measurements.find((t) => t.id === e.id) ?? i.find((t) => t.id === e.id);
16975
16985
  if (!t) {
16976
- q_(a, "measurement", e.id, e.id);
16986
+ X_(a, "measurement", e.id, e.id);
16977
16987
  continue;
16978
16988
  }
16979
- K_(a, "measurement", `${e.id} width`, e.rect.width, t.rect.width), K_(a, "measurement", `${e.id} height`, e.rect.height, t.rect.height);
16989
+ Y_(a, "measurement", `${e.id} width`, e.rect.width, t.rect.width), Y_(a, "measurement", `${e.id} height`, e.rect.height, t.rect.height);
16980
16990
  }
16981
16991
  for (let e of t.baseline.distances) {
16982
16992
  let t = n.visualContext.distances.find((t) => t.id === e.id) ?? r.heldDistances.find((t) => t.id === e.id);
16983
16993
  if (!t) {
16984
- q_(a, "distance", e.id, e.id);
16994
+ X_(a, "distance", e.id, e.id);
16985
16995
  continue;
16986
16996
  }
16987
- e.horizontal && t.horizontal ? K_(a, "distance", `${e.id} horizontal`, e.horizontal.value, t.horizontal.value) : e.horizontal && !t.horizontal && q_(a, "distance", e.id, `${e.id} horizontal`), e.vertical && t.vertical ? K_(a, "distance", `${e.id} vertical`, e.vertical.value, t.vertical.value) : e.vertical && !t.vertical && q_(a, "distance", e.id, `${e.id} vertical`);
16997
+ e.horizontal && t.horizontal ? Y_(a, "distance", `${e.id} horizontal`, e.horizontal.value, t.horizontal.value) : e.horizontal && !t.horizontal && X_(a, "distance", e.id, `${e.id} horizontal`), e.vertical && t.vertical ? Y_(a, "distance", `${e.id} vertical`, e.vertical.value, t.vertical.value) : e.vertical && !t.vertical && X_(a, "distance", e.id, `${e.id} vertical`);
16988
16998
  }
16989
16999
  return {
16990
17000
  schema: "mesurer.review/v1",
@@ -16996,7 +17006,7 @@ function J_(e) {
16996
17006
  changes: a
16997
17007
  };
16998
17008
  }
16999
- async function Y_(e, t, n) {
17009
+ async function Q_(e, t, n) {
17000
17010
  try {
17001
17011
  if (t.navigator.clipboard?.writeText) {
17002
17012
  await t.navigator.clipboard.writeText(n);
@@ -17010,77 +17020,77 @@ async function Y_(e, t, n) {
17010
17020
  }
17011
17021
  //#endregion
17012
17022
  //#region src/version.ts
17013
- var X_ = "0.1.8-beta.1", Z_ = "mesurer.context", Q_ = "context:v1", $_ = "mesurer.context.settings", ev = "context.ui", tv = "data-mesurer-direct-text-edit-active", nv = {
17023
+ var $_ = "0.1.8-beta.3", ev = "mesurer.context", tv = "context:v1", nv = "mesurer.context.settings", rv = "context.ui", iv = "data-mesurer-direct-text-edit-active", av = {
17014
17024
  viewBox: "0 0 256 256",
17015
17025
  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"]
17016
- }, rv = {
17026
+ }, ov = {
17017
17027
  viewBox: "0 0 256 256",
17018
17028
  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"]
17019
- }, iv = {
17029
+ }, sv = {
17020
17030
  viewBox: "0 0 256 256",
17021
17031
  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"]
17022
- }, av = async (e, t, n = 1) => {
17032
+ }, cv = async (e, t, n = 1) => {
17023
17033
  await e.fonts?.ready;
17024
17034
  for (let e = 0; e < Math.max(1, n); e += 1) await new Promise((e) => t.requestAnimationFrame(() => e()));
17025
- }, ov = (e, t, n) => {
17026
- let r = async (r) => V_({
17035
+ }, lv = (e, t, n) => {
17036
+ let r = async (r) => W_({
17027
17037
  runtime: e,
17028
17038
  ownerDocument: t,
17029
17039
  ownerWindow: n,
17030
17040
  request: r
17031
- }), i = async (e) => W_(await r(e));
17041
+ }), i = async (e) => q_(await r(e));
17032
17042
  return {
17033
17043
  context: r,
17034
17044
  contextText: i,
17035
- copyContext: async (e) => Y_(t, n, await i(e)),
17036
- select: async (i) => (e.select(Array.isArray(i) ? i : [i]), await av(t, n), r({ scope: "selection" })),
17045
+ copyContext: async (e) => Q_(t, n, await i(e)),
17046
+ select: async (i) => (e.select(Array.isArray(i) ? i : [i]), await cv(t, n), r({ scope: "selection" })),
17037
17047
  annotations: async () => e.annotations(),
17038
17048
  removeAnnotation: async (r) => {
17039
- e.removeAnnotation(r), await av(t, n);
17049
+ e.removeAnnotation(r), await cv(t, n);
17040
17050
  },
17041
- review: async (r) => (await av(t, n), r ? J_({
17051
+ review: async (r) => (await cv(t, n), r ? Z_({
17042
17052
  runtime: e,
17043
17053
  ownerDocument: t,
17044
17054
  ownerWindow: n,
17045
17055
  annotationId: r
17046
- }) : e.annotations().map((r) => J_({
17056
+ }) : e.annotations().map((r) => Z_({
17047
17057
  runtime: e,
17048
17058
  ownerDocument: t,
17049
17059
  ownerWindow: n,
17050
17060
  annotationId: r.id
17051
17061
  }))),
17052
- capturePlan: async (e) => G_(await r(e)),
17062
+ capturePlan: async (e) => J_(await r(e)),
17053
17063
  prepareCapture: async () => {
17054
- e.prepareCapture(), await av(t, n);
17064
+ e.prepareCapture(), await cv(t, n);
17055
17065
  },
17056
17066
  finishCapture: async () => {
17057
- e.finishCapture(), await av(t, n);
17067
+ e.finishCapture(), await cv(t, n);
17058
17068
  }
17059
17069
  };
17060
- }, sv = (e) => {
17070
+ }, uv = (e) => {
17061
17071
  let t = e.currentSelection();
17062
17072
  return t.elements.length > 0 || t.region !== null;
17063
17073
  };
17064
- function cv(e = {}) {
17074
+ function dv(e = {}) {
17065
17075
  return {
17066
- id: Z_,
17067
- version: X_,
17076
+ id: ev,
17077
+ version: $_,
17068
17078
  requires: ["runtime:solid"],
17069
- provides: [Q_],
17079
+ provides: [tv],
17070
17080
  setup(t) {
17071
17081
  let n = t.service.get("runtime:solid");
17072
17082
  if (!n) throw Error("Mesurer context plugin requires the renderer runtime service.");
17073
- let r = n.createWorkspaceRuntime(Z_), i = ov(r, n.ownerDocument, n.ownerWindow);
17074
- t.service.provide(Q_, i), t.state.register({
17075
- id: $_,
17083
+ let r = n.createWorkspaceRuntime(ev), i = lv(r, n.ownerDocument, n.ownerWindow);
17084
+ t.service.provide(tv, i), t.state.register({
17085
+ id: nv,
17076
17086
  initial: { ui: e.ui ?? !0 },
17077
17087
  persist: !0
17078
17088
  }), t.state.register({
17079
- id: ev,
17080
- initial: { hasSelection: sv(r) }
17089
+ id: rv,
17090
+ initial: { hasSelection: uv(r) }
17081
17091
  });
17082
- let a = () => t.state.get("mesurer.context.settings")?.ui ?? !0, o = () => t.state.get(ev)?.hasSelection === !0, s = (e) => {
17083
- t.state.update($_, (t) => ({
17092
+ let a = () => t.state.get("mesurer.context.settings")?.ui ?? !0, o = () => t.state.get(rv)?.hasSelection === !0, s = (e) => {
17093
+ t.state.update(nv, (t) => ({
17084
17094
  ...t,
17085
17095
  ui: e
17086
17096
  }));
@@ -17094,21 +17104,21 @@ function cv(e = {}) {
17094
17104
  region: e.region ? { ...e.region } : null
17095
17105
  }, r.selectGestureActive() ? c?.abandonNoteComposer() : n && c?.closeNoteComposer();
17096
17106
  let i = e.elements.length > 0 || e.region !== null;
17097
- i !== (t.state.get(ev)?.hasSelection ?? !1) && t.state.update(ev, () => ({ hasSelection: i }));
17107
+ i !== (t.state.get(rv)?.hasSelection ?? !1) && t.state.update(rv, () => ({ hasSelection: i }));
17098
17108
  });
17099
17109
  t.command.register("context.copy", () => i.copyContext()), t.command.register("context.copy-selection", () => i.copyContext({ scope: "selection" }));
17100
17110
  let g = () => {
17101
17111
  let e = u?.element;
17102
- e && (n.rendererRoot?.hasAttribute(tv) ? e.setAttribute(tv, "true") : e.removeAttribute(tv));
17112
+ e && (n.rendererRoot?.hasAttribute(iv) ? e.setAttribute(iv, "true") : e.removeAttribute(iv));
17103
17113
  }, _ = () => {
17104
17114
  d?.disconnect(), d = null, c = null, l?.(), l = null, u?.dispose(), u = null;
17105
17115
  }, v = () => {
17106
17116
  if (u) return;
17107
- if (u = dg(n), u.element.dataset.mesurerLayer = "evidence", u.element.dataset.mesurerContextRoot = "true", n.rendererRoot) {
17117
+ if (u = mg(n), u.element.dataset.mesurerLayer = "evidence", u.element.dataset.mesurerContextRoot = "true", n.rendererRoot) {
17108
17118
  let e = new n.ownerWindow.MutationObserver(g);
17109
17119
  d = e, e.observe(n.rendererRoot, {
17110
17120
  attributes: !0,
17111
- attributeFilter: [tv]
17121
+ attributeFilter: [iv]
17112
17122
  }), g();
17113
17123
  }
17114
17124
  let e = {
@@ -17119,7 +17129,7 @@ function cv(e = {}) {
17119
17129
  },
17120
17130
  coordinateSpace: "document"
17121
17131
  };
17122
- l = _i(() => Rr(sg, gi(e, { get ownerWindow() {
17132
+ l = _i(() => Rr(ug, gi(e, { get ownerWindow() {
17123
17133
  return n.ownerWindow;
17124
17134
  } })), u.element);
17125
17135
  }, y = () => {
@@ -17131,7 +17141,7 @@ function cv(e = {}) {
17131
17141
  shortcut: "C",
17132
17142
  command: "context.copy",
17133
17143
  order: 70,
17134
- icon: nv,
17144
+ icon: av,
17135
17145
  hidden: () => !a()
17136
17146
  }), t.tool.register({
17137
17147
  id: "context.copy-selection",
@@ -17139,7 +17149,7 @@ function cv(e = {}) {
17139
17149
  shortcut: "Shift+C",
17140
17150
  command: "context.copy-selection",
17141
17151
  order: 71,
17142
- icon: rv,
17152
+ icon: ov,
17143
17153
  hidden: () => !a(),
17144
17154
  disabled: () => !o()
17145
17155
  }), t.tool.register({
@@ -17148,7 +17158,7 @@ function cv(e = {}) {
17148
17158
  shortcut: "N",
17149
17159
  command: "context.add-note",
17150
17160
  order: 72,
17151
- icon: iv,
17161
+ icon: sv,
17152
17162
  hidden: () => !a(),
17153
17163
  disabled: () => !o()
17154
17164
  }), t.settings.register({
@@ -17171,7 +17181,7 @@ function cv(e = {}) {
17171
17181
  }
17172
17182
  //#endregion
17173
17183
  //#region src/host-layer.ts
17174
- var lv = {
17184
+ var fv = {
17175
17185
  display: "block",
17176
17186
  position: "fixed",
17177
17187
  inset: "0",
@@ -17213,48 +17223,48 @@ var lv = {
17213
17223
  "letter-spacing": "normal",
17214
17224
  direction: "ltr"
17215
17225
  };
17216
- function uv(e) {
17217
- for (let [t, n] of Object.entries(lv)) e.style.setProperty(t, n, "important");
17226
+ function pv(e) {
17227
+ for (let [t, n] of Object.entries(fv)) e.style.setProperty(t, n, "important");
17218
17228
  }
17219
- function dv(e) {
17229
+ function mv(e) {
17220
17230
  return "popover" in e && "showPopover" in e && typeof e.showPopover == "function" && "hidePopover" in e && typeof e.hidePopover == "function";
17221
17231
  }
17222
- var fv = (e) => "newState" in e, pv = (e) => e.localName === "dialog";
17223
- function mv(e) {
17224
- if (!pv(e) || !e.open) return !1;
17232
+ var hv = (e) => "newState" in e, gv = (e) => e.localName === "dialog";
17233
+ function _v(e) {
17234
+ if (!gv(e) || !e.open) return !1;
17225
17235
  try {
17226
17236
  return e.matches(":modal");
17227
17237
  } catch {
17228
17238
  return !1;
17229
17239
  }
17230
17240
  }
17231
- function hv(e, t, n = !0) {
17232
- uv(e);
17241
+ function vv(e, t, n = !0) {
17242
+ pv(e);
17233
17243
  let r = e.ownerDocument, i = r.defaultView ?? window, a = t, o = !1, s = "fixed", c = !1, l = 0, u = [];
17234
- if (n && dv(e) && (e.popover = "manual"), t.append(e), n && dv(e)) try {
17244
+ if (n && mv(e) && (e.popover = "manual"), t.append(e), n && mv(e)) try {
17235
17245
  e.showPopover(), c = e.matches(":popover-open"), c && (s = "top-layer");
17236
17246
  } catch {
17237
17247
  e.removeAttribute("popover");
17238
17248
  }
17239
17249
  let d = () => {
17240
- if (!(!c || !dv(e))) try {
17250
+ if (!(!c || !mv(e))) try {
17241
17251
  e.matches(":popover-open") || e.showPopover();
17242
17252
  } catch {}
17243
17253
  }, f = (t) => {
17244
17254
  if (e.parentNode === t) return;
17245
- let n = c && dv(e) && e.matches(":popover-open");
17246
- if (n && dv(e)) try {
17255
+ let n = c && mv(e) && e.matches(":popover-open");
17256
+ if (n && mv(e)) try {
17247
17257
  e.hidePopover();
17248
17258
  } catch {}
17249
- t.append(e), uv(e), n && d();
17259
+ t.append(e), pv(e), n && d();
17250
17260
  }, p = () => {
17251
- u = u.filter((e) => e.isConnected && mv(e)), f(u.at(-1) ?? a);
17261
+ u = u.filter((e) => e.isConnected && _v(e)), f(u.at(-1) ?? a);
17252
17262
  }, m = (e) => {
17253
17263
  u = u.filter((t) => t !== e), u.push(e), p();
17254
17264
  }, h = (e) => {
17255
17265
  u = u.filter((t) => t !== e), p();
17256
17266
  }, g = () => {
17257
- if (!(o || !c || !dv(e))) try {
17267
+ if (!(o || !c || !mv(e))) try {
17258
17268
  e.matches(":popover-open") && e.hidePopover(), e.showPopover();
17259
17269
  } catch {}
17260
17270
  }, _ = () => {
@@ -17263,27 +17273,27 @@ function hv(e, t, n = !0) {
17263
17273
  }));
17264
17274
  }, v = (t) => {
17265
17275
  if (!c || t.target === e) return;
17266
- let n = fv(t) ? t.newState : void 0, r = t.target;
17276
+ let n = hv(t) ? t.newState : void 0, r = t.target;
17267
17277
  if (r instanceof i.Element) {
17268
- if (pv(r)) {
17269
- n === "open" && mv(r) ? (m(r), _()) : n === "closed" ? h(r) : n === "open" && _();
17278
+ if (gv(r)) {
17279
+ n === "open" && _v(r) ? (m(r), _()) : n === "closed" ? h(r) : n === "open" && _();
17270
17280
  return;
17271
17281
  }
17272
17282
  n === "open" && r.hasAttribute("popover") && _();
17273
17283
  }
17274
17284
  }, y = (e) => {
17275
17285
  let t = e.target;
17276
- t instanceof i.Element && pv(t) && h(t);
17286
+ t instanceof i.Element && gv(t) && h(t);
17277
17287
  }, b = () => {
17278
17288
  r.fullscreenElement && _();
17279
17289
  }, x = (e) => {
17280
- mv(e) && m(e);
17281
- for (let t of e.querySelectorAll("dialog")) mv(t) && m(t);
17290
+ _v(e) && m(e);
17291
+ for (let t of e.querySelectorAll("dialog")) _v(t) && m(t);
17282
17292
  }, S = new i.MutationObserver((e) => {
17283
17293
  if (c) for (let t of e) {
17284
17294
  if (t.type === "attributes") {
17285
17295
  let e = t.target;
17286
- e instanceof i.Element && pv(e) && (mv(e) ? m(e) : h(e));
17296
+ e instanceof i.Element && gv(e) && (_v(e) ? m(e) : h(e));
17287
17297
  }
17288
17298
  for (let e of t.addedNodes) e instanceof i.Element && x(e);
17289
17299
  u.some((e) => !e.isConnected) && p();
@@ -17299,7 +17309,7 @@ function hv(e, t, n = !0) {
17299
17309
  bringToFront: g,
17300
17310
  dispose() {
17301
17311
  if (!o) {
17302
- if (o = !0, l && i.cancelAnimationFrame(l), r.removeEventListener("toggle", v, !0), r.removeEventListener("close", y, !0), r.removeEventListener("fullscreenchange", b, !0), S.disconnect(), c && dv(e) && e.matches(":popover-open")) try {
17312
+ if (o = !0, l && i.cancelAnimationFrame(l), r.removeEventListener("toggle", v, !0), r.removeEventListener("close", y, !0), r.removeEventListener("fullscreenchange", b, !0), S.disconnect(), c && mv(e) && e.matches(":popover-open")) try {
17303
17313
  e.hidePopover();
17304
17314
  } catch {}
17305
17315
  u = [];
@@ -17309,31 +17319,31 @@ function hv(e, t, n = !0) {
17309
17319
  }
17310
17320
  //#endregion
17311
17321
  //#region src/arrange.ts
17312
- var gv = Fd, _v = () => ({
17322
+ var yv = Fd, bv = () => ({
17313
17323
  ...Sf(),
17314
- version: X_
17315
- }), vv = "mesurer.codex", yv = "codex:v1", bv = "context:v1", xv = "http://127.0.0.1:47365", Sv = 2e3, Cv = 750, wv = 1800, Tv = 2e3, Ev = 12e4, Dv = 10, Ov = 5, kv = [
17324
+ version: $_
17325
+ }), xv = "mesurer.codex", Sv = "codex:v1", Cv = "context:v1", wv = "http://127.0.0.1:47365", Tv = 2e3, Ev = 750, Dv = 1800, Ov = 2e3, kv = 12e4, Av = 10, jv = 5, Mv = [
17316
17326
  "Implement the current human feedback from Mesurer in this project.",
17317
17327
  "Treat the rendered page as the source of truth, preserve unrelated Mesurer review state,",
17318
17328
  "and verify the affected UI in the live page with Mesurer before claiming completion."
17319
- ].join(" "), Av = {
17329
+ ].join(" "), Nv = {
17320
17330
  viewBox: "0 0 256 256",
17321
17331
  paths: ["M224,48,32,120l88,32,32,88Z M120,152l104-104"]
17322
- }, jv = {
17332
+ }, Pv = {
17323
17333
  viewBox: "0 0 256 256",
17324
17334
  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"]
17325
- }, Mv = {
17335
+ }, Fv = {
17326
17336
  viewBox: "0 0 256 256",
17327
17337
  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"]
17328
- }, Nv = (e) => {
17338
+ }, Iv = (e) => {
17329
17339
  try {
17330
17340
  let t = globalThis.location;
17331
17341
  return t?.origin ? `mesurer-codex-ui:v1:${e}:${t.origin}${t.pathname}` : null;
17332
17342
  } catch {
17333
17343
  return null;
17334
17344
  }
17335
- }, Pv = (e) => {
17336
- let t = Nv(e);
17345
+ }, Lv = (e) => {
17346
+ let t = Iv(e);
17337
17347
  if (!t) return null;
17338
17348
  try {
17339
17349
  let e = globalThis.sessionStorage?.getItem(t);
@@ -17358,18 +17368,18 @@ var gv = Fd, _v = () => ({
17358
17368
  } catch {
17359
17369
  return null;
17360
17370
  }
17361
- }, Fv = (e, t) => {
17362
- let n = Nv(e);
17371
+ }, Rv = (e, t) => {
17372
+ let n = Iv(e);
17363
17373
  if (n) try {
17364
17374
  globalThis.sessionStorage?.setItem(n, JSON.stringify(t));
17365
17375
  } catch {}
17366
- }, Iv = (e, t) => {
17376
+ }, zv = (e, t) => {
17367
17377
  let n = e.endsWith("/") ? e : `${e}/`;
17368
17378
  return new URL(t, n).toString();
17369
- }, Lv = async (e, t, n) => {
17379
+ }, Bv = async (e, t, n) => {
17370
17380
  let r = new AbortController(), i = setTimeout(() => r.abort(), 15e3);
17371
17381
  try {
17372
- let i = await fetch(Iv(e, t), {
17382
+ let i = await fetch(zv(e, t), {
17373
17383
  ...n,
17374
17384
  signal: r.signal
17375
17385
  }), a = await i.text(), o = {};
@@ -17385,10 +17395,10 @@ var gv = Fd, _v = () => ({
17385
17395
  } finally {
17386
17396
  clearTimeout(i);
17387
17397
  }
17388
- }, Rv = (e) => ({
17398
+ }, Vv = (e) => ({
17389
17399
  thread: e.thread?.trim() || null,
17390
17400
  threads: Array.isArray(e.threads) ? e.threads.filter((e) => e.trim().length > 0) : []
17391
- }), zv = (e) => {
17401
+ }), Hv = (e) => {
17392
17402
  let t = e.deliveryId?.trim(), n = e.thread?.trim(), r = e.status;
17393
17403
  if (!t || !n || !r) throw Error("Mesurer Codex bridge returned an invalid delivery state.");
17394
17404
  let i = {
@@ -17400,7 +17410,7 @@ var gv = Fd, _v = () => ({
17400
17410
  updatedAt: Number.isFinite(e.updatedAt) ? Number(e.updatedAt) : 0
17401
17411
  };
17402
17412
  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;
17403
- }, Bv = (e) => ({
17413
+ }, Uv = (e) => ({
17404
17414
  thread: e.thread?.trim() || null,
17405
17415
  threads: Array.isArray(e.threadDetails) ? e.threadDetails.flatMap((e) => {
17406
17416
  let t = e.id?.trim() ?? "";
@@ -17412,7 +17422,7 @@ var gv = Fd, _v = () => ({
17412
17422
  }] : [];
17413
17423
  }) : [],
17414
17424
  hasMore: e.hasMore === !0
17415
- }), Vv = async (e, t, n) => {
17425
+ }), Wv = async (e, t, n) => {
17416
17426
  let r = t?.instruction?.trim() || n, i = await e.annotations(), a = t?.annotationIds, o = a ? a.flatMap((e) => {
17417
17427
  let t = i.find((t) => t.id === e);
17418
17428
  return t ? [t] : [];
@@ -17435,18 +17445,18 @@ var gv = Fd, _v = () => ({
17435
17445
  ])
17436
17446
  ].join("\n").trimEnd()
17437
17447
  };
17438
- }, Hv = (e) => e.length > 16 ? `${e.slice(0, 8)}…${e.slice(-4)}` : e, Uv = (e, t = 42) => e.length > t ? `${e.slice(0, t - 1)}…` : e, Wv = (e, t) => e instanceof Error && e.message === `Mesurer Codex bridge is unavailable at ${t}. Start the local bridge before queueing feedback.`;
17439
- function Gv(e = {}) {
17440
- let t = e.endpoint ?? xv, n = e.instruction?.trim() || kv, r = e.ui ?? !0, i = e.clearCompletedAnnotations ?? !0;
17448
+ }, Gv = (e) => e.length > 16 ? `${e.slice(0, 8)}…${e.slice(-4)}` : e, Kv = (e, t = 42) => e.length > t ? `${e.slice(0, t - 1)}…` : e, qv = (e, t) => e instanceof Error && e.message === `Mesurer Codex bridge is unavailable at ${t}. Start the local bridge before queueing feedback.`;
17449
+ function Jv(e = {}) {
17450
+ let t = e.endpoint ?? wv, n = e.instruction?.trim() || Mv, r = e.ui ?? !0, i = e.clearCompletedAnnotations ?? !0;
17441
17451
  return {
17442
- id: vv,
17443
- version: X_,
17444
- requires: [bv],
17445
- provides: [yv],
17452
+ id: xv,
17453
+ version: $_,
17454
+ requires: [Cv],
17455
+ provides: [Sv],
17446
17456
  setup(e) {
17447
- let a = e.service.get(bv);
17457
+ let a = e.service.get(Cv);
17448
17458
  if (!a) throw Error("Mesurer Codex plugin requires context() from mesurer-solid/plugins.");
17449
- let o = r ? Pv(t) : null, s = "unknown", c = !1, l = o?.originThread ?? null, u = o?.selectedThread ?? o?.originThread ?? null, d = !1, f = null, p = [], m = [], h = !1, g = Ov, _, v = "", y = null, b = o?.delivery ? {
17459
+ let o = r ? Lv(t) : null, s = "unknown", c = !1, l = o?.originThread ?? null, u = o?.selectedThread ?? o?.originThread ?? null, d = !1, f = null, p = [], m = [], h = !1, g = jv, _, v = "", y = null, b = o?.delivery ? {
17450
17460
  id: o.delivery.id,
17451
17461
  thread: o.delivery.thread,
17452
17462
  status: o.delivery.status,
@@ -17454,22 +17464,22 @@ function Gv(e = {}) {
17454
17464
  queuedSubmissionId: o.delivery.queuedSubmissionId ?? null,
17455
17465
  dispatch: o.delivery.dispatch ?? null,
17456
17466
  dispatchError: o.delivery.dispatchError ?? null
17457
- } : null, x = 0, S = 0, C = null, w = !1, T = async () => Rv(await Lv(t, "health")), E = async (e) => zv(await Lv(t, `deliveries/${encodeURIComponent(e)}`)), D = async (e) => {
17467
+ } : null, x = 0, S = 0, C = null, w = !1, T = async () => Vv(await Bv(t, "health")), E = async (e) => Hv(await Bv(t, `deliveries/${encodeURIComponent(e)}`)), D = async (e) => {
17458
17468
  if (!e.id || !e.thread) throw Error("Cannot restore a Codex delivery without its id and thread.");
17459
17469
  let n = {
17460
17470
  deliveryId: e.id,
17461
17471
  thread: e.thread
17462
17472
  };
17463
- return e.queuedSubmissionId && (n.queuedSubmissionId = e.queuedSubmissionId), zv(await Lv(t, "deliveries/restore", {
17473
+ return e.queuedSubmissionId && (n.queuedSubmissionId = e.queuedSubmissionId), Hv(await Bv(t, "deliveries/restore", {
17464
17474
  method: "POST",
17465
17475
  headers: { "Content-Type": "application/json" },
17466
17476
  body: JSON.stringify(n)
17467
17477
  }));
17468
17478
  }, O = async (e = {}) => {
17469
17479
  let n = new URLSearchParams();
17470
- n.set("limit", String(e.limit ?? Dv));
17480
+ n.set("limit", String(e.limit ?? Av));
17471
17481
  let r = e.thread?.trim();
17472
- return r && n.set("thread", r), Bv(await Lv(t, `threads?${n.toString()}`));
17482
+ return r && n.set("thread", r), Uv(await Bv(t, `threads?${n.toString()}`));
17473
17483
  }, k = () => u ?? l ?? (d ? null : f), A = () => {
17474
17484
  if (!r) return;
17475
17485
  let e = b?.id && (b.status === "queued" || b.status === "working" || b.status === "interrupted") ? {
@@ -17481,7 +17491,7 @@ function Gv(e = {}) {
17481
17491
  dispatch: b.dispatch,
17482
17492
  dispatchError: b.dispatchError
17483
17493
  } : null;
17484
- Fv(t, {
17494
+ Rv(t, {
17485
17495
  version: 1,
17486
17496
  originThread: l,
17487
17497
  selectedThread: u,
@@ -17499,12 +17509,12 @@ function Gv(e = {}) {
17499
17509
  "queueing",
17500
17510
  "queued",
17501
17511
  "working"
17502
- ].includes(b.status) ? jv : b.status === "completed" ? Mv : Av : Av, L = () => {
17512
+ ].includes(b.status) ? Pv : b.status === "completed" ? Fv : Nv : Nv, L = () => {
17503
17513
  let e = [], t = /* @__PURE__ */ new Set(), n = (n) => {
17504
17514
  t.has(n.id) || (t.add(n.id), e.push(n));
17505
17515
  }, r = (e) => ({
17506
17516
  id: e,
17507
- title: `Codex ${Hv(e)}`,
17517
+ title: `Codex ${Gv(e)}`,
17508
17518
  updatedAt: null,
17509
17519
  connected: !0
17510
17520
  });
@@ -17524,7 +17534,7 @@ function Gv(e = {}) {
17524
17534
  let t = e.id === l ? "Current · " : e.connected ? "Connected · " : "", r = b?.thread === e.id ? ` · ${N() ? "Blocked" : P(b.status)}` : "";
17525
17535
  return {
17526
17536
  id: `codex.thread.${e.id}`,
17527
- label: `${t}${Uv(e.title)}${r}`,
17537
+ label: `${t}${Kv(e.title)}${r}`,
17528
17538
  checked: () => n === e.id,
17529
17539
  disabled: () => M(),
17530
17540
  run() {
@@ -17532,11 +17542,11 @@ function Gv(e = {}) {
17532
17542
  }
17533
17543
  };
17534
17544
  });
17535
- return g < Dv && (e.length > g || h) && r.push({
17545
+ return g < Av && (e.length > g || h) && r.push({
17536
17546
  id: "codex.thread.show-more",
17537
17547
  label: "Show 5 more…",
17538
17548
  run() {
17539
- g = Dv, B();
17549
+ g = Av, B();
17540
17550
  }
17541
17551
  }), r;
17542
17552
  }, B = () => {
@@ -17572,14 +17582,14 @@ function Gv(e = {}) {
17572
17582
  let e = l && p.includes(l) ? l : f;
17573
17583
  try {
17574
17584
  let t = await O({
17575
- limit: Dv,
17585
+ limit: Av,
17576
17586
  thread: e ?? void 0
17577
17587
  });
17578
17588
  m = t.threads, h = t.hasMore;
17579
17589
  } catch {
17580
17590
  m = p.map((e) => ({
17581
17591
  id: e,
17582
- title: `Codex ${Hv(e)}`,
17592
+ title: `Codex ${Gv(e)}`,
17583
17593
  updatedAt: null,
17584
17594
  connected: !0
17585
17595
  })), h = !1;
@@ -17602,7 +17612,7 @@ function Gv(e = {}) {
17602
17612
  }, ee = () => {
17603
17613
  S && globalThis.clearTimeout(S), S = globalThis.setTimeout(() => {
17604
17614
  S = 0, b?.status === "completed" && (b = null, A(), B());
17605
- }, wv);
17615
+ }, Dv);
17606
17616
  }, U = async (e) => {
17607
17617
  if (!(!b || b.id !== e.id)) {
17608
17618
  if (b = {
@@ -17620,14 +17630,14 @@ function Gv(e = {}) {
17620
17630
  if (e.status === "interrupted") {
17621
17631
  A(), B();
17622
17632
  let t = e.updatedAt > 0 ? e.updatedAt : Date.now();
17623
- Date.now() - t < Ev && (x = globalThis.setTimeout(() => {
17633
+ Date.now() - t < kv && (x = globalThis.setTimeout(() => {
17624
17634
  x = 0, te(e.id);
17625
- }, Tv));
17635
+ }, Ov));
17626
17636
  return;
17627
17637
  }
17628
17638
  B(), x = globalThis.setTimeout(() => {
17629
17639
  x = 0, te(e.id);
17630
- }, Cv);
17640
+ }, Ev);
17631
17641
  }
17632
17642
  }, te = async (e) => {
17633
17643
  if (!(w || b?.id !== e)) try {
@@ -17651,7 +17661,7 @@ function Gv(e = {}) {
17651
17661
  b = {
17652
17662
  ...b,
17653
17663
  status: "failed"
17654
- }, A(), Wv(r, t) && (s = "unavailable"), B();
17664
+ }, A(), qv(r, t) && (s = "unavailable"), B();
17655
17665
  }
17656
17666
  }, ne = {
17657
17667
  health: T,
@@ -17660,7 +17670,7 @@ function Gv(e = {}) {
17660
17670
  async useThread(e) {
17661
17671
  let n = e.trim();
17662
17672
  if (!n) throw Error("Codex thread must be a non-empty string.");
17663
- let r = Rv(await Lv(t, "target", {
17673
+ let r = Vv(await Bv(t, "target", {
17664
17674
  method: "POST",
17665
17675
  headers: { "Content-Type": "application/json" },
17666
17676
  body: JSON.stringify({ thread: n })
@@ -17668,12 +17678,12 @@ function Gv(e = {}) {
17668
17678
  return j(n, !l), f = r.thread, p = r.threads, s = "available", c = !0, B(), r;
17669
17679
  },
17670
17680
  async send(e) {
17671
- let i = await Vv(a, e, n), o = e?.thread?.trim(), c = o || (r ? k() : null);
17681
+ let i = await Wv(a, e, n), o = e?.thread?.trim(), c = o || (r ? k() : null);
17672
17682
  if (r && !o && (d || !c)) throw Error("Choose a Codex thread before queueing feedback.");
17673
17683
  let l = { message: i.message };
17674
17684
  c && (l.thread = c);
17675
17685
  try {
17676
- let e = await Lv(t, "send", {
17686
+ let e = await Bv(t, "send", {
17677
17687
  method: "POST",
17678
17688
  headers: { "Content-Type": "application/json" },
17679
17689
  body: JSON.stringify(l)
@@ -17689,11 +17699,11 @@ function Gv(e = {}) {
17689
17699
  };
17690
17700
  return e.queuedSubmissionId !== void 0 && (r.queuedSubmissionId = e.queuedSubmissionId?.trim() || null), e.dispatch !== void 0 && (r.dispatch = e.dispatch), e.dispatchError !== void 0 && (r.dispatchError = e.dispatchError?.trim() || null), r;
17691
17701
  } catch (e) {
17692
- throw r && Wv(e, t) && (s = "unavailable", B()), e;
17702
+ throw r && qv(e, t) && (s = "unavailable", B()), e;
17693
17703
  }
17694
17704
  }
17695
17705
  };
17696
- if (e.service.provide(yv, ne), e.command.register("codex.send", async () => {
17706
+ if (e.service.provide(Sv, ne), e.command.register("codex.send", async () => {
17697
17707
  if (!(C || M())) return H(), b = {
17698
17708
  id: null,
17699
17709
  thread: k(),
@@ -17723,9 +17733,9 @@ function Gv(e = {}) {
17723
17733
  updatedAt: 0
17724
17734
  }) : x = globalThis.setTimeout(() => {
17725
17735
  x = 0, te(e.deliveryId);
17726
- }, Cv) : S = globalThis.setTimeout(() => {
17736
+ }, Ev) : S = globalThis.setTimeout(() => {
17727
17737
  S = 0, b?.id === null && b?.status === "queued" && (b = null, A(), B());
17728
- }, wv);
17738
+ }, Dv);
17729
17739
  } catch (e) {
17730
17740
  b = null, A(), B();
17731
17741
  let t = e instanceof Error ? e.message : String(e);
@@ -17740,7 +17750,7 @@ function Gv(e = {}) {
17740
17750
  }, 0));
17741
17751
  let t = globalThis.setInterval(() => {
17742
17752
  c && R().catch(() => void 0);
17743
- }, Sv);
17753
+ }, Tv);
17744
17754
  e.lifecycle.onDispose(() => {
17745
17755
  w = !0, H(), globalThis.clearInterval(t), _?.dispose(), _ = void 0;
17746
17756
  });
@@ -17750,41 +17760,41 @@ function Gv(e = {}) {
17750
17760
  }
17751
17761
  //#endregion
17752
17762
  //#region src/plugin-catalog.ts
17753
- var Kv = [
17763
+ var Yv = [
17754
17764
  {
17755
- id: Z_,
17765
+ id: ev,
17756
17766
  label: "Context",
17757
17767
  order: 30,
17758
- create: cv,
17768
+ create: dv,
17759
17769
  settingsIds: ["context"],
17760
17770
  hiddenSettingsControlIds: ["ui"]
17761
17771
  },
17762
17772
  {
17763
- id: gv,
17773
+ id: yv,
17764
17774
  label: "Arrange",
17765
17775
  order: 35,
17766
- create: _v,
17776
+ create: bv,
17767
17777
  settingsIds: ["arrange"]
17768
17778
  },
17769
17779
  {
17770
- id: Wg,
17780
+ id: qg,
17771
17781
  label: "Screenshot",
17772
17782
  order: 40,
17773
17783
  create: (e = {}) => ({
17774
- ...u_(e),
17775
- version: X_
17784
+ ...p_(e),
17785
+ version: $_
17776
17786
  }),
17777
17787
  settingsIds: ["screenshot"],
17778
17788
  hiddenSettingsControlIds: ["tool"]
17779
17789
  },
17780
17790
  {
17781
- id: vv,
17791
+ id: xv,
17782
17792
  label: "Codex",
17783
17793
  order: 45,
17784
- create: Gv
17794
+ create: Jv
17785
17795
  }
17786
- ], qv = (e) => {
17787
- let t = e !== void 0, n = new Map((e ?? []).map((e) => [e.id, e])), r = new Set(Kv.map((e) => e.id)), i = Kv.map((e) => {
17796
+ ], Xv = (e) => {
17797
+ let t = e !== void 0, n = new Map((e ?? []).map((e) => [e.id, e])), r = new Set(Yv.map((e) => e.id)), i = Yv.map((e) => {
17788
17798
  let r = n.get(e.id);
17789
17799
  return {
17790
17800
  ...e,
@@ -17801,23 +17811,23 @@ var Kv = [
17801
17811
  create: () => n
17802
17812
  });
17803
17813
  return i;
17804
- }, Jv = (e) => e;
17805
- function Yv() {
17806
- return I_();
17814
+ }, Zv = (e) => e;
17815
+ function Qv() {
17816
+ return z_();
17807
17817
  }
17808
- async function Xv(e = {}) {
17809
- let t = Yv();
17818
+ async function $v(e = {}) {
17819
+ let t = Qv();
17810
17820
  for (let n of e.plugins ?? []) await t.load(n);
17811
17821
  return t;
17812
17822
  }
17813
17823
  //#endregion
17814
17824
  //#region src/index.tsx
17815
- var Zv = "arrange";
17816
- function Qv(e = {}) {
17825
+ var ey = "arrange";
17826
+ function ty(e = {}) {
17817
17827
  if (!("document" in globalThis)) throw Error("mountMesurer() requires a browser or Electron renderer document.");
17818
17828
  let { target: t = document.body, isolate: n = !0, shadowMode: r = "open", topLayer: i = !0, agent: a = !1, onPluginHost: o, onPluginsReady: s, plugins: c, ...l } = e, u = t.ownerDocument ?? document, d = u.defaultView ?? window, f = u.createElement("div");
17819
17829
  f.dataset.mesurerIsland = "true";
17820
- let p = hv(f, t, i), m = f, h = f, g = f;
17830
+ let p = vv(f, t, i), m = f, h = f, g = f;
17821
17831
  if (n) {
17822
17832
  let e = f.attachShadow({ mode: r });
17823
17833
  h = u.createElement("div"), h.dataset.mesurerIslandMount = "true", e.append(h), m = e, g = e;
@@ -17826,19 +17836,19 @@ function Qv(e = {}) {
17826
17836
  v = e;
17827
17837
  }), S = new Promise((e) => {
17828
17838
  y = e;
17829
- }), C = async () => (await (_ ? Promise.resolve(_) : x), S), w = a === !0 ? {} : a === !1 ? null : a, T = E_({
17839
+ }), C = async () => (await (_ ? Promise.resolve(_) : x), S), w = a === !0 ? {} : a === !1 ? null : a, T = k_({
17830
17840
  ownerDocument: u,
17831
17841
  root: w?.root ?? (t.nodeType === 11 ? t : u),
17832
17842
  getPluginHost: () => _,
17833
17843
  waitForPluginHost: C
17834
17844
  }), E = async () => {
17835
17845
  await T.ready();
17836
- let e = _?.service.get(Q_);
17846
+ let e = _?.service.get(tv);
17837
17847
  if (!e) throw Error("Mesurer Context is disabled. Enable it in Settings or include context() in plugins.");
17838
17848
  return e;
17839
17849
  }, D = async () => {
17840
17850
  await T.ready();
17841
- let e = _?.service.get(Zv);
17851
+ let e = _?.service.get(ey);
17842
17852
  if (!e) throw Error("Mesurer Arrange is disabled. Enable it in Settings or include arrange() in plugins.");
17843
17853
  return e;
17844
17854
  }, O = async (e) => (await E()).context(e), k = async (e) => (await E()).contextText(e), A = async (e) => (await E()).copyContext(e), j = async (e) => (await E()).select(e), M = async () => (await E()).annotations(), N = async (e) => (await E()).review(e), P = async (e) => (await E()).capturePlan(e), F = async () => (await E()).prepareCapture(), I = async () => (await E()).finishCapture(), L = async () => (await D()).intents(), R = async (e) => {
@@ -17849,7 +17859,7 @@ function Qv(e = {}) {
17849
17859
  (await D()).show(e, t);
17850
17860
  }, B = async (e, t) => (await D()).capturePlan(e, t), V = async (e, t) => (await D()).review(e, t), H = () => T.textEdits(), ee = (e) => T.textEdit(e), U = Object.assign(T, {
17851
17861
  capabilities: () => {
17852
- let e = !!_?.service.get(Q_);
17862
+ let e = !!_?.service.get(tv);
17853
17863
  return {
17854
17864
  protocol: "mesurer.agent/v1",
17855
17865
  contextSchema: "mesurer.context/v1",
@@ -17859,8 +17869,8 @@ function Qv(e = {}) {
17859
17869
  annotations: e,
17860
17870
  review: e,
17861
17871
  capturePlan: e,
17862
- arrange: !!_?.service.get(Zv),
17863
- textEdit: !!_?.service.get(w_)
17872
+ arrange: !!_?.service.get(ey),
17873
+ textEdit: !!_?.service.get(D_)
17864
17874
  }
17865
17875
  };
17866
17876
  },
@@ -17879,9 +17889,9 @@ function Qv(e = {}) {
17879
17889
  reviewArrange: V
17880
17890
  }), te = {
17881
17891
  ...l,
17882
- version: X_,
17883
- plugins: qv(c)
17884
- }, ne = _i(() => Rr(qh, gi(te, {
17892
+ version: $_,
17893
+ plugins: Xv(c)
17894
+ }, ne = _i(() => Rr(Xh, gi(te, {
17885
17895
  portalTarget: g,
17886
17896
  pageTarget: t,
17887
17897
  onPluginHost: (e) => {
@@ -17930,6 +17940,6 @@ function Qv(e = {}) {
17930
17940
  }
17931
17941
  };
17932
17942
  }
17933
- var $v = Qv;
17943
+ var ny = ty;
17934
17944
  //#endregion
17935
- export { w_ as MESURER_TEXT_EDIT_SERVICE_ID, X_ as MESURER_VERSION, V_ as captureMesurerContext, Y_ as copyTextToClipboard, E_ as createMesurerAgentHarness, G_ as createMesurerCapturePlan, Yv as createMesurerPluginHost, Xv as createMesurerRuntime, Jv as defineMesurerPlugin, W_ as formatMesurerContext, $v as mountMeasurer, Qv as mountMesurer, J_ as reviewMesurerAnnotation };
17945
+ export { D_ as MESURER_TEXT_EDIT_SERVICE_ID, $_ as MESURER_VERSION, W_ as captureMesurerContext, Q_ as copyTextToClipboard, k_ as createMesurerAgentHarness, J_ as createMesurerCapturePlan, Qv as createMesurerPluginHost, $v as createMesurerRuntime, Zv as defineMesurerPlugin, q_ as formatMesurerContext, ny as mountMeasurer, ty as mountMesurer, Z_ as reviewMesurerAnnotation };