mesurer-solid 0.1.9 → 0.2.0-beta.0
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/AGENT_INTEGRATION.md +3 -1
- package/README.md +3 -3
- package/dist/index.js +2110 -1992
- package/dist/inject-script.js +17 -14
- package/dist/inject.js +2105 -1987
- package/dist/plugins.js +547 -547
- package/package.json +1 -1
- package/skills/mesurer-ui/SKILL.md +3 -1
package/dist/plugins.js
CHANGED
|
@@ -2103,40 +2103,202 @@ var ar = (e) => e, or = (e, t = 0, n = 1) => Math.min(n, Math.max(t, e)), sr = (
|
|
|
2103
2103
|
e.blue
|
|
2104
2104
|
].map((e) => ur(e).toString(16).padStart(2, "0")).join("");
|
|
2105
2105
|
return e.alpha >= .999 ? `#${t}` : `#${t}${Math.round(e.alpha * 255).toString(16).padStart(2, "0")}`;
|
|
2106
|
-
}, fr =
|
|
2106
|
+
}, fr = "mesurer:capture-bridge-ping", pr = "mesurer:capture-bridge-request", mr = "mesurer:capture-bridge-response", hr = (e) => e.__MESURER_HOST__?.captureScreenshot, gr = (e) => {
|
|
2107
|
+
if (e instanceof Blob) return e;
|
|
2108
|
+
if (e instanceof Uint8Array) {
|
|
2109
|
+
let t = new Uint8Array(e.byteLength);
|
|
2110
|
+
return t.set(e), new Blob([t.buffer], { type: "image/png" });
|
|
2111
|
+
}
|
|
2112
|
+
if (e instanceof ArrayBuffer) return new Blob([e.slice(0)], { type: "image/png" });
|
|
2113
|
+
if (e == null) throw Error("Host screenshot capture returned no PNG data.");
|
|
2114
|
+
if (!e.png) throw Error("Host screenshot capture returned unsupported PNG data.");
|
|
2115
|
+
return gr(e.png);
|
|
2116
|
+
}, _r = async (e) => {
|
|
2117
|
+
let t = hr(e);
|
|
2118
|
+
return t ? gr(await t()) : null;
|
|
2119
|
+
}, vr = (e, t, n) => {
|
|
2120
|
+
let r = Math.max(0, Math.min(e.x, t.x, n.width)), i = Math.max(0, Math.min(e.y, t.y, n.height)), a = Math.max(0, Math.min(Math.max(e.x, t.x), n.width)), o = Math.max(0, Math.min(Math.max(e.y, t.y), n.height));
|
|
2121
|
+
return {
|
|
2122
|
+
left: r,
|
|
2123
|
+
top: i,
|
|
2124
|
+
width: Math.max(0, a - r),
|
|
2125
|
+
height: Math.max(0, o - i)
|
|
2126
|
+
};
|
|
2127
|
+
}, yr = async (e, t, n, r) => {
|
|
2128
|
+
let i = await createImageBitmap(e);
|
|
2129
|
+
try {
|
|
2130
|
+
let e = i.width / n.width, a = i.height / n.height, o = Math.max(0, Math.round(t.left * e)), s = Math.max(0, Math.round(t.top * a)), c = Math.max(1, Math.min(i.width - o, Math.round(t.width * e))), l = Math.max(1, Math.min(i.height - s, Math.round(t.height * a))), u = r.createElement("canvas");
|
|
2131
|
+
u.width = c, u.height = l;
|
|
2132
|
+
let d = u.getContext("2d");
|
|
2133
|
+
if (!d) throw Error("Could not crop screenshot");
|
|
2134
|
+
return d.drawImage(i, o, s, c, l, 0, 0, c, l), await new Promise((e, t) => {
|
|
2135
|
+
u.toBlob((n) => {
|
|
2136
|
+
n ? e(n) : t(/* @__PURE__ */ Error("Could not crop screenshot"));
|
|
2137
|
+
}, "image/png");
|
|
2138
|
+
});
|
|
2139
|
+
} finally {
|
|
2140
|
+
i.close();
|
|
2141
|
+
}
|
|
2142
|
+
}, br = async (e, t) => {
|
|
2143
|
+
let n = t.navigator.clipboard, r = globalThis.ClipboardItem;
|
|
2144
|
+
if (!n?.write || !r) throw Error("PNG clipboard copy is not available");
|
|
2145
|
+
await n.write([new r({ "image/png": e })]);
|
|
2146
|
+
}, xr = (e = /* @__PURE__ */ new Date()) => {
|
|
2147
|
+
let t = (e) => String(e).padStart(2, "0");
|
|
2148
|
+
return `mesurer-${e.getFullYear()}-${t(e.getMonth() + 1)}-${t(e.getDate())}-${t(e.getHours())}${t(e.getMinutes())}${t(e.getSeconds())}.png`;
|
|
2149
|
+
}, Sr = (e, t, n, r) => {
|
|
2150
|
+
let i = globalThis.URL.createObjectURL(e), a = n.createElement("a");
|
|
2151
|
+
a.href = i, a.download = t, a.rel = "noopener", n.documentElement.append(a), a.click(), a.remove(), r.setTimeout(() => globalThis.URL.revokeObjectURL(i), 1e3);
|
|
2152
|
+
}, Cr = (e) => new Promise((t) => {
|
|
2153
|
+
e.requestAnimationFrame(() => {
|
|
2154
|
+
e.requestAnimationFrame(() => t());
|
|
2155
|
+
});
|
|
2156
|
+
}), wr = (e) => e.crypto?.randomUUID?.() ?? `mesurer-${Date.now()}-${Math.random().toString(36).slice(2)}`, Tr = (e, t, n = "") => `${e}:${t}:${n}`, Er = (e) => e.location.origin === "null" ? "*" : e.location.origin, Dr = (e, t, n) => {
|
|
2157
|
+
let r = `${t}:${n}:`;
|
|
2158
|
+
return e.startsWith(r) ? e.slice(r.length) : null;
|
|
2159
|
+
}, Or = (e) => new Promise((t) => {
|
|
2160
|
+
let n = wr(e), r = e.location.origin, i = (o) => {
|
|
2161
|
+
o.source === e && o.origin === r && Dr(String(o.data ?? ""), "mesurer:capture-bridge-pong", n) !== null && (e.removeEventListener("message", i), e.clearTimeout(a), t(!0));
|
|
2162
|
+
}, a = e.setTimeout(() => {
|
|
2163
|
+
e.removeEventListener("message", i), t(!1);
|
|
2164
|
+
}, 80);
|
|
2165
|
+
e.addEventListener("message", i), e.postMessage(Tr(fr, n), Er(e));
|
|
2166
|
+
}), kr = (e) => new Promise((t, n) => {
|
|
2167
|
+
let r = wr(e), i = e.location.origin, a = (s) => {
|
|
2168
|
+
if (s.source !== e || s.origin !== i) return;
|
|
2169
|
+
let c = Dr(String(s.data ?? ""), mr, r);
|
|
2170
|
+
if (c === null) return;
|
|
2171
|
+
if (e.removeEventListener("message", a), e.clearTimeout(o), !c.startsWith("ok:")) {
|
|
2172
|
+
t(null);
|
|
2173
|
+
return;
|
|
2174
|
+
}
|
|
2175
|
+
let l = c.slice(3);
|
|
2176
|
+
if (!l) {
|
|
2177
|
+
t(null);
|
|
2178
|
+
return;
|
|
2179
|
+
}
|
|
2180
|
+
e.fetch(l).then((e) => e.blob()).then(t, n);
|
|
2181
|
+
}, o = e.setTimeout(() => {
|
|
2182
|
+
e.removeEventListener("message", a), t(null);
|
|
2183
|
+
}, 4e3);
|
|
2184
|
+
e.addEventListener("message", a), e.postMessage(Tr(pr, r), Er(e));
|
|
2185
|
+
}), Ar = /* @__PURE__ */ new WeakMap(), jr = (e) => {
|
|
2186
|
+
let t = Ar.get(e), n = t?.stream.getVideoTracks()[0];
|
|
2187
|
+
if (!t || !n || n.readyState !== "live") {
|
|
2188
|
+
Ar.delete(e);
|
|
2189
|
+
return;
|
|
2190
|
+
}
|
|
2191
|
+
return t;
|
|
2192
|
+
}, Mr = async (e, t) => {
|
|
2193
|
+
let n = jr(t);
|
|
2194
|
+
if (n) return n;
|
|
2195
|
+
let r = t.navigator.mediaDevices;
|
|
2196
|
+
if (!r?.getDisplayMedia) throw Error("Screenshot capture is unavailable");
|
|
2197
|
+
let i = await r.getDisplayMedia({
|
|
2198
|
+
audio: !1,
|
|
2199
|
+
video: !0,
|
|
2200
|
+
preferCurrentTab: !0,
|
|
2201
|
+
selfBrowserSurface: "include"
|
|
2202
|
+
}), a = i.getVideoTracks()[0];
|
|
2203
|
+
if (!a) throw i.getTracks().forEach((e) => e.stop()), Error("Capture failed");
|
|
2204
|
+
try {
|
|
2205
|
+
let n = e.createElement("video");
|
|
2206
|
+
n.autoplay = !0, n.muted = !0, n.playsInline = !0, n.srcObject = i, await n.play(), (n.videoWidth === 0 || n.videoHeight === 0) && await new Promise((e) => {
|
|
2207
|
+
n.onloadedmetadata = () => e();
|
|
2208
|
+
});
|
|
2209
|
+
let r = {
|
|
2210
|
+
stream: i,
|
|
2211
|
+
video: n
|
|
2212
|
+
};
|
|
2213
|
+
return Ar.set(t, r), a.addEventListener("ended", () => {
|
|
2214
|
+
Ar.get(t) === r && Ar.delete(t);
|
|
2215
|
+
}, { once: !0 }), r;
|
|
2216
|
+
} catch (e) {
|
|
2217
|
+
throw i.getTracks().forEach((e) => e.stop()), e;
|
|
2218
|
+
}
|
|
2219
|
+
}, Nr = (e) => {
|
|
2220
|
+
let t = Ar.get(e);
|
|
2221
|
+
t && (Ar.delete(e), t.video.pause(), t.video.srcObject = null, t.stream.getTracks().forEach((e) => e.stop()));
|
|
2222
|
+
}, Pr = async ({ ownerDocument: e, ownerWindow: t }) => {
|
|
2223
|
+
let { video: n } = await Mr(e, t), r = e.createElement("canvas");
|
|
2224
|
+
r.width = n.videoWidth, r.height = n.videoHeight;
|
|
2225
|
+
let i = r.getContext("2d");
|
|
2226
|
+
if (!i) throw Error("Capture failed");
|
|
2227
|
+
return i.drawImage(n, 0, 0), await new Promise((e, t) => {
|
|
2228
|
+
r.toBlob((n) => {
|
|
2229
|
+
n ? e(n) : t(/* @__PURE__ */ Error("Capture failed"));
|
|
2230
|
+
}, "image/png");
|
|
2231
|
+
});
|
|
2232
|
+
}, Fr = {
|
|
2233
|
+
prepare: async () => void 0,
|
|
2234
|
+
capture: async ({ ownerWindow: e }) => {
|
|
2235
|
+
let t = await _r(e);
|
|
2236
|
+
if (!t) throw Error("Host screenshot capture is unavailable.");
|
|
2237
|
+
return t;
|
|
2238
|
+
},
|
|
2239
|
+
release: () => void 0
|
|
2240
|
+
}, Ir = {
|
|
2241
|
+
prepare: async () => void 0,
|
|
2242
|
+
capture: async ({ ownerWindow: e }) => {
|
|
2243
|
+
let t = await kr(e);
|
|
2244
|
+
if (!t) throw Error("Host screenshot capture failed.");
|
|
2245
|
+
return t;
|
|
2246
|
+
},
|
|
2247
|
+
release: () => void 0
|
|
2248
|
+
}, Lr = {
|
|
2249
|
+
prepare: async ({ ownerDocument: e, ownerWindow: t }) => {
|
|
2250
|
+
await Mr(e, t);
|
|
2251
|
+
},
|
|
2252
|
+
capture: Pr,
|
|
2253
|
+
release: Nr
|
|
2254
|
+
}, Rr = /* @__PURE__ */ new WeakMap(), zr = async (e) => {
|
|
2255
|
+
let t = Rr.get(e.ownerWindow);
|
|
2256
|
+
if (t) return t;
|
|
2257
|
+
let n = Lr;
|
|
2258
|
+
return hr(e.ownerWindow) ? n = Fr : await Or(e.ownerWindow) && (n = Ir), Rr.set(e.ownerWindow, n), n;
|
|
2259
|
+
}, Br = async (e, t) => {
|
|
2260
|
+
let n = {
|
|
2261
|
+
ownerDocument: e,
|
|
2262
|
+
ownerWindow: t
|
|
2263
|
+
};
|
|
2264
|
+
await (await zr(n)).prepare(n);
|
|
2265
|
+
}, Vr = async (e) => (await zr(e)).capture(e), Hr = (e) => {
|
|
2266
|
+
let t = Rr.get(e);
|
|
2267
|
+
Rr.delete(e), t?.release(e);
|
|
2268
|
+
}, Ur = Vr, Wr = () => globalThis.crypto?.randomUUID?.() ?? `${Date.now()}-${Math.random()}`, Gr = /* @__PURE__ */ new WeakMap(), Kr = (e) => (Gr.get(e) ?? 0) > 0, qr = /* @__PURE__ */ new WeakMap(), Jr = (e) => {
|
|
2107
2269
|
let t = e.location.pathname.replace(/\/+$/, "") || "/", n = new URLSearchParams(e.location.search);
|
|
2108
2270
|
n.sort();
|
|
2109
2271
|
let r = n.toString(), i = e.location.hash, a = i.startsWith("#/") ? i : "";
|
|
2110
2272
|
return `${t}${r ? `?${r}` : ""}${a}`;
|
|
2111
|
-
},
|
|
2112
|
-
let n =
|
|
2273
|
+
}, Yr = (e, t) => {
|
|
2274
|
+
let n = Jr(e);
|
|
2113
2275
|
for (let e of t.listeners) e(n);
|
|
2114
|
-
},
|
|
2115
|
-
let t =
|
|
2276
|
+
}, Xr = (e) => {
|
|
2277
|
+
let t = qr.get(e);
|
|
2116
2278
|
if (t) return t;
|
|
2117
2279
|
let n = e.history, r = n.pushState, i = n.replaceState, a = {
|
|
2118
2280
|
listeners: /* @__PURE__ */ new Set(),
|
|
2119
2281
|
pushState: r,
|
|
2120
2282
|
replaceState: i,
|
|
2121
|
-
handleNativeChange: () =>
|
|
2283
|
+
handleNativeChange: () => Yr(e, a)
|
|
2122
2284
|
};
|
|
2123
2285
|
return n.pushState = function(...t) {
|
|
2124
2286
|
let n = r.apply(this, t);
|
|
2125
|
-
return
|
|
2287
|
+
return Yr(e, a), n;
|
|
2126
2288
|
}, n.replaceState = function(...t) {
|
|
2127
2289
|
let n = i.apply(this, t);
|
|
2128
|
-
return
|
|
2129
|
-
}, e.addEventListener("popstate", a.handleNativeChange), e.addEventListener("hashchange", a.handleNativeChange),
|
|
2130
|
-
},
|
|
2131
|
-
t.listeners.size > 0 ||
|
|
2132
|
-
},
|
|
2133
|
-
let n =
|
|
2290
|
+
return Yr(e, a), n;
|
|
2291
|
+
}, e.addEventListener("popstate", a.handleNativeChange), e.addEventListener("hashchange", a.handleNativeChange), qr.set(e, a), a;
|
|
2292
|
+
}, Zr = (e, t) => {
|
|
2293
|
+
t.listeners.size > 0 || qr.get(e) !== t || (e.history.pushState = t.pushState, e.history.replaceState = t.replaceState, e.removeEventListener("popstate", t.handleNativeChange), e.removeEventListener("hashchange", t.handleNativeChange), qr.delete(e));
|
|
2294
|
+
}, Qr = (e, t) => {
|
|
2295
|
+
let n = Xr(e);
|
|
2134
2296
|
n.listeners.add(t);
|
|
2135
2297
|
let r = !1;
|
|
2136
2298
|
return () => {
|
|
2137
|
-
r || (r = !0, n.listeners.delete(t),
|
|
2299
|
+
r || (r = !0, n.listeners.delete(t), Zr(e, n));
|
|
2138
2300
|
};
|
|
2139
|
-
},
|
|
2301
|
+
}, $r = "--mesurer-nested-scroll-x", ei = "--mesurer-nested-scroll-y", ti = (e, t, n, r = {}) => {
|
|
2140
2302
|
let i = e, a = /* @__PURE__ */ new Map(), o = t.ownerDocument, s = r.trackWindow === !0, c = (e) => {
|
|
2141
2303
|
if (e.parentElement) return e.parentElement;
|
|
2142
2304
|
let t = e.getRootNode();
|
|
@@ -2162,7 +2324,7 @@ var ar = (e) => e, or = (e, t = 0, n = 1) => Math.min(n, Math.max(t, e)), sr = (
|
|
|
2162
2324
|
let i = `${n}px`;
|
|
2163
2325
|
r !== i && e.style.setProperty(t, i);
|
|
2164
2326
|
}, g = () => {
|
|
2165
|
-
if (!p) for (let e of m()) e.dataset.mesurerNestedScrollCompensation !== "true" && (e.dataset.mesurerNestedScrollCompensation = "true"), h(e,
|
|
2327
|
+
if (!p) for (let e of m()) e.dataset.mesurerNestedScrollCompensation !== "true" && (e.dataset.mesurerNestedScrollCompensation = "true"), h(e, $r, d), h(e, ei, f);
|
|
2166
2328
|
}, _ = (e, t, n) => {
|
|
2167
2329
|
let r = t - e.left, i = n - e.top;
|
|
2168
2330
|
return r === 0 && i === 0 ? !1 : (e.left = t, e.top = n, d -= r, f -= i, !0);
|
|
@@ -2195,21 +2357,21 @@ var ar = (e) => e, or = (e, t = 0, n = 1) => Math.min(n, Math.max(t, e)), sr = (
|
|
|
2195
2357
|
if (!p) {
|
|
2196
2358
|
p = !0, s && e.removeEventListener("scroll", y, !0);
|
|
2197
2359
|
for (let e of a.keys()) e.removeEventListener("scroll", v, !0);
|
|
2198
|
-
for (let e of m()) delete e.dataset.mesurerNestedScrollCompensation, e.style.removeProperty(
|
|
2360
|
+
for (let e of m()) delete e.dataset.mesurerNestedScrollCompensation, e.style.removeProperty($r), e.style.removeProperty(ei);
|
|
2199
2361
|
a.clear();
|
|
2200
2362
|
}
|
|
2201
2363
|
}
|
|
2202
2364
|
};
|
|
2203
|
-
},
|
|
2204
|
-
Array.from({ length: 801 }, (e, t) => t *
|
|
2205
|
-
var
|
|
2206
|
-
function
|
|
2365
|
+
}, ni = 5;
|
|
2366
|
+
Array.from({ length: 801 }, (e, t) => t * ni), Ht(null);
|
|
2367
|
+
var ri = "mesurer-settings-select msr:h-6 msr:w-full msr:appearance-none msr:rounded-control msr:border msr:border-ink-200 msr:bg-white msr:px-1.5 msr:pr-6 msr:text-[11px] msr:outline-none msr:focus:shadow-[inset_0_0_0_1px_var(--msr-accent)]";
|
|
2368
|
+
function ii() {
|
|
2207
2369
|
return Y("span", {
|
|
2208
2370
|
"aria-hidden": "true",
|
|
2209
2371
|
class: "msr:pointer-events-none msr:absolute msr:right-2 msr:top-1/2 msr:size-1.5 msr:-translate-y-1/2 msr:rotate-45 msr:border-r msr:border-b msr:border-ink-500"
|
|
2210
2372
|
});
|
|
2211
2373
|
}
|
|
2212
|
-
function
|
|
2374
|
+
function ai(e) {
|
|
2213
2375
|
let t = () => e.variant !== "legacy";
|
|
2214
2376
|
var n = Y("div"), r = Y("div");
|
|
2215
2377
|
return X(n, r), Z(r, () => e.left), Z(n, (() => {
|
|
@@ -2227,7 +2389,7 @@ function Dr(e) {
|
|
|
2227
2389
|
e !== i?.e && Q(n, "class", e, i?.e), t !== i?.t && Q(r, "class", t, i?.t);
|
|
2228
2390
|
}), n;
|
|
2229
2391
|
}
|
|
2230
|
-
function
|
|
2392
|
+
function oi(e) {
|
|
2231
2393
|
let t = () => e.variant !== "legacy", n = () => {
|
|
2232
2394
|
let t = lr(e.value);
|
|
2233
2395
|
if (t) return t;
|
|
@@ -2257,7 +2419,7 @@ function Or(e) {
|
|
|
2257
2419
|
e.onChange(n);
|
|
2258
2420
|
}, v = () => t() ? `msr:col-span-2 msr:grid msr:h-8 msr:w-full ${e.columns ?? "msr:grid-cols-[78px_150px]"} msr:items-center msr:gap-0 msr:text-[12px] msr:text-ink-700` : "msr:col-span-2 msr:grid msr:w-full msr:grid-cols-[78px_156px] msr:items-center msr:gap-3 msr:text-[12px] msr:text-ink-700";
|
|
2259
2421
|
var y = Y("div"), b = Y("span");
|
|
2260
|
-
return X(y, b), Z(b, () => e.label), Z(y, J(
|
|
2422
|
+
return X(y, b), Z(b, () => e.label), Z(y, J(ai, {
|
|
2261
2423
|
get variant() {
|
|
2262
2424
|
return e.variant;
|
|
2263
2425
|
},
|
|
@@ -2340,7 +2502,7 @@ function Or(e) {
|
|
|
2340
2502
|
Q(y, "class", e, t);
|
|
2341
2503
|
}), y;
|
|
2342
2504
|
}
|
|
2343
|
-
var
|
|
2505
|
+
var si = (e) => (() => {
|
|
2344
2506
|
var t = Y("svg", {
|
|
2345
2507
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2346
2508
|
viewBox: "0 0 256 256",
|
|
@@ -2355,7 +2517,7 @@ var kr = (e) => (() => {
|
|
|
2355
2517
|
}), ({ e, t: n, a: r }, i) => {
|
|
2356
2518
|
e !== i?.e && Q(t, "width", e, i?.e), n !== i?.t && Q(t, "height", n, i?.t), r !== i?.a && Q(t, "class", r, i?.a);
|
|
2357
2519
|
}), t;
|
|
2358
|
-
})(),
|
|
2520
|
+
})(), ci = (e) => J(si, {
|
|
2359
2521
|
get size() {
|
|
2360
2522
|
return e.size ?? 8;
|
|
2361
2523
|
},
|
|
@@ -2365,7 +2527,7 @@ var kr = (e) => (() => {
|
|
|
2365
2527
|
get children() {
|
|
2366
2528
|
return Y("path", { d: "M213.66,101.66l-80,80a8,8,0,0,1-11.32,0l-80-80A8,8,0,0,1,53.66,90.34L128,164.69l74.34-74.35a8,8,0,0,1,11.32,11.32Z" });
|
|
2367
2529
|
}
|
|
2368
|
-
}),
|
|
2530
|
+
}), li = (e) => J(si, {
|
|
2369
2531
|
get size() {
|
|
2370
2532
|
return e.size ?? 12;
|
|
2371
2533
|
},
|
|
@@ -2375,8 +2537,8 @@ var kr = (e) => (() => {
|
|
|
2375
2537
|
get children() {
|
|
2376
2538
|
return Y("path", { d: "M228,128a12,12,0,0,1-12,12H40a12,12,0,0,1,0-24H216A12,12,0,0,1,228,128Z" });
|
|
2377
2539
|
}
|
|
2378
|
-
}),
|
|
2379
|
-
let t = e.size ?? 20, n =
|
|
2540
|
+
}), ui = (e, t, n) => t * 256 / e / n, di = (e) => {
|
|
2541
|
+
let t = e.size ?? 20, n = ui(t, e.strokePx ?? 1, e.frameScale ?? 1);
|
|
2380
2542
|
var r = Y("svg", {
|
|
2381
2543
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2382
2544
|
width: t,
|
|
@@ -2400,7 +2562,7 @@ var kr = (e) => (() => {
|
|
|
2400
2562
|
return X(r, i), X(r, a), Z(a, () => e.children), q(() => e.class, (e, t) => {
|
|
2401
2563
|
Q(r, "class", e, t);
|
|
2402
2564
|
}), r;
|
|
2403
|
-
},
|
|
2565
|
+
}, fi = (e) => J(di, {
|
|
2404
2566
|
get size() {
|
|
2405
2567
|
return e.size ?? 20;
|
|
2406
2568
|
},
|
|
@@ -2410,7 +2572,7 @@ var kr = (e) => (() => {
|
|
|
2410
2572
|
get children() {
|
|
2411
2573
|
return Y("path", { d: "M128 48v160M48 128h160" });
|
|
2412
2574
|
}
|
|
2413
|
-
}),
|
|
2575
|
+
}), pi = (e) => J(di, {
|
|
2414
2576
|
get size() {
|
|
2415
2577
|
return e.size ?? 20;
|
|
2416
2578
|
},
|
|
@@ -2420,7 +2582,7 @@ var kr = (e) => (() => {
|
|
|
2420
2582
|
get children() {
|
|
2421
2583
|
return Y("path", { d: "M101.33 48v160M154.67 48v160" });
|
|
2422
2584
|
}
|
|
2423
|
-
}),
|
|
2585
|
+
}), mi = (e) => J(di, {
|
|
2424
2586
|
get size() {
|
|
2425
2587
|
return e.size ?? 20;
|
|
2426
2588
|
},
|
|
@@ -2430,7 +2592,7 @@ var kr = (e) => (() => {
|
|
|
2430
2592
|
get children() {
|
|
2431
2593
|
return Y("path", { d: "M48 101.33h160M48 154.67h160" });
|
|
2432
2594
|
}
|
|
2433
|
-
}),
|
|
2595
|
+
}), hi = (e) => (() => {
|
|
2434
2596
|
var t = Y("svg", {
|
|
2435
2597
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2436
2598
|
viewBox: "0 0 12 12",
|
|
@@ -2449,7 +2611,7 @@ var kr = (e) => (() => {
|
|
|
2449
2611
|
}), ({ e, t: n, a: r }, i) => {
|
|
2450
2612
|
e !== i?.e && Q(t, "width", e, i?.e), n !== i?.t && Q(t, "height", n, i?.t), r !== i?.a && Q(t, "class", r, i?.a);
|
|
2451
2613
|
}), t;
|
|
2452
|
-
})(),
|
|
2614
|
+
})(), gi = (e) => (() => {
|
|
2453
2615
|
var t = Y("svg", {
|
|
2454
2616
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2455
2617
|
viewBox: "0 0 16 16",
|
|
@@ -2473,7 +2635,7 @@ var kr = (e) => (() => {
|
|
|
2473
2635
|
}), ({ e, t: n, a: r }, i) => {
|
|
2474
2636
|
e !== i?.e && Q(t, "width", e, i?.e), n !== i?.t && Q(t, "height", n, i?.t), r !== i?.a && Q(t, "class", r, i?.a);
|
|
2475
2637
|
}), t;
|
|
2476
|
-
})(),
|
|
2638
|
+
})(), _i = (e) => (() => {
|
|
2477
2639
|
var t = Y("svg", {
|
|
2478
2640
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2479
2641
|
viewBox: "0 0 16 16",
|
|
@@ -2497,7 +2659,7 @@ var kr = (e) => (() => {
|
|
|
2497
2659
|
}), ({ e, t: n, a: r }, i) => {
|
|
2498
2660
|
e !== i?.e && Q(t, "width", e, i?.e), n !== i?.t && Q(t, "height", n, i?.t), r !== i?.a && Q(t, "class", r, i?.a);
|
|
2499
2661
|
}), t;
|
|
2500
|
-
})(),
|
|
2662
|
+
})(), vi = (e) => J(si, {
|
|
2501
2663
|
get size() {
|
|
2502
2664
|
return e.size ?? 20;
|
|
2503
2665
|
},
|
|
@@ -2507,7 +2669,7 @@ var kr = (e) => (() => {
|
|
|
2507
2669
|
get children() {
|
|
2508
2670
|
return Y("path", { d: "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" });
|
|
2509
2671
|
}
|
|
2510
|
-
}),
|
|
2672
|
+
}), yi = (e) => J(si, {
|
|
2511
2673
|
get size() {
|
|
2512
2674
|
return e.size ?? 20;
|
|
2513
2675
|
},
|
|
@@ -2517,7 +2679,7 @@ var kr = (e) => (() => {
|
|
|
2517
2679
|
get children() {
|
|
2518
2680
|
return Y("path", { d: "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" });
|
|
2519
2681
|
}
|
|
2520
|
-
}),
|
|
2682
|
+
}), bi = (e) => J(si, {
|
|
2521
2683
|
get size() {
|
|
2522
2684
|
return e.size ?? 18;
|
|
2523
2685
|
},
|
|
@@ -2527,7 +2689,7 @@ var kr = (e) => (() => {
|
|
|
2527
2689
|
get children() {
|
|
2528
2690
|
return Y("path", { d: "M216,48H176V40a24,24,0,0,0-24-24H104A24,24,0,0,0,80,40v8H40a8,8,0,0,0,0,16h8V208a16,16,0,0,0,16,16H192a16,16,0,0,0,16-16V64h8a8,8,0,0,0,0-16ZM96,40a8,8,0,0,1,8-8h48a8,8,0,0,1,8,8v8H96Zm96,168H64V64H192ZM112,104v64a8,8,0,0,1-16,0V104a8,8,0,0,1,16,0Zm48,0v64a8,8,0,0,1-16,0V104a8,8,0,0,1,16,0Z" });
|
|
2529
2691
|
}
|
|
2530
|
-
}),
|
|
2692
|
+
}), xi = (e) => J(si, {
|
|
2531
2693
|
get size() {
|
|
2532
2694
|
return e.size ?? 18;
|
|
2533
2695
|
},
|
|
@@ -2537,11 +2699,11 @@ var kr = (e) => (() => {
|
|
|
2537
2699
|
get children() {
|
|
2538
2700
|
return Y("path", { d: "M205.66,194.34a8,8,0,0,1-11.32,11.32L128,139.31,61.66,205.66a8,8,0,0,1-11.32-11.32L116.69,128,50.34,61.66A8,8,0,0,1,61.66,50.34L128,116.69l66.34-66.35a8,8,0,0,1,11.32,11.32L139.31,128Z" });
|
|
2539
2701
|
}
|
|
2540
|
-
}),
|
|
2702
|
+
}), Si = (e, t) => {
|
|
2541
2703
|
let n = t.CSS;
|
|
2542
2704
|
return n?.escape ? n.escape(e) : e.replace(/[^a-zA-Z0-9_-]/g, (e) => `\\${e}`);
|
|
2543
|
-
},
|
|
2544
|
-
function
|
|
2705
|
+
}, Ci = (e) => (e.textContent ?? "").replace(/\s+/g, " ").trim().slice(0, 200) || null, wi = (e) => e.nodeType === 9, Ti = (e) => e.nodeType === 11;
|
|
2706
|
+
function Ei(e) {
|
|
2545
2707
|
let t = e.getBoundingClientRect();
|
|
2546
2708
|
return {
|
|
2547
2709
|
left: t.left,
|
|
@@ -2550,20 +2712,20 @@ function Jr(e) {
|
|
|
2550
2712
|
height: t.height
|
|
2551
2713
|
};
|
|
2552
2714
|
}
|
|
2553
|
-
function
|
|
2554
|
-
if (
|
|
2715
|
+
function Di(e, t) {
|
|
2716
|
+
if (wi(t)) return !0;
|
|
2555
2717
|
let n = e;
|
|
2556
2718
|
for (; n;) {
|
|
2557
2719
|
if (t === n || t.contains(n)) return !0;
|
|
2558
2720
|
let e = n.getRootNode();
|
|
2559
|
-
if (!
|
|
2721
|
+
if (!Ti(e)) return !1;
|
|
2560
2722
|
n = e.host;
|
|
2561
2723
|
}
|
|
2562
2724
|
return !1;
|
|
2563
2725
|
}
|
|
2564
|
-
function
|
|
2726
|
+
function Oi(e) {
|
|
2565
2727
|
let t = e.ownerDocument.defaultView ?? window;
|
|
2566
|
-
if (e.id) return `#${
|
|
2728
|
+
if (e.id) return `#${Si(e.id, t)}`;
|
|
2567
2729
|
let n = e.getAttribute("data-testid");
|
|
2568
2730
|
if (n) return `[data-testid=${JSON.stringify(n)}]`;
|
|
2569
2731
|
let r = [], i = e;
|
|
@@ -2577,7 +2739,7 @@ function Xr(e) {
|
|
|
2577
2739
|
}
|
|
2578
2740
|
return r.join(" > ");
|
|
2579
2741
|
}
|
|
2580
|
-
function
|
|
2742
|
+
function ki(e) {
|
|
2581
2743
|
return {
|
|
2582
2744
|
tag: e.localName,
|
|
2583
2745
|
id: e.id || null,
|
|
@@ -2585,30 +2747,30 @@ function Zr(e) {
|
|
|
2585
2747
|
role: e.getAttribute("role"),
|
|
2586
2748
|
ariaLabel: e.getAttribute("aria-label"),
|
|
2587
2749
|
classes: [...e.classList],
|
|
2588
|
-
text:
|
|
2750
|
+
text: Ci(e)
|
|
2589
2751
|
};
|
|
2590
2752
|
}
|
|
2591
|
-
function
|
|
2753
|
+
function Ai(e) {
|
|
2592
2754
|
return !!(e.id || e.testId || e.role || e.ariaLabel || e.classes.length || e.text);
|
|
2593
2755
|
}
|
|
2594
|
-
function
|
|
2595
|
-
return e.localName !== t.tag || t.id && e.id !== t.id || t.testId && e.getAttribute("data-testid") !== t.testId || t.role && e.getAttribute("role") !== t.role || t.ariaLabel && e.getAttribute("aria-label") !== t.ariaLabel ? !1 : t.id || t.testId ? !0 : t.classes.some((t) => !e.classList.contains(t)) || t.text &&
|
|
2756
|
+
function ji(e, t) {
|
|
2757
|
+
return e.localName !== t.tag || t.id && e.id !== t.id || t.testId && e.getAttribute("data-testid") !== t.testId || t.role && e.getAttribute("role") !== t.role || t.ariaLabel && e.getAttribute("aria-label") !== t.ariaLabel ? !1 : t.id || t.testId ? !0 : t.classes.some((t) => !e.classList.contains(t)) || t.text && Ci(e) !== t.text ? !1 : Ai(t);
|
|
2596
2758
|
}
|
|
2597
|
-
var
|
|
2598
|
-
function
|
|
2599
|
-
return e.addEventListener(
|
|
2759
|
+
var Mi = "mesurer:select-gesture-start";
|
|
2760
|
+
function Ni(e, t) {
|
|
2761
|
+
return e.addEventListener(Mi, t), () => e.removeEventListener(Mi, t);
|
|
2600
2762
|
}
|
|
2601
2763
|
Ht((e) => void 0);
|
|
2602
|
-
var
|
|
2603
|
-
function
|
|
2764
|
+
var Pi = "mesurer-solid-styles", Fi = (e) => e?.nodeType === 11, Ii = (e) => e.nodeType === 9;
|
|
2765
|
+
function Li(e, t) {
|
|
2604
2766
|
let n = t?.ownerDocument ?? globalThis.document;
|
|
2605
2767
|
if (!n) return;
|
|
2606
|
-
let r =
|
|
2607
|
-
if (r.querySelector(`#${
|
|
2768
|
+
let r = Fi(t) ? t : n;
|
|
2769
|
+
if (r.querySelector(`#${Pi}`)) return;
|
|
2608
2770
|
let i = n.createElement("style");
|
|
2609
|
-
i.id =
|
|
2771
|
+
i.id = Pi, i.textContent = e, Ii(r) ? r.head.append(i) : r.append(i);
|
|
2610
2772
|
}
|
|
2611
|
-
var
|
|
2773
|
+
var Ri = "var(--msr-color-ink-50, #f8fafc)", zi = "var(--msr-color-ink-200, #e2e8f0)", Bi = "var(--msr-color-ink-500, #64748b)", Vi = "var(--msr-content, #0f172a)", Hi = (e, t, n) => {
|
|
2612
2774
|
let r = e.createElement("div");
|
|
2613
2775
|
return Object.assign(r.style, {
|
|
2614
2776
|
position: "absolute",
|
|
@@ -2625,7 +2787,7 @@ var oi = "var(--msr-color-ink-50, #f8fafc)", si = "var(--msr-color-ink-200, #e2e
|
|
|
2625
2787
|
height: "100%"
|
|
2626
2788
|
}
|
|
2627
2789
|
}), r;
|
|
2628
|
-
},
|
|
2790
|
+
}, Ui = (e, t, n) => {
|
|
2629
2791
|
let r = e.createElement("div");
|
|
2630
2792
|
Object.assign(r.style, {
|
|
2631
2793
|
position: "fixed",
|
|
@@ -2639,23 +2801,23 @@ var oi = "var(--msr-color-ink-50, #f8fafc)", si = "var(--msr-color-ink-200, #e2e
|
|
|
2639
2801
|
"right",
|
|
2640
2802
|
"bottom",
|
|
2641
2803
|
"left"
|
|
2642
|
-
]) r.appendChild(
|
|
2804
|
+
]) r.appendChild(Hi(e, t, n));
|
|
2643
2805
|
return r;
|
|
2644
|
-
},
|
|
2806
|
+
}, Wi = (e, t) => {
|
|
2645
2807
|
Object.assign(e.style, {
|
|
2646
2808
|
left: `${t.left}px`,
|
|
2647
2809
|
top: `${t.top}px`,
|
|
2648
2810
|
width: `${t.width}px`,
|
|
2649
2811
|
height: `${t.height}px`
|
|
2650
2812
|
});
|
|
2651
|
-
},
|
|
2813
|
+
}, Gi = (e, t) => {
|
|
2652
2814
|
let n = e.createElement("div");
|
|
2653
2815
|
return Object.assign(n.style, {
|
|
2654
2816
|
position: "fixed",
|
|
2655
2817
|
zIndex: "1",
|
|
2656
2818
|
pointerEvents: t ? "auto" : "none",
|
|
2657
2819
|
background: "var(--msr-surface-raised, #ffffff)",
|
|
2658
|
-
color:
|
|
2820
|
+
color: Vi,
|
|
2659
2821
|
borderRadius: "13px",
|
|
2660
2822
|
padding: "10px 12px",
|
|
2661
2823
|
fontSize: "11px",
|
|
@@ -2670,7 +2832,7 @@ var oi = "var(--msr-color-ink-50, #f8fafc)", si = "var(--msr-color-ink-200, #e2e
|
|
|
2670
2832
|
boxSizing: "border-box",
|
|
2671
2833
|
boxShadow: "var(--msr-shadow-floating, 0px 0px 0.5px rgba(0, 0, 0, 0.18), 0px 3px 8px rgba(0, 0, 0, 0.1), 0px 1px 3px rgba(0, 0, 0, 0.1))"
|
|
2672
2834
|
}), n.className = t ? "mesurer-ti-card mesurer-ti-card--pinned" : "mesurer-ti-card", n.dataset.state = "hidden", n;
|
|
2673
|
-
},
|
|
2835
|
+
}, Ki = (e, t, n, r) => {
|
|
2674
2836
|
t.replaceChildren();
|
|
2675
2837
|
let i = e.createElement("div");
|
|
2676
2838
|
Object.assign(i.style, {
|
|
@@ -2682,8 +2844,8 @@ var oi = "var(--msr-color-ink-50, #f8fafc)", si = "var(--msr-color-ink-200, #e2e
|
|
|
2682
2844
|
});
|
|
2683
2845
|
let a = e.createElement("span");
|
|
2684
2846
|
if (Object.assign(a.style, {
|
|
2685
|
-
color:
|
|
2686
|
-
background:
|
|
2847
|
+
color: Ri,
|
|
2848
|
+
background: Vi,
|
|
2687
2849
|
borderRadius: "4px",
|
|
2688
2850
|
padding: "1px 5px",
|
|
2689
2851
|
fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace",
|
|
@@ -2692,7 +2854,7 @@ var oi = "var(--msr-color-ink-50, #f8fafc)", si = "var(--msr-color-ink-200, #e2e
|
|
|
2692
2854
|
}), a.textContent = n.tagName, i.appendChild(a), n.textSnippet) {
|
|
2693
2855
|
let t = e.createElement("span");
|
|
2694
2856
|
Object.assign(t.style, {
|
|
2695
|
-
color:
|
|
2857
|
+
color: Bi,
|
|
2696
2858
|
overflow: "hidden",
|
|
2697
2859
|
textOverflow: "ellipsis",
|
|
2698
2860
|
whiteSpace: "nowrap",
|
|
@@ -2712,7 +2874,7 @@ var oi = "var(--msr-color-ink-50, #f8fafc)", si = "var(--msr-color-ink-200, #e2e
|
|
|
2712
2874
|
lineHeight: "14px",
|
|
2713
2875
|
textAlign: "center",
|
|
2714
2876
|
borderRadius: "4px",
|
|
2715
|
-
color:
|
|
2877
|
+
color: Bi,
|
|
2716
2878
|
fontSize: "14px"
|
|
2717
2879
|
}), i.appendChild(t);
|
|
2718
2880
|
}
|
|
@@ -2727,12 +2889,12 @@ var oi = "var(--msr-color-ink-50, #f8fafc)", si = "var(--msr-color-ink-200, #e2e
|
|
|
2727
2889
|
});
|
|
2728
2890
|
for (let t of n.rows) {
|
|
2729
2891
|
let n = e.createElement("span");
|
|
2730
|
-
n.style.color =
|
|
2892
|
+
n.style.color = Bi, n.style.fontSize = "11px", n.textContent = t.label;
|
|
2731
2893
|
let r = e.createElement("span");
|
|
2732
2894
|
if (Object.assign(r.style, {
|
|
2733
2895
|
fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace",
|
|
2734
2896
|
fontSize: "11px",
|
|
2735
|
-
color:
|
|
2897
|
+
color: Vi,
|
|
2736
2898
|
overflow: "hidden",
|
|
2737
2899
|
textOverflow: "ellipsis",
|
|
2738
2900
|
whiteSpace: "nowrap"
|
|
@@ -2741,21 +2903,21 @@ var oi = "var(--msr-color-ink-50, #f8fafc)", si = "var(--msr-color-ink-200, #e2e
|
|
|
2741
2903
|
let n = e.createElement("span");
|
|
2742
2904
|
n.textContent = t.value;
|
|
2743
2905
|
let i = e.createElement("span");
|
|
2744
|
-
i.style.color =
|
|
2906
|
+
i.style.color = zi, i.style.margin = "0 6px", i.textContent = "·";
|
|
2745
2907
|
let a = e.createElement("span");
|
|
2746
2908
|
a.style.color = "#0369a1", a.textContent = t.varName, r.append(n, i, a);
|
|
2747
2909
|
}
|
|
2748
2910
|
o.append(n, r);
|
|
2749
2911
|
}
|
|
2750
2912
|
t.appendChild(o);
|
|
2751
|
-
},
|
|
2913
|
+
}, qi = (e, t, n, r = 0, i = 0) => {
|
|
2752
2914
|
let a = Number.parseFloat(t.dataset.mesurerPositionedScrollX ?? ""), o = Number.parseFloat(t.dataset.mesurerPositionedScrollY ?? ""), s = Number.isFinite(a) && a !== e.scrollX || Number.isFinite(o) && o !== e.scrollY, c = n.left + n.width / 2 + r;
|
|
2753
2915
|
t.style.left = `${c}px`;
|
|
2754
2916
|
let l = t.getBoundingClientRect(), u = n.bottom + 4 + i;
|
|
2755
2917
|
u + l.height > e.innerHeight - 8 && (u = n.top - l.height - 4 + i), t.style.top = `${Math.max(8, u)}px`;
|
|
2756
2918
|
let d = l.width / 2;
|
|
2757
2919
|
t.style.left = `${Math.min(Math.max(c, 8 + d), e.innerWidth - 8 - d)}px`, t.dataset.mesurerPositionedScrollX = String(e.scrollX), t.dataset.mesurerPositionedScrollY = String(e.scrollY), s && !t.dataset.mesurerNativeScrollAnchor && (t.dataset.mesurerNativeScrollAnchor = "pending");
|
|
2758
|
-
},
|
|
2920
|
+
}, Ji = /* @__PURE__ */ new Map([
|
|
2759
2921
|
["100", "thin"],
|
|
2760
2922
|
["200", "extralight"],
|
|
2761
2923
|
["300", "light"],
|
|
@@ -2765,26 +2927,26 @@ var oi = "var(--msr-color-ink-50, #f8fafc)", si = "var(--msr-color-ink-200, #e2e
|
|
|
2765
2927
|
["700", "bold"],
|
|
2766
2928
|
["800", "extrabold"],
|
|
2767
2929
|
["900", "black"]
|
|
2768
|
-
]),
|
|
2930
|
+
]), Yi = [
|
|
2769
2931
|
"font-family",
|
|
2770
2932
|
"font-size",
|
|
2771
2933
|
"font-weight",
|
|
2772
2934
|
"line-height",
|
|
2773
2935
|
"letter-spacing"
|
|
2774
|
-
],
|
|
2936
|
+
], Xi = /* @__PURE__ */ new Map([
|
|
2775
2937
|
["Family", "font-family"],
|
|
2776
2938
|
["Size", "font-size"],
|
|
2777
2939
|
["Weight", "font-weight"],
|
|
2778
2940
|
["Line", "line-height"],
|
|
2779
2941
|
["Tracking", "letter-spacing"]
|
|
2780
|
-
]),
|
|
2942
|
+
]), Zi = (e) => {
|
|
2781
2943
|
if (!e || e === "normal") return e || "normal";
|
|
2782
2944
|
let t = /^(-?[\d.]+)px$/.exec(e);
|
|
2783
2945
|
return t ? `${Math.round(Number(t[1]) * 10) / 10}px` : e;
|
|
2784
|
-
},
|
|
2785
|
-
let t =
|
|
2946
|
+
}, Qi = (e) => (e.split(",")[0] ?? "").trim().replace(/^['"]|['"]$/g, ""), $i = (e) => {
|
|
2947
|
+
let t = Ji.get(e);
|
|
2786
2948
|
return t ? `${e} / ${t}` : e;
|
|
2787
|
-
},
|
|
2949
|
+
}, ea = (e) => e ? /var\(\s*(--[a-zA-Z0-9_-]+)/.exec(e)?.[1] ?? null : null, ta = (e) => (e.match(/#[\w-]+/g) ?? []).length * 1e4 + (e.match(/\.[\w-]+|\[[^\]]+\]|:[\w-]+/g) ?? []).length * 100 + (e.match(/(?:^|[ >+~])([a-zA-Z][\w-]*)/g) ?? []).length, na = (e, t) => !t || (e.important === t.important ? e.specificity === t.specificity ? e.order > t.order : e.specificity > t.specificity : e.important), ra = class {
|
|
2788
2950
|
document;
|
|
2789
2951
|
window;
|
|
2790
2952
|
constructor(e, t) {
|
|
@@ -2824,11 +2986,11 @@ var oi = "var(--msr-color-ink-50, #f8fafc)", si = "var(--msr-color-ink-200, #e2e
|
|
|
2824
2986
|
return e;
|
|
2825
2987
|
}
|
|
2826
2988
|
findVarReferences(e) {
|
|
2827
|
-
let t = new Map(
|
|
2828
|
-
for (let r of
|
|
2989
|
+
let t = new Map(Yi.map((e) => [e, null])), n = this.getRules();
|
|
2990
|
+
for (let r of Yi) {
|
|
2829
2991
|
let i = e;
|
|
2830
2992
|
for (; i && t.get(r) === null;) {
|
|
2831
|
-
let e, a =
|
|
2993
|
+
let e, a = ea(i.style.getPropertyValue(r));
|
|
2832
2994
|
a && (e = {
|
|
2833
2995
|
name: a,
|
|
2834
2996
|
specificity: 2 ** 53 - 1,
|
|
@@ -2844,15 +3006,15 @@ var oi = "var(--msr-color-ink-50, #f8fafc)", si = "var(--msr-color-ink-200, #e2e
|
|
|
2844
3006
|
continue;
|
|
2845
3007
|
}
|
|
2846
3008
|
if (!n) continue;
|
|
2847
|
-
let s =
|
|
3009
|
+
let s = ea(t.style.getPropertyValue(r));
|
|
2848
3010
|
if (!s) continue;
|
|
2849
3011
|
let c = {
|
|
2850
3012
|
name: s,
|
|
2851
|
-
specificity:
|
|
3013
|
+
specificity: ta(t.selectorText),
|
|
2852
3014
|
order: o,
|
|
2853
3015
|
important: t.style.getPropertyPriority(r) === "important"
|
|
2854
3016
|
};
|
|
2855
|
-
|
|
3017
|
+
na(c, e) && (e = c);
|
|
2856
3018
|
}
|
|
2857
3019
|
e && t.set(r, e.name), i = i.parentElement;
|
|
2858
3020
|
}
|
|
@@ -2863,27 +3025,27 @@ var oi = "var(--msr-color-ink-50, #f8fafc)", si = "var(--msr-color-ink-200, #e2e
|
|
|
2863
3025
|
let t = this.window.getComputedStyle(e), n = [
|
|
2864
3026
|
{
|
|
2865
3027
|
label: "Family",
|
|
2866
|
-
value:
|
|
3028
|
+
value: Qi(t.fontFamily),
|
|
2867
3029
|
varName: null
|
|
2868
3030
|
},
|
|
2869
3031
|
{
|
|
2870
3032
|
label: "Size",
|
|
2871
|
-
value:
|
|
3033
|
+
value: Zi(t.fontSize),
|
|
2872
3034
|
varName: null
|
|
2873
3035
|
},
|
|
2874
3036
|
{
|
|
2875
3037
|
label: "Weight",
|
|
2876
|
-
value:
|
|
3038
|
+
value: $i(t.fontWeight),
|
|
2877
3039
|
varName: null
|
|
2878
3040
|
},
|
|
2879
3041
|
{
|
|
2880
3042
|
label: "Line",
|
|
2881
|
-
value: t.lineHeight === "normal" ? "normal" :
|
|
3043
|
+
value: t.lineHeight === "normal" ? "normal" : Zi(t.lineHeight),
|
|
2882
3044
|
varName: null
|
|
2883
3045
|
},
|
|
2884
3046
|
{
|
|
2885
3047
|
label: "Tracking",
|
|
2886
|
-
value: t.letterSpacing === "normal" ? "normal" :
|
|
3048
|
+
value: t.letterSpacing === "normal" ? "normal" : Zi(t.letterSpacing),
|
|
2887
3049
|
varName: null
|
|
2888
3050
|
}
|
|
2889
3051
|
], r = Array.from(e.childNodes).filter((e) => e.nodeType === Node.TEXT_NODE).map((e) => e.nodeValue?.trim() ?? "").filter(Boolean).join(" ").replace(/\s+/g, " ");
|
|
@@ -2898,7 +3060,7 @@ var oi = "var(--msr-color-ink-50, #f8fafc)", si = "var(--msr-color-ink-200, #e2e
|
|
|
2898
3060
|
return {
|
|
2899
3061
|
...t,
|
|
2900
3062
|
rows: t.rows.map((e) => {
|
|
2901
|
-
let t =
|
|
3063
|
+
let t = Xi.get(e.label);
|
|
2902
3064
|
return {
|
|
2903
3065
|
...e,
|
|
2904
3066
|
varName: t ? n.get(t) ?? null : null
|
|
@@ -2906,7 +3068,7 @@ var oi = "var(--msr-color-ink-50, #f8fafc)", si = "var(--msr-color-ink-200, #e2e
|
|
|
2906
3068
|
})
|
|
2907
3069
|
};
|
|
2908
3070
|
}
|
|
2909
|
-
},
|
|
3071
|
+
}, ia = [
|
|
2910
3072
|
"HTML",
|
|
2911
3073
|
"BODY",
|
|
2912
3074
|
"SCRIPT",
|
|
@@ -2918,7 +3080,7 @@ var oi = "var(--msr-color-ink-50, #f8fafc)", si = "var(--msr-color-ink-200, #e2e
|
|
|
2918
3080
|
"VIDEO",
|
|
2919
3081
|
"AUDIO",
|
|
2920
3082
|
"IFRAME"
|
|
2921
|
-
],
|
|
3083
|
+
], aa = "color-mix(in oklch, oklch(0.62 0.18 255) 8%, transparent)", oa = "color-mix(in oklch, oklch(0.62 0.18 255) 80%, transparent)", sa = "color-mix(in oklch, oklch(0.62 0.18 255) 4%, transparent)", ca = "color-mix(in oklch, oklch(0.62 0.18 255) 35%, transparent)", la = 80, ua = 0, da = (e, t) => `
|
|
2922
3084
|
.${e},.${e} *{cursor:help!important}
|
|
2923
3085
|
.${e} [data-mesurer-root],.${e} [data-mesurer-root] *{cursor:auto!important}
|
|
2924
3086
|
#${t} .mesurer-ti-card{transform:translateX(-50%);opacity:1;transition:none!important;animation:none!important}
|
|
@@ -2929,7 +3091,7 @@ var oi = "var(--msr-color-ink-50, #f8fafc)", si = "var(--msr-color-ink-200, #e2e
|
|
|
2929
3091
|
#${t} .mesurer-ti-close{cursor:pointer}
|
|
2930
3092
|
#${t} .mesurer-ti-close:hover{background:color-mix(in srgb,var(--msr-content,#0f172a) 6%,transparent)!important;color:var(--msr-content,#0f172a)!important}
|
|
2931
3093
|
`;
|
|
2932
|
-
function
|
|
3094
|
+
function fa(e = {}, t = !1) {
|
|
2933
3095
|
let n = e.portalTarget?.ownerDocument ?? globalThis.document, r = n?.defaultView ?? globalThis.window;
|
|
2934
3096
|
if (!n || !r) {
|
|
2935
3097
|
let e = () => {};
|
|
@@ -2947,7 +3109,7 @@ function Pi(e = {}, t = !1) {
|
|
|
2947
3109
|
canRedo: () => !1
|
|
2948
3110
|
};
|
|
2949
3111
|
}
|
|
2950
|
-
let i = (e.id ?? (t ? "mesurer-text-inspector" : `mesurer-text-inspector-${++
|
|
3112
|
+
let i = (e.id ?? (t ? "mesurer-text-inspector" : `mesurer-text-inspector-${++ua}`)).replace(/[^a-zA-Z0-9_-]/g, "-"), a = `${i}-overlay`, o = `${i}-styles`, s = `${i}-mode`, c = new Set((e.ignoredTags ?? ia).map((e) => e.toUpperCase())), l = Number.isFinite(e.maxPinned) ? Math.max(1, Math.floor(e.maxPinned)) : Infinity, u = new ra(n, r), d = r.HTMLElement, f = r.SVGElement, p = r.Node, m = !1, h = null, g = null, _ = null, v = null, y = {
|
|
2951
3113
|
x: 0,
|
|
2952
3114
|
y: 0
|
|
2953
3115
|
}, b = 0, x = 0, S = 0, C = r.scrollX, w = r.scrollY, T = null, E = [], D = [], O = [], k = e.portalTarget ?? n.body, A = () => {
|
|
@@ -2956,7 +3118,7 @@ function Pi(e = {}, t = !1) {
|
|
|
2956
3118
|
for (let t of e) {
|
|
2957
3119
|
if (t.querySelector(`#${o}`)) continue;
|
|
2958
3120
|
let e = n.createElement("style");
|
|
2959
|
-
e.id = o, e.textContent =
|
|
3121
|
+
e.id = o, e.textContent = da(s, a), t === n ? n.head.append(e) : t.append(e);
|
|
2960
3122
|
}
|
|
2961
3123
|
}, j = () => h?.isConnected ? h : (h = n.createElement("div"), h.id = a, h.dataset.mesurerInspectorUi = "true", h.dataset.theme = e.theme?.() ?? "system", T ??= e.subscribeTheme?.((e) => {
|
|
2962
3124
|
h && (h.dataset.theme = e);
|
|
@@ -2969,17 +3131,17 @@ function Pi(e = {}, t = !1) {
|
|
|
2969
3131
|
e && (e.dataset.state = t ? "visible" : "hidden");
|
|
2970
3132
|
}, ee = () => {
|
|
2971
3133
|
let e = j();
|
|
2972
|
-
g ??=
|
|
3134
|
+
g ??= Ui(n, aa, oa), _ ??= Gi(n, !1), g.parentNode || e.append(g), _.parentNode || e.append(_);
|
|
2973
3135
|
}, N = (e) => Array.from(e.childNodes).some((e) => e.nodeType === p.TEXT_NODE && !!e.nodeValue?.trim()), te = (e) => !!e && e instanceof d && !(e instanceof f) && !c.has(e.tagName) && N(e) && !e.closest("[data-mesurer-root]"), P = (e, t) => n.elementsFromPoint(e, t).find((e) => te(e)) ?? null, ne = () => {
|
|
2974
3136
|
v = null, M(g, !1), M(_, !1);
|
|
2975
3137
|
}, F = (t) => {
|
|
2976
3138
|
if (!m || !te(t)) return !1;
|
|
2977
3139
|
ee();
|
|
2978
3140
|
let i = t.getBoundingClientRect(), a = u.getFast(t);
|
|
2979
|
-
return v = t,
|
|
3141
|
+
return v = t, Ki(n, _, a, !1), Wi(g, i), qi(r, _, i), M(g, !0), M(_, !0), r.clearTimeout(x), x = r.setTimeout(() => {
|
|
2980
3142
|
if (!m || v !== t || !_) return;
|
|
2981
3143
|
let i = u.getFull(t, a);
|
|
2982
|
-
|
|
3144
|
+
Ki(n, _, i, !1), qi(r, _, t.getBoundingClientRect()), e.onInspect?.(t, i);
|
|
2983
3145
|
}, 24), !0;
|
|
2984
3146
|
}, I = () => E.map((e) => ({
|
|
2985
3147
|
sourceEl: e.sourceEl,
|
|
@@ -3011,12 +3173,12 @@ function Pi(e = {}, t = !1) {
|
|
|
3011
3173
|
}, V = (t, i, a = !0, o = !0) => {
|
|
3012
3174
|
if (E.find((e) => e.sourceEl === t)) return;
|
|
3013
3175
|
a && L(), E.length >= l && R(E[0], !1, !0);
|
|
3014
|
-
let s = j(), c =
|
|
3176
|
+
let s = j(), c = Ui(n, sa, ca), d = Gi(n, !0);
|
|
3015
3177
|
d.classList.add("mesurer-ti-card--draggable"), d.classList.remove("mesurer-ti-card--pinned");
|
|
3016
3178
|
let f = u.getFull(t);
|
|
3017
|
-
|
|
3179
|
+
Ki(n, d, f, !0), s.append(c, d);
|
|
3018
3180
|
let p = t.getBoundingClientRect();
|
|
3019
|
-
|
|
3181
|
+
Wi(c, p), qi(r, d, p), i?.userPlaced && (d.classList.add("mesurer-ti-card--pinned"), d.style.left = `${i.left}px`, d.style.top = `${i.top}px`), M(c, !0), M(d, !0);
|
|
3020
3182
|
let m = {
|
|
3021
3183
|
sourceEl: t,
|
|
3022
3184
|
box: c,
|
|
@@ -3047,7 +3209,7 @@ function Pi(e = {}, t = !1) {
|
|
|
3047
3209
|
continue;
|
|
3048
3210
|
}
|
|
3049
3211
|
let t = e.sourceEl.getBoundingClientRect();
|
|
3050
|
-
|
|
3212
|
+
Wi(e.box, t), e.userPlaced || qi(r, e.card, t);
|
|
3051
3213
|
let n = t.bottom >= 0 && t.right >= 0 && t.left <= r.innerWidth && t.top <= r.innerHeight;
|
|
3052
3214
|
M(e.box, n), M(e.card, n), e.card.style.pointerEvents = n ? "auto" : "none";
|
|
3053
3215
|
}
|
|
@@ -3057,7 +3219,7 @@ function Pi(e = {}, t = !1) {
|
|
|
3057
3219
|
if (!v.isConnected) ne();
|
|
3058
3220
|
else {
|
|
3059
3221
|
let e = v.getBoundingClientRect();
|
|
3060
|
-
|
|
3222
|
+
Wi(g, e), qi(r, _, e);
|
|
3061
3223
|
let t = e.bottom >= 0 && e.right >= 0 && e.left <= r.innerWidth && e.top <= r.innerHeight;
|
|
3062
3224
|
M(g, t), M(_, t);
|
|
3063
3225
|
}
|
|
@@ -3071,7 +3233,7 @@ function Pi(e = {}, t = !1) {
|
|
|
3071
3233
|
else if (e !== v) F(e);
|
|
3072
3234
|
else if (g && _) {
|
|
3073
3235
|
let t = e.getBoundingClientRect();
|
|
3074
|
-
|
|
3236
|
+
Wi(g, t), qi(r, _, t);
|
|
3075
3237
|
}
|
|
3076
3238
|
ae();
|
|
3077
3239
|
}, se = () => {
|
|
@@ -3089,14 +3251,14 @@ function Pi(e = {}, t = !1) {
|
|
|
3089
3251
|
Number.isFinite(r) && (e.style.left = `${r - t}px`), Number.isFinite(i) && (e.style.top = `${i - n}px`);
|
|
3090
3252
|
}, ue = () => {
|
|
3091
3253
|
let e = r.scrollX, t = r.scrollY, i = e - C, a = t - w;
|
|
3092
|
-
if (C = e, w = t,
|
|
3254
|
+
if (C = e, w = t, Kr(n)) {
|
|
3093
3255
|
if (i || a) {
|
|
3094
3256
|
le(g, i, a), le(_, i, a);
|
|
3095
3257
|
for (let e of E) le(e.box, i, a), e.userPlaced || le(e.card, i, a);
|
|
3096
3258
|
}
|
|
3097
3259
|
S && r.clearTimeout(S), S = r.setTimeout(() => {
|
|
3098
3260
|
S = 0, W();
|
|
3099
|
-
},
|
|
3261
|
+
}, la);
|
|
3100
3262
|
return;
|
|
3101
3263
|
}
|
|
3102
3264
|
W(), se();
|
|
@@ -3133,24 +3295,24 @@ function Pi(e = {}, t = !1) {
|
|
|
3133
3295
|
destroy: _e
|
|
3134
3296
|
};
|
|
3135
3297
|
}
|
|
3136
|
-
|
|
3137
|
-
var Fi = "/*! 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-\\[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-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-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-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-2 {\n padding-top: calc(var(--msr-spacing) * 2);\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-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\\: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@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", Ii = {
|
|
3298
|
+
fa({}, !0);
|
|
3299
|
+
var pa = "/*! 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-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-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-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-2 {\n padding-top: calc(var(--msr-spacing) * 2);\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-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\\: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@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", ma = {
|
|
3138
3300
|
keepTextChanges: !1,
|
|
3139
3301
|
keepArrangeChanges: !1
|
|
3140
|
-
},
|
|
3302
|
+
}, ha = (e) => e.state.get("mesurer.presentation.preferences") ?? ma, ga = "mesurer.arrange", _a = "arrange", va = "mesurer.arrange.intents", ya = "mesurer.arrange.active", ba = "mesurer.arrange.settings", xa = "runtime:solid", Sa = "builtin.select", Ca = "arrange.toggle", wa = "arrange.commit", Ta = "arrange.clear", Ea = "mesurer.arrange.selection-available", Da = 1, Oa = 24, ka = 160, Aa = 500, ja = "#ef4444", Ma = {
|
|
3141
3303
|
viewBox: "0 0 24 24",
|
|
3142
3304
|
paths: ["M12 2.75 8.75 6h2.5v5.25H6V8.75L2.75 12 6 15.25v-2.5h5.25V18h-2.5L12 21.25 15.25 18h-2.5v-5.25H18v2.5L21.25 12 18 8.75v2.5h-5.25V6h2.5L12 2.75Z"]
|
|
3143
|
-
},
|
|
3305
|
+
}, Na = (e, t) => ({
|
|
3144
3306
|
left: e.left + t.x,
|
|
3145
3307
|
top: e.top + t.y,
|
|
3146
3308
|
width: e.width,
|
|
3147
3309
|
height: e.height
|
|
3148
|
-
}),
|
|
3310
|
+
}), Pa = (e, t) => ({
|
|
3149
3311
|
left: e.left - t.left,
|
|
3150
3312
|
top: e.top - t.top,
|
|
3151
3313
|
width: e.width - t.width,
|
|
3152
3314
|
height: e.height - t.height
|
|
3153
|
-
}),
|
|
3315
|
+
}), Fa = (e) => {
|
|
3154
3316
|
if (!e.length) return null;
|
|
3155
3317
|
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));
|
|
3156
3318
|
return {
|
|
@@ -3159,35 +3321,35 @@ var Fi = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3159
3321
|
width: r - t,
|
|
3160
3322
|
height: i - n
|
|
3161
3323
|
};
|
|
3162
|
-
},
|
|
3324
|
+
}, Ia = (e, t, n, r) => Math.max(0, Math.max(e, n) - Math.min(t, r)), La = (e, t, n) => {
|
|
3163
3325
|
let r = t === "x" ? e.left : e.top, i = t === "x" ? e.width : e.height, a = r + i;
|
|
3164
3326
|
return n === "edge" ? [r, a] : n === "center" ? [r + i / 2] : [
|
|
3165
3327
|
r,
|
|
3166
3328
|
r + i / 2,
|
|
3167
3329
|
a
|
|
3168
3330
|
];
|
|
3169
|
-
},
|
|
3331
|
+
}, Ra = (e, t) => t === "x" ? {
|
|
3170
3332
|
start: e.top,
|
|
3171
3333
|
end: e.top + e.height
|
|
3172
3334
|
} : {
|
|
3173
3335
|
start: e.left,
|
|
3174
3336
|
end: e.left + e.width
|
|
3175
|
-
},
|
|
3176
|
-
let r =
|
|
3177
|
-
for (let a of n) if (a.axis === e && !(a.source === "element" &&
|
|
3337
|
+
}, za = (e) => e.kind === "edge" ? 2 : +(e.kind === "guide"), Ba = (e, t, n) => {
|
|
3338
|
+
let r = Ra(t, e), i = null;
|
|
3339
|
+
for (let a of n) if (a.axis === e && !(a.source === "element" && Ia(r.start, r.end, a.start, a.end) > ka)) for (let n of La(t, e, a.kind)) {
|
|
3178
3340
|
let e = a.position - n, t = Math.abs(e);
|
|
3179
3341
|
if (t > 10) continue;
|
|
3180
3342
|
let r = i ? Math.abs(i.delta) : Infinity;
|
|
3181
|
-
(t < r || t === r && (!i ||
|
|
3343
|
+
(t < r || t === r && (!i || za(a) > za(i))) && (i = {
|
|
3182
3344
|
...a,
|
|
3183
3345
|
delta: e
|
|
3184
3346
|
});
|
|
3185
3347
|
}
|
|
3186
3348
|
return i;
|
|
3187
|
-
},
|
|
3349
|
+
}, Va = (e) => {
|
|
3188
3350
|
let { origin: t, pathname: n, search: r } = e.location;
|
|
3189
3351
|
return `${t}${n}${r}`;
|
|
3190
|
-
},
|
|
3352
|
+
}, Ha = (e, t) => `${t}-${e.crypto?.randomUUID?.() ?? `${Date.now()}-${Math.random().toString(36).slice(2)}`}`, Ua = (e) => ({
|
|
3191
3353
|
tag: e.fingerprintTag,
|
|
3192
3354
|
id: e.fingerprintId,
|
|
3193
3355
|
testId: e.fingerprintTestId,
|
|
@@ -3195,10 +3357,10 @@ var Fi = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3195
3357
|
ariaLabel: e.fingerprintAriaLabel,
|
|
3196
3358
|
classes: [...e.fingerprintClasses],
|
|
3197
3359
|
text: e.fingerprintText
|
|
3198
|
-
}),
|
|
3360
|
+
}), Wa = (e) => ({
|
|
3199
3361
|
id: e.id,
|
|
3200
3362
|
selector: e.selector,
|
|
3201
|
-
fingerprint:
|
|
3363
|
+
fingerprint: Ua(e),
|
|
3202
3364
|
before: {
|
|
3203
3365
|
left: e.beforeLeft,
|
|
3204
3366
|
top: e.beforeTop,
|
|
@@ -3219,21 +3381,21 @@ var Fi = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3219
3381
|
x: e.desiredOffsetX,
|
|
3220
3382
|
y: e.desiredOffsetY
|
|
3221
3383
|
}
|
|
3222
|
-
}),
|
|
3384
|
+
}), Ga = (e) => ({
|
|
3223
3385
|
id: e.id,
|
|
3224
3386
|
createdAt: e.createdAt,
|
|
3225
3387
|
pageUrl: e.pageUrl,
|
|
3226
|
-
targets: e.targets.map(
|
|
3227
|
-
}),
|
|
3388
|
+
targets: e.targets.map(Wa)
|
|
3389
|
+
}), Ka = (e) => ({
|
|
3228
3390
|
value: e.style.getPropertyValue("transform"),
|
|
3229
3391
|
priority: e.style.getPropertyPriority("transform")
|
|
3230
|
-
}),
|
|
3392
|
+
}), qa = (e, t) => e.value === t.value && e.priority === t.priority, Ja = (e) => {
|
|
3231
3393
|
let { element: t, beforeTransform: n, appliedTransform: r } = e;
|
|
3232
|
-
|
|
3233
|
-
},
|
|
3234
|
-
id:
|
|
3394
|
+
qa(Ka(t), r) && (n.value || n.priority ? t.style.setProperty("transform", n.value, n.priority) : t.style.removeProperty("transform"));
|
|
3395
|
+
}, Ya = (e) => e instanceof Element && !!e.closest("input, textarea, select, [contenteditable='true'], [contenteditable='']"), Xa = () => ar({
|
|
3396
|
+
id: ga,
|
|
3235
3397
|
version: "0.1.0",
|
|
3236
|
-
requires: [
|
|
3398
|
+
requires: [xa, "tool:select"],
|
|
3237
3399
|
provides: [
|
|
3238
3400
|
"tool:arrange",
|
|
3239
3401
|
"intent:arrange",
|
|
@@ -3241,19 +3403,19 @@ var Fi = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3241
3403
|
"settings:arrange"
|
|
3242
3404
|
],
|
|
3243
3405
|
setup(e) {
|
|
3244
|
-
let t = e.service.get(
|
|
3406
|
+
let t = e.service.get(xa);
|
|
3245
3407
|
if (!t) throw Error("Arrange plugin requires the Solid renderer runtime.");
|
|
3246
3408
|
let { ownerDocument: n, ownerWindow: r } = t, i = t.createWorkspaceRuntime(), a = t.createInspectorMount(), o = t.pageTarget ?? n.body ?? n.documentElement, s = t.portalTarget, c = r;
|
|
3247
3409
|
e.state.register({
|
|
3248
|
-
id:
|
|
3410
|
+
id: va,
|
|
3249
3411
|
initial: { intents: [] },
|
|
3250
3412
|
history: !0,
|
|
3251
3413
|
persist: !0
|
|
3252
3414
|
}), e.state.register({
|
|
3253
|
-
id:
|
|
3415
|
+
id: ya,
|
|
3254
3416
|
initial: !1
|
|
3255
3417
|
}), e.state.register({
|
|
3256
|
-
id:
|
|
3418
|
+
id: ba,
|
|
3257
3419
|
initial: {
|
|
3258
3420
|
snapping: !0,
|
|
3259
3421
|
elementEdges: !0,
|
|
@@ -3267,16 +3429,16 @@ var Fi = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3267
3429
|
let l = a.element;
|
|
3268
3430
|
l.dataset.mesurerArrange = "true", l.style.position = "fixed", l.style.inset = "0", l.style.zIndex = "84", l.style.pointerEvents = "none";
|
|
3269
3431
|
let u = n.createElement("div");
|
|
3270
|
-
u.dataset.mesurerArrangeSnapLine = "vertical", u.setAttribute("aria-hidden", "true"), u.style.position = "fixed", u.style.display = "none", u.style.width = "1px", u.style.backgroundColor =
|
|
3432
|
+
u.dataset.mesurerArrangeSnapLine = "vertical", u.setAttribute("aria-hidden", "true"), u.style.position = "fixed", u.style.display = "none", u.style.width = "1px", u.style.backgroundColor = ja, u.style.pointerEvents = "none";
|
|
3271
3433
|
let d = n.createElement("div");
|
|
3272
|
-
d.dataset.mesurerArrangeSnapLine = "horizontal", d.setAttribute("aria-hidden", "true"), d.style.position = "fixed", d.style.display = "none", d.style.height = "1px", d.style.backgroundColor =
|
|
3434
|
+
d.dataset.mesurerArrangeSnapLine = "horizontal", d.setAttribute("aria-hidden", "true"), d.style.position = "fixed", d.style.display = "none", d.style.height = "1px", d.style.backgroundColor = ja, d.style.pointerEvents = "none";
|
|
3273
3435
|
let f = n.createElement("div");
|
|
3274
3436
|
f.dataset.mesurerArrangeBox = "true", f.setAttribute("role", "application"), f.setAttribute("aria-label", "Arrange selected elements"), f.style.position = "fixed", f.style.display = "none", f.style.boxSizing = "border-box", f.style.border = "1px solid #0d99ff", f.style.cursor = "grab", f.style.pointerEvents = "auto", f.style.touchAction = "none", f.style.userSelect = "none", l.append(u, d, f);
|
|
3275
3437
|
let p = /* @__PURE__ */ new Map(), m = /* @__PURE__ */ new Map(), h = {
|
|
3276
3438
|
intentId: null,
|
|
3277
3439
|
state: "desired"
|
|
3278
3440
|
}, g = null, _ = null, v = !1, y = 0, b = null, x = () => e.state.get("mesurer.arrange.intents") ?? { intents: [] }, S = () => e.state.get("mesurer.arrange.active") ?? !1, C = () => {
|
|
3279
|
-
let t = e.state.get(
|
|
3441
|
+
let t = e.state.get(ba);
|
|
3280
3442
|
return {
|
|
3281
3443
|
snapping: t?.snapping ?? !0,
|
|
3282
3444
|
elementEdges: t?.elementEdges ?? !0,
|
|
@@ -3286,21 +3448,21 @@ var Fi = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3286
3448
|
snapLines: t?.snapLines ?? !0
|
|
3287
3449
|
};
|
|
3288
3450
|
}, w = (t) => {
|
|
3289
|
-
e.state.update(
|
|
3451
|
+
e.state.update(ba, (e) => ({
|
|
3290
3452
|
...e,
|
|
3291
3453
|
...t
|
|
3292
3454
|
}));
|
|
3293
|
-
}, T = () =>
|
|
3455
|
+
}, T = () => Va(r), E = () => x().intents.filter((e) => e.pageUrl === T()), D = (e) => !!e.closest("[data-mesurer-island='true'], [data-mesurer-inspector-ui='true'], [data-mesurer-root='true']"), O = (e) => Di(e, o) && !D(e), k = (e) => {
|
|
3294
3456
|
let t = [];
|
|
3295
3457
|
o instanceof c.HTMLElement && o.matches(e) && !D(o) && t.push(o);
|
|
3296
3458
|
for (let n of o.querySelectorAll(e)) n instanceof c.HTMLElement && O(n) && t.push(n);
|
|
3297
3459
|
return t;
|
|
3298
3460
|
}, A = (e) => {
|
|
3299
|
-
let t =
|
|
3300
|
-
if (!
|
|
3461
|
+
let t = Ua(e);
|
|
3462
|
+
if (!Ai(t)) return null;
|
|
3301
3463
|
let n = [];
|
|
3302
3464
|
try {
|
|
3303
|
-
n = k(e.selector).filter((e) =>
|
|
3465
|
+
n = k(e.selector).filter((e) => ji(e, t));
|
|
3304
3466
|
} catch {
|
|
3305
3467
|
return null;
|
|
3306
3468
|
}
|
|
@@ -3308,7 +3470,7 @@ var Fi = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3308
3470
|
if (!t.id && !t.testId) {
|
|
3309
3471
|
let e = [];
|
|
3310
3472
|
try {
|
|
3311
|
-
e = k(t.tag).filter((e) =>
|
|
3473
|
+
e = k(t.tag).filter((e) => ji(e, t));
|
|
3312
3474
|
} catch {
|
|
3313
3475
|
return null;
|
|
3314
3476
|
}
|
|
@@ -3316,7 +3478,7 @@ var Fi = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3316
3478
|
}
|
|
3317
3479
|
return n[0] ?? null;
|
|
3318
3480
|
}, j = () => {
|
|
3319
|
-
for (let e of p.values())
|
|
3481
|
+
for (let e of p.values()) Ja(e);
|
|
3320
3482
|
p.clear();
|
|
3321
3483
|
}, M = () => {
|
|
3322
3484
|
u.style.display = "none", d.style.display = "none";
|
|
@@ -3370,11 +3532,11 @@ var Fi = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3370
3532
|
j();
|
|
3371
3533
|
for (let [t, n] of e) {
|
|
3372
3534
|
if (!t.isConnected || !O(t) || n.x === 0 && n.y === 0) continue;
|
|
3373
|
-
let e =
|
|
3535
|
+
let e = Ka(t), i = r.getComputedStyle(t).transform, a = i && i !== "none" ? ` ${i}` : "";
|
|
3374
3536
|
t.style.setProperty("transform", `translate3d(${n.x}px, ${n.y}px, 0)${a}`, "important"), p.set(t, {
|
|
3375
3537
|
element: t,
|
|
3376
3538
|
beforeTransform: e,
|
|
3377
|
-
appliedTransform:
|
|
3539
|
+
appliedTransform: Ka(t)
|
|
3378
3540
|
});
|
|
3379
3541
|
}
|
|
3380
3542
|
}, I = () => F(ne()), L = (e) => {
|
|
@@ -3386,24 +3548,24 @@ var Fi = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3386
3548
|
}
|
|
3387
3549
|
}, R = () => i.currentSelection().elements.filter((e) => e instanceof c.HTMLElement && e.isConnected && O(e));
|
|
3388
3550
|
e.state.register({
|
|
3389
|
-
id:
|
|
3551
|
+
id: Ea,
|
|
3390
3552
|
initial: R().length > 0
|
|
3391
3553
|
});
|
|
3392
|
-
let z = () => e.state.get(
|
|
3554
|
+
let z = () => e.state.get(Ea) ?? !1, B = () => {
|
|
3393
3555
|
let t = R().length > 0;
|
|
3394
|
-
t !== z() && e.state.update(
|
|
3395
|
-
}, V = () =>
|
|
3556
|
+
t !== z() && e.state.update(Ea, () => t);
|
|
3557
|
+
}, V = () => Fa(R().map((e) => Ei(e))), re = (e) => {
|
|
3396
3558
|
let t = C();
|
|
3397
3559
|
if (!t.snapping) return [];
|
|
3398
3560
|
let n = [], a = new Set(e), s = i.snapshot(), l = s.xrayVisible && t.preferXrayEdges && t.elementEdges, u = 0, d = (i) => {
|
|
3399
|
-
if (u >=
|
|
3561
|
+
if (u >= Aa || a.has(i) || e.some((e) => e.contains(i)) || !O(i)) return;
|
|
3400
3562
|
let o = r.getComputedStyle(i);
|
|
3401
3563
|
if (o.display === "none" || o.visibility === "hidden" || o.visibility === "collapse") return;
|
|
3402
3564
|
let s = o.outlineStyle === "solid" && (Number.parseFloat(o.outlineWidth) || 0) > 0;
|
|
3403
3565
|
if (l && !s) return;
|
|
3404
|
-
let c =
|
|
3566
|
+
let c = Ei(i);
|
|
3405
3567
|
if (c.width <= 0 || c.height <= 0) return;
|
|
3406
|
-
let d =
|
|
3568
|
+
let d = ka;
|
|
3407
3569
|
if (c.left + c.width < -160 || c.top + c.height < -160 || c.left > r.innerWidth + d || c.top > r.innerHeight + d) return;
|
|
3408
3570
|
u += 1;
|
|
3409
3571
|
let f = c.left + c.width, p = c.top + c.height;
|
|
@@ -3444,7 +3606,7 @@ var Fi = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3444
3606
|
if (t.elementEdges || t.elementCenters) {
|
|
3445
3607
|
o instanceof c.HTMLElement && d(o);
|
|
3446
3608
|
for (let e of o.querySelectorAll("*")) {
|
|
3447
|
-
if (u >=
|
|
3609
|
+
if (u >= Aa) break;
|
|
3448
3610
|
e instanceof c.HTMLElement && d(e);
|
|
3449
3611
|
}
|
|
3450
3612
|
}
|
|
@@ -3492,7 +3654,7 @@ var Fi = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3492
3654
|
y = 0, ae();
|
|
3493
3655
|
}));
|
|
3494
3656
|
}, oe = async () => {
|
|
3495
|
-
s.querySelector("[data-mesurer-builtin='select'] button")?.getAttribute("aria-pressed") !== "true" && await e.command.execute(
|
|
3657
|
+
s.querySelector("[data-mesurer-builtin='select'] button")?.getAttribute("aria-pressed") !== "true" && await e.command.execute(Sa, void 0, { source: "arrange" });
|
|
3496
3658
|
}, se = (e) => {
|
|
3497
3659
|
if (!S() || e.button !== 0) return;
|
|
3498
3660
|
let t = R();
|
|
@@ -3504,15 +3666,15 @@ var Fi = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3504
3666
|
let n = P(E());
|
|
3505
3667
|
j();
|
|
3506
3668
|
let r = t.map((e, t) => {
|
|
3507
|
-
let r =
|
|
3669
|
+
let r = Ei(e), i = n.get(e) ?? {
|
|
3508
3670
|
x: 0,
|
|
3509
3671
|
y: 0
|
|
3510
|
-
}, a =
|
|
3672
|
+
}, a = Na(r, i), o = ki(e);
|
|
3511
3673
|
return {
|
|
3512
3674
|
element: e,
|
|
3513
3675
|
target: {
|
|
3514
3676
|
id: `target-${t + 1}`,
|
|
3515
|
-
selector:
|
|
3677
|
+
selector: Oi(e),
|
|
3516
3678
|
fingerprintTag: o.tag,
|
|
3517
3679
|
fingerprintId: o.id,
|
|
3518
3680
|
fingerprintTestId: o.testId,
|
|
@@ -3534,7 +3696,7 @@ var Fi = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3534
3696
|
desiredOffsetY: i.y
|
|
3535
3697
|
}
|
|
3536
3698
|
};
|
|
3537
|
-
}), i =
|
|
3699
|
+
}), i = Fa(r.map(({ target: e }) => ({
|
|
3538
3700
|
left: e.beforeLeft,
|
|
3539
3701
|
top: e.beforeTop,
|
|
3540
3702
|
width: e.beforeWidth,
|
|
@@ -3558,10 +3720,10 @@ var Fi = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3558
3720
|
if (!g || e.pointerId !== g.pointerId) return;
|
|
3559
3721
|
let t = e.clientX - g.originX, n = e.clientY - g.originY, r = null;
|
|
3560
3722
|
e.shiftKey && (Math.abs(t) >= Math.abs(n) ? (n = 0, r = "x") : (t = 0, r = "y"));
|
|
3561
|
-
let i =
|
|
3723
|
+
let i = Na(g.groupBefore, {
|
|
3562
3724
|
x: t,
|
|
3563
3725
|
y: n
|
|
3564
|
-
}), a = r === "y" ? null :
|
|
3726
|
+
}), a = r === "y" ? null : Ba("x", i, g.snapCandidates), o = r === "x" ? null : Ba("y", i, g.snapCandidates);
|
|
3565
3727
|
t += a?.delta ?? 0, n += o?.delta ?? 0, g.dx = t, g.dy = n;
|
|
3566
3728
|
let s = P(E());
|
|
3567
3729
|
for (let e of g.targets) s.set(e.element, {
|
|
@@ -3569,7 +3731,7 @@ var Fi = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3569
3731
|
y: e.target.beforeOffsetY + n
|
|
3570
3732
|
});
|
|
3571
3733
|
F(s);
|
|
3572
|
-
let c =
|
|
3734
|
+
let c = Na(g.groupBefore, {
|
|
3573
3735
|
x: t,
|
|
3574
3736
|
y: n
|
|
3575
3737
|
});
|
|
@@ -3587,7 +3749,7 @@ var Fi = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3587
3749
|
return;
|
|
3588
3750
|
}
|
|
3589
3751
|
_ = {
|
|
3590
|
-
id:
|
|
3752
|
+
id: Ha(r, "arrange"),
|
|
3591
3753
|
createdAt: Date.now(),
|
|
3592
3754
|
pageUrl: T(),
|
|
3593
3755
|
targets: n.targets.map(({ target: e }) => ({
|
|
@@ -3597,13 +3759,13 @@ var Fi = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3597
3759
|
desiredOffsetX: e.beforeOffsetX + n.dx,
|
|
3598
3760
|
desiredOffsetY: e.beforeOffsetY + n.dy
|
|
3599
3761
|
}))
|
|
3600
|
-
}, e.command.execute(
|
|
3762
|
+
}, e.command.execute(wa).catch(() => {
|
|
3601
3763
|
_ = null, ie(), H();
|
|
3602
3764
|
});
|
|
3603
3765
|
}, de = (e) => {
|
|
3604
3766
|
!g || e.pointerId !== g.pointerId || le();
|
|
3605
3767
|
}, fe = (t) => {
|
|
3606
|
-
t.key !== "Escape" || !S() && !g ||
|
|
3768
|
+
t.key !== "Escape" || !S() && !g || Ya(t.target) || s.querySelector("[data-mesurer-tool-menu]") || (t.preventDefault(), t.stopImmediatePropagation(), g ? le() : (e.state.update("mesurer.arrange.active", () => !1), U(), H()));
|
|
3607
3769
|
};
|
|
3608
3770
|
f.addEventListener("pointerdown", se), f.addEventListener("pointermove", ce), f.addEventListener("pointerup", ue), f.addEventListener("pointercancel", de), r.addEventListener("keydown", fe, !0), r.addEventListener("resize", W), r.addEventListener("scroll", W, !0), o.addEventListener("scroll", W, !0), b = new c.MutationObserver(() => {
|
|
3609
3771
|
B(), W();
|
|
@@ -3623,18 +3785,18 @@ var Fi = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3623
3785
|
B(), W();
|
|
3624
3786
|
}), me = e.state.subscribe(W), he = (e) => x().intents.find((t) => t.id === e) ?? null, ge = (e, t) => {
|
|
3625
3787
|
let n = null;
|
|
3626
|
-
if (n = t === "before" ?
|
|
3788
|
+
if (n = t === "before" ? Fa(e.targets.map((e) => ({
|
|
3627
3789
|
left: e.beforeLeft,
|
|
3628
3790
|
top: e.beforeTop,
|
|
3629
3791
|
width: e.beforeWidth,
|
|
3630
3792
|
height: e.beforeHeight
|
|
3631
|
-
}))) : t === "desired" ?
|
|
3793
|
+
}))) : t === "desired" ? Fa(e.targets.map((e) => ({
|
|
3632
3794
|
left: e.desiredLeft,
|
|
3633
3795
|
top: e.desiredTop,
|
|
3634
3796
|
width: e.desiredWidth,
|
|
3635
3797
|
height: e.desiredHeight
|
|
3636
|
-
}))) : L(() =>
|
|
3637
|
-
let i = Math.max(0, n.left -
|
|
3798
|
+
}))) : L(() => Fa(e.targets.map((e) => A(e)).filter((e) => e !== null).map((e) => Ei(e)))), !n) throw Error(`Arrange intent has no resolvable capture region: ${e.id}`);
|
|
3799
|
+
let i = Math.max(0, n.left - Oa), a = Math.max(0, n.top - Oa), o = Math.min(r.innerWidth, n.left + n.width + Oa), s = Math.min(r.innerHeight, n.top + n.height + Oa);
|
|
3638
3800
|
return {
|
|
3639
3801
|
left: i,
|
|
3640
3802
|
top: a,
|
|
@@ -3643,10 +3805,10 @@ var Fi = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3643
3805
|
};
|
|
3644
3806
|
}, _e = {
|
|
3645
3807
|
active: S,
|
|
3646
|
-
intents: () => x().intents.map(
|
|
3808
|
+
intents: () => x().intents.map(Ga),
|
|
3647
3809
|
intent(e) {
|
|
3648
3810
|
let t = he(e);
|
|
3649
|
-
return t ?
|
|
3811
|
+
return t ? Ga(t) : null;
|
|
3650
3812
|
},
|
|
3651
3813
|
show(e, t) {
|
|
3652
3814
|
if (!he(e)) throw Error(`Arrange intent not found: ${e}`);
|
|
@@ -3679,7 +3841,7 @@ var Fi = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3679
3841
|
}]
|
|
3680
3842
|
};
|
|
3681
3843
|
},
|
|
3682
|
-
review: (e, t =
|
|
3844
|
+
review: (e, t = Da) => {
|
|
3683
3845
|
let n = he(e);
|
|
3684
3846
|
if (!n) throw Error(`Arrange intent not found: ${e}`);
|
|
3685
3847
|
let r = L(() => n.targets.map((e) => {
|
|
@@ -3697,7 +3859,7 @@ var Fi = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3697
3859
|
delta: null,
|
|
3698
3860
|
matched: !1
|
|
3699
3861
|
};
|
|
3700
|
-
let i =
|
|
3862
|
+
let i = Ei(n), a = Pa(i, r), o = Math.abs(a.left) <= t && Math.abs(a.top) <= t && Math.abs(a.width) <= t && Math.abs(a.height) <= t;
|
|
3701
3863
|
return {
|
|
3702
3864
|
targetId: e.id,
|
|
3703
3865
|
selector: e.selector,
|
|
@@ -3717,7 +3879,7 @@ var Fi = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3717
3879
|
};
|
|
3718
3880
|
},
|
|
3719
3881
|
clear: async () => {
|
|
3720
|
-
await e.command.execute(
|
|
3882
|
+
await e.command.execute(Ta);
|
|
3721
3883
|
}
|
|
3722
3884
|
};
|
|
3723
3885
|
e.tool.register({
|
|
@@ -3725,8 +3887,8 @@ var Fi = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3725
3887
|
label: "Arrange",
|
|
3726
3888
|
shortcut: "Shift+A",
|
|
3727
3889
|
order: 65,
|
|
3728
|
-
command:
|
|
3729
|
-
icon:
|
|
3890
|
+
command: Ca,
|
|
3891
|
+
icon: Ma,
|
|
3730
3892
|
active: S,
|
|
3731
3893
|
menu: {
|
|
3732
3894
|
label: "Arrange options",
|
|
@@ -3833,28 +3995,28 @@ var Fi = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3833
3995
|
disabled: () => !C().snapping
|
|
3834
3996
|
}
|
|
3835
3997
|
]
|
|
3836
|
-
}), e.command.register(
|
|
3998
|
+
}), e.command.register(Ca, async () => {
|
|
3837
3999
|
let t = !S();
|
|
3838
4000
|
if (t && await oe(), e.state.update("mesurer.arrange.active", () => t), !t) {
|
|
3839
4001
|
g && le(), U(), H();
|
|
3840
4002
|
return;
|
|
3841
4003
|
}
|
|
3842
4004
|
ie(), H();
|
|
3843
|
-
}), e.command.register(
|
|
4005
|
+
}), e.command.register(wa, () => {
|
|
3844
4006
|
let t = _;
|
|
3845
4007
|
_ = null, t && (e.state.update("mesurer.arrange.intents", (e) => ({ intents: [...e.intents, t].slice(-100) })), ie(), H());
|
|
3846
|
-
}), e.command.register(
|
|
3847
|
-
e.state.update(
|
|
4008
|
+
}), e.command.register(Ta, () => {
|
|
4009
|
+
e.state.update(va, () => ({ intents: [] })), h = {
|
|
3848
4010
|
intentId: null,
|
|
3849
4011
|
state: "desired"
|
|
3850
4012
|
}, j(), M(), S() ? N() : te(), H();
|
|
3851
|
-
}), e.service.provide(
|
|
4013
|
+
}), e.service.provide(_a, _e), I(), H(), e.lifecycle.onDispose(() => {
|
|
3852
4014
|
v = !0, y && r.cancelAnimationFrame(y), b?.disconnect(), b = null, f.removeEventListener("pointerdown", se), f.removeEventListener("pointermove", ce), f.removeEventListener("pointerup", ue), f.removeEventListener("pointercancel", de), r.removeEventListener("keydown", fe, !0), r.removeEventListener("resize", W), r.removeEventListener("scroll", W, !0), o.removeEventListener("scroll", W, !0), pe(), me.dispose(), j(), M(), te(), i.dispose(), a.dispose();
|
|
3853
4015
|
});
|
|
3854
4016
|
}
|
|
3855
|
-
}),
|
|
4017
|
+
}), Za = (e, t, n) => {
|
|
3856
4018
|
let r = !1, i = 0, a = null, o = null, s = () => ({
|
|
3857
|
-
visible: (e.state.get("mesurer.arrange.active") ?? !1) ||
|
|
4019
|
+
visible: (e.state.get("mesurer.arrange.active") ?? !1) || ha(e).keepArrangeChanges,
|
|
3858
4020
|
intents: e.state.get("mesurer.arrange.intents")?.intents ?? []
|
|
3859
4021
|
}), c = (e, t) => e?.visible === t.visible && e.intents === t.intents, l = (e) => {
|
|
3860
4022
|
if (a = e, e.visible) {
|
|
@@ -3875,23 +4037,23 @@ var Fi = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3875
4037
|
l(s()), e.lifecycle.onDispose(() => {
|
|
3876
4038
|
r = !0, i && n.cancelAnimationFrame(i), i = 0, o = null, d.dispose();
|
|
3877
4039
|
});
|
|
3878
|
-
},
|
|
4040
|
+
}, Qa = [
|
|
3879
4041
|
"[data-mesurer-measurement='true']",
|
|
3880
4042
|
"[data-mesurer-selected-measurement='true']",
|
|
3881
4043
|
"[data-mesurer-inspector-ui='true']"
|
|
3882
|
-
].join(""),
|
|
4044
|
+
].join(""), $a = "[data-mesurer-text-edit-runtime='true']", eo = "[data-mesurer-text-editor='true']", to = (e, t) => {
|
|
3883
4045
|
let n = t.ownerDocument.body;
|
|
3884
4046
|
if (!n) return;
|
|
3885
|
-
let r = t.ownerWindow, i = /* @__PURE__ */ new Map(), a = e.state.get("mesurer.arrange.active") ?? !1, o = null, s = null, c = (e) => e.matches(
|
|
4047
|
+
let r = t.ownerWindow, i = /* @__PURE__ */ new Map(), a = e.state.get("mesurer.arrange.active") ?? !1, o = null, s = null, c = (e) => e.matches(Qa) && e.getRootNode() === t.ownerDocument && e.parentElement === n, l = () => {
|
|
3886
4048
|
for (let [e, t] of i) e.isConnected && (t.value || t.priority ? e.style.setProperty("visibility", t.value, t.priority) : e.style.removeProperty("visibility"));
|
|
3887
4049
|
i.clear();
|
|
3888
|
-
}, u = () => !!o?.querySelector(
|
|
4050
|
+
}, u = () => !!o?.querySelector(eo), d = (e) => {
|
|
3889
4051
|
!a || u() || !c(e) || (i.has(e) || i.set(e, {
|
|
3890
4052
|
value: e.style.getPropertyValue("visibility"),
|
|
3891
4053
|
priority: e.style.getPropertyPriority("visibility")
|
|
3892
4054
|
}), (e.style.getPropertyValue("visibility") !== "hidden" || e.style.getPropertyPriority("visibility") !== "important") && e.style.setProperty("visibility", "hidden", "important"));
|
|
3893
4055
|
}, f = () => {
|
|
3894
|
-
if (!(!a || u())) for (let e of n.querySelectorAll(
|
|
4056
|
+
if (!(!a || u())) for (let e of n.querySelectorAll(Qa)) e instanceof r.HTMLElement && d(e);
|
|
3895
4057
|
}, p = () => {
|
|
3896
4058
|
!a || u() ? l() : f();
|
|
3897
4059
|
}, m = (e) => {
|
|
@@ -3906,14 +4068,14 @@ var Fi = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3906
4068
|
}), p();
|
|
3907
4069
|
}
|
|
3908
4070
|
}, h = () => {
|
|
3909
|
-
let e = n.querySelectorAll(
|
|
4071
|
+
let e = n.querySelectorAll($a);
|
|
3910
4072
|
return e.item(e.length - 1);
|
|
3911
4073
|
};
|
|
3912
4074
|
m(h());
|
|
3913
4075
|
let g = new r.MutationObserver((e) => {
|
|
3914
4076
|
let t = !1;
|
|
3915
4077
|
for (let n of e) {
|
|
3916
|
-
for (let e of n.addedNodes) e instanceof r.HTMLElement && (e.matches(
|
|
4078
|
+
for (let e of n.addedNodes) e instanceof r.HTMLElement && (e.matches($a) && (t = !0), d(e));
|
|
3917
4079
|
for (let e of n.removedNodes) e === o && (t = !0);
|
|
3918
4080
|
}
|
|
3919
4081
|
t && m(h());
|
|
@@ -3926,20 +4088,20 @@ var Fi = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3926
4088
|
p(), e.lifecycle.onDispose(() => {
|
|
3927
4089
|
g.disconnect(), s?.disconnect(), s = null, _.dispose(), l();
|
|
3928
4090
|
});
|
|
3929
|
-
},
|
|
3930
|
-
let e =
|
|
4091
|
+
}, no = () => {
|
|
4092
|
+
let e = Xa();
|
|
3931
4093
|
return {
|
|
3932
4094
|
...e,
|
|
3933
4095
|
async setup(t) {
|
|
3934
4096
|
await e.setup(t);
|
|
3935
|
-
let n = t.service.get(
|
|
4097
|
+
let n = t.service.get(_a);
|
|
3936
4098
|
if (!n) throw Error("Arrange presentation policy requires the Arrange service.");
|
|
3937
4099
|
let r = t.service.get("runtime:solid");
|
|
3938
4100
|
if (!r) throw Error("Arrange presentation policy requires the Solid renderer runtime.");
|
|
3939
|
-
|
|
4101
|
+
Za(t, n, r.ownerWindow), to(t, r);
|
|
3940
4102
|
}
|
|
3941
4103
|
};
|
|
3942
|
-
},
|
|
4104
|
+
}, ro = (e, t, n, r) => ar({
|
|
3943
4105
|
id: `mesurer.${e}`,
|
|
3944
4106
|
version: "0.1.0",
|
|
3945
4107
|
provides: [`tool:${e}`],
|
|
@@ -3953,7 +4115,7 @@ var Fi = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3953
4115
|
command: `builtin.${e}`
|
|
3954
4116
|
});
|
|
3955
4117
|
}
|
|
3956
|
-
}),
|
|
4118
|
+
}), io = () => ro("select", "Select", "S", 10), ao = () => ro("xray", "X-ray", "X", 20), oo = () => ro("color-picker", "Color picker", "P", 30), so = () => ro("rulers", "Rulers", "R", 40), co = () => ro("text-inspector", "Typography", "A", 50), lo = () => ro("guides", "Guides", "G", 60), uo = () => ro("settings", "Settings", "⌘/Ctrl+,", 90), fo = () => ar({
|
|
3957
4119
|
id: "mesurer.distance",
|
|
3958
4120
|
version: "0.1.0",
|
|
3959
4121
|
provides: ["overlay:distance", "settings:selection-spacing"],
|
|
@@ -3969,21 +4131,21 @@ var Fi = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@la
|
|
|
3969
4131
|
order: 30
|
|
3970
4132
|
});
|
|
3971
4133
|
}
|
|
3972
|
-
}),
|
|
3973
|
-
|
|
3974
|
-
|
|
3975
|
-
|
|
3976
|
-
|
|
3977
|
-
|
|
3978
|
-
|
|
3979
|
-
|
|
3980
|
-
|
|
4134
|
+
}), po = () => [
|
|
4135
|
+
io(),
|
|
4136
|
+
ao(),
|
|
4137
|
+
oo(),
|
|
4138
|
+
so(),
|
|
4139
|
+
co(),
|
|
4140
|
+
lo(),
|
|
4141
|
+
fo(),
|
|
4142
|
+
uo()
|
|
3981
4143
|
];
|
|
3982
|
-
function
|
|
4144
|
+
function mo(e = [], t = []) {
|
|
3983
4145
|
let n = new Set(t.map((e) => `mesurer.${e}`));
|
|
3984
|
-
return [...
|
|
4146
|
+
return [...po().filter((e) => !n.has(e.id)), ...e];
|
|
3985
4147
|
}
|
|
3986
|
-
var
|
|
4148
|
+
var ho = (e, t, n) => Math.min(Math.max(e, t), Math.max(t, n)), go = (e, t, n = 0) => !(e.left + e.width + n <= t.left || t.left + t.width + n <= e.left || e.top + e.height + n <= t.top || t.top + t.height + n <= e.top), _o = (e, t, n, r, i) => {
|
|
3987
4149
|
let a = e.left + e.width, o = e.top + e.height, s = [
|
|
3988
4150
|
{
|
|
3989
4151
|
axis: "vertical",
|
|
@@ -4031,7 +4193,7 @@ var Ia = (e, t, n) => Math.min(Math.max(e, t), Math.max(t, n)), La = (e, t, n =
|
|
|
4031
4193
|
}
|
|
4032
4194
|
];
|
|
4033
4195
|
return i ? s.sort((e, t) => t.space - e.space) : s;
|
|
4034
|
-
},
|
|
4196
|
+
}, vo = (e, t, n) => {
|
|
4035
4197
|
let r = [];
|
|
4036
4198
|
for (let i = 0; i <= n; i += 1) {
|
|
4037
4199
|
let n = i * t;
|
|
@@ -4057,14 +4219,14 @@ var Ia = (e, t, n) => Math.min(Math.max(e, t), Math.max(t, n)), La = (e, t, n =
|
|
|
4057
4219
|
}
|
|
4058
4220
|
return r;
|
|
4059
4221
|
};
|
|
4060
|
-
function
|
|
4222
|
+
function yo(e, t, n = {}) {
|
|
4061
4223
|
let r = n.markerSize ?? 24, i = n.markerGap ?? 4, a = n.targetGap ?? 6, o = n.targetClearance ?? 2, s = n.viewportPadding ?? 4, c = n.obstacles ?? [], l = Math.max(0, n.maxShiftRings ?? 2), u = n.viewportAware ?? !1, d = r + i, f = Math.max(s, t.width - r - s), p = Math.max(s, t.height - r - s), m = [], h = e.map((e) => e.rect), g = [];
|
|
4062
4224
|
for (let n of e) {
|
|
4063
|
-
let e = /* @__PURE__ */ new Set(), _ = [], v =
|
|
4064
|
-
for (let t of
|
|
4225
|
+
let e = /* @__PURE__ */ new Set(), _ = [], v = _o(n.rect, t, r, a, u);
|
|
4226
|
+
for (let t of vo(v, d, l)) {
|
|
4065
4227
|
let n = u ? {
|
|
4066
|
-
left:
|
|
4067
|
-
top:
|
|
4228
|
+
left: ho(t.left, s, f),
|
|
4229
|
+
top: ho(t.top, s, p)
|
|
4068
4230
|
} : t, r = `${n.left}:${n.top}`;
|
|
4069
4231
|
e.has(r) || (e.add(r), _.push(n));
|
|
4070
4232
|
}
|
|
@@ -4074,21 +4236,21 @@ function Ba(e, t, n = {}) {
|
|
|
4074
4236
|
width: r,
|
|
4075
4237
|
height: r
|
|
4076
4238
|
};
|
|
4077
|
-
return h.every((e) => !
|
|
4239
|
+
return h.every((e) => !go(t, e, o)) && c.every((e) => !go(t, e, i));
|
|
4078
4240
|
}), b = y.find((e) => {
|
|
4079
4241
|
let t = {
|
|
4080
4242
|
...e,
|
|
4081
4243
|
width: r,
|
|
4082
4244
|
height: r
|
|
4083
4245
|
};
|
|
4084
|
-
return m.every((e) => !
|
|
4246
|
+
return m.every((e) => !go(t, e, i));
|
|
4085
4247
|
}) ?? y.find((e) => {
|
|
4086
4248
|
let t = {
|
|
4087
4249
|
...e,
|
|
4088
4250
|
width: r,
|
|
4089
4251
|
height: r
|
|
4090
4252
|
};
|
|
4091
|
-
return m.every((e) => !
|
|
4253
|
+
return m.every((e) => !go(t, e));
|
|
4092
4254
|
}) ?? y[0] ?? _[0] ?? {
|
|
4093
4255
|
left: s,
|
|
4094
4256
|
top: s
|
|
@@ -4104,20 +4266,20 @@ function Ba(e, t, n = {}) {
|
|
|
4104
4266
|
}
|
|
4105
4267
|
return g;
|
|
4106
4268
|
}
|
|
4107
|
-
var
|
|
4269
|
+
var bo = (e, t, n) => Math.min(Math.max(e, t), Math.max(t, n)), xo = 0, So = (e) => e.split(",").map((e) => e.trim()).filter((e) => e.length > 0 && e !== "none"), Co = (e) => {
|
|
4108
4270
|
let t = e.ownerDocument.defaultView?.HTMLElement;
|
|
4109
4271
|
return !!(t && e instanceof t);
|
|
4110
|
-
},
|
|
4111
|
-
let n = e.style.getPropertyValue("anchor-name"), r = e.style.getPropertyPriority("anchor-name"), i =
|
|
4272
|
+
}, wo = (e, t) => {
|
|
4273
|
+
let n = e.style.getPropertyValue("anchor-name"), r = e.style.getPropertyPriority("anchor-name"), i = So(n);
|
|
4112
4274
|
i.includes(t) || e.style.setProperty("anchor-name", [...i, t].join(", "), r);
|
|
4113
4275
|
let a = !1;
|
|
4114
4276
|
return () => {
|
|
4115
4277
|
if (a) return;
|
|
4116
4278
|
a = !0;
|
|
4117
|
-
let i =
|
|
4279
|
+
let i = So(e.style.getPropertyValue("anchor-name")).filter((e) => e !== t);
|
|
4118
4280
|
i.length ? e.style.setProperty("anchor-name", i.join(", "), e.style.getPropertyPriority("anchor-name")) : n.trim() === "none" ? e.style.setProperty("anchor-name", n, r) : e.style.removeProperty("anchor-name");
|
|
4119
4281
|
};
|
|
4120
|
-
},
|
|
4282
|
+
}, To = (e) => {
|
|
4121
4283
|
if (!e.length) return null;
|
|
4122
4284
|
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));
|
|
4123
4285
|
return {
|
|
@@ -4126,14 +4288,14 @@ var Va = (e, t, n) => Math.min(Math.max(e, t), Math.max(t, n)), Ha = 0, Ua = (e)
|
|
|
4126
4288
|
width: r - t,
|
|
4127
4289
|
height: i - n
|
|
4128
4290
|
};
|
|
4129
|
-
},
|
|
4291
|
+
}, Eo = (e, t, n, r, i = 8) => {
|
|
4130
4292
|
let a = r.innerWidth - t - 8, o = r.innerHeight - n - 8, s = e.left + e.width + i, c = e.left - t - i;
|
|
4131
4293
|
return {
|
|
4132
|
-
left: s + t <= r.innerWidth - 8 ? s : c >= 8 ? c :
|
|
4133
|
-
top:
|
|
4294
|
+
left: s + t <= r.innerWidth - 8 ? s : c >= 8 ? c : bo(e.left + e.width - t, 8, a),
|
|
4295
|
+
top: bo(e.top, 8, o)
|
|
4134
4296
|
};
|
|
4135
|
-
},
|
|
4136
|
-
let a = r.innerWidth - t - 8, o =
|
|
4297
|
+
}, Do = (e, t, n, r, i = 8) => {
|
|
4298
|
+
let a = r.innerWidth - t - 8, o = bo(e.left + e.width / 2 - t / 2, 8, a), s = e.top + e.height + i;
|
|
4137
4299
|
if (s + n <= r.innerHeight - 8) return {
|
|
4138
4300
|
left: o,
|
|
4139
4301
|
top: s
|
|
@@ -4142,10 +4304,10 @@ var Va = (e, t, n) => Math.min(Math.max(e, t), Math.max(t, n)), Ha = 0, Ua = (e)
|
|
|
4142
4304
|
return c >= 8 ? {
|
|
4143
4305
|
left: o,
|
|
4144
4306
|
top: c
|
|
4145
|
-
} :
|
|
4307
|
+
} : Eo(e, t, n, r, i);
|
|
4146
4308
|
};
|
|
4147
|
-
function
|
|
4148
|
-
let [t, n] = K(0), [r, i] = K(0), [a, o] = K(null), [s, c] = K(null), [l, u] = K(null), [d, f] = K({}), [p, m] = K(null), [h, g] = K(!1), [_, v] = K(""), [y, b] = K(null), [x, S] = K(!1), [C, w] = K(null), [T, E] = K(null), D = `--mesurer-annotation-trigger-${++
|
|
4309
|
+
function Oo(e) {
|
|
4310
|
+
let [t, n] = K(0), [r, i] = K(0), [a, o] = K(null), [s, c] = K(null), [l, u] = K(null), [d, f] = K({}), [p, m] = K(null), [h, g] = K(!1), [_, v] = K(""), [y, b] = K(null), [x, S] = K(!1), [C, w] = K(null), [T, E] = K(null), D = `--mesurer-annotation-trigger-${++xo}`, O = null, k = e.initialTriggerFallback === "current-and-next", A = null, j = null, M = null, ee, N, te = null, P = null, ne = null, F = null, I = null, L = null, R = /* @__PURE__ */ new Map(), z = () => ee?.ownerDocument.defaultView ?? window, B = () => e.coordinateSpace === "viewport", V = (e) => e ? "native-anchor" : B() ? "cached-delta" : "document", re = (e) => {
|
|
4149
4311
|
if (B()) return e;
|
|
4150
4312
|
let t = z();
|
|
4151
4313
|
return {
|
|
@@ -4180,7 +4342,7 @@ function Ya(e) {
|
|
|
4180
4342
|
}, ue = (t) => {
|
|
4181
4343
|
let n = e.runtime.annotation(t);
|
|
4182
4344
|
return !n || n.anchor.kind !== "elements" ? null : n.resolvedTargets.find(({ element: e }) => e?.isConnected)?.element ?? null;
|
|
4183
|
-
}, de = (e) => !!(
|
|
4345
|
+
}, de = (e) => !!(Co(e) && B() && ee && ae() && e.getRootNode() === ee.getRootNode()), fe = (e) => {
|
|
4184
4346
|
let t = ue(e), n = R.get(e);
|
|
4185
4347
|
if (!t) {
|
|
4186
4348
|
n && (le(e), i((e) => e + 1));
|
|
@@ -4194,19 +4356,19 @@ function Ya(e) {
|
|
|
4194
4356
|
le(e);
|
|
4195
4357
|
let a = t.ownerDocument.defaultView;
|
|
4196
4358
|
if (a) {
|
|
4197
|
-
if (r &&
|
|
4198
|
-
let n = `--mesurer-annotation-${++
|
|
4359
|
+
if (r && Co(t)) {
|
|
4360
|
+
let n = `--mesurer-annotation-${++xo}`;
|
|
4199
4361
|
R.set(e, {
|
|
4200
4362
|
target: t,
|
|
4201
4363
|
anchorName: n,
|
|
4202
|
-
releaseAnchor:
|
|
4203
|
-
scroll:
|
|
4364
|
+
releaseAnchor: wo(t, n),
|
|
4365
|
+
scroll: ti(a, t, () => ce(e), { trackWindow: !1 })
|
|
4204
4366
|
});
|
|
4205
4367
|
} else R.set(e, {
|
|
4206
4368
|
target: t,
|
|
4207
4369
|
anchorName: null,
|
|
4208
4370
|
releaseAnchor: null,
|
|
4209
|
-
scroll:
|
|
4371
|
+
scroll: ti(a, t, () => ce(e), { trackWindow: B() })
|
|
4210
4372
|
});
|
|
4211
4373
|
i((e) => e + 1);
|
|
4212
4374
|
}
|
|
@@ -4225,7 +4387,7 @@ function Ya(e) {
|
|
|
4225
4387
|
e.initialTriggerFallback && (O = W());
|
|
4226
4388
|
let ge = () => {
|
|
4227
4389
|
F?.release(), F = null, ne?.(), ne = null, te = null, P = null;
|
|
4228
|
-
}, _e = (e) => !!(
|
|
4390
|
+
}, _e = (e) => !!(Co(e) && B() && ee && e !== O && ae() && e.getRootNode() === ee.getRootNode()), ve = () => {
|
|
4229
4391
|
let e = W();
|
|
4230
4392
|
O && e !== O && (O = null);
|
|
4231
4393
|
let t = te, n = !!(e?.isConnected && _e(e)), r = P === e;
|
|
@@ -4233,16 +4395,16 @@ function Ya(e) {
|
|
|
4233
4395
|
F?.sync();
|
|
4234
4396
|
return;
|
|
4235
4397
|
}
|
|
4236
|
-
let i = e === t ? D : `--mesurer-annotation-trigger-${++
|
|
4398
|
+
let i = e === t ? D : `--mesurer-annotation-trigger-${++xo}`;
|
|
4237
4399
|
if (ge(), !e?.isConnected) return;
|
|
4238
4400
|
te = e;
|
|
4239
4401
|
let a = e.ownerDocument.defaultView;
|
|
4240
4402
|
if (a) {
|
|
4241
|
-
if (n &&
|
|
4242
|
-
ne =
|
|
4403
|
+
if (n && Co(e)) {
|
|
4404
|
+
ne = wo(e, i), P = e, D = i, F = ti(a, e, se, { trackWindow: !1 });
|
|
4243
4405
|
return;
|
|
4244
4406
|
}
|
|
4245
|
-
D = i, F =
|
|
4407
|
+
D = i, F = ti(a, e, se, { trackWindow: B() });
|
|
4246
4408
|
}
|
|
4247
4409
|
}, ye = (e) => {
|
|
4248
4410
|
if (I?.disconnect(), I = null, !e?.isConnected) return;
|
|
@@ -4308,7 +4470,7 @@ function Ya(e) {
|
|
|
4308
4470
|
};
|
|
4309
4471
|
});
|
|
4310
4472
|
return e.region && t.push({ ...e.region }), t;
|
|
4311
|
-
}), Ne = Gt(() =>
|
|
4473
|
+
}), Ne = Gt(() => To(Me())), Pe = () => {
|
|
4312
4474
|
let e = we().elements.length;
|
|
4313
4475
|
return e > 1 ? `${e} selected elements` : e === 1 ? "Selected element" : "Selected region";
|
|
4314
4476
|
}, Fe = (e) => e.anchor.kind === "elements" ? `${e.anchor.targets.length} selected ${e.anchor.targets.length === 1 ? "element" : "elements"}` : "Selected region", Ie = Gt(() => {
|
|
@@ -4330,7 +4492,7 @@ function Ya(e) {
|
|
|
4330
4492
|
top: e.top,
|
|
4331
4493
|
width: 24,
|
|
4332
4494
|
height: 24
|
|
4333
|
-
})), [a] =
|
|
4495
|
+
})), [a] = yo([{
|
|
4334
4496
|
id: "selection-note-trigger",
|
|
4335
4497
|
rect: n
|
|
4336
4498
|
}], {
|
|
@@ -4339,7 +4501,7 @@ function Ya(e) {
|
|
|
4339
4501
|
}, {
|
|
4340
4502
|
obstacles: i,
|
|
4341
4503
|
maxShiftRings: 1
|
|
4342
|
-
}), o = a?.left ??
|
|
4504
|
+
}), o = a?.left ?? bo(n.left + n.width + 6, 4, r.innerWidth - 24 - 4), s = a?.top ?? bo(n.top, 4, r.innerHeight - 24 - 4), c = P === e, l = B() && !c;
|
|
4343
4505
|
return {
|
|
4344
4506
|
left: c || l ? o : o + r.scrollX,
|
|
4345
4507
|
top: c || l ? s : s + r.scrollY,
|
|
@@ -4357,7 +4519,7 @@ function Ya(e) {
|
|
|
4357
4519
|
rect: n
|
|
4358
4520
|
}] : [];
|
|
4359
4521
|
});
|
|
4360
|
-
return new Map(
|
|
4522
|
+
return new Map(yo(i, {
|
|
4361
4523
|
width: n.innerWidth,
|
|
4362
4524
|
height: n.innerHeight
|
|
4363
4525
|
}, { obstacles: Me() }).map((e) => [e.id, e]));
|
|
@@ -4381,7 +4543,7 @@ function Ya(e) {
|
|
|
4381
4543
|
return n && e ? {
|
|
4382
4544
|
left: e.left + n.left,
|
|
4383
4545
|
top: e.top + n.top
|
|
4384
|
-
} : e ?
|
|
4546
|
+
} : e ? Do(e, 272, 168, t) : {
|
|
4385
4547
|
left: 8,
|
|
4386
4548
|
top: 8
|
|
4387
4549
|
};
|
|
@@ -4402,7 +4564,7 @@ function Ya(e) {
|
|
|
4402
4564
|
};
|
|
4403
4565
|
}, Ue = (e, t) => {
|
|
4404
4566
|
let n = z(), r = Re(), i = r.get(e);
|
|
4405
|
-
if (!i) return
|
|
4567
|
+
if (!i) return Eo(t, 272, 176, n);
|
|
4406
4568
|
let a = n.innerWidth - 272 - 8, o = n.innerHeight - 176 - 8, s = [...r.values()].map((e) => ({
|
|
4407
4569
|
left: e.left,
|
|
4408
4570
|
top: e.top,
|
|
@@ -4428,8 +4590,8 @@ function Ya(e) {
|
|
|
4428
4590
|
}
|
|
4429
4591
|
]) {
|
|
4430
4592
|
let t = {
|
|
4431
|
-
left:
|
|
4432
|
-
top:
|
|
4593
|
+
left: bo(e.left, 8, a),
|
|
4594
|
+
top: bo(e.top, 8, o)
|
|
4433
4595
|
}, n = `${t.left}:${t.top}`;
|
|
4434
4596
|
l.has(n) || (l.add(n), u.push(t));
|
|
4435
4597
|
}
|
|
@@ -4445,7 +4607,7 @@ function Ya(e) {
|
|
|
4445
4607
|
targetOverlap: c(r, t),
|
|
4446
4608
|
index: n
|
|
4447
4609
|
};
|
|
4448
|
-
}).sort((e, t) => e.markerOverlap - t.markerOverlap || e.targetOverlap - t.targetOverlap || e.index - t.index)[0]?.candidate ??
|
|
4610
|
+
}).sort((e, t) => e.markerOverlap - t.markerOverlap || e.targetOverlap - t.targetOverlap || e.index - t.index)[0]?.candidate ?? Eo(t, 272, 176, n);
|
|
4449
4611
|
}, We = (t) => {
|
|
4450
4612
|
let n = e.runtime.annotationRect(t);
|
|
4451
4613
|
if (!n) return {
|
|
@@ -4493,8 +4655,8 @@ function Ya(e) {
|
|
|
4493
4655
|
let u = (t) => {
|
|
4494
4656
|
if (!j || t.pointerId !== j.pointerId) return;
|
|
4495
4657
|
let r = j, i = Math.max(8, s.innerWidth - r.width - 8), a = Math.max(8, s.innerHeight - r.height - 8), o = {
|
|
4496
|
-
left:
|
|
4497
|
-
top:
|
|
4658
|
+
left: bo(r.originLeft + t.clientX - r.startX, 8, i),
|
|
4659
|
+
top: bo(r.originTop + t.clientY - r.startY, 8, a)
|
|
4498
4660
|
};
|
|
4499
4661
|
if (n === "composer") {
|
|
4500
4662
|
let e = Ne();
|
|
@@ -4539,7 +4701,7 @@ function Ya(e) {
|
|
|
4539
4701
|
k = !1, A = H(), v(""), b(null), w(null), o(null);
|
|
4540
4702
|
let e = Ne();
|
|
4541
4703
|
if (e) {
|
|
4542
|
-
let t =
|
|
4704
|
+
let t = Do(e, 272, 168, z());
|
|
4543
4705
|
m({
|
|
4544
4706
|
left: t.left - e.left,
|
|
4545
4707
|
top: t.top - e.top
|
|
@@ -4603,7 +4765,7 @@ function Ya(e) {
|
|
|
4603
4765
|
});
|
|
4604
4766
|
return nr(() => (e) => {
|
|
4605
4767
|
N = e, F?.sync();
|
|
4606
|
-
}, t), Z(t, J(
|
|
4768
|
+
}, t), Z(t, J(yi, { size: 14 })), q(() => ({
|
|
4607
4769
|
e: B() ? "viewport" : "document",
|
|
4608
4770
|
t: V(e().nativeAnchor),
|
|
4609
4771
|
a: {
|
|
@@ -4668,10 +4830,10 @@ function Ya(e) {
|
|
|
4668
4830
|
class: "msr:h-7 msr:rounded-[7px] msr:border-0 msr:bg-[#0d99ff] msr:px-2.5 msr:text-[11px] msr:font-medium msr:text-white msr:hover:bg-[#0b8eea]",
|
|
4669
4831
|
onClick: et
|
|
4670
4832
|
});
|
|
4671
|
-
return X(t, n), X(t, s), X(t, c), X(n, r), X(n, o), Z(n, J(
|
|
4833
|
+
return X(t, n), X(t, s), X(t, c), X(n, r), X(n, o), Z(n, J(yi, {
|
|
4672
4834
|
size: 14,
|
|
4673
4835
|
class: "msr:text-ink-700"
|
|
4674
|
-
}), r), X(r, i), X(r, a), X(i, Qn("Add note")), Z(a, Pe), Z(o, J(
|
|
4836
|
+
}), r), X(r, i), X(r, a), X(i, Qn("Add note")), Z(a, Pe), Z(o, J(xi, { size: 14 })), Z(t, J(Xt, {
|
|
4675
4837
|
get when() {
|
|
4676
4838
|
return y();
|
|
4677
4839
|
},
|
|
@@ -4871,7 +5033,7 @@ function Ya(e) {
|
|
|
4871
5033
|
o(null), w(null);
|
|
4872
5034
|
}
|
|
4873
5035
|
}), y = Y("div", { class: "msr:mx-1 msr:mt-1 msr:max-h-36 msr:overflow-auto msr:whitespace-pre-wrap msr:rounded-[7px] msr:bg-ink-50 msr:px-2 msr:py-2 msr:text-[12px] msr:leading-[1.45] msr:text-ink-800" });
|
|
4874
|
-
return X(i, a), X(i, y), X(a, s), X(a, l), X(a, h), Z(s, r), X(l, d), X(l, m), X(d, p), Z(d, r, null), Z(m, () => Fe(t())), X(h, g), X(h, _), X(h, v), Z(g, J(
|
|
5036
|
+
return X(i, a), X(i, y), X(a, s), X(a, l), X(a, h), Z(s, r), X(l, d), X(l, m), X(d, p), Z(d, r, null), Z(m, () => Fe(t())), X(h, g), X(h, _), X(h, v), Z(g, J(vi, { size: 14 })), Z(_, J(bi, { size: 14 })), Z(v, J(xi, { size: 14 })), Z(y, () => t().note), Z(i, J(Xt, {
|
|
4875
5037
|
get when() {
|
|
4876
5038
|
return C();
|
|
4877
5039
|
},
|
|
@@ -4903,11 +5065,11 @@ function Ya(e) {
|
|
|
4903
5065
|
})
|
|
4904
5066
|
];
|
|
4905
5067
|
}
|
|
4906
|
-
function
|
|
5068
|
+
function ko(e) {
|
|
4907
5069
|
let t = null;
|
|
4908
|
-
return St(
|
|
5070
|
+
return St(Ni(e.ownerWindow, () => {
|
|
4909
5071
|
t?.abandonNoteComposer();
|
|
4910
|
-
})), J(
|
|
5072
|
+
})), J(Oo, {
|
|
4911
5073
|
get runtime() {
|
|
4912
5074
|
return e.runtime;
|
|
4913
5075
|
},
|
|
@@ -4925,11 +5087,11 @@ function Xa(e) {
|
|
|
4925
5087
|
}
|
|
4926
5088
|
});
|
|
4927
5089
|
}
|
|
4928
|
-
var
|
|
4929
|
-
function
|
|
5090
|
+
var Ao = "2147482950", jo = "2147483646", Mo = "2147483647";
|
|
5091
|
+
function No(e) {
|
|
4930
5092
|
let { ownerDocument: t, ownerWindow: n, pageTarget: r } = e, i = t.body;
|
|
4931
5093
|
if (!(i && !(r instanceof n.ShadowRoot) && r.getRootNode() === t)) return e.createInspectorMount();
|
|
4932
|
-
|
|
5094
|
+
Li(pa, i);
|
|
4933
5095
|
let a = t.createElement("div");
|
|
4934
5096
|
a.dataset.mesurerInspectorUi = "true", a.dataset.mesurerDocumentInspectorMount = "true", a.dataset.theme = e.theme?.() ?? "system";
|
|
4935
5097
|
let o = e.subscribeTheme?.((e) => {
|
|
@@ -4947,17 +5109,17 @@ function eo(e) {
|
|
|
4947
5109
|
s.dataset.mesurerDocumentInspectorLayerStyle = "true", s.textContent = `
|
|
4948
5110
|
[data-mesurer-document-inspector-mount="true"] [data-mesurer-annotation-target-highlight="true"] {
|
|
4949
5111
|
position: absolute !important;
|
|
4950
|
-
z-index: ${
|
|
5112
|
+
z-index: ${Ao} !important;
|
|
4951
5113
|
}
|
|
4952
5114
|
[data-mesurer-document-inspector-mount="true"] [data-mesurer-annotation-panel="true"] {
|
|
4953
5115
|
position: absolute !important;
|
|
4954
|
-
z-index: ${
|
|
5116
|
+
z-index: ${jo} !important;
|
|
4955
5117
|
}
|
|
4956
5118
|
[data-mesurer-document-inspector-mount="true"] [data-mesurer-annotation-marker="true"],
|
|
4957
5119
|
[data-mesurer-document-inspector-mount="true"] [data-mesurer-annotation-trigger="true"],
|
|
4958
5120
|
[data-mesurer-document-inspector-mount="true"] [data-mesurer-annotation-composer="true"] {
|
|
4959
5121
|
position: absolute !important;
|
|
4960
|
-
z-index: ${
|
|
5122
|
+
z-index: ${Mo} !important;
|
|
4961
5123
|
}
|
|
4962
5124
|
`, t.head.append(s), i.append(a);
|
|
4963
5125
|
let c = !1;
|
|
@@ -4968,8 +5130,8 @@ function eo(e) {
|
|
|
4968
5130
|
}
|
|
4969
5131
|
};
|
|
4970
5132
|
}
|
|
4971
|
-
var
|
|
4972
|
-
let t = e.kind === "columns", n = e.align === "stretch", r = n ? `repeat(${e.count}, minmax(0, 1fr))` : `repeat(${e.count}, ${e.size}px)`, i =
|
|
5133
|
+
var Po = (e) => `color-mix(in srgb, ${e.color} ${e.opacity * 100}%, transparent)`, Fo = (e) => e === "max" ? "end" : e === "center" ? "center" : "start", Io = (e) => {
|
|
5134
|
+
let t = e.kind === "columns", n = e.align === "stretch", r = n ? `repeat(${e.count}, minmax(0, 1fr))` : `repeat(${e.count}, ${e.size}px)`, i = Fo(e.align);
|
|
4973
5135
|
return {
|
|
4974
5136
|
position: "absolute",
|
|
4975
5137
|
inset: "0",
|
|
@@ -4990,7 +5152,7 @@ var to = (e) => `color-mix(in srgb, ${e.color} ${e.opacity * 100}%, transparent)
|
|
|
4990
5152
|
transform: e.align === "center" ? t ? `translateX(${e.offset}px)` : `translateY(${e.offset}px)` : void 0
|
|
4991
5153
|
};
|
|
4992
5154
|
};
|
|
4993
|
-
function
|
|
5155
|
+
function Lo(e) {
|
|
4994
5156
|
let t = () => e.guides.filter((e) => e.visible);
|
|
4995
5157
|
return J(Xt, {
|
|
4996
5158
|
get when() {
|
|
@@ -5025,7 +5187,7 @@ function io(e) {
|
|
|
5025
5187
|
"min-height": "0",
|
|
5026
5188
|
width: "100%",
|
|
5027
5189
|
height: "100%",
|
|
5028
|
-
"background-color":
|
|
5190
|
+
"background-color": Po(e)
|
|
5029
5191
|
}), (e, n) => {
|
|
5030
5192
|
Q(t, "style", e, n);
|
|
5031
5193
|
}), t;
|
|
@@ -5033,7 +5195,7 @@ function io(e) {
|
|
|
5033
5195
|
})), q(() => ({
|
|
5034
5196
|
e: e.id,
|
|
5035
5197
|
t: e.kind,
|
|
5036
|
-
a:
|
|
5198
|
+
a: Io(e)
|
|
5037
5199
|
}), ({ e, t: n, a: r }, i) => {
|
|
5038
5200
|
e !== i?.e && Q(t, "data-mesurer-layout-guide", e, i?.e), n !== i?.t && Q(t, "data-mesurer-layout-guide-kind", n, i?.t), r !== i?.a && Q(t, "style", r, i?.a);
|
|
5039
5201
|
}), t;
|
|
@@ -5046,7 +5208,7 @@ function io(e) {
|
|
|
5046
5208
|
return q(() => ({
|
|
5047
5209
|
e: e.id,
|
|
5048
5210
|
t: {
|
|
5049
|
-
"background-image": `linear-gradient(to right, ${
|
|
5211
|
+
"background-image": `linear-gradient(to right, ${Po(e)} 1px, transparent 1px), linear-gradient(to bottom, ${Po(e)} 1px, transparent 1px)`,
|
|
5050
5212
|
"background-size": `${e.size}px ${e.size}px`
|
|
5051
5213
|
}
|
|
5052
5214
|
}), ({ e, t: n }, r) => {
|
|
@@ -5058,34 +5220,34 @@ function io(e) {
|
|
|
5058
5220
|
}
|
|
5059
5221
|
});
|
|
5060
5222
|
}
|
|
5061
|
-
var
|
|
5223
|
+
var Ro = "#FF0000", zo = .1, Bo = /* @__PURE__ */ new Set([
|
|
5062
5224
|
"columns",
|
|
5063
5225
|
"rows",
|
|
5064
5226
|
"grid"
|
|
5065
|
-
]),
|
|
5227
|
+
]), Vo = /* @__PURE__ */ new Set([
|
|
5066
5228
|
"stretch",
|
|
5067
5229
|
"min",
|
|
5068
5230
|
"center",
|
|
5069
5231
|
"max"
|
|
5070
|
-
]),
|
|
5071
|
-
let t = e.kind &&
|
|
5232
|
+
]), Ho = (e, t, n) => Math.min(n, Math.max(t, e)), Uo = (e, t) => e !== void 0 && Number.isFinite(e) ? e : t, Wo = (e = {}) => {
|
|
5233
|
+
let t = e.kind && Bo.has(e.kind) ? e.kind : "columns", n = e.align && Vo.has(e.align) ? e.align : t === "grid" ? "min" : "stretch", r = e.id?.trim(), i = e.color?.trim();
|
|
5072
5234
|
return {
|
|
5073
|
-
id: r ||
|
|
5235
|
+
id: r || Wr(),
|
|
5074
5236
|
kind: t,
|
|
5075
5237
|
visible: e.visible ?? !0,
|
|
5076
5238
|
color: i || "#FF0000",
|
|
5077
|
-
opacity:
|
|
5078
|
-
count:
|
|
5079
|
-
size:
|
|
5080
|
-
gutter:
|
|
5081
|
-
offset:
|
|
5239
|
+
opacity: Ho(Uo(e.opacity, zo), 0, 1),
|
|
5240
|
+
count: Ho(Math.round(Uo(e.count, 5)), 1, 24),
|
|
5241
|
+
size: Ho(Uo(e.size, 72), 1, 4096),
|
|
5242
|
+
gutter: Ho(Uo(e.gutter, 20), 0, 800),
|
|
5243
|
+
offset: Ho(Uo(e.offset, 0), 0, 4096),
|
|
5082
5244
|
align: n
|
|
5083
5245
|
};
|
|
5084
|
-
},
|
|
5246
|
+
}, Go = (e) => (e ?? []).map(Wo), Ko = (e) => {
|
|
5085
5247
|
if (e.kind === "grid") return `Grid ${Math.round(e.size)}px`;
|
|
5086
5248
|
let t = e.kind === "columns" ? "columns" : "rows";
|
|
5087
5249
|
return e.align === "stretch" ? `${e.count} ${t}` : `${e.count} ${t} (${Math.round(e.size)}px)`;
|
|
5088
|
-
},
|
|
5250
|
+
}, qo = (e) => (() => {
|
|
5089
5251
|
var t = Y("svg", {
|
|
5090
5252
|
xmlns: "http://www.w3.org/2000/svg",
|
|
5091
5253
|
viewBox: "0 0 24 24",
|
|
@@ -5104,22 +5266,22 @@ var ao = "#FF0000", oo = .1, so = /* @__PURE__ */ new Set([
|
|
|
5104
5266
|
}), ({ e, t: n }, r) => {
|
|
5105
5267
|
e !== r?.e && Q(t, "width", e, r?.e), n !== r?.t && Q(t, "height", n, r?.t);
|
|
5106
5268
|
}), t;
|
|
5107
|
-
})(),
|
|
5269
|
+
})(), Jo = (e) => e.kind === "rows" ? J(mi, { size: 14 }) : e.kind === "grid" ? J(fi, { size: 14 }) : J(pi, { size: 14 }), Yo = "msr:grid-cols-[78px_minmax(0,1fr)]", Xo = (e) => (() => {
|
|
5108
5270
|
var t = Y("label", { class: "msr:col-span-2 msr:grid msr:h-8 msr:w-full msr:grid-cols-[78px_minmax(0,1fr)] msr:items-center msr:gap-0 msr:text-[12px] msr:text-ink-700" }), n = Y("span");
|
|
5109
5271
|
return X(t, n), Z(n, () => e.label), Z(t, () => e.children, null), t;
|
|
5110
|
-
})(),
|
|
5272
|
+
})(), Zo = (e) => (() => {
|
|
5111
5273
|
var t = Y("span", { class: "msr:relative msr:block msr:w-full" }), n = Y("select", {
|
|
5112
|
-
class:
|
|
5274
|
+
class: ri,
|
|
5113
5275
|
onPointerDown: (e) => e.stopPropagation(),
|
|
5114
5276
|
onChange: (t) => e.onChange(t.currentTarget.value)
|
|
5115
5277
|
});
|
|
5116
|
-
return X(t, n), Z(n, () => e.children), Z(t, J(
|
|
5278
|
+
return X(t, n), Z(n, () => e.children), Z(t, J(ii, {}), null), q(() => ({
|
|
5117
5279
|
e: e.label,
|
|
5118
5280
|
t: e.value
|
|
5119
5281
|
}), ({ e, t }, r) => {
|
|
5120
5282
|
e !== r?.e && Q(n, "aria-label", e, r?.e), t !== r?.t && Q(n, "value", t, r?.t);
|
|
5121
5283
|
}), t;
|
|
5122
|
-
})(),
|
|
5284
|
+
})(), Qo = (e) => {
|
|
5123
5285
|
let [t, n] = K(!1), [r, i] = K(String(e.value)), a = () => e.min ?? 0, o = () => e.max ?? 9999, s = (e) => Math.min(o(), Math.max(a(), e)), c = (t) => {
|
|
5124
5286
|
let n = Number(t.replace(/[^\d.-]/g, ""));
|
|
5125
5287
|
if (!Number.isFinite(n)) {
|
|
@@ -5128,7 +5290,7 @@ var ao = "#FF0000", oo = .1, so = /* @__PURE__ */ new Set([
|
|
|
5128
5290
|
}
|
|
5129
5291
|
e.onChange(s(n));
|
|
5130
5292
|
};
|
|
5131
|
-
return J(
|
|
5293
|
+
return J(ai, { get left() {
|
|
5132
5294
|
var a = Y("input", {
|
|
5133
5295
|
type: "text",
|
|
5134
5296
|
inputmode: "numeric",
|
|
@@ -5160,7 +5322,7 @@ var ao = "#FF0000", oo = .1, so = /* @__PURE__ */ new Set([
|
|
|
5160
5322
|
e !== n?.e && Q(a, "aria-label", e, n?.e), t !== n?.t && Q(a, "value", t, n?.t);
|
|
5161
5323
|
}), a;
|
|
5162
5324
|
} });
|
|
5163
|
-
},
|
|
5325
|
+
}, $o = (e) => e === "rows" || e === "grid" ? e : "columns", es = (e) => e === "min" || e === "center" || e === "max" ? e : "stretch", ts = (e) => {
|
|
5164
5326
|
let t = Gt(() => e.guide.kind === "rows" ? {
|
|
5165
5327
|
stretch: "Stretch",
|
|
5166
5328
|
min: "Top",
|
|
@@ -5177,13 +5339,13 @@ var ao = "#FF0000", oo = .1, so = /* @__PURE__ */ new Set([
|
|
|
5177
5339
|
"aria-label": "Back to layout guides",
|
|
5178
5340
|
class: "msr:flex msr:size-6 msr:items-center msr:justify-center msr:rounded-control msr:text-ink-500 msr:outline-none msr:hover:bg-ink-100 msr:hover:text-ink-900"
|
|
5179
5341
|
});
|
|
5180
|
-
return X(r, i), X(i, a), Z(i, J(
|
|
5342
|
+
return X(r, i), X(i, a), Z(i, J(Zo, {
|
|
5181
5343
|
label: "Layout guide type",
|
|
5182
5344
|
get value() {
|
|
5183
5345
|
return e.guide.kind;
|
|
5184
5346
|
},
|
|
5185
5347
|
onChange: (t) => {
|
|
5186
|
-
let n =
|
|
5348
|
+
let n = $o(t);
|
|
5187
5349
|
e.onUpdate({
|
|
5188
5350
|
kind: n,
|
|
5189
5351
|
align: n === "grid" ? "min" : e.guide.align === "stretch" || n === e.guide.kind ? e.guide.align : "stretch"
|
|
@@ -5205,15 +5367,15 @@ var ao = "#FF0000", oo = .1, so = /* @__PURE__ */ new Set([
|
|
|
5205
5367
|
})()
|
|
5206
5368
|
];
|
|
5207
5369
|
}
|
|
5208
|
-
}), a), Z(a, J(
|
|
5370
|
+
}), a), Z(a, J(qo, {})), Z(r, J(Xt, {
|
|
5209
5371
|
get when() {
|
|
5210
5372
|
return e.guide.kind !== "grid";
|
|
5211
5373
|
},
|
|
5212
5374
|
get children() {
|
|
5213
|
-
return J(
|
|
5375
|
+
return J(Xo, {
|
|
5214
5376
|
label: "Count",
|
|
5215
5377
|
get children() {
|
|
5216
|
-
return J(
|
|
5378
|
+
return J(Qo, {
|
|
5217
5379
|
label: "Count",
|
|
5218
5380
|
get value() {
|
|
5219
5381
|
return e.guide.count;
|
|
@@ -5225,16 +5387,16 @@ var ao = "#FF0000", oo = .1, so = /* @__PURE__ */ new Set([
|
|
|
5225
5387
|
}
|
|
5226
5388
|
});
|
|
5227
5389
|
}
|
|
5228
|
-
}), null), Z(r, J(
|
|
5390
|
+
}), null), Z(r, J(oi, {
|
|
5229
5391
|
label: "Color",
|
|
5230
|
-
columns:
|
|
5392
|
+
columns: Yo,
|
|
5231
5393
|
get value() {
|
|
5232
5394
|
return dr({
|
|
5233
5395
|
...lr(e.guide.color) ?? lr("#FF0000"),
|
|
5234
5396
|
alpha: e.guide.opacity
|
|
5235
5397
|
});
|
|
5236
5398
|
},
|
|
5237
|
-
fallback:
|
|
5399
|
+
fallback: Ro,
|
|
5238
5400
|
get ownerWindow() {
|
|
5239
5401
|
return e.ownerWindow;
|
|
5240
5402
|
},
|
|
@@ -5253,15 +5415,15 @@ var ao = "#FF0000", oo = .1, so = /* @__PURE__ */ new Set([
|
|
|
5253
5415
|
return e.guide.kind !== "grid";
|
|
5254
5416
|
},
|
|
5255
5417
|
get children() {
|
|
5256
|
-
return J(
|
|
5418
|
+
return J(Xo, {
|
|
5257
5419
|
label: "Type",
|
|
5258
5420
|
get children() {
|
|
5259
|
-
return J(
|
|
5421
|
+
return J(Zo, {
|
|
5260
5422
|
label: "Alignment",
|
|
5261
5423
|
get value() {
|
|
5262
5424
|
return e.guide.align;
|
|
5263
5425
|
},
|
|
5264
|
-
onChange: (t) => e.onUpdate({ align:
|
|
5426
|
+
onChange: (t) => e.onUpdate({ align: es(t) }),
|
|
5265
5427
|
get children() {
|
|
5266
5428
|
return J(Yt, {
|
|
5267
5429
|
each: [
|
|
@@ -5285,12 +5447,12 @@ var ao = "#FF0000", oo = .1, so = /* @__PURE__ */ new Set([
|
|
|
5285
5447
|
return e.guide.kind === "grid" || e.guide.align !== "stretch";
|
|
5286
5448
|
},
|
|
5287
5449
|
get children() {
|
|
5288
|
-
return J(
|
|
5450
|
+
return J(Xo, {
|
|
5289
5451
|
get label() {
|
|
5290
5452
|
return n();
|
|
5291
5453
|
},
|
|
5292
5454
|
get children() {
|
|
5293
|
-
return J(
|
|
5455
|
+
return J(Qo, {
|
|
5294
5456
|
get label() {
|
|
5295
5457
|
return n();
|
|
5296
5458
|
},
|
|
@@ -5309,10 +5471,10 @@ var ao = "#FF0000", oo = .1, so = /* @__PURE__ */ new Set([
|
|
|
5309
5471
|
return e.guide.kind !== "grid";
|
|
5310
5472
|
},
|
|
5311
5473
|
get children() {
|
|
5312
|
-
return [J(
|
|
5474
|
+
return [J(Xo, {
|
|
5313
5475
|
label: "Offset",
|
|
5314
5476
|
get children() {
|
|
5315
|
-
return J(
|
|
5477
|
+
return J(Qo, {
|
|
5316
5478
|
label: "Offset",
|
|
5317
5479
|
get value() {
|
|
5318
5480
|
return e.guide.offset;
|
|
@@ -5322,10 +5484,10 @@ var ao = "#FF0000", oo = .1, so = /* @__PURE__ */ new Set([
|
|
|
5322
5484
|
onChange: (t) => e.onUpdate({ offset: t })
|
|
5323
5485
|
});
|
|
5324
5486
|
}
|
|
5325
|
-
}), J(
|
|
5487
|
+
}), J(Xo, {
|
|
5326
5488
|
label: "Gutter",
|
|
5327
5489
|
get children() {
|
|
5328
|
-
return J(
|
|
5490
|
+
return J(Qo, {
|
|
5329
5491
|
label: "Gutter",
|
|
5330
5492
|
get value() {
|
|
5331
5493
|
return e.guide.gutter;
|
|
@@ -5341,7 +5503,7 @@ var ao = "#FF0000", oo = .1, so = /* @__PURE__ */ new Set([
|
|
|
5341
5503
|
Q(a, "onClick", e, t);
|
|
5342
5504
|
}), r;
|
|
5343
5505
|
};
|
|
5344
|
-
function
|
|
5506
|
+
function ns(e) {
|
|
5345
5507
|
let [t, n] = K(null), r = Gt(() => e.guides.find((e) => e.id === t()) ?? null);
|
|
5346
5508
|
var i = Y("div", {
|
|
5347
5509
|
"data-mesurer-layout-guides-panel": "true",
|
|
@@ -5363,7 +5525,7 @@ function wo(e) {
|
|
|
5363
5525
|
"aria-label": "Add layout guide",
|
|
5364
5526
|
class: "msr:flex msr:size-6 msr:items-center msr:justify-center msr:rounded-control msr:text-ink-500 msr:outline-none msr:hover:bg-ink-100 msr:hover:text-ink-900"
|
|
5365
5527
|
});
|
|
5366
|
-
return X(t, r), X(r, i), X(r, a), X(i, Qn("Layout guides")), Z(a, J(
|
|
5528
|
+
return X(t, r), X(r, i), X(r, a), X(i, Qn("Layout guides")), Z(a, J(hi, {})), Z(t, J(Xt, {
|
|
5367
5529
|
get when() {
|
|
5368
5530
|
return e.guides.length > 0;
|
|
5369
5531
|
},
|
|
@@ -5390,22 +5552,22 @@ function wo(e) {
|
|
|
5390
5552
|
class: "msr:flex msr:size-6 msr:items-center msr:justify-center msr:rounded-control msr:text-ink-400 msr:outline-none msr:hover:bg-ink-100 msr:hover:text-ink-900",
|
|
5391
5553
|
onClick: () => e.onRemove(t.id)
|
|
5392
5554
|
});
|
|
5393
|
-
return X(r, i), X(r, s), X(r, c), X(i, a), X(i, o), Z(a, J(
|
|
5555
|
+
return X(r, i), X(r, s), X(r, c), X(i, a), X(i, o), Z(a, J(Jo, { get kind() {
|
|
5394
5556
|
return t.kind;
|
|
5395
|
-
} })), Z(o, () =>
|
|
5557
|
+
} })), Z(o, () => Ko(t)), Z(i, J(ci, {
|
|
5396
5558
|
size: 8,
|
|
5397
5559
|
class: "msr:block msr:-rotate-90 msr:text-ink-400"
|
|
5398
5560
|
}), null), Z(s, (() => {
|
|
5399
5561
|
var e = Zn(() => !!t.visible);
|
|
5400
|
-
return () => e() ? J(
|
|
5401
|
-
})()), Z(c, J(
|
|
5562
|
+
return () => e() ? J(gi, {}) : J(_i, {});
|
|
5563
|
+
})()), Z(c, J(li, {
|
|
5402
5564
|
size: 10,
|
|
5403
5565
|
class: "msr:block"
|
|
5404
5566
|
})), q(() => ({
|
|
5405
|
-
e: t.visible ? `Hide ${
|
|
5567
|
+
e: t.visible ? `Hide ${Ko(t)}` : `Show ${Ko(t)}`,
|
|
5406
5568
|
t: t.visible ? "true" : "false",
|
|
5407
5569
|
a: `msr:flex msr:size-6 msr:items-center msr:justify-center msr:rounded-control msr:outline-none msr:hover:bg-ink-100 ${t.visible ? "msr:text-ink-700" : "msr:text-ink-400"}`,
|
|
5408
|
-
o: `Remove ${
|
|
5570
|
+
o: `Remove ${Ko(t)}`
|
|
5409
5571
|
}), ({ e, t, a: n, o: r }, i) => {
|
|
5410
5572
|
e !== i?.e && Q(s, "aria-label", e, i?.e), t !== i?.t && Q(s, "aria-pressed", t, i?.t), n !== i?.a && Q(s, "class", n, i?.a), r !== i?.o && Q(c, "aria-label", r, i?.o);
|
|
5411
5573
|
}), r;
|
|
@@ -5416,7 +5578,7 @@ function wo(e) {
|
|
|
5416
5578
|
Q(a, "onClick", e, t);
|
|
5417
5579
|
}), t;
|
|
5418
5580
|
},
|
|
5419
|
-
children: (t) => J(
|
|
5581
|
+
children: (t) => J(ts, {
|
|
5420
5582
|
get guide() {
|
|
5421
5583
|
return t();
|
|
5422
5584
|
},
|
|
@@ -5428,56 +5590,56 @@ function wo(e) {
|
|
|
5428
5590
|
})
|
|
5429
5591
|
})), i;
|
|
5430
5592
|
}
|
|
5431
|
-
var
|
|
5593
|
+
var rs = "mesurer.layout-guides", is = "layout-guides:v1", as = "mesurer.layout-guides.pages", os = "mesurer.layout-guides.active", ss = "runtime:solid", cs = "layout-guides.toggle", ls = "layout-guides.add", us = "layout-guides.update", ds = "layout-guides.remove", fs = "layout-guides.clear", ps = 240, ms = 8, hs = 8, gs = () => ({ pages: {} }), _s = (e, t) => e.pages[t] ?? [], vs = (e) => typeof e == "object" && !!e && !Array.isArray(e), ys = (e) => typeof e == "string", bs = (e) => typeof e == "boolean", xs = (e) => typeof e == "number", Ss = (e) => e === "columns" || e === "rows" || e === "grid", Cs = (e) => e === "stretch" || e === "min" || e === "center" || e === "max", ws = (e) => ({ ...e }), Ts = (e) => e.map(ws), Es = (e) => vs(e) ? e : null, Ds = (e) => {
|
|
5432
5594
|
if (!e) return {};
|
|
5433
5595
|
let t = {};
|
|
5434
|
-
return
|
|
5435
|
-
},
|
|
5596
|
+
return ys(e.id) && (t.id = e.id), Ss(e.kind) && (t.kind = e.kind), bs(e.visible) && (t.visible = e.visible), ys(e.color) && (t.color = e.color), xs(e.opacity) && (t.opacity = e.opacity), xs(e.count) && (t.count = e.count), xs(e.size) && (t.size = e.size), xs(e.gutter) && (t.gutter = e.gutter), xs(e.offset) && (t.offset = e.offset), Cs(e.align) && (t.align = e.align), t;
|
|
5597
|
+
}, Os = (e) => {
|
|
5436
5598
|
let t = {};
|
|
5437
5599
|
return e.id !== void 0 && (t.id = e.id), e.kind !== void 0 && (t.kind = e.kind), e.visible !== void 0 && (t.visible = e.visible), e.color !== void 0 && (t.color = e.color), e.opacity !== void 0 && (t.opacity = e.opacity), e.count !== void 0 && (t.count = e.count), e.size !== void 0 && (t.size = e.size), e.gutter !== void 0 && (t.gutter = e.gutter), e.offset !== void 0 && (t.offset = e.offset), e.align !== void 0 && (t.align = e.align), t;
|
|
5438
|
-
},
|
|
5600
|
+
}, ks = {
|
|
5439
5601
|
viewBox: "0 0 256 256",
|
|
5440
5602
|
paths: ["M48 48h160v8H48zM48 200h160v8H48zM48 56h8v144h-8zM200 56h8v144h-8z", "M101 56h8v144h-8zM147 56h8v144h-8z"]
|
|
5441
|
-
},
|
|
5442
|
-
id:
|
|
5603
|
+
}, As = () => ar({
|
|
5604
|
+
id: rs,
|
|
5443
5605
|
version: "0.1.0",
|
|
5444
|
-
requires: [
|
|
5445
|
-
provides: [
|
|
5606
|
+
requires: [ss],
|
|
5607
|
+
provides: [is, "tool:layout-guides"],
|
|
5446
5608
|
setup(e) {
|
|
5447
|
-
let t = e.service.get(
|
|
5609
|
+
let t = e.service.get(ss);
|
|
5448
5610
|
if (!t) throw Error("Layout Guides requires the Solid renderer runtime.");
|
|
5449
5611
|
let n = t.rendererRoot;
|
|
5450
5612
|
if (!n) throw Error("Layout Guides requires a mounted renderer root.");
|
|
5451
5613
|
e.state.register({
|
|
5452
|
-
id:
|
|
5453
|
-
initial:
|
|
5614
|
+
id: as,
|
|
5615
|
+
initial: gs(),
|
|
5454
5616
|
history: !0,
|
|
5455
5617
|
persist: !0
|
|
5456
5618
|
}), e.state.register({
|
|
5457
|
-
id:
|
|
5619
|
+
id: os,
|
|
5458
5620
|
initial: !1
|
|
5459
5621
|
});
|
|
5460
|
-
let r =
|
|
5461
|
-
e.state.update(
|
|
5622
|
+
let r = Jr(t.ownerWindow), i = !1, [a, o] = K(0), s = /* @__PURE__ */ new Set(), c = 0, l = () => e.state.get("mesurer.layout-guides.pages") ?? gs(), u = () => e.state.get("mesurer.layout-guides.active") ?? !1, d = () => Go(_s(l(), r)), f = () => (a(), u() ? d() : []), p = (t) => {
|
|
5623
|
+
e.state.update(os, () => t);
|
|
5462
5624
|
}, m = (t) => {
|
|
5463
|
-
e.state.update(
|
|
5625
|
+
e.state.update(as, (e) => ({
|
|
5464
5626
|
...e,
|
|
5465
5627
|
pages: {
|
|
5466
5628
|
...e.pages,
|
|
5467
|
-
[r]:
|
|
5629
|
+
[r]: Ts(t(Go(e.pages[r])))
|
|
5468
5630
|
}
|
|
5469
5631
|
}));
|
|
5470
5632
|
};
|
|
5471
|
-
e.command.register(
|
|
5633
|
+
e.command.register(cs, () => {
|
|
5472
5634
|
let e = !u();
|
|
5473
|
-
return e && d().length === 0 && m(() => [
|
|
5474
|
-
}), e.command.register(
|
|
5475
|
-
let t =
|
|
5635
|
+
return e && d().length === 0 && m(() => [Wo()]), i = e, p(e), u();
|
|
5636
|
+
}), e.command.register(ls, (e) => {
|
|
5637
|
+
let t = Wo(Ds(Es(e)));
|
|
5476
5638
|
return m((e) => [...e, t]), { ...t };
|
|
5477
|
-
}), e.command.register(
|
|
5478
|
-
let t =
|
|
5639
|
+
}), e.command.register(us, (e) => {
|
|
5640
|
+
let t = Es(e), n = t && ys(t.id) ? t.id : null, r = Ds(Es(t?.patch));
|
|
5479
5641
|
if (!n) throw Error("layout-guides.update requires a guide id.");
|
|
5480
|
-
m((e) => e.map((e) => e.id === n ?
|
|
5642
|
+
m((e) => e.map((e) => e.id === n ? Wo({
|
|
5481
5643
|
...e,
|
|
5482
5644
|
...r,
|
|
5483
5645
|
id: e.id
|
|
@@ -5485,30 +5647,30 @@ var To = "mesurer.layout-guides", Eo = "layout-guides:v1", Do = "mesurer.layout-
|
|
|
5485
5647
|
let i = d().find((e) => e.id === n);
|
|
5486
5648
|
if (!i) throw Error(`Layout guide not found: ${n}`);
|
|
5487
5649
|
return { ...i };
|
|
5488
|
-
}), e.command.register(
|
|
5489
|
-
let t =
|
|
5650
|
+
}), e.command.register(ds, (e) => {
|
|
5651
|
+
let t = Es(e), n = t && ys(t.id) ? t.id : null;
|
|
5490
5652
|
if (!n) throw Error("layout-guides.remove requires a guide id.");
|
|
5491
5653
|
let r = d().length;
|
|
5492
5654
|
return m((e) => e.filter((e) => e.id !== n)), d().length !== r;
|
|
5493
|
-
}), e.command.register(
|
|
5655
|
+
}), e.command.register(fs, () => {
|
|
5494
5656
|
m(() => []);
|
|
5495
5657
|
});
|
|
5496
5658
|
let h = async (t, n) => {
|
|
5497
|
-
let r =
|
|
5659
|
+
let r = Es(await e.command.execute(t, n));
|
|
5498
5660
|
if (!r) throw Error(`${t} did not return a layout guide.`);
|
|
5499
|
-
return
|
|
5661
|
+
return Wo(Ds(r));
|
|
5500
5662
|
}, g = {
|
|
5501
5663
|
list: () => d().map((e) => ({ ...e })),
|
|
5502
|
-
add: (e = {}) => h(
|
|
5503
|
-
update: (e, t) => h(
|
|
5664
|
+
add: (e = {}) => h(ls, Os(e)),
|
|
5665
|
+
update: (e, t) => h(us, {
|
|
5504
5666
|
id: e,
|
|
5505
|
-
patch:
|
|
5667
|
+
patch: Os(t)
|
|
5506
5668
|
}),
|
|
5507
5669
|
async remove(t) {
|
|
5508
|
-
return await e.command.execute(
|
|
5670
|
+
return await e.command.execute(ds, { id: t }) === !0;
|
|
5509
5671
|
},
|
|
5510
5672
|
async clear() {
|
|
5511
|
-
await e.command.execute(
|
|
5673
|
+
await e.command.execute(fs);
|
|
5512
5674
|
},
|
|
5513
5675
|
subscribe(e) {
|
|
5514
5676
|
s.add(e);
|
|
@@ -5518,25 +5680,25 @@ var To = "mesurer.layout-guides", Eo = "layout-guides:v1", Do = "mesurer.layout-
|
|
|
5518
5680
|
};
|
|
5519
5681
|
}
|
|
5520
5682
|
};
|
|
5521
|
-
e.service.provide(
|
|
5683
|
+
e.service.provide(is, g), e.tool.register({
|
|
5522
5684
|
id: "layout-guides",
|
|
5523
5685
|
label: "Layout guides",
|
|
5524
5686
|
shortcut: "L",
|
|
5525
|
-
command:
|
|
5687
|
+
command: cs,
|
|
5526
5688
|
order: 38,
|
|
5527
|
-
icon:
|
|
5689
|
+
icon: ks,
|
|
5528
5690
|
active: u
|
|
5529
5691
|
});
|
|
5530
5692
|
let _ = t.ownerDocument.createElement("div");
|
|
5531
5693
|
_.dataset.mesurerLayoutGuidesRoot = "true", _.dataset.mesurerLayer = "evidence", _.style.position = "absolute", _.style.inset = "0", _.style.pointerEvents = "none", n.prepend(_);
|
|
5532
|
-
let v = Xn(() => J(
|
|
5694
|
+
let v = Xn(() => J(Lo, { get guides() {
|
|
5533
5695
|
return f();
|
|
5534
5696
|
} }), _), y = t.createInspectorMount();
|
|
5535
5697
|
y.element.dataset.mesurerLayoutGuidesPanelRoot = "true", Object.assign(y.element.style, {
|
|
5536
5698
|
position: "fixed",
|
|
5537
5699
|
left: "0",
|
|
5538
5700
|
top: "0",
|
|
5539
|
-
width: `${
|
|
5701
|
+
width: `${ps}px`,
|
|
5540
5702
|
zIndex: "100",
|
|
5541
5703
|
pointerEvents: "none",
|
|
5542
5704
|
display: "none"
|
|
@@ -5545,13 +5707,13 @@ var To = "mesurer.layout-guides", Eo = "layout-guides:v1", Do = "mesurer.layout-
|
|
|
5545
5707
|
if (c = 0, !i) return;
|
|
5546
5708
|
let e = t.portalTarget.querySelector("[data-mesurer-tool-id='layout-guides']");
|
|
5547
5709
|
if (!e) return;
|
|
5548
|
-
let n = e.getBoundingClientRect(), r = Math.min(Math.max(
|
|
5710
|
+
let n = e.getBoundingClientRect(), r = Math.min(Math.max(hs, n.right - ps), Math.max(hs, t.ownerWindow.innerWidth - ps - hs)), a = t.ownerWindow.innerHeight - n.bottom - ms - hs, o = Math.min(320, t.ownerWindow.innerHeight - 16), s = a >= Math.min(o, 320) ? n.bottom + ms : Math.max(hs, n.top - ms - o);
|
|
5549
5711
|
y.element.style.left = `${r}px`, y.element.style.top = `${s}px`;
|
|
5550
5712
|
}, x = () => {
|
|
5551
5713
|
c ||= t.ownerWindow.requestAnimationFrame(b);
|
|
5552
5714
|
}, S = () => {
|
|
5553
5715
|
y.element.style.display = i ? "block" : "none", i && x();
|
|
5554
|
-
}, C = Xn(() => J(
|
|
5716
|
+
}, C = Xn(() => J(ns, {
|
|
5555
5717
|
get guides() {
|
|
5556
5718
|
return f();
|
|
5557
5719
|
},
|
|
@@ -5571,7 +5733,7 @@ var To = "mesurer.layout-guides", Eo = "layout-guides:v1", Do = "mesurer.layout-
|
|
|
5571
5733
|
o((e) => e + 1);
|
|
5572
5734
|
for (let e of s) e();
|
|
5573
5735
|
S();
|
|
5574
|
-
}, T = e.state.subscribe(w), E =
|
|
5736
|
+
}, T = e.state.subscribe(w), E = Qr(t.ownerWindow, (e) => {
|
|
5575
5737
|
r !== e && (r = e, w());
|
|
5576
5738
|
}), D = (e) => {
|
|
5577
5739
|
if (!i) return;
|
|
@@ -5586,169 +5748,7 @@ var To = "mesurer.layout-guides", Eo = "layout-guides:v1", Do = "mesurer.layout-
|
|
|
5586
5748
|
t.ownerDocument.removeEventListener("pointerdown", D, !0), t.ownerDocument.removeEventListener("keydown", O, !0), t.ownerWindow.removeEventListener("resize", x), t.ownerWindow.removeEventListener("pointerup", x, !0), c && t.ownerWindow.cancelAnimationFrame(c), c = 0, s.clear(), T.dispose(), E(), C(), y.dispose(), v(), _.remove();
|
|
5587
5749
|
});
|
|
5588
5750
|
}
|
|
5589
|
-
}),
|
|
5590
|
-
if (e instanceof Blob) return e;
|
|
5591
|
-
if (e instanceof Uint8Array) {
|
|
5592
|
-
let t = new Uint8Array(e.byteLength);
|
|
5593
|
-
return t.set(e), new Blob([t.buffer], { type: "image/png" });
|
|
5594
|
-
}
|
|
5595
|
-
if (e instanceof ArrayBuffer) return new Blob([e.slice(0)], { type: "image/png" });
|
|
5596
|
-
if (e == null) throw Error("Host screenshot capture returned no PNG data.");
|
|
5597
|
-
if (!e.png) throw Error("Host screenshot capture returned unsupported PNG data.");
|
|
5598
|
-
return rs(e.png);
|
|
5599
|
-
}, is = async (e) => {
|
|
5600
|
-
let t = ns(e);
|
|
5601
|
-
return t ? rs(await t()) : null;
|
|
5602
|
-
}, as = (e, t, n) => {
|
|
5603
|
-
let r = Math.max(0, Math.min(e.x, t.x, n.width)), i = Math.max(0, Math.min(e.y, t.y, n.height)), a = Math.max(0, Math.min(Math.max(e.x, t.x), n.width)), o = Math.max(0, Math.min(Math.max(e.y, t.y), n.height));
|
|
5604
|
-
return {
|
|
5605
|
-
left: r,
|
|
5606
|
-
top: i,
|
|
5607
|
-
width: Math.max(0, a - r),
|
|
5608
|
-
height: Math.max(0, o - i)
|
|
5609
|
-
};
|
|
5610
|
-
}, os = async (e, t, n, r) => {
|
|
5611
|
-
let i = await createImageBitmap(e);
|
|
5612
|
-
try {
|
|
5613
|
-
let e = i.width / n.width, a = i.height / n.height, o = Math.max(0, Math.round(t.left * e)), s = Math.max(0, Math.round(t.top * a)), c = Math.max(1, Math.min(i.width - o, Math.round(t.width * e))), l = Math.max(1, Math.min(i.height - s, Math.round(t.height * a))), u = r.createElement("canvas");
|
|
5614
|
-
u.width = c, u.height = l;
|
|
5615
|
-
let d = u.getContext("2d");
|
|
5616
|
-
if (!d) throw Error("Could not crop screenshot");
|
|
5617
|
-
return d.drawImage(i, o, s, c, l, 0, 0, c, l), await new Promise((e, t) => {
|
|
5618
|
-
u.toBlob((n) => {
|
|
5619
|
-
n ? e(n) : t(/* @__PURE__ */ Error("Could not crop screenshot"));
|
|
5620
|
-
}, "image/png");
|
|
5621
|
-
});
|
|
5622
|
-
} finally {
|
|
5623
|
-
i.close();
|
|
5624
|
-
}
|
|
5625
|
-
}, ss = async (e, t) => {
|
|
5626
|
-
let n = t.navigator.clipboard, r = globalThis.ClipboardItem;
|
|
5627
|
-
if (!n?.write || !r) throw Error("PNG clipboard copy is not available");
|
|
5628
|
-
await n.write([new r({ "image/png": e })]);
|
|
5629
|
-
}, cs = (e = /* @__PURE__ */ new Date()) => {
|
|
5630
|
-
let t = (e) => String(e).padStart(2, "0");
|
|
5631
|
-
return `mesurer-${e.getFullYear()}-${t(e.getMonth() + 1)}-${t(e.getDate())}-${t(e.getHours())}${t(e.getMinutes())}${t(e.getSeconds())}.png`;
|
|
5632
|
-
}, ls = (e, t, n, r) => {
|
|
5633
|
-
let i = globalThis.URL.createObjectURL(e), a = n.createElement("a");
|
|
5634
|
-
a.href = i, a.download = t, a.rel = "noopener", n.documentElement.append(a), a.click(), a.remove(), r.setTimeout(() => globalThis.URL.revokeObjectURL(i), 1e3);
|
|
5635
|
-
}, us = (e) => new Promise((t) => {
|
|
5636
|
-
e.requestAnimationFrame(() => {
|
|
5637
|
-
e.requestAnimationFrame(() => t());
|
|
5638
|
-
});
|
|
5639
|
-
}), ds = (e) => e.crypto?.randomUUID?.() ?? `mesurer-${Date.now()}-${Math.random().toString(36).slice(2)}`, fs = (e, t, n = "") => `${e}:${t}:${n}`, ps = (e) => e.location.origin === "null" ? "*" : e.location.origin, ms = (e, t, n) => {
|
|
5640
|
-
let r = `${t}:${n}:`;
|
|
5641
|
-
return e.startsWith(r) ? e.slice(r.length) : null;
|
|
5642
|
-
}, hs = (e) => new Promise((t) => {
|
|
5643
|
-
let n = ds(e), r = e.location.origin, i = (o) => {
|
|
5644
|
-
o.source === e && o.origin === r && ms(String(o.data ?? ""), "mesurer:capture-bridge-pong", n) !== null && (e.removeEventListener("message", i), e.clearTimeout(a), t(!0));
|
|
5645
|
-
}, a = e.setTimeout(() => {
|
|
5646
|
-
e.removeEventListener("message", i), t(!1);
|
|
5647
|
-
}, 80);
|
|
5648
|
-
e.addEventListener("message", i), e.postMessage(fs($o, n), ps(e));
|
|
5649
|
-
}), gs = (e) => new Promise((t, n) => {
|
|
5650
|
-
let r = ds(e), i = e.location.origin, a = (s) => {
|
|
5651
|
-
if (s.source !== e || s.origin !== i) return;
|
|
5652
|
-
let c = ms(String(s.data ?? ""), ts, r);
|
|
5653
|
-
if (c === null) return;
|
|
5654
|
-
if (e.removeEventListener("message", a), e.clearTimeout(o), !c.startsWith("ok:")) {
|
|
5655
|
-
t(null);
|
|
5656
|
-
return;
|
|
5657
|
-
}
|
|
5658
|
-
let l = c.slice(3);
|
|
5659
|
-
if (!l) {
|
|
5660
|
-
t(null);
|
|
5661
|
-
return;
|
|
5662
|
-
}
|
|
5663
|
-
e.fetch(l).then((e) => e.blob()).then(t, n);
|
|
5664
|
-
}, o = e.setTimeout(() => {
|
|
5665
|
-
e.removeEventListener("message", a), t(null);
|
|
5666
|
-
}, 4e3);
|
|
5667
|
-
e.addEventListener("message", a), e.postMessage(fs(es, r), ps(e));
|
|
5668
|
-
}), _s = /* @__PURE__ */ new WeakMap(), vs = (e) => {
|
|
5669
|
-
let t = _s.get(e), n = t?.stream.getVideoTracks()[0];
|
|
5670
|
-
if (!t || !n || n.readyState !== "live") {
|
|
5671
|
-
_s.delete(e);
|
|
5672
|
-
return;
|
|
5673
|
-
}
|
|
5674
|
-
return t;
|
|
5675
|
-
}, ys = async (e, t) => {
|
|
5676
|
-
let n = vs(t);
|
|
5677
|
-
if (n) return n;
|
|
5678
|
-
let r = t.navigator.mediaDevices;
|
|
5679
|
-
if (!r?.getDisplayMedia) throw Error("Screenshot capture is unavailable");
|
|
5680
|
-
let i = await r.getDisplayMedia({
|
|
5681
|
-
audio: !1,
|
|
5682
|
-
video: !0,
|
|
5683
|
-
preferCurrentTab: !0,
|
|
5684
|
-
selfBrowserSurface: "include"
|
|
5685
|
-
}), a = i.getVideoTracks()[0];
|
|
5686
|
-
if (!a) throw i.getTracks().forEach((e) => e.stop()), Error("Capture failed");
|
|
5687
|
-
try {
|
|
5688
|
-
let n = e.createElement("video");
|
|
5689
|
-
n.autoplay = !0, n.muted = !0, n.playsInline = !0, n.srcObject = i, await n.play(), (n.videoWidth === 0 || n.videoHeight === 0) && await new Promise((e) => {
|
|
5690
|
-
n.onloadedmetadata = () => e();
|
|
5691
|
-
});
|
|
5692
|
-
let r = {
|
|
5693
|
-
stream: i,
|
|
5694
|
-
video: n
|
|
5695
|
-
};
|
|
5696
|
-
return _s.set(t, r), a.addEventListener("ended", () => {
|
|
5697
|
-
_s.get(t) === r && _s.delete(t);
|
|
5698
|
-
}, { once: !0 }), r;
|
|
5699
|
-
} catch (e) {
|
|
5700
|
-
throw i.getTracks().forEach((e) => e.stop()), e;
|
|
5701
|
-
}
|
|
5702
|
-
}, bs = (e) => {
|
|
5703
|
-
let t = _s.get(e);
|
|
5704
|
-
t && (_s.delete(e), t.video.pause(), t.video.srcObject = null, t.stream.getTracks().forEach((e) => e.stop()));
|
|
5705
|
-
}, xs = async ({ ownerDocument: e, ownerWindow: t }) => {
|
|
5706
|
-
let { video: n } = await ys(e, t), r = e.createElement("canvas");
|
|
5707
|
-
r.width = n.videoWidth, r.height = n.videoHeight;
|
|
5708
|
-
let i = r.getContext("2d");
|
|
5709
|
-
if (!i) throw Error("Capture failed");
|
|
5710
|
-
return i.drawImage(n, 0, 0), await new Promise((e, t) => {
|
|
5711
|
-
r.toBlob((n) => {
|
|
5712
|
-
n ? e(n) : t(/* @__PURE__ */ Error("Capture failed"));
|
|
5713
|
-
}, "image/png");
|
|
5714
|
-
});
|
|
5715
|
-
}, Ss = {
|
|
5716
|
-
prepare: async () => void 0,
|
|
5717
|
-
capture: async ({ ownerWindow: e }) => {
|
|
5718
|
-
let t = await is(e);
|
|
5719
|
-
if (!t) throw Error("Host screenshot capture is unavailable.");
|
|
5720
|
-
return t;
|
|
5721
|
-
},
|
|
5722
|
-
release: () => void 0
|
|
5723
|
-
}, Cs = {
|
|
5724
|
-
prepare: async () => void 0,
|
|
5725
|
-
capture: async ({ ownerWindow: e }) => {
|
|
5726
|
-
let t = await gs(e);
|
|
5727
|
-
if (!t) throw Error("Host screenshot capture failed.");
|
|
5728
|
-
return t;
|
|
5729
|
-
},
|
|
5730
|
-
release: () => void 0
|
|
5731
|
-
}, ws = {
|
|
5732
|
-
prepare: async ({ ownerDocument: e, ownerWindow: t }) => {
|
|
5733
|
-
await ys(e, t);
|
|
5734
|
-
},
|
|
5735
|
-
capture: xs,
|
|
5736
|
-
release: bs
|
|
5737
|
-
}, Ts = /* @__PURE__ */ new WeakMap(), Es = async (e) => {
|
|
5738
|
-
let t = Ts.get(e.ownerWindow);
|
|
5739
|
-
if (t) return t;
|
|
5740
|
-
let n = ws;
|
|
5741
|
-
return ns(e.ownerWindow) ? n = Ss : await hs(e.ownerWindow) && (n = Cs), Ts.set(e.ownerWindow, n), n;
|
|
5742
|
-
}, Ds = async (e, t) => {
|
|
5743
|
-
let n = {
|
|
5744
|
-
ownerDocument: e,
|
|
5745
|
-
ownerWindow: t
|
|
5746
|
-
};
|
|
5747
|
-
await (await Es(n)).prepare(n);
|
|
5748
|
-
}, Os = async (e) => (await Es(e)).capture(e), ks = (e) => {
|
|
5749
|
-
let t = Ts.get(e);
|
|
5750
|
-
Ts.delete(e), t?.release(e);
|
|
5751
|
-
}, As = Os, js = 144, Ms = 96, Ns = 8, Ps = 4, Fs = 1800, Is = (e, t) => {
|
|
5751
|
+
}), js = 144, Ms = 96, Ns = 8, Ps = 4, Fs = 1800, Is = (e, t) => {
|
|
5752
5752
|
for (let [n, r] of Object.entries(t)) e.style.setProperty(n, r);
|
|
5753
5753
|
}, Ls = (e, t) => ({
|
|
5754
5754
|
left: Math.min(Math.max(Ns, e.left), Math.max(Ns, t.innerWidth - js - Ns)),
|
|
@@ -5915,14 +5915,14 @@ var To = "mesurer.layout-guides", Eo = "layout-guides:v1", Do = "mesurer.layout-
|
|
|
5915
5915
|
}, N = async () => {
|
|
5916
5916
|
let e = v;
|
|
5917
5917
|
if (e) try {
|
|
5918
|
-
await
|
|
5918
|
+
await br(Promise.resolve(e), t), D("Copied screenshot");
|
|
5919
5919
|
} catch {
|
|
5920
5920
|
D("Could not copy screenshot", !0);
|
|
5921
5921
|
}
|
|
5922
5922
|
}, te = () => {
|
|
5923
5923
|
let n = v;
|
|
5924
5924
|
if (n) try {
|
|
5925
|
-
|
|
5925
|
+
Sr(n, xr(), e, t), D("Saved screenshot");
|
|
5926
5926
|
} catch {
|
|
5927
5927
|
D("Could not save screenshot", !0);
|
|
5928
5928
|
}
|
|
@@ -6070,7 +6070,7 @@ var To = "mesurer.layout-guides", Eo = "layout-guides:v1", Do = "mesurer.layout-
|
|
|
6070
6070
|
setup(t) {
|
|
6071
6071
|
let n = t.service.get(Ks);
|
|
6072
6072
|
if (!n) throw Error("Screenshot plugin requires the Solid renderer runtime.");
|
|
6073
|
-
let { ownerDocument: r, ownerWindow: i } = n, a = n.createWorkspaceRuntime(), o = n.createInspectorMount(), s = e.capture ?? e.captureVisibleTab, c = s ??
|
|
6073
|
+
let { ownerDocument: r, ownerWindow: i } = n, a = n.createWorkspaceRuntime(), o = n.createInspectorMount(), s = e.capture ?? e.captureVisibleTab, c = s ?? Vr, l = e.previewDurationMs ?? Ys;
|
|
6074
6074
|
t.state.register({
|
|
6075
6075
|
id: Ws,
|
|
6076
6076
|
initial: {
|
|
@@ -6235,7 +6235,7 @@ var To = "mesurer.layout-guides", Eo = "layout-guides:v1", Do = "mesurer.layout-
|
|
|
6235
6235
|
}, te = () => {
|
|
6236
6236
|
_ = null, A(null), d.style.visibility = "", d.style.display = "none", u.style.pointerEvents = "none", D(!1), k();
|
|
6237
6237
|
}, P = () => {
|
|
6238
|
-
b += 1, te(),
|
|
6238
|
+
b += 1, te(), Hr(i);
|
|
6239
6239
|
}, ne = async (e) => {
|
|
6240
6240
|
if (x) throw Error("A screenshot capture is already running.");
|
|
6241
6241
|
if (e.width < 4 || e.height < 4) throw Error("Screenshot selection must be at least 4px by 4px.");
|
|
@@ -6243,8 +6243,8 @@ var To = "mesurer.layout-guides", Eo = "layout-guides:v1", Do = "mesurer.layout-
|
|
|
6243
6243
|
let o = ++b, s = T(), l = s.includeMeasurements ? oc(r) : [], u = s.includeMeasurements ? () => void 0 : ac(n.portalTarget);
|
|
6244
6244
|
a.prepareCapture(), s.includeMeasurements && sc(l);
|
|
6245
6245
|
try {
|
|
6246
|
-
d.style.visibility = "hidden", await
|
|
6247
|
-
let n = await
|
|
6246
|
+
d.style.visibility = "hidden", await Cr(i);
|
|
6247
|
+
let n = await yr(await c({
|
|
6248
6248
|
ownerDocument: r,
|
|
6249
6249
|
ownerWindow: i
|
|
6250
6250
|
}), e, {
|
|
@@ -6252,10 +6252,10 @@ var To = "mesurer.layout-guides", Eo = "layout-guides:v1", Do = "mesurer.layout-
|
|
|
6252
6252
|
height: i.innerHeight
|
|
6253
6253
|
}, r);
|
|
6254
6254
|
if (b !== o) throw Error("Screenshot capture was cancelled.");
|
|
6255
|
-
let a = !1, l = !1, u = s.copy ?
|
|
6255
|
+
let a = !1, l = !1, u = s.copy ? br(Promise.resolve(n), i).then(() => {
|
|
6256
6256
|
a = !0;
|
|
6257
6257
|
}) : Promise.resolve(), f = s.download ? Promise.resolve().then(() => {
|
|
6258
|
-
|
|
6258
|
+
Sr(n, xr(), r, i), l = !0;
|
|
6259
6259
|
}) : Promise.resolve(), p = await Promise.allSettled([u, f]), m = s.copy && p[0]?.status === "rejected", h = s.download && p[1]?.status === "rejected";
|
|
6260
6260
|
if (b !== o) throw Error("Screenshot capture was cancelled.");
|
|
6261
6261
|
return M.show(n, {
|
|
@@ -6287,7 +6287,7 @@ var To = "mesurer.layout-guides", Eo = "layout-guides:v1", Do = "mesurer.layout-
|
|
|
6287
6287
|
if (!S) {
|
|
6288
6288
|
S = !0, M.dismiss();
|
|
6289
6289
|
try {
|
|
6290
|
-
if (s || await
|
|
6290
|
+
if (s || await Br(r, i), C) return;
|
|
6291
6291
|
O(), A(null), d.style.visibility = "visible", u.style.pointerEvents = "auto", d.style.display = "block", D(!0);
|
|
6292
6292
|
} catch (e) {
|
|
6293
6293
|
throw e instanceof Error && e.name === "AbortError" || N(), e;
|
|
@@ -6300,12 +6300,12 @@ var To = "mesurer.layout-guides", Eo = "layout-guides:v1", Do = "mesurer.layout-
|
|
|
6300
6300
|
!w() || e.button !== 0 || (e.preventDefault(), e.stopPropagation(), _ = {
|
|
6301
6301
|
x: e.clientX,
|
|
6302
6302
|
y: e.clientY
|
|
6303
|
-
}, A(
|
|
6303
|
+
}, A(vr(_, _, {
|
|
6304
6304
|
width: i.innerWidth,
|
|
6305
6305
|
height: i.innerHeight
|
|
6306
6306
|
})), d.setPointerCapture?.(e.pointerId));
|
|
6307
6307
|
}, L = (e) => {
|
|
6308
|
-
!w() || !_ || A(
|
|
6308
|
+
!w() || !_ || A(vr(_, {
|
|
6309
6309
|
x: e.clientX,
|
|
6310
6310
|
y: e.clientY
|
|
6311
6311
|
}, {
|
|
@@ -6316,7 +6316,7 @@ var To = "mesurer.layout-guides", Eo = "layout-guides:v1", Do = "mesurer.layout-
|
|
|
6316
6316
|
let t = _;
|
|
6317
6317
|
if (_ = null, !w() || !t) return;
|
|
6318
6318
|
d.hasPointerCapture?.(e.pointerId) && d.releasePointerCapture(e.pointerId);
|
|
6319
|
-
let n =
|
|
6319
|
+
let n = vr(t, {
|
|
6320
6320
|
x: e.clientX,
|
|
6321
6321
|
y: e.clientY
|
|
6322
6322
|
}, {
|
|
@@ -6417,11 +6417,11 @@ var To = "mesurer.layout-guides", Eo = "layout-guides:v1", Do = "mesurer.layout-
|
|
|
6417
6417
|
}
|
|
6418
6418
|
]
|
|
6419
6419
|
}), t.command.register(qs, F), t.service.provide(Us, V), t.lifecycle.onDispose(() => {
|
|
6420
|
-
C = !0, b += 1, d.removeEventListener("pointerdown", I), d.removeEventListener("pointermove", L), d.removeEventListener("pointerup", R), d.removeEventListener("pointercancel", z), i.removeEventListener("keydown", B, !0), y && i.clearTimeout(y), M.dispose(), k(),
|
|
6420
|
+
C = !0, b += 1, d.removeEventListener("pointerdown", I), d.removeEventListener("pointermove", L), d.removeEventListener("pointerup", R), d.removeEventListener("pointercancel", z), i.removeEventListener("keydown", B, !0), y && i.clearTimeout(y), M.dispose(), k(), Hr(i), a.finishCapture(), a.dispose(), o.dispose();
|
|
6421
6421
|
});
|
|
6422
6422
|
}
|
|
6423
|
-
}), lc = "0.
|
|
6424
|
-
...
|
|
6423
|
+
}), lc = "0.2.0-beta.0", uc = ya, dc = ga, fc = _a, pc = ba, mc = va, hc = () => ({
|
|
6424
|
+
...no(),
|
|
6425
6425
|
version: lc
|
|
6426
6426
|
}), gc = (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, _c = (e) => {
|
|
6427
6427
|
if (!e.length) return null;
|
|
@@ -6868,8 +6868,8 @@ async function Bc(e, t, n) {
|
|
|
6868
6868
|
}
|
|
6869
6869
|
//#endregion
|
|
6870
6870
|
//#region src/layout-guides.ts
|
|
6871
|
-
var Vc =
|
|
6872
|
-
...
|
|
6871
|
+
var Vc = rs, Hc = is, Uc = as, Wc = os, Gc = () => ({
|
|
6872
|
+
...As(),
|
|
6873
6873
|
version: lc
|
|
6874
6874
|
}), Kc = "mesurer.context", qc = "context:v1", Jc = "mesurer.context.settings", Yc = "context.ui", Xc = "data-mesurer-direct-text-edit-active", Zc = {
|
|
6875
6875
|
viewBox: "0 0 256 256",
|
|
@@ -6975,7 +6975,7 @@ function rl(e = {}) {
|
|
|
6975
6975
|
d?.disconnect(), d = null, c = null, l?.(), l = null, u?.dispose(), u = null;
|
|
6976
6976
|
}, v = () => {
|
|
6977
6977
|
if (u) return;
|
|
6978
|
-
if (u =
|
|
6978
|
+
if (u = No(n), u.element.dataset.mesurerLayer = "evidence", u.element.dataset.mesurerContextRoot = "true", n.rendererRoot) {
|
|
6979
6979
|
let e = new n.ownerWindow.MutationObserver(g);
|
|
6980
6980
|
d = e, e.observe(n.rendererRoot, {
|
|
6981
6981
|
attributes: !0,
|
|
@@ -6990,7 +6990,7 @@ function rl(e = {}) {
|
|
|
6990
6990
|
},
|
|
6991
6991
|
coordinateSpace: "document"
|
|
6992
6992
|
};
|
|
6993
|
-
l = Dn(() => qt(
|
|
6993
|
+
l = Dn(() => qt(ko, En(e, { get ownerWindow() {
|
|
6994
6994
|
return n.ownerWindow;
|
|
6995
6995
|
} })), u.element);
|
|
6996
6996
|
}, y = () => {
|
|
@@ -7485,12 +7485,12 @@ function Al(e = {}) {
|
|
|
7485
7485
|
}
|
|
7486
7486
|
//#endregion
|
|
7487
7487
|
//#region src/screenshot.ts
|
|
7488
|
-
var jl = Gs, Ml = Hs, Nl = Us, Pl = Ws, Fl = 4, Il =
|
|
7488
|
+
var jl = Gs, Ml = Hs, Nl = Us, Pl = Ws, Fl = 4, Il = Ur, Ll = (e, t) => br(e, t), Rl = (e = /* @__PURE__ */ new Date()) => xr(e), zl = (e, t, n, r) => yr(e, t, n, r), Bl = (e, t, n) => vr(e, t, n), Vl = (e, t) => Br(e, t), Hl = (e) => Hr(e), Ul = (e = {}) => ({
|
|
7489
7489
|
...cc(e),
|
|
7490
7490
|
version: lc
|
|
7491
|
-
}), Wl = (e) =>
|
|
7491
|
+
}), Wl = (e) => Cr(e), Gl = (e) => ({
|
|
7492
7492
|
...e,
|
|
7493
7493
|
version: lc
|
|
7494
|
-
}), Kl = () => Gl(
|
|
7494
|
+
}), Kl = () => Gl(io()), ql = () => Gl(ao()), Jl = () => Gl(oo()), Yl = () => Gl(so()), Xl = () => Gl(co()), Zl = () => Gl(lo()), Ql = () => Gl(fo()), $l = () => Gl(uo()), eu = () => po().map(Gl), tu = (e = [], t = []) => mo(e, t).map((e) => e.id.startsWith("mesurer.") ? Gl(e) : e);
|
|
7495
7495
|
//#endregion
|
|
7496
7496
|
export { uc as MESURER_ARRANGE_ACTIVE_STATE_ID, dc as MESURER_ARRANGE_PLUGIN_ID, fc as MESURER_ARRANGE_SERVICE_ID, pc as MESURER_ARRANGE_SETTINGS_STATE_ID, mc as MESURER_ARRANGE_STATE_ID, il as MESURER_CODEX_PLUGIN_ID, al as MESURER_CODEX_SERVICE_ID, Kc as MESURER_CONTEXT_PLUGIN_ID, qc as MESURER_CONTEXT_SERVICE_ID, Jc as MESURER_CONTEXT_SETTINGS_STATE_ID, Wc as MESURER_LAYOUT_GUIDES_ACTIVE_STATE_ID, Vc as MESURER_LAYOUT_GUIDES_PLUGIN_ID, Hc as MESURER_LAYOUT_GUIDES_SERVICE_ID, Uc as MESURER_LAYOUT_GUIDES_STATE_ID, jl as MESURER_SCREENSHOT_ACTIVE_STATE_ID, Ml as MESURER_SCREENSHOT_PLUGIN_ID, Nl as MESURER_SCREENSHOT_SERVICE_ID, Pl as MESURER_SCREENSHOT_SETTINGS_STATE_ID, Fl as MIN_SCREENSHOT_SELECTION, hc as arrange, Il as captureVisibleTabPng, Al as codex, Jl as colorPicker, tu as compose, rl as context, Ll as copyPngToClipboard, Rl as createScreenshotFilename, zl as cropPngToViewportRect, eu as defaults, Ql as distance, Zl as guides, Gc as layoutGuides, Bl as normalizeScreenshotRect, Vl as prepareScreenshotCapture, Hl as releaseScreenshotCapture, Yl as rulers, Ul as screenshot, Kl as select, $l as settings, Xl as typography, Wl as waitForNextPaint, ql as xray };
|