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

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
@@ -7717,23 +7717,29 @@ function _u(e) {
7717
7717
  }, s = (t) => {
7718
7718
  o?.setEnabled(e.id, t);
7719
7719
  };
7720
- var c = X("div", { class: "msr:relative" }), l = X("div", { class: "msr:grid msr:h-7 msr:w-full msr:grid-cols-[minmax(0,1fr)_28px_34px] msr:items-center msr:hover:bg-ink-50" }), u = X("span", { class: "msr:col-start-1 msr:ml-2 msr:min-w-0 msr:truncate msr:whitespace-nowrap msr:pr-2 msr:text-[11px] msr:text-ink-600" }), d = X("button", {
7720
+ var c = X("div", { class: "msr:relative" }), l = X("div", { class: "msr:grid msr:h-7 msr:w-full msr:grid-cols-[minmax(0,1fr)_28px_34px] msr:items-center msr:hover:bg-ink-50" }), u = X("button", {
7721
7721
  type: "button",
7722
7722
  role: "switch",
7723
7723
  class: "msr:col-start-3 msr:flex msr:h-full msr:w-full msr:items-center msr:justify-end msr:disabled:opacity-45 msr:focus-visible:outline-none msr:focus-visible:shadow-[inset_0_0_0_1px_#0d99ff]",
7724
7724
  onClick: () => s(!e.enabled)
7725
- }), f = X("span", { "aria-hidden": "true" }), p = X("span", { class: "msr:block msr:size-[10px] msr:shrink-0 msr:rounded-full msr:bg-white msr:shadow-sm msr:transition-transform" });
7726
- return Z(c, l), Z(l, u), Z(l, d), Q(u, () => e.label), Q(l, Y(q, {
7725
+ }), d = X("span", { "aria-hidden": "true" }), f = X("span", { class: "msr:block msr:size-[10px] msr:shrink-0 msr:rounded-full msr:bg-white msr:shadow-sm msr:transition-transform" });
7726
+ return Z(c, l), Z(l, u), Q(l, Y(q, {
7727
7727
  get when() {
7728
7728
  return n();
7729
7729
  },
7730
+ get fallback() {
7731
+ var t = X("span", { class: "msr:col-start-1 msr:col-end-3 msr:ml-2 msr:min-w-0 msr:truncate msr:whitespace-nowrap msr:pr-2 msr:text-[11px] msr:text-ink-600" });
7732
+ return Q(t, () => e.label), J(() => e.id, (e, n) => {
7733
+ $(t, "data-mesurer-plugin-label", e, n);
7734
+ }), t;
7735
+ },
7730
7736
  get children() {
7731
7737
  var n = X("button", {
7732
7738
  type: "button",
7733
- class: "msr:col-start-2 msr:flex msr:size-7 msr:items-center msr:justify-center msr:text-ink-500 msr:hover:text-ink-700 msr:focus-visible:outline-none msr:focus-visible:shadow-[inset_0_0_0_1px_#0d99ff]",
7739
+ class: "msr:col-start-1 msr:col-end-3 msr:flex msr:h-full msr:min-w-0 msr:items-center msr:text-left msr:text-ink-600 msr:hover:text-ink-700 msr:focus-visible:outline-none msr:focus-visible:shadow-[inset_0_0_0_1px_#0d99ff]",
7734
7740
  onClick: r
7735
- });
7736
- return Q(n, Y(Kl, {
7741
+ }), i = X("span", { class: "msr:ml-2 msr:min-w-0 msr:flex-1 msr:truncate msr:whitespace-nowrap msr:pr-2 msr:text-[11px]" }), a = X("span", { class: "msr:flex msr:size-7 msr:shrink-0 msr:items-center msr:justify-center msr:text-ink-500" });
7742
+ return Z(n, i), Z(n, a), Q(i, () => e.label), Q(a, Y(Kl, {
7737
7743
  size: 9,
7738
7744
  get class() {
7739
7745
  return t() ? "msr:rotate-180" : "";
@@ -7741,12 +7747,13 @@ function _u(e) {
7741
7747
  })), J(() => ({
7742
7748
  e: `${e.label} settings`,
7743
7749
  t: e.id,
7744
- a: t() ? "true" : "false"
7745
- }), ({ e, t, a: r }, i) => {
7746
- e !== i?.e && $(n, "aria-label", e, i?.e), t !== i?.t && $(n, "data-mesurer-plugin-settings-disclosure", t, i?.t), r !== i?.a && $(n, "aria-expanded", r, i?.a);
7750
+ a: t() ? "true" : "false",
7751
+ o: e.id
7752
+ }), ({ e, t, a: r, o: a }, o) => {
7753
+ e !== o?.e && $(n, "aria-label", e, o?.e), t !== o?.t && $(n, "data-mesurer-plugin-settings-disclosure", t, o?.t), r !== o?.a && $(n, "aria-expanded", r, o?.a), a !== o?.o && $(i, "data-mesurer-plugin-label", a, o?.o);
7747
7754
  }), n;
7748
7755
  }
7749
- }), d), Z(d, f), Z(f, p), Q(c, Y(q, {
7756
+ }), u), Z(u, d), Z(d, f), Q(c, Y(q, {
7750
7757
  get when() {
7751
7758
  return e.description || e.error;
7752
7759
  },
@@ -7810,16 +7817,15 @@ function _u(e) {
7810
7817
  }
7811
7818
  }), null), J(() => ({
7812
7819
  e: e.id,
7813
- t: e.id,
7814
- a: e.label,
7815
- o: e.enabled ? "true" : "false",
7816
- i: e.busy,
7817
- n: e.id,
7818
- s: e.enabled ? "true" : void 0,
7819
- h: `mesurer-switch-track msr:flex msr:h-[14px] msr:w-[26px] msr:shrink-0 msr:items-center msr:rounded-full msr:border msr:p-px msr:transition-colors ${e.enabled ? "msr:border-[#0d99ff] msr:bg-[#0d99ff]" : "msr:border-ink-200 msr:bg-ink-50"}`,
7820
- r: { transform: `translateX(${e.enabled ? 12 : 0}px)` }
7821
- }), ({ e, t, a: n, o: r, i, n: a, s: o, h: s, r: l }, m) => {
7822
- e !== m?.e && $(c, "data-mesurer-plugin-settings-section", e, m?.e), t !== m?.t && $(u, "data-mesurer-plugin-label", t, m?.t), n !== m?.a && $(d, "aria-label", n, m?.a), r !== m?.o && $(d, "aria-checked", r, m?.o), i !== m?.i && $(d, "disabled", i, m?.i), a !== m?.n && $(d, "data-mesurer-plugin-toggle", a, m?.n), o !== m?.s && $(f, "data-checked", o, m?.s), s !== m?.h && $(f, "class", s, m?.h), l !== m?.r && $(p, "style", l, m?.r);
7820
+ t: e.label,
7821
+ a: e.enabled ? "true" : "false",
7822
+ o: e.busy,
7823
+ i: e.id,
7824
+ n: e.enabled ? "true" : void 0,
7825
+ s: `mesurer-switch-track msr:flex msr:h-[14px] msr:w-[26px] msr:shrink-0 msr:items-center msr:rounded-full msr:border msr:p-px msr:transition-colors ${e.enabled ? "msr:border-[#0d99ff] msr:bg-[#0d99ff]" : "msr:border-ink-200 msr:bg-ink-50"}`,
7826
+ h: { transform: `translateX(${e.enabled ? 12 : 0}px)` }
7827
+ }), ({ e, t, a: n, o: r, i, n: a, s: o, h: s }, l) => {
7828
+ e !== l?.e && $(c, "data-mesurer-plugin-settings-section", e, l?.e), t !== l?.t && $(u, "aria-label", t, l?.t), n !== l?.a && $(u, "aria-checked", n, l?.a), r !== l?.o && $(u, "disabled", r, l?.o), i !== l?.i && $(u, "data-mesurer-plugin-toggle", i, l?.i), a !== l?.n && $(d, "data-checked", a, l?.n), o !== l?.s && $(d, "class", o, l?.s), s !== l?.h && $(f, "style", s, l?.h);
7823
7829
  }), c;
7824
7830
  }
7825
7831
  })), e;
@@ -8458,13 +8464,17 @@ function Hu(e) {
8458
8464
  }), Ne = X("div", {
8459
8465
  class: "mesurer-toolbar-mode-slot",
8460
8466
  "data-mode": "edit"
8461
- }), Pe = X("div", { class: "mesurer-toolbar-mode-panel" }), Fe = X("div", { class: "msr:flex msr:items-stretch msr:px-0.5 msr:py-1" }), Ie = X("div", { class: "msr:flex msr:items-center msr:p-1" }), Le = X("button", {
8467
+ }), Pe = X("div", { class: "mesurer-toolbar-mode-panel" }), Fe = X("div", {
8468
+ role: "group",
8469
+ "aria-label": "Shared guide tools",
8470
+ class: "msr:flex msr:items-stretch msr:py-1"
8471
+ }), Ie = X("div", { class: "msr:flex msr:items-stretch msr:px-0.5 msr:py-1" }), Le = X("div", { class: "msr:flex msr:items-center msr:p-1" }), Re = X("button", {
8462
8472
  type: "button",
8463
8473
  "data-mesurer-toolbar-compact-toggle": "true",
8464
8474
  class: "msr:flex msr:size-7 msr:select-none msr:items-center msr:justify-center msr:rounded-[7px] msr:text-black msr:outline-none msr:hover:bg-black/4",
8465
8475
  onClick: be
8466
8476
  });
8467
- return Z(De, Oe), Z(De, Fe), Z(De, Ie), aa(() => (e) => {
8477
+ return Z(De, Oe), Z(De, Fe), Z(De, Ie), Z(De, Le), aa(() => (e) => {
8468
8478
  g = e;
8469
8479
  }, De), Q(De, Y(Bu, {
8470
8480
  get value() {
@@ -8577,24 +8587,6 @@ function Hu(e) {
8577
8587
  }
8578
8588
  });
8579
8589
  }
8580
- }), null), Q(Me, Y(Ru, {
8581
- get visible() {
8582
- return ne(L(), !0);
8583
- },
8584
- get children() {
8585
- return Y(Lu, ra({
8586
- id: "rulers",
8587
- builtin: "rulers",
8588
- get active() {
8589
- return L();
8590
- },
8591
- label: "Rulers",
8592
- shortcut: "R",
8593
- onClick: () => e.onBuiltinAction("rulers")
8594
- }, () => we("rulers"), { get children() {
8595
- return Y(Gl, { size: 20 });
8596
- } }));
8597
- }
8598
8590
  }), null), Q(Me, Y(Ru, {
8599
8591
  get visible() {
8600
8592
  return ne(R());
@@ -8616,7 +8608,63 @@ function Hu(e) {
8616
8608
  return Y(Yl, { size: 20 });
8617
8609
  } }));
8618
8610
  }
8619
- }), null), Q(Me, Y(Ru, {
8611
+ }), null), Q(je, Y(q, {
8612
+ get when() {
8613
+ return U().length > 0;
8614
+ },
8615
+ get children() {
8616
+ return [Y(zu, { marker: "select-plugins" }), (() => {
8617
+ var e = X("div", {
8618
+ role: "group",
8619
+ "aria-label": "Select plugin tools",
8620
+ class: "msr:flex msr:items-stretch msr:px-0.5 msr:py-1"
8621
+ });
8622
+ return Q(e, Y(Zr, {
8623
+ get each() {
8624
+ return U();
8625
+ },
8626
+ children: (e) => Ee(e, e.compactPinned ?? !1)
8627
+ })), e;
8628
+ })()];
8629
+ }
8630
+ }), null), Z(Ne, Pe), aa(() => (e) => {
8631
+ x = e;
8632
+ }, Pe), Q(Pe, Y(q, {
8633
+ get when() {
8634
+ return W().length > 0;
8635
+ },
8636
+ get children() {
8637
+ var e = X("div", {
8638
+ role: "group",
8639
+ "aria-label": "Edit tools",
8640
+ class: "msr:flex msr:items-stretch msr:px-0.5 msr:py-1"
8641
+ });
8642
+ return Q(e, Y(Zr, {
8643
+ get each() {
8644
+ return W();
8645
+ },
8646
+ children: (e) => Ee(e)
8647
+ })), e;
8648
+ }
8649
+ })), Q(Fe, Y(Ru, {
8650
+ get visible() {
8651
+ return ne(L(), !0);
8652
+ },
8653
+ get children() {
8654
+ return Y(Lu, ra({
8655
+ id: "rulers",
8656
+ builtin: "rulers",
8657
+ get active() {
8658
+ return L();
8659
+ },
8660
+ label: "Rulers",
8661
+ shortcut: "R",
8662
+ onClick: () => e.onBuiltinAction("rulers")
8663
+ }, () => we("rulers"), { get children() {
8664
+ return Y(Gl, { size: 20 });
8665
+ } }));
8666
+ }
8667
+ }), null), Q(Fe, Y(Ru, {
8620
8668
  get visible() {
8621
8669
  return ne(z(), !0);
8622
8670
  },
@@ -8716,45 +8764,7 @@ function Hu(e) {
8716
8764
  }), t;
8717
8765
  })()];
8718
8766
  }
8719
- }), null), Q(je, Y(q, {
8720
- get when() {
8721
- return U().length > 0;
8722
- },
8723
- get children() {
8724
- return [Y(zu, { marker: "select-plugins" }), (() => {
8725
- var e = X("div", {
8726
- role: "group",
8727
- "aria-label": "Select plugin tools",
8728
- class: "msr:flex msr:items-stretch msr:px-0.5 msr:py-1"
8729
- });
8730
- return Q(e, Y(Zr, {
8731
- get each() {
8732
- return U();
8733
- },
8734
- children: (e) => Ee(e, e.compactPinned ?? !1)
8735
- })), e;
8736
- })()];
8737
- }
8738
- }), null), Z(Ne, Pe), aa(() => (e) => {
8739
- x = e;
8740
- }, Pe), Q(Pe, Y(q, {
8741
- get when() {
8742
- return W().length > 0;
8743
- },
8744
- get children() {
8745
- var e = X("div", {
8746
- role: "group",
8747
- "aria-label": "Edit tools",
8748
- class: "msr:flex msr:items-stretch msr:px-0.5 msr:py-1"
8749
- });
8750
- return Q(e, Y(Zr, {
8751
- get each() {
8752
- return W();
8753
- },
8754
- children: (e) => Ee(e)
8755
- })), e;
8756
- }
8757
- })), Q(De, Y(q, {
8767
+ }), null), Q(De, Y(q, {
8758
8768
  get when() {
8759
8769
  return ee().length > 0;
8760
8770
  },
@@ -8778,7 +8788,7 @@ function Hu(e) {
8778
8788
  })), e;
8779
8789
  })()];
8780
8790
  }
8781
- }), Fe), Q(Fe, Y(Ru, {
8791
+ }), Ie), Q(Ie, Y(Ru, {
8782
8792
  get visible() {
8783
8793
  return ne(B());
8784
8794
  },
@@ -8849,7 +8859,7 @@ function Hu(e) {
8849
8859
  return ie();
8850
8860
  },
8851
8861
  marker: "compact"
8852
- }), Ie), Z(Ie, Le), Q(Le, Y(Kl, {
8862
+ }), Le), Z(Le, Re), Q(Re, Y(Kl, {
8853
8863
  size: 10,
8854
8864
  get class() {
8855
8865
  return d() ? "msr:-rotate-90" : "msr:rotate-90";
@@ -8872,7 +8882,7 @@ function Hu(e) {
8872
8882
  u: d() ? "Expand toolbar" : "Compact toolbar",
8873
8883
  c: d() ? "true" : "false"
8874
8884
  }), ({ e, t, a: n, o: r, i, n: a, s: o, h: s, r: c, d: l, l: u, u: d, c: f }, p) => {
8875
- e !== p?.e && $(De, "data-mesurer-toolbar-compact", e, p?.e), t !== p?.t && $(De, "data-mesurer-toolbar-mode", t, p?.t), n !== p?.a && $(De, "style", n, p?.a), r !== p?.o && $(De, "onMouseLeave", r, p?.o), i !== p?.i && $(Oe, "data-mode", i, p?.i), a !== p?.n && $(Ae, "data-open", a, p?.n), o !== p?.s && $(Ae, "aria-hidden", o, p?.s), s !== p?.h && $(Ae, "inert", s, p?.h), c !== p?.r && $(Ne, "data-open", c, p?.r), l !== p?.d && $(Ne, "aria-hidden", l, p?.d), u !== p?.l && $(Ne, "inert", u, p?.l), d !== p?.u && $(Le, "aria-label", d, p?.u), f !== p?.c && $(Le, "aria-pressed", f, p?.c);
8885
+ e !== p?.e && $(De, "data-mesurer-toolbar-compact", e, p?.e), t !== p?.t && $(De, "data-mesurer-toolbar-mode", t, p?.t), n !== p?.a && $(De, "style", n, p?.a), r !== p?.o && $(De, "onMouseLeave", r, p?.o), i !== p?.i && $(Oe, "data-mode", i, p?.i), a !== p?.n && $(Ae, "data-open", a, p?.n), o !== p?.s && $(Ae, "aria-hidden", o, p?.s), s !== p?.h && $(Ae, "inert", s, p?.h), c !== p?.r && $(Ne, "data-open", c, p?.r), l !== p?.d && $(Ne, "aria-hidden", l, p?.d), u !== p?.l && $(Ne, "inert", u, p?.l), d !== p?.u && $(Re, "aria-label", d, p?.u), f !== p?.c && $(Re, "aria-pressed", f, p?.c);
8876
8886
  }), De;
8877
8887
  }
8878
8888
  var Uu = (e) => Number.parseFloat(e) || 0, Wu = 0, Gu = (e, t) => {
@@ -10290,7 +10300,7 @@ function pp(e) {
10290
10300
  }
10291
10301
  };
10292
10302
  }
10293
- var mp = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@layer properties;\n@layer theme, base, components, utilities;\n@layer theme {\n :root, :host {\n --msr-font-sans: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\",\n \"Noto Sans\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\",\n \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --msr-font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\",\n \"Courier New\", monospace;\n --msr-color-red-50: oklch(97.1% 0.013 17.38);\n --msr-color-red-200: oklch(88.5% 0.062 18.334);\n --msr-color-red-600: oklch(57.7% 0.245 27.325);\n --msr-color-black: #000;\n --msr-color-white: #fff;\n --msr-spacing: 0.25rem;\n --msr-font-weight-normal: 400;\n --msr-font-weight-medium: 500;\n --msr-font-weight-semibold: 600;\n --msr-radius-md: 0.375rem;\n --msr-radius-lg: 0.5rem;\n --msr-default-transition-duration: 150ms;\n --msr-default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --msr-default-font-family: var(--msr-font-sans);\n --msr-default-mono-font-family: var(--msr-font-mono);\n --msr-color-ink-50: #f8fafc;\n --msr-color-ink-200: #e2e8f0;\n --msr-color-ink-500: #64748b;\n --msr-color-ink-700: #334155;\n --msr-color-ink-900: #0f172a;\n }\n}\n@layer base {\n *, ::after, ::before, ::backdrop, ::file-selector-button {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n }\n html, :host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n font-family: var(--msr-default-font-family, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");\n font-feature-settings: var(--msr-default-font-feature-settings, normal);\n font-variation-settings: var(--msr-default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n h1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n b, strong {\n font-weight: bolder;\n }\n code, kbd, samp, pre {\n font-family: var(--msr-default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);\n font-feature-settings: var(--msr-default-mono-font-feature-settings, normal);\n font-variation-settings: var(--msr-default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n small {\n font-size: 80%;\n }\n sub, sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n :-moz-focusring:where(:not(iframe)) {\n outline: auto;\n }\n progress {\n vertical-align: baseline;\n }\n summary {\n display: list-item;\n }\n ol, ul, menu {\n list-style: none;\n }\n img, svg, video, canvas, audio, iframe, embed, object {\n display: block;\n vertical-align: middle;\n }\n img, video {\n max-width: 100%;\n height: auto;\n }\n button, input, select, optgroup, textarea, ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n }\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n ::placeholder {\n opacity: 1;\n }\n @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\n ::placeholder {\n color: currentcolor;\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n textarea {\n resize: vertical;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n ::-webkit-calendar-picker-indicator {\n line-height: 1;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n button, input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]), ::file-selector-button {\n appearance: button;\n }\n ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {\n height: auto;\n }\n [hidden]:where(:not([hidden=\"until-found\"])) {\n display: none !important;\n }\n}\n@layer utilities {\n .msr\\:pointer-events-auto {\n pointer-events: auto;\n }\n .msr\\:pointer-events-none {\n pointer-events: none;\n }\n .msr\\:absolute {\n position: absolute;\n }\n .msr\\:fixed {\n position: fixed;\n }\n .msr\\:relative {\n position: relative;\n }\n .msr\\:inset-0 {\n inset: 0px;\n }\n .msr\\:top-0 {\n top: 0px;\n }\n .msr\\:top-1\\/2 {\n top: calc(1 / 2 * 100%);\n }\n .msr\\:top-\\[18px\\] {\n top: 18px;\n }\n .msr\\:top-full {\n top: 100%;\n }\n .msr\\:right-0 {\n right: 0px;\n }\n .msr\\:right-2 {\n right: calc(var(--msr-spacing) * 2);\n }\n .msr\\:right-\\[8px\\] {\n right: 8px;\n }\n .msr\\:bottom-0 {\n bottom: 0px;\n }\n .msr\\:bottom-full {\n bottom: 100%;\n }\n .msr\\:left-0 {\n left: 0px;\n }\n .msr\\:left-1\\/2 {\n left: calc(1 / 2 * 100%);\n }\n .msr\\:left-\\[8px\\] {\n left: 8px;\n }\n .msr\\:left-\\[18px\\] {\n left: 18px;\n }\n .msr\\:z-10 {\n z-index: 10;\n }\n .msr\\:z-\\[60\\] {\n z-index: 60;\n }\n .msr\\:z-\\[70\\] {\n z-index: 70;\n }\n .msr\\:z-\\[80\\] {\n z-index: 80;\n }\n .msr\\:z-\\[90\\] {\n z-index: 90;\n }\n .msr\\:z-\\[94\\] {\n z-index: 94;\n }\n .msr\\:z-\\[95\\] {\n z-index: 95;\n }\n .msr\\:col-span-2 {\n grid-column: span 2 / span 2;\n }\n .msr\\:col-start-1 {\n grid-column-start: 1;\n }\n .msr\\:col-start-2 {\n grid-column-start: 2;\n }\n .msr\\:col-start-3 {\n grid-column-start: 3;\n }\n .msr\\:m-0 {\n margin: 0px;\n }\n .msr\\:mx-1 {\n margin-inline: var(--msr-spacing);\n }\n .msr\\:mt-1 {\n margin-top: var(--msr-spacing);\n }\n .msr\\:mt-1\\.5 {\n margin-top: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:mt-2 {\n margin-top: calc(var(--msr-spacing) * 2);\n }\n .msr\\:mb-1 {\n margin-bottom: var(--msr-spacing);\n }\n .msr\\:mb-2 {\n margin-bottom: calc(var(--msr-spacing) * 2);\n }\n .msr\\:-ml-1 {\n margin-left: calc(var(--msr-spacing) * -1);\n }\n .msr\\:ml-1 {\n margin-left: var(--msr-spacing);\n }\n .msr\\:ml-2 {\n margin-left: calc(var(--msr-spacing) * 2);\n }\n .msr\\:ml-6 {\n margin-left: calc(var(--msr-spacing) * 6);\n }\n .msr\\:box-border {\n box-sizing: border-box;\n }\n .msr\\:block {\n display: block;\n }\n .msr\\:flex {\n display: flex;\n }\n .msr\\:grid {\n display: grid;\n }\n .msr\\:inline-flex {\n display: inline-flex;\n }\n .msr\\:size-1\\.5 {\n width: calc(var(--msr-spacing) * 1.5);\n height: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:size-3 {\n width: calc(var(--msr-spacing) * 3);\n height: calc(var(--msr-spacing) * 3);\n }\n .msr\\:size-4 {\n width: calc(var(--msr-spacing) * 4);\n height: calc(var(--msr-spacing) * 4);\n }\n .msr\\:size-6 {\n width: calc(var(--msr-spacing) * 6);\n height: calc(var(--msr-spacing) * 6);\n }\n .msr\\:size-7 {\n width: calc(var(--msr-spacing) * 7);\n height: calc(var(--msr-spacing) * 7);\n }\n .msr\\:size-8 {\n width: calc(var(--msr-spacing) * 8);\n height: calc(var(--msr-spacing) * 8);\n }\n .msr\\:size-\\[10px\\] {\n width: 10px;\n height: 10px;\n }\n .msr\\:size-\\[18px\\] {\n width: 18px;\n height: 18px;\n }\n .msr\\:size-full {\n width: 100%;\n height: 100%;\n }\n .msr\\:h-5 {\n height: calc(var(--msr-spacing) * 5);\n }\n .msr\\:h-6 {\n height: calc(var(--msr-spacing) * 6);\n }\n .msr\\:h-7 {\n height: calc(var(--msr-spacing) * 7);\n }\n .msr\\:h-8 {\n height: calc(var(--msr-spacing) * 8);\n }\n .msr\\:h-20 {\n height: calc(var(--msr-spacing) * 20);\n }\n .msr\\:h-\\[14px\\] {\n height: 14px;\n }\n .msr\\:h-\\[18px\\] {\n height: 18px;\n }\n .msr\\:h-\\[19px\\] {\n height: 19px;\n }\n .msr\\:h-full {\n height: 100%;\n }\n .msr\\:h-px {\n height: 1px;\n }\n .msr\\:max-h-36 {\n max-height: calc(var(--msr-spacing) * 36);\n }\n .msr\\:max-h-\\[220px\\] {\n max-height: 220px;\n }\n .msr\\:max-h-\\[calc\\(100vh-16px\\)\\] {\n max-height: calc(100vh - 16px);\n }\n .msr\\:max-h-\\[min\\(70vh\\,34rem\\)\\] {\n max-height: min(70vh, 34rem);\n }\n .msr\\:max-h-\\[min\\(320px\\,calc\\(100vh-16px\\)\\)\\] {\n max-height: min(320px, calc(100vh - 16px));\n }\n .msr\\:min-h-0 {\n min-height: 0px;\n }\n .msr\\:w-0 {\n width: 0px;\n }\n .msr\\:w-3 {\n width: calc(var(--msr-spacing) * 3);\n }\n .msr\\:w-4 {\n width: calc(var(--msr-spacing) * 4);\n }\n .msr\\:w-5 {\n width: calc(var(--msr-spacing) * 5);\n }\n .msr\\:w-6 {\n width: calc(var(--msr-spacing) * 6);\n }\n .msr\\:w-9 {\n width: calc(var(--msr-spacing) * 9);\n }\n .msr\\:w-12 {\n width: calc(var(--msr-spacing) * 12);\n }\n .msr\\:w-44 {\n width: calc(var(--msr-spacing) * 44);\n }\n .msr\\:w-60 {\n width: calc(var(--msr-spacing) * 60);\n }\n .msr\\:w-\\[18px\\] {\n width: 18px;\n }\n .msr\\:w-\\[26px\\] {\n width: 26px;\n }\n .msr\\:w-\\[272px\\] {\n width: 272px;\n }\n .msr\\:w-full {\n width: 100%;\n }\n .msr\\:w-px {\n width: 1px;\n }\n .msr\\:max-w-0 {\n max-width: 0px;\n }\n .msr\\:max-w-20 {\n max-width: calc(var(--msr-spacing) * 20);\n }\n .msr\\:max-w-\\[calc\\(100vw-16px\\)\\] {\n max-width: calc(100vw - 16px);\n }\n .msr\\:min-w-0 {\n min-width: 0px;\n }\n .msr\\:min-w-36 {\n min-width: calc(var(--msr-spacing) * 36);\n }\n .msr\\:flex-1 {\n flex: 1;\n }\n .msr\\:flex-none {\n flex: none;\n }\n .msr\\:shrink-0 {\n flex-shrink: 0;\n }\n .msr\\:-translate-x-1 {\n --tw-translate-x: calc(var(--msr-spacing) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .msr\\:-translate-x-1\\/2 {\n --tw-translate-x: calc(calc(1 / 2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .msr\\:translate-x-0 {\n --tw-translate-x: 0px;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .msr\\:-translate-y-1\\/2 {\n --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .msr\\:-rotate-90 {\n rotate: calc(90deg * -1);\n }\n .msr\\:rotate-45 {\n rotate: 45deg;\n }\n .msr\\:rotate-90 {\n rotate: 90deg;\n }\n .msr\\:rotate-180 {\n rotate: 180deg;\n }\n .msr\\:rotate-\\[45deg\\] {\n rotate: 45deg;\n }\n .msr\\:rotate-\\[135deg\\] {\n rotate: 135deg;\n }\n .msr\\:cursor-crosshair {\n cursor: crosshair;\n }\n .msr\\:cursor-default {\n cursor: default;\n }\n .msr\\:cursor-pointer {\n cursor: pointer;\n }\n .msr\\:touch-none {\n touch-action: none;\n }\n .msr\\:resize-none {\n resize: none;\n }\n .msr\\:list-none {\n list-style-type: none;\n }\n .msr\\:appearance-none {\n appearance: none;\n }\n .msr\\:grid-cols-\\[78px_150px\\] {\n grid-template-columns: 78px 150px;\n }\n .msr\\:grid-cols-\\[78px_156px\\] {\n grid-template-columns: 78px 156px;\n }\n .msr\\:grid-cols-\\[78px_minmax\\(0\\,1fr\\)\\] {\n grid-template-columns: 78px minmax(0,1fr);\n }\n .msr\\:grid-cols-\\[minmax\\(0\\,1fr\\)_28px_34px\\] {\n grid-template-columns: minmax(0,1fr) 28px 34px;\n }\n .msr\\:flex-col {\n flex-direction: column;\n }\n .msr\\:items-center {\n align-items: center;\n }\n .msr\\:items-start {\n align-items: flex-start;\n }\n .msr\\:items-stretch {\n align-items: stretch;\n }\n .msr\\:justify-between {\n justify-content: space-between;\n }\n .msr\\:justify-center {\n justify-content: center;\n }\n .msr\\:justify-end {\n justify-content: flex-end;\n }\n .msr\\:gap-0 {\n gap: 0px;\n }\n .msr\\:gap-0\\.5 {\n gap: calc(var(--msr-spacing) * 0.5);\n }\n .msr\\:gap-1 {\n gap: var(--msr-spacing);\n }\n .msr\\:gap-1\\.5 {\n gap: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:gap-2 {\n gap: calc(var(--msr-spacing) * 2);\n }\n .msr\\:gap-3 {\n gap: calc(var(--msr-spacing) * 3);\n }\n .msr\\:gap-\\[2px\\] {\n gap: 2px;\n }\n .msr\\:gap-px {\n gap: 1px;\n }\n .msr\\:gap-x-3 {\n column-gap: calc(var(--msr-spacing) * 3);\n }\n .msr\\:gap-y-1 {\n row-gap: var(--msr-spacing);\n }\n .msr\\:self-center {\n align-self: center;\n }\n .msr\\:self-stretch {\n align-self: stretch;\n }\n .msr\\:justify-self-end {\n justify-self: flex-end;\n }\n .msr\\:truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .msr\\:overflow-auto {\n overflow: auto;\n }\n .msr\\:overflow-hidden {\n overflow: hidden;\n }\n .msr\\:overflow-visible {\n overflow: visible;\n }\n .msr\\:overflow-x-hidden {\n overflow-x: hidden;\n }\n .msr\\:overflow-y-auto {\n overflow-y: auto;\n }\n .msr\\:rounded {\n border-radius: 0.25rem;\n }\n .msr\\:rounded-\\[3px\\] {\n border-radius: 3px;\n }\n .msr\\:rounded-\\[5px\\] {\n border-radius: 5px;\n }\n .msr\\:rounded-\\[6px\\] {\n border-radius: 6px;\n }\n .msr\\:rounded-\\[7px\\] {\n border-radius: 7px;\n }\n .msr\\:rounded-\\[8px\\] {\n border-radius: 8px;\n }\n .msr\\:rounded-\\[10px\\] {\n border-radius: 10px;\n }\n .msr\\:rounded-\\[12px\\] {\n border-radius: 12px;\n }\n .msr\\:rounded-full {\n border-radius: calc(infinity * 1px);\n }\n .msr\\:rounded-lg {\n border-radius: var(--msr-radius-lg);\n }\n .msr\\:rounded-md {\n border-radius: var(--msr-radius-md);\n }\n .msr\\:rounded-none {\n border-radius: 0;\n }\n .msr\\:border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .msr\\:border-0 {\n border-style: var(--tw-border-style);\n border-width: 0px;\n }\n .msr\\:border-t {\n border-top-style: var(--tw-border-style);\n border-top-width: 1px;\n }\n .msr\\:border-t-2 {\n border-top-style: var(--tw-border-style);\n border-top-width: 2px;\n }\n .msr\\:border-r {\n border-right-style: var(--tw-border-style);\n border-right-width: 1px;\n }\n .msr\\:border-b {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n .msr\\:border-l {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n .msr\\:border-dashed {\n --tw-border-style: dashed;\n border-style: dashed;\n }\n .msr\\:border-dotted {\n --tw-border-style: dotted;\n border-style: dotted;\n }\n .msr\\:border-solid {\n --tw-border-style: solid;\n border-style: solid;\n }\n .msr\\:border-\\[\\#0d99ff\\] {\n border-color: #0d99ff;\n }\n .msr\\:border-\\[\\#2563eb\\]\\/70 {\n border-color: color-mix(in oklab, #2563eb 70%, transparent);\n }\n .msr\\:border-black\\/8 {\n border-color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--msr-color-black) 8%, transparent);\n }\n }\n .msr\\:border-black\\/10 {\n border-color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--msr-color-black) 10%, transparent);\n }\n }\n .msr\\:border-black\\/15 {\n border-color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--msr-color-black) 15%, transparent);\n }\n }\n .msr\\:border-ink-200 {\n border-color: var(--msr-color-ink-200);\n }\n .msr\\:border-ink-500 {\n border-color: var(--msr-color-ink-500);\n }\n .msr\\:border-ink-700 {\n border-color: var(--msr-color-ink-700);\n }\n .msr\\:border-red-200 {\n border-color: var(--msr-color-red-200);\n }\n .msr\\:border-transparent {\n border-color: transparent;\n }\n .msr\\:bg-\\[\\#0d99ff\\] {\n background-color: #0d99ff;\n }\n .msr\\:bg-\\[\\#0d99ff\\]\\/10 {\n background-color: color-mix(in oklab, #0d99ff 10%, transparent);\n }\n .msr\\:bg-\\[\\#2563eb\\] {\n background-color: #2563eb;\n }\n .msr\\:bg-\\[\\#fff\\] {\n background-color: #fff;\n }\n .msr\\:bg-black {\n background-color: var(--msr-color-black);\n }\n .msr\\:bg-black\\/10 {\n background-color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--msr-color-black) 10%, transparent);\n }\n }\n .msr\\:bg-ink-50 {\n background-color: var(--msr-color-ink-50);\n }\n .msr\\:bg-ink-50\\/40 {\n background-color: var(--msr-color-ink-50);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--msr-color-ink-50) 40%, transparent);\n }\n }\n .msr\\:bg-ink-900\\/90 {\n background-color: var(--msr-color-ink-900);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--msr-color-ink-900) 90%, transparent);\n }\n }\n .msr\\:bg-transparent {\n background-color: transparent;\n }\n .msr\\:bg-white {\n background-color: var(--msr-color-white);\n }\n .msr\\:bg-white\\/60 {\n background-color: var(--msr-color-white);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--msr-color-white) 60%, transparent);\n }\n }\n .msr\\:p-0 {\n padding: 0px;\n }\n .msr\\:p-1 {\n padding: var(--msr-spacing);\n }\n .msr\\:p-1\\.5 {\n padding: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:p-2 {\n padding: calc(var(--msr-spacing) * 2);\n }\n .msr\\:p-3 {\n padding: calc(var(--msr-spacing) * 3);\n }\n .msr\\:p-\\[2px\\] {\n padding: 2px;\n }\n .msr\\:p-px {\n padding: 1px;\n }\n .msr\\:px-0 {\n padding-inline: 0px;\n }\n .msr\\:px-0\\.5 {\n padding-inline: calc(var(--msr-spacing) * 0.5);\n }\n .msr\\:px-1 {\n padding-inline: var(--msr-spacing);\n }\n .msr\\:px-1\\.5 {\n padding-inline: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:px-2 {\n padding-inline: calc(var(--msr-spacing) * 2);\n }\n .msr\\:px-2\\.5 {\n padding-inline: calc(var(--msr-spacing) * 2.5);\n }\n .msr\\:py-0 {\n padding-block: 0px;\n }\n .msr\\:py-0\\.5 {\n padding-block: calc(var(--msr-spacing) * 0.5);\n }\n .msr\\:py-1 {\n padding-block: var(--msr-spacing);\n }\n .msr\\:py-1\\.5 {\n padding-block: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:py-2 {\n padding-block: calc(var(--msr-spacing) * 2);\n }\n .msr\\:pt-0\\.5 {\n padding-top: calc(var(--msr-spacing) * 0.5);\n }\n .msr\\:pt-2 {\n padding-top: calc(var(--msr-spacing) * 2);\n }\n .msr\\:pr-0 {\n padding-right: 0px;\n }\n .msr\\:pr-2 {\n padding-right: calc(var(--msr-spacing) * 2);\n }\n .msr\\:pr-6 {\n padding-right: calc(var(--msr-spacing) * 6);\n }\n .msr\\:pb-1 {\n padding-bottom: var(--msr-spacing);\n }\n .msr\\:pb-1\\.5 {\n padding-bottom: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:pb-2 {\n padding-bottom: calc(var(--msr-spacing) * 2);\n }\n .msr\\:text-center {\n text-align: center;\n }\n .msr\\:text-left {\n text-align: left;\n }\n .msr\\:font-mono {\n font-family: var(--msr-font-mono);\n }\n .msr\\:text-\\[9px\\] {\n font-size: 9px;\n }\n .msr\\:text-\\[10px\\] {\n font-size: 10px;\n }\n .msr\\:text-\\[11px\\] {\n font-size: 11px;\n }\n .msr\\:text-\\[12px\\] {\n font-size: 12px;\n }\n .msr\\:text-\\[14px\\] {\n font-size: 14px;\n }\n .msr\\:leading-4 {\n --tw-leading: calc(var(--msr-spacing) * 4);\n line-height: calc(var(--msr-spacing) * 4);\n }\n .msr\\:leading-\\[1\\.4\\] {\n --tw-leading: 1.4;\n line-height: 1.4;\n }\n .msr\\:leading-\\[1\\.45\\] {\n --tw-leading: 1.45;\n line-height: 1.45;\n }\n .msr\\:leading-\\[18px\\] {\n --tw-leading: 18px;\n line-height: 18px;\n }\n .msr\\:leading-none {\n --tw-leading: 1;\n line-height: 1;\n }\n .msr\\:font-medium {\n --tw-font-weight: var(--msr-font-weight-medium);\n font-weight: var(--msr-font-weight-medium);\n }\n .msr\\:font-normal {\n --tw-font-weight: var(--msr-font-weight-normal);\n font-weight: var(--msr-font-weight-normal);\n }\n .msr\\:font-semibold {\n --tw-font-weight: var(--msr-font-weight-semibold);\n font-weight: var(--msr-font-weight-semibold);\n }\n .msr\\:text-ellipsis {\n text-overflow: ellipsis;\n }\n .msr\\:whitespace-nowrap {\n white-space: nowrap;\n }\n .msr\\:whitespace-pre-wrap {\n white-space: pre-wrap;\n }\n .msr\\:text-\\[\\#64748b\\] {\n color: #64748b;\n }\n .msr\\:text-black {\n color: var(--msr-color-black);\n }\n .msr\\:text-black\\/30 {\n color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--msr-color-black) 30%, transparent);\n }\n }\n .msr\\:text-black\\/45 {\n color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--msr-color-black) 45%, transparent);\n }\n }\n .msr\\:text-ink-50 {\n color: var(--msr-color-ink-50);\n }\n .msr\\:text-ink-500 {\n color: var(--msr-color-ink-500);\n }\n .msr\\:text-ink-700 {\n color: var(--msr-color-ink-700);\n }\n .msr\\:text-ink-900 {\n color: var(--msr-color-ink-900);\n }\n .msr\\:text-red-600 {\n color: var(--msr-color-red-600);\n }\n .msr\\:text-white {\n color: var(--msr-color-white);\n }\n .msr\\:text-white\\/60 {\n color: var(--msr-color-white);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--msr-color-white) 60%, transparent);\n }\n }\n .msr\\:tabular-nums {\n --tw-numeric-spacing: tabular-nums;\n font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);\n }\n .msr\\:opacity-0 {\n opacity: 0%;\n }\n .msr\\:opacity-60 {\n opacity: 60%;\n }\n .msr\\:opacity-80 {\n opacity: 80%;\n }\n .msr\\:opacity-100 {\n opacity: 100%;\n }\n .msr\\:shadow-lg {\n --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:shadow-sm {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:outline {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n .msr\\:outline-transparent {\n outline-color: transparent;\n }\n .msr\\:transition-\\[max-width\\,opacity\\,transform\\,padding\\] {\n transition-property: max-width,opacity,transform,padding;\n transition-timing-function: var(--tw-ease, var(--msr-default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--msr-default-transition-duration));\n }\n .msr\\:transition-\\[width\\,opacity\\] {\n transition-property: width,opacity;\n transition-timing-function: var(--tw-ease, var(--msr-default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--msr-default-transition-duration));\n }\n .msr\\:transition-colors {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--msr-default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--msr-default-transition-duration));\n }\n .msr\\:transition-opacity {\n transition-property: opacity;\n transition-timing-function: var(--tw-ease, var(--msr-default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--msr-default-transition-duration));\n }\n .msr\\:transition-transform {\n transition-property: transform, translate, scale, rotate;\n transition-timing-function: var(--tw-ease, var(--msr-default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--msr-default-transition-duration));\n }\n .msr\\:transition-none {\n transition-property: none;\n }\n .msr\\:duration-150 {\n --tw-duration: 150ms;\n transition-duration: 150ms;\n }\n .msr\\:ease-\\[ease\\] {\n --tw-ease: ease;\n transition-timing-function: ease;\n }\n .msr\\:outline-none {\n --tw-outline-style: none;\n outline-style: none;\n }\n .msr\\:select-none {\n -webkit-user-select: none;\n user-select: none;\n }\n @media (hover: hover) {\n .msr\\:group-hover\\:border-ink-200:is(:where(.msr\\:group):hover *) {\n border-color: var(--msr-color-ink-200);\n }\n }\n .msr\\:focus-within\\:rounded-l-\\[5px\\]:focus-within {\n border-top-left-radius: 5px;\n border-bottom-left-radius: 5px;\n }\n .msr\\:focus-within\\:rounded-r-\\[5px\\]:focus-within {\n border-top-right-radius: 5px;\n border-bottom-right-radius: 5px;\n }\n .msr\\:focus-within\\:outline:focus-within {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n .msr\\:focus-within\\:outline-1:focus-within {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n .msr\\:focus-within\\:outline-offset-\\[-1px\\]:focus-within {\n outline-offset: -1px;\n }\n .msr\\:focus-within\\:outline-\\[\\#0d99ff\\]:focus-within {\n outline-color: #0d99ff;\n }\n .msr\\:focus-within\\:outline-\\[var\\(--msr-accent\\)\\]:focus-within {\n outline-color: var(--msr-accent);\n }\n @media (hover: hover) {\n .msr\\:hover\\:border-ink-200:hover {\n border-color: var(--msr-color-ink-200);\n }\n .msr\\:hover\\:bg-\\[\\#0b8eea\\]:hover {\n background-color: #0b8eea;\n }\n .msr\\:hover\\:bg-\\[\\#0d99ff\\]:hover {\n background-color: #0d99ff;\n }\n .msr\\:hover\\:bg-black\\/4:hover {\n background-color: var(--msr-color-black);\n }\n @supports (color: color-mix(in lab, red, red)) {\n .msr\\:hover\\:bg-black\\/4:hover {\n background-color: color-mix(in oklab, var(--msr-color-black) 4%, transparent);\n }\n }\n .msr\\:hover\\:bg-black\\/10:hover {\n background-color: var(--msr-color-black);\n }\n @supports (color: color-mix(in lab, red, red)) {\n .msr\\:hover\\:bg-black\\/10:hover {\n background-color: color-mix(in oklab, var(--msr-color-black) 10%, transparent);\n }\n }\n .msr\\:hover\\:bg-ink-50:hover {\n background-color: var(--msr-color-ink-50);\n }\n .msr\\:hover\\:bg-red-50:hover {\n background-color: var(--msr-color-red-50);\n }\n .msr\\:hover\\:text-ink-700:hover {\n color: var(--msr-color-ink-700);\n }\n .msr\\:hover\\:text-ink-900:hover {\n color: var(--msr-color-ink-900);\n }\n .msr\\:hover\\:text-white:hover {\n color: var(--msr-color-white);\n }\n .msr\\:hover\\:underline:hover {\n text-decoration-line: underline;\n }\n }\n .msr\\:focus\\:border-\\[\\#0d99ff\\]:focus {\n border-color: #0d99ff;\n }\n .msr\\:focus\\:shadow-\\[inset_0_0_0_1px_\\#0d99ff\\]:focus {\n --tw-shadow: inset 0 0 0 1px var(--tw-shadow-color, #0d99ff);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:focus\\:shadow-\\[inset_0_0_0_1px_var\\(--msr-accent\\)\\]:focus {\n --tw-shadow: inset 0 0 0 1px var(--tw-shadow-color, var(--msr-accent));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:focus\\:outline-none:focus {\n --tw-outline-style: none;\n outline-style: none;\n }\n .msr\\:focus-visible\\:border-\\[\\#0d99ff\\]:focus-visible {\n border-color: #0d99ff;\n }\n .msr\\:focus-visible\\:bg-\\[\\#0d99ff\\]:focus-visible {\n background-color: #0d99ff;\n }\n .msr\\:focus-visible\\:text-white:focus-visible {\n color: var(--msr-color-white);\n }\n .msr\\:focus-visible\\:shadow-\\[inset_0_0_0_1px_\\#0d99ff\\]:focus-visible {\n --tw-shadow: inset 0 0 0 1px var(--tw-shadow-color, #0d99ff);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:focus-visible\\:shadow-\\[inset_0_0_0_1px_\\#ef4444\\]:focus-visible {\n --tw-shadow: inset 0 0 0 1px var(--tw-shadow-color, #ef4444);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:focus-visible\\:ring-1:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:focus-visible\\:ring-\\[\\#0d99ff\\]\\/25:focus-visible {\n --tw-ring-color: color-mix(in oklab, #0d99ff 25%, transparent);\n }\n .msr\\:focus-visible\\:outline-none:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .msr\\:disabled\\:cursor-default:disabled {\n cursor: default;\n }\n .msr\\:disabled\\:opacity-40:disabled {\n opacity: 40%;\n }\n .msr\\:disabled\\:opacity-45:disabled {\n opacity: 45%;\n }\n @media (prefers-reduced-motion: reduce) {\n .msr\\:motion-reduce\\:transition-none {\n transition-property: none;\n }\n }\n}\n:root, :host {\n --color-ink-50: #f8fafc;\n --color-ink-200: #e2e8f0;\n --color-ink-500: #64748b;\n --color-ink-700: #334155;\n --color-ink-900: #0f172a;\n}\n:host {\n all: initial;\n display: block;\n color-scheme: light;\n color: #0f172a;\n font-family: ui-sans-serif, system-ui, sans-serif;\n font-size: 16px;\n font-weight: 400;\n line-height: 1.5;\n letter-spacing: normal;\n direction: ltr;\n --msr-spacing: 4px;\n}\n*, *::before, *::after {\n box-sizing: border-box;\n}\n@layer base {\n *, ::before, ::after, ::backdrop {\n --tw-border-style: solid;\n --tw-outline-style: solid;\n --tw-shadow: 0 0 #0000;\n --tw-inset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n }\n button, input, select, textarea {\n appearance: none;\n background-color: transparent;\n padding: 0;\n font: inherit;\n color: inherit;\n letter-spacing: inherit;\n }\n}\n.mesurer-toolbar-surface {\n box-shadow: 0 0 0.5px rgba(0, 0, 0, 0.18), 0 3px 8px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.1);\n}\n.mesurer-menu-surface {\n box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);\n}\n.mesurer-color-picker {\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n}\n.mesurer-settings-tabs {\n box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.08);\n}\n.mesurer-settings-tab[aria-selected=\"true\"] {\n box-shadow: 0 0 0 1px rgba(15, 23, 42, 0.12);\n}\n.mesurer-switch-track {\n box-sizing: border-box;\n border: 1px solid #e2e8f0;\n}\n.mesurer-switch-track[data-checked=\"true\"] {\n border-color: #0d99ff;\n}\n.mesurer-control-shell {\n border: 1px solid transparent;\n}\n.mesurer-control-shell:hover {\n border-color: #e2e8f0;\n}\n.mesurer-control-focus:focus-within {\n outline: 1px solid #0d99ff;\n outline-offset: -1px;\n}\n.mesurer-root {\n --msr-spacing: 4px;\n}\nbody [data-mesurer-native-scroll-anchor=\"box\"][data-mesurer-nested-scroll-compensation=\"true\"] {\n position: absolute !important;\n left: calc(anchor(left) + var(--mesurer-nested-scroll-x, 0px)) !important;\n top: calc(anchor(top) + var(--mesurer-nested-scroll-y, 0px)) !important;\n}\nbody [data-mesurer-native-scroll-anchor=\"label\"][data-mesurer-nested-scroll-compensation=\"true\"] {\n position: absolute !important;\n left: calc(anchor(center) + var(--mesurer-nested-scroll-x, 0px)) !important;\n top: calc(anchor(bottom) + 2px + var(--mesurer-nested-scroll-y, 0px)) !important;\n}\nbody [data-mesurer-native-scroll-anchor=\"offset\"][data-mesurer-nested-scroll-compensation=\"true\"] {\n position: absolute !important;\n left: calc(anchor(left) + var(--mesurer-native-anchor-x, 0px) + var(--mesurer-nested-scroll-x, 0px)) !important;\n top: calc(anchor(top) + var(--mesurer-native-anchor-y, 0px) + var(--mesurer-nested-scroll-y, 0px)) !important;\n}\n[data-mesurer-text-edit-ring=\"true\"], [data-mesurer-text-selection-highlight=\"true\"], [data-mesurer-text-caret=\"true\"] {\n z-index: 2147482900 !important;\n}\n[data-mesurer-text-inspector-placement-shell=\"true\"], .mesurer-ti-card {\n z-index: 2147483647 !important;\n}\n[data-mesurer-context-root=\"true\"] [data-mesurer-annotation-scroll-mode=\"document\"] {\n position: absolute !important;\n}\n[data-mesurer-annotation-scroll-mode=\"native-anchor\"] {\n position: fixed !important;\n}\n[data-mesurer-native-scroll-anchor=\"offset\"][data-mesurer-nested-scroll-compensation=\"true\"][data-mesurer-annotation-scroll-mode=\"native-anchor\"] {\n position: fixed !important;\n}\n[data-mesurer-annotation-badge=\"true\"] {\n width: 20px !important;\n height: 20px !important;\n transform: none !important;\n transition: width 150ms ease, height 150ms ease, background 150ms ease, color 150ms ease, box-shadow 150ms ease !important;\n}\n[data-mesurer-annotation-marker=\"true\"][data-mesurer-annotation-highlighted=\"true\"] > [data-mesurer-annotation-badge=\"true\"] {\n width: 24px !important;\n height: 24px !important;\n}\n[data-mesurer-root=\"true\"][data-mesurer-direct-text-edit-active=\"true\"] [data-mesurer-annotation-trigger=\"true\"], [data-mesurer-context-root=\"true\"][data-mesurer-direct-text-edit-active=\"true\"] [data-mesurer-annotation-trigger=\"true\"] {\n display: none !important;\n}\n[data-mesurer-plugin-settings] [role=\"switch\"] {\n grid-template-columns: minmax(0, 1fr) auto;\n}\n[data-mesurer-plugin-settings] [role=\"switch\"] > span:first-child {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n[data-mesurer-plugin-settings-disclosure=\"plugins\"] {\n width: calc(100% + 16px);\n margin-inline: -8px;\n}\n.mesurer-solid-root {\n position: fixed;\n inset: 0;\n z-index: 2147483000;\n pointer-events: none;\n --msr-spacing: 4px;\n}\n.mesurer-solid-root [role=\"slider\"] {\n border: 0;\n}\n[data-mesurer-distance-kind=\"selection-spacing\"][data-mesurer-distance-active=\"true\"] [data-mesurer-distance-hover-target=\"true\"] {\n opacity: 1 !important;\n}\n[data-mesurer-distance-kind=\"selection-spacing\"][data-mesurer-distance-active=\"true\"]:has([data-mesurer-distance-label-axis=\"x\"]:hover) [data-mesurer-distance-line^=\"vertical\"], [data-mesurer-distance-kind=\"selection-spacing\"][data-mesurer-distance-active=\"true\"]:has([data-mesurer-distance-label-axis=\"y\"]:hover) [data-mesurer-distance-line^=\"horizontal\"], [data-mesurer-distance-kind=\"selection-spacing\"][data-mesurer-distance-active=\"true\"]:has([data-mesurer-distance-label-axis]:hover) [data-mesurer-distance-connector=\"true\"] {\n opacity: 0.16 !important;\n}\nbody.mesurer-solid-xray * {\n outline: solid 1px blue !important;\n}\nbody.mesurer-solid-xray [data-mesurer-root], body.mesurer-solid-xray [data-mesurer-root] *, body.mesurer-solid-xray [data-mesurer-inspector-ui], body.mesurer-solid-xray [data-mesurer-inspector-ui] *, body.mesurer-solid-xray .mesurer-toolbar-surface, body.mesurer-solid-xray .mesurer-toolbar-surface *, body.mesurer-solid-xray .mesurer-ti-box, body.mesurer-solid-xray .mesurer-ti-card, body.mesurer-solid-xray .mesurer-ti-card *, body.mesurer-solid-xray .mesurer-ti-close {\n outline: none !important;\n}\n[data-mesurer-toolbar=\"true\"] > div:has(> [data-mesurer-toolbar-compact-item]) {\n transition: padding-inline 150ms ease;\n}\n[data-mesurer-toolbar=\"true\"][data-mesurer-toolbar-compact=\"true\"] > div:has(> [data-mesurer-toolbar-compact-item]):not(:has(> [data-mesurer-toolbar-compact-item][data-visible=\"true\"])) {\n padding-inline: 0;\n}\n[data-mesurer-selected-measurement=\"true\"]:has(> [data-mesurer-native-scroll-anchor=\"box\"]) {\n display: contents !important;\n}\n@media (prefers-reduced-motion: reduce) {\n [data-mesurer-toolbar=\"true\"] > div:has(> [data-mesurer-toolbar-compact-item]) {\n transition: none;\n }\n [data-mesurer-annotation-badge=\"true\"] {\n transition: none !important;\n }\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) {\n --msr-accent: #0d99ff;\n --msr-surface: #fff;\n --msr-surface-raised: #fff;\n --msr-surface-muted: #f8fafc;\n --msr-content: #18181b;\n --msr-color-white: #fff;\n --msr-color-black: #000;\n --msr-color-ink-50: #f8fafc;\n --msr-color-ink-100: #f1f5f9;\n --msr-color-ink-200: #e2e8f0;\n --msr-color-ink-300: #cbd5e1;\n --msr-color-ink-500: #64748b;\n --msr-color-ink-700: #334155;\n --msr-color-ink-900: #18181b;\n --color-ink-50: var(--msr-color-ink-50);\n --color-ink-100: var(--msr-color-ink-100);\n --color-ink-200: var(--msr-color-ink-200);\n --color-ink-300: var(--msr-color-ink-300);\n --color-ink-500: var(--msr-color-ink-500);\n --color-ink-700: var(--msr-color-ink-700);\n --color-ink-900: var(--msr-color-ink-900);\n --msr-danger-bg: #fef2f2;\n --msr-danger-border: #fecaca;\n --msr-danger-text: #dc2626;\n --msr-danger-solid-bg: #dc2626;\n --msr-danger-solid-hover: #b91c1c;\n --msr-danger-solid-text: #fff;\n --color-red-50: var(--msr-danger-bg);\n --color-red-200: var(--msr-danger-border);\n --color-red-600: var(--msr-danger-text);\n --color-red-700: #b91c1c;\n --msr-control-thumb: #fff;\n --msr-slider-track: rgba(15, 23, 42, 0.16);\n --msr-shadow-toolbar: 0 0 0.4px rgba(0, 0, 0, 0.22),\n 0 6px 18px rgba(0, 0, 0, 0.03),\n 0 3px 9px rgba(0, 0, 0, 0.06),\n 0 1px 1px rgba(0, 0, 0, 0.06);\n --msr-shadow-floating: 0 0 0 0.4px rgba(0, 0, 0, 0.22),\n 0 6px 18px rgba(0, 0, 0, 0.03),\n 0 3px 9px rgba(0, 0, 0, 0.06),\n 0 1px 1px rgba(0, 0, 0, 0.06);\n --msr-shadow-select-menu: var(--msr-shadow-floating);\n color: var(--msr-content);\n color-scheme: light;\n}\n:where( [data-mesurer-root=\"true\"][data-theme=\"dark\"], [data-mesurer-inspector-ui=\"true\"][data-theme=\"dark\"] ) {\n --msr-accent: #0c8ce9;\n --msr-surface: #323232;\n --msr-surface-raised: #3a3a3a;\n --msr-surface-muted: #3a3a3a;\n --msr-content: #f5f5f5;\n --msr-color-white: #f5f5f5;\n --msr-color-black: #171717;\n --msr-color-ink-50: #3a3a3a;\n --msr-color-ink-100: #414141;\n --msr-color-ink-200: #4a4a4a;\n --msr-color-ink-300: #5a5a5a;\n --msr-color-ink-500: #a0a0a0;\n --msr-color-ink-700: #dedede;\n --msr-color-ink-900: #f5f5f5;\n --msr-danger-bg: #3f2020;\n --msr-danger-border: #7f3f46;\n --msr-danger-text: #f87171;\n --msr-danger-solid-bg: #c95058;\n --msr-danger-solid-hover: #b7424b;\n --msr-danger-solid-text: #f5f5f5;\n --color-red-700: #fca5a5;\n --msr-control-thumb: #f4f4f5;\n --msr-slider-track: rgba(245, 245, 245, 0.24);\n --msr-shadow-toolbar: 0 0 0.4px lch(100% 0 0 / 0.10),\n 0 3px 8px lch(0% 0 0 / 0.125),\n 0 2px 5px lch(0% 0 0 / 0.125),\n 0 1px 1px lch(0% 0 0 / 0.125);\n --msr-shadow-floating: 0 0 0 0.4px lch(100% 0 0 / 0.05),\n 0 4px 12px lch(0% 0 0 / 0.12),\n 0 1px 3px lch(0% 0 0 / 0.10);\n --msr-shadow-select-menu: 0 0 0 0.4px lch(100% 0 0 / 0.14),\n 0 4px 12px lch(0% 0 0 / 0.22),\n 0 1px 3px lch(0% 0 0 / 0.18);\n color-scheme: dark;\n}\n@media (prefers-color-scheme: dark) {\n :where( [data-mesurer-root=\"true\"][data-theme=\"system\"], [data-mesurer-inspector-ui=\"true\"][data-theme=\"system\"] ) {\n --msr-accent: #0c8ce9;\n --msr-surface: #323232;\n --msr-surface-raised: #3a3a3a;\n --msr-surface-muted: #3a3a3a;\n --msr-content: #f5f5f5;\n --msr-color-white: #f5f5f5;\n --msr-color-black: #171717;\n --msr-color-ink-50: #3a3a3a;\n --msr-color-ink-100: #414141;\n --msr-color-ink-200: #4a4a4a;\n --msr-color-ink-300: #5a5a5a;\n --msr-color-ink-500: #a0a0a0;\n --msr-color-ink-700: #dedede;\n --msr-color-ink-900: #f5f5f5;\n --msr-danger-bg: #3f2020;\n --msr-danger-border: #7f3f46;\n --msr-danger-text: #f87171;\n --msr-danger-solid-bg: #c95058;\n --msr-danger-solid-hover: #b7424b;\n --msr-danger-solid-text: #f5f5f5;\n --color-red-700: #fca5a5;\n --msr-control-thumb: #f4f4f5;\n --msr-slider-track: rgba(245, 245, 245, 0.24);\n --msr-shadow-toolbar: 0 0 0.4px lch(100% 0 0 / 0.10),\n 0 3px 8px lch(0% 0 0 / 0.125),\n 0 2px 5px lch(0% 0 0 / 0.125),\n 0 1px 1px lch(0% 0 0 / 0.125);\n --msr-shadow-floating: 0 0 0 0.4px lch(100% 0 0 / 0.05),\n 0 4px 12px lch(0% 0 0 / 0.12),\n 0 1px 3px lch(0% 0 0 / 0.10);\n --msr-shadow-select-menu: 0 0 0 0.4px lch(100% 0 0 / 0.14),\n 0 4px 12px lch(0% 0 0 / 0.22),\n 0 1px 3px lch(0% 0 0 / 0.18);\n color-scheme: dark;\n }\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:bg-white\"], :where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:bg-[#fff]\"] {\n background-color: var(--msr-surface) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:text-black\"] {\n color: var(--msr-content) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:hover:bg-black/4\"]:hover, :where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:hover:bg-black/5\"]:hover {\n background-color: var(--msr-content) !important;\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in srgb, var(--msr-content) 6%, transparent) !important;\n }\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) .mesurer-toolbar-surface {\n background-color: var(--msr-surface) !important;\n box-shadow: var(--msr-shadow-toolbar) !important;\n color: var(--msr-content);\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) :is( .mesurer-menu-surface, .mesurer-color-picker, .mesurer-ti-card, [data-mesurer-text-inspector-info=\"true\"], [data-mesurer-annotation-panel=\"true\"], [data-mesurer-annotation-composer=\"true\"] ) {\n background-color: var(--msr-surface-raised) !important;\n color: var(--msr-content) !important;\n box-shadow: var(--msr-shadow-floating) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) .mesurer-switch-track[data-checked=\"false\"], :where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) .mesurer-control-shell {\n background-color: var(--msr-surface-muted) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) .mesurer-switch-track > span {\n background-color: var(--msr-control-thumb) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) :is(.mesurer-settings-select, .mesurer-settings-select-menu) {\n background-color: var(--msr-surface-raised) !important;\n border-color: var(--msr-color-ink-200) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [data-mesurer-rulers=\"true\"] {\n color: var(--msr-color-ink-500) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [data-slider-container=\"true\"] > div:first-child {\n background-color: var(--msr-slider-track) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:bg-[#0d99ff]\"] {\n background-color: var(--msr-accent) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:border-[#0d99ff]\"] {\n border-color: var(--msr-accent) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:hover:bg-[#0d99ff]\"]:hover, :where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:focus-visible:bg-[#0d99ff]\"]:focus-visible {\n background-color: var(--msr-accent) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:text-white\"] {\n color: var(--msr-color-white) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [data-slider-thumb=\"true\"]:focus-visible {\n box-shadow: 0 0 0 1px var(--msr-accent) !important;\n @supports (color: color-mix(in lab, red, red)) {\n box-shadow: 0 0 0 1px color-mix(in srgb, var(--msr-accent) 25%, transparent) !important;\n }\n}\n:where([data-mesurer-root=\"true\"], [data-mesurer-inspector-ui=\"true\"]) {\n --msr-radius-control: 5px;\n}\n@layer utilities {\n .msr\\:rounded-control {\n border-radius: var(--msr-radius-control);\n }\n}\n.mesurer-thin-scrollbar {\n scrollbar-width: thin;\n scrollbar-color: var(--msr-color-ink-200) transparent;\n}\n.mesurer-thin-scrollbar::-webkit-scrollbar {\n width: 4px;\n height: 4px;\n}\n.mesurer-thin-scrollbar::-webkit-scrollbar-track {\n background: transparent;\n}\n.mesurer-thin-scrollbar::-webkit-scrollbar-thumb {\n background: var(--msr-color-ink-200);\n border-radius: var(--msr-radius-control);\n}\n.mesurer-thin-scrollbar:hover {\n scrollbar-color: var(--msr-color-ink-300) transparent;\n}\n.mesurer-thin-scrollbar:hover::-webkit-scrollbar-thumb {\n background: var(--msr-color-ink-300);\n}\n.mesurer-thin-scrollbar::-webkit-scrollbar-corner {\n background: transparent;\n}\n.mesurer-toolbar-mode-switch {\n position: relative;\n z-index: 1;\n isolation: isolate;\n border-radius: 5px;\n background: transparent;\n}\n.mesurer-toolbar-mode-switch-pill {\n position: absolute;\n top: 2px;\n left: 2px;\n z-index: 0;\n width: 28px;\n height: 28px;\n border-radius: 3px;\n background: var(--msr-color-ink-200, #e2e8f0);\n transform: translateX(0);\n}\n.mesurer-toolbar-mode-switch[data-value=\"edit\"] .mesurer-toolbar-mode-switch-pill {\n transform: translateX(30px);\n}\n.mesurer-toolbar-mode-switch > :not(.mesurer-toolbar-mode-switch-pill) {\n position: relative;\n z-index: 1;\n}\n.mesurer-toolbar-mode-button {\n display: flex;\n width: 28px;\n height: 28px;\n align-items: center;\n justify-content: center;\n border-radius: 3px;\n color: var(--msr-color-ink-700, #334155);\n outline: none;\n}\n.mesurer-toolbar-mode-button[aria-pressed=\"true\"] {\n color: var(--msr-color-ink-900, #18181b);\n}\n.mesurer-toolbar-mode-button[aria-pressed=\"false\"]:not(:disabled):hover {\n background: var(--msr-color-ink-200, #e2e8f0);\n @supports (color: color-mix(in lab, red, red)) {\n background: color-mix(in srgb, var(--msr-color-ink-200, #e2e8f0) 50%, transparent);\n }\n}\n.mesurer-toolbar-mode-button:focus-visible {\n outline: 1px solid var(--msr-color-ink-500, #64748b);\n outline-offset: 1px;\n}\n.mesurer-toolbar-mode-button:disabled {\n cursor: default;\n opacity: 0.35;\n}\n.mesurer-toolbar-mode-stage {\n --msr-select-mode-w: 0px;\n --msr-edit-mode-w: 0px;\n position: relative;\n flex: none;\n width: var(--msr-select-mode-w);\n overflow: visible;\n}\n.mesurer-toolbar-mode-stage[data-mode=\"edit\"] {\n width: var(--msr-edit-mode-w);\n}\n.mesurer-toolbar-mode-track {\n display: flex;\n width: max-content;\n align-items: stretch;\n transform: translateX(0);\n}\n.mesurer-toolbar-mode-stage[data-mode=\"edit\"] .mesurer-toolbar-mode-track {\n transform: translateX(calc(-1 * var(--msr-select-mode-w)));\n}\n.mesurer-toolbar-mode-slot {\n flex: none;\n width: var(--msr-select-mode-w);\n}\n.mesurer-toolbar-mode-slot[data-mode=\"edit\"] {\n width: var(--msr-edit-mode-w);\n}\n.mesurer-toolbar-mode-panel {\n display: flex;\n width: max-content;\n align-items: stretch;\n}\n.mesurer-toolbar-mode-slot[data-open=\"false\"] {\n visibility: hidden;\n pointer-events: none;\n}\n.mesurer-toolbar-mode-stage[data-mode-motion=\"true\"] {\n overflow: hidden;\n}\n.mesurer-toolbar-mode-stage[data-mode-motion=\"true\"] .mesurer-toolbar-mode-slot[data-open=\"false\"] {\n visibility: visible;\n}\n.mesurer-toolbar-mode-stage:has( .mesurer-toolbar-mode-slot[data-open=\"true\"] [role=\"menu\"], .mesurer-toolbar-mode-slot[data-open=\"true\"] [role=\"dialog\"] ) {\n overflow: visible;\n}\n.mesurer-toolbar-mode-stage[data-ready=\"true\"], .mesurer-toolbar-mode-stage[data-ready=\"true\"] .mesurer-toolbar-mode-track {\n transition-duration: 150ms;\n transition-timing-function: ease;\n}\n.mesurer-toolbar-mode-stage[data-ready=\"true\"] {\n transition-property: width;\n}\n.mesurer-toolbar-mode-stage[data-compact-motion=\"true\"] {\n transition-property: none;\n}\n.mesurer-toolbar-mode-stage[data-ready=\"true\"] .mesurer-toolbar-mode-track {\n transition-property: transform;\n}\n.mesurer-toolbar-mode-switch {\n --msr-toolbar-mode-motion: 150ms ease;\n}\n.mesurer-toolbar-mode-switch-pill {\n transition: transform var(--msr-toolbar-mode-motion);\n}\n@media (prefers-reduced-motion: reduce) {\n .mesurer-toolbar-mode-stage, .mesurer-toolbar-mode-track, .mesurer-toolbar-mode-switch-pill {\n transition: none !important;\n }\n}\n@property --tw-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-border-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-leading {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-font-weight {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ordinal {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-slashed-zero {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-figure {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-spacing {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-fraction {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-inset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-ring-inset {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-offset-width {\n syntax: \"<length>\";\n inherits: false;\n initial-value: 0px;\n}\n@property --tw-ring-offset-color {\n syntax: \"*\";\n inherits: false;\n initial-value: #fff;\n}\n@property --tw-ring-offset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-outline-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-duration {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ease {\n syntax: \"*\";\n inherits: false;\n}\n@layer properties {\n @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n *, ::before, ::after, ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-border-style: solid;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-ordinal: initial;\n --tw-slashed-zero: initial;\n --tw-numeric-figure: initial;\n --tw-numeric-spacing: initial;\n --tw-numeric-fraction: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-outline-style: solid;\n --tw-duration: initial;\n --tw-ease: initial;\n }\n }\n}\n", hp = 0, gp = "mesurer:tab-id", _p = "mesurer-settings", vp = "mesurer-state", yp = 80, bp = (e, t) => {
10303
+ var mp = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@layer properties;\n@layer theme, base, components, utilities;\n@layer theme {\n :root, :host {\n --msr-font-sans: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\",\n \"Noto Sans\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\",\n \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --msr-font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\",\n \"Courier New\", monospace;\n --msr-color-red-50: oklch(97.1% 0.013 17.38);\n --msr-color-red-200: oklch(88.5% 0.062 18.334);\n --msr-color-red-600: oklch(57.7% 0.245 27.325);\n --msr-color-black: #000;\n --msr-color-white: #fff;\n --msr-spacing: 0.25rem;\n --msr-font-weight-normal: 400;\n --msr-font-weight-medium: 500;\n --msr-font-weight-semibold: 600;\n --msr-radius-md: 0.375rem;\n --msr-radius-lg: 0.5rem;\n --msr-default-transition-duration: 150ms;\n --msr-default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --msr-default-font-family: var(--msr-font-sans);\n --msr-default-mono-font-family: var(--msr-font-mono);\n --msr-color-ink-50: #f8fafc;\n --msr-color-ink-200: #e2e8f0;\n --msr-color-ink-500: #64748b;\n --msr-color-ink-700: #334155;\n --msr-color-ink-900: #0f172a;\n }\n}\n@layer base {\n *, ::after, ::before, ::backdrop, ::file-selector-button {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n }\n html, :host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n font-family: var(--msr-default-font-family, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");\n font-feature-settings: var(--msr-default-font-feature-settings, normal);\n font-variation-settings: var(--msr-default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n h1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n b, strong {\n font-weight: bolder;\n }\n code, kbd, samp, pre {\n font-family: var(--msr-default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);\n font-feature-settings: var(--msr-default-mono-font-feature-settings, normal);\n font-variation-settings: var(--msr-default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n small {\n font-size: 80%;\n }\n sub, sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n :-moz-focusring:where(:not(iframe)) {\n outline: auto;\n }\n progress {\n vertical-align: baseline;\n }\n summary {\n display: list-item;\n }\n ol, ul, menu {\n list-style: none;\n }\n img, svg, video, canvas, audio, iframe, embed, object {\n display: block;\n vertical-align: middle;\n }\n img, video {\n max-width: 100%;\n height: auto;\n }\n button, input, select, optgroup, textarea, ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n }\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n ::placeholder {\n opacity: 1;\n }\n @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\n ::placeholder {\n color: currentcolor;\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n textarea {\n resize: vertical;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n ::-webkit-calendar-picker-indicator {\n line-height: 1;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n button, input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]), ::file-selector-button {\n appearance: button;\n }\n ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {\n height: auto;\n }\n [hidden]:where(:not([hidden=\"until-found\"])) {\n display: none !important;\n }\n}\n@layer utilities {\n .msr\\:pointer-events-auto {\n pointer-events: auto;\n }\n .msr\\:pointer-events-none {\n pointer-events: none;\n }\n .msr\\:absolute {\n position: absolute;\n }\n .msr\\:fixed {\n position: fixed;\n }\n .msr\\:relative {\n position: relative;\n }\n .msr\\:inset-0 {\n inset: 0px;\n }\n .msr\\:top-0 {\n top: 0px;\n }\n .msr\\:top-1\\/2 {\n top: calc(1 / 2 * 100%);\n }\n .msr\\:top-\\[18px\\] {\n top: 18px;\n }\n .msr\\:top-full {\n top: 100%;\n }\n .msr\\:right-0 {\n right: 0px;\n }\n .msr\\:right-2 {\n right: calc(var(--msr-spacing) * 2);\n }\n .msr\\:right-\\[8px\\] {\n right: 8px;\n }\n .msr\\:bottom-0 {\n bottom: 0px;\n }\n .msr\\:bottom-full {\n bottom: 100%;\n }\n .msr\\:left-0 {\n left: 0px;\n }\n .msr\\:left-1\\/2 {\n left: calc(1 / 2 * 100%);\n }\n .msr\\:left-\\[8px\\] {\n left: 8px;\n }\n .msr\\:left-\\[18px\\] {\n left: 18px;\n }\n .msr\\:z-10 {\n z-index: 10;\n }\n .msr\\:z-\\[60\\] {\n z-index: 60;\n }\n .msr\\:z-\\[70\\] {\n z-index: 70;\n }\n .msr\\:z-\\[80\\] {\n z-index: 80;\n }\n .msr\\:z-\\[90\\] {\n z-index: 90;\n }\n .msr\\:z-\\[94\\] {\n z-index: 94;\n }\n .msr\\:z-\\[95\\] {\n z-index: 95;\n }\n .msr\\:col-span-2 {\n grid-column: span 2 / span 2;\n }\n .msr\\:col-start-1 {\n grid-column-start: 1;\n }\n .msr\\:col-start-3 {\n grid-column-start: 3;\n }\n .msr\\:col-end-3 {\n grid-column-end: 3;\n }\n .msr\\:m-0 {\n margin: 0px;\n }\n .msr\\:mx-1 {\n margin-inline: var(--msr-spacing);\n }\n .msr\\:mt-1 {\n margin-top: var(--msr-spacing);\n }\n .msr\\:mt-1\\.5 {\n margin-top: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:mt-2 {\n margin-top: calc(var(--msr-spacing) * 2);\n }\n .msr\\:mb-1 {\n margin-bottom: var(--msr-spacing);\n }\n .msr\\:mb-2 {\n margin-bottom: calc(var(--msr-spacing) * 2);\n }\n .msr\\:-ml-1 {\n margin-left: calc(var(--msr-spacing) * -1);\n }\n .msr\\:ml-1 {\n margin-left: var(--msr-spacing);\n }\n .msr\\:ml-2 {\n margin-left: calc(var(--msr-spacing) * 2);\n }\n .msr\\:ml-6 {\n margin-left: calc(var(--msr-spacing) * 6);\n }\n .msr\\:box-border {\n box-sizing: border-box;\n }\n .msr\\:block {\n display: block;\n }\n .msr\\:flex {\n display: flex;\n }\n .msr\\:grid {\n display: grid;\n }\n .msr\\:inline-flex {\n display: inline-flex;\n }\n .msr\\:size-1\\.5 {\n width: calc(var(--msr-spacing) * 1.5);\n height: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:size-3 {\n width: calc(var(--msr-spacing) * 3);\n height: calc(var(--msr-spacing) * 3);\n }\n .msr\\:size-4 {\n width: calc(var(--msr-spacing) * 4);\n height: calc(var(--msr-spacing) * 4);\n }\n .msr\\:size-6 {\n width: calc(var(--msr-spacing) * 6);\n height: calc(var(--msr-spacing) * 6);\n }\n .msr\\:size-7 {\n width: calc(var(--msr-spacing) * 7);\n height: calc(var(--msr-spacing) * 7);\n }\n .msr\\:size-8 {\n width: calc(var(--msr-spacing) * 8);\n height: calc(var(--msr-spacing) * 8);\n }\n .msr\\:size-\\[10px\\] {\n width: 10px;\n height: 10px;\n }\n .msr\\:size-\\[18px\\] {\n width: 18px;\n height: 18px;\n }\n .msr\\:size-full {\n width: 100%;\n height: 100%;\n }\n .msr\\:h-5 {\n height: calc(var(--msr-spacing) * 5);\n }\n .msr\\:h-6 {\n height: calc(var(--msr-spacing) * 6);\n }\n .msr\\:h-7 {\n height: calc(var(--msr-spacing) * 7);\n }\n .msr\\:h-8 {\n height: calc(var(--msr-spacing) * 8);\n }\n .msr\\:h-20 {\n height: calc(var(--msr-spacing) * 20);\n }\n .msr\\:h-\\[14px\\] {\n height: 14px;\n }\n .msr\\:h-\\[18px\\] {\n height: 18px;\n }\n .msr\\:h-\\[19px\\] {\n height: 19px;\n }\n .msr\\:h-full {\n height: 100%;\n }\n .msr\\:h-px {\n height: 1px;\n }\n .msr\\:max-h-36 {\n max-height: calc(var(--msr-spacing) * 36);\n }\n .msr\\:max-h-\\[220px\\] {\n max-height: 220px;\n }\n .msr\\:max-h-\\[calc\\(100vh-16px\\)\\] {\n max-height: calc(100vh - 16px);\n }\n .msr\\:max-h-\\[min\\(70vh\\,34rem\\)\\] {\n max-height: min(70vh, 34rem);\n }\n .msr\\:max-h-\\[min\\(320px\\,calc\\(100vh-16px\\)\\)\\] {\n max-height: min(320px, calc(100vh - 16px));\n }\n .msr\\:min-h-0 {\n min-height: 0px;\n }\n .msr\\:w-0 {\n width: 0px;\n }\n .msr\\:w-3 {\n width: calc(var(--msr-spacing) * 3);\n }\n .msr\\:w-4 {\n width: calc(var(--msr-spacing) * 4);\n }\n .msr\\:w-5 {\n width: calc(var(--msr-spacing) * 5);\n }\n .msr\\:w-6 {\n width: calc(var(--msr-spacing) * 6);\n }\n .msr\\:w-9 {\n width: calc(var(--msr-spacing) * 9);\n }\n .msr\\:w-12 {\n width: calc(var(--msr-spacing) * 12);\n }\n .msr\\:w-44 {\n width: calc(var(--msr-spacing) * 44);\n }\n .msr\\:w-60 {\n width: calc(var(--msr-spacing) * 60);\n }\n .msr\\:w-\\[18px\\] {\n width: 18px;\n }\n .msr\\:w-\\[26px\\] {\n width: 26px;\n }\n .msr\\:w-\\[272px\\] {\n width: 272px;\n }\n .msr\\:w-full {\n width: 100%;\n }\n .msr\\:w-px {\n width: 1px;\n }\n .msr\\:max-w-0 {\n max-width: 0px;\n }\n .msr\\:max-w-20 {\n max-width: calc(var(--msr-spacing) * 20);\n }\n .msr\\:max-w-\\[calc\\(100vw-16px\\)\\] {\n max-width: calc(100vw - 16px);\n }\n .msr\\:min-w-0 {\n min-width: 0px;\n }\n .msr\\:min-w-36 {\n min-width: calc(var(--msr-spacing) * 36);\n }\n .msr\\:flex-1 {\n flex: 1;\n }\n .msr\\:flex-none {\n flex: none;\n }\n .msr\\:shrink-0 {\n flex-shrink: 0;\n }\n .msr\\:-translate-x-1 {\n --tw-translate-x: calc(var(--msr-spacing) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .msr\\:-translate-x-1\\/2 {\n --tw-translate-x: calc(calc(1 / 2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .msr\\:translate-x-0 {\n --tw-translate-x: 0px;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .msr\\:-translate-y-1\\/2 {\n --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .msr\\:-rotate-90 {\n rotate: calc(90deg * -1);\n }\n .msr\\:rotate-45 {\n rotate: 45deg;\n }\n .msr\\:rotate-90 {\n rotate: 90deg;\n }\n .msr\\:rotate-180 {\n rotate: 180deg;\n }\n .msr\\:rotate-\\[45deg\\] {\n rotate: 45deg;\n }\n .msr\\:rotate-\\[135deg\\] {\n rotate: 135deg;\n }\n .msr\\:cursor-crosshair {\n cursor: crosshair;\n }\n .msr\\:cursor-default {\n cursor: default;\n }\n .msr\\:cursor-pointer {\n cursor: pointer;\n }\n .msr\\:touch-none {\n touch-action: none;\n }\n .msr\\:resize-none {\n resize: none;\n }\n .msr\\:list-none {\n list-style-type: none;\n }\n .msr\\:appearance-none {\n appearance: none;\n }\n .msr\\:grid-cols-\\[78px_150px\\] {\n grid-template-columns: 78px 150px;\n }\n .msr\\:grid-cols-\\[78px_156px\\] {\n grid-template-columns: 78px 156px;\n }\n .msr\\:grid-cols-\\[78px_minmax\\(0\\,1fr\\)\\] {\n grid-template-columns: 78px minmax(0,1fr);\n }\n .msr\\:grid-cols-\\[minmax\\(0\\,1fr\\)_28px_34px\\] {\n grid-template-columns: minmax(0,1fr) 28px 34px;\n }\n .msr\\:flex-col {\n flex-direction: column;\n }\n .msr\\:items-center {\n align-items: center;\n }\n .msr\\:items-start {\n align-items: flex-start;\n }\n .msr\\:items-stretch {\n align-items: stretch;\n }\n .msr\\:justify-between {\n justify-content: space-between;\n }\n .msr\\:justify-center {\n justify-content: center;\n }\n .msr\\:justify-end {\n justify-content: flex-end;\n }\n .msr\\:gap-0 {\n gap: 0px;\n }\n .msr\\:gap-0\\.5 {\n gap: calc(var(--msr-spacing) * 0.5);\n }\n .msr\\:gap-1 {\n gap: var(--msr-spacing);\n }\n .msr\\:gap-1\\.5 {\n gap: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:gap-2 {\n gap: calc(var(--msr-spacing) * 2);\n }\n .msr\\:gap-3 {\n gap: calc(var(--msr-spacing) * 3);\n }\n .msr\\:gap-\\[2px\\] {\n gap: 2px;\n }\n .msr\\:gap-px {\n gap: 1px;\n }\n .msr\\:gap-x-3 {\n column-gap: calc(var(--msr-spacing) * 3);\n }\n .msr\\:gap-y-1 {\n row-gap: var(--msr-spacing);\n }\n .msr\\:self-center {\n align-self: center;\n }\n .msr\\:self-stretch {\n align-self: stretch;\n }\n .msr\\:justify-self-end {\n justify-self: flex-end;\n }\n .msr\\:truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .msr\\:overflow-auto {\n overflow: auto;\n }\n .msr\\:overflow-hidden {\n overflow: hidden;\n }\n .msr\\:overflow-visible {\n overflow: visible;\n }\n .msr\\:overflow-x-hidden {\n overflow-x: hidden;\n }\n .msr\\:overflow-y-auto {\n overflow-y: auto;\n }\n .msr\\:rounded {\n border-radius: 0.25rem;\n }\n .msr\\:rounded-\\[3px\\] {\n border-radius: 3px;\n }\n .msr\\:rounded-\\[5px\\] {\n border-radius: 5px;\n }\n .msr\\:rounded-\\[6px\\] {\n border-radius: 6px;\n }\n .msr\\:rounded-\\[7px\\] {\n border-radius: 7px;\n }\n .msr\\:rounded-\\[8px\\] {\n border-radius: 8px;\n }\n .msr\\:rounded-\\[10px\\] {\n border-radius: 10px;\n }\n .msr\\:rounded-\\[12px\\] {\n border-radius: 12px;\n }\n .msr\\:rounded-full {\n border-radius: calc(infinity * 1px);\n }\n .msr\\:rounded-lg {\n border-radius: var(--msr-radius-lg);\n }\n .msr\\:rounded-md {\n border-radius: var(--msr-radius-md);\n }\n .msr\\:rounded-none {\n border-radius: 0;\n }\n .msr\\:border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .msr\\:border-0 {\n border-style: var(--tw-border-style);\n border-width: 0px;\n }\n .msr\\:border-t {\n border-top-style: var(--tw-border-style);\n border-top-width: 1px;\n }\n .msr\\:border-t-2 {\n border-top-style: var(--tw-border-style);\n border-top-width: 2px;\n }\n .msr\\:border-r {\n border-right-style: var(--tw-border-style);\n border-right-width: 1px;\n }\n .msr\\:border-b {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n .msr\\:border-l {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n .msr\\:border-dashed {\n --tw-border-style: dashed;\n border-style: dashed;\n }\n .msr\\:border-dotted {\n --tw-border-style: dotted;\n border-style: dotted;\n }\n .msr\\:border-solid {\n --tw-border-style: solid;\n border-style: solid;\n }\n .msr\\:border-\\[\\#0d99ff\\] {\n border-color: #0d99ff;\n }\n .msr\\:border-\\[\\#2563eb\\]\\/70 {\n border-color: color-mix(in oklab, #2563eb 70%, transparent);\n }\n .msr\\:border-black\\/8 {\n border-color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--msr-color-black) 8%, transparent);\n }\n }\n .msr\\:border-black\\/10 {\n border-color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--msr-color-black) 10%, transparent);\n }\n }\n .msr\\:border-black\\/15 {\n border-color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--msr-color-black) 15%, transparent);\n }\n }\n .msr\\:border-ink-200 {\n border-color: var(--msr-color-ink-200);\n }\n .msr\\:border-ink-500 {\n border-color: var(--msr-color-ink-500);\n }\n .msr\\:border-ink-700 {\n border-color: var(--msr-color-ink-700);\n }\n .msr\\:border-red-200 {\n border-color: var(--msr-color-red-200);\n }\n .msr\\:border-transparent {\n border-color: transparent;\n }\n .msr\\:bg-\\[\\#0d99ff\\] {\n background-color: #0d99ff;\n }\n .msr\\:bg-\\[\\#0d99ff\\]\\/10 {\n background-color: color-mix(in oklab, #0d99ff 10%, transparent);\n }\n .msr\\:bg-\\[\\#2563eb\\] {\n background-color: #2563eb;\n }\n .msr\\:bg-\\[\\#fff\\] {\n background-color: #fff;\n }\n .msr\\:bg-black {\n background-color: var(--msr-color-black);\n }\n .msr\\:bg-black\\/10 {\n background-color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--msr-color-black) 10%, transparent);\n }\n }\n .msr\\:bg-ink-50 {\n background-color: var(--msr-color-ink-50);\n }\n .msr\\:bg-ink-50\\/40 {\n background-color: var(--msr-color-ink-50);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--msr-color-ink-50) 40%, transparent);\n }\n }\n .msr\\:bg-ink-900\\/90 {\n background-color: var(--msr-color-ink-900);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--msr-color-ink-900) 90%, transparent);\n }\n }\n .msr\\:bg-transparent {\n background-color: transparent;\n }\n .msr\\:bg-white {\n background-color: var(--msr-color-white);\n }\n .msr\\:bg-white\\/60 {\n background-color: var(--msr-color-white);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--msr-color-white) 60%, transparent);\n }\n }\n .msr\\:p-0 {\n padding: 0px;\n }\n .msr\\:p-1 {\n padding: var(--msr-spacing);\n }\n .msr\\:p-1\\.5 {\n padding: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:p-2 {\n padding: calc(var(--msr-spacing) * 2);\n }\n .msr\\:p-3 {\n padding: calc(var(--msr-spacing) * 3);\n }\n .msr\\:p-\\[2px\\] {\n padding: 2px;\n }\n .msr\\:p-px {\n padding: 1px;\n }\n .msr\\:px-0 {\n padding-inline: 0px;\n }\n .msr\\:px-0\\.5 {\n padding-inline: calc(var(--msr-spacing) * 0.5);\n }\n .msr\\:px-1 {\n padding-inline: var(--msr-spacing);\n }\n .msr\\:px-1\\.5 {\n padding-inline: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:px-2 {\n padding-inline: calc(var(--msr-spacing) * 2);\n }\n .msr\\:px-2\\.5 {\n padding-inline: calc(var(--msr-spacing) * 2.5);\n }\n .msr\\:py-0 {\n padding-block: 0px;\n }\n .msr\\:py-0\\.5 {\n padding-block: calc(var(--msr-spacing) * 0.5);\n }\n .msr\\:py-1 {\n padding-block: var(--msr-spacing);\n }\n .msr\\:py-1\\.5 {\n padding-block: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:py-2 {\n padding-block: calc(var(--msr-spacing) * 2);\n }\n .msr\\:pt-0\\.5 {\n padding-top: calc(var(--msr-spacing) * 0.5);\n }\n .msr\\:pt-2 {\n padding-top: calc(var(--msr-spacing) * 2);\n }\n .msr\\:pr-0 {\n padding-right: 0px;\n }\n .msr\\:pr-2 {\n padding-right: calc(var(--msr-spacing) * 2);\n }\n .msr\\:pr-6 {\n padding-right: calc(var(--msr-spacing) * 6);\n }\n .msr\\:pb-1 {\n padding-bottom: var(--msr-spacing);\n }\n .msr\\:pb-1\\.5 {\n padding-bottom: calc(var(--msr-spacing) * 1.5);\n }\n .msr\\:pb-2 {\n padding-bottom: calc(var(--msr-spacing) * 2);\n }\n .msr\\:text-center {\n text-align: center;\n }\n .msr\\:text-left {\n text-align: left;\n }\n .msr\\:font-mono {\n font-family: var(--msr-font-mono);\n }\n .msr\\:text-\\[9px\\] {\n font-size: 9px;\n }\n .msr\\:text-\\[10px\\] {\n font-size: 10px;\n }\n .msr\\:text-\\[11px\\] {\n font-size: 11px;\n }\n .msr\\:text-\\[12px\\] {\n font-size: 12px;\n }\n .msr\\:text-\\[14px\\] {\n font-size: 14px;\n }\n .msr\\:leading-4 {\n --tw-leading: calc(var(--msr-spacing) * 4);\n line-height: calc(var(--msr-spacing) * 4);\n }\n .msr\\:leading-\\[1\\.4\\] {\n --tw-leading: 1.4;\n line-height: 1.4;\n }\n .msr\\:leading-\\[1\\.45\\] {\n --tw-leading: 1.45;\n line-height: 1.45;\n }\n .msr\\:leading-\\[18px\\] {\n --tw-leading: 18px;\n line-height: 18px;\n }\n .msr\\:leading-none {\n --tw-leading: 1;\n line-height: 1;\n }\n .msr\\:font-medium {\n --tw-font-weight: var(--msr-font-weight-medium);\n font-weight: var(--msr-font-weight-medium);\n }\n .msr\\:font-normal {\n --tw-font-weight: var(--msr-font-weight-normal);\n font-weight: var(--msr-font-weight-normal);\n }\n .msr\\:font-semibold {\n --tw-font-weight: var(--msr-font-weight-semibold);\n font-weight: var(--msr-font-weight-semibold);\n }\n .msr\\:text-ellipsis {\n text-overflow: ellipsis;\n }\n .msr\\:whitespace-nowrap {\n white-space: nowrap;\n }\n .msr\\:whitespace-pre-wrap {\n white-space: pre-wrap;\n }\n .msr\\:text-\\[\\#64748b\\] {\n color: #64748b;\n }\n .msr\\:text-black {\n color: var(--msr-color-black);\n }\n .msr\\:text-black\\/30 {\n color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--msr-color-black) 30%, transparent);\n }\n }\n .msr\\:text-black\\/45 {\n color: var(--msr-color-black);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--msr-color-black) 45%, transparent);\n }\n }\n .msr\\:text-ink-50 {\n color: var(--msr-color-ink-50);\n }\n .msr\\:text-ink-500 {\n color: var(--msr-color-ink-500);\n }\n .msr\\:text-ink-700 {\n color: var(--msr-color-ink-700);\n }\n .msr\\:text-ink-900 {\n color: var(--msr-color-ink-900);\n }\n .msr\\:text-red-600 {\n color: var(--msr-color-red-600);\n }\n .msr\\:text-white {\n color: var(--msr-color-white);\n }\n .msr\\:text-white\\/60 {\n color: var(--msr-color-white);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--msr-color-white) 60%, transparent);\n }\n }\n .msr\\:tabular-nums {\n --tw-numeric-spacing: tabular-nums;\n font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);\n }\n .msr\\:opacity-0 {\n opacity: 0%;\n }\n .msr\\:opacity-60 {\n opacity: 60%;\n }\n .msr\\:opacity-80 {\n opacity: 80%;\n }\n .msr\\:opacity-100 {\n opacity: 100%;\n }\n .msr\\:shadow-lg {\n --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:shadow-sm {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:outline {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n .msr\\:outline-transparent {\n outline-color: transparent;\n }\n .msr\\:transition-\\[max-width\\,opacity\\,transform\\,padding\\] {\n transition-property: max-width,opacity,transform,padding;\n transition-timing-function: var(--tw-ease, var(--msr-default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--msr-default-transition-duration));\n }\n .msr\\:transition-\\[width\\,opacity\\] {\n transition-property: width,opacity;\n transition-timing-function: var(--tw-ease, var(--msr-default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--msr-default-transition-duration));\n }\n .msr\\:transition-colors {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--msr-default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--msr-default-transition-duration));\n }\n .msr\\:transition-opacity {\n transition-property: opacity;\n transition-timing-function: var(--tw-ease, var(--msr-default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--msr-default-transition-duration));\n }\n .msr\\:transition-transform {\n transition-property: transform, translate, scale, rotate;\n transition-timing-function: var(--tw-ease, var(--msr-default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--msr-default-transition-duration));\n }\n .msr\\:transition-none {\n transition-property: none;\n }\n .msr\\:duration-150 {\n --tw-duration: 150ms;\n transition-duration: 150ms;\n }\n .msr\\:ease-\\[ease\\] {\n --tw-ease: ease;\n transition-timing-function: ease;\n }\n .msr\\:outline-none {\n --tw-outline-style: none;\n outline-style: none;\n }\n .msr\\:select-none {\n -webkit-user-select: none;\n user-select: none;\n }\n @media (hover: hover) {\n .msr\\:group-hover\\:border-ink-200:is(:where(.msr\\:group):hover *) {\n border-color: var(--msr-color-ink-200);\n }\n }\n .msr\\:focus-within\\:rounded-l-\\[5px\\]:focus-within {\n border-top-left-radius: 5px;\n border-bottom-left-radius: 5px;\n }\n .msr\\:focus-within\\:rounded-r-\\[5px\\]:focus-within {\n border-top-right-radius: 5px;\n border-bottom-right-radius: 5px;\n }\n .msr\\:focus-within\\:outline:focus-within {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n .msr\\:focus-within\\:outline-1:focus-within {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n .msr\\:focus-within\\:outline-offset-\\[-1px\\]:focus-within {\n outline-offset: -1px;\n }\n .msr\\:focus-within\\:outline-\\[\\#0d99ff\\]:focus-within {\n outline-color: #0d99ff;\n }\n .msr\\:focus-within\\:outline-\\[var\\(--msr-accent\\)\\]:focus-within {\n outline-color: var(--msr-accent);\n }\n @media (hover: hover) {\n .msr\\:hover\\:border-ink-200:hover {\n border-color: var(--msr-color-ink-200);\n }\n .msr\\:hover\\:bg-\\[\\#0b8eea\\]:hover {\n background-color: #0b8eea;\n }\n .msr\\:hover\\:bg-\\[\\#0d99ff\\]:hover {\n background-color: #0d99ff;\n }\n .msr\\:hover\\:bg-black\\/4:hover {\n background-color: var(--msr-color-black);\n }\n @supports (color: color-mix(in lab, red, red)) {\n .msr\\:hover\\:bg-black\\/4:hover {\n background-color: color-mix(in oklab, var(--msr-color-black) 4%, transparent);\n }\n }\n .msr\\:hover\\:bg-black\\/10:hover {\n background-color: var(--msr-color-black);\n }\n @supports (color: color-mix(in lab, red, red)) {\n .msr\\:hover\\:bg-black\\/10:hover {\n background-color: color-mix(in oklab, var(--msr-color-black) 10%, transparent);\n }\n }\n .msr\\:hover\\:bg-ink-50:hover {\n background-color: var(--msr-color-ink-50);\n }\n .msr\\:hover\\:bg-red-50:hover {\n background-color: var(--msr-color-red-50);\n }\n .msr\\:hover\\:text-ink-700:hover {\n color: var(--msr-color-ink-700);\n }\n .msr\\:hover\\:text-ink-900:hover {\n color: var(--msr-color-ink-900);\n }\n .msr\\:hover\\:text-white:hover {\n color: var(--msr-color-white);\n }\n .msr\\:hover\\:underline:hover {\n text-decoration-line: underline;\n }\n }\n .msr\\:focus\\:border-\\[\\#0d99ff\\]:focus {\n border-color: #0d99ff;\n }\n .msr\\:focus\\:shadow-\\[inset_0_0_0_1px_\\#0d99ff\\]:focus {\n --tw-shadow: inset 0 0 0 1px var(--tw-shadow-color, #0d99ff);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:focus\\:shadow-\\[inset_0_0_0_1px_var\\(--msr-accent\\)\\]:focus {\n --tw-shadow: inset 0 0 0 1px var(--tw-shadow-color, var(--msr-accent));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:focus\\:outline-none:focus {\n --tw-outline-style: none;\n outline-style: none;\n }\n .msr\\:focus-visible\\:border-\\[\\#0d99ff\\]:focus-visible {\n border-color: #0d99ff;\n }\n .msr\\:focus-visible\\:bg-\\[\\#0d99ff\\]:focus-visible {\n background-color: #0d99ff;\n }\n .msr\\:focus-visible\\:text-white:focus-visible {\n color: var(--msr-color-white);\n }\n .msr\\:focus-visible\\:shadow-\\[inset_0_0_0_1px_\\#0d99ff\\]:focus-visible {\n --tw-shadow: inset 0 0 0 1px var(--tw-shadow-color, #0d99ff);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:focus-visible\\:shadow-\\[inset_0_0_0_1px_\\#ef4444\\]:focus-visible {\n --tw-shadow: inset 0 0 0 1px var(--tw-shadow-color, #ef4444);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:focus-visible\\:ring-1:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .msr\\:focus-visible\\:ring-\\[\\#0d99ff\\]\\/25:focus-visible {\n --tw-ring-color: color-mix(in oklab, #0d99ff 25%, transparent);\n }\n .msr\\:focus-visible\\:outline-none:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n .msr\\:disabled\\:cursor-default:disabled {\n cursor: default;\n }\n .msr\\:disabled\\:opacity-40:disabled {\n opacity: 40%;\n }\n .msr\\:disabled\\:opacity-45:disabled {\n opacity: 45%;\n }\n @media (prefers-reduced-motion: reduce) {\n .msr\\:motion-reduce\\:transition-none {\n transition-property: none;\n }\n }\n}\n:root, :host {\n --color-ink-50: #f8fafc;\n --color-ink-200: #e2e8f0;\n --color-ink-500: #64748b;\n --color-ink-700: #334155;\n --color-ink-900: #0f172a;\n}\n:host {\n all: initial;\n display: block;\n color-scheme: light;\n color: #0f172a;\n font-family: ui-sans-serif, system-ui, sans-serif;\n font-size: 16px;\n font-weight: 400;\n line-height: 1.5;\n letter-spacing: normal;\n direction: ltr;\n --msr-spacing: 4px;\n}\n*, *::before, *::after {\n box-sizing: border-box;\n}\n@layer base {\n *, ::before, ::after, ::backdrop {\n --tw-border-style: solid;\n --tw-outline-style: solid;\n --tw-shadow: 0 0 #0000;\n --tw-inset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n }\n button, input, select, textarea {\n appearance: none;\n background-color: transparent;\n padding: 0;\n font: inherit;\n color: inherit;\n letter-spacing: inherit;\n }\n}\n.mesurer-toolbar-surface {\n box-shadow: 0 0 0.5px rgba(0, 0, 0, 0.18), 0 3px 8px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.1);\n}\n.mesurer-menu-surface {\n box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);\n}\n.mesurer-color-picker {\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n}\n.mesurer-settings-tabs {\n box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.08);\n}\n.mesurer-settings-tab[aria-selected=\"true\"] {\n box-shadow: 0 0 0 1px rgba(15, 23, 42, 0.12);\n}\n.mesurer-switch-track {\n box-sizing: border-box;\n border: 1px solid #e2e8f0;\n}\n.mesurer-switch-track[data-checked=\"true\"] {\n border-color: #0d99ff;\n}\n.mesurer-control-shell {\n border: 1px solid transparent;\n}\n.mesurer-control-shell:hover {\n border-color: #e2e8f0;\n}\n.mesurer-control-focus:focus-within {\n outline: 1px solid #0d99ff;\n outline-offset: -1px;\n}\n.mesurer-root {\n --msr-spacing: 4px;\n}\nbody [data-mesurer-native-scroll-anchor=\"box\"][data-mesurer-nested-scroll-compensation=\"true\"] {\n position: absolute !important;\n left: calc(anchor(left) + var(--mesurer-nested-scroll-x, 0px)) !important;\n top: calc(anchor(top) + var(--mesurer-nested-scroll-y, 0px)) !important;\n}\nbody [data-mesurer-native-scroll-anchor=\"label\"][data-mesurer-nested-scroll-compensation=\"true\"] {\n position: absolute !important;\n left: calc(anchor(center) + var(--mesurer-nested-scroll-x, 0px)) !important;\n top: calc(anchor(bottom) + 2px + var(--mesurer-nested-scroll-y, 0px)) !important;\n}\nbody [data-mesurer-native-scroll-anchor=\"offset\"][data-mesurer-nested-scroll-compensation=\"true\"] {\n position: absolute !important;\n left: calc(anchor(left) + var(--mesurer-native-anchor-x, 0px) + var(--mesurer-nested-scroll-x, 0px)) !important;\n top: calc(anchor(top) + var(--mesurer-native-anchor-y, 0px) + var(--mesurer-nested-scroll-y, 0px)) !important;\n}\n[data-mesurer-text-edit-ring=\"true\"], [data-mesurer-text-selection-highlight=\"true\"], [data-mesurer-text-caret=\"true\"] {\n z-index: 2147482900 !important;\n}\n[data-mesurer-text-inspector-placement-shell=\"true\"], .mesurer-ti-card {\n z-index: 2147483647 !important;\n}\n[data-mesurer-context-root=\"true\"] [data-mesurer-annotation-scroll-mode=\"document\"] {\n position: absolute !important;\n}\n[data-mesurer-annotation-scroll-mode=\"native-anchor\"] {\n position: fixed !important;\n}\n[data-mesurer-native-scroll-anchor=\"offset\"][data-mesurer-nested-scroll-compensation=\"true\"][data-mesurer-annotation-scroll-mode=\"native-anchor\"] {\n position: fixed !important;\n}\n[data-mesurer-annotation-badge=\"true\"] {\n width: 20px !important;\n height: 20px !important;\n transform: none !important;\n transition: width 150ms ease, height 150ms ease, background 150ms ease, color 150ms ease, box-shadow 150ms ease !important;\n}\n[data-mesurer-annotation-marker=\"true\"][data-mesurer-annotation-highlighted=\"true\"] > [data-mesurer-annotation-badge=\"true\"] {\n width: 24px !important;\n height: 24px !important;\n}\n[data-mesurer-root=\"true\"][data-mesurer-direct-text-edit-active=\"true\"] [data-mesurer-annotation-trigger=\"true\"], [data-mesurer-context-root=\"true\"][data-mesurer-direct-text-edit-active=\"true\"] [data-mesurer-annotation-trigger=\"true\"] {\n display: none !important;\n}\n[data-mesurer-plugin-settings] [role=\"switch\"] {\n grid-template-columns: minmax(0, 1fr) auto;\n}\n[data-mesurer-plugin-settings] [role=\"switch\"] > span:first-child {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n[data-mesurer-plugin-settings-disclosure=\"plugins\"] {\n width: calc(100% + 16px);\n margin-inline: -8px;\n}\n.mesurer-solid-root {\n position: fixed;\n inset: 0;\n z-index: 2147483000;\n pointer-events: none;\n --msr-spacing: 4px;\n}\n.mesurer-solid-root [role=\"slider\"] {\n border: 0;\n}\n[data-mesurer-distance-kind=\"selection-spacing\"][data-mesurer-distance-active=\"true\"] [data-mesurer-distance-hover-target=\"true\"] {\n opacity: 1 !important;\n}\n[data-mesurer-distance-kind=\"selection-spacing\"][data-mesurer-distance-active=\"true\"]:has([data-mesurer-distance-label-axis=\"x\"]:hover) [data-mesurer-distance-line^=\"vertical\"], [data-mesurer-distance-kind=\"selection-spacing\"][data-mesurer-distance-active=\"true\"]:has([data-mesurer-distance-label-axis=\"y\"]:hover) [data-mesurer-distance-line^=\"horizontal\"], [data-mesurer-distance-kind=\"selection-spacing\"][data-mesurer-distance-active=\"true\"]:has([data-mesurer-distance-label-axis]:hover) [data-mesurer-distance-connector=\"true\"] {\n opacity: 0.16 !important;\n}\nbody.mesurer-solid-xray * {\n outline: solid 1px blue !important;\n}\nbody.mesurer-solid-xray [data-mesurer-root], body.mesurer-solid-xray [data-mesurer-root] *, body.mesurer-solid-xray [data-mesurer-inspector-ui], body.mesurer-solid-xray [data-mesurer-inspector-ui] *, body.mesurer-solid-xray .mesurer-toolbar-surface, body.mesurer-solid-xray .mesurer-toolbar-surface *, body.mesurer-solid-xray .mesurer-ti-box, body.mesurer-solid-xray .mesurer-ti-card, body.mesurer-solid-xray .mesurer-ti-card *, body.mesurer-solid-xray .mesurer-ti-close {\n outline: none !important;\n}\n[data-mesurer-toolbar=\"true\"] > div:has(> [data-mesurer-toolbar-compact-item]) {\n transition: padding-inline 150ms ease;\n}\n[data-mesurer-toolbar=\"true\"][data-mesurer-toolbar-compact=\"true\"] > div:has(> [data-mesurer-toolbar-compact-item]):not(:has(> [data-mesurer-toolbar-compact-item][data-visible=\"true\"])) {\n padding-inline: 0;\n}\n[data-mesurer-selected-measurement=\"true\"]:has(> [data-mesurer-native-scroll-anchor=\"box\"]) {\n display: contents !important;\n}\n@media (prefers-reduced-motion: reduce) {\n [data-mesurer-toolbar=\"true\"] > div:has(> [data-mesurer-toolbar-compact-item]) {\n transition: none;\n }\n [data-mesurer-annotation-badge=\"true\"] {\n transition: none !important;\n }\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) {\n --msr-accent: #0d99ff;\n --msr-surface: #fff;\n --msr-surface-raised: #fff;\n --msr-surface-muted: #f8fafc;\n --msr-content: #18181b;\n --msr-color-white: #fff;\n --msr-color-black: #000;\n --msr-color-ink-50: #f8fafc;\n --msr-color-ink-100: #f1f5f9;\n --msr-color-ink-200: #e2e8f0;\n --msr-color-ink-300: #cbd5e1;\n --msr-color-ink-500: #64748b;\n --msr-color-ink-700: #334155;\n --msr-color-ink-900: #18181b;\n --color-ink-50: var(--msr-color-ink-50);\n --color-ink-100: var(--msr-color-ink-100);\n --color-ink-200: var(--msr-color-ink-200);\n --color-ink-300: var(--msr-color-ink-300);\n --color-ink-500: var(--msr-color-ink-500);\n --color-ink-700: var(--msr-color-ink-700);\n --color-ink-900: var(--msr-color-ink-900);\n --msr-danger-bg: #fef2f2;\n --msr-danger-border: #fecaca;\n --msr-danger-text: #dc2626;\n --msr-danger-solid-bg: #dc2626;\n --msr-danger-solid-hover: #b91c1c;\n --msr-danger-solid-text: #fff;\n --color-red-50: var(--msr-danger-bg);\n --color-red-200: var(--msr-danger-border);\n --color-red-600: var(--msr-danger-text);\n --color-red-700: #b91c1c;\n --msr-control-thumb: #fff;\n --msr-slider-track: rgba(15, 23, 42, 0.16);\n --msr-shadow-toolbar: 0 0 0.4px rgba(0, 0, 0, 0.22),\n 0 6px 18px rgba(0, 0, 0, 0.03),\n 0 3px 9px rgba(0, 0, 0, 0.06),\n 0 1px 1px rgba(0, 0, 0, 0.06);\n --msr-shadow-floating: 0 0 0 0.4px rgba(0, 0, 0, 0.22),\n 0 6px 18px rgba(0, 0, 0, 0.03),\n 0 3px 9px rgba(0, 0, 0, 0.06),\n 0 1px 1px rgba(0, 0, 0, 0.06);\n --msr-shadow-select-menu: var(--msr-shadow-floating);\n color: var(--msr-content);\n color-scheme: light;\n}\n:where( [data-mesurer-root=\"true\"][data-theme=\"dark\"], [data-mesurer-inspector-ui=\"true\"][data-theme=\"dark\"] ) {\n --msr-accent: #0c8ce9;\n --msr-surface: #323232;\n --msr-surface-raised: #3a3a3a;\n --msr-surface-muted: #3a3a3a;\n --msr-content: #f5f5f5;\n --msr-color-white: #f5f5f5;\n --msr-color-black: #171717;\n --msr-color-ink-50: #3a3a3a;\n --msr-color-ink-100: #414141;\n --msr-color-ink-200: #4a4a4a;\n --msr-color-ink-300: #5a5a5a;\n --msr-color-ink-500: #a0a0a0;\n --msr-color-ink-700: #dedede;\n --msr-color-ink-900: #f5f5f5;\n --msr-danger-bg: #3f2020;\n --msr-danger-border: #7f3f46;\n --msr-danger-text: #f87171;\n --msr-danger-solid-bg: #c95058;\n --msr-danger-solid-hover: #b7424b;\n --msr-danger-solid-text: #f5f5f5;\n --color-red-700: #fca5a5;\n --msr-control-thumb: #f4f4f5;\n --msr-slider-track: rgba(245, 245, 245, 0.24);\n --msr-shadow-toolbar: 0 0 0.4px lch(100% 0 0 / 0.10),\n 0 3px 8px lch(0% 0 0 / 0.125),\n 0 2px 5px lch(0% 0 0 / 0.125),\n 0 1px 1px lch(0% 0 0 / 0.125);\n --msr-shadow-floating: 0 0 0 0.4px lch(100% 0 0 / 0.05),\n 0 4px 12px lch(0% 0 0 / 0.12),\n 0 1px 3px lch(0% 0 0 / 0.10);\n --msr-shadow-select-menu: 0 0 0 0.4px lch(100% 0 0 / 0.14),\n 0 4px 12px lch(0% 0 0 / 0.22),\n 0 1px 3px lch(0% 0 0 / 0.18);\n color-scheme: dark;\n}\n@media (prefers-color-scheme: dark) {\n :where( [data-mesurer-root=\"true\"][data-theme=\"system\"], [data-mesurer-inspector-ui=\"true\"][data-theme=\"system\"] ) {\n --msr-accent: #0c8ce9;\n --msr-surface: #323232;\n --msr-surface-raised: #3a3a3a;\n --msr-surface-muted: #3a3a3a;\n --msr-content: #f5f5f5;\n --msr-color-white: #f5f5f5;\n --msr-color-black: #171717;\n --msr-color-ink-50: #3a3a3a;\n --msr-color-ink-100: #414141;\n --msr-color-ink-200: #4a4a4a;\n --msr-color-ink-300: #5a5a5a;\n --msr-color-ink-500: #a0a0a0;\n --msr-color-ink-700: #dedede;\n --msr-color-ink-900: #f5f5f5;\n --msr-danger-bg: #3f2020;\n --msr-danger-border: #7f3f46;\n --msr-danger-text: #f87171;\n --msr-danger-solid-bg: #c95058;\n --msr-danger-solid-hover: #b7424b;\n --msr-danger-solid-text: #f5f5f5;\n --color-red-700: #fca5a5;\n --msr-control-thumb: #f4f4f5;\n --msr-slider-track: rgba(245, 245, 245, 0.24);\n --msr-shadow-toolbar: 0 0 0.4px lch(100% 0 0 / 0.10),\n 0 3px 8px lch(0% 0 0 / 0.125),\n 0 2px 5px lch(0% 0 0 / 0.125),\n 0 1px 1px lch(0% 0 0 / 0.125);\n --msr-shadow-floating: 0 0 0 0.4px lch(100% 0 0 / 0.05),\n 0 4px 12px lch(0% 0 0 / 0.12),\n 0 1px 3px lch(0% 0 0 / 0.10);\n --msr-shadow-select-menu: 0 0 0 0.4px lch(100% 0 0 / 0.14),\n 0 4px 12px lch(0% 0 0 / 0.22),\n 0 1px 3px lch(0% 0 0 / 0.18);\n color-scheme: dark;\n }\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:bg-white\"], :where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:bg-[#fff]\"] {\n background-color: var(--msr-surface) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:text-black\"] {\n color: var(--msr-content) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:hover:bg-black/4\"]:hover, :where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:hover:bg-black/5\"]:hover {\n background-color: var(--msr-content) !important;\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in srgb, var(--msr-content) 6%, transparent) !important;\n }\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) .mesurer-toolbar-surface {\n background-color: var(--msr-surface) !important;\n box-shadow: var(--msr-shadow-toolbar) !important;\n color: var(--msr-content);\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) :is( .mesurer-menu-surface, .mesurer-color-picker, .mesurer-ti-card, [data-mesurer-text-inspector-info=\"true\"], [data-mesurer-annotation-panel=\"true\"], [data-mesurer-annotation-composer=\"true\"] ) {\n background-color: var(--msr-surface-raised) !important;\n color: var(--msr-content) !important;\n box-shadow: var(--msr-shadow-floating) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) .mesurer-switch-track[data-checked=\"false\"], :where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) .mesurer-control-shell {\n background-color: var(--msr-surface-muted) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) .mesurer-switch-track > span {\n background-color: var(--msr-control-thumb) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) :is(.mesurer-settings-select, .mesurer-settings-select-menu) {\n background-color: var(--msr-surface-raised) !important;\n border-color: var(--msr-color-ink-200) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [data-mesurer-rulers=\"true\"] {\n color: var(--msr-color-ink-500) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [data-slider-container=\"true\"] > div:first-child {\n background-color: var(--msr-slider-track) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:bg-[#0d99ff]\"] {\n background-color: var(--msr-accent) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:border-[#0d99ff]\"] {\n border-color: var(--msr-accent) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:hover:bg-[#0d99ff]\"]:hover, :where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:focus-visible:bg-[#0d99ff]\"]:focus-visible {\n background-color: var(--msr-accent) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [class~=\"msr:text-white\"] {\n color: var(--msr-color-white) !important;\n}\n:where( [data-mesurer-root=\"true\"][data-theme], [data-mesurer-inspector-ui=\"true\"][data-theme] ) [data-slider-thumb=\"true\"]:focus-visible {\n box-shadow: 0 0 0 1px var(--msr-accent) !important;\n @supports (color: color-mix(in lab, red, red)) {\n box-shadow: 0 0 0 1px color-mix(in srgb, var(--msr-accent) 25%, transparent) !important;\n }\n}\n:where([data-mesurer-root=\"true\"], [data-mesurer-inspector-ui=\"true\"]) {\n --msr-radius-control: 5px;\n}\n@layer utilities {\n .msr\\:rounded-control {\n border-radius: var(--msr-radius-control);\n }\n}\n.mesurer-thin-scrollbar {\n scrollbar-width: thin;\n scrollbar-color: var(--msr-color-ink-200) transparent;\n}\n.mesurer-thin-scrollbar::-webkit-scrollbar {\n width: 4px;\n height: 4px;\n}\n.mesurer-thin-scrollbar::-webkit-scrollbar-track {\n background: transparent;\n}\n.mesurer-thin-scrollbar::-webkit-scrollbar-thumb {\n background: var(--msr-color-ink-200);\n border-radius: var(--msr-radius-control);\n}\n.mesurer-thin-scrollbar:hover {\n scrollbar-color: var(--msr-color-ink-300) transparent;\n}\n.mesurer-thin-scrollbar:hover::-webkit-scrollbar-thumb {\n background: var(--msr-color-ink-300);\n}\n.mesurer-thin-scrollbar::-webkit-scrollbar-corner {\n background: transparent;\n}\n.mesurer-toolbar-mode-switch {\n position: relative;\n z-index: 1;\n isolation: isolate;\n border-radius: 5px;\n background: transparent;\n}\n.mesurer-toolbar-mode-switch-pill {\n position: absolute;\n top: 2px;\n left: 2px;\n z-index: 0;\n width: 28px;\n height: 28px;\n border-radius: 3px;\n background: var(--msr-color-ink-200, #e2e8f0);\n transform: translateX(0);\n}\n.mesurer-toolbar-mode-switch[data-value=\"edit\"] .mesurer-toolbar-mode-switch-pill {\n transform: translateX(30px);\n}\n.mesurer-toolbar-mode-switch > :not(.mesurer-toolbar-mode-switch-pill) {\n position: relative;\n z-index: 1;\n}\n.mesurer-toolbar-mode-button {\n display: flex;\n width: 28px;\n height: 28px;\n align-items: center;\n justify-content: center;\n border-radius: 3px;\n color: var(--msr-color-ink-700, #334155);\n outline: none;\n}\n.mesurer-toolbar-mode-button[aria-pressed=\"true\"] {\n color: var(--msr-color-ink-900, #18181b);\n}\n.mesurer-toolbar-mode-button[aria-pressed=\"false\"]:not(:disabled):hover {\n background: var(--msr-color-ink-200, #e2e8f0);\n @supports (color: color-mix(in lab, red, red)) {\n background: color-mix(in srgb, var(--msr-color-ink-200, #e2e8f0) 50%, transparent);\n }\n}\n.mesurer-toolbar-mode-button:focus-visible {\n outline: 1px solid var(--msr-color-ink-500, #64748b);\n outline-offset: 1px;\n}\n.mesurer-toolbar-mode-button:disabled {\n cursor: default;\n opacity: 0.35;\n}\n.mesurer-toolbar-mode-stage {\n --msr-select-mode-w: 0px;\n --msr-edit-mode-w: 0px;\n position: relative;\n flex: none;\n width: var(--msr-select-mode-w);\n overflow: visible;\n}\n.mesurer-toolbar-mode-stage[data-mode=\"edit\"] {\n width: var(--msr-edit-mode-w);\n}\n.mesurer-toolbar-mode-track {\n display: flex;\n width: max-content;\n align-items: stretch;\n transform: translateX(0);\n}\n.mesurer-toolbar-mode-stage[data-mode=\"edit\"] .mesurer-toolbar-mode-track {\n transform: translateX(calc(-1 * var(--msr-select-mode-w)));\n}\n.mesurer-toolbar-mode-slot {\n flex: none;\n width: var(--msr-select-mode-w);\n}\n.mesurer-toolbar-mode-slot[data-mode=\"edit\"] {\n width: var(--msr-edit-mode-w);\n}\n.mesurer-toolbar-mode-panel {\n display: flex;\n width: max-content;\n align-items: stretch;\n}\n.mesurer-toolbar-mode-slot[data-open=\"false\"] {\n visibility: hidden;\n pointer-events: none;\n}\n.mesurer-toolbar-mode-stage[data-mode-motion=\"true\"] {\n overflow: hidden;\n}\n.mesurer-toolbar-mode-stage[data-mode-motion=\"true\"] .mesurer-toolbar-mode-slot[data-open=\"false\"] {\n visibility: visible;\n}\n.mesurer-toolbar-mode-stage:has( .mesurer-toolbar-mode-slot[data-open=\"true\"] [role=\"menu\"], .mesurer-toolbar-mode-slot[data-open=\"true\"] [role=\"dialog\"] ) {\n overflow: visible;\n}\n.mesurer-toolbar-mode-stage[data-ready=\"true\"], .mesurer-toolbar-mode-stage[data-ready=\"true\"] .mesurer-toolbar-mode-track {\n transition-duration: 150ms;\n transition-timing-function: ease;\n}\n.mesurer-toolbar-mode-stage[data-ready=\"true\"] {\n transition-property: width;\n}\n.mesurer-toolbar-mode-stage[data-compact-motion=\"true\"] {\n transition-property: none;\n}\n.mesurer-toolbar-mode-stage[data-ready=\"true\"] .mesurer-toolbar-mode-track {\n transition-property: transform;\n}\n.mesurer-toolbar-mode-switch {\n --msr-toolbar-mode-motion: 150ms ease;\n}\n.mesurer-toolbar-mode-switch-pill {\n transition: transform var(--msr-toolbar-mode-motion);\n}\n@media (prefers-reduced-motion: reduce) {\n .mesurer-toolbar-mode-stage, .mesurer-toolbar-mode-track, .mesurer-toolbar-mode-switch-pill {\n transition: none !important;\n }\n}\n@property --tw-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-border-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-leading {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-font-weight {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ordinal {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-slashed-zero {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-figure {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-spacing {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-fraction {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-inset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-ring-inset {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-offset-width {\n syntax: \"<length>\";\n inherits: false;\n initial-value: 0px;\n}\n@property --tw-ring-offset-color {\n syntax: \"*\";\n inherits: false;\n initial-value: #fff;\n}\n@property --tw-ring-offset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-outline-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-duration {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ease {\n syntax: \"*\";\n inherits: false;\n}\n@layer properties {\n @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n *, ::before, ::after, ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-border-style: solid;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-ordinal: initial;\n --tw-slashed-zero: initial;\n --tw-numeric-figure: initial;\n --tw-numeric-spacing: initial;\n --tw-numeric-fraction: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-outline-style: solid;\n --tw-duration: initial;\n --tw-ease: initial;\n }\n }\n}\n", hp = 0, gp = "mesurer:tab-id", _p = "mesurer-settings", vp = "mesurer-state", yp = 80, bp = (e, t) => {
10294
10304
  try {
10295
10305
  let n = e.sessionStorage.getItem(`${t}:toolbar-position`);
10296
10306
  if (!n) return;
@@ -12159,7 +12169,7 @@ function Um(e, t) {
12159
12169
  c = !1, l = !1;
12160
12170
  return;
12161
12171
  }
12162
- if (n === "select") {
12172
+ if (n === "select" || n === "guides") {
12163
12173
  c = !1, l = !1;
12164
12174
  return;
12165
12175
  }
@@ -12171,7 +12181,7 @@ function Um(e, t) {
12171
12181
  }));
12172
12182
  }, d = () => {
12173
12183
  let e = t.currentToolMode?.();
12174
- s === "select" && e !== void 0 && e !== "select" && (l = !0), s = e, u();
12184
+ (s === "select" || s === "guides") && e !== void 0 && e !== "select" && e !== "guides" && (l = !0), s = e, u();
12175
12185
  }, f = () => {
12176
12186
  let t = e.state.get("mesurer.arrange.active") ?? !1;
12177
12187
  t && !o && (c = !0), o = t, u();
@@ -15735,7 +15745,7 @@ function rv(e) {
15735
15745
  xrayVisible: t?.current.xrayVisible ?? !1,
15736
15746
  rulersVisible: t?.current.rulersVisible ?? !1,
15737
15747
  pluginToolIds: r
15738
- }, e && t && (t.current.xrayVisible && e.deactivate("xray"), t.current.rulersVisible && e.deactivate("rulers"), t.current.colorPickerActive && e.deactivate("color-picker"), t.current.toolMode === "text-inspector" && e.deactivate("text-inspector"), t.current.toolMode === "guides" && e.deactivate("guides"));
15748
+ }, e && t && (t.current.xrayVisible && e.deactivate("xray"), t.current.colorPickerActive && e.deactivate("color-picker"), t.current.toolMode === "text-inspector" && e.deactivate("text-inspector"));
15739
15749
  for (let e of r) {
15740
15750
  let t = n.tools().find((t) => t.id === e);
15741
15751
  !t || !(t.active?.() ?? !1) || await n.command.execute(t.command, void 0, {
@@ -15934,7 +15944,7 @@ function rv(e) {
15934
15944
  let t = g?.current;
15935
15945
  return t ? e === "select" ? t.toolMode === "select" : e === "xray" ? t.xrayVisible : e === "color-picker" ? t.colorPickerActive : e === "rulers" ? t.rulersVisible : e === "text-inspector" ? t.toolMode === "text-inspector" : e === "guides" ? t.toolMode === "guides" : e === "settings" && t.settingsOpen : !1;
15936
15946
  }, Se = async (e) => {
15937
- if (D(e) || e !== "settings" && E() && (await F("select-mode-builtin"), e === "select" || xe(e))) return;
15947
+ if (D(e) || e !== "settings" && e !== "rulers" && e !== "guides" && E() && (await F("select-mode-builtin"), e === "select" || xe(e))) return;
15938
15948
  let t = w(e);
15939
15949
  if (t) {
15940
15950
  await L(t, {
@@ -15943,7 +15953,13 @@ function rv(e) {
15943
15953
  });
15944
15954
  return;
15945
15955
  }
15946
- T(e) && await ee().run(e);
15956
+ if (!T(e)) return;
15957
+ let n = ee();
15958
+ if (e === "guides" && E() && xe("guides")) {
15959
+ await n.run("select");
15960
+ return;
15961
+ }
15962
+ await n.run(e);
15947
15963
  };
15948
15964
  (async () => {
15949
15965
  for (let e of s) await me(e);
@@ -17624,7 +17640,7 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
17624
17640
  shortcut: "L",
17625
17641
  command: Zv,
17626
17642
  order: 38,
17627
- toolbarMode: "select",
17643
+ toolbarMode: "always",
17628
17644
  compactPinned: !0,
17629
17645
  icon: vy,
17630
17646
  active: u
@@ -18618,6 +18634,8 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
18618
18634
  position: "fixed",
18619
18635
  display: "none",
18620
18636
  background: "transparent",
18637
+ outline: "2px solid var(--msr-accent, #0d99ff)",
18638
+ "outline-offset": "-1px",
18621
18639
  "box-shadow": "0 0 0 100vmax rgb(0 0 0 / 40%)",
18622
18640
  "pointer-events": "none"
18623
18641
  }), h.append(_);
@@ -19423,14 +19441,14 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
19423
19441
  fe = !0, ++le, U.clear(), h.removeEventListener("pointerdown", He), h.removeEventListener("pointermove", Ue), h.removeEventListener("pointerup", We), h.removeEventListener("pointercancel", Ge), i.removeEventListener("keydown", Ke, !0), K && i.clearTimeout(K), Pe.dispose(), Ee(), ve(), Ae(!0), s.dispose(), a.dispose();
19424
19442
  });
19425
19443
  }
19426
- }), Vb = 144, Hb = 96, Ub = 8, Wb = 4, Gb = 1800, Kb = (e, t) => {
19444
+ }), Vb = 144, Hb = 96, Ub = 8, Wb = 4, Gb = 1800, Kb = 200, qb = (e, t) => {
19427
19445
  for (let [n, r] of Object.entries(t)) e.style.setProperty(n, r);
19428
- }, qb = (e, t) => ({
19446
+ }, Jb = (e, t) => ({
19429
19447
  left: Math.min(Math.max(Ub, e.left), Math.max(Ub, t.innerWidth - Vb - Ub)),
19430
19448
  top: Math.min(Math.max(Ub, e.top), Math.max(Ub, t.innerHeight - Hb - Ub))
19431
- }), Jb = (e, t) => {
19449
+ }), Yb = (e, t) => {
19432
19450
  let n = e.createElement("button");
19433
- return n.type = "button", n.textContent = t, Kb(n, {
19451
+ return n.type = "button", n.textContent = t, qb(n, {
19434
19452
  height: "32px",
19435
19453
  padding: "0 12px",
19436
19454
  border: "1px solid rgb(255 255 255 / 18%)",
@@ -19442,11 +19460,11 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
19442
19460
  "font-weight": "500",
19443
19461
  cursor: "pointer"
19444
19462
  }), n;
19445
- }, Yb = ({ 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", Xb = (e) => e !== null && (e.nodeType === 1 || e.nodeType === 11), Zb = ({ ownerDocument: e, ownerWindow: t, root: n, previewDurationMs: r }) => {
19463
+ }, Xb = ({ 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", Zb = (e) => e !== null && (e.nodeType === 1 || e.nodeType === 11), Qb = ({ ownerDocument: e, ownerWindow: t, root: n, previewDurationMs: r }) => {
19446
19464
  let i = n.closest("[data-mesurer-root='true']")?.parentNode ?? n.parentNode;
19447
- if (!Xb(i)) throw Error("Screenshot preview requires a mounted Mesurer host.");
19465
+ if (!Zb(i)) throw Error("Screenshot preview requires a mounted Mesurer host.");
19448
19466
  let a = e.createElement("div");
19449
- a.dataset.mesurerInspectorUi = "true", a.dataset.mesurerScreenshotInteractive = "true", Kb(a, {
19467
+ a.dataset.mesurerInspectorUi = "true", a.dataset.mesurerScreenshotInteractive = "true", qb(a, {
19450
19468
  position: "fixed",
19451
19469
  left: "0",
19452
19470
  top: "0",
@@ -19458,7 +19476,7 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
19458
19476
  "font-family": "ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif"
19459
19477
  }), i.append(a);
19460
19478
  let o = e.createElement("div");
19461
- o.dataset.mesurerScreenshotPreview = "true", o.setAttribute("role", "button"), o.setAttribute("aria-label", "Open captured screenshot"), o.tabIndex = 0, Kb(o, {
19479
+ o.dataset.mesurerScreenshotPreview = "true", o.setAttribute("role", "button"), o.setAttribute("aria-label", "Open captured screenshot"), o.tabIndex = 0, qb(o, {
19462
19480
  position: "fixed",
19463
19481
  display: "none",
19464
19482
  "z-index": "96",
@@ -19476,7 +19494,7 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
19476
19494
  "touch-action": "none"
19477
19495
  });
19478
19496
  let s = e.createElement("img");
19479
- s.dataset.mesurerScreenshotPreviewImage = "true", s.alt = "Captured screenshot", s.draggable = !1, s.title = "Click to open · Right-click for browser image actions", Kb(s, {
19497
+ s.dataset.mesurerScreenshotPreviewImage = "true", s.alt = "Captured screenshot", s.draggable = !1, s.title = "Click to open · Right-click for browser image actions", qb(s, {
19480
19498
  display: "block",
19481
19499
  width: "100%",
19482
19500
  height: "100%",
@@ -19484,7 +19502,7 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
19484
19502
  "background-color": "white"
19485
19503
  }), o.append(s);
19486
19504
  let c = e.createElement("button");
19487
- c.dataset.mesurerScreenshotPreviewDismiss = "true", c.type = "button", c.setAttribute("aria-label", "Dismiss screenshot preview"), c.title = "Dismiss", Kb(c, {
19505
+ c.dataset.mesurerScreenshotPreviewDismiss = "true", c.type = "button", c.setAttribute("aria-label", "Dismiss screenshot preview"), c.title = "Dismiss", qb(c, {
19488
19506
  position: "absolute",
19489
19507
  top: "8px",
19490
19508
  right: "8px",
@@ -19502,15 +19520,16 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
19502
19520
  "font-family": "inherit",
19503
19521
  "font-size": "14px",
19504
19522
  "line-height": "1",
19505
- "z-index": "1",
19506
- cursor: "pointer"
19523
+ "z-index": "2",
19524
+ cursor: "pointer",
19525
+ "touch-action": "none"
19507
19526
  });
19508
19527
  let l = e.createElementNS("http://www.w3.org/2000/svg", "svg");
19509
19528
  l.setAttribute("viewBox", "0 0 16 16"), l.setAttribute("width", "12"), l.setAttribute("height", "12"), l.setAttribute("fill", "none"), l.setAttribute("aria-hidden", "true");
19510
19529
  let u = e.createElementNS("http://www.w3.org/2000/svg", "path");
19511
19530
  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);
19512
19531
  let d = e.createElement("div");
19513
- d.dataset.mesurerScreenshotViewer = "true", d.setAttribute("role", "dialog"), d.setAttribute("aria-modal", "true"), d.setAttribute("aria-label", "Screenshot viewer"), Kb(d, {
19532
+ d.dataset.mesurerScreenshotViewer = "true", d.setAttribute("role", "dialog"), d.setAttribute("aria-modal", "true"), d.setAttribute("aria-label", "Screenshot viewer"), qb(d, {
19514
19533
  position: "fixed",
19515
19534
  inset: "0",
19516
19535
  display: "none",
@@ -19524,7 +19543,7 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
19524
19543
  "pointer-events": "auto"
19525
19544
  });
19526
19545
  let f = e.createElement("img");
19527
- f.dataset.mesurerScreenshotViewerImage = "true", f.alt = "Captured screenshot", Kb(f, {
19546
+ f.dataset.mesurerScreenshotViewerImage = "true", f.alt = "Captured screenshot", qb(f, {
19528
19547
  display: "block",
19529
19548
  "max-width": "calc(100vw - 96px)",
19530
19549
  "max-height": "calc(100vh - 112px)",
@@ -19535,7 +19554,7 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
19535
19554
  "box-shadow": "0 8px 30px rgb(0 0 0 / 28%)"
19536
19555
  }), d.append(f);
19537
19556
  let p = e.createElement("div");
19538
- p.dataset.mesurerScreenshotViewerControls = "true", Kb(p, {
19557
+ p.dataset.mesurerScreenshotViewerControls = "true", qb(p, {
19539
19558
  position: "fixed",
19540
19559
  top: "16px",
19541
19560
  right: "16px",
@@ -19543,14 +19562,14 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
19543
19562
  gap: "8px",
19544
19563
  "pointer-events": "auto"
19545
19564
  });
19546
- let m = Jb(e, "Copy");
19565
+ let m = Yb(e, "Copy");
19547
19566
  m.dataset.mesurerScreenshotViewerCopy = "true", m.setAttribute("aria-label", "Copy screenshot");
19548
- let h = Jb(e, "Save");
19567
+ let h = Yb(e, "Save");
19549
19568
  h.dataset.mesurerScreenshotViewerSave = "true", h.setAttribute("aria-label", "Save screenshot");
19550
- let g = Jb(e, "Close");
19569
+ let g = Yb(e, "Close");
19551
19570
  g.dataset.mesurerScreenshotViewerClose = "true", g.setAttribute("aria-label", "Close screenshot viewer"), p.append(m, h, g), d.append(p), a.append(d);
19552
19571
  let _ = e.createElement("div");
19553
- _.dataset.mesurerScreenshotToast = "true", _.setAttribute("role", "status"), Kb(_, {
19572
+ _.dataset.mesurerScreenshotToast = "true", _.setAttribute("role", "status"), qb(_, {
19554
19573
  position: "fixed",
19555
19574
  left: "50%",
19556
19575
  bottom: "20px",
@@ -19565,45 +19584,64 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
19565
19584
  "font-weight": "500",
19566
19585
  "pointer-events": "none"
19567
19586
  }), a.append(_);
19568
- let v = null, y = null, b = null, x = null, S = 0, C = 0, w = !1, T = () => {
19587
+ let v = null, y = null, b = null, x = null, S = 0, C = 0, w = null, T = !1, E = () => {
19569
19588
  S && t.clearTimeout(S), S = 0;
19570
- }, E = () => {
19589
+ }, D = () => {
19571
19590
  C && t.clearTimeout(C), C = 0;
19572
- }, D = (e, n = !1) => {
19573
- E(), _.textContent = e, _.style.backgroundColor = n ? "#b42318" : "rgb(28 28 30 / 90%)", _.style.display = "block", C = t.setTimeout(() => {
19591
+ }, O = (e, n = !1) => {
19592
+ D(), _.textContent = e, _.style.backgroundColor = n ? "#b42318" : "rgb(28 28 30 / 90%)", _.style.display = "block", C = t.setTimeout(() => {
19574
19593
  C = 0, _.style.display = "none";
19575
19594
  }, Gb);
19576
- }, O = () => {
19577
- d.style.display = "none";
19578
19595
  }, k = () => {
19579
- y && globalThis.URL.revokeObjectURL(y), y = null, v = null, s.removeAttribute("src"), f.removeAttribute("src");
19596
+ d.style.display = "none";
19580
19597
  }, A = () => {
19581
- T(), O(), o.style.display = "none", k();
19582
- }, j = () => qb({
19598
+ y && globalThis.URL.revokeObjectURL(y), y = null, v = null, s.removeAttribute("src"), f.removeAttribute("src");
19599
+ }, j = () => {
19600
+ E(), k(), w &&= (w.cancel(), null), o.style.display = "none", o.style.opacity = "1", o.style.transform = "none", o.style.removeProperty("will-change"), o.style.pointerEvents = "auto", A();
19601
+ }, M = () => {
19602
+ if (!v || o.style.display === "none" || w) return;
19603
+ E(), k();
19604
+ let e = o.getBoundingClientRect(), n = Math.max(152, t.innerWidth - e.left + Ub);
19605
+ o.style.pointerEvents = "none", o.style.willChange = "transform, opacity";
19606
+ let r = o.animate([{
19607
+ transform: "translateX(0) scale(1)",
19608
+ opacity: 1
19609
+ }, {
19610
+ transform: `translateX(${n}px) scale(0.92)`,
19611
+ opacity: 0
19612
+ }], {
19613
+ duration: Kb,
19614
+ easing: "ease",
19615
+ fill: "forwards"
19616
+ });
19617
+ w = r, r.finished.catch(() => void 0).then(() => {
19618
+ w === r && (r.cancel(), w = null, j());
19619
+ });
19620
+ }, N = () => Jb({
19583
19621
  left: t.innerWidth - Vb - Ub,
19584
19622
  top: t.innerHeight - Hb - Ub
19585
- }, t), M = (e) => {
19586
- let n = qb(e, t);
19623
+ }, t), P = (e) => {
19624
+ let n = Jb(e, t);
19587
19625
  b = n, o.style.left = `${n.left}px`, o.style.top = `${n.top}px`;
19588
- }, N = () => {
19589
- !v || !y || (T(), d.style.display = "flex", g.focus());
19590
- }, P = async () => {
19626
+ }, F = () => {
19627
+ !v || !y || (E(), d.style.display = "flex", g.focus());
19628
+ }, I = async () => {
19591
19629
  let e = v;
19592
19630
  if (e) try {
19593
- await Ya(Promise.resolve(e), t), D("Copied screenshot");
19631
+ await Ya(Promise.resolve(e), t), O("Copied screenshot");
19594
19632
  } catch {
19595
- D("Could not copy screenshot", !0);
19633
+ O("Could not copy screenshot", !0);
19596
19634
  }
19597
- }, F = () => {
19635
+ }, L = () => {
19598
19636
  let n = v;
19599
19637
  if (n) try {
19600
- Za(n, Xa(), e, t), D("Saved screenshot");
19638
+ Za(n, Xa(), e, t), O("Saved screenshot");
19601
19639
  } catch {
19602
- D("Could not save screenshot", !0);
19640
+ O("Could not save screenshot", !0);
19603
19641
  }
19604
- }, I = (e, t, n) => {
19642
+ }, R = (e, t, n) => {
19605
19643
  if (!v) return !1;
19606
- T();
19644
+ E();
19607
19645
  let r = o.getBoundingClientRect();
19608
19646
  return x = {
19609
19647
  pointerId: n,
@@ -19613,73 +19651,73 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
19613
19651
  top: r.top,
19614
19652
  moved: !1
19615
19653
  }, o.style.cursor = "grabbing", !0;
19616
- }, L = (e, t) => {
19654
+ }, z = (e, t) => {
19617
19655
  let n = x;
19618
19656
  if (!n) return;
19619
19657
  let r = e - n.startX, i = t - n.startY;
19620
- !n.moved && Math.hypot(r, i) >= Wb && (n.moved = !0), n.moved && M({
19658
+ !n.moved && Math.hypot(r, i) >= Wb && (n.moved = !0), n.moved && P({
19621
19659
  left: n.left + r,
19622
19660
  top: n.top + i
19623
19661
  });
19624
- }, R = () => {
19662
+ }, B = () => {
19625
19663
  let e = x;
19626
- e && (x = null, o.style.cursor = "grab", e.moved || N());
19627
- }, z = () => {
19664
+ e && (x = null, o.style.cursor = "grab", e.moved || F());
19665
+ }, V = () => {
19628
19666
  x && (x = null, o.style.cursor = "grab");
19629
- }, B = (e) => {
19630
- e.button !== 0 || !I(e.clientX, e.clientY, null) || e.preventDefault();
19631
- }, V = (e) => {
19632
- x?.pointerId === null && L(e.clientX, e.clientY);
19633
19667
  }, H = (e) => {
19634
- e.button === 0 && x?.pointerId === null && R();
19668
+ e.button !== 0 || !R(e.clientX, e.clientY, null) || e.preventDefault();
19635
19669
  }, U = (e) => {
19636
- e.pointerType !== "mouse" && e.button === 0 && I(e.clientX, e.clientY, e.pointerId) && (o.setPointerCapture?.(e.pointerId), e.preventDefault());
19670
+ x?.pointerId === null && z(e.clientX, e.clientY);
19637
19671
  }, W = (e) => {
19638
- let t = x?.pointerId;
19639
- t != null && t === e.pointerId && L(e.clientX, e.clientY);
19672
+ e.button === 0 && x?.pointerId === null && B();
19640
19673
  }, ee = (e) => {
19641
- let t = x?.pointerId;
19642
- t != null && t === e.pointerId && (o.hasPointerCapture?.(e.pointerId) && o.releasePointerCapture(e.pointerId), R());
19674
+ e.pointerType !== "mouse" && e.button === 0 && R(e.clientX, e.clientY, e.pointerId) && (o.setPointerCapture?.(e.pointerId), e.preventDefault());
19643
19675
  }, te = (e) => {
19644
19676
  let t = x?.pointerId;
19645
- t != null && t === e.pointerId && (o.hasPointerCapture?.(e.pointerId) && o.releasePointerCapture(e.pointerId), z());
19677
+ t != null && t === e.pointerId && z(e.clientX, e.clientY);
19646
19678
  }, G = (e) => {
19647
- (e.key === "Enter" || e.key === " ") && (e.preventDefault(), N());
19679
+ let t = x?.pointerId;
19680
+ t != null && t === e.pointerId && (o.hasPointerCapture?.(e.pointerId) && o.releasePointerCapture(e.pointerId), B());
19648
19681
  }, ne = (e) => {
19649
- e.target !== s && e.preventDefault();
19682
+ let t = x?.pointerId;
19683
+ t != null && t === e.pointerId && (o.hasPointerCapture?.(e.pointerId) && o.releasePointerCapture(e.pointerId), V());
19650
19684
  }, re = (e) => {
19651
- e.target === d && O();
19685
+ (e.key === "Enter" || e.key === " ") && (e.preventDefault(), F());
19652
19686
  }, ie = (e) => {
19653
- e.key === "Escape" && d.style.display !== "none" && (e.preventDefault(), e.stopImmediatePropagation(), O());
19687
+ e.target !== s && e.preventDefault();
19688
+ }, ae = (e) => {
19689
+ e.target === d && k();
19690
+ }, oe = (e) => {
19691
+ e.key === "Escape" && d.style.display !== "none" && (e.preventDefault(), e.stopImmediatePropagation(), k());
19654
19692
  };
19655
19693
  return c.addEventListener("pointerdown", (e) => e.stopPropagation()), c.addEventListener("mousedown", (e) => e.stopPropagation()), c.addEventListener("click", (e) => {
19656
- e.stopPropagation(), A();
19657
- }), o.addEventListener("mousedown", B), o.addEventListener("pointerdown", U), o.addEventListener("keydown", G), o.addEventListener("contextmenu", ne), d.addEventListener("click", re), m.addEventListener("click", () => {
19658
- P();
19659
- }), h.addEventListener("click", F), g.addEventListener("click", O), t.addEventListener("mousemove", V, !0), t.addEventListener("mouseup", H, !0), t.addEventListener("pointermove", W, !0), t.addEventListener("pointerup", ee, !0), t.addEventListener("pointercancel", te, !0), t.addEventListener("keydown", ie, !0), {
19694
+ e.stopPropagation(), M();
19695
+ }), o.addEventListener("mousedown", H), o.addEventListener("pointerdown", ee), o.addEventListener("keydown", re), o.addEventListener("contextmenu", ie), d.addEventListener("click", ae), m.addEventListener("click", () => {
19696
+ I();
19697
+ }), h.addEventListener("click", L), g.addEventListener("click", k), t.addEventListener("mousemove", U, !0), t.addEventListener("mouseup", W, !0), t.addEventListener("pointermove", te, !0), t.addEventListener("pointerup", G, !0), t.addEventListener("pointercancel", ne, !0), t.addEventListener("keydown", oe, !0), {
19660
19698
  show(e, n) {
19661
- if (w) return;
19662
- T(), O(), k(), v = e;
19699
+ if (T) return;
19700
+ E(), k(), w &&= (w.cancel(), null), o.style.opacity = "1", o.style.transform = "none", o.style.willChange = "transform, opacity", o.style.pointerEvents = "auto", A(), v = e;
19663
19701
  let i = globalThis.URL.createObjectURL(e);
19664
- y = i, s.src = i, f.src = i, o.style.display = "block", M(b ?? j()), D(Yb(n)), r > 0 && (S = t.setTimeout(A, r));
19702
+ y = i, s.src = i, f.src = i, o.style.display = "block", P(b ?? N()), O(Xb(n)), r > 0 && (S = t.setTimeout(j, r));
19665
19703
  },
19666
- dismiss: A,
19704
+ dismiss: j,
19667
19705
  dispose() {
19668
- w || (w = !0, T(), E(), A(), t.removeEventListener("mousemove", V, !0), t.removeEventListener("mouseup", H, !0), t.removeEventListener("pointermove", W, !0), t.removeEventListener("pointerup", ee, !0), t.removeEventListener("pointercancel", te, !0), t.removeEventListener("keydown", ie, !0), o.removeEventListener("mousedown", B), o.removeEventListener("pointerdown", U), o.removeEventListener("keydown", G), o.removeEventListener("contextmenu", ne), d.removeEventListener("click", re), a.remove());
19706
+ T || (T = !0, E(), D(), j(), t.removeEventListener("mousemove", U, !0), t.removeEventListener("mouseup", W, !0), t.removeEventListener("pointermove", te, !0), t.removeEventListener("pointerup", G, !0), t.removeEventListener("pointercancel", ne, !0), t.removeEventListener("keydown", oe, !0), o.removeEventListener("mousedown", H), o.removeEventListener("pointerdown", ee), o.removeEventListener("keydown", re), o.removeEventListener("contextmenu", ie), d.removeEventListener("click", ae), a.remove());
19669
19707
  }
19670
19708
  };
19671
- }, Qb = "mesurer.screenshot", $b = "screenshot", ex = "mesurer.screenshot.settings", tx = "mesurer.screenshot.active", nx = "runtime:solid", rx = "screenshot.toggle", ix = 2500, ax = 0, ox = [
19709
+ }, $b = "mesurer.screenshot", ex = "screenshot", tx = "mesurer.screenshot.settings", nx = "mesurer.screenshot.active", rx = "runtime:solid", ix = "screenshot.toggle", ax = 2500, ox = 0, sx = [
19672
19710
  "[data-mesurer-measurement='true']",
19673
19711
  "[data-mesurer-selected-measurement='true']",
19674
19712
  "[data-mesurer-selection-spacing-target='true']",
19675
19713
  "[data-mesurer-guide='true']",
19676
19714
  "[data-mesurer-distance='true']"
19677
- ].join(","), sx = `${ox},[data-mesurer-rulers='true']`, cx = {
19715
+ ].join(","), cx = `${sx},[data-mesurer-rulers='true']`, lx = {
19678
19716
  viewBox: "0 0 256 256",
19679
19717
  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"]
19680
- }, lx = (e, t) => {
19681
- for (let [n, r] of Object.entries(t)) e.style.setProperty(n, r);
19682
19718
  }, ux = (e, t) => {
19719
+ for (let [n, r] of Object.entries(t)) e.style.setProperty(n, r);
19720
+ }, dx = (e, t) => {
19683
19721
  for (let n of [
19684
19722
  "left",
19685
19723
  "top",
@@ -19691,63 +19729,63 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
19691
19729
  let r = t[n];
19692
19730
  r === void 0 ? e.style.removeProperty(n) : e.style.setProperty(n, `${r}px`);
19693
19731
  }
19694
- }, dx = (e) => {
19695
- let t = e(ex);
19732
+ }, fx = (e) => {
19733
+ let t = e(tx);
19696
19734
  return {
19697
19735
  toolEnabled: t?.toolEnabled ?? !0,
19698
19736
  copy: t?.copy ?? !0,
19699
19737
  download: t?.download ?? !1,
19700
19738
  includeMeasurements: t?.includeMeasurements ?? !1
19701
19739
  };
19702
- }, fx = (e) => ({
19740
+ }, px = (e) => ({
19703
19741
  value: e.style.getPropertyValue("display"),
19704
19742
  priority: e.style.getPropertyPriority("display")
19705
- }), px = (e, t) => {
19743
+ }), mx = (e, t) => {
19706
19744
  t.value || t.priority ? e.style.setProperty("display", t.value, t.priority) : e.style.removeProperty("display");
19707
- }, mx = (e, t) => {
19745
+ }, hx = (e, t) => {
19708
19746
  let n = e;
19709
19747
  for (; n.parentElement && n.parentElement !== t;) n = n.parentElement;
19710
19748
  return n.parentElement === t ? n : null;
19711
- }, hx = (e) => {
19749
+ }, gx = (e) => {
19712
19750
  let t = e.querySelector("[data-mesurer-root='true']");
19713
19751
  if (!t) return () => void 0;
19714
19752
  let n = /* @__PURE__ */ new Set();
19715
19753
  for (let e of t.querySelectorAll("[data-mesurer-rulers='true']")) {
19716
- let r = mx(e, t);
19754
+ let r = hx(e, t);
19717
19755
  r && n.add(r);
19718
19756
  }
19719
- for (let e of t.querySelectorAll(ox)) {
19720
- let r = mx(e, t);
19757
+ for (let e of t.querySelectorAll(sx)) {
19758
+ let r = hx(e, t);
19721
19759
  r && n.add(r);
19722
19760
  }
19723
19761
  let r = [];
19724
19762
  for (let e of n) e.dataset.mesurerInspectorUi !== "true" && (r.push({
19725
19763
  element: e,
19726
- display: fx(e)
19764
+ display: px(e)
19727
19765
  }), e.style.setProperty("display", "none", "important"));
19728
19766
  return () => {
19729
- for (let e of r) px(e.element, e.display);
19767
+ for (let e of r) mx(e.element, e.display);
19730
19768
  };
19731
- }, gx = (e) => Array.from(e.querySelectorAll(sx)).filter((e) => e.dataset.mesurerInspectorUi === "true").map((e) => ({
19769
+ }, _x = (e) => Array.from(e.querySelectorAll(cx)).filter((e) => e.dataset.mesurerInspectorUi === "true").map((e) => ({
19732
19770
  element: e,
19733
- display: fx(e)
19734
- })), _x = (e) => {
19735
- for (let t of e) t.element.isConnected && px(t.element, t.display);
19736
- }, vx = (e = {}) => Ta({
19737
- id: Qb,
19771
+ display: px(e)
19772
+ })), vx = (e) => {
19773
+ for (let t of e) t.element.isConnected && mx(t.element, t.display);
19774
+ }, yx = (e = {}) => Ta({
19775
+ id: $b,
19738
19776
  version: "0.1.0",
19739
- requires: [nx],
19777
+ requires: [rx],
19740
19778
  provides: [
19741
19779
  "tool:screenshot",
19742
19780
  "capture:screenshot",
19743
19781
  "settings:screenshot"
19744
19782
  ],
19745
19783
  setup(t) {
19746
- let n = t.service.get(nx);
19784
+ let n = t.service.get(rx);
19747
19785
  if (!n) throw Error("Screenshot plugin requires the Solid renderer runtime.");
19748
- let { ownerDocument: r, ownerWindow: i } = n, a = n.createWorkspaceRuntime(), o = n.createInspectorMount(), s = e.capture ?? e.captureVisibleTab, c = s ?? _o, l = e.previewDurationMs ?? ax;
19786
+ let { ownerDocument: r, ownerWindow: i } = n, a = n.createWorkspaceRuntime(), o = n.createInspectorMount(), s = e.capture ?? e.captureVisibleTab, c = s ?? _o, l = e.previewDurationMs ?? ox;
19749
19787
  t.state.register({
19750
- id: ex,
19788
+ id: tx,
19751
19789
  initial: {
19752
19790
  toolEnabled: e.toolEnabled ?? !0,
19753
19791
  copy: e.copy ?? !0,
@@ -19756,11 +19794,11 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
19756
19794
  },
19757
19795
  persist: !0
19758
19796
  }), t.state.register({
19759
- id: tx,
19797
+ id: nx,
19760
19798
  initial: !1
19761
19799
  });
19762
19800
  let u = o.element;
19763
- u.dataset.mesurerScreenshot = "true", lx(u, {
19801
+ u.dataset.mesurerScreenshot = "true", ux(u, {
19764
19802
  position: "fixed",
19765
19803
  inset: "0",
19766
19804
  "z-index": "85",
@@ -19768,7 +19806,7 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
19768
19806
  "font-family": "ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif"
19769
19807
  });
19770
19808
  let d = r.createElement("div");
19771
- d.dataset.mesurerScreenshotSelect = "true", d.setAttribute("role", "application"), d.setAttribute("aria-label", "Screenshot selection"), lx(d, {
19809
+ d.dataset.mesurerScreenshotSelect = "true", d.setAttribute("role", "application"), d.setAttribute("aria-label", "Screenshot selection"), ux(d, {
19772
19810
  position: "fixed",
19773
19811
  inset: "0",
19774
19812
  display: "none",
@@ -19780,13 +19818,13 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
19780
19818
  }), u.append(d);
19781
19819
  let f = Array.from({ length: 4 }, () => {
19782
19820
  let e = r.createElement("div");
19783
- return lx(e, {
19821
+ return ux(e, {
19784
19822
  position: "fixed",
19785
19823
  "background-color": "rgb(0 0 0 / 40%)",
19786
19824
  "pointer-events": "none"
19787
19825
  }), d.append(e), e;
19788
19826
  }), p = r.createElement("div");
19789
- lx(p, {
19827
+ ux(p, {
19790
19828
  position: "fixed",
19791
19829
  display: "none",
19792
19830
  border: "1px solid #0d99ff",
@@ -19794,7 +19832,7 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
19794
19832
  "pointer-events": "none"
19795
19833
  }), d.append(p);
19796
19834
  let m = r.createElement("div");
19797
- lx(m, {
19835
+ ux(m, {
19798
19836
  position: "fixed",
19799
19837
  display: "none",
19800
19838
  "z-index": "86",
@@ -19808,7 +19846,7 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
19808
19846
  "pointer-events": "none"
19809
19847
  }), d.append(m);
19810
19848
  let h = r.createElement("div");
19811
- h.textContent = "Drag to select · Esc to cancel", lx(h, {
19849
+ h.textContent = "Drag to select · Esc to cancel", ux(h, {
19812
19850
  position: "fixed",
19813
19851
  left: "50%",
19814
19852
  bottom: "16px",
@@ -19821,7 +19859,7 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
19821
19859
  "pointer-events": "none"
19822
19860
  }), d.append(h);
19823
19861
  let g = r.createElement("div");
19824
- g.dataset.mesurerScreenshotError = "true", g.setAttribute("role", "status"), g.textContent = "Could not save screenshot", lx(g, {
19862
+ g.dataset.mesurerScreenshotError = "true", g.setAttribute("role", "status"), g.textContent = "Could not save screenshot", ux(g, {
19825
19863
  position: "fixed",
19826
19864
  display: "none",
19827
19865
  "z-index": "97",
@@ -19832,8 +19870,8 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
19832
19870
  "font-size": "11px",
19833
19871
  "pointer-events": "none"
19834
19872
  }), u.append(g);
19835
- let _ = null, v = null, y = 0, b = 0, x = !1, S = !1, C = !1, w = () => t.state.get("mesurer.screenshot.active") ?? !1, T = () => dx(t.state.get), E = (e) => {
19836
- t.state.update(ex, (t) => {
19873
+ let _ = null, v = null, y = 0, b = 0, x = !1, S = !1, C = !1, w = () => t.state.get("mesurer.screenshot.active") ?? !1, T = () => fx(t.state.get), E = (e) => {
19874
+ t.state.update(tx, (t) => {
19837
19875
  let n = { ...t };
19838
19876
  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;
19839
19877
  });
@@ -19856,13 +19894,13 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
19856
19894
  }, A = (e) => {
19857
19895
  let t = i.innerWidth, n = i.innerHeight;
19858
19896
  if (!e || e.width <= 0 || e.height <= 0) {
19859
- ux(f[0], {
19897
+ dx(f[0], {
19860
19898
  left: 0,
19861
19899
  top: 0,
19862
19900
  width: t,
19863
19901
  height: n
19864
19902
  });
19865
- for (let e of f.slice(1)) ux(e, {
19903
+ for (let e of f.slice(1)) dx(e, {
19866
19904
  left: 0,
19867
19905
  top: 0,
19868
19906
  width: 0,
@@ -19871,31 +19909,31 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
19871
19909
  p.style.display = "none", m.style.display = "none";
19872
19910
  return;
19873
19911
  }
19874
- ux(f[0], {
19912
+ dx(f[0], {
19875
19913
  left: 0,
19876
19914
  top: 0,
19877
19915
  width: t,
19878
19916
  height: e.top
19879
- }), ux(f[1], {
19917
+ }), dx(f[1], {
19880
19918
  left: 0,
19881
19919
  top: e.top,
19882
19920
  width: e.left,
19883
19921
  height: e.height
19884
- }), ux(f[2], {
19922
+ }), dx(f[2], {
19885
19923
  left: e.left + e.width,
19886
19924
  top: e.top,
19887
19925
  width: Math.max(0, t - e.left - e.width),
19888
19926
  height: e.height
19889
- }), ux(f[3], {
19927
+ }), dx(f[3], {
19890
19928
  left: 0,
19891
19929
  top: e.top + e.height,
19892
19930
  width: t,
19893
19931
  height: Math.max(0, n - e.top - e.height)
19894
- }), p.style.display = "block", ux(p, e), m.style.display = "block", m.textContent = `${Math.round(e.width)} × ${Math.round(e.height)}`, ux(m, {
19932
+ }), p.style.display = "block", dx(p, e), m.style.display = "block", m.textContent = `${Math.round(e.width)} × ${Math.round(e.height)}`, dx(m, {
19895
19933
  left: e.left + e.width / 2,
19896
19934
  top: Math.min(n - 22, e.top + e.height + 6)
19897
19935
  });
19898
- }, j = () => n.portalTarget.querySelector("[data-mesurer-tool-id='screenshot']")?.getBoundingClientRect() ?? null, M = Zb({
19936
+ }, j = () => n.portalTarget.querySelector("[data-mesurer-tool-id='screenshot']")?.getBoundingClientRect() ?? null, M = Qb({
19899
19937
  ownerDocument: r,
19900
19938
  ownerWindow: i,
19901
19939
  root: u,
@@ -19906,7 +19944,7 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
19906
19944
  }, P = () => {
19907
19945
  y && i.clearTimeout(y), g.style.display = "block", N(g), y = i.setTimeout(() => {
19908
19946
  y = 0, g.style.display = "none";
19909
- }, ix);
19947
+ }, ax);
19910
19948
  }, F = () => {
19911
19949
  _ = null, A(null), d.style.visibility = "", d.style.display = "none", u.style.pointerEvents = "none", D(!1), k();
19912
19950
  }, I = () => {
@@ -19915,8 +19953,8 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
19915
19953
  if (x) throw Error("A screenshot capture is already running.");
19916
19954
  if (e.width < 4 || e.height < 4) throw Error("Screenshot selection must be at least 4px by 4px.");
19917
19955
  x = !0;
19918
- let o = ++b, s = T(), l = s.includeMeasurements ? gx(r) : [], u = s.includeMeasurements ? () => void 0 : hx(n.portalTarget);
19919
- a.prepareCapture(), s.includeMeasurements && _x(l);
19956
+ let o = ++b, s = T(), l = s.includeMeasurements ? _x(r) : [], u = s.includeMeasurements ? () => void 0 : gx(n.portalTarget);
19957
+ a.prepareCapture(), s.includeMeasurements && vx(l);
19920
19958
  try {
19921
19959
  d.style.visibility = "hidden", await Qa(i);
19922
19960
  let n = await Ja(await c({
@@ -19933,7 +19971,7 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
19933
19971
  Za(n, Xa(), r, i), l = !0;
19934
19972
  }) : Promise.resolve(), p = await Promise.allSettled([u, f]), m = s.copy && p[0]?.status === "rejected", h = s.download && p[1]?.status === "rejected";
19935
19973
  if (b !== o) throw Error("Screenshot capture was cancelled.");
19936
- return M.show(n, {
19974
+ return w() && F(), M.show(n, {
19937
19975
  copied: a,
19938
19976
  downloaded: l,
19939
19977
  copyFailed: m,
@@ -20024,10 +20062,10 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
20024
20062
  label: "Screenshot",
20025
20063
  shortcut: "Shift+S",
20026
20064
  order: 70,
20027
- command: rx,
20065
+ command: ix,
20028
20066
  toolbarMode: "select",
20029
20067
  compactPinned: !0,
20030
- icon: cx,
20068
+ icon: lx,
20031
20069
  active: w,
20032
20070
  hidden: () => !T().toolEnabled,
20033
20071
  menu: {
@@ -20093,31 +20131,31 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
20093
20131
  set: (e) => E({ includeMeasurements: e })
20094
20132
  }
20095
20133
  ]
20096
- }), t.command.register(rx, R), t.service.provide($b, W), t.lifecycle.onDispose(() => {
20134
+ }), t.command.register(ix, R), t.service.provide(ex, W), t.lifecycle.onDispose(() => {
20097
20135
  C = !0, b += 1, d.removeEventListener("pointerdown", z), d.removeEventListener("pointermove", B), d.removeEventListener("pointerup", V), d.removeEventListener("pointercancel", H), i.removeEventListener("keydown", U, !0), y && i.clearTimeout(y), M.dispose(), k(), vo(i), a.finishCapture(), a.dispose(), o.dispose();
20098
20136
  });
20099
20137
  }
20100
- }), yx = (e) => Number.parseFloat(e) || 0, bx = 0, xx = (e, t) => {
20138
+ }), bx = (e) => Number.parseFloat(e) || 0, xx = 0, Sx = (e, t) => {
20101
20139
  let n = t.CSS;
20102
20140
  return n?.escape ? n.escape(e) : e.replace(/[^a-zA-Z0-9_-]/g, (e) => `\\${e}`);
20103
- }, Sx = (e) => e.nodeType === 9, Cx = (e) => e.nodeType === 11;
20104
- function wx(e) {
20141
+ }, Cx = (e) => e.nodeType === 9, wx = (e) => e.nodeType === 11;
20142
+ function Tx(e) {
20105
20143
  let t = e.getRootNode();
20106
- return Cx(t) ? t : e.ownerDocument;
20144
+ return wx(t) ? t : e.ownerDocument;
20107
20145
  }
20108
- var Tx = (e, t) => {
20109
- if (Sx(e) || Cx(e)) return e;
20110
- let n = wx(e);
20111
- return Cx(n) ? n : t;
20112
- }, Ex = 600, Dx = "audio, canvas, embed, iframe, img, input, object, picture, select, textarea, video", Ox = /* @__PURE__ */ new WeakMap(), kx = (e) => {
20146
+ var Ex = (e, t) => {
20147
+ if (Cx(e) || wx(e)) return e;
20148
+ let n = Tx(e);
20149
+ return wx(n) ? n : t;
20150
+ }, Dx = 600, Ox = "audio, canvas, embed, iframe, img, input, object, picture, select, textarea, video", kx = /* @__PURE__ */ new WeakMap(), Ax = (e) => {
20113
20151
  let t = e;
20114
20152
  for (; t;) {
20115
- if ((Ox.get(t) ?? 0) > 0) return !0;
20153
+ if ((kx.get(t) ?? 0) > 0) return !0;
20116
20154
  let e = t.getRootNode();
20117
- t = Cx(e) ? e.host : t.parentElement;
20155
+ t = wx(e) ? e.host : t.parentElement;
20118
20156
  }
20119
20157
  return !1;
20120
- }, Ax = (e, t) => t.x >= e.left && t.x <= e.right && t.y >= e.top && t.y <= e.bottom, jx = (e, t) => Array.from(e.getClientRects()).some((e) => Ax(e, t)), Mx = (e, t, n) => {
20158
+ }, jx = (e, t) => t.x >= e.left && t.x <= e.right && t.y >= e.top && t.y <= e.bottom, Mx = (e, t) => Array.from(e.getClientRects()).some((e) => jx(e, t)), Nx = (e, t, n) => {
20121
20159
  let r = e;
20122
20160
  for (; r;) {
20123
20161
  let e = n.getComputedStyle(r);
@@ -20126,7 +20164,7 @@ var Tx = (e, t) => {
20126
20164
  r = r.parentElement;
20127
20165
  }
20128
20166
  return !0;
20129
- }, Nx = (e, t) => {
20167
+ }, Px = (e, t) => {
20130
20168
  if (e.matches("img, picture, video, canvas, svg image, path, circle, ellipse, line, polygon, polyline, rect, text, use")) return !0;
20131
20169
  let n = t.getComputedStyle(e), r = n.backgroundImage !== "none" || n.backgroundColor !== "transparent" && n.backgroundColor !== "rgba(0, 0, 0, 0)", i = [
20132
20170
  "top",
@@ -20135,7 +20173,7 @@ var Tx = (e, t) => {
20135
20173
  "left"
20136
20174
  ].some((e) => Number.parseFloat(n.getPropertyValue(`border-${e}-width`)) > 0 && n.getPropertyValue(`border-${e}-style`) !== "none");
20137
20175
  return r || i || n.boxShadow !== "none" || n.outlineStyle !== "none";
20138
- }, Px = (e, t) => !!e.textContent?.trim() || Nx(e, t), Fx = (e, t, n) => {
20176
+ }, Fx = (e, t) => !!e.textContent?.trim() || Px(e, t), Ix = (e, t, n) => {
20139
20177
  let r = t, i = r.caretRangeFromPoint?.(e.x, e.y)?.startContainer ?? r.caretPositionFromPoint?.(e.x, e.y)?.offsetNode;
20140
20178
  if (!i) return null;
20141
20179
  let a = t.defaultView?.Element;
@@ -20146,11 +20184,11 @@ var Tx = (e, t) => {
20146
20184
  o = o.parentElement;
20147
20185
  }
20148
20186
  return o === n ? n : null;
20149
- }, Ix = (e, t, n) => {
20187
+ }, Lx = (e, t, n) => {
20150
20188
  let r = n.defaultView, i = r?.Element;
20151
20189
  if (!r || !i) return [];
20152
20190
  let a = [], o = /* @__PURE__ */ new Set(), s = (n, i, s) => {
20153
- if (o.has(n) || kx(n) || r.getComputedStyle(n).pointerEvents !== "none" || Mx(n, e, r) || !jx(n, t)) return;
20191
+ if (o.has(n) || Ax(n) || r.getComputedStyle(n).pointerEvents !== "none" || Nx(n, e, r) || !Mx(n, t)) return;
20154
20192
  let c = n.getBoundingClientRect();
20155
20193
  o.add(n), a.push({
20156
20194
  element: n,
@@ -20159,7 +20197,7 @@ var Tx = (e, t) => {
20159
20197
  order: s
20160
20198
  });
20161
20199
  }, c = n.createTreeWalker(e, 1), l = c.nextNode(), u = 1;
20162
- for (; l && u <= Ex;) {
20200
+ for (; l && u <= Dx;) {
20163
20201
  if (l instanceof i) {
20164
20202
  let t = l;
20165
20203
  if (r.getComputedStyle(t).pointerEvents === "none") {
@@ -20170,9 +20208,9 @@ var Tx = (e, t) => {
20170
20208
  }
20171
20209
  u += 1, l = c.nextNode();
20172
20210
  }
20173
- let d = Fx(t, n, e);
20211
+ let d = Ix(t, n, e);
20174
20212
  return d && r.getComputedStyle(d).pointerEvents === "none" && s(d, 1e4, u), a.sort((e, t) => t.depth - e.depth || e.area - t.area || t.order - e.order).map(({ element: e }) => e);
20175
- }, Lx = (e, t, n) => {
20213
+ }, Rx = (e, t, n) => {
20176
20214
  let r = t.ownerDocument.defaultView;
20177
20215
  if (!r) return [];
20178
20216
  let i = [...new Set(e)], a = /* @__PURE__ */ new Map();
@@ -20181,7 +20219,7 @@ var Tx = (e, t) => {
20181
20219
  t && (a.set(e, e.getAttribute("style")), t.style.setProperty("pointer-events", "auto", "important"));
20182
20220
  }
20183
20221
  try {
20184
- let e = wx(t).elementsFromPoint(n.x, n.y), r = e.findIndex((e) => e === t), a = new Map(e.map((e, t) => [e, t]));
20222
+ let e = Tx(t).elementsFromPoint(n.x, n.y), r = e.findIndex((e) => e === t), a = new Map(e.map((e, t) => [e, t]));
20185
20223
  return i.filter((e) => {
20186
20224
  let t = a.get(e);
20187
20225
  return t !== void 0 && (r < 0 || t < r);
@@ -20189,31 +20227,31 @@ var Tx = (e, t) => {
20189
20227
  } finally {
20190
20228
  for (let [e, t] of a) t === null ? e.removeAttribute("style") : e.setAttribute("style", t);
20191
20229
  }
20192
- }, Rx = (e, t) => {
20230
+ }, zx = (e, t) => {
20193
20231
  let n = e;
20194
20232
  for (; n.parentElement && n.parentElement !== t;) n = n.parentElement;
20195
20233
  return n.parentElement === t ? n : null;
20196
- }, zx = (e, t, n, r) => {
20234
+ }, Bx = (e, t, n, r) => {
20197
20235
  let i = r.defaultView;
20198
20236
  if (!i) return [];
20199
- let a = Lx(Ix(e, t, r).filter((e) => Px(e, i)), e, t);
20237
+ let a = Rx(Lx(e, t, r).filter((e) => Fx(e, i)), e, t);
20200
20238
  if (a.length > 0) return a;
20201
- if (e.textContent?.trim() && !e.matches(Dx) || e.matches("a, button, input, select, textarea, label, summary, [contenteditable='true']")) return [];
20202
- let o = [], s = /* @__PURE__ */ new Set(), c = !Sx(n) && !Cx(n) ? n : null, l = e.parentElement;
20239
+ if (e.textContent?.trim() && !e.matches(Ox) || e.matches("a, button, input, select, textarea, label, summary, [contenteditable='true']")) return [];
20240
+ let o = [], s = /* @__PURE__ */ new Set(), c = !Cx(n) && !wx(n) ? n : null, l = e.parentElement;
20203
20241
  for (; l && l !== r.body && l !== r.documentElement && !(c && l !== c && !c.contains(l));) {
20204
- let a = l, u = Rx(e, a), d = Ix(a, t, r).filter((e) => {
20205
- if (!Vx(e, n) || e.closest("[aria-hidden='true'], [inert]")) return !1;
20206
- let t = Rx(e, a);
20242
+ let a = l, u = zx(e, a), d = Lx(a, t, r).filter((e) => {
20243
+ if (!Hx(e, n) || e.closest("[aria-hidden='true'], [inert]")) return !1;
20244
+ let t = zx(e, a);
20207
20245
  return t === null || t !== u;
20208
20246
  });
20209
- for (let e of d) s.has(e) || !Px(e, i) || (s.add(e), o.push(e));
20247
+ for (let e of d) s.has(e) || !Fx(e, i) || (s.add(e), o.push(e));
20210
20248
  if (a === c) break;
20211
20249
  l = a.parentElement;
20212
20250
  }
20213
- return Lx(o, e, t);
20251
+ return Rx(o, e, t);
20214
20252
  };
20215
- function Bx(e, t, n = Sx(t) ? t : t.ownerDocument ?? document) {
20216
- let r = Tx(t, n), i = n.defaultView;
20253
+ function Vx(e, t, n = Cx(t) ? t : t.ownerDocument ?? document) {
20254
+ let r = Ex(t, n), i = n.defaultView;
20217
20255
  if (!i) return null;
20218
20256
  let a = r.elementsFromPoint(e.x, e.y);
20219
20257
  for (let r of a) {
@@ -20223,28 +20261,28 @@ function Bx(e, t, n = Sx(t) ? t : t.ownerDocument ?? document) {
20223
20261
  if (!t || t === a) break;
20224
20262
  a = t;
20225
20263
  }
20226
- if (!a || !Vx(a, t)) continue;
20227
- let o = zx(a, e, t, n);
20264
+ if (!a || !Hx(a, t)) continue;
20265
+ let o = Bx(a, e, t, n);
20228
20266
  if (o.length > 0) return o[0];
20229
20267
  if (i.getComputedStyle(a).pointerEvents !== "none") return a;
20230
20268
  }
20231
20269
  return null;
20232
20270
  }
20233
- function Vx(e, t) {
20234
- if (Sx(t)) return !0;
20271
+ function Hx(e, t) {
20272
+ if (Cx(t)) return !0;
20235
20273
  let n = e;
20236
20274
  for (; n;) {
20237
20275
  if (t === n || t.contains(n)) return !0;
20238
20276
  let e = n.getRootNode();
20239
- if (!Cx(e)) return !1;
20277
+ if (!wx(e)) return !1;
20240
20278
  n = e.host;
20241
20279
  }
20242
20280
  return !1;
20243
20281
  }
20244
- function Hx(e, t) {
20282
+ function Ux(e, t) {
20245
20283
  if (!e) return t();
20246
- let n = Ox.get(e) ?? 0;
20247
- Ox.set(e, n + 1);
20284
+ let n = kx.get(e) ?? 0;
20285
+ kx.set(e, n + 1);
20248
20286
  let r = [e, ...e.querySelectorAll("*")], i = r.map((e) => [
20249
20287
  e,
20250
20288
  e.style.getPropertyValue("pointer-events"),
@@ -20254,13 +20292,13 @@ function Hx(e, t) {
20254
20292
  try {
20255
20293
  return t();
20256
20294
  } finally {
20257
- n === 0 ? Ox.delete(e) : Ox.set(e, n);
20295
+ n === 0 ? kx.delete(e) : kx.set(e, n);
20258
20296
  for (let [e, t, n] of i) t ? e.style.setProperty("pointer-events", t, n) : e.style.removeProperty("pointer-events");
20259
20297
  }
20260
20298
  }
20261
- function Ux(e) {
20299
+ function Wx(e) {
20262
20300
  let t = e.ownerDocument.defaultView ?? window;
20263
- if (e.id) return `#${xx(e.id, t)}`;
20301
+ if (e.id) return `#${Sx(e.id, t)}`;
20264
20302
  let n = e.getAttribute("data-testid");
20265
20303
  if (n) return `[data-testid=${JSON.stringify(n)}]`;
20266
20304
  let r = [], i = e;
@@ -20274,17 +20312,17 @@ function Ux(e) {
20274
20312
  }
20275
20313
  return r.join(" > ");
20276
20314
  }
20277
- function Wx(e, t, n = `dom-inspection-${++bx}`) {
20315
+ function Gx(e, t, n = `dom-inspection-${++xx}`) {
20278
20316
  let r = e.getBoundingClientRect(), i = t.getComputedStyle(e), a = {
20279
- top: yx(i.paddingTop),
20280
- right: yx(i.paddingRight),
20281
- bottom: yx(i.paddingBottom),
20282
- left: yx(i.paddingLeft)
20317
+ top: bx(i.paddingTop),
20318
+ right: bx(i.paddingRight),
20319
+ bottom: bx(i.paddingBottom),
20320
+ left: bx(i.paddingLeft)
20283
20321
  }, o = {
20284
- top: yx(i.marginTop),
20285
- right: yx(i.marginRight),
20286
- bottom: yx(i.marginBottom),
20287
- left: yx(i.marginLeft)
20322
+ top: bx(i.marginTop),
20323
+ right: bx(i.marginRight),
20324
+ bottom: bx(i.marginBottom),
20325
+ left: bx(i.marginLeft)
20288
20326
  }, s = {
20289
20327
  left: r.left + a.left,
20290
20328
  top: r.top + a.top,
@@ -20312,8 +20350,8 @@ function Wx(e, t, n = `dom-inspection-${++bx}`) {
20312
20350
  elementRef: e
20313
20351
  };
20314
20352
  }
20315
- function Gx(e) {
20316
- let t = e.ownerDocument.defaultView ?? window, n = t.getComputedStyle(e), r = e instanceof t.HTMLElement ? e : null, i = e.getBoundingClientRect(), a = r ? Wx(r, t) : null, o = (e) => {
20353
+ function Kx(e) {
20354
+ let t = e.ownerDocument.defaultView ?? window, n = t.getComputedStyle(e), r = e instanceof t.HTMLElement ? e : null, i = e.getBoundingClientRect(), a = r ? Gx(r, t) : null, o = (e) => {
20317
20355
  let t = Number.parseFloat(e);
20318
20356
  return Number.isFinite(t) ? t : 0;
20319
20357
  }, s = (e) => ({
@@ -20323,7 +20361,7 @@ function Gx(e) {
20323
20361
  left: o(n.getPropertyValue(`${e}-left${e === "border" ? "-width" : ""}`))
20324
20362
  });
20325
20363
  return {
20326
- selector: Ux(e),
20364
+ selector: Wx(e),
20327
20365
  tag: e.localName,
20328
20366
  id: e.id || null,
20329
20367
  classes: [...e.classList],
@@ -20385,10 +20423,10 @@ function Gx(e) {
20385
20423
  }
20386
20424
  //#endregion
20387
20425
  //#region src/agent.ts
20388
- var Kx = "text-edit", qx = (e) => Gx(e);
20389
- function Jx(e) {
20390
- 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 || Vx(n, t), a = async () => {
20391
- let t = (e.getPluginHost() ?? await e.waitForPluginHost()).service.get(Kx);
20426
+ var qx = "text-edit", Jx = (e) => Kx(e);
20427
+ function Yx(e) {
20428
+ 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 || Hx(n, t), a = async () => {
20429
+ let t = (e.getPluginHost() ?? await e.waitForPluginHost()).service.get(qx);
20392
20430
  if (!t) throw Error("Mesurer text editing service is unavailable.");
20393
20431
  return t;
20394
20432
  }, o = () => {
@@ -20417,25 +20455,25 @@ function Jx(e) {
20417
20455
  },
20418
20456
  inspect(e, t = 0) {
20419
20457
  let n = r(e, t);
20420
- return n ? qx(n) : null;
20458
+ return n ? Jx(n) : null;
20421
20459
  },
20422
20460
  inspectAll(e, n = 50) {
20423
- return [...t.querySelectorAll(e)].slice(0, Math.max(0, n)).map(qx);
20461
+ return [...t.querySelectorAll(e)].slice(0, Math.max(0, n)).map(Jx);
20424
20462
  },
20425
20463
  at(n, r) {
20426
20464
  let a = t.querySelector?.("[data-mesurer-island]") ?? null;
20427
- return Hx(a?.shadowRoot?.querySelector("[data-mesurer-root='true']") ?? a, () => {
20428
- let a = Bx({
20465
+ return Ux(a?.shadowRoot?.querySelector("[data-mesurer-root='true']") ?? a, () => {
20466
+ let a = Vx({
20429
20467
  x: n,
20430
20468
  y: r
20431
20469
  }, t, e.ownerDocument);
20432
- return a && i(a) ? qx(a) : null;
20470
+ return a && i(a) ? Jx(a) : null;
20433
20471
  });
20434
20472
  },
20435
20473
  distance(e, t) {
20436
20474
  let n = r(e), i = r(t);
20437
20475
  if (!n || !i) return null;
20438
- let a = qx(n), o = qx(i), s = a.rect, c = o.rect;
20476
+ let a = Jx(n), o = Jx(i), s = a.rect, c = o.rect;
20439
20477
  return {
20440
20478
  a,
20441
20479
  b: o,
@@ -20451,7 +20489,7 @@ function Jx(e) {
20451
20489
  let r = e.getPluginHost() ?? await e.waitForPluginHost();
20452
20490
  return {
20453
20491
  viewport: o(),
20454
- elements: n.flatMap((e) => [...t.querySelectorAll(e)].slice(0, 50).map(qx)),
20492
+ elements: n.flatMap((e) => [...t.querySelectorAll(e)].slice(0, 50).map(Jx)),
20455
20493
  plugins: r.describe(),
20456
20494
  pluginState: r.state.serialize("all")
20457
20495
  };
@@ -20476,10 +20514,10 @@ function Jx(e) {
20476
20514
  }
20477
20515
  //#endregion
20478
20516
  //#region src/version.ts
20479
- var Yx = "0.2.1-beta.12", Xx = Np, Zx = Pp, Qx = () => ({
20517
+ var Xx = "0.2.1-beta.14", Zx = Np, Qx = Pp, $x = () => ({
20480
20518
  ...km(),
20481
- version: Yx
20482
- }), $x = Zx, eS = (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, tS = (e) => {
20519
+ version: Xx
20520
+ }), eS = Qx, tS = (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, nS = (e) => {
20483
20521
  if (!e.length) return null;
20484
20522
  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));
20485
20523
  return {
@@ -20488,36 +20526,36 @@ var Yx = "0.2.1-beta.12", Xx = Np, Zx = Pp, Qx = () => ({
20488
20526
  width: r - t,
20489
20527
  height: i - n
20490
20528
  };
20491
- }, nS = (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), rS = (e) => [...e.measurements, ...e.activeMeasurement && !e.measurements.some((t) => t.id === e.activeMeasurement?.id) ? [e.activeMeasurement] : []];
20492
- function iS(e) {
20529
+ }, rS = (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), iS = (e) => [...e.measurements, ...e.activeMeasurement && !e.measurements.some((t) => t.id === e.activeMeasurement?.id) ? [e.activeMeasurement] : []];
20530
+ function aS(e) {
20493
20531
  let { workspace: t, scope: n, guideTolerance: r } = e;
20494
20532
  if (n.kind === "workspace") return {
20495
20533
  guides: t.guides.map((e) => ({ ...e })),
20496
- measurements: rS(t),
20534
+ measurements: iS(t),
20497
20535
  distances: [...t.distances]
20498
20536
  };
20499
- let i = new Set(n.elements), a = (e) => e != null && i.has(e), o = (e) => n.regions.some((t) => eS(e, t));
20537
+ let i = new Set(n.elements), a = (e) => e != null && i.has(e), o = (e) => n.regions.some((t) => tS(e, t));
20500
20538
  return {
20501
- guides: t.guides.filter((e) => nS(e, n.regions, r)).map((e) => ({ ...e })),
20502
- measurements: rS(t).filter((e) => a(e.elementRef) || o(e.rect)),
20539
+ guides: t.guides.filter((e) => rS(e, n.regions, r)).map((e) => ({ ...e })),
20540
+ measurements: iS(t).filter((e) => a(e.elementRef) || o(e.rect)),
20503
20541
  distances: t.distances.filter((e) => a(e.elementRefA) || a(e.elementRefB) || o(e.rectA) || o(e.rectB))
20504
20542
  };
20505
20543
  }
20506
20544
  //#endregion
20507
20545
  //#region ../mesurer-core/dist/domain.js
20508
- var aS = {
20546
+ var oS = {
20509
20547
  opacity: 1,
20510
20548
  width: 1,
20511
20549
  pattern: "solid",
20512
20550
  dashLength: 6,
20513
20551
  gap: 4
20514
- }, oS = {
20552
+ }, sS = {
20515
20553
  opacity: 1,
20516
20554
  edgeReveal: !1
20517
20555
  };
20518
20556
  //#endregion
20519
20557
  //#region ../mesurer-core/dist/events.js
20520
- function sS() {
20558
+ function cS() {
20521
20559
  let e = /* @__PURE__ */ new Map();
20522
20560
  return {
20523
20561
  on(t, n) {
@@ -20535,12 +20573,12 @@ function sS() {
20535
20573
  }
20536
20574
  };
20537
20575
  }
20538
- ({ ...aS }), { ...oS };
20576
+ ({ ...oS }), { ...sS };
20539
20577
  //#endregion
20540
20578
  //#region ../mesurer-core/dist/plugins.js
20541
- var cS = 50;
20542
- function lS() {
20543
- let e = 1, t = 0, n = sS(), 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) => {
20579
+ var lS = 50;
20580
+ function uS() {
20581
+ let e = 1, t = 0, n = cS(), 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) => {
20544
20582
  n.emit("changed", {
20545
20583
  pluginId: e,
20546
20584
  reason: t
@@ -20603,15 +20641,15 @@ function lS() {
20603
20641
  }
20604
20642
  if (o && s) {
20605
20643
  let e = y("history");
20606
- x(s, e) || (p.push(s), p.length > cS && p.shift(), m.length = 0);
20644
+ x(s, e) || (p.push(s), p.length > lS && p.shift(), m.length = 0);
20607
20645
  }
20608
20646
  return l;
20609
20647
  }, w = () => {
20610
20648
  let e = p.pop();
20611
- return e ? (m.push(y("history")), m.length > cS && m.shift(), b(e, "history"), h(void 0, "history"), !0) : !1;
20649
+ return e ? (m.push(y("history")), m.length > lS && m.shift(), b(e, "history"), h(void 0, "history"), !0) : !1;
20612
20650
  }, T = () => {
20613
20651
  let e = m.pop();
20614
- return e ? (p.push(y("history")), p.length > cS && p.shift(), b(e, "history"), h(void 0, "history"), !0) : !1;
20652
+ return e ? (p.push(y("history")), p.length > lS && p.shift(), b(e, "history"), h(void 0, "history"), !0) : !1;
20615
20653
  }, E = async (e, t) => {
20616
20654
  for (let n of [...l.values()].filter((t) => t.name === e)) await n.handler(t);
20617
20655
  }, D = (e) => [...u.values()].reverse().find((t) => t.id === e)?.value, O = {
@@ -20768,8 +20806,8 @@ function lS() {
20768
20806
  }
20769
20807
  //#endregion
20770
20808
  //#region ../mesurer-core/dist/runtime.js
20771
- async function uS(e = {}) {
20772
- let t = lS();
20809
+ async function dS(e = {}) {
20810
+ let t = uS();
20773
20811
  try {
20774
20812
  for (let n of e.plugins ?? []) await t.load(n);
20775
20813
  return t;
@@ -20779,17 +20817,17 @@ async function uS(e = {}) {
20779
20817
  }
20780
20818
  //#endregion
20781
20819
  //#region src/context.ts
20782
- var dS = 10, fS = (e) => ({
20820
+ var fS = 10, pS = (e) => ({
20783
20821
  left: e.left,
20784
20822
  top: e.top,
20785
20823
  width: e.width,
20786
20824
  height: e.height
20787
- }), pS = (e) => {
20825
+ }), mS = (e) => {
20788
20826
  let t = /* @__PURE__ */ new Set(), n = [];
20789
20827
  for (let r of e) !r?.isConnected || t.has(r) || (t.add(r), n.push(r));
20790
20828
  return n;
20791
- }, mS = (e) => e.crypto?.randomUUID?.() ?? `${Date.now()}-${Math.random().toString(36).slice(2)}`;
20792
- function hS(e) {
20829
+ }, hS = (e) => e.crypto?.randomUUID?.() ?? `${Date.now()}-${Math.random().toString(36).slice(2)}`;
20830
+ function gS(e) {
20793
20831
  let { runtime: t, ownerDocument: n, ownerWindow: r } = e, i = e.request ?? { scope: "workspace" }, a = t.snapshot();
20794
20832
  if (!a) throw Error("Mesurer workspace is not ready yet.");
20795
20833
  let o = [], s = [], c = { kind: "workspace" }, l = /* @__PURE__ */ new Map();
@@ -20797,7 +20835,7 @@ function hS(e) {
20797
20835
  let e = t.annotation(i.annotation);
20798
20836
  if (!e) throw Error(`Mesurer annotation not found: ${i.annotation}`);
20799
20837
  for (let t of e.resolvedTargets) t.element?.isConnected && l.set(t.element, t.target.id);
20800
- o = pS(e.resolvedTargets.map((e) => e.element));
20838
+ o = mS(e.resolvedTargets.map((e) => e.element));
20801
20839
  let n = t.annotationRect(e.id);
20802
20840
  n && (s = [n]);
20803
20841
  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";
@@ -20809,15 +20847,15 @@ function hS(e) {
20809
20847
  };
20810
20848
  } else if (i.scope === "selection") {
20811
20849
  let e = t.currentSelection();
20812
- if (o = pS(e.elements), !o.length && !e.region) throw Error("Mesurer has no current selection.");
20813
- s = e.region ? [e.region] : o.map((e) => fS(e.getBoundingClientRect())), c = { kind: "selection" };
20814
- } else o = pS([
20850
+ if (o = mS(e.elements), !o.length && !e.region) throw Error("Mesurer has no current selection.");
20851
+ s = e.region ? [e.region] : o.map((e) => pS(e.getBoundingClientRect())), c = { kind: "selection" };
20852
+ } else o = mS([
20815
20853
  ...t.currentSelection().elements,
20816
20854
  ...a.measurements.map((e) => e.elementRef),
20817
20855
  a.activeMeasurement?.elementRef,
20818
20856
  ...a.heldDistances.flatMap((e) => [e.elementRefA, e.elementRefB])
20819
20857
  ]);
20820
- let u = c.kind === "workspace" ? [] : s.length ? s : o.map((e) => fS(e.getBoundingClientRect())), d = iS({
20858
+ let u = c.kind === "workspace" ? [] : s.length ? s : o.map((e) => pS(e.getBoundingClientRect())), d = aS({
20821
20859
  workspace: {
20822
20860
  guides: a.guides,
20823
20861
  measurements: a.measurements,
@@ -20829,8 +20867,8 @@ function hS(e) {
20829
20867
  elements: o,
20830
20868
  regions: u
20831
20869
  },
20832
- guideTolerance: a.guideRelevanceTolerance ?? dS
20833
- }), f = d.measurements, p = d.distances, m = d.guides, h = pS([
20870
+ guideTolerance: a.guideRelevanceTolerance ?? fS
20871
+ }), f = d.measurements, p = d.distances, m = d.guides, h = mS([
20834
20872
  ...o,
20835
20873
  ...f.map((e) => e.elementRef),
20836
20874
  ...p.flatMap((e) => [e.elementRefA, e.elementRefB])
@@ -20842,12 +20880,12 @@ function hS(e) {
20842
20880
  let t = l.get(e) ?? y();
20843
20881
  return g.set(e, t), {
20844
20882
  ref: t,
20845
- inspection: Gx(e)
20883
+ inspection: Kx(e)
20846
20884
  };
20847
20885
  }), x = f.map((e) => {
20848
20886
  let t = {
20849
20887
  id: e.id,
20850
- rect: fS(e.rect),
20888
+ rect: pS(e.rect),
20851
20889
  deltaX: e.deltaX,
20852
20890
  deltaY: e.deltaY
20853
20891
  };
@@ -20857,8 +20895,8 @@ function hS(e) {
20857
20895
  }), S = p.map((e) => {
20858
20896
  let t = {
20859
20897
  id: e.id,
20860
- rectA: fS(e.rectA),
20861
- rectB: fS(e.rectB),
20898
+ rectA: pS(e.rectA),
20899
+ rectB: pS(e.rectB),
20862
20900
  horizontal: e.horizontal ? { ...e.horizontal } : null,
20863
20901
  vertical: e.vertical ? { ...e.vertical } : null
20864
20902
  }, n = e.elementRefA ? g.get(e.elementRefA) : void 0, r = e.elementRefB ? g.get(e.elementRefB) : void 0;
@@ -20866,7 +20904,7 @@ function hS(e) {
20866
20904
  });
20867
20905
  return {
20868
20906
  schema: "mesurer.context/v1",
20869
- id: mS(r),
20907
+ id: hS(r),
20870
20908
  createdAt: (/* @__PURE__ */ new Date()).toISOString(),
20871
20909
  scope: c,
20872
20910
  page: {
@@ -20881,7 +20919,7 @@ function hS(e) {
20881
20919
  scrollY: r.scrollY
20882
20920
  },
20883
20921
  coordinateSpace: "viewport-css-px",
20884
- regions: c.kind === "workspace" ? [] : s.map(fS),
20922
+ regions: c.kind === "workspace" ? [] : s.map(pS),
20885
20923
  visualState: {
20886
20924
  rulersVisible: a.rulersVisible,
20887
20925
  xrayVisible: a.xrayVisible
@@ -20895,48 +20933,48 @@ function hS(e) {
20895
20933
  }
20896
20934
  };
20897
20935
  }
20898
- var gS = (e) => `${Math.round(e * 100) / 100}px`, _S = (e) => `x=${gS(e.left)} y=${gS(e.top)} w=${gS(e.width)} h=${gS(e.height)}`;
20899
- function vS(e) {
20936
+ var _S = (e) => `${Math.round(e * 100) / 100}px`, vS = (e) => `x=${_S(e.left)} y=${_S(e.top)} w=${_S(e.width)} h=${_S(e.height)}`;
20937
+ function yS(e) {
20900
20938
  let t = [
20901
20939
  "Mesurer visual context",
20902
20940
  "",
20903
20941
  `Page: ${e.page.url}`,
20904
20942
  `Viewport: ${e.viewport.width} × ${e.viewport.height} CSS px; scroll x=${e.viewport.scrollX} y=${e.viewport.scrollY}`
20905
20943
  ];
20906
- 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}: ${_S(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) {
20944
+ 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}: ${vS(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) {
20907
20945
  t.push("", "Targets");
20908
20946
  for (let n of e.targets) {
20909
20947
  let e = n.inspection;
20910
- t.push(`[${n.ref}] ${e.selector}`, ` rect: ${_S(e.rect)}`, ` margin: ${gS(e.margin.top)} ${gS(e.margin.right)} ${gS(e.margin.bottom)} ${gS(e.margin.left)}`, ` padding: ${gS(e.padding.top)} ${gS(e.padding.right)} ${gS(e.padding.bottom)} ${gS(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)}`);
20948
+ t.push(`[${n.ref}] ${e.selector}`, ` rect: ${vS(e.rect)}`, ` margin: ${_S(e.margin.top)} ${_S(e.margin.right)} ${_S(e.margin.bottom)} ${_S(e.margin.left)}`, ` padding: ${_S(e.padding.top)} ${_S(e.padding.right)} ${_S(e.padding.bottom)} ${_S(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)}`);
20911
20949
  }
20912
20950
  }
20913
20951
  if (e.visualContext.guides.length) {
20914
20952
  t.push("", "Relevant guides");
20915
- for (let n of e.visualContext.guides) t.push(`- ${n.orientation} ${n.orientation === "vertical" ? "x" : "y"}=${gS(n.position)}`);
20953
+ for (let n of e.visualContext.guides) t.push(`- ${n.orientation} ${n.orientation === "vertical" ? "x" : "y"}=${_S(n.position)}`);
20916
20954
  }
20917
20955
  if (e.visualContext.layoutGuides.length) {
20918
20956
  t.push("", "Layout guides");
20919
20957
  for (let n of e.visualContext.layoutGuides) {
20920
20958
  if (!n.visible) continue;
20921
- let e = n.kind === "grid" ? `grid ${gS(n.size)}` : `${n.count} ${n.kind}; gutter=${gS(n.gutter)}; offset=${gS(n.offset)}; align=${n.align}`;
20959
+ let e = n.kind === "grid" ? `grid ${_S(n.size)}` : `${n.count} ${n.kind}; gutter=${_S(n.gutter)}; offset=${_S(n.offset)}; align=${n.align}`;
20922
20960
  t.push(`- ${e}; color=${n.color}; opacity=${Math.round(n.opacity * 100)}%`);
20923
20961
  }
20924
20962
  }
20925
20963
  if (e.visualContext.measurements.length) {
20926
20964
  t.push("", "Relevant measurements");
20927
- for (let n of e.visualContext.measurements) t.push(`- ${n.targetRef ? `${n.targetRef}: ` : ""}${_S(n.rect)}; delta=${gS(n.deltaX)} × ${gS(n.deltaY)}`);
20965
+ for (let n of e.visualContext.measurements) t.push(`- ${n.targetRef ? `${n.targetRef}: ` : ""}${vS(n.rect)}; delta=${_S(n.deltaX)} × ${_S(n.deltaY)}`);
20928
20966
  }
20929
20967
  if (e.visualContext.distances.length) {
20930
20968
  t.push("", "Relevant distances");
20931
20969
  for (let n of e.visualContext.distances) {
20932
- let e = [n.targetARef, n.targetBRef].filter(Boolean).join(" → "), r = [n.horizontal ? `horizontal=${gS(n.horizontal.value)}` : null, n.vertical ? `vertical=${gS(n.vertical.value)}` : null].filter(Boolean).join("; ");
20970
+ let e = [n.targetARef, n.targetBRef].filter(Boolean).join(" → "), r = [n.horizontal ? `horizontal=${_S(n.horizontal.value)}` : null, n.vertical ? `vertical=${_S(n.vertical.value)}` : null].filter(Boolean).join("; ");
20933
20971
  t.push(`- ${e ? `${e}: ` : ""}${r || "overlapping"}`);
20934
20972
  }
20935
20973
  }
20936
20974
  return t.join("\n").trimEnd();
20937
20975
  }
20938
- function yS(e) {
20939
- let t = tS([
20976
+ function bS(e) {
20977
+ let t = nS([
20940
20978
  ...e.regions,
20941
20979
  ...e.targets.map((e) => e.inspection.rect),
20942
20980
  ...e.visualContext.measurements.map((e) => e.rect),
@@ -20966,7 +21004,7 @@ function yS(e) {
20966
21004
  captures: n
20967
21005
  };
20968
21006
  }
20969
- var bS = (e, t, n, r, i) => {
21007
+ var xS = (e, t, n, r, i) => {
20970
21008
  !Number.isFinite(r) || !Number.isFinite(i) || Math.abs(r - i) < .01 || e.push({
20971
21009
  kind: t,
20972
21010
  label: n,
@@ -20975,16 +21013,16 @@ var bS = (e, t, n, r, i) => {
20975
21013
  delta: i - r,
20976
21014
  unit: "px"
20977
21015
  });
20978
- }, xS = (e, t, n, r) => e.push({
21016
+ }, SS = (e, t, n, r) => e.push({
20979
21017
  kind: "missing",
20980
21018
  evidence: t,
20981
21019
  id: n,
20982
21020
  label: r
20983
- }), SS = (e, t) => Math.abs(e.left - t.left) < .01 && Math.abs(e.top - t.top) < .01 && Math.abs(e.width - t.width) < .01 && Math.abs(e.height - t.height) < .01;
20984
- function CS(e) {
21021
+ }), CS = (e, t) => Math.abs(e.left - t.left) < .01 && Math.abs(e.top - t.top) < .01 && Math.abs(e.width - t.width) < .01 && Math.abs(e.height - t.height) < .01;
21022
+ function wS(e) {
20985
21023
  let t = e.runtime.annotation(e.annotationId);
20986
21024
  if (!t) throw Error(`Mesurer annotation not found: ${e.annotationId}`);
20987
- let n = hS({
21025
+ let n = gS({
20988
21026
  runtime: e.runtime,
20989
21027
  ownerDocument: e.ownerDocument,
20990
21028
  ownerWindow: e.ownerWindow,
@@ -20994,42 +21032,42 @@ function CS(e) {
20994
21032
  if (n.scope.kind !== "annotation") throw Error("Mesurer annotation context invariant failed.");
20995
21033
  let r = e.runtime.snapshot();
20996
21034
  if (!r) throw Error("Mesurer workspace is not ready yet.");
20997
- let i = rS({
21035
+ let i = iS({
20998
21036
  measurements: r.measurements,
20999
21037
  activeMeasurement: r.activeMeasurement
21000
21038
  }), a = [];
21001
21039
  for (let e of t.baseline.targets) {
21002
21040
  let t = n.targets.find((t) => t.ref === e.id);
21003
21041
  if (!t) {
21004
- xS(a, "target", e.id, e.selector);
21042
+ SS(a, "target", e.id, e.selector);
21005
21043
  continue;
21006
21044
  }
21007
- bS(a, "target-rect", `${t.inspection.selector} left`, e.rect.left, t.inspection.rect.left), bS(a, "target-rect", `${t.inspection.selector} top`, e.rect.top, t.inspection.rect.top), bS(a, "target-rect", `${t.inspection.selector} width`, e.rect.width, t.inspection.rect.width), bS(a, "target-rect", `${t.inspection.selector} height`, e.rect.height, t.inspection.rect.height);
21045
+ xS(a, "target-rect", `${t.inspection.selector} left`, e.rect.left, t.inspection.rect.left), xS(a, "target-rect", `${t.inspection.selector} top`, e.rect.top, t.inspection.rect.top), xS(a, "target-rect", `${t.inspection.selector} width`, e.rect.width, t.inspection.rect.width), xS(a, "target-rect", `${t.inspection.selector} height`, e.rect.height, t.inspection.rect.height);
21008
21046
  }
21009
21047
  for (let e of t.baseline.guides) {
21010
21048
  let t = n.visualContext.guides.find((t) => t.id === e.id) ?? r.guides.find((t) => t.id === e.id);
21011
21049
  if (!t) {
21012
- xS(a, "guide", e.id, `${e.orientation} guide ${e.id}`);
21050
+ SS(a, "guide", e.id, `${e.orientation} guide ${e.id}`);
21013
21051
  continue;
21014
21052
  }
21015
- bS(a, "guide", `${e.orientation} guide ${e.id}`, e.position, t.position);
21053
+ xS(a, "guide", `${e.orientation} guide ${e.id}`, e.position, t.position);
21016
21054
  }
21017
21055
  for (let e of t.baseline.measurements) {
21018
21056
  let r = n.visualContext.measurements.find((t) => t.id === e.id) ?? i.find((t) => t.id === e.id);
21019
21057
  if (!r) {
21020
- let r = t.baseline.targets.find((t) => SS(t.rect, e.rect));
21021
- r && n.targets.some((e) => e.ref === r.id) || xS(a, "measurement", e.id, e.id);
21058
+ let r = t.baseline.targets.find((t) => CS(t.rect, e.rect));
21059
+ r && n.targets.some((e) => e.ref === r.id) || SS(a, "measurement", e.id, e.id);
21022
21060
  continue;
21023
21061
  }
21024
- bS(a, "measurement", `${e.id} width`, e.rect.width, r.rect.width), bS(a, "measurement", `${e.id} height`, e.rect.height, r.rect.height);
21062
+ xS(a, "measurement", `${e.id} width`, e.rect.width, r.rect.width), xS(a, "measurement", `${e.id} height`, e.rect.height, r.rect.height);
21025
21063
  }
21026
21064
  for (let e of t.baseline.distances) {
21027
21065
  let t = n.visualContext.distances.find((t) => t.id === e.id) ?? r.heldDistances.find((t) => t.id === e.id);
21028
21066
  if (!t) {
21029
- xS(a, "distance", e.id, e.id);
21067
+ SS(a, "distance", e.id, e.id);
21030
21068
  continue;
21031
21069
  }
21032
- e.horizontal && t.horizontal ? bS(a, "distance", `${e.id} horizontal`, e.horizontal.value, t.horizontal.value) : e.horizontal && !t.horizontal && xS(a, "distance", e.id, `${e.id} horizontal`), e.vertical && t.vertical ? bS(a, "distance", `${e.id} vertical`, e.vertical.value, t.vertical.value) : e.vertical && !t.vertical && xS(a, "distance", e.id, `${e.id} vertical`);
21070
+ e.horizontal && t.horizontal ? xS(a, "distance", `${e.id} horizontal`, e.horizontal.value, t.horizontal.value) : e.horizontal && !t.horizontal && SS(a, "distance", e.id, `${e.id} horizontal`), e.vertical && t.vertical ? xS(a, "distance", `${e.id} vertical`, e.vertical.value, t.vertical.value) : e.vertical && !t.vertical && SS(a, "distance", e.id, `${e.id} vertical`);
21033
21071
  }
21034
21072
  return {
21035
21073
  schema: "mesurer.review/v1",
@@ -21041,7 +21079,7 @@ function CS(e) {
21041
21079
  changes: a
21042
21080
  };
21043
21081
  }
21044
- async function wS(e, t, n) {
21082
+ async function TS(e, t, n) {
21045
21083
  try {
21046
21084
  if (t.navigator.clipboard?.writeText) {
21047
21085
  await t.navigator.clipboard.writeText(n);
@@ -21055,43 +21093,43 @@ async function wS(e, t, n) {
21055
21093
  }
21056
21094
  //#endregion
21057
21095
  //#region src/layout-guides.ts
21058
- var TS = Kv, ES = qv, DS = () => ({
21096
+ var ES = Kv, DS = qv, OS = () => ({
21059
21097
  ...yy(),
21060
- version: Yx
21061
- }), OS = "mesurer.context", kS = "context:v1", AS = "mesurer.context.settings", jS = "context.ui", MS = "data-mesurer-direct-text-edit-active", NS = {
21098
+ version: Xx
21099
+ }), kS = "mesurer.context", AS = "context:v1", jS = "mesurer.context.settings", MS = "context.ui", NS = "data-mesurer-direct-text-edit-active", PS = {
21062
21100
  viewBox: "0 0 256 256",
21063
21101
  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"]
21064
- }, PS = {
21102
+ }, FS = {
21065
21103
  viewBox: "0 0 256 256",
21066
21104
  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"]
21067
- }, FS = {
21105
+ }, IS = {
21068
21106
  viewBox: "0 0 256 256",
21069
21107
  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"]
21070
- }, IS = async (e, t, n = 1) => {
21108
+ }, LS = async (e, t, n = 1) => {
21071
21109
  await e.fonts?.ready;
21072
21110
  for (let e = 0; e < Math.max(1, n); e += 1) await new Promise((e) => t.requestAnimationFrame(() => e()));
21073
- }, LS = (e, t, n, r) => {
21074
- let i = async (i) => hS({
21111
+ }, RS = (e, t, n, r) => {
21112
+ let i = async (i) => gS({
21075
21113
  runtime: e,
21076
21114
  ownerDocument: t,
21077
21115
  ownerWindow: n,
21078
21116
  request: i,
21079
21117
  layoutGuides: r()
21080
- }), a = async (e) => vS(await i(e));
21118
+ }), a = async (e) => yS(await i(e));
21081
21119
  return {
21082
21120
  context: i,
21083
21121
  contextText: a,
21084
- copyContext: async (e) => wS(t, n, await a(e)),
21122
+ copyContext: async (e) => TS(t, n, await a(e)),
21085
21123
  select: async (r) => {
21086
21124
  let a = Array.isArray(r) ? [...r] : [String(r)];
21087
- return e.select(a), await IS(t, n), i({ scope: "selection" });
21125
+ return e.select(a), await LS(t, n), i({ scope: "selection" });
21088
21126
  },
21089
21127
  annotations: async () => e.annotations(),
21090
21128
  removeAnnotation: async (r) => {
21091
- e.removeAnnotation(r), await IS(t, n);
21129
+ e.removeAnnotation(r), await LS(t, n);
21092
21130
  },
21093
21131
  review: async (i) => {
21094
- if (await IS(t, n), i) return CS({
21132
+ if (await LS(t, n), i) return wS({
21095
21133
  runtime: e,
21096
21134
  ownerDocument: t,
21097
21135
  ownerWindow: n,
@@ -21099,7 +21137,7 @@ var TS = Kv, ES = qv, DS = () => ({
21099
21137
  layoutGuides: r()
21100
21138
  });
21101
21139
  let a = r();
21102
- return e.annotations().map((r) => CS({
21140
+ return e.annotations().map((r) => wS({
21103
21141
  runtime: e,
21104
21142
  ownerDocument: t,
21105
21143
  ownerWindow: n,
@@ -21107,38 +21145,38 @@ var TS = Kv, ES = qv, DS = () => ({
21107
21145
  layoutGuides: a
21108
21146
  }));
21109
21147
  },
21110
- capturePlan: async (e) => yS(await i(e)),
21148
+ capturePlan: async (e) => bS(await i(e)),
21111
21149
  prepareCapture: async () => {
21112
- e.prepareCapture(), await IS(t, n);
21150
+ e.prepareCapture(), await LS(t, n);
21113
21151
  },
21114
21152
  finishCapture: async () => {
21115
- e.finishCapture(), await IS(t, n);
21153
+ e.finishCapture(), await LS(t, n);
21116
21154
  }
21117
21155
  };
21118
- }, RS = (e) => {
21156
+ }, zS = (e) => {
21119
21157
  let t = e.currentSelection();
21120
21158
  return t.elements.length > 0 || t.region !== null;
21121
21159
  };
21122
- function zS(e = {}) {
21160
+ function BS(e = {}) {
21123
21161
  return {
21124
- id: OS,
21125
- version: Yx,
21162
+ id: kS,
21163
+ version: Xx,
21126
21164
  requires: ["runtime:solid"],
21127
- provides: [kS],
21165
+ provides: [AS],
21128
21166
  setup(t) {
21129
21167
  let n = t.service.get("runtime:solid");
21130
21168
  if (!n) throw Error("Mesurer context plugin requires the renderer runtime service.");
21131
- let r = n.createWorkspaceRuntime(OS), i = LS(r, n.ownerDocument, n.ownerWindow, () => t.service.get(ES)?.list() ?? []);
21132
- t.service.provide(kS, i), t.state.register({
21133
- id: AS,
21169
+ let r = n.createWorkspaceRuntime(kS), i = RS(r, n.ownerDocument, n.ownerWindow, () => t.service.get(DS)?.list() ?? []);
21170
+ t.service.provide(AS, i), t.state.register({
21171
+ id: jS,
21134
21172
  initial: { ui: e.ui ?? !0 },
21135
21173
  persist: !0
21136
21174
  }), t.state.register({
21137
- id: jS,
21138
- initial: { hasSelection: RS(r) }
21175
+ id: MS,
21176
+ initial: { hasSelection: zS(r) }
21139
21177
  });
21140
- let a = () => t.state.get("mesurer.context.settings")?.ui ?? !0, o = () => t.state.get(jS)?.hasSelection === !0, s = (e) => {
21141
- t.state.update(AS, (t) => ({
21178
+ let a = () => t.state.get("mesurer.context.settings")?.ui ?? !0, o = () => t.state.get(MS)?.hasSelection === !0, s = (e) => {
21179
+ t.state.update(jS, (t) => ({
21142
21180
  ...t,
21143
21181
  ui: e
21144
21182
  }));
@@ -21152,12 +21190,12 @@ function zS(e = {}) {
21152
21190
  region: e.region ? { ...e.region } : null
21153
21191
  }, r.selectGestureActive() ? c?.abandonNoteComposer() : n && c?.closeNoteComposer();
21154
21192
  let i = e.elements.length > 0 || e.region !== null;
21155
- i !== (t.state.get(jS)?.hasSelection ?? !1) && t.state.update(jS, () => ({ hasSelection: i }));
21193
+ i !== (t.state.get(MS)?.hasSelection ?? !1) && t.state.update(MS, () => ({ hasSelection: i }));
21156
21194
  });
21157
21195
  t.command.register("context.copy", () => i.copyContext()), t.command.register("context.copy-selection", () => i.copyContext({ scope: "selection" }));
21158
21196
  let g = () => {
21159
21197
  let e = u?.element;
21160
- e && (n.rendererRoot?.hasAttribute(MS) ? e.setAttribute(MS, "true") : e.removeAttribute(MS));
21198
+ e && (n.rendererRoot?.hasAttribute(NS) ? e.setAttribute(NS, "true") : e.removeAttribute(NS));
21161
21199
  }, _ = () => {
21162
21200
  d?.disconnect(), d = null, c = null, l?.(), l = null, u?.dispose(), u = null;
21163
21201
  }, v = () => {
@@ -21166,7 +21204,7 @@ function zS(e = {}) {
21166
21204
  let e = new n.ownerWindow.MutationObserver(g);
21167
21205
  d = e, e.observe(n.rendererRoot, {
21168
21206
  attributes: !0,
21169
- attributeFilter: [MS]
21207
+ attributeFilter: [NS]
21170
21208
  }), g();
21171
21209
  }
21172
21210
  let e = {
@@ -21190,7 +21228,7 @@ function zS(e = {}) {
21190
21228
  command: "context.copy",
21191
21229
  order: 70,
21192
21230
  toolbarMode: "always",
21193
- icon: NS,
21231
+ icon: PS,
21194
21232
  hidden: () => !a()
21195
21233
  }), t.tool.register({
21196
21234
  id: "context.copy-selection",
@@ -21199,7 +21237,7 @@ function zS(e = {}) {
21199
21237
  command: "context.copy-selection",
21200
21238
  order: 71,
21201
21239
  toolbarMode: "always",
21202
- icon: PS,
21240
+ icon: FS,
21203
21241
  hidden: () => !a(),
21204
21242
  disabled: () => !o()
21205
21243
  }), t.tool.register({
@@ -21209,7 +21247,7 @@ function zS(e = {}) {
21209
21247
  command: "context.add-note",
21210
21248
  order: 72,
21211
21249
  toolbarMode: "always",
21212
- icon: FS,
21250
+ icon: IS,
21213
21251
  hidden: () => !a(),
21214
21252
  disabled: () => !o()
21215
21253
  }), t.settings.register({
@@ -21232,7 +21270,7 @@ function zS(e = {}) {
21232
21270
  }
21233
21271
  //#endregion
21234
21272
  //#region src/host-layer.ts
21235
- var BS = {
21273
+ var VS = {
21236
21274
  display: "block",
21237
21275
  position: "fixed",
21238
21276
  inset: "0",
@@ -21274,48 +21312,48 @@ var BS = {
21274
21312
  "letter-spacing": "normal",
21275
21313
  direction: "ltr"
21276
21314
  };
21277
- function VS(e) {
21278
- for (let [t, n] of Object.entries(BS)) e.style.setProperty(t, n, "important");
21279
- }
21280
21315
  function HS(e) {
21316
+ for (let [t, n] of Object.entries(VS)) e.style.setProperty(t, n, "important");
21317
+ }
21318
+ function US(e) {
21281
21319
  return "popover" in e && "showPopover" in e && typeof e.showPopover == "function" && "hidePopover" in e && typeof e.hidePopover == "function";
21282
21320
  }
21283
- var US = (e) => "newState" in e, WS = (e) => e.localName === "dialog";
21284
- function GS(e) {
21285
- if (!WS(e) || !e.open) return !1;
21321
+ var WS = (e) => "newState" in e, GS = (e) => e.localName === "dialog";
21322
+ function KS(e) {
21323
+ if (!GS(e) || !e.open) return !1;
21286
21324
  try {
21287
21325
  return e.matches(":modal");
21288
21326
  } catch {
21289
21327
  return !1;
21290
21328
  }
21291
21329
  }
21292
- function KS(e, t, n = !0) {
21293
- VS(e);
21330
+ function qS(e, t, n = !0) {
21331
+ HS(e);
21294
21332
  let r = e.ownerDocument, i = r.defaultView ?? window, a = t, o = !1, s = "fixed", c = !1, l = 0, u = [];
21295
- if (n && HS(e) && (e.popover = "manual"), t.append(e), n && HS(e)) try {
21333
+ if (n && US(e) && (e.popover = "manual"), t.append(e), n && US(e)) try {
21296
21334
  e.showPopover(), c = e.matches(":popover-open"), c && (s = "top-layer");
21297
21335
  } catch {
21298
21336
  e.removeAttribute("popover");
21299
21337
  }
21300
21338
  let d = () => {
21301
- if (!(!c || !HS(e))) try {
21339
+ if (!(!c || !US(e))) try {
21302
21340
  e.matches(":popover-open") || e.showPopover();
21303
21341
  } catch {}
21304
21342
  }, f = (t) => {
21305
21343
  if (e.parentNode === t) return;
21306
- let n = c && HS(e) && e.matches(":popover-open");
21307
- if (n && HS(e)) try {
21344
+ let n = c && US(e) && e.matches(":popover-open");
21345
+ if (n && US(e)) try {
21308
21346
  e.hidePopover();
21309
21347
  } catch {}
21310
- t.append(e), VS(e), n && d();
21348
+ t.append(e), HS(e), n && d();
21311
21349
  }, p = () => {
21312
- u = u.filter((e) => e.isConnected && GS(e)), f(u.at(-1) ?? a);
21350
+ u = u.filter((e) => e.isConnected && KS(e)), f(u.at(-1) ?? a);
21313
21351
  }, m = (e) => {
21314
21352
  u = u.filter((t) => t !== e), u.push(e), p();
21315
21353
  }, h = (e) => {
21316
21354
  u = u.filter((t) => t !== e), p();
21317
21355
  }, g = () => {
21318
- if (!(o || !c || !HS(e))) try {
21356
+ if (!(o || !c || !US(e))) try {
21319
21357
  e.matches(":popover-open") && e.hidePopover(), e.showPopover();
21320
21358
  } catch {}
21321
21359
  }, _ = () => {
@@ -21324,27 +21362,27 @@ function KS(e, t, n = !0) {
21324
21362
  }));
21325
21363
  }, v = (t) => {
21326
21364
  if (!c || t.target === e) return;
21327
- let n = US(t) ? t.newState : void 0, r = t.target;
21365
+ let n = WS(t) ? t.newState : void 0, r = t.target;
21328
21366
  if (r instanceof i.Element) {
21329
- if (WS(r)) {
21330
- n === "open" && GS(r) ? (m(r), _()) : n === "closed" ? h(r) : n === "open" && _();
21367
+ if (GS(r)) {
21368
+ n === "open" && KS(r) ? (m(r), _()) : n === "closed" ? h(r) : n === "open" && _();
21331
21369
  return;
21332
21370
  }
21333
21371
  n === "open" && r.hasAttribute("popover") && _();
21334
21372
  }
21335
21373
  }, y = (e) => {
21336
21374
  let t = e.target;
21337
- t instanceof i.Element && WS(t) && h(t);
21375
+ t instanceof i.Element && GS(t) && h(t);
21338
21376
  }, b = () => {
21339
21377
  r.fullscreenElement && _();
21340
21378
  }, x = (e) => {
21341
- GS(e) && m(e);
21342
- for (let t of e.querySelectorAll("dialog")) GS(t) && m(t);
21379
+ KS(e) && m(e);
21380
+ for (let t of e.querySelectorAll("dialog")) KS(t) && m(t);
21343
21381
  }, S = new i.MutationObserver((e) => {
21344
21382
  if (c) for (let t of e) {
21345
21383
  if (t.type === "attributes") {
21346
21384
  let e = t.target;
21347
- e instanceof i.Element && WS(e) && (GS(e) ? m(e) : h(e));
21385
+ e instanceof i.Element && GS(e) && (KS(e) ? m(e) : h(e));
21348
21386
  }
21349
21387
  for (let e of t.addedNodes) e instanceof i.Element && x(e);
21350
21388
  u.some((e) => !e.isConnected) && p();
@@ -21360,7 +21398,7 @@ function KS(e, t, n = !0) {
21360
21398
  bringToFront: g,
21361
21399
  dispose() {
21362
21400
  if (!o) {
21363
- 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 && HS(e) && e.matches(":popover-open")) try {
21401
+ 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 && US(e) && e.matches(":popover-open")) try {
21364
21402
  e.hidePopover();
21365
21403
  } catch {}
21366
21404
  u = [];
@@ -21370,28 +21408,28 @@ function KS(e, t, n = !0) {
21370
21408
  }
21371
21409
  //#endregion
21372
21410
  //#region src/plugins/codex/index.ts
21373
- var qS = "mesurer.codex", JS = "codex:v1", YS = "mesurer.plugin.before-disable", XS = 2e3, ZS = 750, QS = 1800, $S = 2e3, eC = 12e4, tC = 10, nC = 5, rC = "Codex host connection is unavailable. Electron apps must expose window.__MESURER_HOST__.codexBridge from preload.", iC = [
21411
+ var JS = "mesurer.codex", YS = "codex:v1", XS = "mesurer.plugin.before-disable", ZS = 2e3, QS = 750, $S = 1800, eC = 2e3, tC = 12e4, nC = 10, rC = 5, iC = "Codex host connection is unavailable. Electron apps must expose window.__MESURER_HOST__.codexBridge from preload.", aC = [
21374
21412
  "Implement the current human feedback from Mesurer in this project.",
21375
21413
  "Treat the rendered page as the source of truth, preserve unrelated Mesurer review state,",
21376
21414
  "and verify the affected UI in the live page with Mesurer before claiming completion."
21377
- ].join(" "), aC = {
21415
+ ].join(" "), oC = {
21378
21416
  viewBox: "0 0 256 256",
21379
21417
  paths: ["M224,48,32,120l88,32,32,88Z M120,152l104-104"]
21380
- }, oC = {
21418
+ }, sC = {
21381
21419
  viewBox: "0 0 256 256",
21382
21420
  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"]
21383
- }, sC = {
21421
+ }, cC = {
21384
21422
  viewBox: "0 0 256 256",
21385
21423
  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"]
21386
- }, cC = () => {
21424
+ }, lC = () => {
21387
21425
  try {
21388
21426
  let e = globalThis.location;
21389
21427
  return e?.origin ? `mesurer-codex-ui:v2:${e.origin}${e.pathname}` : null;
21390
21428
  } catch {
21391
21429
  return null;
21392
21430
  }
21393
- }, lC = () => {
21394
- let e = cC();
21431
+ }, uC = () => {
21432
+ let e = lC();
21395
21433
  if (!e) return null;
21396
21434
  try {
21397
21435
  let t = globalThis.sessionStorage?.getItem(e);
@@ -21416,18 +21454,18 @@ var qS = "mesurer.codex", JS = "codex:v1", YS = "mesurer.plugin.before-disable",
21416
21454
  } catch {
21417
21455
  return null;
21418
21456
  }
21419
- }, uC = (e) => {
21420
- let t = cC();
21457
+ }, dC = (e) => {
21458
+ let t = lC();
21421
21459
  if (t) try {
21422
21460
  globalThis.sessionStorage?.setItem(t, JSON.stringify(e));
21423
21461
  } catch {}
21424
- }, dC = async (e) => {
21462
+ }, fC = async (e) => {
21425
21463
  let t = window.__MESURER_HOST__?.codexBridge;
21426
- if (!t) throw Error(rC);
21464
+ if (!t) throw Error(iC);
21427
21465
  let n = await t(e);
21428
21466
  if (n.ok === !1) throw Error(n.error ?? "Codex Bridge request failed.");
21429
21467
  return n;
21430
- }, fC = (e) => {
21468
+ }, pC = (e) => {
21431
21469
  let t = e.runtime;
21432
21470
  return !t || ![
21433
21471
  "shared",
@@ -21445,10 +21483,10 @@ var qS = "mesurer.codex", JS = "codex:v1", YS = "mesurer.plugin.before-disable",
21445
21483
  available: t.available === !0,
21446
21484
  reason: t.reason
21447
21485
  };
21448
- }, pC = (e) => ({
21486
+ }, mC = (e) => ({
21449
21487
  thread: e.thread?.trim() || null,
21450
21488
  threads: Array.isArray(e.threads) ? e.threads.filter((e) => e.trim().length > 0) : []
21451
- }), mC = (e) => {
21489
+ }), hC = (e) => {
21452
21490
  let t = e.deliveryId?.trim(), n = e.thread?.trim(), r = e.status;
21453
21491
  if (!t || !n || !r) throw Error("Codex Bridge returned an invalid delivery state.");
21454
21492
  let i = {
@@ -21460,7 +21498,7 @@ var qS = "mesurer.codex", JS = "codex:v1", YS = "mesurer.plugin.before-disable",
21460
21498
  updatedAt: Number.isFinite(e.updatedAt) ? Number(e.updatedAt) : 0
21461
21499
  };
21462
21500
  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;
21463
- }, hC = (e) => ({
21501
+ }, gC = (e) => ({
21464
21502
  thread: e.thread?.trim() || null,
21465
21503
  threads: Array.isArray(e.threadDetails) ? e.threadDetails.flatMap((e) => {
21466
21504
  let t = e.id?.trim() ?? "";
@@ -21472,7 +21510,7 @@ var qS = "mesurer.codex", JS = "codex:v1", YS = "mesurer.plugin.before-disable",
21472
21510
  }] : [];
21473
21511
  }) : [],
21474
21512
  hasMore: e.hasMore === !0
21475
- }), gC = async (e, t, n) => {
21513
+ }), _C = async (e, t, n) => {
21476
21514
  let r = t?.instruction?.trim() || n, i = await e.annotations(), a = t?.annotationIds, o = a ? a.flatMap((e) => {
21477
21515
  let t = i.find((t) => t.id === e);
21478
21516
  return t ? [t] : [];
@@ -21495,18 +21533,18 @@ var qS = "mesurer.codex", JS = "codex:v1", YS = "mesurer.plugin.before-disable",
21495
21533
  ])
21496
21534
  ].join("\n").trimEnd()
21497
21535
  };
21498
- }, _C = (e) => e.length > 16 ? `${e.slice(0, 8)}…${e.slice(-4)}` : e, vC = (e, t = 42) => e.length > t ? `${e.slice(0, t - 1)}…` : e, yC = (e) => e instanceof Error && (e.message === rC || e.message === "Codex Bridge is unavailable in this host." || e.message.includes("Codex Bridge lease"));
21499
- function bC(e = {}) {
21500
- let t = e.instruction?.trim() || iC, n = e.ui ?? !0, r = e.clearCompletedAnnotations ?? !0;
21536
+ }, vC = (e) => e.length > 16 ? `${e.slice(0, 8)}…${e.slice(-4)}` : e, yC = (e, t = 42) => e.length > t ? `${e.slice(0, t - 1)}…` : e, bC = (e) => e instanceof Error && (e.message === iC || e.message === "Codex Bridge is unavailable in this host." || e.message.includes("Codex Bridge lease"));
21537
+ function xC(e = {}) {
21538
+ let t = e.instruction?.trim() || aC, n = e.ui ?? !0, r = e.clearCompletedAnnotations ?? !0;
21501
21539
  return {
21502
- id: qS,
21503
- version: Yx,
21504
- requires: [kS],
21505
- provides: [JS],
21540
+ id: JS,
21541
+ version: Xx,
21542
+ requires: [AS],
21543
+ provides: [YS],
21506
21544
  async setup(e) {
21507
- let i = e.service.get(kS);
21545
+ let i = e.service.get(AS);
21508
21546
  if (!i) throw Error("Mesurer Codex plugin requires context() from mesurer-solid/plugins.");
21509
- let a = n ? lC() : null, o = "unknown", s = null, c = !1, l = a?.originThread ?? null, u = a?.selectedThread ?? a?.originThread ?? null, d = !1, f = null, p = [], m = [], h = !1, g = nC, _, v = "", y = null, b = a?.delivery ? {
21547
+ let a = n ? uC() : null, o = "unknown", s = null, c = !1, l = a?.originThread ?? null, u = a?.selectedThread ?? a?.originThread ?? null, d = !1, f = null, p = [], m = [], h = !1, g = rC, _, v = "", y = null, b = a?.delivery ? {
21510
21548
  id: a.delivery.id,
21511
21549
  thread: a.delivery.thread,
21512
21550
  status: a.delivery.status,
@@ -21515,38 +21553,38 @@ function bC(e = {}) {
21515
21553
  dispatch: a.delivery.dispatch ?? null,
21516
21554
  dispatchError: a.delivery.dispatchError ?? null
21517
21555
  } : null, x = 0, S = 0, C = null, w = !1, T = null, E = async (e) => {
21518
- if (e.action === "activate" || e.action === "runtime") return dC(e);
21556
+ if (e.action === "activate" || e.action === "runtime") return fC(e);
21519
21557
  if (!T) throw Error("Codex Bridge lease is not active for this plugin.");
21520
- return dC({
21558
+ return fC({
21521
21559
  ...e,
21522
21560
  leaseId: T
21523
21561
  });
21524
21562
  }, D = async () => {
21525
21563
  let e = T;
21526
21564
  if (e) {
21527
- if ((await dC({
21565
+ if ((await fC({
21528
21566
  action: "deactivate",
21529
21567
  leaseId: e
21530
21568
  })).released !== !0) throw Error("Codex Bridge did not confirm lease release.");
21531
21569
  T = null;
21532
21570
  }
21533
- }, O = await dC({
21571
+ }, O = await fC({
21534
21572
  action: "activate",
21535
21573
  thread: u ?? l ?? void 0
21536
21574
  }), k = O.leaseId?.trim();
21537
21575
  if (!k) throw Error("Codex Bridge did not return an activation lease.");
21538
- T = k, o = "available", s = fC(O);
21539
- let A = pC(O);
21576
+ T = k, o = "available", s = pC(O);
21577
+ let A = mC(O);
21540
21578
  c = !0, f = A.thread, p = A.threads, e.lifecycle.onDispose(() => {
21541
21579
  T && D().catch((e) => {
21542
21580
  let t = e instanceof Error ? e.message : String(e);
21543
21581
  console.error(`[Mesurer] Failed to release Codex host lease: ${t}`);
21544
21582
  });
21545
- }), e.hook.on(YS, async (e) => {
21583
+ }), e.hook.on(XS, async (e) => {
21546
21584
  e === "mesurer.codex" && await D();
21547
21585
  });
21548
21586
  let j = async () => {
21549
- let e = fC(await E({ action: "runtime" }));
21587
+ let e = pC(await E({ action: "runtime" }));
21550
21588
  if (!e) throw Error("Codex Bridge returned an invalid runtime state.");
21551
21589
  return s = e, e;
21552
21590
  }, M = async () => {
@@ -21554,8 +21592,8 @@ function bC(e = {}) {
21554
21592
  action: "health",
21555
21593
  thread: u ?? l ?? void 0
21556
21594
  });
21557
- return s = fC(e) ?? s, pC(e);
21558
- }, N = M, P = async (e) => mC(await E({
21595
+ return s = pC(e) ?? s, mC(e);
21596
+ }, N = M, P = async (e) => hC(await E({
21559
21597
  action: "delivery",
21560
21598
  deliveryId: e
21561
21599
  })), F = async (e) => {
@@ -21565,13 +21603,13 @@ function bC(e = {}) {
21565
21603
  deliveryId: e.id,
21566
21604
  thread: e.thread
21567
21605
  };
21568
- return e.queuedSubmissionId && (t.queuedSubmissionId = e.queuedSubmissionId), mC(await E(t));
21606
+ return e.queuedSubmissionId && (t.queuedSubmissionId = e.queuedSubmissionId), hC(await E(t));
21569
21607
  }, I = async (e = {}) => {
21570
21608
  let t = {
21571
21609
  action: "threads",
21572
- limit: e.limit ?? tC
21610
+ limit: e.limit ?? nC
21573
21611
  }, n = e.thread?.trim();
21574
- return n && (t.thread = n), hC(await E(t));
21612
+ return n && (t.thread = n), gC(await E(t));
21575
21613
  }, L = () => u ?? l ?? (d ? null : f), R = () => {
21576
21614
  if (!n) return;
21577
21615
  let e = b?.id && (b.status === "queued" || b.status === "working" || b.status === "interrupted") ? {
@@ -21583,7 +21621,7 @@ function bC(e = {}) {
21583
21621
  dispatch: b.dispatch,
21584
21622
  dispatchError: b.dispatchError
21585
21623
  } : null;
21586
- uC({
21624
+ dC({
21587
21625
  version: 1,
21588
21626
  originThread: l,
21589
21627
  selectedThread: u,
@@ -21601,12 +21639,12 @@ function bC(e = {}) {
21601
21639
  "queueing",
21602
21640
  "queued",
21603
21641
  "working"
21604
- ].includes(b.status) ? oC : b.status === "completed" ? sC : aC : aC, W = () => {
21642
+ ].includes(b.status) ? sC : b.status === "completed" ? cC : oC : oC, W = () => {
21605
21643
  let e = [], t = /* @__PURE__ */ new Set(), n = (n) => {
21606
21644
  t.has(n.id) || (t.add(n.id), e.push(n));
21607
21645
  }, r = (e) => ({
21608
21646
  id: e,
21609
- title: `Codex ${_C(e)}`,
21647
+ title: `Codex ${vC(e)}`,
21610
21648
  updatedAt: null,
21611
21649
  connected: !0
21612
21650
  });
@@ -21634,7 +21672,7 @@ function bC(e = {}) {
21634
21672
  let t = e.id === l ? "Current · " : e.connected ? "Loaded · " : "", r = b?.thread === e.id ? ` · ${V(b.status)}` : "";
21635
21673
  return {
21636
21674
  id: `codex.thread.${e.id}`,
21637
- label: `${t}${vC(e.title)}${r}`,
21675
+ label: `${t}${yC(e.title)}${r}`,
21638
21676
  checked: () => n === e.id,
21639
21677
  disabled: () => B(),
21640
21678
  run() {
@@ -21642,15 +21680,15 @@ function bC(e = {}) {
21642
21680
  }
21643
21681
  };
21644
21682
  });
21645
- return g < tC && (e.length > g || h) && r.push({
21683
+ return g < nC && (e.length > g || h) && r.push({
21646
21684
  id: "codex.thread.show-more",
21647
21685
  label: "Show 5 more…",
21648
21686
  run() {
21649
- g = tC, G();
21687
+ g = nC, G();
21650
21688
  }
21651
21689
  }), b?.queuedSubmissionId && b.status === "queued" && (b.dispatch === "desktop-opened" || b.dispatch === "desktop-wake-failed") && r.push({
21652
21690
  id: "codex.delivery.receipt",
21653
- label: `Receipt · ${_C(b.queuedSubmissionId)}`,
21691
+ label: `Receipt · ${vC(b.queuedSubmissionId)}`,
21654
21692
  disabled: () => !0,
21655
21693
  run: () => void 0
21656
21694
  }), r;
@@ -21687,7 +21725,7 @@ function bC(e = {}) {
21687
21725
  }, ne = async (e) => {
21688
21726
  if (o !== "available") return;
21689
21727
  let t = await I({
21690
- limit: tC,
21728
+ limit: nC,
21691
21729
  thread: e ?? void 0
21692
21730
  });
21693
21731
  m = t.threads, h = t.hasMore, p = t.threads.filter((e) => e.connected).map((e) => e.id), f = t.thread;
@@ -21709,7 +21747,7 @@ function bC(e = {}) {
21709
21747
  }, ie = () => {
21710
21748
  S && globalThis.clearTimeout(S), S = globalThis.setTimeout(() => {
21711
21749
  S = 0, b?.status === "completed" && (b = null, R(), G());
21712
- }, QS);
21750
+ }, $S);
21713
21751
  }, ae = async (e) => {
21714
21752
  if (!(!b || b.id !== e.id)) {
21715
21753
  if (b = {
@@ -21731,14 +21769,14 @@ function bC(e = {}) {
21731
21769
  if (e.status === "interrupted") {
21732
21770
  R(), G();
21733
21771
  let t = e.updatedAt > 0 ? e.updatedAt : Date.now();
21734
- Date.now() - t < eC && (x = globalThis.setTimeout(() => {
21772
+ Date.now() - t < tC && (x = globalThis.setTimeout(() => {
21735
21773
  x = 0, oe(e.id);
21736
- }, $S));
21774
+ }, eC));
21737
21775
  return;
21738
21776
  }
21739
21777
  G(), x = globalThis.setTimeout(() => {
21740
21778
  x = 0, oe(e.id);
21741
- }, ZS);
21779
+ }, QS);
21742
21780
  }
21743
21781
  }, oe = async (e) => {
21744
21782
  if (!(w || b?.id !== e)) try {
@@ -21762,7 +21800,7 @@ function bC(e = {}) {
21762
21800
  b = {
21763
21801
  ...b,
21764
21802
  status: "failed"
21765
- }, R(), yC(n) && (o = "unavailable"), G();
21803
+ }, R(), bC(n) && (o = "unavailable"), G();
21766
21804
  }
21767
21805
  }, se = {
21768
21806
  health: M,
@@ -21774,11 +21812,11 @@ function bC(e = {}) {
21774
21812
  let n = await E({
21775
21813
  action: "target",
21776
21814
  thread: t
21777
- }), r = pC(n);
21778
- return s = fC(n) ?? s, z(t, !l), f = r.thread, p = r.threads, o = "available", c = !0, G(), r;
21815
+ }), r = mC(n);
21816
+ return s = pC(n) ?? s, z(t, !l), f = r.thread, p = r.threads, o = "available", c = !0, G(), r;
21779
21817
  },
21780
21818
  async queue(e) {
21781
- let r = await gC(i, e, t), a = e?.thread?.trim(), s = a || (n ? L() : null);
21819
+ let r = await _C(i, e, t), a = e?.thread?.trim(), s = a || (n ? L() : null);
21782
21820
  if (n && !a && (d || !s)) throw Error("Choose a Codex thread before queueing feedback.");
21783
21821
  let c = { message: r.message };
21784
21822
  s && (c.thread = s);
@@ -21798,14 +21836,14 @@ function bC(e = {}) {
21798
21836
  };
21799
21837
  return e.queuedSubmissionId !== void 0 && (n.queuedSubmissionId = e.queuedSubmissionId?.trim() || null), e.dispatch !== void 0 && (n.dispatch = e.dispatch), e.dispatchError !== void 0 && (n.dispatchError = e.dispatchError?.trim() || null), n;
21800
21838
  } catch (e) {
21801
- throw n && yC(e) && (o = "unavailable", G()), e;
21839
+ throw n && bC(e) && (o = "unavailable", G()), e;
21802
21840
  }
21803
21841
  },
21804
21842
  send(e) {
21805
21843
  return se.queue(e);
21806
21844
  }
21807
21845
  };
21808
- e.service.provide(JS, se);
21846
+ e.service.provide(YS, se);
21809
21847
  let ce = async () => {
21810
21848
  if (!(C || B())) return re(), b = {
21811
21849
  id: null,
@@ -21836,9 +21874,9 @@ function bC(e = {}) {
21836
21874
  updatedAt: 0
21837
21875
  }) : x = globalThis.setTimeout(() => {
21838
21876
  x = 0, oe(e.deliveryId);
21839
- }, ZS) : S = globalThis.setTimeout(() => {
21877
+ }, QS) : S = globalThis.setTimeout(() => {
21840
21878
  S = 0, b?.id === null && b?.status === "queued" && (b = null, R(), G());
21841
- }, QS);
21879
+ }, $S);
21842
21880
  } catch (e) {
21843
21881
  b = null, R(), G();
21844
21882
  let t = e instanceof Error ? e.message : String(e);
@@ -21866,7 +21904,7 @@ function bC(e = {}) {
21866
21904
  }, 0));
21867
21905
  let t = globalThis.setInterval(() => {
21868
21906
  c && ee().catch(() => void 0);
21869
- }, XS);
21907
+ }, ZS);
21870
21908
  e.lifecycle.onDispose(() => {
21871
21909
  w = !0, re(), globalThis.clearInterval(t), _?.dispose(), _ = void 0;
21872
21910
  });
@@ -21876,64 +21914,64 @@ function bC(e = {}) {
21876
21914
  }
21877
21915
  //#endregion
21878
21916
  //#region src/recording.ts
21879
- var xC = vb, SC = (e = {}) => ({
21917
+ var SC = vb, CC = (e = {}) => ({
21880
21918
  ...Bb(e),
21881
- version: Yx
21882
- }), CC = Qb, wC = (e = {}) => ({
21883
- ...vx(e),
21884
- version: Yx
21885
- }), TC = () => globalThis.window?.__MESURER_HOST__?.codexBridge !== void 0, EC = [
21919
+ version: Xx
21920
+ }), wC = $b, TC = (e = {}) => ({
21921
+ ...yx(e),
21922
+ version: Xx
21923
+ }), EC = () => globalThis.window?.__MESURER_HOST__?.codexBridge !== void 0, DC = [
21886
21924
  {
21887
- id: OS,
21925
+ id: kS,
21888
21926
  label: "Context",
21889
21927
  order: 30,
21890
- create: zS,
21928
+ create: BS,
21891
21929
  settingsIds: ["context"],
21892
21930
  hiddenSettingsControlIds: ["ui"]
21893
21931
  },
21894
21932
  {
21895
- id: Xx,
21933
+ id: Zx,
21896
21934
  label: "Edit",
21897
21935
  order: 35,
21898
- create: Qx,
21936
+ create: $x,
21899
21937
  settingsIds: ["arrange"]
21900
21938
  },
21901
21939
  {
21902
- id: TS,
21940
+ id: ES,
21903
21941
  label: "Layout Guides",
21904
21942
  order: 38,
21905
- create: DS
21943
+ create: OS
21906
21944
  },
21907
21945
  {
21908
- id: CC,
21946
+ id: wC,
21909
21947
  label: "Screenshot",
21910
21948
  order: 40,
21911
- create: wC,
21949
+ create: TC,
21912
21950
  settingsIds: ["screenshot"],
21913
21951
  hiddenSettingsControlIds: ["tool"]
21914
21952
  },
21915
21953
  {
21916
- id: xC,
21954
+ id: SC,
21917
21955
  label: "Recording",
21918
21956
  order: 42,
21919
- create: SC,
21957
+ create: CC,
21920
21958
  settingsIds: ["recording"],
21921
21959
  hiddenSettingsControlIds: ["tool"]
21922
21960
  },
21923
21961
  {
21924
- id: qS,
21962
+ id: JS,
21925
21963
  label: "Codex",
21926
21964
  order: 45,
21927
- create: bC
21965
+ create: xC
21928
21966
  }
21929
- ], DC = (e) => {
21930
- let t = e !== void 0, n = new Map((e ?? []).map((e) => [e.id, e])), r = new Set(EC.map((e) => e.id)), i = EC.map((e) => {
21967
+ ], OC = (e) => {
21968
+ let t = e !== void 0, n = new Map((e ?? []).map((e) => [e.id, e])), r = new Set(DC.map((e) => e.id)), i = DC.map((e) => {
21931
21969
  let r = n.get(e.id);
21932
21970
  return {
21933
21971
  ...e,
21934
21972
  settingsIds: e.settingsIds ? [...e.settingsIds] : void 0,
21935
21973
  hiddenSettingsControlIds: e.hiddenSettingsControlIds ? [...e.hiddenSettingsControlIds] : void 0,
21936
- enabled: t ? !!r : e.id === "mesurer.codex" ? TC() : e.enabled !== !1,
21974
+ enabled: t ? !!r : e.id === "mesurer.codex" ? EC() : e.enabled !== !1,
21937
21975
  create: r ? () => r : e.create
21938
21976
  };
21939
21977
  });
@@ -21944,16 +21982,16 @@ var xC = vb, SC = (e = {}) => ({
21944
21982
  create: () => n
21945
21983
  });
21946
21984
  return i;
21947
- }, OC = (e) => e;
21948
- function kC() {
21949
- return lS();
21985
+ }, kC = (e) => e;
21986
+ function AC() {
21987
+ return uS();
21950
21988
  }
21951
- async function AC(e = {}) {
21952
- return uS(e);
21989
+ async function jC(e = {}) {
21990
+ return dS(e);
21953
21991
  }
21954
21992
  //#endregion
21955
21993
  //#region src/index.tsx
21956
- var jC = {
21994
+ var MC = {
21957
21995
  select: "select",
21958
21996
  xray: "xray",
21959
21997
  colorPicker: "color-picker",
@@ -21963,14 +22001,14 @@ var jC = {
21963
22001
  distance: "distance",
21964
22002
  settings: "settings"
21965
22003
  };
21966
- function MC(e = {}) {
22004
+ function NC(e = {}) {
21967
22005
  if (!("document" in globalThis)) throw Error("mountMesurer() requires a browser or Electron renderer document.");
21968
22006
  let { target: t = document.body, isolate: n = !0, shadowMode: r = "open", topLayer: i = !0, agent: a = !1, signal: o, onPluginHost: s, onPluginsReady: c, plugins: l, excludeBuiltins: u, excludePlugins: d, ...f } = e;
21969
22007
  if (o?.aborted) throw o.reason ?? new DOMException("Mesurer mount aborted.", "AbortError");
21970
22008
  if (!t) throw Error("mountMesurer() requires document.body to exist or an explicit target.");
21971
22009
  let p = t.ownerDocument ?? document, m = p.defaultView ?? window, h = p.createElement("div");
21972
22010
  h.dataset.mesurerIsland = "true";
21973
- let g = KS(h, t, i), _ = h, v = h, y = h;
22011
+ let g = qS(h, t, i), _ = h, v = h, y = h;
21974
22012
  if (n) {
21975
22013
  let e = h.attachShadow({ mode: r });
21976
22014
  v = p.createElement("div"), v.dataset.mesurerIslandMount = "true", e.append(v), _ = e, y = e;
@@ -21981,7 +22019,7 @@ function MC(e = {}) {
21981
22019
  C = e, w = t;
21982
22020
  });
21983
22021
  D.catch(() => void 0), O.catch(() => void 0);
21984
- let k = async () => (await (b ? Promise.resolve(b) : D), O), A = a === !0 ? {} : a === !1 ? null : a, j = Jx({
22022
+ let k = async () => (await (b ? Promise.resolve(b) : D), O), A = a === !0 ? {} : a === !1 ? null : a, j = Yx({
21985
22023
  ownerDocument: p,
21986
22024
  root: A?.root ?? (t.nodeType === 11 ? t : p),
21987
22025
  getPluginHost: () => b,
@@ -21993,12 +22031,12 @@ function MC(e = {}) {
21993
22031
  return t;
21994
22032
  }, N = async () => {
21995
22033
  await j.ready();
21996
- let e = b?.service.get(kS);
22034
+ let e = b?.service.get(AS);
21997
22035
  if (!e) throw Error("Mesurer Context is disabled. Enable it in Settings or include context() in plugins.");
21998
22036
  return e;
21999
22037
  }, P = async () => {
22000
22038
  await j.ready();
22001
- let e = b?.service.get($x);
22039
+ let e = b?.service.get(eS);
22002
22040
  if (!e) throw Error("Mesurer Edit is disabled. Enable it in Settings or include edit() in plugins.");
22003
22041
  return e;
22004
22042
  }, F = async (e) => (await N()).context(e), I = async (e) => (await N()).contextText(e), L = async (e) => (await N()).copyContext(e), R = async (e) => (await N()).select(e), z = async () => (await N()).annotations(), B = async (e) => (await N()).review(e), V = async (e) => (await N()).capturePlan(e), H = async () => (await N()).prepareCapture(), U = async () => (await N()).finishCapture(), W = async () => (await P()).intents(), ee = async (e) => {
@@ -22009,7 +22047,7 @@ function MC(e = {}) {
22009
22047
  (await P()).show(e, t);
22010
22048
  }, G = async (e, t) => (await P()).capturePlan(e, t), ne = async (e, t) => (await P()).review(e, t), re = () => j.textEdits(), ie = (e) => j.textEdit(e), ae = Object.assign(j, {
22011
22049
  capabilities: () => {
22012
- let e = !!b?.service.get(kS);
22050
+ let e = !!b?.service.get(AS);
22013
22051
  return {
22014
22052
  protocol: "mesurer.agent/v1",
22015
22053
  contextSchema: "mesurer.context/v1",
@@ -22019,8 +22057,8 @@ function MC(e = {}) {
22019
22057
  annotations: e,
22020
22058
  review: e,
22021
22059
  capturePlan: e,
22022
- arrange: !!b?.service.get($x),
22023
- textEdit: !!b?.service.get(Kx)
22060
+ arrange: !!b?.service.get(eS),
22061
+ textEdit: !!b?.service.get(qx)
22024
22062
  }
22025
22063
  };
22026
22064
  },
@@ -22039,9 +22077,9 @@ function MC(e = {}) {
22039
22077
  reviewArrange: ne
22040
22078
  }), oe = {
22041
22079
  ...f,
22042
- version: Yx,
22043
- plugins: DC(l),
22044
- excludePlugins: u ? u.map((e) => jC[e]) : [...d ?? []]
22080
+ version: Xx,
22081
+ plugins: OC(l),
22082
+ excludePlugins: u ? u.map((e) => MC[e]) : [...d ?? []]
22045
22083
  }, se = Oi(() => Yr(rv, Di(oe, {
22046
22084
  portalTarget: y,
22047
22085
  pageTarget: t,
@@ -22110,6 +22148,6 @@ function MC(e = {}) {
22110
22148
  }
22111
22149
  return me;
22112
22150
  }
22113
- var NC = MC;
22151
+ var PC = NC;
22114
22152
  //#endregion
22115
- export { Kx as MESURER_TEXT_EDIT_SERVICE_ID, Yx as MESURER_VERSION, hS as captureMesurerContext, wS as copyTextToClipboard, Jx as createMesurerAgentHarness, yS as createMesurerCapturePlan, kC as createMesurerPluginHost, AC as createMesurerRuntime, OC as defineMesurerPlugin, vS as formatMesurerContext, NC as mountMeasurer, MC as mountMesurer, CS as reviewMesurerAnnotation };
22153
+ export { qx as MESURER_TEXT_EDIT_SERVICE_ID, Xx as MESURER_VERSION, gS as captureMesurerContext, TS as copyTextToClipboard, Yx as createMesurerAgentHarness, bS as createMesurerCapturePlan, AC as createMesurerPluginHost, jC as createMesurerRuntime, kC as defineMesurerPlugin, yS as formatMesurerContext, PC as mountMeasurer, NC as mountMesurer, wS as reviewMesurerAnnotation };