mesurer-solid 0.2.3-beta.6 → 0.2.3-beta.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/context.d.ts +15 -0
- package/dist/core.js +1 -1
- package/dist/index.js +1046 -922
- package/dist/inject-script.js +9 -9
- package/dist/inject.js +1041 -917
- package/dist/plugins.js +104 -96
- package/package.json +1 -1
- package/skills/mesurer-ui/SKILL.md +1 -1
package/dist/inject.js
CHANGED
|
@@ -3930,7 +3930,7 @@ function yc() {
|
|
|
3930
3930
|
},
|
|
3931
3931
|
async emit(t, n) {
|
|
3932
3932
|
let r = Array.from(e.get(t) ?? []);
|
|
3933
|
-
for (let
|
|
3933
|
+
for (let i of r) e.get(t)?.has(i) && await i(n);
|
|
3934
3934
|
},
|
|
3935
3935
|
clear() {
|
|
3936
3936
|
e.clear();
|
|
@@ -5015,23 +5015,27 @@ var Hl = /* @__PURE__ */ new WeakMap(), Ul = (e) => {
|
|
|
5015
5015
|
let n = Ul(e);
|
|
5016
5016
|
for (let e of t.listeners) e(n);
|
|
5017
5017
|
}, Gl = (e) => {
|
|
5018
|
-
let t = Hl.get(e);
|
|
5018
|
+
let t = Hl.get(e.document);
|
|
5019
5019
|
if (t) return t;
|
|
5020
|
-
let n = e.history, r = n.pushState, i = n.replaceState, a = {
|
|
5020
|
+
let n = e.history, r = n.pushState, i = n.replaceState, a = e.removeEventListener.bind(e), o = {
|
|
5021
|
+
document: e.document,
|
|
5022
|
+
releaseNativeListeners: () => {
|
|
5023
|
+
a("popstate", o.handleNativeChange), a("hashchange", o.handleNativeChange);
|
|
5024
|
+
},
|
|
5021
5025
|
listeners: /* @__PURE__ */ new Set(),
|
|
5022
5026
|
pushState: r,
|
|
5023
5027
|
replaceState: i,
|
|
5024
|
-
handleNativeChange: () => Wl(e,
|
|
5028
|
+
handleNativeChange: () => Wl(e, o)
|
|
5025
5029
|
};
|
|
5026
5030
|
return n.pushState = function(...t) {
|
|
5027
5031
|
let n = r.apply(this, t);
|
|
5028
|
-
return Wl(e,
|
|
5032
|
+
return Wl(e, o), n;
|
|
5029
5033
|
}, n.replaceState = function(...t) {
|
|
5030
5034
|
let n = i.apply(this, t);
|
|
5031
|
-
return Wl(e,
|
|
5032
|
-
}, e.addEventListener("popstate",
|
|
5035
|
+
return Wl(e, o), n;
|
|
5036
|
+
}, e.addEventListener("popstate", o.handleNativeChange), e.addEventListener("hashchange", o.handleNativeChange), Hl.set(e.document, o), o;
|
|
5033
5037
|
}, Kl = (e, t) => {
|
|
5034
|
-
t.listeners.size > 0 || Hl.get(
|
|
5038
|
+
t.listeners.size > 0 || Hl.get(t.document) !== t || (t.document.defaultView === e && (e.history.pushState = t.pushState, e.history.replaceState = t.replaceState), t.releaseNativeListeners(), Hl.delete(t.document));
|
|
5035
5039
|
}, ql = (e, t) => {
|
|
5036
5040
|
let n = Gl(e);
|
|
5037
5041
|
n.listeners.add(t);
|
|
@@ -6408,6 +6412,7 @@ function Jd(e) {
|
|
|
6408
6412
|
let p = n.querySelector("[aria-label=\"Remove preview\"]");
|
|
6409
6413
|
p && (p.disabled = a.length <= 1);
|
|
6410
6414
|
}
|
|
6415
|
+
n.dispatchEvent(new CustomEvent("mesurer:responsive-stage-change"));
|
|
6411
6416
|
}, I = (t) => {
|
|
6412
6417
|
if (a.length <= 1) return;
|
|
6413
6418
|
let r = _.get(t);
|
|
@@ -6520,7 +6525,7 @@ function Jd(e) {
|
|
|
6520
6525
|
overflow: "hidden"
|
|
6521
6526
|
});
|
|
6522
6527
|
let j = t.createElement("iframe");
|
|
6523
|
-
j.dataset.mesurerResponsiveFrame = "true", j.title = `${r.name} preview`, j.setAttribute("sandbox", kl), j.src = n.location.href, Gd(j, {
|
|
6528
|
+
j.dataset.mesurerResponsiveFrame = "true", j.dataset.mesurerResponsivePreviewId = String(r.id), j.title = `${r.name} preview`, j.setAttribute("sandbox", kl), j.src = n.location.href, Gd(j, {
|
|
6524
6529
|
display: "block",
|
|
6525
6530
|
border: "0",
|
|
6526
6531
|
transformOrigin: "top left",
|
|
@@ -20226,29 +20231,84 @@ function jC(e, t) {
|
|
|
20226
20231
|
let { runtime: n } = Zb(t);
|
|
20227
20232
|
AS(e, n), yC(e, n), Rx(e, tC(e, n)), CS(e, n), pC(e, n), LS(e, n, t.portalTarget), Ux(e, n, t), jS(e, n), AC(e, n), bC(e, n), Yb(e, n), ax(e, n), hS(e, n, t.portalTarget), $S(e, n, t.portalTarget);
|
|
20228
20233
|
}
|
|
20229
|
-
|
|
20234
|
+
function MC(e) {
|
|
20235
|
+
let t = e, n = [];
|
|
20236
|
+
for (;;) {
|
|
20237
|
+
let e = t.getRootNode();
|
|
20238
|
+
if ("host" in e) {
|
|
20239
|
+
let r = e.host;
|
|
20240
|
+
n.unshift({
|
|
20241
|
+
kind: "shadow",
|
|
20242
|
+
selector: bu(r)
|
|
20243
|
+
}), t = r;
|
|
20244
|
+
continue;
|
|
20245
|
+
}
|
|
20246
|
+
let r = t.ownerDocument, i = r.defaultView?.frameElement;
|
|
20247
|
+
if (!i) return {};
|
|
20248
|
+
if (i.hasAttribute("data-mesurer-responsive-frame")) {
|
|
20249
|
+
let e = r.defaultView;
|
|
20250
|
+
return {
|
|
20251
|
+
viewport: {
|
|
20252
|
+
url: e.location.href.split("#")[0],
|
|
20253
|
+
width: e.innerWidth,
|
|
20254
|
+
height: e.innerHeight,
|
|
20255
|
+
previewId: i.getAttribute("data-mesurer-responsive-preview-id")
|
|
20256
|
+
},
|
|
20257
|
+
domPath: n
|
|
20258
|
+
};
|
|
20259
|
+
}
|
|
20260
|
+
n.unshift({
|
|
20261
|
+
kind: "frame",
|
|
20262
|
+
selector: bu(i)
|
|
20263
|
+
}), t = i;
|
|
20264
|
+
}
|
|
20265
|
+
}
|
|
20266
|
+
function NC(e, t) {
|
|
20267
|
+
let n = t.viewport;
|
|
20268
|
+
if (!n || !e) return null;
|
|
20269
|
+
let r = [...e.querySelectorAll("iframe[data-mesurer-responsive-frame]")].filter((e) => {
|
|
20270
|
+
let t = zu(e)?.defaultView;
|
|
20271
|
+
return t && t.location.href.split("#")[0] === n.url && t.innerWidth === n.width && t.innerHeight === n.height;
|
|
20272
|
+
}), i = r.find((e) => e.getAttribute("data-mesurer-responsive-preview-id") === n.previewId) ?? (r.length === 1 ? r[0] : void 0), a = i ? zu(i) : null;
|
|
20273
|
+
for (let e of t.domPath ?? []) {
|
|
20274
|
+
let t = a?.querySelectorAll(e.selector);
|
|
20275
|
+
if (t?.length !== 1) return null;
|
|
20276
|
+
a = e.kind === "frame" ? zu(t[0]) : t[0].shadowRoot;
|
|
20277
|
+
}
|
|
20278
|
+
return a;
|
|
20279
|
+
}
|
|
20280
|
+
function PC(e) {
|
|
20281
|
+
return [...e?.querySelectorAll("iframe[data-mesurer-responsive-frame]") ?? []].flatMap((e) => {
|
|
20282
|
+
let t = zu(e);
|
|
20283
|
+
return t ? S_(t) : [];
|
|
20284
|
+
});
|
|
20285
|
+
}
|
|
20286
|
+
var FC = 1, IC = (e, t) => {
|
|
20230
20287
|
if (!t) return [];
|
|
20231
20288
|
try {
|
|
20232
20289
|
let n = e.sessionStorage.getItem(t);
|
|
20233
20290
|
if (!n) return [];
|
|
20234
20291
|
let r = JSON.parse(n);
|
|
20235
|
-
return r.version !==
|
|
20292
|
+
return r.version !== FC || !Array.isArray(r.annotations) ? [] : r.annotations.map(LC);
|
|
20236
20293
|
} catch {
|
|
20237
20294
|
return [];
|
|
20238
20295
|
}
|
|
20239
|
-
},
|
|
20296
|
+
}, LC = (e) => ({
|
|
20240
20297
|
...e,
|
|
20241
20298
|
anchor: e.anchor.kind === "elements" ? {
|
|
20242
20299
|
kind: "elements",
|
|
20243
20300
|
region: e.anchor.region ? uc(e.anchor.region) : null,
|
|
20244
|
-
targets: e.anchor.targets.map((e) =>
|
|
20245
|
-
|
|
20246
|
-
|
|
20247
|
-
|
|
20248
|
-
|
|
20249
|
-
|
|
20250
|
-
|
|
20251
|
-
|
|
20301
|
+
targets: e.anchor.targets.map((e) => {
|
|
20302
|
+
let t = {
|
|
20303
|
+
...e,
|
|
20304
|
+
fingerprint: {
|
|
20305
|
+
...e.fingerprint,
|
|
20306
|
+
classes: [...e.fingerprint.classes]
|
|
20307
|
+
},
|
|
20308
|
+
lastRect: uc(e.lastRect)
|
|
20309
|
+
};
|
|
20310
|
+
return e.viewport && (t.viewport = { ...e.viewport }), e.domPath && (t.domPath = e.domPath.map((e) => ({ ...e }))), t;
|
|
20311
|
+
})
|
|
20252
20312
|
} : {
|
|
20253
20313
|
kind: "region",
|
|
20254
20314
|
rect: uc(e.anchor.rect)
|
|
@@ -20271,7 +20331,7 @@ var MC = 1, NC = (e, t) => {
|
|
|
20271
20331
|
vertical: e.vertical ? { ...e.vertical } : null
|
|
20272
20332
|
}))
|
|
20273
20333
|
}
|
|
20274
|
-
}),
|
|
20334
|
+
}), RC = (e, t) => `${t}-${e.crypto?.randomUUID?.() ?? `${Date.now()}-${Math.random().toString(36).slice(2)}`}`, zC = (e) => {
|
|
20275
20335
|
let t = /* @__PURE__ */ new Set(), n = [];
|
|
20276
20336
|
for (let r of e.current.selectedMeasurements) {
|
|
20277
20337
|
let e = r.elementRef;
|
|
@@ -20280,7 +20340,7 @@ var MC = 1, NC = (e, t) => {
|
|
|
20280
20340
|
let r = e.current.selectedMeasurement?.elementRef;
|
|
20281
20341
|
return r?.isConnected && !t.has(r) && n.push(r), n;
|
|
20282
20342
|
};
|
|
20283
|
-
function
|
|
20343
|
+
function BC(e) {
|
|
20284
20344
|
let { model: t, ownerDocument: n, ownerWindow: r, uiRoot: i } = e, a = r, o = e.pageTarget ?? n.body ?? n.documentElement, s = o instanceof a.ShadowRoot ? o : o.getRootNode(), c = s instanceof a.ShadowRoot ? s : n, l = Ul(r), u = () => e.persistenceKey ? `${e.persistenceKey}:${l}` : void 0, d = () => e.persistenceKey ? `${e.persistenceKey}${r.location.pathname}` : void 0, f = () => {
|
|
20285
20345
|
let e = u();
|
|
20286
20346
|
if (!e) return {
|
|
@@ -20289,7 +20349,7 @@ function LC(e) {
|
|
|
20289
20349
|
};
|
|
20290
20350
|
try {
|
|
20291
20351
|
if (r.sessionStorage.getItem(e) !== null) return {
|
|
20292
|
-
annotations:
|
|
20352
|
+
annotations: IC(r, e),
|
|
20293
20353
|
migrated: !1
|
|
20294
20354
|
};
|
|
20295
20355
|
} catch {
|
|
@@ -20303,14 +20363,14 @@ function LC(e) {
|
|
|
20303
20363
|
annotations: [],
|
|
20304
20364
|
migrated: !1
|
|
20305
20365
|
};
|
|
20306
|
-
let n =
|
|
20366
|
+
let n = IC(r, t);
|
|
20307
20367
|
return {
|
|
20308
20368
|
annotations: n,
|
|
20309
20369
|
migrated: n.length > 0
|
|
20310
20370
|
};
|
|
20311
|
-
}, p = f(), m = p.annotations, h = p.migrated, g = /* @__PURE__ */ new Set(), _ = /* @__PURE__ */ new Map(), v = /* @__PURE__ */ new Map(), y = /* @__PURE__ */ new Map(), b = !1, x = 0, S = /* @__PURE__ */ new Map(), C = !1,
|
|
20371
|
+
}, p = f(), m = p.annotations, h = p.migrated, g = /* @__PURE__ */ new Set(), _ = /* @__PURE__ */ new Map(), v = /* @__PURE__ */ new Map(), y = /* @__PURE__ */ new Map(), b = !1, x = 0, S = /* @__PURE__ */ new Map(), C = /* @__PURE__ */ new Map(), w = !1, T = (e, t) => `${e}:${t}`, E = (e) => w_(e, o) || PC(i).includes(e.ownerDocument), D = (e, t) => t.viewport ? e.getRootNode() === NC(i, t) : !C_(e.ownerDocument), O = (e) => {
|
|
20312
20372
|
let t = [], r = /* @__PURE__ */ new Set(), i = (e) => {
|
|
20313
|
-
r.has(e) || !
|
|
20373
|
+
r.has(e) || !E(e) || (r.add(e), t.push(e));
|
|
20314
20374
|
};
|
|
20315
20375
|
o instanceof a.HTMLElement && o.matches(e) && i(o);
|
|
20316
20376
|
for (let t of S_(o)) {
|
|
@@ -20318,7 +20378,7 @@ function LC(e) {
|
|
|
20318
20378
|
for (let t of r.querySelectorAll(e)) i(t);
|
|
20319
20379
|
}
|
|
20320
20380
|
return t;
|
|
20321
|
-
},
|
|
20381
|
+
}, k = () => {
|
|
20322
20382
|
let e = u();
|
|
20323
20383
|
if (e) try {
|
|
20324
20384
|
if (m.length === 0) {
|
|
@@ -20326,19 +20386,20 @@ function LC(e) {
|
|
|
20326
20386
|
return;
|
|
20327
20387
|
}
|
|
20328
20388
|
r.sessionStorage.setItem(e, JSON.stringify({
|
|
20329
|
-
version:
|
|
20330
|
-
annotations: m.map(
|
|
20389
|
+
version: FC,
|
|
20390
|
+
annotations: m.map(LC)
|
|
20331
20391
|
}));
|
|
20332
20392
|
} catch {}
|
|
20333
20393
|
};
|
|
20334
|
-
h &&= (
|
|
20335
|
-
let
|
|
20394
|
+
h &&= (k(), !1);
|
|
20395
|
+
let A = () => {
|
|
20336
20396
|
for (let e of g) e();
|
|
20337
|
-
},
|
|
20397
|
+
}, j = (e) => {
|
|
20338
20398
|
if (!Su(e.fingerprint)) return null;
|
|
20339
20399
|
let t = [];
|
|
20340
20400
|
try {
|
|
20341
|
-
|
|
20401
|
+
let n = e.viewport ? NC(i, e) : null;
|
|
20402
|
+
t = e.viewport ? [...n?.querySelectorAll(e.selector) ?? []] : O(e.selector).filter((t) => D(t, e));
|
|
20342
20403
|
} catch {
|
|
20343
20404
|
return null;
|
|
20344
20405
|
}
|
|
@@ -20347,41 +20408,82 @@ function LC(e) {
|
|
|
20347
20408
|
if (t.length !== 1 || e.fingerprint.id || e.fingerprint.testId) return null;
|
|
20348
20409
|
let r = t[0];
|
|
20349
20410
|
if (!r || r.localName !== e.fingerprint.tag) return null;
|
|
20350
|
-
let
|
|
20351
|
-
return Math.abs(
|
|
20352
|
-
},
|
|
20353
|
-
let n =
|
|
20354
|
-
if (r?.isConnected &&
|
|
20411
|
+
let a = Qu(r), o = e.lastRect, s = Math.max(4, Math.max(o.width, o.height) * .05), c = Math.max(2, Math.max(o.width, o.height) * .03);
|
|
20412
|
+
return Math.abs(a.left - o.left) <= s && Math.abs(a.top - o.top) <= s && Math.abs(a.width - o.width) <= c && Math.abs(a.height - o.height) <= c ? r : null;
|
|
20413
|
+
}, M = (e, t) => {
|
|
20414
|
+
let n = T(e, t.id), r = v.get(n);
|
|
20415
|
+
if (r?.isConnected && E(r) && D(r, t)) return r;
|
|
20355
20416
|
r && v.delete(n);
|
|
20356
|
-
let i =
|
|
20417
|
+
let i = j(t);
|
|
20357
20418
|
return i && v.set(n, i), i;
|
|
20358
|
-
},
|
|
20419
|
+
}, N = () => {
|
|
20359
20420
|
let e = !1;
|
|
20360
20421
|
for (let t of m) if (t.anchor.kind === "elements") for (let n of t.anchor.targets) {
|
|
20361
|
-
let r =
|
|
20422
|
+
let r = T(t.id, n.id), i = M(t.id, n), a = !!i;
|
|
20362
20423
|
if (y.get(r) !== a && (y.set(r, a), e = !0), !i) continue;
|
|
20363
20424
|
let o = Qu(i);
|
|
20364
20425
|
(o.left !== n.lastRect.left || o.top !== n.lastRect.top || o.width !== n.lastRect.width || o.height !== n.lastRect.height) && (n.lastRect = o, e = !0);
|
|
20365
20426
|
}
|
|
20366
|
-
e && (
|
|
20367
|
-
},
|
|
20427
|
+
e && (k(), A());
|
|
20428
|
+
}, P = () => {
|
|
20368
20429
|
x || b || m.length === 0 || (x = r.requestAnimationFrame(() => {
|
|
20369
|
-
x = 0,
|
|
20430
|
+
x = 0, N();
|
|
20370
20431
|
}));
|
|
20371
|
-
},
|
|
20432
|
+
}, F = (e) => {
|
|
20372
20433
|
let t = S.get(e);
|
|
20373
|
-
t && (e.removeEventListener("load", t.load, !0), e.removeEventListener("scroll",
|
|
20374
|
-
},
|
|
20375
|
-
|
|
20376
|
-
let
|
|
20434
|
+
t && (e.removeEventListener("load", t.load, !0), e.removeEventListener("scroll", P, !0), t.removeResizeListener(), t.unsubscribeLocation(), t.observer?.disconnect(), S.delete(e));
|
|
20435
|
+
}, I = () => {
|
|
20436
|
+
let e = /* @__PURE__ */ new Set();
|
|
20437
|
+
for (let t of m) if (t.anchor.kind === "elements") for (let n of t.anchor.targets) {
|
|
20438
|
+
if (!n.viewport) continue;
|
|
20439
|
+
let t = NC(i, {
|
|
20440
|
+
...n,
|
|
20441
|
+
domPath: []
|
|
20442
|
+
});
|
|
20443
|
+
for (let r of n.domPath ?? []) {
|
|
20444
|
+
let n = t?.querySelectorAll(r.selector);
|
|
20445
|
+
if (n?.length !== 1) break;
|
|
20446
|
+
let i = n[0], a = r.kind === "shadow" ? i.shadowRoot : null;
|
|
20447
|
+
t = r.kind === "frame" ? zu(i) : a, a && e.add(a);
|
|
20448
|
+
}
|
|
20449
|
+
}
|
|
20450
|
+
for (let t of e) {
|
|
20451
|
+
if (C.has(t)) continue;
|
|
20452
|
+
let e = t.ownerDocument.defaultView?.MutationObserver;
|
|
20453
|
+
if (!e) continue;
|
|
20454
|
+
let n = new e(() => {
|
|
20455
|
+
L(), P();
|
|
20456
|
+
});
|
|
20457
|
+
n.observe(t, {
|
|
20458
|
+
childList: !0,
|
|
20459
|
+
subtree: !0,
|
|
20460
|
+
attributes: !0,
|
|
20461
|
+
attributeFilter: [
|
|
20462
|
+
"id",
|
|
20463
|
+
"class",
|
|
20464
|
+
"data-testid",
|
|
20465
|
+
"role",
|
|
20466
|
+
"aria-label",
|
|
20467
|
+
"style"
|
|
20468
|
+
]
|
|
20469
|
+
}), C.set(t, n);
|
|
20470
|
+
}
|
|
20471
|
+
for (let [t, n] of C) e.has(t) || (n.disconnect(), C.delete(t));
|
|
20472
|
+
}, L = () => {
|
|
20473
|
+
if (!w) return;
|
|
20474
|
+
let e = /* @__PURE__ */ new Set([...S_(o), ...PC(i)]);
|
|
20377
20475
|
for (let t of e) {
|
|
20378
20476
|
if (S.has(t)) continue;
|
|
20379
20477
|
let e = () => {
|
|
20380
|
-
|
|
20478
|
+
L(), P();
|
|
20381
20479
|
}, n = t.defaultView?.MutationObserver, r = n && t.body ? new n(() => {
|
|
20382
|
-
|
|
20480
|
+
L(), I(), P();
|
|
20383
20481
|
}) : null;
|
|
20384
|
-
t.addEventListener("load", e, !0), t.addEventListener("scroll",
|
|
20482
|
+
t.addEventListener("load", e, !0), t.addEventListener("scroll", P, !0);
|
|
20483
|
+
let i = t.defaultView;
|
|
20484
|
+
i?.addEventListener("resize", P);
|
|
20485
|
+
let a = i?.removeEventListener.bind(i);
|
|
20486
|
+
r?.observe(t.body, {
|
|
20385
20487
|
childList: !0,
|
|
20386
20488
|
subtree: !0,
|
|
20387
20489
|
attributes: !0,
|
|
@@ -20395,40 +20497,47 @@ function LC(e) {
|
|
|
20395
20497
|
]
|
|
20396
20498
|
}), S.set(t, {
|
|
20397
20499
|
load: e,
|
|
20398
|
-
observer: r
|
|
20500
|
+
observer: r,
|
|
20501
|
+
removeResizeListener: () => a?.("resize", P),
|
|
20502
|
+
unsubscribeLocation: t.defaultView && C_(t) ? ql(t.defaultView, P) : () => {}
|
|
20399
20503
|
});
|
|
20400
20504
|
}
|
|
20401
|
-
for (let t of S.keys()) e.has(t) ||
|
|
20402
|
-
|
|
20403
|
-
|
|
20404
|
-
|
|
20405
|
-
|
|
20406
|
-
|
|
20407
|
-
|
|
20408
|
-
|
|
20505
|
+
for (let t of S.keys()) e.has(t) || F(t);
|
|
20506
|
+
I();
|
|
20507
|
+
}, R = () => {
|
|
20508
|
+
b || m.length === 0 || (w = !0, L());
|
|
20509
|
+
}, z = () => {
|
|
20510
|
+
if (w) {
|
|
20511
|
+
w = !1;
|
|
20512
|
+
for (let e of S.keys()) F(e);
|
|
20513
|
+
for (let e of C.values()) e.disconnect();
|
|
20514
|
+
C.clear(), x && r.cancelAnimationFrame(x), x = 0;
|
|
20409
20515
|
}
|
|
20516
|
+
}, B = () => {
|
|
20517
|
+
L(), N(), A();
|
|
20410
20518
|
};
|
|
20411
|
-
m.length > 0 && (
|
|
20412
|
-
let
|
|
20519
|
+
r.addEventListener("mesurer:responsive-stage-change", B), i?.addEventListener("scroll", P, !0), m.length > 0 && (N(), R());
|
|
20520
|
+
let V = ql(r, (e) => {
|
|
20413
20521
|
if (e === l || b) return;
|
|
20414
|
-
|
|
20522
|
+
k(), z(), v.clear(), y.clear(), l = e, m.length = 0;
|
|
20415
20523
|
let t = f();
|
|
20416
|
-
m.push(...t.annotations), t.migrated &&
|
|
20417
|
-
}),
|
|
20524
|
+
m.push(...t.annotations), t.migrated && k(), m.length > 0 && (N(), R()), A();
|
|
20525
|
+
}), ee = t.subscribe(A), H = () => ({
|
|
20418
20526
|
guides: t.current.guides,
|
|
20419
20527
|
measurements: t.current.measurements,
|
|
20420
20528
|
activeMeasurement: t.current.activeMeasurement,
|
|
20421
20529
|
distances: t.current.heldDistances
|
|
20422
|
-
}),
|
|
20530
|
+
}), U = (e) => gc({
|
|
20423
20531
|
...e,
|
|
20424
|
-
workspace:
|
|
20532
|
+
workspace: H(),
|
|
20425
20533
|
guideTolerance: 10
|
|
20426
|
-
}),
|
|
20534
|
+
}), W = (e, t) => ({
|
|
20427
20535
|
id: `target-${t + 1}`,
|
|
20428
20536
|
selector: bu(e),
|
|
20429
20537
|
fingerprint: xu(e),
|
|
20430
|
-
lastRect: Qu(e)
|
|
20431
|
-
|
|
20538
|
+
lastRect: Qu(e),
|
|
20539
|
+
...MC(e)
|
|
20540
|
+
}), te = (e) => {
|
|
20432
20541
|
let n = [], i = /* @__PURE__ */ new Set();
|
|
20433
20542
|
for (let t of e) {
|
|
20434
20543
|
let e = t.trim();
|
|
@@ -20438,7 +20547,7 @@ function LC(e) {
|
|
|
20438
20547
|
let a = n.map((e) => {
|
|
20439
20548
|
let t;
|
|
20440
20549
|
try {
|
|
20441
|
-
t =
|
|
20550
|
+
t = O(e);
|
|
20442
20551
|
} catch {
|
|
20443
20552
|
throw Error(`Invalid Mesurer selection selector: ${e}`);
|
|
20444
20553
|
}
|
|
@@ -20449,38 +20558,39 @@ function LC(e) {
|
|
|
20449
20558
|
t.checkpoint(), t.setEnabled(!0), t.setToolMode("select");
|
|
20450
20559
|
let o = a.map((e) => sd(e, r));
|
|
20451
20560
|
return t.setSelectedMeasurements(o, o.at(-1) ?? null), t.setTransient({ selectionOriginRect: null }), a;
|
|
20452
|
-
},
|
|
20453
|
-
let i = t[r], a =
|
|
20454
|
-
i &&
|
|
20455
|
-
}),
|
|
20561
|
+
}, ne = (e, t = []) => (m.push(e), e.anchor.kind === "elements" && e.anchor.targets.forEach((n, r) => {
|
|
20562
|
+
let i = t[r], a = T(e.id, n.id);
|
|
20563
|
+
i && E(i) && v.set(a, i), y.set(a, !!(i && E(i)));
|
|
20564
|
+
}), R(), k(), A(), LC(e)), re = (e, t) => {
|
|
20565
|
+
if (i?.querySelector("[data-mesurer-responsive-stage]")) throw Error("Select a preview element before adding a Responsive annotation.");
|
|
20456
20566
|
let n = e.trim();
|
|
20457
20567
|
if (!n) throw Error("Annotation note cannot be empty.");
|
|
20458
|
-
let
|
|
20459
|
-
return
|
|
20460
|
-
id:
|
|
20568
|
+
let a = uc(t);
|
|
20569
|
+
return ne({
|
|
20570
|
+
id: RC(r, "annotation"),
|
|
20461
20571
|
note: n,
|
|
20462
20572
|
createdAt: Date.now(),
|
|
20463
20573
|
anchor: {
|
|
20464
20574
|
kind: "region",
|
|
20465
|
-
rect:
|
|
20575
|
+
rect: a
|
|
20466
20576
|
},
|
|
20467
|
-
baseline:
|
|
20577
|
+
baseline: U({
|
|
20468
20578
|
targets: [],
|
|
20469
|
-
region:
|
|
20579
|
+
region: a
|
|
20470
20580
|
})
|
|
20471
20581
|
});
|
|
20472
|
-
},
|
|
20582
|
+
}, ie = (e) => {
|
|
20473
20583
|
let n = e.trim();
|
|
20474
20584
|
if (!n) throw Error("Annotation note cannot be empty.");
|
|
20475
|
-
|
|
20476
|
-
let i = IC(t).filter(T), a = t.current.selectionOriginRect ? uc(t.current.selectionOriginRect) : null;
|
|
20585
|
+
let i = zC(t).filter(E), a = t.current.selectionOriginRect ? uc(t.current.selectionOriginRect) : null;
|
|
20477
20586
|
if (!i.length) {
|
|
20478
20587
|
if (!a) throw Error("Select a page element or drag a region before adding an annotation.");
|
|
20479
|
-
return
|
|
20588
|
+
return re(n, a);
|
|
20480
20589
|
}
|
|
20481
|
-
let o = i.map(
|
|
20482
|
-
|
|
20483
|
-
|
|
20590
|
+
let o = i.map(W);
|
|
20591
|
+
if (new Set(o.map((e) => JSON.stringify(e.viewport))).size > 1) throw Error("Select elements within one Responsive preview before adding an annotation.");
|
|
20592
|
+
return ne({
|
|
20593
|
+
id: RC(r, "annotation"),
|
|
20484
20594
|
note: n,
|
|
20485
20595
|
createdAt: Date.now(),
|
|
20486
20596
|
anchor: {
|
|
@@ -20488,12 +20598,12 @@ function LC(e) {
|
|
|
20488
20598
|
targets: o,
|
|
20489
20599
|
region: a
|
|
20490
20600
|
},
|
|
20491
|
-
baseline:
|
|
20601
|
+
baseline: U({
|
|
20492
20602
|
targets: o,
|
|
20493
20603
|
elements: i
|
|
20494
20604
|
})
|
|
20495
20605
|
}, i);
|
|
20496
|
-
},
|
|
20606
|
+
}, G = () => {
|
|
20497
20607
|
for (let [e, t] of _) t.value || t.priority ? e.style.setProperty("display", t.value, t.priority) : e.style.removeProperty("display");
|
|
20498
20608
|
_.clear();
|
|
20499
20609
|
};
|
|
@@ -20510,15 +20620,22 @@ function LC(e) {
|
|
|
20510
20620
|
activeMeasurement: t.current.activeMeasurement,
|
|
20511
20621
|
heldDistances: [...t.current.heldDistances],
|
|
20512
20622
|
guides: t.current.guides.map((e) => ({ ...e })),
|
|
20513
|
-
annotations: m.map(
|
|
20623
|
+
annotations: m.map(LC)
|
|
20514
20624
|
};
|
|
20515
20625
|
},
|
|
20516
20626
|
elementRect(e) {
|
|
20517
20627
|
return Qu(e);
|
|
20518
20628
|
},
|
|
20629
|
+
targetScope: MC,
|
|
20630
|
+
annotationVisible(e) {
|
|
20631
|
+
let t = m.find((t) => t.id === e);
|
|
20632
|
+
if (!t) return !1;
|
|
20633
|
+
let n = !!i?.querySelector("[data-mesurer-responsive-stage]"), r = t.anchor.kind === "elements" && t.anchor.targets.some((e) => e.viewport);
|
|
20634
|
+
return n === r && (!r || t.anchor.kind === "elements" && t.anchor.targets.some((e) => M(t.id, e)));
|
|
20635
|
+
},
|
|
20519
20636
|
currentSelection() {
|
|
20520
20637
|
return {
|
|
20521
|
-
elements:
|
|
20638
|
+
elements: zC(t).filter(E),
|
|
20522
20639
|
region: t.current.selectionOriginRect ? uc(t.current.selectionOriginRect) : null
|
|
20523
20640
|
};
|
|
20524
20641
|
},
|
|
@@ -20547,16 +20664,16 @@ function LC(e) {
|
|
|
20547
20664
|
});
|
|
20548
20665
|
},
|
|
20549
20666
|
toggleSelection(e) {
|
|
20550
|
-
if (!e.isConnected || !
|
|
20667
|
+
if (!e.isConnected || !E(e)) return;
|
|
20551
20668
|
let n = t.current.selectedMeasurements.some((t) => t.elementRef === e) ? t.current.selectedMeasurements.filter((t) => t.elementRef !== e) : [...t.current.selectedMeasurements, sd(e, r)];
|
|
20552
20669
|
t.checkpoint(), t.setSelectedMeasurements(n, n.at(-1) ?? null), t.setTransient({ selectionOriginRect: null });
|
|
20553
20670
|
},
|
|
20554
20671
|
selectGestureActive() {
|
|
20555
20672
|
return t.current.toolMode === "select" && t.current.start !== null;
|
|
20556
20673
|
},
|
|
20557
|
-
select:
|
|
20674
|
+
select: te,
|
|
20558
20675
|
setHover(e) {
|
|
20559
|
-
if (!e?.isConnected || !
|
|
20676
|
+
if (!e?.isConnected || !E(e)) {
|
|
20560
20677
|
t.setHoverTarget(null, null);
|
|
20561
20678
|
return;
|
|
20562
20679
|
}
|
|
@@ -20572,20 +20689,20 @@ function LC(e) {
|
|
|
20572
20689
|
t.setHoverTarget(null, null);
|
|
20573
20690
|
},
|
|
20574
20691
|
hoveredElement() {
|
|
20575
|
-
return t.current.hoverElement?.isConnected &&
|
|
20692
|
+
return t.current.hoverElement?.isConnected && E(t.current.hoverElement) ? t.current.hoverElement : null;
|
|
20576
20693
|
},
|
|
20577
20694
|
annotations() {
|
|
20578
|
-
return m.map(
|
|
20695
|
+
return m.map(LC);
|
|
20579
20696
|
},
|
|
20580
20697
|
annotation(e) {
|
|
20581
20698
|
let t = m.find((t) => t.id === e);
|
|
20582
20699
|
if (!t) return null;
|
|
20583
|
-
let n =
|
|
20700
|
+
let n = LC(t), r = [];
|
|
20584
20701
|
if (n.anchor.kind === "elements" && t.anchor.kind === "elements") {
|
|
20585
20702
|
let e = t.anchor.targets;
|
|
20586
20703
|
r = n.anchor.targets.map((n, r) => ({
|
|
20587
20704
|
target: n,
|
|
20588
|
-
element:
|
|
20705
|
+
element: M(t.id, e[r])
|
|
20589
20706
|
}));
|
|
20590
20707
|
}
|
|
20591
20708
|
return {
|
|
@@ -20597,7 +20714,10 @@ function LC(e) {
|
|
|
20597
20714
|
let t = m.find((t) => t.id === e);
|
|
20598
20715
|
if (!t) return null;
|
|
20599
20716
|
if (t.anchor.kind === "region") return uc(t.anchor.rect);
|
|
20600
|
-
let n = t.anchor.targets.map((e) =>
|
|
20717
|
+
let n = t.anchor.targets.map((e) => {
|
|
20718
|
+
let n = M(t.id, e);
|
|
20719
|
+
return n ? Qu(n) : void 0;
|
|
20720
|
+
}).filter((e) => e !== void 0);
|
|
20601
20721
|
if (!n.length) {
|
|
20602
20722
|
let e = fc(t.anchor.targets.map((e) => e.lastRect));
|
|
20603
20723
|
return e ? uc(e) : null;
|
|
@@ -20609,17 +20729,17 @@ function LC(e) {
|
|
|
20609
20729
|
height: e.height
|
|
20610
20730
|
})));
|
|
20611
20731
|
},
|
|
20612
|
-
addSelectionAnnotation:
|
|
20613
|
-
addRegionAnnotation:
|
|
20732
|
+
addSelectionAnnotation: ie,
|
|
20733
|
+
addRegionAnnotation: re,
|
|
20614
20734
|
removeAnnotation(e) {
|
|
20615
20735
|
let t = m.findIndex((t) => t.id === e);
|
|
20616
20736
|
if (t < 0) return;
|
|
20617
20737
|
let [n] = m.splice(t, 1);
|
|
20618
20738
|
if (n.anchor.kind === "elements") for (let e of n.anchor.targets) {
|
|
20619
|
-
let t =
|
|
20739
|
+
let t = T(n.id, e.id);
|
|
20620
20740
|
v.delete(t), y.delete(t);
|
|
20621
20741
|
}
|
|
20622
|
-
m.length === 0 &&
|
|
20742
|
+
m.length === 0 && z(), k(), A();
|
|
20623
20743
|
},
|
|
20624
20744
|
subscribe(e) {
|
|
20625
20745
|
return g.add(e), () => g.delete(e);
|
|
@@ -20639,14 +20759,14 @@ function LC(e) {
|
|
|
20639
20759
|
}), t.style.setProperty("display", "none", "important"));
|
|
20640
20760
|
},
|
|
20641
20761
|
finishCapture() {
|
|
20642
|
-
|
|
20762
|
+
G();
|
|
20643
20763
|
},
|
|
20644
20764
|
dispose() {
|
|
20645
|
-
b || (b = !0,
|
|
20765
|
+
b || (b = !0, z(), V(), ee(), r.removeEventListener("mesurer:responsive-stage-change", B), i?.removeEventListener("scroll", P, !0), G(), v.clear(), y.clear(), m.length = 0, g.clear());
|
|
20646
20766
|
}
|
|
20647
20767
|
};
|
|
20648
20768
|
}
|
|
20649
|
-
var
|
|
20769
|
+
var VC = [
|
|
20650
20770
|
"select",
|
|
20651
20771
|
"xray",
|
|
20652
20772
|
"color-picker",
|
|
@@ -20655,12 +20775,12 @@ var RC = [
|
|
|
20655
20775
|
"text-inspector",
|
|
20656
20776
|
"guides",
|
|
20657
20777
|
"settings"
|
|
20658
|
-
],
|
|
20778
|
+
], HC = "mesurer-plugin-settings", UC = (e) => (e.startsWith("mesurer.") ? e.slice(8) : e).split(/[.-]/g).filter(Boolean).map((e) => e[0]?.toUpperCase() + e.slice(1)).join(" ") || e, WC = (e) => "create" in e && typeof e.create == "function", GC = (e) => e === "select" || e === "xray" || e === "color-picker" || e === "rulers" || e === "responsive" || e === "text-inspector" || e === "guides" || e === "distance" || e === "settings", KC = (e) => `builtin.${e}`, qC = (e, t) => {
|
|
20659
20779
|
let n = t.toLowerCase().replaceAll("cmd", "meta").split("+").map((e) => e.trim()).filter(Boolean);
|
|
20660
20780
|
if (!n.length) return !1;
|
|
20661
20781
|
let r = n.at(-1), i = new Set(n.slice(0, -1)), a = i.has("mod"), o = i.has("meta"), s = i.has("ctrl") || i.has("control"), c = i.has("shift"), l = i.has("alt") || i.has("option");
|
|
20662
20782
|
return (a ? !(e.metaKey || e.ctrlKey) : o !== e.metaKey || s !== e.ctrlKey) || c !== e.shiftKey || l !== e.altKey || !a && !o && !s && (e.metaKey || e.ctrlKey) ? !1 : e.key.toLowerCase() === r;
|
|
20663
|
-
},
|
|
20783
|
+
}, JC = ({ host: e, getBuiltinController: t, getModel: n, arrangeActive: r, isBuiltinPluginId: i, onPluginError: a }) => {
|
|
20664
20784
|
let o = () => e.tools().find((e) => e.modeSwitch === !0 && e.toolbarMode === "edit"), s = null, c = async () => {
|
|
20665
20785
|
let r = s;
|
|
20666
20786
|
if (s = null, !r) return;
|
|
@@ -20714,23 +20834,23 @@ var RC = [
|
|
|
20714
20834
|
}
|
|
20715
20835
|
};
|
|
20716
20836
|
};
|
|
20717
|
-
function
|
|
20837
|
+
function YC(e) {
|
|
20718
20838
|
let t = un(() => e.pluginHost), n = t ?? jc(), r = !t, i = un(() => e.version ?? "0.1.0"), a = (t) => e.version && t.id.startsWith("mesurer.") ? {
|
|
20719
20839
|
...t,
|
|
20720
20840
|
version: i
|
|
20721
20841
|
} : t, o = new Set(un(() => e.excludePlugins ?? [])), s = un(() => [...e.plugins ?? []]), c = s.some((e) => e.id === "mesurer.responsive"), l = un(() => Ob([], e.excludePlugins ?? []).filter((e) => !c || e.id !== "mesurer.responsive").map(a)), u = /* @__PURE__ */ new Map(), d = /* @__PURE__ */ new Map(), f = l.find((e) => e.id === "mesurer.responsive");
|
|
20722
20842
|
f && !u.has(f.id) && u.set(f.id, {
|
|
20723
20843
|
id: f.id,
|
|
20724
|
-
label:
|
|
20844
|
+
label: UC(f.id),
|
|
20725
20845
|
order: -100,
|
|
20726
20846
|
enabled: !0,
|
|
20727
20847
|
create: () => f
|
|
20728
20848
|
});
|
|
20729
20849
|
for (let [e, t] of s.entries()) {
|
|
20730
|
-
if (
|
|
20850
|
+
if (WC(t)) {
|
|
20731
20851
|
u.set(t.id, {
|
|
20732
20852
|
...t,
|
|
20733
|
-
label: t.label ??
|
|
20853
|
+
label: t.label ?? UC(t.id),
|
|
20734
20854
|
order: t.order ?? 1e3 + e
|
|
20735
20855
|
});
|
|
20736
20856
|
continue;
|
|
@@ -20738,7 +20858,7 @@ function KC(e) {
|
|
|
20738
20858
|
let n = a(t);
|
|
20739
20859
|
u.set(n.id, {
|
|
20740
20860
|
id: n.id,
|
|
20741
|
-
label:
|
|
20861
|
+
label: UC(n.id),
|
|
20742
20862
|
order: 1e3 + e,
|
|
20743
20863
|
enabled: !0,
|
|
20744
20864
|
create: () => n
|
|
@@ -20746,11 +20866,11 @@ function KC(e) {
|
|
|
20746
20866
|
}
|
|
20747
20867
|
let p = /* @__PURE__ */ new Set();
|
|
20748
20868
|
for (let e of u.values()) e.enabled !== !1 && p.add(e.id);
|
|
20749
|
-
let m = new Map([...u.values()].map((e) => [e.id, new Set(e.settingsIds ?? [])])), h = /* @__PURE__ */ new Map(), g = /* @__PURE__ */ new Map(), _ = /* @__PURE__ */ new Set(), v = /* @__PURE__ */ new Map(), y = null, b = null, x = () => void 0, S = async () => void 0, [C, w] = K(0), [T, E] = K(!1), [D, O] = K(!1), k = (e) => (C(), n.tools().find((t) => (t.builtin === e || t.id === e) && t.command !==
|
|
20869
|
+
let m = new Map([...u.values()].map((e) => [e.id, new Set(e.settingsIds ?? [])])), h = /* @__PURE__ */ new Map(), g = /* @__PURE__ */ new Map(), _ = /* @__PURE__ */ new Set(), v = /* @__PURE__ */ new Map(), y = null, b = null, x = () => void 0, S = async () => void 0, [C, w] = K(0), [T, E] = K(!1), [D, O] = K(!1), k = (e) => (C(), n.tools().find((t) => (t.builtin === e || t.id === e) && t.command !== KC(e))), A = (e) => (C(), T() ? e === "distance" ? n.overlays().some((t) => t.builtin === e || t.id === e) : n.tools().some((t) => t.builtin === e || t.id === e) : !o.has(e)), j = () => (C(), n.state.get("mesurer.arrange.active") ?? !1), M = (e) => !1;
|
|
20750
20870
|
vo(j, (e) => {
|
|
20751
20871
|
e && O(!1);
|
|
20752
20872
|
});
|
|
20753
|
-
let N = mo(() => (C(), n.tools().filter((e) => e.hidden?.() ? !1 : !e.builtin || !
|
|
20873
|
+
let N = mo(() => (C(), n.tools().filter((e) => e.hidden?.() ? !1 : !e.builtin || !GC(e.builtin) || e.command !== KC(e.builtin)))), P = mo(() => {
|
|
20754
20874
|
C();
|
|
20755
20875
|
let e = n.settings();
|
|
20756
20876
|
return [...u.values()].sort((e, t) => (e.order ?? 0) - (t.order ?? 0)).map((t) => {
|
|
@@ -20760,7 +20880,7 @@ function KC(e) {
|
|
|
20760
20880
|
})).filter((e) => (e.controls?.length ?? 0) > 0);
|
|
20761
20881
|
return {
|
|
20762
20882
|
id: t.id,
|
|
20763
|
-
label: t.label ??
|
|
20883
|
+
label: t.label ?? UC(t.id),
|
|
20764
20884
|
description: t.description,
|
|
20765
20885
|
error: d.get(t.id),
|
|
20766
20886
|
enabled: n.has(t.id),
|
|
@@ -20771,14 +20891,14 @@ function KC(e) {
|
|
|
20771
20891
|
}), F = mo(() => (C(), n.settings().filter((e) => e.id === hy))), I = () => {
|
|
20772
20892
|
C();
|
|
20773
20893
|
let e = [];
|
|
20774
|
-
for (let t of
|
|
20894
|
+
for (let t of VC) (!A(t) || k(t)) && e.push(`[data-mesurer-builtin='${t}']{display:none!important}`);
|
|
20775
20895
|
return (!A("guides") || k("guides")) && e.push("[data-mesurer-builtin='guides-menu']{display:none!important}"), A("guides") || e.push("[data-mesurer-guide='true']{display:none!important}"), A("distance") || e.push("[data-mesurer-distance='true']{display:none!important}"), A("rulers") || e.push("[data-mesurer-rulers='true']{display:none!important}"), A("color-picker") || e.push(".mesurer-color-picker{display:none!important}"), e.join("\n");
|
|
20776
|
-
}, { editModeTool: L, executeTool: R, leaveEditMode: z, runTool: B } =
|
|
20896
|
+
}, { editModeTool: L, executeTool: R, leaveEditMode: z, runTool: B } = JC({
|
|
20777
20897
|
host: n,
|
|
20778
20898
|
getBuiltinController: () => b,
|
|
20779
20899
|
getModel: () => y,
|
|
20780
20900
|
arrangeActive: j,
|
|
20781
|
-
isBuiltinPluginId:
|
|
20901
|
+
isBuiltinPluginId: GC,
|
|
20782
20902
|
onPluginError: e.onPluginError
|
|
20783
20903
|
}), V = (e) => {
|
|
20784
20904
|
D() && [
|
|
@@ -20851,7 +20971,7 @@ function KC(e) {
|
|
|
20851
20971
|
n || (n = !0, t(), e.remove());
|
|
20852
20972
|
}
|
|
20853
20973
|
};
|
|
20854
|
-
}, ce = (e) =>
|
|
20974
|
+
}, ce = (e) => BC({
|
|
20855
20975
|
model: ne(),
|
|
20856
20976
|
ownerDocument: B,
|
|
20857
20977
|
ownerWindow: V,
|
|
@@ -20860,7 +20980,7 @@ function KC(e) {
|
|
|
20860
20980
|
persistenceKey: e ? `${P.persistKey ?? "mesurer-plugin-settings"}:${e}:${V.location.origin}` : void 0
|
|
20861
20981
|
}), le = B.createElement("style");
|
|
20862
20982
|
le.dataset.mesurerPluginVisibility = "true", le.dataset.mesurerInspectorUi = "true", le.textContent = I(), F.append(le);
|
|
20863
|
-
let ue = P.persistKey ? `${P.persistKey}:plugins` :
|
|
20983
|
+
let ue = P.persistKey ? `${P.persistKey}:plugins` : HC, de = `${ue}:availability`, fe = /* @__PURE__ */ new Map();
|
|
20864
20984
|
try {
|
|
20865
20985
|
let e = V.localStorage.getItem(de);
|
|
20866
20986
|
if (e) {
|
|
@@ -20904,7 +21024,7 @@ function KC(e) {
|
|
|
20904
21024
|
"rulers"
|
|
20905
21025
|
].includes(e.id) && (e.active?.() ?? !1))) && O(!1), (e.reason === "state" || e.reason === "history" || e.reason === "remove" || e.reason === "replace") && he(), T() && !s && (e.reason === "load" || e.reason === "remove" || e.reason === "replace") && pe(), e.reason === "remove" && e.pluginId?.startsWith("mesurer.")) {
|
|
20906
21026
|
let t = e.pluginId.slice(8);
|
|
20907
|
-
|
|
21027
|
+
GC(t) && t !== "responsive" && b?.deactivate(t), t === "responsive" && O(!1);
|
|
20908
21028
|
}
|
|
20909
21029
|
});
|
|
20910
21030
|
P.onPluginHost?.(C);
|
|
@@ -21028,7 +21148,7 @@ function KC(e) {
|
|
|
21028
21148
|
createInspectorMount: se
|
|
21029
21149
|
};
|
|
21030
21150
|
e.service.provide("runtime:solid", t), yy(e), jb(e, t), jC(e, t);
|
|
21031
|
-
for (let t of
|
|
21151
|
+
for (let t of VC) e.command.register(KC(t), () => Oe(t));
|
|
21032
21152
|
}
|
|
21033
21153
|
}), t)) {
|
|
21034
21154
|
for (let e of [...u.values()].sort((e, t) => (e.order ?? 0) - (t.order ?? 0))) {
|
|
@@ -21103,7 +21223,7 @@ function KC(e) {
|
|
|
21103
21223
|
e.preventDefault(), e.stopImmediatePropagation();
|
|
21104
21224
|
return;
|
|
21105
21225
|
}
|
|
21106
|
-
let a = N().find((t) => t.shortcut && !t.disabled?.() &&
|
|
21226
|
+
let a = N().find((t) => t.shortcut && !t.disabled?.() && qC(e, t.shortcut));
|
|
21107
21227
|
if (a) {
|
|
21108
21228
|
e.preventDefault(), e.stopImmediatePropagation(), U(a);
|
|
21109
21229
|
return;
|
|
@@ -21163,7 +21283,7 @@ function KC(e) {
|
|
|
21163
21283
|
}
|
|
21164
21284
|
});
|
|
21165
21285
|
}
|
|
21166
|
-
var
|
|
21286
|
+
var XC = (e, t, n) => Math.min(Math.max(e, t), Math.max(t, n)), ZC = (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), QC = (e, t, n, r, i) => {
|
|
21167
21287
|
let a = e.left + e.width, o = e.top + e.height, s = [
|
|
21168
21288
|
{
|
|
21169
21289
|
axis: "vertical",
|
|
@@ -21211,7 +21331,7 @@ var qC = (e, t, n) => Math.min(Math.max(e, t), Math.max(t, n)), JC = (e, t, n =
|
|
|
21211
21331
|
}
|
|
21212
21332
|
];
|
|
21213
21333
|
return i ? s.sort((e, t) => t.space - e.space) : s;
|
|
21214
|
-
},
|
|
21334
|
+
}, $C = (e, t, n) => {
|
|
21215
21335
|
let r = [];
|
|
21216
21336
|
for (let i = 0; i <= n; i += 1) {
|
|
21217
21337
|
let n = i * t;
|
|
@@ -21237,14 +21357,14 @@ var qC = (e, t, n) => Math.min(Math.max(e, t), Math.max(t, n)), JC = (e, t, n =
|
|
|
21237
21357
|
}
|
|
21238
21358
|
return r;
|
|
21239
21359
|
};
|
|
21240
|
-
function
|
|
21360
|
+
function ew(e, t, n = {}) {
|
|
21241
21361
|
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 = [];
|
|
21242
21362
|
for (let n of e) {
|
|
21243
|
-
let e = /* @__PURE__ */ new Set(), _ = [], v =
|
|
21244
|
-
for (let t of
|
|
21363
|
+
let e = /* @__PURE__ */ new Set(), _ = [], v = QC(n.rect, t, r, a, u);
|
|
21364
|
+
for (let t of $C(v, d, l)) {
|
|
21245
21365
|
let n = u ? {
|
|
21246
|
-
left:
|
|
21247
|
-
top:
|
|
21366
|
+
left: XC(t.left, s, f),
|
|
21367
|
+
top: XC(t.top, s, p)
|
|
21248
21368
|
} : t, r = `${n.left}:${n.top}`;
|
|
21249
21369
|
e.has(r) || (e.add(r), _.push(n));
|
|
21250
21370
|
}
|
|
@@ -21254,21 +21374,21 @@ function ZC(e, t, n = {}) {
|
|
|
21254
21374
|
width: r,
|
|
21255
21375
|
height: r
|
|
21256
21376
|
};
|
|
21257
|
-
return h.every((e) => !
|
|
21377
|
+
return h.every((e) => !ZC(t, e, o)) && c.every((e) => !ZC(t, e, i));
|
|
21258
21378
|
}), b = y.find((e) => {
|
|
21259
21379
|
let t = {
|
|
21260
21380
|
...e,
|
|
21261
21381
|
width: r,
|
|
21262
21382
|
height: r
|
|
21263
21383
|
};
|
|
21264
|
-
return m.every((e) => !
|
|
21384
|
+
return m.every((e) => !ZC(t, e, i));
|
|
21265
21385
|
}) ?? y.find((e) => {
|
|
21266
21386
|
let t = {
|
|
21267
21387
|
...e,
|
|
21268
21388
|
width: r,
|
|
21269
21389
|
height: r
|
|
21270
21390
|
};
|
|
21271
|
-
return m.every((e) => !
|
|
21391
|
+
return m.every((e) => !ZC(t, e));
|
|
21272
21392
|
}) ?? y[0] ?? _[0] ?? {
|
|
21273
21393
|
left: s,
|
|
21274
21394
|
top: s
|
|
@@ -21284,20 +21404,20 @@ function ZC(e, t, n = {}) {
|
|
|
21284
21404
|
}
|
|
21285
21405
|
return g;
|
|
21286
21406
|
}
|
|
21287
|
-
var
|
|
21407
|
+
var tw = (e, t, n) => Math.min(Math.max(e, t), Math.max(t, n)), nw = 0, rw = (e) => e.split(",").map((e) => e.trim()).filter((e) => e.length > 0 && e !== "none"), iw = (e) => {
|
|
21288
21408
|
let t = e.ownerDocument.defaultView?.HTMLElement;
|
|
21289
21409
|
return !!(t && e instanceof t);
|
|
21290
|
-
},
|
|
21291
|
-
let n = e.style.getPropertyValue("anchor-name"), r = e.style.getPropertyPriority("anchor-name"), i =
|
|
21410
|
+
}, aw = (e, t) => {
|
|
21411
|
+
let n = e.style.getPropertyValue("anchor-name"), r = e.style.getPropertyPriority("anchor-name"), i = rw(n);
|
|
21292
21412
|
i.includes(t) || e.style.setProperty("anchor-name", [...i, t].join(", "), r);
|
|
21293
21413
|
let a = !1;
|
|
21294
21414
|
return () => {
|
|
21295
21415
|
if (a) return;
|
|
21296
21416
|
a = !0;
|
|
21297
|
-
let i =
|
|
21417
|
+
let i = rw(e.style.getPropertyValue("anchor-name")).filter((e) => e !== t);
|
|
21298
21418
|
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");
|
|
21299
21419
|
};
|
|
21300
|
-
},
|
|
21420
|
+
}, ow = (e) => {
|
|
21301
21421
|
if (!e.length) return null;
|
|
21302
21422
|
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));
|
|
21303
21423
|
return {
|
|
@@ -21306,14 +21426,14 @@ var QC = (e, t, n) => Math.min(Math.max(e, t), Math.max(t, n)), $C = 0, ew = (e)
|
|
|
21306
21426
|
width: r - t,
|
|
21307
21427
|
height: i - n
|
|
21308
21428
|
};
|
|
21309
|
-
},
|
|
21429
|
+
}, sw = (e, t, n, r, i = 8) => {
|
|
21310
21430
|
let a = r.innerWidth - t - 8, o = r.innerHeight - n - 8, s = e.left + e.width + i, c = e.left - t - i;
|
|
21311
21431
|
return {
|
|
21312
|
-
left: s + t <= r.innerWidth - 8 ? s : c >= 8 ? c :
|
|
21313
|
-
top:
|
|
21432
|
+
left: s + t <= r.innerWidth - 8 ? s : c >= 8 ? c : tw(e.left + e.width - t, 8, a),
|
|
21433
|
+
top: tw(e.top, 8, o)
|
|
21314
21434
|
};
|
|
21315
|
-
},
|
|
21316
|
-
let a = r.innerWidth - t - 8, o =
|
|
21435
|
+
}, cw = (e, t, n, r, i = 8) => {
|
|
21436
|
+
let a = r.innerWidth - t - 8, o = tw(e.left + e.width / 2 - t / 2, 8, a), s = e.top + e.height + i;
|
|
21317
21437
|
if (s + n <= r.innerHeight - 8) return {
|
|
21318
21438
|
left: o,
|
|
21319
21439
|
top: s
|
|
@@ -21322,10 +21442,10 @@ var QC = (e, t, n) => Math.min(Math.max(e, t), Math.max(t, n)), $C = 0, ew = (e)
|
|
|
21322
21442
|
return c >= 8 ? {
|
|
21323
21443
|
left: o,
|
|
21324
21444
|
top: c
|
|
21325
|
-
} :
|
|
21445
|
+
} : sw(e, t, n, r, i);
|
|
21326
21446
|
};
|
|
21327
|
-
function
|
|
21328
|
-
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(!1), [h, g] = K(""), [_, v] = K(!1), [y, b] = K(null), [x, S] = K(!1), [C, w] = K(null), [T, E] = K(null), D = `--mesurer-annotation-trigger-${
|
|
21447
|
+
function lw(e) {
|
|
21448
|
+
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(!1), [h, g] = K(""), [_, v] = K(!1), [y, b] = K(null), [x, S] = K(!1), [C, w] = K(null), [T, E] = K(null), D = `--mesurer-annotation-trigger-${++nw}`, O = null, k = e.initialTriggerFallback === "current-and-next", A = null, j = null, M = null, N, P, F = null, I = null, L = !1, R = null, z = null, B = null, V = null, ee = null, H = null, U = /* @__PURE__ */ new Map(), W = () => N?.ownerDocument.defaultView ?? window, te = Dl(W()), ne = "context-annotation-send", re = () => e.coordinateSpace === "viewport", ie = (e) => e ? "native-anchor" : re() ? "cached-delta" : "document", G = (e) => {
|
|
21329
21449
|
if (re()) return e;
|
|
21330
21450
|
let t = W();
|
|
21331
21451
|
return {
|
|
@@ -21361,8 +21481,8 @@ function ow(e) {
|
|
|
21361
21481
|
t && (t.scroll.release(), t.releaseAnchor?.(), U.delete(e));
|
|
21362
21482
|
}, he = (t) => {
|
|
21363
21483
|
let n = e.runtime.annotation(t);
|
|
21364
|
-
return !n || n.anchor.kind !== "elements" ? null : n.resolvedTargets.find(({ element: e }) => e?.isConnected)?.element ?? null;
|
|
21365
|
-
}, ge = (e) => !!(
|
|
21484
|
+
return !n || n.anchor.kind !== "elements" || !e.runtime.annotationVisible(t) ? null : n.resolvedTargets.find(({ element: e }) => e?.isConnected && !C_(e.ownerDocument))?.element ?? null;
|
|
21485
|
+
}, ge = (e) => !!(iw(e) && re() && N && le() && e.getRootNode() === N.getRootNode()), _e = (e) => {
|
|
21366
21486
|
let t = he(e), n = U.get(e);
|
|
21367
21487
|
if (!t) {
|
|
21368
21488
|
n && (me(e), i((e) => e + 1));
|
|
@@ -21376,12 +21496,12 @@ function ow(e) {
|
|
|
21376
21496
|
me(e);
|
|
21377
21497
|
let a = t.ownerDocument.defaultView;
|
|
21378
21498
|
if (a) {
|
|
21379
|
-
if (r &&
|
|
21380
|
-
let n = `--mesurer-annotation-${
|
|
21499
|
+
if (r && iw(t)) {
|
|
21500
|
+
let n = `--mesurer-annotation-${++nw}`;
|
|
21381
21501
|
U.set(e, {
|
|
21382
21502
|
target: t,
|
|
21383
21503
|
anchorName: n,
|
|
21384
|
-
releaseAnchor:
|
|
21504
|
+
releaseAnchor: aw(t, n),
|
|
21385
21505
|
scroll: Jp(a, t, () => pe(e), { trackWindow: !1 })
|
|
21386
21506
|
});
|
|
21387
21507
|
} else U.set(e, {
|
|
@@ -21407,21 +21527,25 @@ function ow(e) {
|
|
|
21407
21527
|
e.initialTriggerFallback && (O = ue());
|
|
21408
21528
|
let xe = () => {
|
|
21409
21529
|
V?.release(), V = null, B?.(), B = null, R = null, z = null;
|
|
21410
|
-
}, Se = (e) => !!(
|
|
21530
|
+
}, Se = (e) => !!(iw(e) && re() && N && e !== O && le() && e.getRootNode() === N.getRootNode()), Ce = () => {
|
|
21411
21531
|
let e = ue();
|
|
21532
|
+
if (e && C_(e.ownerDocument)) {
|
|
21533
|
+
xe();
|
|
21534
|
+
return;
|
|
21535
|
+
}
|
|
21412
21536
|
O && e !== O && (O = null);
|
|
21413
21537
|
let t = R, n = !!(e?.isConnected && Se(e)), r = z === e;
|
|
21414
21538
|
if (e === R && e?.isConnected && n === r) {
|
|
21415
21539
|
V?.sync();
|
|
21416
21540
|
return;
|
|
21417
21541
|
}
|
|
21418
|
-
let i = e === t ? D : `--mesurer-annotation-trigger-${
|
|
21542
|
+
let i = e === t ? D : `--mesurer-annotation-trigger-${++nw}`;
|
|
21419
21543
|
if (xe(), !e?.isConnected) return;
|
|
21420
21544
|
R = e;
|
|
21421
21545
|
let a = e.ownerDocument.defaultView;
|
|
21422
21546
|
if (a) {
|
|
21423
|
-
if (n &&
|
|
21424
|
-
B =
|
|
21547
|
+
if (n && iw(e)) {
|
|
21548
|
+
B = aw(e, i), z = e, D = i, V = Jp(a, e, fe, { trackWindow: !1 });
|
|
21425
21549
|
return;
|
|
21426
21550
|
}
|
|
21427
21551
|
D = i, V = Jp(a, e, fe, { trackWindow: re() });
|
|
@@ -21463,24 +21587,24 @@ function ow(e) {
|
|
|
21463
21587
|
});
|
|
21464
21588
|
let Pe = ue();
|
|
21465
21589
|
we(Pe);
|
|
21466
|
-
let Fe = e.runtime.subscribe(() => {
|
|
21590
|
+
let Fe = e.runtime.subscribe(() => un(() => {
|
|
21467
21591
|
let t = e.runtime.selectGestureActive();
|
|
21468
21592
|
p() && t ? (k = !0, ce()) : p() && A !== null && !oe(A, ae()) && (O = ue(), k = !1, ce());
|
|
21469
21593
|
let r = ue(), i = r !== Pe;
|
|
21470
|
-
i && (Pe = r, we(Pe), k && (k = !1, O = r)), Ce(), i && Ee(), n((e) => e + 1), be();
|
|
21471
|
-
});
|
|
21594
|
+
i && (Pe = r, we(Pe), k && (k = !1, O = r)), Ce(), (i || r && C_(r.ownerDocument)) && Ee(), n((e) => e + 1), be();
|
|
21595
|
+
}));
|
|
21472
21596
|
Ce(), W().queueMicrotask(ve), In(() => {
|
|
21473
21597
|
ee?.disconnect(), ee = null, se(), H?.removeEventListener("resize", Ee), H = null, Ne?.disconnect(), xe();
|
|
21474
21598
|
for (let e of U.keys()) me(e);
|
|
21475
21599
|
Fe();
|
|
21476
21600
|
});
|
|
21477
|
-
let Ie = mo(() => (t(), e.runtime.currentSelection())), Le = mo(() => (t(), e.runtime.annotations())), Re = mo(() => {
|
|
21601
|
+
let Ie = mo(() => (t(), e.runtime.currentSelection())), Le = mo(() => (t(), e.runtime.annotations().filter((t) => e.runtime.annotationVisible(t.id)))), Re = mo(() => {
|
|
21478
21602
|
let e = a();
|
|
21479
21603
|
return e ? Le().find((t) => t.id === e) ?? null : null;
|
|
21480
21604
|
}), ze = mo(() => s() ?? l() ?? a()), Be = (e) => Le().findIndex((t) => t.id === e) + 1, Ve = mo(() => {
|
|
21481
21605
|
t(), r();
|
|
21482
21606
|
let n = ze();
|
|
21483
|
-
if (!n) return [];
|
|
21607
|
+
if (!n || !e.runtime.annotationVisible(n)) return [];
|
|
21484
21608
|
let i = e.runtime.annotation(n);
|
|
21485
21609
|
if (!i) return [];
|
|
21486
21610
|
if (i.anchor.kind === "region") return [{ ...i.anchor.rect }];
|
|
@@ -21512,7 +21636,7 @@ function ow(e) {
|
|
|
21512
21636
|
};
|
|
21513
21637
|
});
|
|
21514
21638
|
return e.region && t.push({ ...e.region }), t;
|
|
21515
|
-
}), Ge = mo(() =>
|
|
21639
|
+
}), Ge = mo(() => ow(We())), Ke = (e) => e.anchor.kind === "elements" ? `${e.anchor.targets.length} selected ${e.anchor.targets.length === 1 ? "element" : "elements"}` : "Selected region", qe = mo(() => {
|
|
21516
21640
|
r();
|
|
21517
21641
|
let t = e.runtime.currentSelection().elements;
|
|
21518
21642
|
if (!t.length) return null;
|
|
@@ -21521,7 +21645,7 @@ function ow(e) {
|
|
|
21521
21645
|
}), Je = () => {
|
|
21522
21646
|
r();
|
|
21523
21647
|
let e = qe();
|
|
21524
|
-
if (!e?.isConnected
|
|
21648
|
+
if (!e?.isConnected) return null;
|
|
21525
21649
|
let t = Qu(e), n = {
|
|
21526
21650
|
left: t.left,
|
|
21527
21651
|
top: t.top,
|
|
@@ -21532,7 +21656,7 @@ function ow(e) {
|
|
|
21532
21656
|
top: e.top,
|
|
21533
21657
|
width: 24,
|
|
21534
21658
|
height: 24
|
|
21535
|
-
})), [o] =
|
|
21659
|
+
})), [o] = ew([{
|
|
21536
21660
|
id: "selection-note-trigger",
|
|
21537
21661
|
rect: n
|
|
21538
21662
|
}], {
|
|
@@ -21542,7 +21666,7 @@ function ow(e) {
|
|
|
21542
21666
|
obstacles: [...a, ...De()],
|
|
21543
21667
|
maxShiftRings: Math.ceil(Math.max(i.innerWidth, i.innerHeight) / 28),
|
|
21544
21668
|
viewportAware: !0
|
|
21545
|
-
}), s = o?.left ??
|
|
21669
|
+
}), s = o?.left ?? tw(n.left + n.width + 6, 4, i.innerWidth - 24 - 4), c = o?.top ?? tw(n.top, 4, i.innerHeight - 24 - 4), l = z === e, u = re() && !l;
|
|
21546
21670
|
return {
|
|
21547
21671
|
left: l || u ? s : s + i.scrollX,
|
|
21548
21672
|
top: l || u ? c : c + i.scrollY,
|
|
@@ -21560,7 +21684,7 @@ function ow(e) {
|
|
|
21560
21684
|
rect: n
|
|
21561
21685
|
}] : [];
|
|
21562
21686
|
});
|
|
21563
|
-
return new Map(
|
|
21687
|
+
return new Map(ew(i, {
|
|
21564
21688
|
width: n.innerWidth,
|
|
21565
21689
|
height: n.innerHeight
|
|
21566
21690
|
}, { obstacles: We() }).map((e) => [e.id, e]));
|
|
@@ -21581,7 +21705,7 @@ function ow(e) {
|
|
|
21581
21705
|
};
|
|
21582
21706
|
}, Qe = () => {
|
|
21583
21707
|
let e = Ge(), t = W();
|
|
21584
|
-
return e ?
|
|
21708
|
+
return e ? cw(e, 256, 160, t) : {
|
|
21585
21709
|
left: 8,
|
|
21586
21710
|
top: 8
|
|
21587
21711
|
};
|
|
@@ -21602,7 +21726,7 @@ function ow(e) {
|
|
|
21602
21726
|
};
|
|
21603
21727
|
}, et = (e, t) => {
|
|
21604
21728
|
let n = W(), r = Ye(), i = r.get(e);
|
|
21605
|
-
if (!i) return
|
|
21729
|
+
if (!i) return sw(t, 272, 176, n);
|
|
21606
21730
|
let a = n.innerWidth - 272 - 8, o = n.innerHeight - 176 - 8, s = [...r.values()].map((e) => ({
|
|
21607
21731
|
left: e.left,
|
|
21608
21732
|
top: e.top,
|
|
@@ -21628,8 +21752,8 @@ function ow(e) {
|
|
|
21628
21752
|
}
|
|
21629
21753
|
]) {
|
|
21630
21754
|
let t = {
|
|
21631
|
-
left:
|
|
21632
|
-
top:
|
|
21755
|
+
left: tw(e.left, 8, a),
|
|
21756
|
+
top: tw(e.top, 8, o)
|
|
21633
21757
|
}, n = `${t.left}:${t.top}`;
|
|
21634
21758
|
l.has(n) || (l.add(n), u.push(t));
|
|
21635
21759
|
}
|
|
@@ -21645,7 +21769,7 @@ function ow(e) {
|
|
|
21645
21769
|
targetOverlap: c(r, t),
|
|
21646
21770
|
index: n
|
|
21647
21771
|
};
|
|
21648
|
-
}).sort((e, t) => e.markerOverlap - t.markerOverlap || e.targetOverlap - t.targetOverlap || e.index - t.index)[0]?.candidate ??
|
|
21772
|
+
}).sort((e, t) => e.markerOverlap - t.markerOverlap || e.targetOverlap - t.targetOverlap || e.index - t.index)[0]?.candidate ?? sw(t, 272, 176, n);
|
|
21649
21773
|
}, tt = (t) => {
|
|
21650
21774
|
let n = e.runtime.annotationRect(t);
|
|
21651
21775
|
if (!n) return {
|
|
@@ -21697,8 +21821,8 @@ function ow(e) {
|
|
|
21697
21821
|
let u = (t) => {
|
|
21698
21822
|
if (!j || t.pointerId !== j.pointerId) return;
|
|
21699
21823
|
let r = j, i = Math.max(8, s.innerWidth - r.width - 8), a = Math.max(8, s.innerHeight - r.height - 8), o = {
|
|
21700
|
-
left:
|
|
21701
|
-
top:
|
|
21824
|
+
left: tw(r.originLeft + t.clientX - r.startX, 8, i),
|
|
21825
|
+
top: tw(r.originTop + t.clientY - r.startY, 8, a)
|
|
21702
21826
|
}, c = e.runtime.annotationRect(n);
|
|
21703
21827
|
c && f((e) => ({
|
|
21704
21828
|
...e,
|
|
@@ -21729,7 +21853,7 @@ function ow(e) {
|
|
|
21729
21853
|
}
|
|
21730
21854
|
}
|
|
21731
21855
|
}, ct = ce, lt = () => {
|
|
21732
|
-
He() && (
|
|
21856
|
+
He() && (k = !1, A = ae(), g(""), v(!1), b(null), w(null), o(null), m(!0), F = (e) => {
|
|
21733
21857
|
let t = de()?.querySelector("[data-mesurer-annotation-composer='true']"), n = W().Node;
|
|
21734
21858
|
if (!(t && n && e.target instanceof n && t.contains(e.target))) {
|
|
21735
21859
|
if (h().trim() && !y()) {
|
|
@@ -21738,24 +21862,18 @@ function ow(e) {
|
|
|
21738
21862
|
}
|
|
21739
21863
|
ut();
|
|
21740
21864
|
}
|
|
21741
|
-
}, W().document.addEventListener("pointerdown", F, !0), W().queueMicrotask(() => V?.sync()))
|
|
21865
|
+
}, W().document.addEventListener("pointerdown", F, !0), W().queueMicrotask(() => V?.sync()));
|
|
21742
21866
|
}, ut = () => {
|
|
21743
21867
|
let e = p();
|
|
21744
21868
|
A !== null && !oe(A, ae()) ? (O = ue(), k = !1, Ce(), Ee()) : e && (k = !1), ct();
|
|
21745
21869
|
}, dt = () => {
|
|
21746
21870
|
p() && (k = !0, ct());
|
|
21747
21871
|
}, ft = () => {
|
|
21748
|
-
if (!(!h().trim() || x())) {
|
|
21749
|
-
|
|
21750
|
-
|
|
21751
|
-
|
|
21752
|
-
|
|
21753
|
-
try {
|
|
21754
|
-
let t = e.runtime.addSelectionAnnotation(h());
|
|
21755
|
-
k = !1, A = null, g(""), v(!1), b(null), m(!1), se(), _e(t.id), nt(t.id), o(t.id), w(null), ye(t.id);
|
|
21756
|
-
} catch (e) {
|
|
21757
|
-
b(e instanceof Error ? e.message : String(e));
|
|
21758
|
-
}
|
|
21872
|
+
if (!(!h().trim() || x())) try {
|
|
21873
|
+
let t = e.runtime.addSelectionAnnotation(h());
|
|
21874
|
+
k = !1, A = null, g(""), v(!1), b(null), m(!1), se(), _e(t.id), nt(t.id), o(t.id), w(null), ye(t.id);
|
|
21875
|
+
} catch (e) {
|
|
21876
|
+
b(e instanceof Error ? e.message : String(e));
|
|
21759
21877
|
}
|
|
21760
21878
|
}, pt = {
|
|
21761
21879
|
openNoteComposer: lt,
|
|
@@ -22145,11 +22263,11 @@ function ow(e) {
|
|
|
22145
22263
|
})
|
|
22146
22264
|
];
|
|
22147
22265
|
}
|
|
22148
|
-
function
|
|
22266
|
+
function uw(e) {
|
|
22149
22267
|
let t = null;
|
|
22150
22268
|
return In(ov(e.ownerWindow, () => {
|
|
22151
22269
|
t?.abandonNoteComposer();
|
|
22152
|
-
})), Y(
|
|
22270
|
+
})), Y(lw, {
|
|
22153
22271
|
get runtime() {
|
|
22154
22272
|
return e.runtime;
|
|
22155
22273
|
},
|
|
@@ -22170,8 +22288,8 @@ function sw(e) {
|
|
|
22170
22288
|
}
|
|
22171
22289
|
});
|
|
22172
22290
|
}
|
|
22173
|
-
var
|
|
22174
|
-
function
|
|
22291
|
+
var dw = "2147482950", fw = "2147483646", pw = "2147483647";
|
|
22292
|
+
function mw(e) {
|
|
22175
22293
|
let { ownerDocument: t, ownerWindow: n, pageTarget: r } = e, i = t.body;
|
|
22176
22294
|
if (!(i && !(r instanceof n.ShadowRoot) && r.getRootNode() === t)) return e.createInspectorMount();
|
|
22177
22295
|
df(ff, i);
|
|
@@ -22192,17 +22310,17 @@ function dw(e) {
|
|
|
22192
22310
|
s.dataset.mesurerDocumentInspectorLayerStyle = "true", s.textContent = `
|
|
22193
22311
|
[data-mesurer-document-inspector-mount="true"] [data-mesurer-annotation-target-highlight="true"] {
|
|
22194
22312
|
position: absolute !important;
|
|
22195
|
-
z-index: ${
|
|
22313
|
+
z-index: ${dw} !important;
|
|
22196
22314
|
}
|
|
22197
22315
|
[data-mesurer-document-inspector-mount="true"] [data-mesurer-annotation-panel="true"] {
|
|
22198
22316
|
position: absolute !important;
|
|
22199
|
-
z-index: ${
|
|
22317
|
+
z-index: ${fw} !important;
|
|
22200
22318
|
}
|
|
22201
22319
|
[data-mesurer-document-inspector-mount="true"] [data-mesurer-annotation-marker="true"],
|
|
22202
22320
|
[data-mesurer-document-inspector-mount="true"] [data-mesurer-annotation-trigger="true"],
|
|
22203
22321
|
[data-mesurer-document-inspector-mount="true"] [data-mesurer-annotation-composer="true"] {
|
|
22204
22322
|
position: absolute !important;
|
|
22205
|
-
z-index: ${
|
|
22323
|
+
z-index: ${pw} !important;
|
|
22206
22324
|
}
|
|
22207
22325
|
`, t.head.append(s), i.append(a);
|
|
22208
22326
|
let c = !1;
|
|
@@ -22213,8 +22331,8 @@ function dw(e) {
|
|
|
22213
22331
|
}
|
|
22214
22332
|
};
|
|
22215
22333
|
}
|
|
22216
|
-
var
|
|
22217
|
-
let t = e.kind === "columns", n = e.align === "stretch", r = n ? `repeat(${e.count}, minmax(0, 1fr))` : `repeat(${e.count}, ${e.size}px)`, i =
|
|
22334
|
+
var hw = (e) => `color-mix(in srgb, ${e.color} ${e.opacity * 100}%, transparent)`, gw = (e) => e === "max" ? "end" : e === "center" ? "center" : "start", _w = (e) => {
|
|
22335
|
+
let t = e.kind === "columns", n = e.align === "stretch", r = n ? `repeat(${e.count}, minmax(0, 1fr))` : `repeat(${e.count}, ${e.size}px)`, i = gw(e.align);
|
|
22218
22336
|
return {
|
|
22219
22337
|
position: "absolute",
|
|
22220
22338
|
inset: "0",
|
|
@@ -22235,7 +22353,7 @@ var fw = (e) => `color-mix(in srgb, ${e.color} ${e.opacity * 100}%, transparent)
|
|
|
22235
22353
|
transform: e.align === "center" ? t ? `translateX(${e.offset}px)` : `translateY(${e.offset}px)` : void 0
|
|
22236
22354
|
};
|
|
22237
22355
|
};
|
|
22238
|
-
function
|
|
22356
|
+
function vw(e) {
|
|
22239
22357
|
let t = () => e.guides.filter((e) => e.visible);
|
|
22240
22358
|
return Y(q, {
|
|
22241
22359
|
get when() {
|
|
@@ -22270,7 +22388,7 @@ function hw(e) {
|
|
|
22270
22388
|
"min-height": "0",
|
|
22271
22389
|
width: "100%",
|
|
22272
22390
|
height: "100%",
|
|
22273
|
-
"background-color":
|
|
22391
|
+
"background-color": hw(e)
|
|
22274
22392
|
}), (e, n) => {
|
|
22275
22393
|
$(t, "style", e, n);
|
|
22276
22394
|
}), t;
|
|
@@ -22278,7 +22396,7 @@ function hw(e) {
|
|
|
22278
22396
|
})), J(() => ({
|
|
22279
22397
|
e: e.id,
|
|
22280
22398
|
t: e.kind,
|
|
22281
|
-
a:
|
|
22399
|
+
a: _w(e)
|
|
22282
22400
|
}), ({ e, t: n, a: r }, i) => {
|
|
22283
22401
|
e !== i?.e && $(t, "data-mesurer-layout-guide", e, i?.e), n !== i?.t && $(t, "data-mesurer-layout-guide-kind", n, i?.t), r !== i?.a && $(t, "style", r, i?.a);
|
|
22284
22402
|
}), t;
|
|
@@ -22291,7 +22409,7 @@ function hw(e) {
|
|
|
22291
22409
|
return J(() => ({
|
|
22292
22410
|
e: e.id,
|
|
22293
22411
|
t: {
|
|
22294
|
-
"background-image": `linear-gradient(to right, ${
|
|
22412
|
+
"background-image": `linear-gradient(to right, ${hw(e)} 1px, transparent 1px), linear-gradient(to bottom, ${hw(e)} 1px, transparent 1px)`,
|
|
22295
22413
|
"background-size": `${e.size}px ${e.size}px`
|
|
22296
22414
|
}
|
|
22297
22415
|
}), ({ e, t: n }, r) => {
|
|
@@ -22303,34 +22421,34 @@ function hw(e) {
|
|
|
22303
22421
|
}
|
|
22304
22422
|
});
|
|
22305
22423
|
}
|
|
22306
|
-
var
|
|
22424
|
+
var yw = "#FF0000", bw = .1, xw = /* @__PURE__ */ new Set([
|
|
22307
22425
|
"columns",
|
|
22308
22426
|
"rows",
|
|
22309
22427
|
"grid"
|
|
22310
|
-
]),
|
|
22428
|
+
]), Sw = /* @__PURE__ */ new Set([
|
|
22311
22429
|
"stretch",
|
|
22312
22430
|
"min",
|
|
22313
22431
|
"center",
|
|
22314
22432
|
"max"
|
|
22315
|
-
]),
|
|
22316
|
-
let t = e.kind &&
|
|
22433
|
+
]), Cw = (e, t, n) => Math.min(n, Math.max(t, e)), ww = (e, t) => e !== void 0 && Number.isFinite(e) ? e : t, Tw = (e = {}) => {
|
|
22434
|
+
let t = e.kind && xw.has(e.kind) ? e.kind : "columns", n = e.align && Sw.has(e.align) ? e.align : t === "grid" ? "min" : "stretch", r = e.id?.trim(), i = e.color?.trim();
|
|
22317
22435
|
return {
|
|
22318
22436
|
id: r || Zu(),
|
|
22319
22437
|
kind: t,
|
|
22320
22438
|
visible: e.visible ?? !0,
|
|
22321
22439
|
color: i || "#FF0000",
|
|
22322
|
-
opacity:
|
|
22323
|
-
count:
|
|
22324
|
-
size:
|
|
22325
|
-
gutter:
|
|
22326
|
-
offset:
|
|
22440
|
+
opacity: Cw(ww(e.opacity, bw), 0, 1),
|
|
22441
|
+
count: Cw(Math.round(ww(e.count, 5)), 1, 24),
|
|
22442
|
+
size: Cw(ww(e.size, 72), 1, 4096),
|
|
22443
|
+
gutter: Cw(ww(e.gutter, 20), 0, 800),
|
|
22444
|
+
offset: Cw(ww(e.offset, 0), 0, 4096),
|
|
22327
22445
|
align: n
|
|
22328
22446
|
};
|
|
22329
|
-
},
|
|
22447
|
+
}, Ew = (e) => (e ?? []).map(Tw), Dw = (e) => {
|
|
22330
22448
|
if (e.kind === "grid") return `Grid ${Math.round(e.size)}px`;
|
|
22331
22449
|
let t = e.kind === "columns" ? "columns" : "rows";
|
|
22332
22450
|
return e.align === "stretch" ? `${e.count} ${t}` : `${e.count} ${t} (${Math.round(e.size)}px)`;
|
|
22333
|
-
},
|
|
22451
|
+
}, Ow = (e) => (() => {
|
|
22334
22452
|
var t = X("svg", {
|
|
22335
22453
|
xmlns: "http://www.w3.org/2000/svg",
|
|
22336
22454
|
viewBox: "0 0 24 24",
|
|
@@ -22349,10 +22467,10 @@ var gw = "#FF0000", _w = .1, vw = /* @__PURE__ */ new Set([
|
|
|
22349
22467
|
}), ({ e, t: n }, r) => {
|
|
22350
22468
|
e !== r?.e && $(t, "width", e, r?.e), n !== r?.t && $(t, "height", n, r?.t);
|
|
22351
22469
|
}), t;
|
|
22352
|
-
})(),
|
|
22470
|
+
})(), kw = (e) => e.kind === "rows" ? Y(Dg, { size: 14 }) : e.kind === "grid" ? Y(Tg, { size: 14 }) : Y(Eg, { size: 14 }), Aw = "msr:grid-cols-[78px_minmax(0,1fr)]", jw = (e) => (() => {
|
|
22353
22471
|
var t = X("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 = X("span");
|
|
22354
22472
|
return Z(t, n), Q(n, () => e.label), Q(t, () => e.children, null), t;
|
|
22355
|
-
})(),
|
|
22473
|
+
})(), Mw = (e) => (() => {
|
|
22356
22474
|
var t = X("span", { class: "msr:relative msr:block msr:w-full" }), n = X("select", {
|
|
22357
22475
|
class: Hh,
|
|
22358
22476
|
onPointerDown: (e) => e.stopPropagation(),
|
|
@@ -22364,7 +22482,7 @@ var gw = "#FF0000", _w = .1, vw = /* @__PURE__ */ new Set([
|
|
|
22364
22482
|
}), ({ e, t }, r) => {
|
|
22365
22483
|
e !== r?.e && $(n, "aria-label", e, r?.e), t !== r?.t && $(n, "value", t, r?.t);
|
|
22366
22484
|
}), t;
|
|
22367
|
-
})(),
|
|
22485
|
+
})(), Nw = (e) => {
|
|
22368
22486
|
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) => {
|
|
22369
22487
|
let n = Number(t.replace(/[^\d.-]/g, ""));
|
|
22370
22488
|
if (!Number.isFinite(n)) {
|
|
@@ -22405,7 +22523,7 @@ var gw = "#FF0000", _w = .1, vw = /* @__PURE__ */ new Set([
|
|
|
22405
22523
|
e !== n?.e && $(a, "aria-label", e, n?.e), t !== n?.t && $(a, "value", t, n?.t);
|
|
22406
22524
|
}), a;
|
|
22407
22525
|
} });
|
|
22408
|
-
},
|
|
22526
|
+
}, Pw = (e) => e === "rows" || e === "grid" ? e : "columns", Fw = (e) => e === "min" || e === "center" || e === "max" ? e : "stretch", Iw = (e) => {
|
|
22409
22527
|
let t = mo(() => e.guide.kind === "rows" ? {
|
|
22410
22528
|
stretch: "Stretch",
|
|
22411
22529
|
min: "Top",
|
|
@@ -22422,13 +22540,13 @@ var gw = "#FF0000", _w = .1, vw = /* @__PURE__ */ new Set([
|
|
|
22422
22540
|
"aria-label": "Back to layout guides",
|
|
22423
22541
|
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"
|
|
22424
22542
|
});
|
|
22425
|
-
return Z(r, i), Z(i, a), Q(i, Y(
|
|
22543
|
+
return Z(r, i), Z(i, a), Q(i, Y(Mw, {
|
|
22426
22544
|
label: "Layout guide type",
|
|
22427
22545
|
get value() {
|
|
22428
22546
|
return e.guide.kind;
|
|
22429
22547
|
},
|
|
22430
22548
|
onChange: (t) => {
|
|
22431
|
-
let n =
|
|
22549
|
+
let n = Pw(t);
|
|
22432
22550
|
e.onUpdate({
|
|
22433
22551
|
kind: n,
|
|
22434
22552
|
align: n === "grid" ? "min" : e.guide.align === "stretch" || n === e.guide.kind ? e.guide.align : "stretch"
|
|
@@ -22450,15 +22568,15 @@ var gw = "#FF0000", _w = .1, vw = /* @__PURE__ */ new Set([
|
|
|
22450
22568
|
})()
|
|
22451
22569
|
];
|
|
22452
22570
|
}
|
|
22453
|
-
}), a), Q(a, Y(
|
|
22571
|
+
}), a), Q(a, Y(Ow, {})), Q(r, Y(q, {
|
|
22454
22572
|
get when() {
|
|
22455
22573
|
return e.guide.kind !== "grid";
|
|
22456
22574
|
},
|
|
22457
22575
|
get children() {
|
|
22458
|
-
return Y(
|
|
22576
|
+
return Y(jw, {
|
|
22459
22577
|
label: "Count",
|
|
22460
22578
|
get children() {
|
|
22461
|
-
return Y(
|
|
22579
|
+
return Y(Nw, {
|
|
22462
22580
|
label: "Count",
|
|
22463
22581
|
get value() {
|
|
22464
22582
|
return e.guide.count;
|
|
@@ -22472,14 +22590,14 @@ var gw = "#FF0000", _w = .1, vw = /* @__PURE__ */ new Set([
|
|
|
22472
22590
|
}
|
|
22473
22591
|
}), null), Q(r, Y(Gh, {
|
|
22474
22592
|
label: "Color",
|
|
22475
|
-
columns:
|
|
22593
|
+
columns: Aw,
|
|
22476
22594
|
get value() {
|
|
22477
22595
|
return Rc({
|
|
22478
22596
|
...Ic(e.guide.color) ?? Ic("#FF0000"),
|
|
22479
22597
|
alpha: e.guide.opacity
|
|
22480
22598
|
});
|
|
22481
22599
|
},
|
|
22482
|
-
fallback:
|
|
22600
|
+
fallback: yw,
|
|
22483
22601
|
get ownerWindow() {
|
|
22484
22602
|
return e.ownerWindow;
|
|
22485
22603
|
},
|
|
@@ -22498,15 +22616,15 @@ var gw = "#FF0000", _w = .1, vw = /* @__PURE__ */ new Set([
|
|
|
22498
22616
|
return e.guide.kind !== "grid";
|
|
22499
22617
|
},
|
|
22500
22618
|
get children() {
|
|
22501
|
-
return Y(
|
|
22619
|
+
return Y(jw, {
|
|
22502
22620
|
label: "Type",
|
|
22503
22621
|
get children() {
|
|
22504
|
-
return Y(
|
|
22622
|
+
return Y(Mw, {
|
|
22505
22623
|
label: "Alignment",
|
|
22506
22624
|
get value() {
|
|
22507
22625
|
return e.guide.align;
|
|
22508
22626
|
},
|
|
22509
|
-
onChange: (t) => e.onUpdate({ align:
|
|
22627
|
+
onChange: (t) => e.onUpdate({ align: Fw(t) }),
|
|
22510
22628
|
get children() {
|
|
22511
22629
|
return Y(xo, {
|
|
22512
22630
|
each: [
|
|
@@ -22530,12 +22648,12 @@ var gw = "#FF0000", _w = .1, vw = /* @__PURE__ */ new Set([
|
|
|
22530
22648
|
return e.guide.kind === "grid" || e.guide.align !== "stretch";
|
|
22531
22649
|
},
|
|
22532
22650
|
get children() {
|
|
22533
|
-
return Y(
|
|
22651
|
+
return Y(jw, {
|
|
22534
22652
|
get label() {
|
|
22535
22653
|
return n();
|
|
22536
22654
|
},
|
|
22537
22655
|
get children() {
|
|
22538
|
-
return Y(
|
|
22656
|
+
return Y(Nw, {
|
|
22539
22657
|
get label() {
|
|
22540
22658
|
return n();
|
|
22541
22659
|
},
|
|
@@ -22554,10 +22672,10 @@ var gw = "#FF0000", _w = .1, vw = /* @__PURE__ */ new Set([
|
|
|
22554
22672
|
return e.guide.kind !== "grid";
|
|
22555
22673
|
},
|
|
22556
22674
|
get children() {
|
|
22557
|
-
return [Y(
|
|
22675
|
+
return [Y(jw, {
|
|
22558
22676
|
label: "Offset",
|
|
22559
22677
|
get children() {
|
|
22560
|
-
return Y(
|
|
22678
|
+
return Y(Nw, {
|
|
22561
22679
|
label: "Offset",
|
|
22562
22680
|
get value() {
|
|
22563
22681
|
return e.guide.offset;
|
|
@@ -22567,10 +22685,10 @@ var gw = "#FF0000", _w = .1, vw = /* @__PURE__ */ new Set([
|
|
|
22567
22685
|
onChange: (t) => e.onUpdate({ offset: t })
|
|
22568
22686
|
});
|
|
22569
22687
|
}
|
|
22570
|
-
}), Y(
|
|
22688
|
+
}), Y(jw, {
|
|
22571
22689
|
label: "Gutter",
|
|
22572
22690
|
get children() {
|
|
22573
|
-
return Y(
|
|
22691
|
+
return Y(Nw, {
|
|
22574
22692
|
label: "Gutter",
|
|
22575
22693
|
get value() {
|
|
22576
22694
|
return e.guide.gutter;
|
|
@@ -22586,7 +22704,7 @@ var gw = "#FF0000", _w = .1, vw = /* @__PURE__ */ new Set([
|
|
|
22586
22704
|
$(a, "onClick", e, t);
|
|
22587
22705
|
}), r;
|
|
22588
22706
|
};
|
|
22589
|
-
function
|
|
22707
|
+
function Lw(e) {
|
|
22590
22708
|
let [t, n] = K(null), r = mo(() => e.guides.find((e) => e.id === t()) ?? null);
|
|
22591
22709
|
var i = X("div", {
|
|
22592
22710
|
"data-mesurer-layout-guides-panel": "true",
|
|
@@ -22635,9 +22753,9 @@ function Pw(e) {
|
|
|
22635
22753
|
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",
|
|
22636
22754
|
onClick: () => e.onRemove(t.id)
|
|
22637
22755
|
});
|
|
22638
|
-
return Z(r, i), Z(r, s), Z(r, c), Z(i, a), Z(i, o), Q(a, Y(
|
|
22756
|
+
return Z(r, i), Z(r, s), Z(r, c), Z(i, a), Z(i, o), Q(a, Y(kw, { get kind() {
|
|
22639
22757
|
return t.kind;
|
|
22640
|
-
} })), Q(o, () =>
|
|
22758
|
+
} })), Q(o, () => Dw(t)), Q(i, Y(_g, {
|
|
22641
22759
|
size: 8,
|
|
22642
22760
|
class: "msr:block msr:-rotate-90 msr:text-ink-400"
|
|
22643
22761
|
}), null), Q(s, (() => {
|
|
@@ -22647,10 +22765,10 @@ function Pw(e) {
|
|
|
22647
22765
|
size: 10,
|
|
22648
22766
|
class: "msr:block"
|
|
22649
22767
|
})), J(() => ({
|
|
22650
|
-
e: t.visible ? `Hide ${
|
|
22768
|
+
e: t.visible ? `Hide ${Dw(t)}` : `Show ${Dw(t)}`,
|
|
22651
22769
|
t: t.visible ? "true" : "false",
|
|
22652
22770
|
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"}`,
|
|
22653
|
-
o: `Remove ${
|
|
22771
|
+
o: `Remove ${Dw(t)}`
|
|
22654
22772
|
}), ({ e, t, a: n, o: r }, i) => {
|
|
22655
22773
|
e !== i?.e && $(s, "aria-label", e, i?.e), t !== i?.t && $(s, "aria-pressed", t, i?.t), n !== i?.a && $(s, "class", n, i?.a), r !== i?.o && $(c, "aria-label", r, i?.o);
|
|
22656
22774
|
}), r;
|
|
@@ -22661,7 +22779,7 @@ function Pw(e) {
|
|
|
22661
22779
|
$(a, "onClick", e, t);
|
|
22662
22780
|
}), t;
|
|
22663
22781
|
},
|
|
22664
|
-
children: (t) => Y(
|
|
22782
|
+
children: (t) => Y(Iw, {
|
|
22665
22783
|
get guide() {
|
|
22666
22784
|
return t();
|
|
22667
22785
|
},
|
|
@@ -22673,56 +22791,56 @@ function Pw(e) {
|
|
|
22673
22791
|
})
|
|
22674
22792
|
})), i;
|
|
22675
22793
|
}
|
|
22676
|
-
var
|
|
22794
|
+
var Rw = "mesurer.layout-guides", zw = "layout-guides:v1", Bw = "mesurer.layout-guides.pages", Vw = "mesurer.layout-guides.active", Hw = "runtime:solid", Uw = "layout-guides.toggle", Ww = "layout-guides.add", Gw = "layout-guides.update", Kw = "layout-guides.remove", qw = "layout-guides.clear", Jw = 240, Yw = 8, Xw = 8, Zw = () => ({ pages: {} }), Qw = (e, t) => e.pages[t] ?? [], $w = (e) => typeof e == "object" && !!e && !Array.isArray(e), eT = (e) => typeof e == "string", tT = (e) => typeof e == "boolean", nT = (e) => typeof e == "number", rT = (e) => e === "columns" || e === "rows" || e === "grid", iT = (e) => e === "stretch" || e === "min" || e === "center" || e === "max", aT = (e) => ({ ...e }), oT = (e) => e.map(aT), sT = (e) => $w(e) ? e : null, cT = (e) => {
|
|
22677
22795
|
if (!e) return {};
|
|
22678
22796
|
let t = {};
|
|
22679
|
-
return
|
|
22680
|
-
},
|
|
22797
|
+
return eT(e.id) && (t.id = e.id), rT(e.kind) && (t.kind = e.kind), tT(e.visible) && (t.visible = e.visible), eT(e.color) && (t.color = e.color), nT(e.opacity) && (t.opacity = e.opacity), nT(e.count) && (t.count = e.count), nT(e.size) && (t.size = e.size), nT(e.gutter) && (t.gutter = e.gutter), nT(e.offset) && (t.offset = e.offset), iT(e.align) && (t.align = e.align), t;
|
|
22798
|
+
}, lT = (e) => {
|
|
22681
22799
|
let t = {};
|
|
22682
22800
|
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;
|
|
22683
|
-
},
|
|
22801
|
+
}, uT = {
|
|
22684
22802
|
viewBox: "0 0 256 256",
|
|
22685
22803
|
paths: ["M48 48h160v8H48zM48 200h160v8H48zM48 56h8v144h-8zM200 56h8v144h-8z", "M101 56h8v144h-8zM147 56h8v144h-8z"]
|
|
22686
|
-
},
|
|
22687
|
-
id:
|
|
22804
|
+
}, dT = () => kc({
|
|
22805
|
+
id: Rw,
|
|
22688
22806
|
version: "0.1.0",
|
|
22689
|
-
requires: [
|
|
22690
|
-
provides: [
|
|
22807
|
+
requires: [Hw],
|
|
22808
|
+
provides: [zw, "tool:layout-guides"],
|
|
22691
22809
|
setup(e) {
|
|
22692
|
-
let t = e.service.get(
|
|
22810
|
+
let t = e.service.get(Hw);
|
|
22693
22811
|
if (!t) throw Error("Layout Guides requires the Solid renderer runtime.");
|
|
22694
22812
|
let n = t.rendererRoot;
|
|
22695
22813
|
if (!n) throw Error("Layout Guides requires a mounted renderer root.");
|
|
22696
22814
|
e.state.register({
|
|
22697
|
-
id:
|
|
22698
|
-
initial:
|
|
22815
|
+
id: Bw,
|
|
22816
|
+
initial: Zw(),
|
|
22699
22817
|
history: !0,
|
|
22700
22818
|
persist: !0
|
|
22701
22819
|
}), e.state.register({
|
|
22702
|
-
id:
|
|
22820
|
+
id: Vw,
|
|
22703
22821
|
initial: !1
|
|
22704
22822
|
});
|
|
22705
|
-
let r = Ul(t.ownerWindow), i = !1, [a, o] = K(0), s = /* @__PURE__ */ new Set(), c = 0, l = () => e.state.get("mesurer.layout-guides.pages") ??
|
|
22706
|
-
e.state.update(
|
|
22823
|
+
let r = Ul(t.ownerWindow), i = !1, [a, o] = K(0), s = /* @__PURE__ */ new Set(), c = 0, l = () => e.state.get("mesurer.layout-guides.pages") ?? Zw(), u = () => e.state.get("mesurer.layout-guides.active") ?? !1, d = () => Ew(Qw(l(), r)), f = () => (a(), u() ? d() : []), p = (t) => {
|
|
22824
|
+
e.state.update(Vw, () => t);
|
|
22707
22825
|
}, m = (t) => {
|
|
22708
|
-
e.state.update(
|
|
22826
|
+
e.state.update(Bw, (e) => ({
|
|
22709
22827
|
...e,
|
|
22710
22828
|
pages: {
|
|
22711
22829
|
...e.pages,
|
|
22712
|
-
[r]:
|
|
22830
|
+
[r]: oT(t(Ew(e.pages[r])))
|
|
22713
22831
|
}
|
|
22714
22832
|
}));
|
|
22715
22833
|
};
|
|
22716
|
-
e.command.register(
|
|
22834
|
+
e.command.register(Uw, () => {
|
|
22717
22835
|
let e = !u();
|
|
22718
|
-
return e && d().length === 0 && m(() => [
|
|
22719
|
-
}), e.command.register(
|
|
22720
|
-
let t =
|
|
22836
|
+
return e && d().length === 0 && m(() => [Tw()]), i = e, p(e), u();
|
|
22837
|
+
}), e.command.register(Ww, (e) => {
|
|
22838
|
+
let t = Tw(cT(sT(e)));
|
|
22721
22839
|
return m((e) => [...e, t]), { ...t };
|
|
22722
|
-
}), e.command.register(
|
|
22723
|
-
let t =
|
|
22840
|
+
}), e.command.register(Gw, (e) => {
|
|
22841
|
+
let t = sT(e), n = t && eT(t.id) ? t.id : null, r = cT(sT(t?.patch));
|
|
22724
22842
|
if (!n) throw Error("layout-guides.update requires a guide id.");
|
|
22725
|
-
m((e) => e.map((e) => e.id === n ?
|
|
22843
|
+
m((e) => e.map((e) => e.id === n ? Tw({
|
|
22726
22844
|
...e,
|
|
22727
22845
|
...r,
|
|
22728
22846
|
id: e.id
|
|
@@ -22730,30 +22848,30 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
22730
22848
|
let i = d().find((e) => e.id === n);
|
|
22731
22849
|
if (!i) throw Error(`Layout guide not found: ${n}`);
|
|
22732
22850
|
return { ...i };
|
|
22733
|
-
}), e.command.register(
|
|
22734
|
-
let t =
|
|
22851
|
+
}), e.command.register(Kw, (e) => {
|
|
22852
|
+
let t = sT(e), n = t && eT(t.id) ? t.id : null;
|
|
22735
22853
|
if (!n) throw Error("layout-guides.remove requires a guide id.");
|
|
22736
22854
|
let r = d().length;
|
|
22737
22855
|
return m((e) => e.filter((e) => e.id !== n)), d().length !== r;
|
|
22738
|
-
}), e.command.register(
|
|
22856
|
+
}), e.command.register(qw, () => {
|
|
22739
22857
|
m(() => []);
|
|
22740
22858
|
});
|
|
22741
22859
|
let h = async (t, n) => {
|
|
22742
|
-
let r =
|
|
22860
|
+
let r = sT(await e.command.execute(t, n));
|
|
22743
22861
|
if (!r) throw Error(`${t} did not return a layout guide.`);
|
|
22744
|
-
return
|
|
22862
|
+
return Tw(cT(r));
|
|
22745
22863
|
}, g = {
|
|
22746
22864
|
list: () => d().map((e) => ({ ...e })),
|
|
22747
|
-
add: (e = {}) => h(
|
|
22748
|
-
update: (e, t) => h(
|
|
22865
|
+
add: (e = {}) => h(Ww, lT(e)),
|
|
22866
|
+
update: (e, t) => h(Gw, {
|
|
22749
22867
|
id: e,
|
|
22750
|
-
patch:
|
|
22868
|
+
patch: lT(t)
|
|
22751
22869
|
}),
|
|
22752
22870
|
async remove(t) {
|
|
22753
|
-
return await e.command.execute(
|
|
22871
|
+
return await e.command.execute(Kw, { id: t }) === !0;
|
|
22754
22872
|
},
|
|
22755
22873
|
async clear() {
|
|
22756
|
-
await e.command.execute(
|
|
22874
|
+
await e.command.execute(qw);
|
|
22757
22875
|
},
|
|
22758
22876
|
subscribe(e) {
|
|
22759
22877
|
s.add(e);
|
|
@@ -22763,27 +22881,27 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
22763
22881
|
};
|
|
22764
22882
|
}
|
|
22765
22883
|
};
|
|
22766
|
-
e.service.provide(
|
|
22884
|
+
e.service.provide(zw, g), e.tool.register({
|
|
22767
22885
|
id: "layout-guides",
|
|
22768
22886
|
label: "Layout guides",
|
|
22769
22887
|
shortcut: "L",
|
|
22770
|
-
command:
|
|
22888
|
+
command: Uw,
|
|
22771
22889
|
order: 38,
|
|
22772
22890
|
toolbarMode: "always",
|
|
22773
22891
|
compactPinned: !0,
|
|
22774
|
-
icon:
|
|
22892
|
+
icon: uT,
|
|
22775
22893
|
active: u
|
|
22776
22894
|
});
|
|
22777
22895
|
let _ = t.ownerDocument.createElement("div");
|
|
22778
22896
|
_.dataset.mesurerLayoutGuidesRoot = "true", _.dataset.mesurerLayer = "evidence", _.style.position = "absolute", _.style.inset = "0", _.style.pointerEvents = "none", n.prepend(_);
|
|
22779
|
-
let v = rc(() => Y(
|
|
22897
|
+
let v = rc(() => Y(vw, { get guides() {
|
|
22780
22898
|
return f();
|
|
22781
22899
|
} }), _), y = t.createInspectorMount();
|
|
22782
22900
|
y.element.dataset.mesurerLayoutGuidesPanelRoot = "true", Object.assign(y.element.style, {
|
|
22783
22901
|
position: "fixed",
|
|
22784
22902
|
left: "0",
|
|
22785
22903
|
top: "0",
|
|
22786
|
-
width: `${
|
|
22904
|
+
width: `${Jw}px`,
|
|
22787
22905
|
zIndex: "100",
|
|
22788
22906
|
pointerEvents: "none",
|
|
22789
22907
|
display: "none"
|
|
@@ -22792,13 +22910,13 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
22792
22910
|
if (c = 0, !i) return;
|
|
22793
22911
|
let e = t.portalTarget.querySelector("[data-mesurer-tool-id='layout-guides']");
|
|
22794
22912
|
if (!e) return;
|
|
22795
|
-
let n = e.getBoundingClientRect(), r = Math.min(Math.max(
|
|
22913
|
+
let n = e.getBoundingClientRect(), r = Math.min(Math.max(Xw, n.right - Jw), Math.max(Xw, t.ownerWindow.innerWidth - Jw - Xw)), a = t.ownerWindow.innerHeight - n.bottom - Yw - Xw, o = Math.min(320, t.ownerWindow.innerHeight - 16), s = a >= Math.min(o, 320) ? n.bottom + Yw : Math.max(Xw, n.top - Yw - o);
|
|
22796
22914
|
y.element.style.left = `${r}px`, y.element.style.top = `${s}px`;
|
|
22797
22915
|
}, x = () => {
|
|
22798
22916
|
c ||= t.ownerWindow.requestAnimationFrame(b);
|
|
22799
22917
|
}, S = () => {
|
|
22800
22918
|
y.element.style.display = i ? "block" : "none", i && x();
|
|
22801
|
-
}, C = rc(() => Y(
|
|
22919
|
+
}, C = rc(() => Y(Lw, {
|
|
22802
22920
|
get guides() {
|
|
22803
22921
|
return f();
|
|
22804
22922
|
},
|
|
@@ -22833,11 +22951,11 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
22833
22951
|
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();
|
|
22834
22952
|
});
|
|
22835
22953
|
}
|
|
22836
|
-
}),
|
|
22954
|
+
}), fT = "mesurer:recording-bridge-ping", pT = "mesurer:recording-bridge-request", mT = "mesurer:recording-bridge-response", hT = "position:fixed;left:0;top:0;width:1px;height:1px;margin:0;padding:0;border:0;overflow:hidden;opacity:0;visibility:hidden;pointer-events:none", gT = .01, _T = (e) => ({
|
|
22837
22955
|
width: e.innerWidth,
|
|
22838
22956
|
height: e.innerHeight
|
|
22839
|
-
}),
|
|
22840
|
-
let i = Math.max(1, r.width), a = Math.max(1, r.height), o = t / i, s = n / a, c = Math.abs(o - s) <=
|
|
22957
|
+
}), vT = (e, t, n, r) => {
|
|
22958
|
+
let i = Math.max(1, r.width), a = Math.max(1, r.height), o = t / i, s = n / a, c = Math.abs(o - s) <= gT * Math.max(o, s), l = c ? o : Math.min(o, s), u = c ? 0 : (t - i * l) / 2, d = c ? 0 : (n - a * l) / 2, f = c ? o : l, p = c ? s : l, m = u + e.left * f, h = d + e.top * p, g = u + (e.left + e.width) * f, _ = d + (e.top + e.height) * p, v = Math.max(g - m, 1e-6), y = Math.max(_ - h, 1e-6), b = Math.max(0, Math.min(t, m)), x = Math.max(0, Math.min(n, h)), S = Math.max(0, Math.min(t, g)), C = Math.max(0, Math.min(n, _)), w = Math.max(0, Math.round(b)), T = Math.max(0, Math.round(x)), E = Math.min(t, Math.round(S)), D = Math.min(n, Math.round(C));
|
|
22841
22959
|
return {
|
|
22842
22960
|
sx: w,
|
|
22843
22961
|
sy: T,
|
|
@@ -22848,15 +22966,15 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
22848
22966
|
dw: Math.max(0, S - b) / v,
|
|
22849
22967
|
dh: Math.max(0, C - x) / y
|
|
22850
22968
|
};
|
|
22851
|
-
},
|
|
22969
|
+
}, yT = (e, t) => {
|
|
22852
22970
|
let n = e.createElement("div");
|
|
22853
22971
|
return n.dataset.mesurerRecordingCrop = "true", n.setAttribute("aria-hidden", "true"), n.style.position = "fixed", n.style.left = `${t.left}px`, n.style.top = `${t.top}px`, n.style.width = `${t.width}px`, n.style.height = `${t.height}px`, n.style.margin = "0", n.style.padding = "0", n.style.border = "0", n.style.background = "transparent", n.style.opacity = "0", n.style.pointerEvents = "none", e.body.append(n), n;
|
|
22854
|
-
},
|
|
22972
|
+
}, bT = async (e, t) => {
|
|
22855
22973
|
let n = e.cropTo, r = globalThis.CropTarget;
|
|
22856
22974
|
if (!n || !r) return !1;
|
|
22857
22975
|
let i = await r.fromElement(t);
|
|
22858
22976
|
return await n.call(e, i), !0;
|
|
22859
|
-
},
|
|
22977
|
+
}, xT = (e, t) => new Promise((n) => {
|
|
22860
22978
|
let r = !1, i = () => {
|
|
22861
22979
|
r || (r = !0, t.clearTimeout(a), n());
|
|
22862
22980
|
}, a = t.setTimeout(i, 250), o = e;
|
|
@@ -22865,20 +22983,20 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
22865
22983
|
return;
|
|
22866
22984
|
}
|
|
22867
22985
|
t.requestAnimationFrame(i);
|
|
22868
|
-
}),
|
|
22986
|
+
}), ST = (e) => e.location.origin === "null" ? "*" : e.location.origin, CT = (e, t, n = "") => `${e}:${t}:${n}`, wT = (e, t, n) => {
|
|
22869
22987
|
let r = `${t}:${n}:`;
|
|
22870
22988
|
return e.startsWith(r) ? e.slice(r.length) : null;
|
|
22871
|
-
},
|
|
22872
|
-
let n =
|
|
22873
|
-
o.source === e && o.origin === r &&
|
|
22989
|
+
}, TT = (e) => e.crypto?.randomUUID?.() ?? `mesurer-recording-${Date.now()}-${Math.random().toString(36).slice(2)}`, ET = (e) => new Promise((t) => {
|
|
22990
|
+
let n = TT(e), r = e.location.origin, i = (o) => {
|
|
22991
|
+
o.source === e && o.origin === r && wT(String(o.data ?? ""), "mesurer:recording-bridge-pong", n) !== null && (e.removeEventListener("message", i), e.clearTimeout(a), t(!0));
|
|
22874
22992
|
}, a = e.setTimeout(() => {
|
|
22875
22993
|
e.removeEventListener("message", i), t(!1);
|
|
22876
22994
|
}, 80);
|
|
22877
|
-
e.addEventListener("message", i), e.postMessage(
|
|
22878
|
-
}),
|
|
22879
|
-
let n =
|
|
22995
|
+
e.addEventListener("message", i), e.postMessage(CT(fT, n), ST(e));
|
|
22996
|
+
}), DT = (e) => new Promise((t) => {
|
|
22997
|
+
let n = TT(e), r = e.location.origin, i = (o) => {
|
|
22880
22998
|
if (o.source !== e || o.origin !== r) return;
|
|
22881
|
-
let s =
|
|
22999
|
+
let s = wT(String(o.data ?? ""), mT, n);
|
|
22882
23000
|
if (s !== null) {
|
|
22883
23001
|
if (e.removeEventListener("message", i), e.clearTimeout(a), !s.startsWith("ok:")) {
|
|
22884
23002
|
t(null);
|
|
@@ -22889,9 +23007,9 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
22889
23007
|
}, a = e.setTimeout(() => {
|
|
22890
23008
|
e.removeEventListener("message", i), t(null);
|
|
22891
23009
|
}, 1500);
|
|
22892
|
-
e.addEventListener("message", i), e.postMessage(
|
|
22893
|
-
}),
|
|
22894
|
-
let n =
|
|
23010
|
+
e.addEventListener("message", i), e.postMessage(CT(pT, n), ST(e));
|
|
23011
|
+
}), OT = (e) => e.__MESURER_RECORDING_HOST__?.captureRecordingStream ?? e.__MESURER_HOST__?.captureRecordingStream, kT = async (e, t) => {
|
|
23012
|
+
let n = OT(e);
|
|
22895
23013
|
if (!n) throw Error("Native recording capture is unavailable.");
|
|
22896
23014
|
let r = (await n())?.streamId?.trim();
|
|
22897
23015
|
if (!r) throw Error("Native recording capture returned no stream id.");
|
|
@@ -22903,9 +23021,9 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
22903
23021
|
audio: !1,
|
|
22904
23022
|
video: i
|
|
22905
23023
|
});
|
|
22906
|
-
},
|
|
22907
|
-
if (!e.isSecureContext || !await
|
|
22908
|
-
let n = await
|
|
23024
|
+
}, AT = async (e, t) => {
|
|
23025
|
+
if (!e.isSecureContext || !await ET(e)) return null;
|
|
23026
|
+
let n = await DT(e);
|
|
22909
23027
|
if (!n) return null;
|
|
22910
23028
|
let r = { mandatory: {
|
|
22911
23029
|
chromeMediaSource: "tab",
|
|
@@ -22915,7 +23033,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
22915
23033
|
audio: !1,
|
|
22916
23034
|
video: r
|
|
22917
23035
|
});
|
|
22918
|
-
},
|
|
23036
|
+
}, jT = async (e, t) => {
|
|
22919
23037
|
let n = e.getVideoTracks()[0];
|
|
22920
23038
|
if (!n?.applyConstraints) return e;
|
|
22921
23039
|
try {
|
|
@@ -22925,13 +23043,13 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
22925
23043
|
} });
|
|
22926
23044
|
} catch {}
|
|
22927
23045
|
return e;
|
|
22928
|
-
},
|
|
23046
|
+
}, MT = async (e, t) => {
|
|
22929
23047
|
let n = e.navigator.mediaDevices;
|
|
22930
23048
|
if (!n) throw Error("Screen recording is unavailable in this browser.");
|
|
22931
|
-
if (
|
|
23049
|
+
if (OT(e)) return jT(await kT(e, n), t);
|
|
22932
23050
|
try {
|
|
22933
|
-
let r = await
|
|
22934
|
-
if (r) return
|
|
23051
|
+
let r = await AT(e, n);
|
|
23052
|
+
if (r) return jT(r, t);
|
|
22935
23053
|
} catch {}
|
|
22936
23054
|
if (!n.getDisplayMedia) throw Error("Screen recording is unavailable in this browser.");
|
|
22937
23055
|
let r = {
|
|
@@ -22947,33 +23065,33 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
22947
23065
|
selfBrowserSurface: "include"
|
|
22948
23066
|
};
|
|
22949
23067
|
try {
|
|
22950
|
-
return
|
|
23068
|
+
return jT(await n.getDisplayMedia(i), t);
|
|
22951
23069
|
} catch (e) {
|
|
22952
23070
|
if (e instanceof DOMException && e.name === "AbortError") throw e;
|
|
22953
|
-
return
|
|
23071
|
+
return jT(await n.getDisplayMedia({
|
|
22954
23072
|
audio: !1,
|
|
22955
23073
|
video: { frameRate: r }
|
|
22956
23074
|
}), t);
|
|
22957
23075
|
}
|
|
22958
|
-
},
|
|
22959
|
-
let i = await
|
|
23076
|
+
}, NT = async (e, t, n, r = 60) => {
|
|
23077
|
+
let i = await MT(t, r), a = i.getVideoTracks()[0];
|
|
22960
23078
|
if (!a) throw i.getTracks().forEach((e) => e.stop()), Error("No video track was selected.");
|
|
22961
23079
|
if (a.getSettings().displaySurface && a.getSettings().displaySurface !== "browser") throw i.getTracks().forEach((e) => e.stop()), Error("Select the current browser tab to record this region.");
|
|
22962
23080
|
let o = e.createElement("video");
|
|
22963
|
-
o.autoplay = !0, o.muted = !0, o.playsInline = !0, o.srcObject = i, o.setAttribute("playsinline", ""), o.setAttribute("aria-hidden", "true"), o.style.cssText =
|
|
23081
|
+
o.autoplay = !0, o.muted = !0, o.playsInline = !0, o.srcObject = i, o.setAttribute("playsinline", ""), o.setAttribute("aria-hidden", "true"), o.style.cssText = hT, e.body.append(o);
|
|
22964
23082
|
try {
|
|
22965
23083
|
await o.play(), (o.videoWidth <= 0 || o.videoHeight <= 0) && await new Promise((e, t) => {
|
|
22966
23084
|
o.addEventListener("loadeddata", () => e(), { once: !0 }), o.addEventListener("error", () => t(/* @__PURE__ */ Error("Could not read the selected video track.")), { once: !0 });
|
|
22967
23085
|
});
|
|
22968
|
-
let r =
|
|
23086
|
+
let r = yT(e, n), s = !1;
|
|
22969
23087
|
try {
|
|
22970
|
-
s = await
|
|
23088
|
+
s = await bT(a, r);
|
|
22971
23089
|
} catch {
|
|
22972
23090
|
s = !1;
|
|
22973
23091
|
}
|
|
22974
|
-
s || r.remove(), await
|
|
22975
|
-
let c = t.devicePixelRatio || 1, l =
|
|
22976
|
-
u.width = s ? Math.max(2, Math.round(n.width * c)) : l.sw, u.height = s ? Math.max(2, Math.round(n.height * c)) : l.sh, u.setAttribute("aria-hidden", "true"), u.style.cssText =
|
|
23092
|
+
s || r.remove(), await xT(o, t);
|
|
23093
|
+
let c = t.devicePixelRatio || 1, l = vT(n, o.videoWidth, o.videoHeight, _T(t)), u = e.createElement("canvas");
|
|
23094
|
+
u.width = s ? Math.max(2, Math.round(n.width * c)) : l.sw, u.height = s ? Math.max(2, Math.round(n.height * c)) : l.sh, u.setAttribute("aria-hidden", "true"), u.style.cssText = hT, e.body.append(u);
|
|
22977
23095
|
let d = u.getContext("2d", { alpha: !1 });
|
|
22978
23096
|
if (!d) throw u.remove(), Error("Screen recording requires a 2D canvas.");
|
|
22979
23097
|
let f = {
|
|
@@ -22985,32 +23103,32 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
22985
23103
|
cropTarget: s ? r : null,
|
|
22986
23104
|
regionLocked: s
|
|
22987
23105
|
};
|
|
22988
|
-
return
|
|
23106
|
+
return PT(f, n, _T(t)), f;
|
|
22989
23107
|
} catch (e) {
|
|
22990
23108
|
throw o.pause(), o.srcObject = null, o.remove(), i.getTracks().forEach((e) => e.stop()), e;
|
|
22991
23109
|
}
|
|
22992
|
-
},
|
|
23110
|
+
}, PT = (e, t, n) => {
|
|
22993
23111
|
let { source: r, canvas: i, context: a, regionLocked: o } = e;
|
|
22994
23112
|
if (r.videoWidth <= 0 || r.videoHeight <= 0) return;
|
|
22995
23113
|
if (o) {
|
|
22996
23114
|
a.drawImage(r, 0, 0, i.width, i.height);
|
|
22997
23115
|
return;
|
|
22998
23116
|
}
|
|
22999
|
-
let s =
|
|
23117
|
+
let s = vT(t, r.videoWidth, r.videoHeight, n), c = s.dx <= .001 && s.dy <= .001 && s.dw >= .999 && s.dh >= .999, l = c ? 0 : s.dx * i.width, u = c ? 0 : s.dy * i.height, d = c ? i.width : s.dw * i.width, f = c ? i.height : s.dh * i.height;
|
|
23000
23118
|
c || (a.fillStyle = "#000", a.fillRect(0, 0, i.width, i.height)), !(d < 1 || f < 1 || s.dw <= 0 || s.dh <= 0) && a.drawImage(r, s.sx, s.sy, s.sw, s.sh, l, u, d, f);
|
|
23001
|
-
},
|
|
23119
|
+
}, FT = (e) => {
|
|
23002
23120
|
e.source.pause(), e.source.srcObject = null, e.stream.getTracks().forEach((e) => e.stop()), e.cropTarget?.remove(), e.canvas.remove(), e.source.remove();
|
|
23003
|
-
},
|
|
23121
|
+
}, IT = {
|
|
23004
23122
|
webm: "video/webm",
|
|
23005
23123
|
mp4: "video/mp4"
|
|
23006
|
-
},
|
|
23007
|
-
let r = Math.max(2, Math.round(
|
|
23124
|
+
}, LT = ["vp9", "vp8"], RT = ["avc"], zT = (e) => new c(e), BT = (e, t) => Number.isFinite(e) && e > 0 ? e : t, VT = (e, t, n) => {
|
|
23125
|
+
let r = Math.max(2, Math.round(BT(e, 2))), i = Math.max(2, Math.round(BT(t, 2)));
|
|
23008
23126
|
return n === "mp4" && (r % 2 != 0 && (r += 1), i % 2 != 0 && (i += 1)), {
|
|
23009
23127
|
width: r,
|
|
23010
23128
|
height: i
|
|
23011
23129
|
};
|
|
23012
|
-
},
|
|
23013
|
-
let n = Math.max(.001,
|
|
23130
|
+
}, HT = (e, t = {}) => {
|
|
23131
|
+
let n = Math.max(.001, BT(e.duration, .001)), r = Math.min(n, Math.max(0, Number.isFinite(t.startTime) ? t.startTime ?? 0 : 0)), i = Number.isFinite(t.endTime) ? t.endTime ?? n : n, a = Math.min(n, Math.max(r + .001, i));
|
|
23014
23132
|
return {
|
|
23015
23133
|
format: t.format ?? "webm",
|
|
23016
23134
|
startTime: r,
|
|
@@ -23018,33 +23136,33 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23018
23136
|
scale: t.scale ?? 1,
|
|
23019
23137
|
quality: t.quality ?? "medium"
|
|
23020
23138
|
};
|
|
23021
|
-
},
|
|
23022
|
-
let a =
|
|
23023
|
-
for (let t of
|
|
23139
|
+
}, UT = (e) => e === "webm" ? LT : RT, WT = async (e, t, n, r, i = "medium") => {
|
|
23140
|
+
let a = VT(t, n, e), o = zT(i);
|
|
23141
|
+
for (let t of UT(e)) if (await u(t, {
|
|
23024
23142
|
width: a.width,
|
|
23025
23143
|
height: a.height,
|
|
23026
23144
|
frameRate: r,
|
|
23027
23145
|
quality: o
|
|
23028
23146
|
})) return t;
|
|
23029
23147
|
return null;
|
|
23030
|
-
},
|
|
23148
|
+
}, GT = async (e, t, n = 30) => {
|
|
23031
23149
|
let r = [];
|
|
23032
|
-
return await
|
|
23033
|
-
},
|
|
23034
|
-
let i = t.format ?? "webm", a = Math.max(1, Math.min(120, Math.round(t.frameRate ?? 30))), o = t.quality ?? "medium", c = e.width, l = e.height, u = await
|
|
23150
|
+
return await WT("webm", e, t, n) && r.push("webm"), await WT("mp4", e, t, n) && r.push("mp4"), r;
|
|
23151
|
+
}, KT = (e) => e === "webm" ? new l() : new o(), qT = async (e, t = {}) => {
|
|
23152
|
+
let i = t.format ?? "webm", a = Math.max(1, Math.min(120, Math.round(t.frameRate ?? 30))), o = t.quality ?? "medium", c = e.width, l = e.height, u = await WT(i, c, l, a, o);
|
|
23035
23153
|
if (!u) throw Error(`MediaBunny cannot encode ${i.toUpperCase()} at ${c}×${l} in this runtime.`);
|
|
23036
23154
|
let d = new n(), f = new s({
|
|
23037
|
-
format:
|
|
23155
|
+
format: KT(i),
|
|
23038
23156
|
target: d
|
|
23039
23157
|
}), p = new r(e, {
|
|
23040
23158
|
codec: u,
|
|
23041
|
-
quality:
|
|
23159
|
+
quality: zT(o)
|
|
23042
23160
|
});
|
|
23043
23161
|
f.addVideoTrack(p, { frameRate: a }), await f.start();
|
|
23044
23162
|
let m = !1, h = -1;
|
|
23045
23163
|
return {
|
|
23046
23164
|
format: i,
|
|
23047
|
-
mimeType:
|
|
23165
|
+
mimeType: IT[i],
|
|
23048
23166
|
codec: u,
|
|
23049
23167
|
async addFrame(e, t = 1 / a) {
|
|
23050
23168
|
if (m) throw Error("Recording session is already closed.");
|
|
@@ -23056,7 +23174,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23056
23174
|
finalize: async () => {
|
|
23057
23175
|
if (m) throw Error("Recording session is already closed.");
|
|
23058
23176
|
if (m = !0, p.close(), await f.finalize(), !d.buffer || d.buffer.byteLength === 0) throw Error("MediaBunny produced an empty recording.");
|
|
23059
|
-
return new Blob([d.buffer], { type:
|
|
23177
|
+
return new Blob([d.buffer], { type: IT[i] });
|
|
23060
23178
|
},
|
|
23061
23179
|
async cancel() {
|
|
23062
23180
|
if (!m) {
|
|
@@ -23067,7 +23185,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23067
23185
|
}
|
|
23068
23186
|
}
|
|
23069
23187
|
};
|
|
23070
|
-
},
|
|
23188
|
+
}, JT = async (n) => {
|
|
23071
23189
|
let r = new a({
|
|
23072
23190
|
source: new t(n),
|
|
23073
23191
|
formats: e
|
|
@@ -23089,14 +23207,14 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23089
23207
|
} finally {
|
|
23090
23208
|
r.dispose();
|
|
23091
23209
|
}
|
|
23092
|
-
},
|
|
23093
|
-
let c = await
|
|
23210
|
+
}, YT = async (r, o = {}) => {
|
|
23211
|
+
let c = await JT(r), l = HT(c, o), u = VT(c.width * l.scale, c.height * l.scale, l.format), d = await WT(l.format, u.width, u.height, 30, l.quality);
|
|
23094
23212
|
if (!d) throw Error(`MediaBunny cannot export ${l.format.toUpperCase()} in this runtime.`);
|
|
23095
23213
|
let f = new a({
|
|
23096
23214
|
source: new t(r),
|
|
23097
23215
|
formats: e
|
|
23098
23216
|
}), p = new n(), m = new s({
|
|
23099
|
-
format:
|
|
23217
|
+
format: KT(l.format),
|
|
23100
23218
|
target: p
|
|
23101
23219
|
});
|
|
23102
23220
|
try {
|
|
@@ -23112,14 +23230,14 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23112
23230
|
width: u.width,
|
|
23113
23231
|
height: u.height,
|
|
23114
23232
|
fit: "fill",
|
|
23115
|
-
quality:
|
|
23233
|
+
quality: zT(l.quality),
|
|
23116
23234
|
forceTranscode: !0
|
|
23117
23235
|
},
|
|
23118
23236
|
audio: { discard: !0 }
|
|
23119
23237
|
});
|
|
23120
23238
|
if (!e.isValid) throw Error(`MediaBunny cannot convert this recording to ${l.format.toUpperCase()}.`);
|
|
23121
23239
|
if (await e.execute(), !p.buffer || p.buffer.byteLength === 0) throw Error("MediaBunny produced an empty export.");
|
|
23122
|
-
let t = new Blob([p.buffer], { type:
|
|
23240
|
+
let t = new Blob([p.buffer], { type: IT[l.format] }), n = await JT(t);
|
|
23123
23241
|
return {
|
|
23124
23242
|
blob: t,
|
|
23125
23243
|
format: l.format,
|
|
@@ -23130,11 +23248,11 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23130
23248
|
} finally {
|
|
23131
23249
|
f.dispose();
|
|
23132
23250
|
}
|
|
23133
|
-
},
|
|
23251
|
+
}, XT = (e, t = /* @__PURE__ */ new Date()) => `mesurer-recording-${t.toISOString().replace(/[:.]/g, "-")}.${e}`, ZT = 10, QT = (e, t) => {
|
|
23134
23252
|
for (let [n, r] of Object.entries(t)) e.style.setProperty(n, r);
|
|
23135
|
-
},
|
|
23253
|
+
}, $T = (e, t, n) => {
|
|
23136
23254
|
let r = e.createElement("button");
|
|
23137
|
-
return r.type = "button", r.setAttribute("aria-label", t), r.title = t, r.textContent = n,
|
|
23255
|
+
return r.type = "button", r.setAttribute("aria-label", t), r.title = t, r.textContent = n, QT(r, {
|
|
23138
23256
|
display: "inline-flex",
|
|
23139
23257
|
width: "20px",
|
|
23140
23258
|
height: "20px",
|
|
@@ -23150,9 +23268,9 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23150
23268
|
"line-height": "1",
|
|
23151
23269
|
cursor: "pointer"
|
|
23152
23270
|
}), r;
|
|
23153
|
-
},
|
|
23271
|
+
}, eE = (e, t) => {
|
|
23154
23272
|
let n = e.createElement("button");
|
|
23155
|
-
n.type = "button", n.setAttribute("role", "menuitemradio"),
|
|
23273
|
+
n.type = "button", n.setAttribute("role", "menuitemradio"), QT(n, {
|
|
23156
23274
|
display: "grid",
|
|
23157
23275
|
width: "100%",
|
|
23158
23276
|
height: "28px",
|
|
@@ -23177,9 +23295,9 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23177
23295
|
check: r,
|
|
23178
23296
|
text: i
|
|
23179
23297
|
};
|
|
23180
|
-
},
|
|
23298
|
+
}, tE = ({ ownerDocument: e, root: t }) => {
|
|
23181
23299
|
let n = e.createElement("section");
|
|
23182
|
-
n.dataset.mesurerRecordingPreview = "true", n.dataset.mesurerInspectorUi = "true", n.setAttribute("role", "dialog"), n.setAttribute("aria-label", "Screen recording editor"), n.tabIndex = 0,
|
|
23300
|
+
n.dataset.mesurerRecordingPreview = "true", n.dataset.mesurerInspectorUi = "true", n.setAttribute("role", "dialog"), n.setAttribute("aria-label", "Screen recording editor"), n.tabIndex = 0, QT(n, {
|
|
23183
23301
|
position: "fixed",
|
|
23184
23302
|
display: "none",
|
|
23185
23303
|
width: "352px",
|
|
@@ -23200,7 +23318,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23200
23318
|
transition: "width 200ms ease"
|
|
23201
23319
|
}), t.append(n);
|
|
23202
23320
|
let r = e.createElement("div");
|
|
23203
|
-
|
|
23321
|
+
QT(r, {
|
|
23204
23322
|
position: "relative",
|
|
23205
23323
|
display: "flex",
|
|
23206
23324
|
width: "100%",
|
|
@@ -23215,7 +23333,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23215
23333
|
cursor: "default"
|
|
23216
23334
|
}), n.append(r);
|
|
23217
23335
|
let i = e.createElement("video");
|
|
23218
|
-
i.muted = !0, i.playsInline = !0, i.preload = "auto",
|
|
23336
|
+
i.muted = !0, i.playsInline = !0, i.preload = "auto", QT(i, {
|
|
23219
23337
|
display: "block",
|
|
23220
23338
|
width: "100%",
|
|
23221
23339
|
height: "100%",
|
|
@@ -23225,7 +23343,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23225
23343
|
transition: "max-height 200ms ease"
|
|
23226
23344
|
}), r.append(i);
|
|
23227
23345
|
let a = e.createElement("div");
|
|
23228
|
-
a.dataset.mesurerRecordingExporting = "true", a.textContent = "Exporting…",
|
|
23346
|
+
a.dataset.mesurerRecordingExporting = "true", a.textContent = "Exporting…", QT(a, {
|
|
23229
23347
|
position: "absolute",
|
|
23230
23348
|
inset: "0",
|
|
23231
23349
|
display: "none",
|
|
@@ -23237,8 +23355,8 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23237
23355
|
"font-size": "11px",
|
|
23238
23356
|
"pointer-events": "none"
|
|
23239
23357
|
}), r.append(a);
|
|
23240
|
-
let o =
|
|
23241
|
-
o.dataset.mesurerRecordingDiscard = "true",
|
|
23358
|
+
let o = $T(e, "Close", "×");
|
|
23359
|
+
o.dataset.mesurerRecordingDiscard = "true", QT(o, {
|
|
23242
23360
|
position: "absolute",
|
|
23243
23361
|
top: "6px",
|
|
23244
23362
|
right: "6px",
|
|
@@ -23260,17 +23378,17 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23260
23378
|
o.style.opacity = "0", o.style.pointerEvents = "none";
|
|
23261
23379
|
});
|
|
23262
23380
|
let s = e.createElement("div");
|
|
23263
|
-
|
|
23381
|
+
QT(s, {
|
|
23264
23382
|
display: "flex",
|
|
23265
23383
|
height: "28px",
|
|
23266
23384
|
"align-items": "center",
|
|
23267
23385
|
gap: "8px",
|
|
23268
23386
|
"margin-top": "8px"
|
|
23269
23387
|
}), n.append(s);
|
|
23270
|
-
let c =
|
|
23388
|
+
let c = $T(e, "Play", "▶");
|
|
23271
23389
|
c.dataset.mesurerRecordingPlay = "true", s.append(c);
|
|
23272
23390
|
let l = e.createElement("span");
|
|
23273
|
-
l.dataset.mesurerRecordingCurrentTime = "true", l.textContent = "0:00.00",
|
|
23391
|
+
l.dataset.mesurerRecordingCurrentTime = "true", l.textContent = "0:00.00", QT(l, {
|
|
23274
23392
|
display: "flex",
|
|
23275
23393
|
width: "8ch",
|
|
23276
23394
|
"min-width": "8ch",
|
|
@@ -23284,7 +23402,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23284
23402
|
"white-space": "nowrap"
|
|
23285
23403
|
}), s.append(l);
|
|
23286
23404
|
let u = e.createElement("div");
|
|
23287
|
-
u.dataset.mesurerRecordingTimeline = "true",
|
|
23405
|
+
u.dataset.mesurerRecordingTimeline = "true", QT(u, {
|
|
23288
23406
|
position: "relative",
|
|
23289
23407
|
height: "28px",
|
|
23290
23408
|
"min-width": "0",
|
|
@@ -23293,15 +23411,15 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23293
23411
|
"user-select": "none"
|
|
23294
23412
|
}), s.append(u);
|
|
23295
23413
|
let d = e.createElement("div");
|
|
23296
|
-
d.dataset.mesurerRecordingTimelineTrack = "true",
|
|
23414
|
+
d.dataset.mesurerRecordingTimelineTrack = "true", QT(d, {
|
|
23297
23415
|
position: "absolute",
|
|
23298
|
-
left: `${
|
|
23299
|
-
right: `${
|
|
23416
|
+
left: `${ZT}px`,
|
|
23417
|
+
right: `${ZT}px`,
|
|
23300
23418
|
top: "0",
|
|
23301
23419
|
bottom: "0"
|
|
23302
23420
|
}), u.append(d);
|
|
23303
23421
|
let f = e.createElement("div");
|
|
23304
|
-
f.dataset.mesurerRecordingTimelineRail = "true",
|
|
23422
|
+
f.dataset.mesurerRecordingTimelineRail = "true", QT(f, {
|
|
23305
23423
|
position: "absolute",
|
|
23306
23424
|
left: "0",
|
|
23307
23425
|
right: "0",
|
|
@@ -23313,7 +23431,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23313
23431
|
"pointer-events": "none"
|
|
23314
23432
|
}), d.append(f);
|
|
23315
23433
|
let p = e.createElement("div");
|
|
23316
|
-
p.dataset.mesurerRecordingTimelineClip = "true",
|
|
23434
|
+
p.dataset.mesurerRecordingTimelineClip = "true", QT(p, {
|
|
23317
23435
|
position: "absolute",
|
|
23318
23436
|
top: "21px",
|
|
23319
23437
|
height: "3px",
|
|
@@ -23323,7 +23441,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23323
23441
|
"pointer-events": "none"
|
|
23324
23442
|
}), d.append(p);
|
|
23325
23443
|
let m = e.createElement("div");
|
|
23326
|
-
|
|
23444
|
+
QT(m, {
|
|
23327
23445
|
position: "absolute",
|
|
23328
23446
|
display: "none",
|
|
23329
23447
|
top: "21px",
|
|
@@ -23336,7 +23454,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23336
23454
|
"pointer-events": "none"
|
|
23337
23455
|
}), d.append(m);
|
|
23338
23456
|
let h = e.createElement("div");
|
|
23339
|
-
h.dataset.mesurerRecordingPlayhead = "true",
|
|
23457
|
+
h.dataset.mesurerRecordingPlayhead = "true", QT(h, {
|
|
23340
23458
|
position: "absolute",
|
|
23341
23459
|
top: "21px",
|
|
23342
23460
|
left: "0",
|
|
@@ -23351,7 +23469,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23351
23469
|
}), d.append(h);
|
|
23352
23470
|
let g = (t, n) => {
|
|
23353
23471
|
let r = e.createElement("button");
|
|
23354
|
-
r.type = "button", r.dataset.mesurerRecordingTrimHandle = t, r.setAttribute("role", "slider"), r.setAttribute("aria-label", n), r.setAttribute("aria-valuemin", "0"),
|
|
23472
|
+
r.type = "button", r.dataset.mesurerRecordingTrimHandle = t, r.setAttribute("role", "slider"), r.setAttribute("aria-label", n), r.setAttribute("aria-valuemin", "0"), QT(r, {
|
|
23355
23473
|
position: "absolute",
|
|
23356
23474
|
top: "0",
|
|
23357
23475
|
display: "flex",
|
|
@@ -23374,7 +23492,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23374
23492
|
let a = e.createElementNS("http://www.w3.org/2000/svg", "path");
|
|
23375
23493
|
a.setAttribute("d", t === "start" ? "M3.5 2.5L8.5 7L3.5 11.5" : "M8.5 2.5L3.5 7L8.5 11.5"), a.setAttribute("fill", "none"), a.setAttribute("stroke", "currentColor"), a.setAttribute("stroke-width", "2"), a.setAttribute("stroke-linecap", "round"), a.setAttribute("stroke-linejoin", "round"), i.append(a), r.append(i);
|
|
23376
23494
|
let o = e.createElement("span");
|
|
23377
|
-
return o.setAttribute("aria-hidden", "true"),
|
|
23495
|
+
return o.setAttribute("aria-hidden", "true"), QT(o, {
|
|
23378
23496
|
position: "absolute",
|
|
23379
23497
|
left: "50%",
|
|
23380
23498
|
top: "15px",
|
|
@@ -23385,7 +23503,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23385
23503
|
"pointer-events": "none"
|
|
23386
23504
|
}), r.append(o), d.append(r), r;
|
|
23387
23505
|
}, _ = g("start", "Trim start"), v = g("end", "Trim end"), y = e.createElement("span");
|
|
23388
|
-
y.dataset.mesurerRecordingDuration = "true",
|
|
23506
|
+
y.dataset.mesurerRecordingDuration = "true", QT(y, {
|
|
23389
23507
|
display: "flex",
|
|
23390
23508
|
width: "8ch",
|
|
23391
23509
|
"min-width": "8ch",
|
|
@@ -23400,20 +23518,20 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23400
23518
|
"white-space": "nowrap"
|
|
23401
23519
|
}), s.append(y);
|
|
23402
23520
|
let b = e.createElement("div");
|
|
23403
|
-
|
|
23521
|
+
QT(b, {
|
|
23404
23522
|
position: "relative",
|
|
23405
23523
|
display: "flex",
|
|
23406
23524
|
height: "20px",
|
|
23407
23525
|
"align-items": "center"
|
|
23408
23526
|
}), s.append(b);
|
|
23409
|
-
let x =
|
|
23410
|
-
x.dataset.mesurerRecordingExportOptions = "true", x.setAttribute("aria-haspopup", "menu"), x.setAttribute("aria-expanded", "false"),
|
|
23527
|
+
let x = $T(e, "Export options", "1×");
|
|
23528
|
+
x.dataset.mesurerRecordingExportOptions = "true", x.setAttribute("aria-haspopup", "menu"), x.setAttribute("aria-expanded", "false"), QT(x, {
|
|
23411
23529
|
width: "28px",
|
|
23412
23530
|
"font-family": "ui-monospace, SFMono-Regular, Menlo, monospace",
|
|
23413
23531
|
"font-size": "10px"
|
|
23414
23532
|
}), b.append(x);
|
|
23415
23533
|
let S = e.createElement("div");
|
|
23416
|
-
S.dataset.mesurerRecordingExportMenu = "true", S.setAttribute("role", "menu"),
|
|
23534
|
+
S.dataset.mesurerRecordingExportMenu = "true", S.setAttribute("role", "menu"), QT(S, {
|
|
23417
23535
|
position: "absolute",
|
|
23418
23536
|
display: "none",
|
|
23419
23537
|
right: "0",
|
|
@@ -23429,7 +23547,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23429
23547
|
"pointer-events": "auto"
|
|
23430
23548
|
}), b.append(S);
|
|
23431
23549
|
let C = e.createElement("p");
|
|
23432
|
-
C.textContent = "Format",
|
|
23550
|
+
C.textContent = "Format", QT(C, {
|
|
23433
23551
|
margin: "0",
|
|
23434
23552
|
padding: "4px 8px",
|
|
23435
23553
|
color: "var(--msr-color-ink-500, #64748b)",
|
|
@@ -23439,7 +23557,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23439
23557
|
let w = e.createElement("div");
|
|
23440
23558
|
S.append(w);
|
|
23441
23559
|
let T = e.createElement("p");
|
|
23442
|
-
T.textContent = "Size",
|
|
23560
|
+
T.textContent = "Size", QT(T, {
|
|
23443
23561
|
margin: "0",
|
|
23444
23562
|
padding: "6px 8px 4px",
|
|
23445
23563
|
color: "var(--msr-color-ink-500, #64748b)",
|
|
@@ -23453,17 +23571,17 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23453
23571
|
2,
|
|
23454
23572
|
3
|
|
23455
23573
|
].map((t) => {
|
|
23456
|
-
let n =
|
|
23574
|
+
let n = eE(e, `${t}×`);
|
|
23457
23575
|
return n.button.dataset.mesurerRecordingScale = String(t), E.append(n.button), {
|
|
23458
23576
|
scale: t,
|
|
23459
23577
|
...n
|
|
23460
23578
|
};
|
|
23461
|
-
}), O =
|
|
23579
|
+
}), O = $T(e, "Download", "↓");
|
|
23462
23580
|
O.dataset.mesurerRecordingExport = "true", s.append(O);
|
|
23463
|
-
let k =
|
|
23581
|
+
let k = $T(e, "Grow preview", "↗");
|
|
23464
23582
|
k.dataset.mesurerRecordingExpand = "true", s.append(k);
|
|
23465
23583
|
let A = e.createElement("p");
|
|
23466
|
-
return A.dataset.mesurerRecordingPreviewStatus = "true", A.setAttribute("role", "status"),
|
|
23584
|
+
return A.dataset.mesurerRecordingPreviewStatus = "true", A.setAttribute("role", "status"), QT(A, {
|
|
23467
23585
|
display: "none",
|
|
23468
23586
|
margin: "8px 0 0",
|
|
23469
23587
|
color: "var(--msr-color-ink-500, #64748b)",
|
|
@@ -23494,14 +23612,14 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23494
23612
|
expand: k,
|
|
23495
23613
|
status: A
|
|
23496
23614
|
};
|
|
23497
|
-
},
|
|
23615
|
+
}, nE = 8, rE = 8, iE = .05, aE = 200, oE = (e) => {
|
|
23498
23616
|
let t = Number.isFinite(e) ? Math.max(0, e) : 0, n = Math.floor(t / 60);
|
|
23499
23617
|
return `${n}:${(t - n * 60).toFixed(2).padStart(5, "0")}`;
|
|
23500
|
-
},
|
|
23618
|
+
}, sE = (e, t, n, r) => {
|
|
23501
23619
|
let i = globalThis.URL.createObjectURL(e), a = n.createElement("a");
|
|
23502
23620
|
a.href = i, a.download = t, a.rel = "noopener", n.documentElement.append(a), a.click(), a.remove(), r.setTimeout(() => globalThis.URL.revokeObjectURL(i), 1e3);
|
|
23503
|
-
},
|
|
23504
|
-
let { panel: o, previewShell: s, video: c, exportingOverlay: l, close: u, play: d, currentTime: f, timeline: p, track: m, clip: h, hoverMarker: g, playhead: _, trimStart: v, trimEnd: y, durationLabel: b, exportAnchor: x, exportOptions: S, exportMenu: C, formatRows: w, scaleRows: T, download: E, expand: D, status: O } =
|
|
23621
|
+
}, cE = ({ ownerDocument: e, ownerWindow: t, root: n, formats: r, onDiscard: i, onExport: a }) => {
|
|
23622
|
+
let { panel: o, previewShell: s, video: c, exportingOverlay: l, close: u, play: d, currentTime: f, timeline: p, track: m, clip: h, hoverMarker: g, playhead: _, trimStart: v, trimEnd: y, durationLabel: b, exportAnchor: x, exportOptions: S, exportMenu: C, formatRows: w, scaleRows: T, download: E, expand: D, status: O } = tE({
|
|
23505
23623
|
ownerDocument: e,
|
|
23506
23624
|
root: n
|
|
23507
23625
|
}), k = null, A = null, j = !1, M = !1, N = 0, P = ["webm"], F = "webm", I = 1, L = 0, R = 0, z = null, B = null, V = null, ee = (e) => {
|
|
@@ -23515,15 +23633,15 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23515
23633
|
return t <= 0 || n.width <= 0 ? 0 : Math.min(t, Math.max(0, (e - n.left) / n.width * t));
|
|
23516
23634
|
}, W = () => {
|
|
23517
23635
|
let e = k?.duration ?? 0, t = Math.min(e, Math.max(0, c.currentTime || 0)), n = ee(L) * 100, r = ee(R) * 100;
|
|
23518
|
-
v.style.left = `${n}%`, y.style.left = `${r}%`, h.style.left = `${n}%`, h.style.width = `${Math.max(0, r - n)}%`, _.style.left = `${ee(t) * 100}%`, v.setAttribute("aria-valuemax", String(Math.max(0, R -
|
|
23636
|
+
v.style.left = `${n}%`, y.style.left = `${r}%`, h.style.left = `${n}%`, h.style.width = `${Math.max(0, r - n)}%`, _.style.left = `${ee(t) * 100}%`, v.setAttribute("aria-valuemax", String(Math.max(0, R - iE))), v.setAttribute("aria-valuenow", String(L)), v.setAttribute("aria-valuetext", oE(L)), y.setAttribute("aria-valuemin", String(Math.min(e, L + iE))), y.setAttribute("aria-valuemax", String(e)), y.setAttribute("aria-valuenow", String(R)), y.setAttribute("aria-valuetext", oE(R)), f.textContent = oE(t), b.textContent = oE(e);
|
|
23519
23637
|
}, te = (e, t = !0) => {
|
|
23520
23638
|
if (!k) return;
|
|
23521
23639
|
let n = Math.min(R, Math.max(L, e));
|
|
23522
23640
|
t && !c.paused && c.pause(), c.currentTime = n, W();
|
|
23523
23641
|
}, ne = (e, t = !1) => {
|
|
23524
|
-
k && (L = Math.min(Math.max(0, e), Math.max(0, R -
|
|
23642
|
+
k && (L = Math.min(Math.max(0, e), Math.max(0, R - iE)), (t || c.currentTime < L) && te(L), W());
|
|
23525
23643
|
}, re = (e, t = !1) => {
|
|
23526
|
-
k && (R = Math.max(Math.min(k.duration, e), Math.min(k.duration, L +
|
|
23644
|
+
k && (R = Math.max(Math.min(k.duration, e), Math.min(k.duration, L + iE)), t ? te(R) : c.currentTime > R && te(L), W());
|
|
23527
23645
|
}, ie = () => {
|
|
23528
23646
|
S.textContent = `${I}×`;
|
|
23529
23647
|
for (let e of T) {
|
|
@@ -23533,14 +23651,14 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23533
23651
|
}, G = () => {
|
|
23534
23652
|
w.replaceChildren();
|
|
23535
23653
|
for (let t of P) {
|
|
23536
|
-
let n =
|
|
23654
|
+
let n = eE(e, t === "mp4" ? "MP4" : "WebM"), r = t === F;
|
|
23537
23655
|
n.button.dataset.mesurerRecordingFormat = t, n.button.setAttribute("aria-checked", r ? "true" : "false"), n.check.style.opacity = r ? "1" : "0", n.button.addEventListener("click", () => {
|
|
23538
23656
|
F = t, G();
|
|
23539
23657
|
}), w.append(n.button);
|
|
23540
23658
|
}
|
|
23541
23659
|
}, ae = () => {
|
|
23542
23660
|
if (C.style.display === "none") return;
|
|
23543
|
-
let e = x.getBoundingClientRect(), n = Math.max(1, C.offsetHeight), r = e.top -
|
|
23661
|
+
let e = x.getBoundingClientRect(), n = Math.max(1, C.offsetHeight), r = e.top - nE, i = t.innerHeight - e.bottom - nE;
|
|
23544
23662
|
r >= n || r >= i ? (C.style.top = "auto", C.style.bottom = "24px") : (C.style.top = "24px", C.style.bottom = "auto");
|
|
23545
23663
|
}, oe = (e) => {
|
|
23546
23664
|
C.style.display = e ? "block" : "none", S.setAttribute("aria-expanded", e ? "true" : "false"), e && ae();
|
|
@@ -23558,8 +23676,8 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23558
23676
|
]) t.toggleAttribute("disabled", e);
|
|
23559
23677
|
}, ce = () => n.closest("[data-mesurer-root='true']")?.querySelector("[data-mesurer-tool-id='recording']") ?? e.querySelector("[data-mesurer-tool-id='recording']"), le = () => {
|
|
23560
23678
|
if (o.style.display === "none") return;
|
|
23561
|
-
let e = Math.min(j ? 576 : 352, Math.max(1, t.innerWidth - 16)), n = Math.max(180, o.offsetHeight), r = ce()?.getBoundingClientRect(), i = r ? r.left + r.width / 2 : t.innerWidth -
|
|
23562
|
-
l + n > t.innerHeight -
|
|
23679
|
+
let e = Math.min(j ? 576 : 352, Math.max(1, t.innerWidth - 16)), n = Math.max(180, o.offsetHeight), r = ce()?.getBoundingClientRect(), i = r ? r.left + r.width / 2 : t.innerWidth - nE - e / 2, a = nE + e / 2, s = Math.max(a, t.innerWidth - nE - e / 2), c = Math.min(Math.max(a, i), s), l = r ? r.bottom + rE : nE;
|
|
23680
|
+
l + n > t.innerHeight - nE && (l = r ? r.top - n - rE : t.innerHeight - n - nE), o.style.left = `${c}px`, o.style.top = `${Math.max(nE, l)}px`, C.style.display !== "none" && ae();
|
|
23563
23681
|
}, ue = () => {
|
|
23564
23682
|
c.pause(), c.removeAttribute("src"), c.load(), A &&= (globalThis.URL.revokeObjectURL(A), null);
|
|
23565
23683
|
}, de = () => {
|
|
@@ -23575,7 +23693,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23575
23693
|
transform: "scale(0.08)",
|
|
23576
23694
|
opacity: 0
|
|
23577
23695
|
}], {
|
|
23578
|
-
duration:
|
|
23696
|
+
duration: aE,
|
|
23579
23697
|
easing: "ease",
|
|
23580
23698
|
fill: "forwards"
|
|
23581
23699
|
});
|
|
@@ -23650,7 +23768,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23650
23768
|
endTime: i,
|
|
23651
23769
|
scale: I
|
|
23652
23770
|
}).then((r) => {
|
|
23653
|
-
n === N &&
|
|
23771
|
+
n === N && sE(r.blob, r.filename, e, t);
|
|
23654
23772
|
}).catch((e) => {
|
|
23655
23773
|
n === N && (O.style.display = "block", O.style.color = "var(--msr-danger-text, #dc2626)", O.textContent = e instanceof Error ? e.message : "Could not export the recording.");
|
|
23656
23774
|
}).finally(() => {
|
|
@@ -23672,7 +23790,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23672
23790
|
show(e) {
|
|
23673
23791
|
N += 1, V &&= (V.cancel(), null), o.style.pointerEvents = "auto", o.style.opacity = "1", o.style.transform = "translateX(-50%)", o.style.removeProperty("transform-origin"), o.style.removeProperty("will-change"), ue(), k = e, j = !1, I = 1, F = "webm", P = ["webm"], L = 0, R = e.duration, z = null, B = null;
|
|
23674
23792
|
let n = globalThis.URL.createObjectURL(e.blob);
|
|
23675
|
-
A = n, c.src = n, c.currentTime = 0, s.style.aspectRatio = e.width > 0 && e.height > 0 ? `${e.width} / ${e.height}` : "16 / 9", o.style.width = "352px", s.style.maxHeight = "144px", c.style.maxHeight = "144px", D.textContent = "↗", D.setAttribute("aria-label", "Grow preview"), D.title = "Grow preview", f.textContent = "0:00.00", b.textContent =
|
|
23793
|
+
A = n, c.src = n, c.currentTime = 0, s.style.aspectRatio = e.width > 0 && e.height > 0 ? `${e.width} / ${e.height}` : "16 / 9", o.style.width = "352px", s.style.maxHeight = "144px", c.style.maxHeight = "144px", D.textContent = "↗", D.setAttribute("aria-label", "Grow preview"), D.title = "Grow preview", f.textContent = "0:00.00", b.textContent = oE(e.duration), O.style.display = "none", O.style.color = "var(--msr-color-ink-500, #64748b)", oe(!1), G(), ie(), W(), se(!1), o.style.display = "block", le(), o.focus({ preventScroll: !0 });
|
|
23676
23794
|
let i = N;
|
|
23677
23795
|
r(e).then((e) => {
|
|
23678
23796
|
i !== N || !k || (P = e, F = e.includes(F) ? F : e[0] ?? "webm", G(), E.disabled = e.length === 0, e.length === 0 && (O.style.display = "block", O.style.color = "var(--msr-danger-text, #dc2626)", O.textContent = "No MediaBunny video encoder is available in this runtime."));
|
|
@@ -23685,11 +23803,11 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23685
23803
|
de(), t.removeEventListener("resize", be), t.removeEventListener("pointermove", _e, !0), t.removeEventListener("pointerup", ve, !0), t.removeEventListener("pointercancel", ve, !0), e.removeEventListener("pointerdown", ye, !0), o.remove();
|
|
23686
23804
|
}
|
|
23687
23805
|
};
|
|
23688
|
-
},
|
|
23806
|
+
}, lE = 3e3, uE = (e, t) => {
|
|
23689
23807
|
for (let [n, r] of Object.entries(t)) e.style.setProperty(n, r);
|
|
23690
|
-
},
|
|
23808
|
+
}, dE = ({ ownerDocument: e, ownerWindow: t, root: n, statusRoot: r, rendererRoot: i, isSelecting: a, isRecording: o, onRectChange: s, onConfirm: c, onCancel: l, onStop: u, setRecordingInteractionActive: d }) => {
|
|
23691
23809
|
let f = e.createElement("div");
|
|
23692
|
-
f.dataset.mesurerRecordingSelect = "true", f.dataset.mesurerInspectorUi = "true", f.setAttribute("role", "application"), f.setAttribute("aria-label", "Recording selection"),
|
|
23810
|
+
f.dataset.mesurerRecordingSelect = "true", f.dataset.mesurerInspectorUi = "true", f.setAttribute("role", "application"), f.setAttribute("aria-label", "Recording selection"), uE(f, {
|
|
23693
23811
|
position: "fixed",
|
|
23694
23812
|
inset: "0",
|
|
23695
23813
|
display: "none",
|
|
@@ -23701,13 +23819,13 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23701
23819
|
}), n.append(f);
|
|
23702
23820
|
let p = Array.from({ length: 4 }, () => {
|
|
23703
23821
|
let t = e.createElement("div");
|
|
23704
|
-
return t.dataset.mesurerRecordingShade = "true",
|
|
23822
|
+
return t.dataset.mesurerRecordingShade = "true", uE(t, {
|
|
23705
23823
|
position: "fixed",
|
|
23706
23824
|
background: "rgb(0 0 0 / 40%)",
|
|
23707
23825
|
"pointer-events": "none"
|
|
23708
23826
|
}), f.append(t), t;
|
|
23709
23827
|
}), m = e.createElement("div");
|
|
23710
|
-
m.dataset.mesurerRecordingMask = "true",
|
|
23828
|
+
m.dataset.mesurerRecordingMask = "true", uE(m, {
|
|
23711
23829
|
position: "fixed",
|
|
23712
23830
|
display: "none",
|
|
23713
23831
|
background: "transparent",
|
|
@@ -23717,7 +23835,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23717
23835
|
"pointer-events": "none"
|
|
23718
23836
|
}), f.append(m);
|
|
23719
23837
|
let h = e.createElement("div");
|
|
23720
|
-
h.dataset.mesurerRecordingSelection = "true",
|
|
23838
|
+
h.dataset.mesurerRecordingSelection = "true", uE(h, {
|
|
23721
23839
|
position: "fixed",
|
|
23722
23840
|
display: "none",
|
|
23723
23841
|
border: "1px solid var(--msr-accent, #0d99ff)",
|
|
@@ -23725,7 +23843,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23725
23843
|
"pointer-events": "none"
|
|
23726
23844
|
}), f.append(h);
|
|
23727
23845
|
let g = e.createElement("div");
|
|
23728
|
-
|
|
23846
|
+
uE(g, {
|
|
23729
23847
|
position: "fixed",
|
|
23730
23848
|
display: "none",
|
|
23731
23849
|
transform: "translateX(-50%)",
|
|
@@ -23738,7 +23856,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23738
23856
|
"pointer-events": "none"
|
|
23739
23857
|
}), f.append(g);
|
|
23740
23858
|
let _ = e.createElement("div");
|
|
23741
|
-
_.textContent = "Drag a region to record · Esc to cancel",
|
|
23859
|
+
_.textContent = "Drag a region to record · Esc to cancel", uE(_, {
|
|
23742
23860
|
position: "fixed",
|
|
23743
23861
|
left: "50%",
|
|
23744
23862
|
bottom: "16px",
|
|
@@ -23751,7 +23869,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23751
23869
|
"pointer-events": "none"
|
|
23752
23870
|
}), f.append(_);
|
|
23753
23871
|
let v = e.createElement("div");
|
|
23754
|
-
v.dataset.mesurerRecordingRegion = "true", v.dataset.mesurerInspectorUi = "true", v.setAttribute("role", "dialog"), v.setAttribute("aria-label", "Recording region"),
|
|
23872
|
+
v.dataset.mesurerRecordingRegion = "true", v.dataset.mesurerInspectorUi = "true", v.setAttribute("role", "dialog"), v.setAttribute("aria-label", "Recording region"), uE(v, {
|
|
23755
23873
|
position: "fixed",
|
|
23756
23874
|
display: "none",
|
|
23757
23875
|
width: "220px",
|
|
@@ -23769,7 +23887,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23769
23887
|
}), f.append(v);
|
|
23770
23888
|
let y = (t) => {
|
|
23771
23889
|
let n = e.createElement("label");
|
|
23772
|
-
|
|
23890
|
+
uE(n, {
|
|
23773
23891
|
display: "grid",
|
|
23774
23892
|
"grid-template-columns": "44px minmax(0,1fr)",
|
|
23775
23893
|
"align-items": "center",
|
|
@@ -23778,7 +23896,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23778
23896
|
let r = e.createElement("span");
|
|
23779
23897
|
r.textContent = t, r.style.color = "var(--msr-color-ink-500, #64748b)", n.append(r);
|
|
23780
23898
|
let i = e.createElement("div");
|
|
23781
|
-
return
|
|
23899
|
+
return uE(i, {
|
|
23782
23900
|
display: "flex",
|
|
23783
23901
|
"align-items": "center",
|
|
23784
23902
|
gap: "4px",
|
|
@@ -23786,7 +23904,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23786
23904
|
}), n.append(i), v.append(n), i;
|
|
23787
23905
|
}, b = (t) => {
|
|
23788
23906
|
let n = e.createElement("input");
|
|
23789
|
-
return n.type = "number", n.setAttribute("aria-label", t), n.step = "1",
|
|
23907
|
+
return n.type = "number", n.setAttribute("aria-label", t), n.step = "1", uE(n, {
|
|
23790
23908
|
width: "0",
|
|
23791
23909
|
"min-width": "0",
|
|
23792
23910
|
flex: "1 1 0",
|
|
@@ -23813,7 +23931,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23813
23931
|
let k = e.createElement("span");
|
|
23814
23932
|
k.textContent = "px", k.style.color = "var(--msr-color-ink-500, #64748b)", E.append(k);
|
|
23815
23933
|
let A = e.createElement("button");
|
|
23816
|
-
A.type = "button", A.dataset.mesurerRecordingStart = "true", A.textContent = "● Start recording",
|
|
23934
|
+
A.type = "button", A.dataset.mesurerRecordingStart = "true", A.textContent = "● Start recording", uE(A, {
|
|
23817
23935
|
width: "100%",
|
|
23818
23936
|
height: "28px",
|
|
23819
23937
|
"margin-top": "8px",
|
|
@@ -23827,7 +23945,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23827
23945
|
cursor: "pointer"
|
|
23828
23946
|
}), v.append(A);
|
|
23829
23947
|
let j = e.createElement("div");
|
|
23830
|
-
j.dataset.mesurerRecordingGrid = "true",
|
|
23948
|
+
j.dataset.mesurerRecordingGrid = "true", uE(j, {
|
|
23831
23949
|
position: "absolute",
|
|
23832
23950
|
inset: "0",
|
|
23833
23951
|
display: "none",
|
|
@@ -23835,7 +23953,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23835
23953
|
}), h.append(j);
|
|
23836
23954
|
let M = (t) => {
|
|
23837
23955
|
let n = e.createElement("div");
|
|
23838
|
-
|
|
23956
|
+
uE(n, {
|
|
23839
23957
|
position: "absolute",
|
|
23840
23958
|
opacity: "0.3",
|
|
23841
23959
|
...t
|
|
@@ -23897,7 +24015,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23897
24015
|
}
|
|
23898
24016
|
}).map(([t, n]) => {
|
|
23899
24017
|
let r = e.createElement("button");
|
|
23900
|
-
return r.type = "button", r.dataset.mesurerRecordingResize = t, r.setAttribute("aria-label", `Resize ${t}`),
|
|
24018
|
+
return r.type = "button", r.dataset.mesurerRecordingResize = t, r.setAttribute("aria-label", `Resize ${t}`), uE(r, {
|
|
23901
24019
|
position: "absolute",
|
|
23902
24020
|
display: "none",
|
|
23903
24021
|
left: n.left,
|
|
@@ -23914,7 +24032,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23914
24032
|
"pointer-events": "auto"
|
|
23915
24033
|
}), h.append(r), r;
|
|
23916
24034
|
}), P = e.createElement("section");
|
|
23917
|
-
P.dataset.mesurerRecordingStatus = "true", P.dataset.mesurerInspectorUi = "true", P.setAttribute("aria-label", "Screen recording"),
|
|
24035
|
+
P.dataset.mesurerRecordingStatus = "true", P.dataset.mesurerInspectorUi = "true", P.setAttribute("aria-label", "Screen recording"), uE(P, {
|
|
23918
24036
|
position: "fixed",
|
|
23919
24037
|
display: "none",
|
|
23920
24038
|
height: "34px",
|
|
@@ -23931,7 +24049,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23931
24049
|
"pointer-events": "auto"
|
|
23932
24050
|
});
|
|
23933
24051
|
let F = e.createElement("span");
|
|
23934
|
-
F.setAttribute("aria-hidden", "true"),
|
|
24052
|
+
F.setAttribute("aria-hidden", "true"), uE(F, {
|
|
23935
24053
|
width: "6px",
|
|
23936
24054
|
height: "6px",
|
|
23937
24055
|
"border-radius": "999px",
|
|
@@ -23939,14 +24057,14 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23939
24057
|
"flex-shrink": "0"
|
|
23940
24058
|
}), P.append(F);
|
|
23941
24059
|
let I = e.createElement("span");
|
|
23942
|
-
I.dataset.mesurerRecordingTime = "true", I.textContent = "00:00",
|
|
24060
|
+
I.dataset.mesurerRecordingTime = "true", I.textContent = "00:00", uE(I, {
|
|
23943
24061
|
color: "var(--msr-content, #18181b)",
|
|
23944
24062
|
"font-family": "ui-monospace, SFMono-Regular, Menlo, monospace",
|
|
23945
24063
|
"font-size": "11px",
|
|
23946
24064
|
"font-variant-numeric": "tabular-nums"
|
|
23947
24065
|
}), P.append(I);
|
|
23948
24066
|
let L = e.createElement("button");
|
|
23949
|
-
L.type = "button", L.dataset.mesurerRecordingStop = "true", L.textContent = "Stop", L.setAttribute("aria-label", "Stop recording"),
|
|
24067
|
+
L.type = "button", L.dataset.mesurerRecordingStop = "true", L.textContent = "Stop", L.setAttribute("aria-label", "Stop recording"), uE(L, {
|
|
23950
24068
|
height: "24px",
|
|
23951
24069
|
padding: "0 8px",
|
|
23952
24070
|
border: "0",
|
|
@@ -23959,7 +24077,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
23959
24077
|
cursor: "pointer"
|
|
23960
24078
|
}), P.append(L), r.append(P);
|
|
23961
24079
|
let R = e.createElement("div");
|
|
23962
|
-
R.dataset.mesurerRecordingError = "true", R.dataset.mesurerInspectorUi = "true", R.setAttribute("role", "status"),
|
|
24080
|
+
R.dataset.mesurerRecordingError = "true", R.dataset.mesurerInspectorUi = "true", R.setAttribute("role", "status"), uE(R, {
|
|
23963
24081
|
position: "fixed",
|
|
23964
24082
|
display: "none",
|
|
23965
24083
|
left: "8px",
|
|
@@ -24080,7 +24198,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
24080
24198
|
let n = e instanceof Error ? e.message : "Could not record this region.";
|
|
24081
24199
|
R.textContent = n, R.style.display = "block", H = t.setTimeout(() => {
|
|
24082
24200
|
H = 0, R.style.display = "none";
|
|
24083
|
-
},
|
|
24201
|
+
}, lE);
|
|
24084
24202
|
}, ue = (e, t, n) => {
|
|
24085
24203
|
let r = B;
|
|
24086
24204
|
!V || !r || e.button !== 0 || (e.preventDefault(), e.stopPropagation(), ee = {
|
|
@@ -24210,7 +24328,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
24210
24328
|
f.removeEventListener("pointerdown", de), f.removeEventListener("pointermove", fe), f.removeEventListener("pointerup", pe), f.removeEventListener("pointercancel", me), t.removeEventListener("keydown", he, !0), H && t.clearTimeout(H), oe();
|
|
24211
24329
|
}
|
|
24212
24330
|
};
|
|
24213
|
-
},
|
|
24331
|
+
}, fE = (e) => {
|
|
24214
24332
|
let t = null, n = () => {
|
|
24215
24333
|
let e = t;
|
|
24216
24334
|
e && (t = null, e.pointerEvents || e.pointerEventsPriority ? e.element.style.setProperty("pointer-events", e.pointerEvents, e.pointerEventsPriority) : e.element.style.removeProperty("pointer-events"), e.cursor || e.cursorPriority ? e.element.style.setProperty("cursor", e.cursor, e.cursorPriority) : e.element.style.removeProperty("cursor"));
|
|
@@ -24229,19 +24347,19 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
24229
24347
|
cursorPriority: i.style.getPropertyPriority("cursor")
|
|
24230
24348
|
}), i.style.setProperty("pointer-events", "none", "important"), i.style.setProperty("cursor", "default", "important"));
|
|
24231
24349
|
} };
|
|
24232
|
-
},
|
|
24350
|
+
}, pE = "mesurer.recording", mE = "recording:v1", hE = "mesurer.recording.settings", gE = "runtime:solid", _E = "recording.toggle", vE = "recording.stop", yE = "recording.discard", bE = "recording.export", xE = 60, SE = 60, CE = {
|
|
24233
24351
|
viewBox: "0 0 24 24",
|
|
24234
24352
|
paths: ["M7 5.75A3.25 3.25 0 0 0 3.75 9v6A3.25 3.25 0 0 0 7 18.25h7A3.25 3.25 0 0 0 17.25 15v-1.03l2.13 1.42a.75.75 0 0 0 1.17-.624V9.234a.75.75 0 0 0-1.17-.624l-2.13 1.42V9A3.25 3.25 0 0 0 14 5.75H7Zm10.25 6.082 1.8-1.2v2.736l-1.8-1.2v-.336Z", "M10.5 9.25a2.75 2.75 0 1 0 0 5.5 2.75 2.75 0 0 0 0-5.5Z"]
|
|
24235
|
-
},
|
|
24353
|
+
}, wE = (e) => e ? { ...e } : null, TE = (e) => ({
|
|
24236
24354
|
...e,
|
|
24237
|
-
rect:
|
|
24238
|
-
}),
|
|
24355
|
+
rect: wE(e.rect)
|
|
24356
|
+
}), EE = (e, t) => {
|
|
24239
24357
|
for (let [n, r] of Object.entries(t)) e.style.setProperty(n, r);
|
|
24240
|
-
},
|
|
24241
|
-
if (!
|
|
24358
|
+
}, DE = (e) => e != null && !Array.isArray(e) && typeof e == "object", OE = (e) => typeof e == "number" && Number.isFinite(e), kE = (e) => {
|
|
24359
|
+
if (!DE(e)) return {};
|
|
24242
24360
|
let t = {};
|
|
24243
|
-
return (e.format === "webm" || e.format === "mp4") && (t.format = e.format),
|
|
24244
|
-
},
|
|
24361
|
+
return (e.format === "webm" || e.format === "mp4") && (t.format = e.format), OE(e.startTime) && (t.startTime = e.startTime), OE(e.endTime) && (t.endTime = e.endTime), (e.scale === 1 || e.scale === 2 || e.scale === 3) && (t.scale = e.scale), t;
|
|
24362
|
+
}, AE = (e) => ({
|
|
24245
24363
|
status: e.status,
|
|
24246
24364
|
elapsed: e.elapsed,
|
|
24247
24365
|
rect: e.rect ? { ...e.rect } : null,
|
|
@@ -24249,62 +24367,62 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
24249
24367
|
width: e.width,
|
|
24250
24368
|
height: e.height,
|
|
24251
24369
|
error: e.error
|
|
24252
|
-
}),
|
|
24370
|
+
}), jE = (e) => ({
|
|
24253
24371
|
filename: e.filename,
|
|
24254
24372
|
format: e.format,
|
|
24255
24373
|
duration: e.duration,
|
|
24256
24374
|
width: e.width,
|
|
24257
24375
|
height: e.height,
|
|
24258
24376
|
bytes: e.blob.size
|
|
24259
|
-
}),
|
|
24377
|
+
}), ME = (e) => ({
|
|
24260
24378
|
format: e.format,
|
|
24261
24379
|
duration: e.duration,
|
|
24262
24380
|
width: e.width,
|
|
24263
24381
|
height: e.height,
|
|
24264
24382
|
bytes: e.blob.size,
|
|
24265
24383
|
createdAt: e.createdAt
|
|
24266
|
-
}),
|
|
24384
|
+
}), NE = (e, t, n) => {
|
|
24267
24385
|
let r = globalThis.URL.createObjectURL(e.blob), i = t.createElement("a");
|
|
24268
24386
|
i.href = r, i.download = e.filename, i.rel = "noopener", t.documentElement.append(i), i.click(), i.remove(), n.setTimeout(() => globalThis.URL.revokeObjectURL(r), 1e3);
|
|
24269
|
-
},
|
|
24270
|
-
id:
|
|
24387
|
+
}, PE = (e = {}) => kc({
|
|
24388
|
+
id: pE,
|
|
24271
24389
|
version: "0.1.0",
|
|
24272
|
-
requires: [
|
|
24273
|
-
provides: ["tool:recording",
|
|
24390
|
+
requires: [gE],
|
|
24391
|
+
provides: ["tool:recording", mE],
|
|
24274
24392
|
setup(t) {
|
|
24275
|
-
let n = t.service.get(
|
|
24393
|
+
let n = t.service.get(gE);
|
|
24276
24394
|
if (!n) throw Error("Recording plugin requires the Solid renderer runtime.");
|
|
24277
|
-
let { ownerDocument: r, ownerWindow: i } = n, a = n.createInspectorMount(), o = a.element, s = n.createInspectorMount(), c = s.element, l = n.rendererRoot ?? n.portalTarget.querySelector("[data-mesurer-root='true']"), u =
|
|
24278
|
-
o.dataset.mesurerRecording = "true", c.dataset.mesurerRecordingStatusRoot = "true",
|
|
24395
|
+
let { ownerDocument: r, ownerWindow: i } = n, a = n.createInspectorMount(), o = a.element, s = n.createInspectorMount(), c = s.element, l = n.rendererRoot ?? n.portalTarget.querySelector("[data-mesurer-root='true']"), u = fE(l);
|
|
24396
|
+
o.dataset.mesurerRecording = "true", c.dataset.mesurerRecordingStatusRoot = "true", EE(o, {
|
|
24279
24397
|
position: "fixed",
|
|
24280
24398
|
inset: "0",
|
|
24281
24399
|
"z-index": "86",
|
|
24282
24400
|
"pointer-events": "none",
|
|
24283
24401
|
"font-family": "ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif"
|
|
24284
|
-
}),
|
|
24402
|
+
}), EE(c, {
|
|
24285
24403
|
position: "fixed",
|
|
24286
24404
|
inset: "0",
|
|
24287
24405
|
"z-index": "96",
|
|
24288
24406
|
"pointer-events": "none",
|
|
24289
24407
|
"font-family": "ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif"
|
|
24290
24408
|
});
|
|
24291
|
-
let d = Math.max(1, Math.min(600, e.maxDurationSeconds ??
|
|
24409
|
+
let d = Math.max(1, Math.min(600, e.maxDurationSeconds ?? SE)), f = e.quality ?? "medium";
|
|
24292
24410
|
t.state.register({
|
|
24293
|
-
id:
|
|
24411
|
+
id: hE,
|
|
24294
24412
|
initial: {
|
|
24295
24413
|
toolEnabled: e.toolEnabled ?? !0,
|
|
24296
|
-
frameRate: e.frameRate ??
|
|
24414
|
+
frameRate: e.frameRate ?? xE
|
|
24297
24415
|
},
|
|
24298
24416
|
persist: !0
|
|
24299
24417
|
});
|
|
24300
24418
|
let p = () => {
|
|
24301
|
-
let e = t.state.get(
|
|
24419
|
+
let e = t.state.get(hE);
|
|
24302
24420
|
return {
|
|
24303
24421
|
toolEnabled: e?.toolEnabled ?? !0,
|
|
24304
24422
|
frameRate: e?.frameRate === 120 ? 120 : 60
|
|
24305
24423
|
};
|
|
24306
24424
|
}, m = (e) => {
|
|
24307
|
-
t.state.update(
|
|
24425
|
+
t.state.update(hE, (t) => {
|
|
24308
24426
|
let n = { ...t };
|
|
24309
24427
|
return e.toolEnabled !== void 0 && (n.toolEnabled = e.toolEnabled), (e.frameRate === 60 || e.frameRate === 120) && (n.frameRate = e.frameRate), n;
|
|
24310
24428
|
});
|
|
@@ -24317,13 +24435,13 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
24317
24435
|
height: null,
|
|
24318
24436
|
error: null
|
|
24319
24437
|
}, g = /* @__PURE__ */ new Set(), _ = null, v = null, y = null, b = null, x, S = null, C = 0, w = 0, T = 0, E = 0, D = -1, O = !1, k = null, A = () => {
|
|
24320
|
-
let e =
|
|
24438
|
+
let e = TE(h);
|
|
24321
24439
|
for (let t of g) t(e);
|
|
24322
24440
|
}, j = (e) => {
|
|
24323
24441
|
h = {
|
|
24324
24442
|
...h,
|
|
24325
24443
|
...e,
|
|
24326
|
-
rect: e.rect === void 0 ? h.rect :
|
|
24444
|
+
rect: e.rect === void 0 ? h.rect : wE(e.rect)
|
|
24327
24445
|
}, A();
|
|
24328
24446
|
}, M = () => h.status === "selecting" || h.status === "recording" || h.status === "exporting", N = () => {
|
|
24329
24447
|
if (S) return;
|
|
@@ -24346,7 +24464,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
24346
24464
|
let n = y;
|
|
24347
24465
|
y = null, e && await n?.cancel();
|
|
24348
24466
|
let r = v;
|
|
24349
|
-
v = null, r &&
|
|
24467
|
+
v = null, r && FT(r), x.hideRecordingMask(), x.hideRecordingStatus();
|
|
24350
24468
|
}, I = () => {
|
|
24351
24469
|
_ = null, z.dismiss(), j({
|
|
24352
24470
|
status: "idle",
|
|
@@ -24359,7 +24477,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
24359
24477
|
}), t.hook.emit("recording:discard", {});
|
|
24360
24478
|
}, L = async () => {
|
|
24361
24479
|
let e = _;
|
|
24362
|
-
return
|
|
24480
|
+
return GT(e?.width ?? Math.max(2, Math.round(i.innerWidth)), e?.height ?? Math.max(2, Math.round(i.innerHeight)), p().frameRate);
|
|
24363
24481
|
}, R = async (e = {}) => {
|
|
24364
24482
|
let n = _;
|
|
24365
24483
|
if (!n) throw Error("No recording is ready to export.");
|
|
@@ -24369,9 +24487,9 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
24369
24487
|
error: null
|
|
24370
24488
|
});
|
|
24371
24489
|
try {
|
|
24372
|
-
let r = await
|
|
24490
|
+
let r = await YT(n.blob, e), i = {
|
|
24373
24491
|
...r,
|
|
24374
|
-
filename:
|
|
24492
|
+
filename: XT(r.format)
|
|
24375
24493
|
};
|
|
24376
24494
|
return j({
|
|
24377
24495
|
status: "ready",
|
|
@@ -24393,7 +24511,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
24393
24511
|
error: e instanceof Error ? e.message : "Could not export the recording."
|
|
24394
24512
|
}), e;
|
|
24395
24513
|
}
|
|
24396
|
-
}, z =
|
|
24514
|
+
}, z = cE({
|
|
24397
24515
|
ownerDocument: r,
|
|
24398
24516
|
ownerWindow: i,
|
|
24399
24517
|
root: o,
|
|
@@ -24403,15 +24521,15 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
24403
24521
|
}), B = async () => {
|
|
24404
24522
|
if (k) return k;
|
|
24405
24523
|
if (h.status !== "recording" || !y || !v) throw Error("No recording is active.");
|
|
24406
|
-
let e = T, n = y, r = v, a =
|
|
24524
|
+
let e = T, n = y, r = v, a = wE(h.rect);
|
|
24407
24525
|
if (!a) throw Error("Recording region is unavailable.");
|
|
24408
24526
|
return k = (async () => {
|
|
24409
24527
|
C && i.cancelAnimationFrame(C), C = 0, w && i.clearTimeout(w), w = 0;
|
|
24410
24528
|
let s = b;
|
|
24411
24529
|
b = null, s && await s;
|
|
24412
24530
|
let c = await n.finalize();
|
|
24413
|
-
if (y = null, v = null,
|
|
24414
|
-
let l = await
|
|
24531
|
+
if (y = null, v = null, FT(r), T !== e || O) throw Error("Recording was cancelled.");
|
|
24532
|
+
let l = await JT(c), u = {
|
|
24415
24533
|
blob: c,
|
|
24416
24534
|
format: "webm",
|
|
24417
24535
|
duration: l.duration,
|
|
@@ -24451,12 +24569,12 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
24451
24569
|
let s = Math.max(0, (r - E) / 1e3);
|
|
24452
24570
|
j({ elapsed: s }), x.setRecordingTime(`${String(Math.floor(s / 60)).padStart(2, "0")}:${String(Math.floor(s % 60)).padStart(2, "0")}`);
|
|
24453
24571
|
let c = s;
|
|
24454
|
-
!b && c - D >= a * .8 && (
|
|
24572
|
+
!b && c - D >= a * .8 && (PT(e, h.rect ?? {
|
|
24455
24573
|
left: 0,
|
|
24456
24574
|
top: 0,
|
|
24457
24575
|
width: i.innerWidth,
|
|
24458
24576
|
height: i.innerHeight
|
|
24459
|
-
},
|
|
24577
|
+
}, _T(i)), D = c, b = t.addFrame(c, a).catch((e) => {
|
|
24460
24578
|
throw T === n && !O && F(!0).then(() => {
|
|
24461
24579
|
P();
|
|
24462
24580
|
let t = e instanceof Error ? e.message : "MediaBunny could not encode the recording.";
|
|
@@ -24482,21 +24600,21 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
24482
24600
|
error: null
|
|
24483
24601
|
}), x.setRecordingTime("00:00"), x.placeRecordingStatus(e);
|
|
24484
24602
|
try {
|
|
24485
|
-
let s = await
|
|
24603
|
+
let s = await NT(r, i, e, a);
|
|
24486
24604
|
if (O || T !== n) {
|
|
24487
|
-
|
|
24605
|
+
FT(s);
|
|
24488
24606
|
return;
|
|
24489
24607
|
}
|
|
24490
|
-
let c = await
|
|
24608
|
+
let c = await qT(s.canvas, {
|
|
24491
24609
|
format: "webm",
|
|
24492
24610
|
frameRate: a,
|
|
24493
24611
|
quality: f
|
|
24494
24612
|
});
|
|
24495
24613
|
if (O || T !== n) {
|
|
24496
|
-
await c.cancel(),
|
|
24614
|
+
await c.cancel(), FT(s);
|
|
24497
24615
|
return;
|
|
24498
24616
|
}
|
|
24499
|
-
if (v = s, y = c, E = i.performance.now(), D = 0,
|
|
24617
|
+
if (v = s, y = c, E = i.performance.now(), D = 0, PT(s, e, _T(i)), await c.addFrame(0, 1 / a), O || T !== n) {
|
|
24500
24618
|
await F(!0);
|
|
24501
24619
|
return;
|
|
24502
24620
|
}
|
|
@@ -24557,7 +24675,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
24557
24675
|
error: null
|
|
24558
24676
|
});
|
|
24559
24677
|
};
|
|
24560
|
-
x =
|
|
24678
|
+
x = dE({
|
|
24561
24679
|
ownerDocument: r,
|
|
24562
24680
|
ownerWindow: i,
|
|
24563
24681
|
root: o,
|
|
@@ -24574,7 +24692,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
24574
24692
|
setRecordingInteractionActive: u.setActive
|
|
24575
24693
|
});
|
|
24576
24694
|
let te = {
|
|
24577
|
-
snapshot: () =>
|
|
24695
|
+
snapshot: () => TE(h),
|
|
24578
24696
|
subscribe(e) {
|
|
24579
24697
|
return g.add(e), () => g.delete(e);
|
|
24580
24698
|
},
|
|
@@ -24592,10 +24710,10 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
24592
24710
|
label: "Record",
|
|
24593
24711
|
shortcut: "Shift+R",
|
|
24594
24712
|
order: 72,
|
|
24595
|
-
command:
|
|
24713
|
+
command: _E,
|
|
24596
24714
|
toolbarMode: "select",
|
|
24597
24715
|
compactPinned: !0,
|
|
24598
|
-
icon:
|
|
24716
|
+
icon: CE,
|
|
24599
24717
|
active: M,
|
|
24600
24718
|
hidden: () => !p().toolEnabled,
|
|
24601
24719
|
menu: {
|
|
@@ -24645,21 +24763,21 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
24645
24763
|
m({ frameRate: e ? 120 : 60 });
|
|
24646
24764
|
}
|
|
24647
24765
|
}]
|
|
24648
|
-
}), t.command.register(
|
|
24649
|
-
let t = await R(
|
|
24650
|
-
return
|
|
24651
|
-
}), t.service.provide(
|
|
24766
|
+
}), t.command.register(_E, async () => (await U(), AE(h))), t.command.register(vE, async () => ME(await B())), t.command.register(yE, () => (I(), AE(h))), t.command.register(bE, async (e) => {
|
|
24767
|
+
let t = await R(kE(e));
|
|
24768
|
+
return NE(t, r, i), jE(t);
|
|
24769
|
+
}), t.service.provide(mE, te), t.lifecycle.onDispose(() => {
|
|
24652
24770
|
O = !0, ++T, g.clear(), z.dispose(), x.dispose(), P(), F(!0), s.dispose(), a.dispose();
|
|
24653
24771
|
});
|
|
24654
24772
|
}
|
|
24655
|
-
}),
|
|
24773
|
+
}), FE = 144, IE = 96, LE = 8, RE = 4, zE = 1800, BE = 200, VE = (e, t) => {
|
|
24656
24774
|
for (let [n, r] of Object.entries(t)) e.style.setProperty(n, r);
|
|
24657
|
-
},
|
|
24658
|
-
left: Math.min(Math.max(
|
|
24659
|
-
top: Math.min(Math.max(
|
|
24660
|
-
}),
|
|
24775
|
+
}, HE = (e, t) => ({
|
|
24776
|
+
left: Math.min(Math.max(LE, e.left), Math.max(LE, t.innerWidth - FE - LE)),
|
|
24777
|
+
top: Math.min(Math.max(LE, e.top), Math.max(LE, t.innerHeight - IE - LE))
|
|
24778
|
+
}), UE = (e, t) => {
|
|
24661
24779
|
let n = e.createElement("button");
|
|
24662
|
-
return n.type = "button", n.textContent = t,
|
|
24780
|
+
return n.type = "button", n.textContent = t, VE(n, {
|
|
24663
24781
|
height: "32px",
|
|
24664
24782
|
padding: "0 12px",
|
|
24665
24783
|
border: "1px solid rgb(255 255 255 / 18%)",
|
|
@@ -24671,11 +24789,11 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
24671
24789
|
"font-weight": "500",
|
|
24672
24790
|
cursor: "pointer"
|
|
24673
24791
|
}), n;
|
|
24674
|
-
},
|
|
24792
|
+
}, WE = ({ copied: e, downloaded: t, copyFailed: n, downloadFailed: r }) => e && t ? "Copied and saved screenshot" : e && r ? "Copied screenshot · Save unavailable" : t && n ? "Saved screenshot · Copy unavailable" : e ? "Copied screenshot" : t ? "Saved screenshot" : n && r ? "Screenshot captured · Copy and save unavailable" : n ? "Screenshot captured · Copy unavailable" : r ? "Screenshot captured · Save unavailable" : "Screenshot captured", GE = (e) => e !== null && (e.nodeType === 1 || e.nodeType === 11), KE = ({ ownerDocument: e, ownerWindow: t, root: n, previewDurationMs: r }) => {
|
|
24675
24793
|
let i = n.closest("[data-mesurer-root='true']") ?? n.parentNode;
|
|
24676
|
-
if (!
|
|
24794
|
+
if (!GE(i)) throw Error("Screenshot preview requires a mounted Mesurer host.");
|
|
24677
24795
|
let a = e.createElement("div");
|
|
24678
|
-
a.dataset.mesurerInspectorUi = "true", a.dataset.mesurerScreenshotInteractive = "true",
|
|
24796
|
+
a.dataset.mesurerInspectorUi = "true", a.dataset.mesurerScreenshotInteractive = "true", VE(a, {
|
|
24679
24797
|
position: "fixed",
|
|
24680
24798
|
left: "0",
|
|
24681
24799
|
top: "0",
|
|
@@ -24687,12 +24805,12 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
24687
24805
|
"font-family": "ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif"
|
|
24688
24806
|
}), i.append(a);
|
|
24689
24807
|
let o = e.createElement("div");
|
|
24690
|
-
o.dataset.mesurerScreenshotPreview = "true", o.setAttribute("role", "button"), o.setAttribute("aria-label", "Open captured screenshot"), o.tabIndex = 0,
|
|
24808
|
+
o.dataset.mesurerScreenshotPreview = "true", o.setAttribute("role", "button"), o.setAttribute("aria-label", "Open captured screenshot"), o.tabIndex = 0, VE(o, {
|
|
24691
24809
|
position: "fixed",
|
|
24692
24810
|
display: "none",
|
|
24693
24811
|
"z-index": "96",
|
|
24694
|
-
width: `${
|
|
24695
|
-
height: `${
|
|
24812
|
+
width: `${FE}px`,
|
|
24813
|
+
height: `${IE}px`,
|
|
24696
24814
|
"box-sizing": "border-box",
|
|
24697
24815
|
overflow: "hidden",
|
|
24698
24816
|
"border-radius": "10px",
|
|
@@ -24705,7 +24823,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
24705
24823
|
"touch-action": "none"
|
|
24706
24824
|
});
|
|
24707
24825
|
let s = e.createElement("img");
|
|
24708
|
-
s.dataset.mesurerScreenshotPreviewImage = "true", s.alt = "Captured screenshot", s.draggable = !1, s.title = "Click to open · Right-click for browser image actions",
|
|
24826
|
+
s.dataset.mesurerScreenshotPreviewImage = "true", s.alt = "Captured screenshot", s.draggable = !1, s.title = "Click to open · Right-click for browser image actions", VE(s, {
|
|
24709
24827
|
display: "block",
|
|
24710
24828
|
width: "100%",
|
|
24711
24829
|
height: "100%",
|
|
@@ -24713,7 +24831,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
24713
24831
|
"background-color": "white"
|
|
24714
24832
|
}), o.append(s);
|
|
24715
24833
|
let c = e.createElement("button");
|
|
24716
|
-
c.dataset.mesurerScreenshotPreviewDismiss = "true", c.type = "button", c.setAttribute("aria-label", "Dismiss screenshot preview"), c.title = "Dismiss",
|
|
24834
|
+
c.dataset.mesurerScreenshotPreviewDismiss = "true", c.type = "button", c.setAttribute("aria-label", "Dismiss screenshot preview"), c.title = "Dismiss", VE(c, {
|
|
24717
24835
|
position: "absolute",
|
|
24718
24836
|
top: "8px",
|
|
24719
24837
|
right: "8px",
|
|
@@ -24740,7 +24858,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
24740
24858
|
let u = e.createElementNS("http://www.w3.org/2000/svg", "path");
|
|
24741
24859
|
u.setAttribute("d", "m4 4 8 8M12 4l-8 8"), u.setAttribute("stroke", "currentColor"), u.setAttribute("stroke-width", "1.75"), u.setAttribute("stroke-linecap", "round"), l.append(u), c.append(l), o.append(c), a.append(o);
|
|
24742
24860
|
let d = e.createElement("div");
|
|
24743
|
-
d.dataset.mesurerScreenshotViewer = "true", d.setAttribute("role", "dialog"), d.setAttribute("aria-modal", "true"), d.setAttribute("aria-label", "Screenshot viewer"),
|
|
24861
|
+
d.dataset.mesurerScreenshotViewer = "true", d.setAttribute("role", "dialog"), d.setAttribute("aria-modal", "true"), d.setAttribute("aria-label", "Screenshot viewer"), VE(d, {
|
|
24744
24862
|
position: "fixed",
|
|
24745
24863
|
inset: "0",
|
|
24746
24864
|
display: "none",
|
|
@@ -24754,7 +24872,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
24754
24872
|
"pointer-events": "auto"
|
|
24755
24873
|
});
|
|
24756
24874
|
let f = e.createElement("img");
|
|
24757
|
-
f.dataset.mesurerScreenshotViewerImage = "true", f.alt = "Captured screenshot",
|
|
24875
|
+
f.dataset.mesurerScreenshotViewerImage = "true", f.alt = "Captured screenshot", VE(f, {
|
|
24758
24876
|
display: "block",
|
|
24759
24877
|
"max-width": "calc(100vw - 96px)",
|
|
24760
24878
|
"max-height": "calc(100vh - 112px)",
|
|
@@ -24765,7 +24883,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
24765
24883
|
"box-shadow": "0 8px 30px rgb(0 0 0 / 28%)"
|
|
24766
24884
|
}), d.append(f);
|
|
24767
24885
|
let p = e.createElement("div");
|
|
24768
|
-
p.dataset.mesurerScreenshotViewerControls = "true",
|
|
24886
|
+
p.dataset.mesurerScreenshotViewerControls = "true", VE(p, {
|
|
24769
24887
|
position: "fixed",
|
|
24770
24888
|
top: "16px",
|
|
24771
24889
|
right: "16px",
|
|
@@ -24773,14 +24891,14 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
24773
24891
|
gap: "8px",
|
|
24774
24892
|
"pointer-events": "auto"
|
|
24775
24893
|
});
|
|
24776
|
-
let m =
|
|
24894
|
+
let m = UE(e, "Copy");
|
|
24777
24895
|
m.dataset.mesurerScreenshotViewerCopy = "true", m.setAttribute("aria-label", "Copy screenshot");
|
|
24778
|
-
let h =
|
|
24896
|
+
let h = UE(e, "Save");
|
|
24779
24897
|
h.dataset.mesurerScreenshotViewerSave = "true", h.setAttribute("aria-label", "Save screenshot");
|
|
24780
|
-
let g =
|
|
24898
|
+
let g = UE(e, "Close");
|
|
24781
24899
|
g.dataset.mesurerScreenshotViewerClose = "true", g.setAttribute("aria-label", "Close screenshot viewer"), p.append(m, h, g), d.append(p), a.append(d);
|
|
24782
24900
|
let _ = e.createElement("div");
|
|
24783
|
-
_.dataset.mesurerScreenshotToast = "true", _.setAttribute("role", "status"),
|
|
24901
|
+
_.dataset.mesurerScreenshotToast = "true", _.setAttribute("role", "status"), VE(_, {
|
|
24784
24902
|
position: "fixed",
|
|
24785
24903
|
left: "50%",
|
|
24786
24904
|
bottom: "20px",
|
|
@@ -24802,7 +24920,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
24802
24920
|
}, O = (e, n = !1) => {
|
|
24803
24921
|
D(), _.textContent = e, _.style.backgroundColor = n ? "#b42318" : "rgb(28 28 30 / 90%)", _.style.display = "block", C = t.setTimeout(() => {
|
|
24804
24922
|
C = 0, _.style.display = "none";
|
|
24805
|
-
},
|
|
24923
|
+
}, zE);
|
|
24806
24924
|
}, k = () => {
|
|
24807
24925
|
d.style.display = "none";
|
|
24808
24926
|
}, A = () => {
|
|
@@ -24812,7 +24930,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
24812
24930
|
}, M = () => {
|
|
24813
24931
|
if (!v || o.style.display === "none" || w) return;
|
|
24814
24932
|
E(), k();
|
|
24815
|
-
let e = o.getBoundingClientRect(), n = Math.max(152, t.innerWidth - e.left +
|
|
24933
|
+
let e = o.getBoundingClientRect(), n = Math.max(152, t.innerWidth - e.left + LE);
|
|
24816
24934
|
o.style.pointerEvents = "none", o.style.willChange = "transform, opacity";
|
|
24817
24935
|
let r = o.animate([{
|
|
24818
24936
|
transform: "translateX(0) scale(1)",
|
|
@@ -24821,18 +24939,18 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
24821
24939
|
transform: `translateX(${n}px) scale(0.92)`,
|
|
24822
24940
|
opacity: 0
|
|
24823
24941
|
}], {
|
|
24824
|
-
duration:
|
|
24942
|
+
duration: BE,
|
|
24825
24943
|
easing: "ease",
|
|
24826
24944
|
fill: "forwards"
|
|
24827
24945
|
});
|
|
24828
24946
|
w = r, r.finished.catch(() => void 0).then(() => {
|
|
24829
24947
|
w === r && (r.cancel(), w = null, j());
|
|
24830
24948
|
});
|
|
24831
|
-
}, N = () =>
|
|
24832
|
-
left: t.innerWidth -
|
|
24833
|
-
top: t.innerHeight -
|
|
24949
|
+
}, N = () => HE({
|
|
24950
|
+
left: t.innerWidth - FE - LE,
|
|
24951
|
+
top: t.innerHeight - IE - LE
|
|
24834
24952
|
}, t), P = (e) => {
|
|
24835
|
-
let n =
|
|
24953
|
+
let n = HE(e, t);
|
|
24836
24954
|
b = n, o.style.left = `${n.left}px`, o.style.top = `${n.top}px`;
|
|
24837
24955
|
}, F = () => {
|
|
24838
24956
|
!v || !y || (E(), d.style.display = "flex", g.focus());
|
|
@@ -24866,7 +24984,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
24866
24984
|
let n = x;
|
|
24867
24985
|
if (!n) return;
|
|
24868
24986
|
let r = e - n.startX, i = t - n.startY;
|
|
24869
|
-
!n.moved && Math.hypot(r, i) >=
|
|
24987
|
+
!n.moved && Math.hypot(r, i) >= RE && (n.moved = !0), n.moved && P({
|
|
24870
24988
|
left: n.left + r,
|
|
24871
24989
|
top: n.top + i
|
|
24872
24990
|
});
|
|
@@ -24910,25 +25028,25 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
24910
25028
|
if (T) return;
|
|
24911
25029
|
E(), k(), w &&= (w.cancel(), null), o.style.opacity = "1", o.style.transform = "none", o.style.willChange = "transform, opacity", o.style.pointerEvents = "auto", A(), v = e;
|
|
24912
25030
|
let i = globalThis.URL.createObjectURL(e);
|
|
24913
|
-
y = i, s.src = i, f.src = i, o.style.display = "block", P(b ?? N()), O(
|
|
25031
|
+
y = i, s.src = i, f.src = i, o.style.display = "block", P(b ?? N()), O(WE(n)), r > 0 && (S = t.setTimeout(j, r));
|
|
24914
25032
|
},
|
|
24915
25033
|
dismiss: j,
|
|
24916
25034
|
dispose() {
|
|
24917
25035
|
T || (T = !0, E(), D(), j(), t.removeEventListener("mousemove", H, !0), t.removeEventListener("mouseup", U, !0), t.removeEventListener("pointermove", te, !0), t.removeEventListener("pointerup", ne, !0), t.removeEventListener("pointercancel", re, !0), t.removeEventListener("keydown", oe, !0), o.removeEventListener("mousedown", ee), o.removeEventListener("pointerdown", W), o.removeEventListener("keydown", ie), o.removeEventListener("contextmenu", G), d.removeEventListener("click", ae), a.remove());
|
|
24918
25036
|
}
|
|
24919
25037
|
};
|
|
24920
|
-
},
|
|
25038
|
+
}, qE = "mesurer.screenshot", JE = "screenshot", YE = "mesurer.screenshot.settings", XE = "mesurer.screenshot.active", ZE = "runtime:solid", QE = "screenshot.toggle", $E = 2500, eD = 0, tD = [
|
|
24921
25039
|
"[data-mesurer-measurement='true']",
|
|
24922
25040
|
"[data-mesurer-selected-measurement='true']",
|
|
24923
25041
|
"[data-mesurer-selection-spacing-target='true']",
|
|
24924
25042
|
"[data-mesurer-guide='true']",
|
|
24925
25043
|
"[data-mesurer-distance='true']"
|
|
24926
|
-
].join(","),
|
|
25044
|
+
].join(","), nD = `${tD},[data-mesurer-rulers='true'],[data-mesurer-multi-selection-document-layer='true']`, rD = {
|
|
24927
25045
|
viewBox: "0 0 256 256",
|
|
24928
25046
|
paths: ["m 96,50 a 6.0006,6.0006 0 0 0 -4.992188,2.671875 L 76.789062,74 H 40 C 27.920803,74 18,83.920803 18,96 v 96 c 0,12.0792 9.920803,22 22,22 h 176 c 12.0792,0 22,-9.9208 22,-22 V 96 C 238,83.920803 228.0792,74 216,74 H 179.21094 L 164.99219,52.671875 A 6.0006,6.0006 0 0 0 160,50 Z m 3.210937,12 h 57.578123 l 14.21875,21.328125 A 6.0006,6.0006 0 0 0 176,86 h 40 c 5.59392,0 10,4.406085 10,10 v 96 c 0,5.59392 -4.40608,10 -10,10 H 40 c -5.593915,0 -10,-4.40608 -10,-10 V 96 c 0,-5.593915 4.406085,-10 10,-10 h 40 a 6.0006,6.0006 0 0 0 4.992187,-2.671875 z", "m 128,94 c -23.12489,0 -42,18.87511 -42,42 0,23.12489 18.87511,42 42,42 23.12489,0 42,-18.87511 42,-42 0,-23.12489 -18.87511,-42 -42,-42 z m 0,12 c 16.63961,0 30,13.36039 30,30 0,16.63961 -13.36039,30 -30,30 -16.63961,0 -30,-13.36039 -30,-30 0,-16.63961 13.36039,-30 30,-30 z"]
|
|
24929
|
-
},
|
|
25047
|
+
}, iD = (e, t) => {
|
|
24930
25048
|
for (let [n, r] of Object.entries(t)) e.style.setProperty(n, r);
|
|
24931
|
-
},
|
|
25049
|
+
}, aD = (e, t) => {
|
|
24932
25050
|
for (let n of [
|
|
24933
25051
|
"left",
|
|
24934
25052
|
"top",
|
|
@@ -24940,63 +25058,63 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
24940
25058
|
let r = t[n];
|
|
24941
25059
|
r === void 0 ? e.style.removeProperty(n) : e.style.setProperty(n, `${r}px`);
|
|
24942
25060
|
}
|
|
24943
|
-
},
|
|
24944
|
-
let t = e(
|
|
25061
|
+
}, oD = (e) => {
|
|
25062
|
+
let t = e(YE);
|
|
24945
25063
|
return {
|
|
24946
25064
|
toolEnabled: t?.toolEnabled ?? !0,
|
|
24947
25065
|
copy: t?.copy ?? !0,
|
|
24948
25066
|
download: t?.download ?? !1,
|
|
24949
25067
|
includeMeasurements: t?.includeMeasurements ?? !1
|
|
24950
25068
|
};
|
|
24951
|
-
},
|
|
25069
|
+
}, sD = (e) => ({
|
|
24952
25070
|
value: e.style.getPropertyValue("display"),
|
|
24953
25071
|
priority: e.style.getPropertyPriority("display")
|
|
24954
|
-
}),
|
|
25072
|
+
}), cD = (e, t) => {
|
|
24955
25073
|
t.value || t.priority ? e.style.setProperty("display", t.value, t.priority) : e.style.removeProperty("display");
|
|
24956
|
-
},
|
|
25074
|
+
}, lD = (e, t) => {
|
|
24957
25075
|
let n = e;
|
|
24958
25076
|
for (; n.parentElement && n.parentElement !== t;) n = n.parentElement;
|
|
24959
25077
|
return n.parentElement === t ? n : null;
|
|
24960
|
-
},
|
|
25078
|
+
}, uD = (e) => {
|
|
24961
25079
|
let t = e.querySelector("[data-mesurer-root='true']");
|
|
24962
25080
|
if (!t) return () => void 0;
|
|
24963
25081
|
let n = /* @__PURE__ */ new Set();
|
|
24964
25082
|
for (let e of t.querySelectorAll("[data-mesurer-rulers='true']")) {
|
|
24965
|
-
let r =
|
|
25083
|
+
let r = lD(e, t);
|
|
24966
25084
|
r && n.add(r);
|
|
24967
25085
|
}
|
|
24968
|
-
for (let e of t.querySelectorAll(
|
|
24969
|
-
let r =
|
|
25086
|
+
for (let e of t.querySelectorAll(tD)) {
|
|
25087
|
+
let r = lD(e, t);
|
|
24970
25088
|
r && n.add(r);
|
|
24971
25089
|
}
|
|
24972
25090
|
let r = [];
|
|
24973
25091
|
for (let e of n) e.dataset.mesurerInspectorUi !== "true" && (r.push({
|
|
24974
25092
|
element: e,
|
|
24975
|
-
display:
|
|
25093
|
+
display: sD(e)
|
|
24976
25094
|
}), e.style.setProperty("display", "none", "important"));
|
|
24977
25095
|
return () => {
|
|
24978
|
-
for (let e of r)
|
|
25096
|
+
for (let e of r) cD(e.element, e.display);
|
|
24979
25097
|
};
|
|
24980
|
-
},
|
|
25098
|
+
}, dD = (e) => Array.from(e.querySelectorAll(nD)).filter((e) => e.dataset.mesurerInspectorUi === "true").map((e) => ({
|
|
24981
25099
|
element: e,
|
|
24982
|
-
display:
|
|
24983
|
-
})),
|
|
24984
|
-
for (let t of e) t.element.isConnected &&
|
|
24985
|
-
},
|
|
24986
|
-
id:
|
|
25100
|
+
display: sD(e)
|
|
25101
|
+
})), fD = (e) => {
|
|
25102
|
+
for (let t of e) t.element.isConnected && cD(t.element, t.display);
|
|
25103
|
+
}, pD = (e = {}) => kc({
|
|
25104
|
+
id: qE,
|
|
24987
25105
|
version: "0.1.0",
|
|
24988
|
-
requires: [
|
|
25106
|
+
requires: [ZE],
|
|
24989
25107
|
provides: [
|
|
24990
25108
|
"tool:screenshot",
|
|
24991
25109
|
"capture:screenshot",
|
|
24992
25110
|
"settings:screenshot"
|
|
24993
25111
|
],
|
|
24994
25112
|
setup(t) {
|
|
24995
|
-
let n = t.service.get(
|
|
25113
|
+
let n = t.service.get(ZE);
|
|
24996
25114
|
if (!n) throw Error("Screenshot plugin requires the Solid renderer runtime.");
|
|
24997
|
-
let { ownerDocument: r, ownerWindow: i } = n, a = n.createWorkspaceRuntime(), o = n.createInspectorMount(), s = e.capture ?? e.captureVisibleTab, c = s ?? Cl, l = e.previewDurationMs ??
|
|
25115
|
+
let { ownerDocument: r, ownerWindow: i } = n, a = n.createWorkspaceRuntime(), o = n.createInspectorMount(), s = e.capture ?? e.captureVisibleTab, c = s ?? Cl, l = e.previewDurationMs ?? eD;
|
|
24998
25116
|
t.state.register({
|
|
24999
|
-
id:
|
|
25117
|
+
id: YE,
|
|
25000
25118
|
initial: {
|
|
25001
25119
|
toolEnabled: e.toolEnabled ?? !0,
|
|
25002
25120
|
copy: e.copy ?? !0,
|
|
@@ -25005,11 +25123,11 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
25005
25123
|
},
|
|
25006
25124
|
persist: !0
|
|
25007
25125
|
}), t.state.register({
|
|
25008
|
-
id:
|
|
25126
|
+
id: XE,
|
|
25009
25127
|
initial: !1
|
|
25010
25128
|
});
|
|
25011
25129
|
let u = o.element;
|
|
25012
|
-
u.dataset.mesurerScreenshot = "true",
|
|
25130
|
+
u.dataset.mesurerScreenshot = "true", iD(u, {
|
|
25013
25131
|
position: "fixed",
|
|
25014
25132
|
inset: "0",
|
|
25015
25133
|
"z-index": "85",
|
|
@@ -25017,7 +25135,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
25017
25135
|
"font-family": "ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif"
|
|
25018
25136
|
});
|
|
25019
25137
|
let d = r.createElement("div");
|
|
25020
|
-
d.dataset.mesurerScreenshotSelect = "true", d.setAttribute("role", "application"), d.setAttribute("aria-label", "Screenshot selection"),
|
|
25138
|
+
d.dataset.mesurerScreenshotSelect = "true", d.setAttribute("role", "application"), d.setAttribute("aria-label", "Screenshot selection"), iD(d, {
|
|
25021
25139
|
position: "fixed",
|
|
25022
25140
|
inset: "0",
|
|
25023
25141
|
display: "none",
|
|
@@ -25029,13 +25147,13 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
25029
25147
|
}), u.append(d);
|
|
25030
25148
|
let f = Array.from({ length: 4 }, () => {
|
|
25031
25149
|
let e = r.createElement("div");
|
|
25032
|
-
return
|
|
25150
|
+
return iD(e, {
|
|
25033
25151
|
position: "fixed",
|
|
25034
25152
|
"background-color": "rgb(0 0 0 / 40%)",
|
|
25035
25153
|
"pointer-events": "none"
|
|
25036
25154
|
}), d.append(e), e;
|
|
25037
25155
|
}), p = r.createElement("div");
|
|
25038
|
-
|
|
25156
|
+
iD(p, {
|
|
25039
25157
|
position: "fixed",
|
|
25040
25158
|
display: "none",
|
|
25041
25159
|
border: "1px solid #0d99ff",
|
|
@@ -25043,7 +25161,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
25043
25161
|
"pointer-events": "none"
|
|
25044
25162
|
}), d.append(p);
|
|
25045
25163
|
let m = r.createElement("div");
|
|
25046
|
-
|
|
25164
|
+
iD(m, {
|
|
25047
25165
|
position: "fixed",
|
|
25048
25166
|
display: "none",
|
|
25049
25167
|
"z-index": "86",
|
|
@@ -25057,7 +25175,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
25057
25175
|
"pointer-events": "none"
|
|
25058
25176
|
}), d.append(m);
|
|
25059
25177
|
let h = r.createElement("div");
|
|
25060
|
-
h.textContent = "Drag to select · Esc to cancel",
|
|
25178
|
+
h.textContent = "Drag to select · Esc to cancel", iD(h, {
|
|
25061
25179
|
position: "fixed",
|
|
25062
25180
|
left: "50%",
|
|
25063
25181
|
bottom: "16px",
|
|
@@ -25070,7 +25188,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
25070
25188
|
"pointer-events": "none"
|
|
25071
25189
|
}), d.append(h);
|
|
25072
25190
|
let g = r.createElement("div");
|
|
25073
|
-
g.dataset.mesurerScreenshotError = "true", g.setAttribute("role", "status"), g.textContent = "Could not save screenshot",
|
|
25191
|
+
g.dataset.mesurerScreenshotError = "true", g.setAttribute("role", "status"), g.textContent = "Could not save screenshot", iD(g, {
|
|
25074
25192
|
position: "fixed",
|
|
25075
25193
|
display: "none",
|
|
25076
25194
|
"z-index": "97",
|
|
@@ -25081,8 +25199,8 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
25081
25199
|
"font-size": "11px",
|
|
25082
25200
|
"pointer-events": "none"
|
|
25083
25201
|
}), u.append(g);
|
|
25084
|
-
let _ = null, v = null, y = 0, b = 0, x = !1, S = !1, C = !1, w = () => t.state.get("mesurer.screenshot.active") ?? !1, T = () =>
|
|
25085
|
-
t.state.update(
|
|
25202
|
+
let _ = null, v = null, y = 0, b = 0, x = !1, S = !1, C = !1, w = () => t.state.get("mesurer.screenshot.active") ?? !1, T = () => oD(t.state.get), E = (e) => {
|
|
25203
|
+
t.state.update(YE, (t) => {
|
|
25086
25204
|
let n = { ...t };
|
|
25087
25205
|
return e.toolEnabled !== void 0 && (n.toolEnabled = e.toolEnabled), e.copy !== void 0 && (n.copy = e.copy), e.download !== void 0 && (n.download = e.download), e.includeMeasurements !== void 0 && (n.includeMeasurements = e.includeMeasurements), n;
|
|
25088
25206
|
});
|
|
@@ -25105,13 +25223,13 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
25105
25223
|
}, A = (e) => {
|
|
25106
25224
|
let t = i.innerWidth, n = i.innerHeight;
|
|
25107
25225
|
if (!e || e.width <= 0 || e.height <= 0) {
|
|
25108
|
-
|
|
25226
|
+
aD(f[0], {
|
|
25109
25227
|
left: 0,
|
|
25110
25228
|
top: 0,
|
|
25111
25229
|
width: t,
|
|
25112
25230
|
height: n
|
|
25113
25231
|
});
|
|
25114
|
-
for (let e of f.slice(1))
|
|
25232
|
+
for (let e of f.slice(1)) aD(e, {
|
|
25115
25233
|
left: 0,
|
|
25116
25234
|
top: 0,
|
|
25117
25235
|
width: 0,
|
|
@@ -25120,31 +25238,31 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
25120
25238
|
p.style.display = "none", m.style.display = "none";
|
|
25121
25239
|
return;
|
|
25122
25240
|
}
|
|
25123
|
-
|
|
25241
|
+
aD(f[0], {
|
|
25124
25242
|
left: 0,
|
|
25125
25243
|
top: 0,
|
|
25126
25244
|
width: t,
|
|
25127
25245
|
height: e.top
|
|
25128
|
-
}),
|
|
25246
|
+
}), aD(f[1], {
|
|
25129
25247
|
left: 0,
|
|
25130
25248
|
top: e.top,
|
|
25131
25249
|
width: e.left,
|
|
25132
25250
|
height: e.height
|
|
25133
|
-
}),
|
|
25251
|
+
}), aD(f[2], {
|
|
25134
25252
|
left: e.left + e.width,
|
|
25135
25253
|
top: e.top,
|
|
25136
25254
|
width: Math.max(0, t - e.left - e.width),
|
|
25137
25255
|
height: e.height
|
|
25138
|
-
}),
|
|
25256
|
+
}), aD(f[3], {
|
|
25139
25257
|
left: 0,
|
|
25140
25258
|
top: e.top + e.height,
|
|
25141
25259
|
width: t,
|
|
25142
25260
|
height: Math.max(0, n - e.top - e.height)
|
|
25143
|
-
}), p.style.display = "block",
|
|
25261
|
+
}), p.style.display = "block", aD(p, e), m.style.display = "block", m.textContent = `${Math.round(e.width)} × ${Math.round(e.height)}`, aD(m, {
|
|
25144
25262
|
left: e.left + e.width / 2,
|
|
25145
25263
|
top: Math.min(n - 22, e.top + e.height + 6)
|
|
25146
25264
|
});
|
|
25147
|
-
}, j = () => n.portalTarget.querySelector("[data-mesurer-tool-id='screenshot']")?.getBoundingClientRect() ?? null, M =
|
|
25265
|
+
}, j = () => n.portalTarget.querySelector("[data-mesurer-tool-id='screenshot']")?.getBoundingClientRect() ?? null, M = KE({
|
|
25148
25266
|
ownerDocument: r,
|
|
25149
25267
|
ownerWindow: i,
|
|
25150
25268
|
root: u,
|
|
@@ -25155,7 +25273,7 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
25155
25273
|
}, P = () => {
|
|
25156
25274
|
y && i.clearTimeout(y), g.style.display = "block", N(g), y = i.setTimeout(() => {
|
|
25157
25275
|
y = 0, g.style.display = "none";
|
|
25158
|
-
},
|
|
25276
|
+
}, $E);
|
|
25159
25277
|
}, F = () => {
|
|
25160
25278
|
_ = null, A(null), d.style.visibility = "", d.style.display = "none", u.style.pointerEvents = "none", D(!1), k();
|
|
25161
25279
|
}, I = () => {
|
|
@@ -25164,8 +25282,8 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
25164
25282
|
if (x) throw Error("A screenshot capture is already running.");
|
|
25165
25283
|
if (e.width < 4 || e.height < 4) throw Error("Screenshot selection must be at least 4px by 4px.");
|
|
25166
25284
|
x = !0;
|
|
25167
|
-
let o = ++b, s = T(), l = s.includeMeasurements ?
|
|
25168
|
-
a.prepareCapture(), s.includeMeasurements &&
|
|
25285
|
+
let o = ++b, s = T(), l = s.includeMeasurements ? dD(r) : [], u = s.includeMeasurements ? () => void 0 : uD(n.portalTarget);
|
|
25286
|
+
a.prepareCapture(), s.includeMeasurements && fD(l);
|
|
25169
25287
|
try {
|
|
25170
25288
|
d.style.visibility = "hidden", await al(i);
|
|
25171
25289
|
let n = await tl(await c({
|
|
@@ -25273,10 +25391,10 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
25273
25391
|
label: "Screenshot",
|
|
25274
25392
|
shortcut: "Shift+S",
|
|
25275
25393
|
order: 70,
|
|
25276
|
-
command:
|
|
25394
|
+
command: QE,
|
|
25277
25395
|
toolbarMode: "select",
|
|
25278
25396
|
compactPinned: !0,
|
|
25279
|
-
icon:
|
|
25397
|
+
icon: rD,
|
|
25280
25398
|
active: w,
|
|
25281
25399
|
hidden: () => !T().toolEnabled,
|
|
25282
25400
|
menu: {
|
|
@@ -25342,31 +25460,31 @@ var Fw = "mesurer.layout-guides", Iw = "layout-guides:v1", Lw = "mesurer.layout-
|
|
|
25342
25460
|
set: (e) => E({ includeMeasurements: e })
|
|
25343
25461
|
}
|
|
25344
25462
|
]
|
|
25345
|
-
}), t.command.register(
|
|
25463
|
+
}), t.command.register(QE, R), t.service.provide(JE, U), t.lifecycle.onDispose(() => {
|
|
25346
25464
|
C = !0, b += 1, d.removeEventListener("pointerdown", z), d.removeEventListener("pointermove", B), d.removeEventListener("pointerup", V), d.removeEventListener("pointercancel", ee), i.removeEventListener("keydown", H, !0), y && i.clearTimeout(y), M.dispose(), k(), wl(i), a.finishCapture(), a.dispose(), o.dispose();
|
|
25347
25465
|
});
|
|
25348
25466
|
}
|
|
25349
|
-
}),
|
|
25467
|
+
}), mD = (e) => Number.parseFloat(e) || 0, hD = 0, gD = (e, t) => {
|
|
25350
25468
|
let n = t.CSS;
|
|
25351
25469
|
return n?.escape ? n.escape(e) : e.replace(/[^a-zA-Z0-9_-]/g, (e) => `\\${e}`);
|
|
25352
|
-
},
|
|
25353
|
-
function
|
|
25470
|
+
}, _D = (e) => e.nodeType === 9, vD = (e) => e.nodeType === 11;
|
|
25471
|
+
function yD(e) {
|
|
25354
25472
|
let t = e.getRootNode();
|
|
25355
|
-
return
|
|
25473
|
+
return vD(t) ? t : e.ownerDocument;
|
|
25356
25474
|
}
|
|
25357
|
-
var
|
|
25358
|
-
if (
|
|
25359
|
-
let n =
|
|
25360
|
-
return
|
|
25361
|
-
},
|
|
25475
|
+
var bD = (e, t) => {
|
|
25476
|
+
if (_D(e) || vD(e)) return e;
|
|
25477
|
+
let n = yD(e);
|
|
25478
|
+
return vD(n) ? n : t;
|
|
25479
|
+
}, xD = 600, SD = "audio, canvas, embed, iframe, img, input, object, picture, select, textarea, video", CD = /* @__PURE__ */ new WeakMap(), wD = (e) => {
|
|
25362
25480
|
let t = e;
|
|
25363
25481
|
for (; t;) {
|
|
25364
|
-
if ((
|
|
25482
|
+
if ((CD.get(t) ?? 0) > 0) return !0;
|
|
25365
25483
|
let e = t.getRootNode();
|
|
25366
|
-
t =
|
|
25484
|
+
t = vD(e) ? e.host : t.parentElement;
|
|
25367
25485
|
}
|
|
25368
25486
|
return !1;
|
|
25369
|
-
},
|
|
25487
|
+
}, TD = (e, t) => t.x >= e.left && t.x <= e.right && t.y >= e.top && t.y <= e.bottom, ED = (e, t) => Array.from(e.getClientRects()).some((e) => TD(e, t)), DD = (e, t, n) => {
|
|
25370
25488
|
let r = e;
|
|
25371
25489
|
for (; r;) {
|
|
25372
25490
|
let e = n.getComputedStyle(r);
|
|
@@ -25375,7 +25493,7 @@ var _D = (e, t) => {
|
|
|
25375
25493
|
r = r.parentElement;
|
|
25376
25494
|
}
|
|
25377
25495
|
return !0;
|
|
25378
|
-
},
|
|
25496
|
+
}, OD = (e, t) => {
|
|
25379
25497
|
if (e.matches("img, picture, video, canvas, svg image, path, circle, ellipse, line, polygon, polyline, rect, text, use")) return !0;
|
|
25380
25498
|
let n = t.getComputedStyle(e), r = n.backgroundImage !== "none" || n.backgroundColor !== "transparent" && n.backgroundColor !== "rgba(0, 0, 0, 0)", i = [
|
|
25381
25499
|
"top",
|
|
@@ -25384,7 +25502,7 @@ var _D = (e, t) => {
|
|
|
25384
25502
|
"left"
|
|
25385
25503
|
].some((e) => Number.parseFloat(n.getPropertyValue(`border-${e}-width`)) > 0 && n.getPropertyValue(`border-${e}-style`) !== "none");
|
|
25386
25504
|
return r || i || n.boxShadow !== "none" || n.outlineStyle !== "none";
|
|
25387
|
-
},
|
|
25505
|
+
}, kD = (e, t) => !!e.textContent?.trim() || OD(e, t), AD = (e, t, n) => {
|
|
25388
25506
|
let r = t, i = r.caretRangeFromPoint?.(e.x, e.y)?.startContainer ?? r.caretPositionFromPoint?.(e.x, e.y)?.offsetNode;
|
|
25389
25507
|
if (!i) return null;
|
|
25390
25508
|
let a = t.defaultView?.Element;
|
|
@@ -25395,11 +25513,11 @@ var _D = (e, t) => {
|
|
|
25395
25513
|
o = o.parentElement;
|
|
25396
25514
|
}
|
|
25397
25515
|
return o === n ? n : null;
|
|
25398
|
-
},
|
|
25516
|
+
}, jD = (e, t, n) => {
|
|
25399
25517
|
let r = n.defaultView, i = r?.Element;
|
|
25400
25518
|
if (!r || !i) return [];
|
|
25401
25519
|
let a = [], o = /* @__PURE__ */ new Set(), s = (n, i, s) => {
|
|
25402
|
-
if (o.has(n) ||
|
|
25520
|
+
if (o.has(n) || wD(n) || r.getComputedStyle(n).pointerEvents !== "none" || DD(n, e, r) || !ED(n, t)) return;
|
|
25403
25521
|
let c = n.getBoundingClientRect();
|
|
25404
25522
|
o.add(n), a.push({
|
|
25405
25523
|
element: n,
|
|
@@ -25408,7 +25526,7 @@ var _D = (e, t) => {
|
|
|
25408
25526
|
order: s
|
|
25409
25527
|
});
|
|
25410
25528
|
}, c = n.createTreeWalker(e, 1), l = c.nextNode(), u = 1;
|
|
25411
|
-
for (; l && u <=
|
|
25529
|
+
for (; l && u <= xD;) {
|
|
25412
25530
|
if (l instanceof i) {
|
|
25413
25531
|
let t = l;
|
|
25414
25532
|
if (r.getComputedStyle(t).pointerEvents === "none") {
|
|
@@ -25419,9 +25537,9 @@ var _D = (e, t) => {
|
|
|
25419
25537
|
}
|
|
25420
25538
|
u += 1, l = c.nextNode();
|
|
25421
25539
|
}
|
|
25422
|
-
let d =
|
|
25540
|
+
let d = AD(t, n, e);
|
|
25423
25541
|
return d && r.getComputedStyle(d).pointerEvents === "none" && s(d, 1e4, u), a.sort((e, t) => t.depth - e.depth || e.area - t.area || t.order - e.order).map(({ element: e }) => e);
|
|
25424
|
-
},
|
|
25542
|
+
}, MD = (e, t, n) => {
|
|
25425
25543
|
let r = t.ownerDocument.defaultView;
|
|
25426
25544
|
if (!r) return [];
|
|
25427
25545
|
let i = [...new Set(e)], a = /* @__PURE__ */ new Map();
|
|
@@ -25430,7 +25548,7 @@ var _D = (e, t) => {
|
|
|
25430
25548
|
t && (a.set(e, e.getAttribute("style")), t.style.setProperty("pointer-events", "auto", "important"));
|
|
25431
25549
|
}
|
|
25432
25550
|
try {
|
|
25433
|
-
let e =
|
|
25551
|
+
let e = yD(t).elementsFromPoint(n.x, n.y), r = e.findIndex((e) => e === t), a = new Map(e.map((e, t) => [e, t]));
|
|
25434
25552
|
return i.filter((e) => {
|
|
25435
25553
|
let t = a.get(e);
|
|
25436
25554
|
return t !== void 0 && (r < 0 || t < r);
|
|
@@ -25438,31 +25556,31 @@ var _D = (e, t) => {
|
|
|
25438
25556
|
} finally {
|
|
25439
25557
|
for (let [e, t] of a) t === null ? e.removeAttribute("style") : e.setAttribute("style", t);
|
|
25440
25558
|
}
|
|
25441
|
-
},
|
|
25559
|
+
}, ND = (e, t) => {
|
|
25442
25560
|
let n = e;
|
|
25443
25561
|
for (; n.parentElement && n.parentElement !== t;) n = n.parentElement;
|
|
25444
25562
|
return n.parentElement === t ? n : null;
|
|
25445
|
-
},
|
|
25563
|
+
}, PD = (e, t, n, r) => {
|
|
25446
25564
|
let i = r.defaultView;
|
|
25447
25565
|
if (!i) return [];
|
|
25448
|
-
let a =
|
|
25566
|
+
let a = MD(jD(e, t, r).filter((e) => kD(e, i)), e, t);
|
|
25449
25567
|
if (a.length > 0) return a;
|
|
25450
|
-
if (e.textContent?.trim() && !e.matches(
|
|
25451
|
-
let o = [], s = /* @__PURE__ */ new Set(), c = !
|
|
25568
|
+
if (e.textContent?.trim() && !e.matches(SD) || e.matches("a, button, input, select, textarea, label, summary, [contenteditable='true']")) return [];
|
|
25569
|
+
let o = [], s = /* @__PURE__ */ new Set(), c = !_D(n) && !vD(n) ? n : null, l = e.parentElement;
|
|
25452
25570
|
for (; l && l !== r.body && l !== r.documentElement && !(c && l !== c && !c.contains(l));) {
|
|
25453
|
-
let a = l, u =
|
|
25454
|
-
if (!
|
|
25455
|
-
let t =
|
|
25571
|
+
let a = l, u = ND(e, a), d = jD(a, t, r).filter((e) => {
|
|
25572
|
+
if (!ID(e, n) || e.closest("[aria-hidden='true'], [inert]")) return !1;
|
|
25573
|
+
let t = ND(e, a);
|
|
25456
25574
|
return t === null || t !== u;
|
|
25457
25575
|
});
|
|
25458
|
-
for (let e of d) s.has(e) || !
|
|
25576
|
+
for (let e of d) s.has(e) || !kD(e, i) || (s.add(e), o.push(e));
|
|
25459
25577
|
if (a === c) break;
|
|
25460
25578
|
l = a.parentElement;
|
|
25461
25579
|
}
|
|
25462
|
-
return
|
|
25580
|
+
return MD(o, e, t);
|
|
25463
25581
|
};
|
|
25464
|
-
function
|
|
25465
|
-
let r =
|
|
25582
|
+
function FD(e, t, n = _D(t) ? t : t.ownerDocument ?? document) {
|
|
25583
|
+
let r = bD(t, n), i = n.defaultView;
|
|
25466
25584
|
if (!i) return null;
|
|
25467
25585
|
let a = r.elementsFromPoint(e.x, e.y);
|
|
25468
25586
|
for (let r of a) {
|
|
@@ -25472,28 +25590,28 @@ function MD(e, t, n = mD(t) ? t : t.ownerDocument ?? document) {
|
|
|
25472
25590
|
if (!t || t === a) break;
|
|
25473
25591
|
a = t;
|
|
25474
25592
|
}
|
|
25475
|
-
if (!a || !
|
|
25476
|
-
let o =
|
|
25593
|
+
if (!a || !ID(a, t)) continue;
|
|
25594
|
+
let o = PD(a, e, t, n);
|
|
25477
25595
|
if (o.length > 0) return o[0];
|
|
25478
25596
|
if (i.getComputedStyle(a).pointerEvents !== "none") return a;
|
|
25479
25597
|
}
|
|
25480
25598
|
return null;
|
|
25481
25599
|
}
|
|
25482
|
-
function
|
|
25483
|
-
if (
|
|
25600
|
+
function ID(e, t) {
|
|
25601
|
+
if (_D(t)) return !0;
|
|
25484
25602
|
let n = e;
|
|
25485
25603
|
for (; n;) {
|
|
25486
25604
|
if (t === n || t.contains(n)) return !0;
|
|
25487
25605
|
let e = n.getRootNode();
|
|
25488
|
-
if (!
|
|
25606
|
+
if (!vD(e)) return !1;
|
|
25489
25607
|
n = e.host;
|
|
25490
25608
|
}
|
|
25491
25609
|
return !1;
|
|
25492
25610
|
}
|
|
25493
|
-
function
|
|
25611
|
+
function LD(e, t) {
|
|
25494
25612
|
if (!e) return t();
|
|
25495
|
-
let n =
|
|
25496
|
-
|
|
25613
|
+
let n = CD.get(e) ?? 0;
|
|
25614
|
+
CD.set(e, n + 1);
|
|
25497
25615
|
let r = [e, ...e.querySelectorAll("*")], i = r.map((e) => [
|
|
25498
25616
|
e,
|
|
25499
25617
|
e.style.getPropertyValue("pointer-events"),
|
|
@@ -25503,13 +25621,13 @@ function PD(e, t) {
|
|
|
25503
25621
|
try {
|
|
25504
25622
|
return t();
|
|
25505
25623
|
} finally {
|
|
25506
|
-
n === 0 ?
|
|
25624
|
+
n === 0 ? CD.delete(e) : CD.set(e, n);
|
|
25507
25625
|
for (let [e, t, n] of i) t ? e.style.setProperty("pointer-events", t, n) : e.style.removeProperty("pointer-events");
|
|
25508
25626
|
}
|
|
25509
25627
|
}
|
|
25510
|
-
function
|
|
25628
|
+
function RD(e) {
|
|
25511
25629
|
let t = e.ownerDocument.defaultView ?? window;
|
|
25512
|
-
if (e.id) return `#${
|
|
25630
|
+
if (e.id) return `#${gD(e.id, t)}`;
|
|
25513
25631
|
let n = e.getAttribute("data-testid");
|
|
25514
25632
|
if (n) return `[data-testid=${JSON.stringify(n)}]`;
|
|
25515
25633
|
let r = [], i = e;
|
|
@@ -25523,17 +25641,17 @@ function FD(e) {
|
|
|
25523
25641
|
}
|
|
25524
25642
|
return r.join(" > ");
|
|
25525
25643
|
}
|
|
25526
|
-
function
|
|
25644
|
+
function zD(e, t, n = `dom-inspection-${++hD}`) {
|
|
25527
25645
|
let r = e.getBoundingClientRect(), i = t.getComputedStyle(e), a = {
|
|
25528
|
-
top:
|
|
25529
|
-
right:
|
|
25530
|
-
bottom:
|
|
25531
|
-
left:
|
|
25646
|
+
top: mD(i.paddingTop),
|
|
25647
|
+
right: mD(i.paddingRight),
|
|
25648
|
+
bottom: mD(i.paddingBottom),
|
|
25649
|
+
left: mD(i.paddingLeft)
|
|
25532
25650
|
}, o = {
|
|
25533
|
-
top:
|
|
25534
|
-
right:
|
|
25535
|
-
bottom:
|
|
25536
|
-
left:
|
|
25651
|
+
top: mD(i.marginTop),
|
|
25652
|
+
right: mD(i.marginRight),
|
|
25653
|
+
bottom: mD(i.marginBottom),
|
|
25654
|
+
left: mD(i.marginLeft)
|
|
25537
25655
|
}, s = {
|
|
25538
25656
|
left: r.left + a.left,
|
|
25539
25657
|
top: r.top + a.top,
|
|
@@ -25561,8 +25679,8 @@ function ID(e, t, n = `dom-inspection-${++fD}`) {
|
|
|
25561
25679
|
elementRef: e
|
|
25562
25680
|
};
|
|
25563
25681
|
}
|
|
25564
|
-
function
|
|
25565
|
-
let t = e.ownerDocument.defaultView ?? window, n = t.getComputedStyle(e), r = e instanceof t.HTMLElement ? e : null, i = e.getBoundingClientRect(), a = r ?
|
|
25682
|
+
function BD(e) {
|
|
25683
|
+
let t = e.ownerDocument.defaultView ?? window, n = t.getComputedStyle(e), r = e instanceof t.HTMLElement ? e : null, i = e.getBoundingClientRect(), a = r ? zD(r, t) : null, o = (e) => {
|
|
25566
25684
|
let t = Number.parseFloat(e);
|
|
25567
25685
|
return Number.isFinite(t) ? t : 0;
|
|
25568
25686
|
}, s = (e) => ({
|
|
@@ -25572,7 +25690,7 @@ function LD(e) {
|
|
|
25572
25690
|
left: o(n.getPropertyValue(`${e}-left${e === "border" ? "-width" : ""}`))
|
|
25573
25691
|
});
|
|
25574
25692
|
return {
|
|
25575
|
-
selector:
|
|
25693
|
+
selector: RD(e),
|
|
25576
25694
|
tag: e.localName,
|
|
25577
25695
|
id: e.id || null,
|
|
25578
25696
|
classes: [...e.classList],
|
|
@@ -25634,10 +25752,10 @@ function LD(e) {
|
|
|
25634
25752
|
}
|
|
25635
25753
|
//#endregion
|
|
25636
25754
|
//#region src/agent.ts
|
|
25637
|
-
var
|
|
25638
|
-
function
|
|
25639
|
-
let t = e.root ?? e.ownerDocument, n = e.ownerDocument.defaultView ?? window, r = (e, n = 0) => t.querySelectorAll(e).item(n) || null, i = (n) => t === e.ownerDocument ||
|
|
25640
|
-
let t = (e.getPluginHost() ?? await e.waitForPluginHost()).service.get(
|
|
25755
|
+
var VD = "text-edit", HD = (e) => BD(e);
|
|
25756
|
+
function UD(e) {
|
|
25757
|
+
let t = e.root ?? e.ownerDocument, n = e.ownerDocument.defaultView ?? window, r = (e, n = 0) => t.querySelectorAll(e).item(n) || null, i = (n) => t === e.ownerDocument || ID(n, t), a = async () => {
|
|
25758
|
+
let t = (e.getPluginHost() ?? await e.waitForPluginHost()).service.get(VD);
|
|
25641
25759
|
if (!t) throw Error("Mesurer text editing service is unavailable.");
|
|
25642
25760
|
return t;
|
|
25643
25761
|
}, o = () => {
|
|
@@ -25666,25 +25784,25 @@ function BD(e) {
|
|
|
25666
25784
|
},
|
|
25667
25785
|
inspect(e, t = 0) {
|
|
25668
25786
|
let n = r(e, t);
|
|
25669
|
-
return n ?
|
|
25787
|
+
return n ? HD(n) : null;
|
|
25670
25788
|
},
|
|
25671
25789
|
inspectAll(e, n = 50) {
|
|
25672
|
-
return [...t.querySelectorAll(e)].slice(0, Math.max(0, n)).map(
|
|
25790
|
+
return [...t.querySelectorAll(e)].slice(0, Math.max(0, n)).map(HD);
|
|
25673
25791
|
},
|
|
25674
25792
|
at(n, r) {
|
|
25675
25793
|
let a = t.querySelector?.("[data-mesurer-island]") ?? null;
|
|
25676
|
-
return
|
|
25677
|
-
let a =
|
|
25794
|
+
return LD(a?.shadowRoot?.querySelector("[data-mesurer-root='true']") ?? a, () => {
|
|
25795
|
+
let a = FD({
|
|
25678
25796
|
x: n,
|
|
25679
25797
|
y: r
|
|
25680
25798
|
}, t, e.ownerDocument);
|
|
25681
|
-
return a && i(a) ?
|
|
25799
|
+
return a && i(a) ? HD(a) : null;
|
|
25682
25800
|
});
|
|
25683
25801
|
},
|
|
25684
25802
|
distance(e, t) {
|
|
25685
25803
|
let n = r(e), i = r(t);
|
|
25686
25804
|
if (!n || !i) return null;
|
|
25687
|
-
let a =
|
|
25805
|
+
let a = HD(n), o = HD(i), s = a.rect, c = o.rect;
|
|
25688
25806
|
return {
|
|
25689
25807
|
a,
|
|
25690
25808
|
b: o,
|
|
@@ -25700,7 +25818,7 @@ function BD(e) {
|
|
|
25700
25818
|
let r = e.getPluginHost() ?? await e.waitForPluginHost();
|
|
25701
25819
|
return {
|
|
25702
25820
|
viewport: o(),
|
|
25703
|
-
elements: n.flatMap((e) => [...t.querySelectorAll(e)].slice(0, 50).map(
|
|
25821
|
+
elements: n.flatMap((e) => [...t.querySelectorAll(e)].slice(0, 50).map(HD)),
|
|
25704
25822
|
plugins: r.describe(),
|
|
25705
25823
|
pluginState: r.state.serialize("all")
|
|
25706
25824
|
};
|
|
@@ -25725,10 +25843,10 @@ function BD(e) {
|
|
|
25725
25843
|
}
|
|
25726
25844
|
//#endregion
|
|
25727
25845
|
//#region src/version.ts
|
|
25728
|
-
var
|
|
25846
|
+
var WD = "0.2.3-beta.8", GD = by, KD = xy, qD = () => ({
|
|
25729
25847
|
...gb(),
|
|
25730
|
-
version:
|
|
25731
|
-
}),
|
|
25848
|
+
version: WD
|
|
25849
|
+
}), JD = KD, YD = (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, XD = (e) => {
|
|
25732
25850
|
if (!e.length) return null;
|
|
25733
25851
|
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));
|
|
25734
25852
|
return {
|
|
@@ -25737,55 +25855,59 @@ var VD = "0.2.3-beta.6", HD = by, UD = xy, WD = () => ({
|
|
|
25737
25855
|
width: r - t,
|
|
25738
25856
|
height: i - n
|
|
25739
25857
|
};
|
|
25740
|
-
},
|
|
25741
|
-
function
|
|
25858
|
+
}, ZD = (e, t, n) => t.some((t) => e.orientation === "vertical" ? e.position >= t.left - n && e.position <= t.left + t.width + n : e.position >= t.top - n && e.position <= t.top + t.height + n), QD = (e) => [...e.measurements, ...e.activeMeasurement && !e.measurements.some((t) => t.id === e.activeMeasurement?.id) ? [e.activeMeasurement] : []];
|
|
25859
|
+
function $D(e) {
|
|
25742
25860
|
let { workspace: t, scope: n, guideTolerance: r } = e;
|
|
25743
25861
|
if (n.kind === "workspace") return {
|
|
25744
25862
|
guides: t.guides.map((e) => ({ ...e })),
|
|
25745
|
-
measurements:
|
|
25863
|
+
measurements: QD(t),
|
|
25746
25864
|
distances: [...t.distances]
|
|
25747
25865
|
};
|
|
25748
|
-
let i = new Set(n.elements), a = (e) => e != null && i.has(e), o = (e) => n.regions.some((t) =>
|
|
25866
|
+
let i = new Set(n.elements), a = (e) => e != null && i.has(e), o = (e) => n.regions.some((t) => YD(e, t));
|
|
25749
25867
|
return {
|
|
25750
|
-
guides: t.guides.filter((e) =>
|
|
25751
|
-
measurements:
|
|
25868
|
+
guides: t.guides.filter((e) => ZD(e, n.regions, r)).map((e) => ({ ...e })),
|
|
25869
|
+
measurements: QD(t).filter((e) => a(e.elementRef) || o(e.rect)),
|
|
25752
25870
|
distances: t.distances.filter((e) => a(e.elementRefA) || a(e.elementRefB) || o(e.rectA) || o(e.rectB))
|
|
25753
25871
|
};
|
|
25754
25872
|
}
|
|
25755
25873
|
//#endregion
|
|
25756
25874
|
//#region ../mesurer-core/dist/domain.js
|
|
25757
|
-
var
|
|
25875
|
+
var eO = {
|
|
25758
25876
|
opacity: 1,
|
|
25759
25877
|
width: 1,
|
|
25760
25878
|
pattern: "solid",
|
|
25761
25879
|
dashLength: 6,
|
|
25762
25880
|
gap: 4
|
|
25763
|
-
},
|
|
25881
|
+
}, tO = {
|
|
25764
25882
|
opacity: 1,
|
|
25765
25883
|
edgeReveal: !1
|
|
25766
25884
|
};
|
|
25767
|
-
({ ...
|
|
25885
|
+
({ ...eO }), { ...tO };
|
|
25768
25886
|
//#endregion
|
|
25769
25887
|
//#region src/context.ts
|
|
25770
|
-
var
|
|
25888
|
+
var nO = 10, rO = (e) => ({
|
|
25771
25889
|
left: e.left,
|
|
25772
25890
|
top: e.top,
|
|
25773
25891
|
width: e.width,
|
|
25774
25892
|
height: e.height
|
|
25775
|
-
}),
|
|
25893
|
+
}), iO = (e) => {
|
|
25776
25894
|
let t = /* @__PURE__ */ new Set(), n = [];
|
|
25777
25895
|
for (let r of e) !r?.isConnected || t.has(r) || (t.add(r), n.push(r));
|
|
25778
25896
|
return n;
|
|
25779
|
-
},
|
|
25780
|
-
function
|
|
25897
|
+
}, aO = (e) => e.crypto?.randomUUID?.() ?? `${Date.now()}-${Math.random().toString(36).slice(2)}`;
|
|
25898
|
+
function oO(e) {
|
|
25781
25899
|
let { runtime: t, ownerDocument: n, ownerWindow: r } = e, i = e.request ?? { scope: "workspace" }, a = t.snapshot();
|
|
25782
25900
|
if (!a) throw Error("Mesurer workspace is not ready yet.");
|
|
25783
|
-
let o = (e) =>
|
|
25901
|
+
let o = (e) => rO(t.elementRect?.(e) ?? e.getBoundingClientRect()), s = [], c = [], l = { kind: "workspace" }, u = /* @__PURE__ */ new Map(), d = /* @__PURE__ */ new Map(), f;
|
|
25784
25902
|
if ("annotation" in i) {
|
|
25785
25903
|
let e = t.annotation(i.annotation);
|
|
25786
25904
|
if (!e) throw Error(`Mesurer annotation not found: ${i.annotation}`);
|
|
25787
|
-
|
|
25788
|
-
|
|
25905
|
+
e.anchor.kind === "elements" && (f = e.anchor.targets.find((e) => e.viewport)?.viewport);
|
|
25906
|
+
for (let t of e.resolvedTargets) t.element?.isConnected && (u.set(t.element, t.target.id), t.target.viewport && d.set(t.element, {
|
|
25907
|
+
viewport: { ...t.target.viewport },
|
|
25908
|
+
domPath: t.target.domPath?.map((e) => ({ ...e })) ?? []
|
|
25909
|
+
}));
|
|
25910
|
+
s = iO(e.resolvedTargets.map((e) => e.element));
|
|
25789
25911
|
let n = t.annotationRect(e.id);
|
|
25790
25912
|
n && (c = [n]);
|
|
25791
25913
|
let r = e.resolvedTargets.length, a = e.resolvedTargets.filter((e) => e.element?.isConnected).length, o = e.anchor.kind === "region" ? "connected" : r === 0 || a === 0 ? "stale" : a === r ? "connected" : "partial";
|
|
@@ -25797,15 +25919,15 @@ function rO(e) {
|
|
|
25797
25919
|
};
|
|
25798
25920
|
} else if (i.scope === "selection") {
|
|
25799
25921
|
let e = t.currentSelection();
|
|
25800
|
-
if (s =
|
|
25922
|
+
if (s = iO(e.elements), !s.length && !e.region) throw Error("Mesurer has no current selection.");
|
|
25801
25923
|
c = e.region ? [e.region] : s.map(o), l = { kind: "selection" };
|
|
25802
|
-
} else s =
|
|
25924
|
+
} else s = iO([
|
|
25803
25925
|
...t.currentSelection().elements,
|
|
25804
25926
|
...a.measurements.map((e) => e.elementRef),
|
|
25805
25927
|
a.activeMeasurement?.elementRef,
|
|
25806
25928
|
...a.heldDistances.flatMap((e) => [e.elementRefA, e.elementRefB])
|
|
25807
25929
|
]);
|
|
25808
|
-
let
|
|
25930
|
+
let p = l.kind === "workspace" ? [] : c.length ? c : s.map(o), m = $D({
|
|
25809
25931
|
workspace: {
|
|
25810
25932
|
guides: a.guides,
|
|
25811
25933
|
measurements: a.measurements,
|
|
@@ -25815,55 +25937,55 @@ function rO(e) {
|
|
|
25815
25937
|
scope: l.kind === "workspace" ? { kind: "workspace" } : {
|
|
25816
25938
|
kind: "scoped",
|
|
25817
25939
|
elements: s,
|
|
25818
|
-
regions:
|
|
25940
|
+
regions: p
|
|
25819
25941
|
},
|
|
25820
|
-
guideTolerance: a.guideRelevanceTolerance ??
|
|
25821
|
-
}),
|
|
25942
|
+
guideTolerance: a.guideRelevanceTolerance ?? nO
|
|
25943
|
+
}), h = m.measurements, g = m.distances, _ = m.guides, v = iO([
|
|
25822
25944
|
...s,
|
|
25823
|
-
...
|
|
25824
|
-
...
|
|
25825
|
-
]),
|
|
25826
|
-
let e = `target-${
|
|
25827
|
-
for (;
|
|
25828
|
-
return
|
|
25829
|
-
},
|
|
25830
|
-
let
|
|
25831
|
-
return
|
|
25832
|
-
ref:
|
|
25945
|
+
...h.map((e) => e.elementRef),
|
|
25946
|
+
...g.flatMap((e) => [e.elementRefA, e.elementRefB])
|
|
25947
|
+
]), y = /* @__PURE__ */ new Map(), b = new Set(u.values()), x = 1, S = () => {
|
|
25948
|
+
let e = `target-${x++}`;
|
|
25949
|
+
for (; b.has(e);) e = `target-${x++}`;
|
|
25950
|
+
return b.add(e), e;
|
|
25951
|
+
}, C = v.map((e) => {
|
|
25952
|
+
let n = u.get(e) ?? S(), r = o(e), i = BD(e);
|
|
25953
|
+
return y.set(e, n), {
|
|
25954
|
+
ref: n,
|
|
25955
|
+
...d.get(e) ?? t.targetScope?.(e),
|
|
25833
25956
|
inspection: {
|
|
25834
|
-
...
|
|
25957
|
+
...i,
|
|
25835
25958
|
rect: {
|
|
25836
|
-
...
|
|
25837
|
-
right:
|
|
25838
|
-
bottom:
|
|
25839
|
-
x:
|
|
25840
|
-
y:
|
|
25959
|
+
...r,
|
|
25960
|
+
right: r.left + r.width,
|
|
25961
|
+
bottom: r.top + r.height,
|
|
25962
|
+
x: r.left,
|
|
25963
|
+
y: r.top
|
|
25841
25964
|
}
|
|
25842
25965
|
}
|
|
25843
25966
|
};
|
|
25844
|
-
}),
|
|
25967
|
+
}), w = h.map((e) => {
|
|
25845
25968
|
let t = {
|
|
25846
25969
|
id: e.id,
|
|
25847
|
-
rect:
|
|
25970
|
+
rect: rO(e.rect),
|
|
25848
25971
|
deltaX: e.deltaX,
|
|
25849
25972
|
deltaY: e.deltaY
|
|
25850
25973
|
};
|
|
25851
25974
|
e.snapped !== void 0 && (t.snapped = e.snapped);
|
|
25852
|
-
let n = e.elementRef ?
|
|
25975
|
+
let n = e.elementRef ? y.get(e.elementRef) : void 0;
|
|
25853
25976
|
return n && (t.targetRef = n), t;
|
|
25854
|
-
}),
|
|
25977
|
+
}), T = g.map((e) => {
|
|
25855
25978
|
let t = {
|
|
25856
25979
|
id: e.id,
|
|
25857
|
-
rectA:
|
|
25858
|
-
rectB:
|
|
25980
|
+
rectA: rO(e.rectA),
|
|
25981
|
+
rectB: rO(e.rectB),
|
|
25859
25982
|
horizontal: e.horizontal ? { ...e.horizontal } : null,
|
|
25860
25983
|
vertical: e.vertical ? { ...e.vertical } : null
|
|
25861
|
-
}, n = e.elementRefA ?
|
|
25984
|
+
}, n = e.elementRefA ? y.get(e.elementRefA) : void 0, r = e.elementRefB ? y.get(e.elementRefB) : void 0;
|
|
25862
25985
|
return n && (t.targetARef = n), r && (t.targetBRef = r), t;
|
|
25863
|
-
})
|
|
25864
|
-
return {
|
|
25986
|
+
}), E = {
|
|
25865
25987
|
schema: "mesurer.context/v1",
|
|
25866
|
-
id:
|
|
25988
|
+
id: aO(r),
|
|
25867
25989
|
createdAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
25868
25990
|
scope: l,
|
|
25869
25991
|
page: {
|
|
@@ -25878,62 +26000,63 @@ function rO(e) {
|
|
|
25878
26000
|
scrollY: r.scrollY
|
|
25879
26001
|
},
|
|
25880
26002
|
coordinateSpace: "viewport-css-px",
|
|
25881
|
-
regions: l.kind === "workspace" ? [] : c.map(
|
|
26003
|
+
regions: l.kind === "workspace" ? [] : c.map(rO),
|
|
25882
26004
|
visualState: {
|
|
25883
26005
|
rulersVisible: a.rulersVisible,
|
|
25884
26006
|
xrayVisible: a.xrayVisible
|
|
25885
26007
|
},
|
|
25886
|
-
targets:
|
|
26008
|
+
targets: C,
|
|
25887
26009
|
visualContext: {
|
|
25888
|
-
guides:
|
|
26010
|
+
guides: _,
|
|
25889
26011
|
layoutGuides: (e.layoutGuides ?? []).map((e) => ({ ...e })),
|
|
25890
|
-
measurements:
|
|
25891
|
-
distances:
|
|
26012
|
+
measurements: w,
|
|
26013
|
+
distances: T
|
|
25892
26014
|
}
|
|
25893
26015
|
};
|
|
26016
|
+
return f ??= C.find((e) => e.viewport)?.viewport, f && (E.previewViewport = { ...f }), E;
|
|
25894
26017
|
}
|
|
25895
|
-
var
|
|
25896
|
-
function
|
|
26018
|
+
var sO = (e) => `${Math.round(e * 100) / 100}px`, cO = (e) => `x=${sO(e.left)} y=${sO(e.top)} w=${sO(e.width)} h=${sO(e.height)}`;
|
|
26019
|
+
function lO(e) {
|
|
25897
26020
|
let t = [
|
|
25898
26021
|
"Mesurer visual context",
|
|
25899
26022
|
"",
|
|
25900
26023
|
`Page: ${e.page.url}`,
|
|
25901
26024
|
`Viewport: ${e.viewport.width} × ${e.viewport.height} CSS px; scroll x=${e.viewport.scrollX} y=${e.viewport.scrollY}`
|
|
25902
26025
|
];
|
|
25903
|
-
if (e.scope.kind === "annotation" ? t.push("", "Annotation", e.scope.note, `Target status: ${e.scope.targetStatus}`) : t.push("", `Scope: ${e.scope.kind}`), e.regions.length && (t.push("", "Requested regions"), e.regions.forEach((e, n) => t.push(`- region-${n + 1}: ${
|
|
26026
|
+
if (e.scope.kind === "annotation" ? t.push("", "Annotation", e.scope.note, `Target status: ${e.scope.targetStatus}`) : t.push("", `Scope: ${e.scope.kind}`), e.regions.length && (t.push("", "Requested regions"), e.regions.forEach((e, n) => t.push(`- region-${n + 1}: ${cO(e)}`))), (e.visualState.rulersVisible || e.visualState.xrayVisible) && t.push("", `Visual state: rulers=${e.visualState.rulersVisible ? "on" : "off"}; x-ray=${e.visualState.xrayVisible ? "on" : "off"}`), e.targets.length) {
|
|
25904
26027
|
t.push("", "Targets");
|
|
25905
26028
|
for (let n of e.targets) {
|
|
25906
26029
|
let e = n.inspection;
|
|
25907
|
-
t.push(`[${n.ref}] ${e.selector}`, ` rect: ${
|
|
26030
|
+
n.viewport && t.push(`Preview: ${n.viewport.url}; ${n.viewport.width} × ${n.viewport.height} CSS px; id=${n.viewport.previewId}`), t.push(`[${n.ref}] ${e.selector}`, ` rect: ${cO(e.rect)}`, ` margin: ${sO(e.margin.top)} ${sO(e.margin.right)} ${sO(e.margin.bottom)} ${sO(e.margin.left)}`, ` padding: ${sO(e.padding.top)} ${sO(e.padding.right)} ${sO(e.padding.bottom)} ${sO(e.padding.left)}`, ` layout: display=${e.layout.display}; position=${e.layout.position}; gap=${e.layout.gap}`, ` typography: ${e.typography.fontSize} / ${e.typography.lineHeight}; weight=${e.typography.fontWeight}; align=${e.typography.textAlign}`), e.text && t.push(` text: ${JSON.stringify(e.text)}`);
|
|
25908
26031
|
}
|
|
25909
26032
|
}
|
|
25910
26033
|
if (e.visualContext.guides.length) {
|
|
25911
26034
|
t.push("", "Relevant guides");
|
|
25912
|
-
for (let n of e.visualContext.guides) t.push(`- ${n.orientation} ${n.orientation === "vertical" ? "x" : "y"}=${
|
|
26035
|
+
for (let n of e.visualContext.guides) t.push(`- ${n.orientation} ${n.orientation === "vertical" ? "x" : "y"}=${sO(n.position)}`);
|
|
25913
26036
|
}
|
|
25914
26037
|
if (e.visualContext.layoutGuides.length) {
|
|
25915
26038
|
t.push("", "Layout guides");
|
|
25916
26039
|
for (let n of e.visualContext.layoutGuides) {
|
|
25917
26040
|
if (!n.visible) continue;
|
|
25918
|
-
let e = n.kind === "grid" ? `grid ${
|
|
26041
|
+
let e = n.kind === "grid" ? `grid ${sO(n.size)}` : `${n.count} ${n.kind}; gutter=${sO(n.gutter)}; offset=${sO(n.offset)}; align=${n.align}`;
|
|
25919
26042
|
t.push(`- ${e}; color=${n.color}; opacity=${Math.round(n.opacity * 100)}%`);
|
|
25920
26043
|
}
|
|
25921
26044
|
}
|
|
25922
26045
|
if (e.visualContext.measurements.length) {
|
|
25923
26046
|
t.push("", "Relevant measurements");
|
|
25924
|
-
for (let n of e.visualContext.measurements) t.push(`- ${n.targetRef ? `${n.targetRef}: ` : ""}${
|
|
26047
|
+
for (let n of e.visualContext.measurements) t.push(`- ${n.targetRef ? `${n.targetRef}: ` : ""}${cO(n.rect)}; delta=${sO(n.deltaX)} × ${sO(n.deltaY)}`);
|
|
25925
26048
|
}
|
|
25926
26049
|
if (e.visualContext.distances.length) {
|
|
25927
26050
|
t.push("", "Relevant distances");
|
|
25928
26051
|
for (let n of e.visualContext.distances) {
|
|
25929
|
-
let e = [n.targetARef, n.targetBRef].filter(Boolean).join(" → "), r = [n.horizontal ? `horizontal=${
|
|
26052
|
+
let e = [n.targetARef, n.targetBRef].filter(Boolean).join(" → "), r = [n.horizontal ? `horizontal=${sO(n.horizontal.value)}` : null, n.vertical ? `vertical=${sO(n.vertical.value)}` : null].filter(Boolean).join("; ");
|
|
25930
26053
|
t.push(`- ${e ? `${e}: ` : ""}${r || "overlapping"}`);
|
|
25931
26054
|
}
|
|
25932
26055
|
}
|
|
25933
26056
|
return t.join("\n").trimEnd();
|
|
25934
26057
|
}
|
|
25935
|
-
function
|
|
25936
|
-
let t =
|
|
26058
|
+
function uO(e) {
|
|
26059
|
+
let t = XD([
|
|
25937
26060
|
...e.regions,
|
|
25938
26061
|
...e.targets.map((e) => e.inspection.rect),
|
|
25939
26062
|
...e.visualContext.measurements.map((e) => e.rect),
|
|
@@ -25955,15 +26078,16 @@ function sO(e) {
|
|
|
25955
26078
|
}
|
|
25956
26079
|
});
|
|
25957
26080
|
}
|
|
25958
|
-
|
|
26081
|
+
let r = {
|
|
25959
26082
|
schema: "mesurer.capture/v1",
|
|
25960
26083
|
contextId: e.id,
|
|
25961
26084
|
chrome: "hide",
|
|
25962
26085
|
evidence: "show",
|
|
25963
26086
|
captures: n
|
|
25964
26087
|
};
|
|
26088
|
+
return e.previewViewport && (r.previewViewport = { ...e.previewViewport }), r;
|
|
25965
26089
|
}
|
|
25966
|
-
var
|
|
26090
|
+
var dO = (e, t, n, r, i) => {
|
|
25967
26091
|
!Number.isFinite(r) || !Number.isFinite(i) || Math.abs(r - i) < .01 || e.push({
|
|
25968
26092
|
kind: t,
|
|
25969
26093
|
label: n,
|
|
@@ -25972,16 +26096,16 @@ var cO = (e, t, n, r, i) => {
|
|
|
25972
26096
|
delta: i - r,
|
|
25973
26097
|
unit: "px"
|
|
25974
26098
|
});
|
|
25975
|
-
},
|
|
26099
|
+
}, fO = (e, t, n, r) => e.push({
|
|
25976
26100
|
kind: "missing",
|
|
25977
26101
|
evidence: t,
|
|
25978
26102
|
id: n,
|
|
25979
26103
|
label: r
|
|
25980
|
-
}),
|
|
25981
|
-
function
|
|
26104
|
+
}), pO = (e, t) => Math.abs(e.left - t.left) < .01 && Math.abs(e.top - t.top) < .01 && Math.abs(e.width - t.width) < .01 && Math.abs(e.height - t.height) < .01;
|
|
26105
|
+
function mO(e) {
|
|
25982
26106
|
let t = e.runtime.annotation(e.annotationId);
|
|
25983
26107
|
if (!t) throw Error(`Mesurer annotation not found: ${e.annotationId}`);
|
|
25984
|
-
let n =
|
|
26108
|
+
let n = oO({
|
|
25985
26109
|
runtime: e.runtime,
|
|
25986
26110
|
ownerDocument: e.ownerDocument,
|
|
25987
26111
|
ownerWindow: e.ownerWindow,
|
|
@@ -25991,42 +26115,42 @@ function dO(e) {
|
|
|
25991
26115
|
if (n.scope.kind !== "annotation") throw Error("Mesurer annotation context invariant failed.");
|
|
25992
26116
|
let r = e.runtime.snapshot();
|
|
25993
26117
|
if (!r) throw Error("Mesurer workspace is not ready yet.");
|
|
25994
|
-
let i =
|
|
26118
|
+
let i = QD({
|
|
25995
26119
|
measurements: r.measurements,
|
|
25996
26120
|
activeMeasurement: r.activeMeasurement
|
|
25997
26121
|
}), a = [];
|
|
25998
26122
|
for (let e of t.baseline.targets) {
|
|
25999
26123
|
let t = n.targets.find((t) => t.ref === e.id);
|
|
26000
26124
|
if (!t) {
|
|
26001
|
-
|
|
26125
|
+
fO(a, "target", e.id, e.selector);
|
|
26002
26126
|
continue;
|
|
26003
26127
|
}
|
|
26004
|
-
|
|
26128
|
+
dO(a, "target-rect", `${t.inspection.selector} left`, e.rect.left, t.inspection.rect.left), dO(a, "target-rect", `${t.inspection.selector} top`, e.rect.top, t.inspection.rect.top), dO(a, "target-rect", `${t.inspection.selector} width`, e.rect.width, t.inspection.rect.width), dO(a, "target-rect", `${t.inspection.selector} height`, e.rect.height, t.inspection.rect.height);
|
|
26005
26129
|
}
|
|
26006
26130
|
for (let e of t.baseline.guides) {
|
|
26007
26131
|
let t = n.visualContext.guides.find((t) => t.id === e.id) ?? r.guides.find((t) => t.id === e.id);
|
|
26008
26132
|
if (!t) {
|
|
26009
|
-
|
|
26133
|
+
fO(a, "guide", e.id, `${e.orientation} guide ${e.id}`);
|
|
26010
26134
|
continue;
|
|
26011
26135
|
}
|
|
26012
|
-
|
|
26136
|
+
dO(a, "guide", `${e.orientation} guide ${e.id}`, e.position, t.position);
|
|
26013
26137
|
}
|
|
26014
26138
|
for (let e of t.baseline.measurements) {
|
|
26015
26139
|
let r = n.visualContext.measurements.find((t) => t.id === e.id) ?? i.find((t) => t.id === e.id);
|
|
26016
26140
|
if (!r) {
|
|
26017
|
-
let r = t.baseline.targets.find((t) =>
|
|
26018
|
-
r && n.targets.some((e) => e.ref === r.id) ||
|
|
26141
|
+
let r = t.baseline.targets.find((t) => pO(t.rect, e.rect));
|
|
26142
|
+
r && n.targets.some((e) => e.ref === r.id) || fO(a, "measurement", e.id, e.id);
|
|
26019
26143
|
continue;
|
|
26020
26144
|
}
|
|
26021
|
-
|
|
26145
|
+
dO(a, "measurement", `${e.id} width`, e.rect.width, r.rect.width), dO(a, "measurement", `${e.id} height`, e.rect.height, r.rect.height);
|
|
26022
26146
|
}
|
|
26023
26147
|
for (let e of t.baseline.distances) {
|
|
26024
26148
|
let t = n.visualContext.distances.find((t) => t.id === e.id) ?? r.heldDistances.find((t) => t.id === e.id);
|
|
26025
26149
|
if (!t) {
|
|
26026
|
-
|
|
26150
|
+
fO(a, "distance", e.id, e.id);
|
|
26027
26151
|
continue;
|
|
26028
26152
|
}
|
|
26029
|
-
e.horizontal && t.horizontal ?
|
|
26153
|
+
e.horizontal && t.horizontal ? dO(a, "distance", `${e.id} horizontal`, e.horizontal.value, t.horizontal.value) : e.horizontal && !t.horizontal && fO(a, "distance", e.id, `${e.id} horizontal`), e.vertical && t.vertical ? dO(a, "distance", `${e.id} vertical`, e.vertical.value, t.vertical.value) : e.vertical && !t.vertical && fO(a, "distance", e.id, `${e.id} vertical`);
|
|
26030
26154
|
}
|
|
26031
26155
|
return {
|
|
26032
26156
|
schema: "mesurer.review/v1",
|
|
@@ -26038,7 +26162,7 @@ function dO(e) {
|
|
|
26038
26162
|
changes: a
|
|
26039
26163
|
};
|
|
26040
26164
|
}
|
|
26041
|
-
async function
|
|
26165
|
+
async function hO(e, t, n) {
|
|
26042
26166
|
try {
|
|
26043
26167
|
if (t.navigator.clipboard?.writeText) {
|
|
26044
26168
|
await t.navigator.clipboard.writeText(n);
|
|
@@ -26052,43 +26176,43 @@ async function fO(e, t, n) {
|
|
|
26052
26176
|
}
|
|
26053
26177
|
//#endregion
|
|
26054
26178
|
//#region src/layout-guides.ts
|
|
26055
|
-
var
|
|
26056
|
-
...
|
|
26057
|
-
version:
|
|
26058
|
-
}),
|
|
26179
|
+
var gO = Rw, _O = zw, vO = () => ({
|
|
26180
|
+
...dT(),
|
|
26181
|
+
version: WD
|
|
26182
|
+
}), yO = "mesurer.context", bO = "context:v1", xO = "mesurer.context.settings", SO = "context.ui", CO = "data-mesurer-direct-text-edit-active", wO = {
|
|
26059
26183
|
viewBox: "0 0 256 256",
|
|
26060
26184
|
paths: ["M216,32H88a8,8,0,0,0-8,8V80H40a8,8,0,0,0-8,8V216a8,8,0,0,0,8,8H168a8,8,0,0,0,8-8V176h40a8,8,0,0,0,8-8V40A8,8,0,0,0,216,32ZM160,208H48V96H160Zm48-48H176V88a8,8,0,0,0-8-8H96V48H208Z"]
|
|
26061
|
-
},
|
|
26185
|
+
}, TO = {
|
|
26062
26186
|
viewBox: "0 0 256 256",
|
|
26063
26187
|
paths: ["M152,40a8,8,0,0,1-8,8H112a8,8,0,0,1,0-16h32A8,8,0,0,1,152,40Zm-8,168H112a8,8,0,0,0,0,16h32a8,8,0,0,0,0-16ZM208,32H184a8,8,0,0,0,0,16h24V72a8,8,0,0,0,16,0V48A16,16,0,0,0,208,32Zm8,72a8,8,0,0,0-8,8v32a8,8,0,0,0,16,0V112A8,8,0,0,0,216,104Zm0,72a8,8,0,0,0-8,8v24H184a8,8,0,0,0,0,16h24a16,16,0,0,0,16-16V184A8,8,0,0,0,216,176ZM40,152a8,8,0,0,0,8-8V112a8,8,0,0,0-16,0v32A8,8,0,0,0,40,152Zm32,56H48V184a8,8,0,0,0-16,0v24a16,16,0,0,0,16,16H72a8,8,0,0,0,0-16ZM72,32H48A16,16,0,0,0,32,48V72a8,8,0,0,0,16,0V48H72a8,8,0,0,0,0-16Z"]
|
|
26064
|
-
},
|
|
26188
|
+
}, EO = {
|
|
26065
26189
|
viewBox: "0 0 256 256",
|
|
26066
26190
|
paths: ["M229.66,58.34l-32-32a8,8,0,0,0-11.32,0l-96,96A8,8,0,0,0,88,128v32a8,8,0,0,0,8,8h32a8,8,0,0,0,5.66-2.34l96-96A8,8,0,0,0,229.66,58.34ZM124.69,152H104V131.31l64-64L188.69,88ZM200,76.69,179.31,56,192,43.31,212.69,64ZM224,128v80a16,16,0,0,1-16,16H48a16,16,0,0,1-16-16V48A16,16,0,0,1,48,32h80a8,8,0,0,1,0,16H48V208H208V128a8,8,0,0,1,16,0Z"]
|
|
26067
|
-
},
|
|
26191
|
+
}, DO = async (e, t, n = 1) => {
|
|
26068
26192
|
await e.fonts?.ready;
|
|
26069
26193
|
for (let e = 0; e < Math.max(1, n); e += 1) await new Promise((e) => t.requestAnimationFrame(() => e()));
|
|
26070
|
-
},
|
|
26071
|
-
let i = async (i) =>
|
|
26194
|
+
}, OO = (e, t, n, r) => {
|
|
26195
|
+
let i = async (i) => oO({
|
|
26072
26196
|
runtime: e,
|
|
26073
26197
|
ownerDocument: t,
|
|
26074
26198
|
ownerWindow: n,
|
|
26075
26199
|
request: i,
|
|
26076
26200
|
layoutGuides: r()
|
|
26077
|
-
}), a = async (e) =>
|
|
26201
|
+
}), a = async (e) => lO(await i(e));
|
|
26078
26202
|
return {
|
|
26079
26203
|
context: i,
|
|
26080
26204
|
contextText: a,
|
|
26081
|
-
copyContext: async (e) =>
|
|
26205
|
+
copyContext: async (e) => hO(t, n, await a(e)),
|
|
26082
26206
|
select: async (r) => {
|
|
26083
26207
|
let a = Array.isArray(r) ? [...r] : [String(r)];
|
|
26084
|
-
return e.select(a), await
|
|
26208
|
+
return e.select(a), await DO(t, n), i({ scope: "selection" });
|
|
26085
26209
|
},
|
|
26086
26210
|
annotations: async () => e.annotations(),
|
|
26087
26211
|
removeAnnotation: async (r) => {
|
|
26088
|
-
e.removeAnnotation(r), await
|
|
26212
|
+
e.removeAnnotation(r), await DO(t, n);
|
|
26089
26213
|
},
|
|
26090
26214
|
review: async (i) => {
|
|
26091
|
-
if (await
|
|
26215
|
+
if (await DO(t, n), i) return mO({
|
|
26092
26216
|
runtime: e,
|
|
26093
26217
|
ownerDocument: t,
|
|
26094
26218
|
ownerWindow: n,
|
|
@@ -26096,7 +26220,7 @@ var pO = Fw, mO = Iw, hO = () => ({
|
|
|
26096
26220
|
layoutGuides: r()
|
|
26097
26221
|
});
|
|
26098
26222
|
let a = r();
|
|
26099
|
-
return e.annotations().map((r) =>
|
|
26223
|
+
return e.annotations().map((r) => mO({
|
|
26100
26224
|
runtime: e,
|
|
26101
26225
|
ownerDocument: t,
|
|
26102
26226
|
ownerWindow: n,
|
|
@@ -26104,76 +26228,67 @@ var pO = Fw, mO = Iw, hO = () => ({
|
|
|
26104
26228
|
layoutGuides: a
|
|
26105
26229
|
}));
|
|
26106
26230
|
},
|
|
26107
|
-
capturePlan: async (e) =>
|
|
26231
|
+
capturePlan: async (e) => uO(await i(e)),
|
|
26108
26232
|
prepareCapture: async () => {
|
|
26109
|
-
e.prepareCapture(), await
|
|
26233
|
+
e.prepareCapture(), await DO(t, n);
|
|
26110
26234
|
},
|
|
26111
26235
|
finishCapture: async () => {
|
|
26112
|
-
e.finishCapture(), await
|
|
26236
|
+
e.finishCapture(), await DO(t, n);
|
|
26113
26237
|
}
|
|
26114
26238
|
};
|
|
26115
|
-
},
|
|
26116
|
-
let
|
|
26117
|
-
return
|
|
26118
|
-
let t = e.ownerDocument;
|
|
26119
|
-
for (; t;) {
|
|
26120
|
-
let e = t.defaultView?.frameElement ?? null;
|
|
26121
|
-
if (!e) return !1;
|
|
26122
|
-
if (e.hasAttribute("data-mesurer-responsive-frame")) return !0;
|
|
26123
|
-
t = e.ownerDocument;
|
|
26124
|
-
}
|
|
26125
|
-
return !1;
|
|
26126
|
-
});
|
|
26239
|
+
}, kO = (e, t) => {
|
|
26240
|
+
let n = e.currentSelection();
|
|
26241
|
+
return n.elements.length > 0 || n.region !== null && !t?.querySelector("[data-mesurer-responsive-stage]");
|
|
26127
26242
|
};
|
|
26128
|
-
function
|
|
26243
|
+
function AO(e = {}) {
|
|
26129
26244
|
return {
|
|
26130
|
-
id:
|
|
26131
|
-
version:
|
|
26245
|
+
id: yO,
|
|
26246
|
+
version: WD,
|
|
26132
26247
|
requires: ["runtime:solid"],
|
|
26133
|
-
provides: [
|
|
26248
|
+
provides: [bO],
|
|
26134
26249
|
setup(t) {
|
|
26135
26250
|
let n = t.service.get("runtime:solid");
|
|
26136
26251
|
if (!n) throw Error("Mesurer context plugin requires the renderer runtime service.");
|
|
26137
|
-
let r = n.createWorkspaceRuntime(
|
|
26138
|
-
t.service.provide(
|
|
26139
|
-
id:
|
|
26252
|
+
let r = n.createWorkspaceRuntime(yO), i = OO(r, n.ownerDocument, n.ownerWindow, () => t.service.get(_O)?.list() ?? []);
|
|
26253
|
+
t.service.provide(bO, i), t.state.register({
|
|
26254
|
+
id: xO,
|
|
26140
26255
|
initial: { ui: e.ui ?? !0 },
|
|
26141
26256
|
persist: !0
|
|
26142
26257
|
}), t.state.register({
|
|
26143
|
-
id:
|
|
26144
|
-
initial: { hasSelection:
|
|
26258
|
+
id: SO,
|
|
26259
|
+
initial: { hasSelection: kO(r, n.rendererRoot) }
|
|
26145
26260
|
});
|
|
26146
|
-
let a = () => t.state.get("mesurer.context.settings")?.ui ?? !0, o = () =>
|
|
26147
|
-
t.state.update(
|
|
26261
|
+
let a = () => t.state.get("mesurer.context.settings")?.ui ?? !0, o = () => kO(r, n.rendererRoot), s = (e) => {
|
|
26262
|
+
t.state.update(xO, (t) => ({
|
|
26148
26263
|
...t,
|
|
26149
26264
|
ui: e
|
|
26150
26265
|
}));
|
|
26151
|
-
}, c = null, l = null, u = null, d = null, f = r.currentSelection(),
|
|
26152
|
-
elements: [...
|
|
26153
|
-
region:
|
|
26154
|
-
},
|
|
26155
|
-
let e = r.currentSelection(),
|
|
26156
|
-
|
|
26266
|
+
}, c = null, l = null, u = null, d = null, [f, p] = K(!!n.rendererRoot?.querySelector("[data-mesurer-responsive-stage]")), m = null, h = r.currentSelection(), g = {
|
|
26267
|
+
elements: [...h.elements],
|
|
26268
|
+
region: h.region ? { ...h.region } : null
|
|
26269
|
+
}, _ = (e, t) => e.elements.length !== t.elements.length || e.elements.some((e, n) => e !== t.elements[n]) ? !1 : e.region === t.region ? !0 : !e.region || !t.region ? !1 : e.region.left === t.region.left && e.region.top === t.region.top && e.region.width === t.region.width && e.region.height === t.region.height, v = r.subscribe(() => {
|
|
26270
|
+
let e = r.currentSelection(), i = !_(g, e);
|
|
26271
|
+
g = {
|
|
26157
26272
|
elements: [...e.elements],
|
|
26158
26273
|
region: e.region ? { ...e.region } : null
|
|
26159
|
-
}, r.selectGestureActive() ? c?.abandonNoteComposer() :
|
|
26160
|
-
let
|
|
26161
|
-
|
|
26274
|
+
}, r.selectGestureActive() ? c?.abandonNoteComposer() : i && c?.closeNoteComposer();
|
|
26275
|
+
let a = kO(r, n.rendererRoot);
|
|
26276
|
+
a !== (t.state.get(SO)?.hasSelection ?? !1) && t.state.update(SO, () => ({ hasSelection: a }));
|
|
26162
26277
|
});
|
|
26163
26278
|
t.command.register("context.copy", () => i.copyContext()), t.command.register("context.copy-selection", () => i.copyContext({ scope: "selection" }));
|
|
26164
|
-
let
|
|
26279
|
+
let y = () => {
|
|
26165
26280
|
let e = u?.element;
|
|
26166
|
-
e && (n.rendererRoot?.hasAttribute(
|
|
26167
|
-
},
|
|
26281
|
+
e && (n.rendererRoot?.hasAttribute(CO) ? e.setAttribute(CO, "true") : e.removeAttribute(CO));
|
|
26282
|
+
}, b = () => {
|
|
26168
26283
|
d?.disconnect(), d = null, c = null, l?.(), l = null, u?.dispose(), u = null;
|
|
26169
|
-
},
|
|
26284
|
+
}, x = () => {
|
|
26170
26285
|
if (u) return;
|
|
26171
|
-
if (u =
|
|
26172
|
-
let e = new n.ownerWindow.MutationObserver(
|
|
26286
|
+
if (u = mw(n), m = u.element.parentNode, u.element.dataset.mesurerLayer = "evidence", u.element.dataset.mesurerContextRoot = "true", n.rendererRoot) {
|
|
26287
|
+
let e = new n.ownerWindow.MutationObserver(y);
|
|
26173
26288
|
d = e, e.observe(n.rendererRoot, {
|
|
26174
26289
|
attributes: !0,
|
|
26175
|
-
attributeFilter: [
|
|
26176
|
-
}),
|
|
26290
|
+
attributeFilter: [CO]
|
|
26291
|
+
}), y();
|
|
26177
26292
|
}
|
|
26178
26293
|
let e = {
|
|
26179
26294
|
runtime: r,
|
|
@@ -26181,16 +26296,25 @@ function DO(e = {}) {
|
|
|
26181
26296
|
onController: (e) => {
|
|
26182
26297
|
c = e;
|
|
26183
26298
|
},
|
|
26184
|
-
coordinateSpace
|
|
26299
|
+
get coordinateSpace() {
|
|
26300
|
+
return f() ? "viewport" : "document";
|
|
26301
|
+
},
|
|
26185
26302
|
rendererRoot: n.rendererRoot
|
|
26186
26303
|
};
|
|
26187
|
-
l = No(() => yo(
|
|
26304
|
+
l = No(() => yo(uw, oo(e, { get ownerWindow() {
|
|
26188
26305
|
return n.ownerWindow;
|
|
26189
|
-
} })), u.element);
|
|
26190
|
-
},
|
|
26191
|
-
a() ?
|
|
26306
|
+
} })), u.element), un(f) && n.rendererRoot && (n.rendererRoot.append(u.element), u.element.style.zIndex = "90");
|
|
26307
|
+
}, S = () => {
|
|
26308
|
+
a() ? x() : b();
|
|
26309
|
+
};
|
|
26310
|
+
S(), t.state.subscribe(S);
|
|
26311
|
+
let C = () => {
|
|
26312
|
+
let e = !!n.rendererRoot?.querySelector("[data-mesurer-responsive-stage]");
|
|
26313
|
+
if (e === un(f) || (p(e), !u)) return;
|
|
26314
|
+
let t = e ? n.rendererRoot : m;
|
|
26315
|
+
t && u.element.parentNode !== t && t.appendChild(u.element), u.element.style.zIndex = e ? "90" : "", un(() => c?.closeNoteComposer());
|
|
26192
26316
|
};
|
|
26193
|
-
|
|
26317
|
+
n.ownerWindow.addEventListener("mesurer:responsive-stage-change", C), t.command.register("context.add-note", () => {
|
|
26194
26318
|
o() && c?.openNoteComposer();
|
|
26195
26319
|
}), t.tool.register({
|
|
26196
26320
|
id: "context.copy",
|
|
@@ -26199,7 +26323,7 @@ function DO(e = {}) {
|
|
|
26199
26323
|
command: "context.copy",
|
|
26200
26324
|
order: 70,
|
|
26201
26325
|
toolbarMode: "always",
|
|
26202
|
-
icon:
|
|
26326
|
+
icon: wO,
|
|
26203
26327
|
hidden: () => !a()
|
|
26204
26328
|
}), t.tool.register({
|
|
26205
26329
|
id: "context.copy-selection",
|
|
@@ -26208,7 +26332,7 @@ function DO(e = {}) {
|
|
|
26208
26332
|
command: "context.copy-selection",
|
|
26209
26333
|
order: 71,
|
|
26210
26334
|
toolbarMode: "always",
|
|
26211
|
-
icon:
|
|
26335
|
+
icon: TO,
|
|
26212
26336
|
hidden: () => !a(),
|
|
26213
26337
|
disabled: () => !o()
|
|
26214
26338
|
}), t.tool.register({
|
|
@@ -26218,7 +26342,7 @@ function DO(e = {}) {
|
|
|
26218
26342
|
command: "context.add-note",
|
|
26219
26343
|
order: 72,
|
|
26220
26344
|
toolbarMode: "always",
|
|
26221
|
-
icon:
|
|
26345
|
+
icon: EO,
|
|
26222
26346
|
hidden: () => !a(),
|
|
26223
26347
|
disabled: () => !o()
|
|
26224
26348
|
}), t.settings.register({
|
|
@@ -26234,14 +26358,14 @@ function DO(e = {}) {
|
|
|
26234
26358
|
set: s
|
|
26235
26359
|
}]
|
|
26236
26360
|
}), t.lifecycle.onDispose(() => {
|
|
26237
|
-
|
|
26361
|
+
v(), n.ownerWindow.removeEventListener("mesurer:responsive-stage-change", C), b(), r.dispose();
|
|
26238
26362
|
});
|
|
26239
26363
|
}
|
|
26240
26364
|
};
|
|
26241
26365
|
}
|
|
26242
26366
|
//#endregion
|
|
26243
26367
|
//#region src/host-layer.ts
|
|
26244
|
-
var
|
|
26368
|
+
var jO = {
|
|
26245
26369
|
display: "block",
|
|
26246
26370
|
position: "fixed",
|
|
26247
26371
|
inset: "0",
|
|
@@ -26283,48 +26407,48 @@ var OO = {
|
|
|
26283
26407
|
"letter-spacing": "normal",
|
|
26284
26408
|
direction: "ltr"
|
|
26285
26409
|
};
|
|
26286
|
-
function
|
|
26287
|
-
for (let [t, n] of Object.entries(
|
|
26410
|
+
function MO(e) {
|
|
26411
|
+
for (let [t, n] of Object.entries(jO)) e.style.setProperty(t, n, "important");
|
|
26288
26412
|
}
|
|
26289
|
-
function
|
|
26413
|
+
function NO(e) {
|
|
26290
26414
|
return "popover" in e && "showPopover" in e && typeof e.showPopover == "function" && "hidePopover" in e && typeof e.hidePopover == "function";
|
|
26291
26415
|
}
|
|
26292
|
-
var
|
|
26293
|
-
function
|
|
26294
|
-
if (!
|
|
26416
|
+
var PO = (e) => "newState" in e, FO = (e) => e.localName === "dialog";
|
|
26417
|
+
function IO(e) {
|
|
26418
|
+
if (!FO(e) || !e.open) return !1;
|
|
26295
26419
|
try {
|
|
26296
26420
|
return e.matches(":modal");
|
|
26297
26421
|
} catch {
|
|
26298
26422
|
return !1;
|
|
26299
26423
|
}
|
|
26300
26424
|
}
|
|
26301
|
-
function
|
|
26302
|
-
|
|
26425
|
+
function LO(e, t, n = !0) {
|
|
26426
|
+
MO(e);
|
|
26303
26427
|
let r = e.ownerDocument, i = r.defaultView ?? window, a = t, o = !1, s = "fixed", c = !1, l = 0, u = [];
|
|
26304
|
-
if (n &&
|
|
26428
|
+
if (n && NO(e) && (e.popover = "manual"), t.append(e), n && NO(e)) try {
|
|
26305
26429
|
e.showPopover(), c = e.matches(":popover-open"), c && (s = "top-layer");
|
|
26306
26430
|
} catch {
|
|
26307
26431
|
e.removeAttribute("popover");
|
|
26308
26432
|
}
|
|
26309
26433
|
let d = () => {
|
|
26310
|
-
if (!(!c || !
|
|
26434
|
+
if (!(!c || !NO(e))) try {
|
|
26311
26435
|
e.matches(":popover-open") || e.showPopover();
|
|
26312
26436
|
} catch {}
|
|
26313
26437
|
}, f = (t) => {
|
|
26314
26438
|
if (e.parentNode === t) return;
|
|
26315
|
-
let n = c &&
|
|
26316
|
-
if (n &&
|
|
26439
|
+
let n = c && NO(e) && e.matches(":popover-open");
|
|
26440
|
+
if (n && NO(e)) try {
|
|
26317
26441
|
e.hidePopover();
|
|
26318
26442
|
} catch {}
|
|
26319
|
-
t.append(e),
|
|
26443
|
+
t.append(e), MO(e), n && d();
|
|
26320
26444
|
}, p = () => {
|
|
26321
|
-
u = u.filter((e) => e.isConnected &&
|
|
26445
|
+
u = u.filter((e) => e.isConnected && IO(e)), f(u.at(-1) ?? a);
|
|
26322
26446
|
}, m = (e) => {
|
|
26323
26447
|
u = u.filter((t) => t !== e), u.push(e), p();
|
|
26324
26448
|
}, h = (e) => {
|
|
26325
26449
|
u = u.filter((t) => t !== e), p();
|
|
26326
26450
|
}, g = () => {
|
|
26327
|
-
if (!(o || !c || !
|
|
26451
|
+
if (!(o || !c || !NO(e))) try {
|
|
26328
26452
|
e.matches(":popover-open") && e.hidePopover(), e.showPopover();
|
|
26329
26453
|
} catch {}
|
|
26330
26454
|
}, _ = () => {
|
|
@@ -26333,27 +26457,27 @@ function PO(e, t, n = !0) {
|
|
|
26333
26457
|
}));
|
|
26334
26458
|
}, v = (t) => {
|
|
26335
26459
|
if (!c || t.target === e) return;
|
|
26336
|
-
let n =
|
|
26460
|
+
let n = PO(t) ? t.newState : void 0, r = t.target;
|
|
26337
26461
|
if (r instanceof i.Element) {
|
|
26338
|
-
if (
|
|
26339
|
-
n === "open" &&
|
|
26462
|
+
if (FO(r)) {
|
|
26463
|
+
n === "open" && IO(r) ? (m(r), _()) : n === "closed" ? h(r) : n === "open" && _();
|
|
26340
26464
|
return;
|
|
26341
26465
|
}
|
|
26342
26466
|
n === "open" && r.hasAttribute("popover") && _();
|
|
26343
26467
|
}
|
|
26344
26468
|
}, y = (e) => {
|
|
26345
26469
|
let t = e.target;
|
|
26346
|
-
t instanceof i.Element &&
|
|
26470
|
+
t instanceof i.Element && FO(t) && h(t);
|
|
26347
26471
|
}, b = () => {
|
|
26348
26472
|
r.fullscreenElement && _();
|
|
26349
26473
|
}, x = (e) => {
|
|
26350
|
-
|
|
26351
|
-
for (let t of e.querySelectorAll("dialog"))
|
|
26474
|
+
IO(e) && m(e);
|
|
26475
|
+
for (let t of e.querySelectorAll("dialog")) IO(t) && m(t);
|
|
26352
26476
|
}, S = new i.MutationObserver((e) => {
|
|
26353
26477
|
if (c) for (let t of e) {
|
|
26354
26478
|
if (t.type === "attributes") {
|
|
26355
26479
|
let e = t.target;
|
|
26356
|
-
e instanceof i.Element &&
|
|
26480
|
+
e instanceof i.Element && FO(e) && (IO(e) ? m(e) : h(e));
|
|
26357
26481
|
}
|
|
26358
26482
|
for (let e of t.addedNodes) e instanceof i.Element && x(e);
|
|
26359
26483
|
u.some((e) => !e.isConnected) && p();
|
|
@@ -26369,7 +26493,7 @@ function PO(e, t, n = !0) {
|
|
|
26369
26493
|
bringToFront: g,
|
|
26370
26494
|
dispose() {
|
|
26371
26495
|
if (!o) {
|
|
26372
|
-
if (o = !0, l && i.cancelAnimationFrame(l), r.removeEventListener("toggle", v, !0), r.removeEventListener("close", y, !0), r.removeEventListener("fullscreenchange", b, !0), S.disconnect(), c &&
|
|
26496
|
+
if (o = !0, l && i.cancelAnimationFrame(l), r.removeEventListener("toggle", v, !0), r.removeEventListener("close", y, !0), r.removeEventListener("fullscreenchange", b, !0), S.disconnect(), c && NO(e) && e.matches(":popover-open")) try {
|
|
26373
26497
|
e.hidePopover();
|
|
26374
26498
|
} catch {}
|
|
26375
26499
|
u = [];
|
|
@@ -26379,7 +26503,7 @@ function PO(e, t, n = !0) {
|
|
|
26379
26503
|
}
|
|
26380
26504
|
//#endregion
|
|
26381
26505
|
//#region src/plugins/codex/index.ts
|
|
26382
|
-
var
|
|
26506
|
+
var RO = "mesurer.codex", zO = "codex:v1", BO = "mesurer.plugin.before-disable", VO = 2e3, HO = 750, UO = 2e3, WO = 1800, GO = 2e3, KO = 12e4, qO = 10, JO = 5, YO = "http://127.0.0.1:47365", XO = "mesurer-codex", ZO = 2, QO = [
|
|
26383
26507
|
"thread-discovery-v1",
|
|
26384
26508
|
"durable-queue-v1",
|
|
26385
26509
|
"history-recovery-v2",
|
|
@@ -26387,33 +26511,33 @@ var FO = "mesurer.codex", IO = "codex:v1", LO = "mesurer.plugin.before-disable",
|
|
|
26387
26511
|
"idle-safe-shutdown-v1",
|
|
26388
26512
|
"nonterminal-retention-v1",
|
|
26389
26513
|
"instance-binding-v1"
|
|
26390
|
-
],
|
|
26514
|
+
], $O = 1500, ek = 15e3, tk = 5e3, nk = [
|
|
26391
26515
|
"Implement the current human feedback from Mesurer in this project.",
|
|
26392
26516
|
"Treat the rendered page as the source of truth, preserve unrelated Mesurer review state,",
|
|
26393
26517
|
"and verify the affected UI in the live page with Mesurer before claiming completion."
|
|
26394
|
-
].join(" "),
|
|
26518
|
+
].join(" "), rk = {
|
|
26395
26519
|
viewBox: "0 0 256 256",
|
|
26396
26520
|
paths: ["M224,48,32,120l88,32,32,88Z M120,152l104-104"]
|
|
26397
|
-
},
|
|
26521
|
+
}, ik = {
|
|
26398
26522
|
viewBox: "0 0 256 256",
|
|
26399
26523
|
paths: ["M72,32H184a8,8,0,0,1,0,16h-8v20.69a40,40,0,0,1-11.72,28.28L137.25,124l27.03,27.03A40,40,0,0,1,176,179.31V208h8a8,8,0,0,1,0,16H72a8,8,0,0,1,0-16h8V179.31a40,40,0,0,1,11.72-28.28L118.75,124,91.72,96.97A40,40,0,0,1,80,68.69V48H72a8,8,0,0,1,0-16Zm24,16V68.69a24,24,0,0,0,7.03,16.97L128,110.63l24.97-24.97A24,24,0,0,0,160,68.69V48Zm32,90.63-24.97,24.97A24,24,0,0,0,96,180.57V208h64V180.57a24,24,0,0,0-7.03-16.97Z"]
|
|
26400
|
-
},
|
|
26524
|
+
}, ak = {
|
|
26401
26525
|
viewBox: "0 0 256 256",
|
|
26402
26526
|
paths: ["M229.66,77.66l-128,128a8,8,0,0,1-11.32,0l-56-56a8,8,0,0,1,11.32-11.32L96,188.69,218.34,66.34a8,8,0,0,1,11.32,11.32Z"]
|
|
26403
|
-
},
|
|
26527
|
+
}, ok = class extends Error {
|
|
26404
26528
|
issue;
|
|
26405
26529
|
constructor(e, t) {
|
|
26406
26530
|
super(t), this.issue = e, this.name = "BrowserBridgeConnectionError";
|
|
26407
26531
|
}
|
|
26408
|
-
},
|
|
26532
|
+
}, sk = () => {
|
|
26409
26533
|
try {
|
|
26410
26534
|
let e = globalThis.location;
|
|
26411
26535
|
return e?.origin ? `mesurer-codex-ui:v2:${e.origin}${e.pathname}` : null;
|
|
26412
26536
|
} catch {
|
|
26413
26537
|
return null;
|
|
26414
26538
|
}
|
|
26415
|
-
},
|
|
26416
|
-
let e =
|
|
26539
|
+
}, ck = () => {
|
|
26540
|
+
let e = sk();
|
|
26417
26541
|
if (!e) return null;
|
|
26418
26542
|
try {
|
|
26419
26543
|
let t = globalThis.sessionStorage?.getItem(e);
|
|
@@ -26439,35 +26563,35 @@ var FO = "mesurer.codex", IO = "codex:v1", LO = "mesurer.plugin.before-disable",
|
|
|
26439
26563
|
} catch {
|
|
26440
26564
|
return null;
|
|
26441
26565
|
}
|
|
26442
|
-
},
|
|
26443
|
-
let t =
|
|
26566
|
+
}, lk = (e) => {
|
|
26567
|
+
let t = sk();
|
|
26444
26568
|
if (t) try {
|
|
26445
26569
|
globalThis.sessionStorage?.setItem(t, JSON.stringify(e));
|
|
26446
26570
|
} catch {}
|
|
26447
|
-
},
|
|
26448
|
-
let t =
|
|
26571
|
+
}, uk = (e) => {
|
|
26572
|
+
let t = YO.endsWith("/") ? YO : `${YO}/`;
|
|
26449
26573
|
return new URL(e, t).toString();
|
|
26450
|
-
},
|
|
26574
|
+
}, dk = (e) => {
|
|
26451
26575
|
let t = e.bridge;
|
|
26452
|
-
if (!t) throw new
|
|
26453
|
-
if (t.name !==
|
|
26454
|
-
if (t.protocol !==
|
|
26455
|
-
if (e.access?.allowed === !1) throw new
|
|
26456
|
-
let n = new Set(Array.isArray(t.capabilities) ? t.capabilities : []), r =
|
|
26457
|
-
if (r.length > 0) throw new
|
|
26458
|
-
if (!t.instanceId?.trim()) throw new
|
|
26459
|
-
},
|
|
26576
|
+
if (!t) throw new ok("port-conflict", "Another local service or an outdated Mesurer Codex Bridge is using port 47365. Mesurer will not send data to an unverified service.");
|
|
26577
|
+
if (t.name !== XO) throw new ok("port-conflict", `Another local service is using port 47365 (${t.name ?? "unknown"}). Mesurer will not send Codex data to it.`);
|
|
26578
|
+
if (t.protocol !== ZO) throw new ok("version-mismatch", `Mesurer Codex Bridge is out of date (protocol ${t.protocol ?? "unknown"}; expected ${ZO}). Restart the matching Mesurer Codex Bridge helper.`);
|
|
26579
|
+
if (e.access?.allowed === !1) throw new ok("origin-denied", `Mesurer Codex Bridge does not allow this browser origin (${globalThis.location?.origin ?? "this page"}). Allow this origin when starting the bridge.`);
|
|
26580
|
+
let n = new Set(Array.isArray(t.capabilities) ? t.capabilities : []), r = QO.filter((e) => !n.has(e));
|
|
26581
|
+
if (r.length > 0) throw new ok("capability-mismatch", `Mesurer Codex Bridge is missing required capabilities: ${r.join(", ")}. Restart or update the matching helper.`);
|
|
26582
|
+
if (!t.instanceId?.trim()) throw new ok("capability-mismatch", "Mesurer Codex Bridge did not provide an instance identity. Restart or update the matching helper.");
|
|
26583
|
+
}, fk = (e) => e.includes("does not allow this browser origin") ? "origin-denied" : e.includes("out of date") ? "version-mismatch" : e.includes("missing required capabilities") || e.includes("did not provide an instance identity") ? "capability-mismatch" : e.includes("Another local service") ? "port-conflict" : e.includes("instance changed") ? "instance-changed" : e.includes("timed out") ? "timed-out" : e.includes("companion is unavailable") ? "not-running" : null, pk = (e) => e instanceof ok ? e.issue : e instanceof Error ? fk(e.message) : null, mk = async (e) => {
|
|
26460
26584
|
let t, n;
|
|
26461
|
-
if (e.action === "health") t =
|
|
26585
|
+
if (e.action === "health") t = uk("health");
|
|
26462
26586
|
else if (e.action === "threads") {
|
|
26463
26587
|
let n = new URLSearchParams();
|
|
26464
|
-
n.set("limit", String(e.limit ??
|
|
26465
|
-
} else if (e.action === "target") t =
|
|
26588
|
+
n.set("limit", String(e.limit ?? qO)), e.thread && n.set("thread", e.thread), t = `${uk("threads")}?${n.toString()}`;
|
|
26589
|
+
} else if (e.action === "target") t = uk("target"), n = {
|
|
26466
26590
|
method: "POST",
|
|
26467
26591
|
headers: { "Content-Type": "application/json" },
|
|
26468
26592
|
body: JSON.stringify({ thread: e.thread })
|
|
26469
26593
|
};
|
|
26470
|
-
else if (e.action === "queue") t =
|
|
26594
|
+
else if (e.action === "queue") t = uk("send"), n = {
|
|
26471
26595
|
method: "POST",
|
|
26472
26596
|
headers: { "Content-Type": "application/json" },
|
|
26473
26597
|
body: JSON.stringify({
|
|
@@ -26475,8 +26599,8 @@ var FO = "mesurer.codex", IO = "codex:v1", LO = "mesurer.plugin.before-disable",
|
|
|
26475
26599
|
thread: e.thread
|
|
26476
26600
|
})
|
|
26477
26601
|
};
|
|
26478
|
-
else if (e.action === "delivery") t =
|
|
26479
|
-
else if (e.action === "restore") t =
|
|
26602
|
+
else if (e.action === "delivery") t = uk(`deliveries/${encodeURIComponent(String(e.deliveryId ?? ""))}`);
|
|
26603
|
+
else if (e.action === "restore") t = uk("deliveries/restore"), n = {
|
|
26480
26604
|
method: "POST",
|
|
26481
26605
|
headers: { "Content-Type": "application/json" },
|
|
26482
26606
|
body: JSON.stringify({
|
|
@@ -26490,14 +26614,14 @@ var FO = "mesurer.codex", IO = "codex:v1", LO = "mesurer.plugin.before-disable",
|
|
|
26490
26614
|
else throw Error(`Codex browser companion does not support ${e.action}.`);
|
|
26491
26615
|
if (e.action !== "health") {
|
|
26492
26616
|
let t = e.bridgeInstanceId?.trim();
|
|
26493
|
-
if (!t) throw new
|
|
26617
|
+
if (!t) throw new ok("instance-changed", "Mesurer Codex Bridge instance changed before this request could be verified.");
|
|
26494
26618
|
let r = new Headers(n?.headers);
|
|
26495
26619
|
r.set("X-Mesurer-Bridge-Instance", t), n = {
|
|
26496
26620
|
...n,
|
|
26497
26621
|
headers: r
|
|
26498
26622
|
};
|
|
26499
26623
|
}
|
|
26500
|
-
let r = new AbortController(), i = e.action === "health" || e.action === "threads" ?
|
|
26624
|
+
let r = new AbortController(), i = e.action === "health" || e.action === "threads" ? $O : ek, a = globalThis.setTimeout(() => r.abort(), i);
|
|
26501
26625
|
try {
|
|
26502
26626
|
let i = await fetch(t, {
|
|
26503
26627
|
...n,
|
|
@@ -26508,23 +26632,23 @@ var FO = "mesurer.codex", IO = "codex:v1", LO = "mesurer.plugin.before-disable",
|
|
|
26508
26632
|
} catch {
|
|
26509
26633
|
o = { error: a };
|
|
26510
26634
|
}
|
|
26511
|
-
if (e.action === "health" &&
|
|
26512
|
-
let e = o.error ?? `Mesurer Codex companion returned HTTP ${i.status}.`, t =
|
|
26513
|
-
throw t ? new
|
|
26635
|
+
if (e.action === "health" && dk(o), !i.ok || o.ok === !1) {
|
|
26636
|
+
let e = o.error ?? `Mesurer Codex companion returned HTTP ${i.status}.`, t = fk(e);
|
|
26637
|
+
throw t ? new ok(t, e) : Error(e);
|
|
26514
26638
|
}
|
|
26515
26639
|
return o;
|
|
26516
26640
|
} catch (e) {
|
|
26517
|
-
throw e instanceof Error && e.name === "AbortError" ? new
|
|
26641
|
+
throw e instanceof Error && e.name === "AbortError" ? new ok("timed-out", "Mesurer Codex companion timed out.") : e instanceof TypeError ? new ok("not-running", `Mesurer Codex companion is unavailable at ${YO}.`) : e;
|
|
26518
26642
|
} finally {
|
|
26519
26643
|
globalThis.clearTimeout(a);
|
|
26520
26644
|
}
|
|
26521
|
-
},
|
|
26645
|
+
}, hk = async (e) => {
|
|
26522
26646
|
let t = window.__MESURER_HOST__?.codexBridge;
|
|
26523
26647
|
if (!t) throw Error("Codex native host bridge is unavailable.");
|
|
26524
26648
|
let n = await t(e);
|
|
26525
26649
|
if (n.ok === !1) throw Error(n.error ?? "Codex Bridge request failed.");
|
|
26526
26650
|
return n;
|
|
26527
|
-
},
|
|
26651
|
+
}, gk = (e) => {
|
|
26528
26652
|
let t = e.runtime;
|
|
26529
26653
|
return !t || ![
|
|
26530
26654
|
"shared",
|
|
@@ -26542,10 +26666,10 @@ var FO = "mesurer.codex", IO = "codex:v1", LO = "mesurer.plugin.before-disable",
|
|
|
26542
26666
|
available: t.available === !0,
|
|
26543
26667
|
reason: t.reason
|
|
26544
26668
|
};
|
|
26545
|
-
},
|
|
26669
|
+
}, _k = (e) => ({
|
|
26546
26670
|
thread: e.thread?.trim() || null,
|
|
26547
26671
|
threads: Array.isArray(e.threads) ? e.threads.filter((e) => e.trim().length > 0) : []
|
|
26548
|
-
}),
|
|
26672
|
+
}), vk = (e) => {
|
|
26549
26673
|
let t = e.deliveryId?.trim(), n = e.thread?.trim(), r = e.status;
|
|
26550
26674
|
if (!t || !n || !r) throw Error("Codex Bridge returned an invalid delivery state.");
|
|
26551
26675
|
let i = {
|
|
@@ -26557,7 +26681,7 @@ var FO = "mesurer.codex", IO = "codex:v1", LO = "mesurer.plugin.before-disable",
|
|
|
26557
26681
|
updatedAt: Number.isFinite(e.updatedAt) ? Number(e.updatedAt) : 0
|
|
26558
26682
|
};
|
|
26559
26683
|
return e.queuedSubmissionId !== void 0 && (i.queuedSubmissionId = e.queuedSubmissionId?.trim() || null), e.clientUserMessageId !== void 0 && (i.clientUserMessageId = e.clientUserMessageId?.trim() || null), e.dispatch !== void 0 && (i.dispatch = e.dispatch), e.dispatchError !== void 0 && (i.dispatchError = e.dispatchError?.trim() || null), i;
|
|
26560
|
-
},
|
|
26684
|
+
}, yk = (e) => ({
|
|
26561
26685
|
thread: e.thread?.trim() || null,
|
|
26562
26686
|
threads: Array.isArray(e.threadDetails) ? e.threadDetails.flatMap((e) => {
|
|
26563
26687
|
let t = e.id?.trim() ?? "";
|
|
@@ -26569,7 +26693,7 @@ var FO = "mesurer.codex", IO = "codex:v1", LO = "mesurer.plugin.before-disable",
|
|
|
26569
26693
|
}] : [];
|
|
26570
26694
|
}) : [],
|
|
26571
26695
|
hasMore: e.hasMore === !0
|
|
26572
|
-
}),
|
|
26696
|
+
}), bk = async (e, t, n) => {
|
|
26573
26697
|
let r = t?.instruction?.trim() || n, i = await e.annotations(), a = t?.annotationIds, o = a ? a.flatMap((e) => {
|
|
26574
26698
|
let t = i.find((t) => t.id === e);
|
|
26575
26699
|
return t ? [t] : [];
|
|
@@ -26592,18 +26716,18 @@ var FO = "mesurer.codex", IO = "codex:v1", LO = "mesurer.plugin.before-disable",
|
|
|
26592
26716
|
])
|
|
26593
26717
|
].join("\n").trimEnd()
|
|
26594
26718
|
};
|
|
26595
|
-
},
|
|
26596
|
-
function
|
|
26597
|
-
let t = e.instruction?.trim() ||
|
|
26719
|
+
}, xk = (e) => e.length > 16 ? `${e.slice(0, 8)}…${e.slice(-4)}` : e, Sk = (e, t = 42) => e.length > t ? `${e.slice(0, t - 1)}…` : e, Ck = (e) => pk(e) !== null || e instanceof Error && (e.message === "Codex Bridge is unavailable in this host." || e.message.includes("Codex Bridge lease") || e.message.includes("Mesurer Codex Bridge"));
|
|
26720
|
+
function wk(e = {}) {
|
|
26721
|
+
let t = e.instruction?.trim() || nk, n = e.ui ?? !0, r = e.clearCompletedAnnotations ?? !0;
|
|
26598
26722
|
return {
|
|
26599
|
-
id:
|
|
26600
|
-
version:
|
|
26601
|
-
requires: [
|
|
26602
|
-
provides: [
|
|
26723
|
+
id: RO,
|
|
26724
|
+
version: WD,
|
|
26725
|
+
requires: [bO],
|
|
26726
|
+
provides: [zO],
|
|
26603
26727
|
async setup(e) {
|
|
26604
|
-
let i = e.service.get(
|
|
26728
|
+
let i = e.service.get(bO);
|
|
26605
26729
|
if (!i) throw Error("Mesurer Codex plugin requires context() from mesurer-solid/plugins.");
|
|
26606
|
-
let a = n ?
|
|
26730
|
+
let a = n ? ck() : null, o = "unknown", s = null, c = !1, l = a?.originThread ?? null, u = a?.selectedThread ?? a?.originThread ?? null, d = !1, f = null, p = [], m = [], h = !1, g = JO, _, v = "", y = null, b = a?.delivery ? {
|
|
26607
26731
|
id: a.delivery.id,
|
|
26608
26732
|
thread: a.delivery.thread,
|
|
26609
26733
|
status: a.delivery.status,
|
|
@@ -26616,22 +26740,22 @@ function xk(e = {}) {
|
|
|
26616
26740
|
if (!k) try {
|
|
26617
26741
|
let t = e.action === "queue" || e.action === "target" || e.action === "delivery" || e.action === "restore";
|
|
26618
26742
|
if (e.action === "health") {
|
|
26619
|
-
let t = await
|
|
26743
|
+
let t = await mk(e);
|
|
26620
26744
|
return D = t.bridge?.instanceId?.trim() || null, E = Date.now(), t;
|
|
26621
26745
|
}
|
|
26622
|
-
return (!D || t || Date.now() - E >=
|
|
26746
|
+
return (!D || t || Date.now() - E >= tk) && (D = (await mk({
|
|
26623
26747
|
action: "health",
|
|
26624
26748
|
thread: u ?? l ?? void 0
|
|
26625
|
-
})).bridge?.instanceId?.trim() || null, E = Date.now()), await
|
|
26749
|
+
})).bridge?.instanceId?.trim() || null, E = Date.now()), await mk({
|
|
26626
26750
|
...e,
|
|
26627
26751
|
bridgeInstanceId: D ?? void 0
|
|
26628
26752
|
});
|
|
26629
26753
|
} catch (e) {
|
|
26630
26754
|
throw E = 0, D = null, e;
|
|
26631
26755
|
}
|
|
26632
|
-
if (e.action === "activate" || e.action === "runtime") return
|
|
26756
|
+
if (e.action === "activate" || e.action === "runtime") return hk(e);
|
|
26633
26757
|
if (!T) throw Error("Codex Bridge lease is not active for this plugin.");
|
|
26634
|
-
return
|
|
26758
|
+
return hk({
|
|
26635
26759
|
...e,
|
|
26636
26760
|
leaseId: T
|
|
26637
26761
|
});
|
|
@@ -26639,7 +26763,7 @@ function xk(e = {}) {
|
|
|
26639
26763
|
if (!k) return;
|
|
26640
26764
|
let e = T;
|
|
26641
26765
|
if (e) {
|
|
26642
|
-
if ((await
|
|
26766
|
+
if ((await hk({
|
|
26643
26767
|
action: "deactivate",
|
|
26644
26768
|
leaseId: e
|
|
26645
26769
|
})).released !== !0) throw Error("Codex Bridge did not confirm lease release.");
|
|
@@ -26647,13 +26771,13 @@ function xk(e = {}) {
|
|
|
26647
26771
|
}
|
|
26648
26772
|
};
|
|
26649
26773
|
if (k) {
|
|
26650
|
-
let e = await
|
|
26774
|
+
let e = await hk({
|
|
26651
26775
|
action: "activate",
|
|
26652
26776
|
thread: u ?? l ?? void 0
|
|
26653
26777
|
}), t = e.leaseId?.trim();
|
|
26654
26778
|
if (!t) throw Error("Codex Bridge did not return an activation lease.");
|
|
26655
|
-
T = t, o = "available", s =
|
|
26656
|
-
let n =
|
|
26779
|
+
T = t, o = "available", s = gk(e);
|
|
26780
|
+
let n = _k(e);
|
|
26657
26781
|
c = !0, f = n.thread, p = n.threads;
|
|
26658
26782
|
}
|
|
26659
26783
|
e.lifecycle.onDispose(() => {
|
|
@@ -26661,12 +26785,12 @@ function xk(e = {}) {
|
|
|
26661
26785
|
let t = e instanceof Error ? e.message : String(e);
|
|
26662
26786
|
console.error(`[Mesurer] Failed to release Codex host lease: ${t}`);
|
|
26663
26787
|
});
|
|
26664
|
-
}), e.hook.on(
|
|
26788
|
+
}), e.hook.on(BO, async (e) => {
|
|
26665
26789
|
e === "mesurer.codex" && await j();
|
|
26666
26790
|
});
|
|
26667
26791
|
let M = async () => {
|
|
26668
26792
|
if (!k) return null;
|
|
26669
|
-
let e =
|
|
26793
|
+
let e = gk(await A({ action: "runtime" }));
|
|
26670
26794
|
if (!e) throw Error("Codex Bridge returned an invalid runtime state.");
|
|
26671
26795
|
return s = e, e;
|
|
26672
26796
|
}, N = async () => {
|
|
@@ -26674,8 +26798,8 @@ function xk(e = {}) {
|
|
|
26674
26798
|
action: "health",
|
|
26675
26799
|
thread: u ?? l ?? void 0
|
|
26676
26800
|
});
|
|
26677
|
-
return s =
|
|
26678
|
-
}, P = N, F = async (e) =>
|
|
26801
|
+
return s = gk(e) ?? s, _k(e);
|
|
26802
|
+
}, P = N, F = async (e) => vk(await A({
|
|
26679
26803
|
action: "delivery",
|
|
26680
26804
|
deliveryId: e
|
|
26681
26805
|
})), I = async (e) => {
|
|
@@ -26687,17 +26811,17 @@ function xk(e = {}) {
|
|
|
26687
26811
|
};
|
|
26688
26812
|
if (e.queuedSubmissionId && (n.queuedSubmissionId = e.queuedSubmissionId), e.clientUserMessageId) n.clientUserMessageId = e.clientUserMessageId;
|
|
26689
26813
|
else if (e.annotationIds.length > 0) {
|
|
26690
|
-
let r = await
|
|
26814
|
+
let r = await bk(i, { annotationIds: e.annotationIds }, t);
|
|
26691
26815
|
if (!(r.annotationIds.length === e.annotationIds.length && r.annotationIds.every((t, n) => t === e.annotationIds[n]))) throw Error("Cannot safely restore this Codex delivery because one or more saved Mesurer annotations are unavailable.");
|
|
26692
26816
|
n.message = r.message;
|
|
26693
26817
|
}
|
|
26694
|
-
return
|
|
26818
|
+
return vk(await A(n));
|
|
26695
26819
|
}, L = async (e = {}) => {
|
|
26696
26820
|
let t = {
|
|
26697
26821
|
action: "threads",
|
|
26698
|
-
limit: e.limit ??
|
|
26822
|
+
limit: e.limit ?? qO
|
|
26699
26823
|
}, n = e.thread?.trim();
|
|
26700
|
-
return n && (t.thread = n),
|
|
26824
|
+
return n && (t.thread = n), yk(await A(t));
|
|
26701
26825
|
}, R = () => u ?? l ?? (d ? null : f), z = () => {
|
|
26702
26826
|
if (!n) return;
|
|
26703
26827
|
let e = b?.id && (b.status === "queued" || b.status === "working" || b.status === "completed" || b.status === "interrupted" || b.status === "failed") ? {
|
|
@@ -26710,7 +26834,7 @@ function xk(e = {}) {
|
|
|
26710
26834
|
dispatch: b.dispatch,
|
|
26711
26835
|
dispatchError: b.dispatchError
|
|
26712
26836
|
} : null;
|
|
26713
|
-
|
|
26837
|
+
lk({
|
|
26714
26838
|
version: 1,
|
|
26715
26839
|
originThread: l,
|
|
26716
26840
|
selectedThread: u,
|
|
@@ -26728,12 +26852,12 @@ function xk(e = {}) {
|
|
|
26728
26852
|
"queueing",
|
|
26729
26853
|
"queued",
|
|
26730
26854
|
"working"
|
|
26731
|
-
].includes(b.status) ?
|
|
26855
|
+
].includes(b.status) ? ik : b.status === "completed" ? ak : rk : rk, W = () => {
|
|
26732
26856
|
let e = [], t = /* @__PURE__ */ new Set(), n = (n) => {
|
|
26733
26857
|
t.has(n.id) || (t.add(n.id), e.push(n));
|
|
26734
26858
|
}, r = (e) => ({
|
|
26735
26859
|
id: e,
|
|
26736
|
-
title: `Codex ${
|
|
26860
|
+
title: `Codex ${xk(e)}`,
|
|
26737
26861
|
updatedAt: null,
|
|
26738
26862
|
connected: !0
|
|
26739
26863
|
});
|
|
@@ -26771,22 +26895,22 @@ function xk(e = {}) {
|
|
|
26771
26895
|
let t = e.id === l ? "Current · " : e.connected ? "Loaded · " : "", r = b?.thread === e.id ? ` · ${ee(b.status)}` : "";
|
|
26772
26896
|
return {
|
|
26773
26897
|
id: `codex.thread.${e.id}`,
|
|
26774
|
-
label: `${t}${
|
|
26898
|
+
label: `${t}${Sk(e.title)}${r}`,
|
|
26775
26899
|
checked: () => n === e.id,
|
|
26776
26900
|
disabled: () => V(),
|
|
26777
26901
|
run() {
|
|
26778
26902
|
V() || (B(e.id, !l), G());
|
|
26779
26903
|
}
|
|
26780
26904
|
};
|
|
26781
|
-
})), g <
|
|
26905
|
+
})), g < qO && (e.length > g || h) && r.push({
|
|
26782
26906
|
id: "codex.thread.show-more",
|
|
26783
26907
|
label: "Show 5 more…",
|
|
26784
26908
|
run() {
|
|
26785
|
-
g =
|
|
26909
|
+
g = qO, G();
|
|
26786
26910
|
}
|
|
26787
26911
|
}), b?.queuedSubmissionId && b.status === "queued" && (b.dispatch === "desktop-opened" || b.dispatch === "desktop-wake-failed") && r.push({
|
|
26788
26912
|
id: "codex.delivery.receipt",
|
|
26789
|
-
label: `Receipt · ${
|
|
26913
|
+
label: `Receipt · ${xk(b.queuedSubmissionId)}`,
|
|
26790
26914
|
disabled: () => !0,
|
|
26791
26915
|
run: () => void 0
|
|
26792
26916
|
}), r;
|
|
@@ -26823,7 +26947,7 @@ function xk(e = {}) {
|
|
|
26823
26947
|
}, ae = async (e) => {
|
|
26824
26948
|
if (o !== "available") return;
|
|
26825
26949
|
let t = await L({
|
|
26826
|
-
limit:
|
|
26950
|
+
limit: qO,
|
|
26827
26951
|
thread: e ?? void 0
|
|
26828
26952
|
});
|
|
26829
26953
|
m = t.threads, h = t.hasMore, p = t.threads.filter((e) => e.connected).map((e) => e.id), f = t.thread;
|
|
@@ -26835,7 +26959,7 @@ function xk(e = {}) {
|
|
|
26835
26959
|
let t = u ?? l;
|
|
26836
26960
|
t && p.includes(t) ? d = !1 : p.length === 1 ? B(p[0], !0) : d = !0, !d && t && z();
|
|
26837
26961
|
} catch (e) {
|
|
26838
|
-
throw o = "unavailable", O = k ? null :
|
|
26962
|
+
throw o = "unavailable", O = k ? null : pk(e) ?? "unavailable", s = await M().catch(() => s), e;
|
|
26839
26963
|
} finally {
|
|
26840
26964
|
y = null, G();
|
|
26841
26965
|
}
|
|
@@ -26845,7 +26969,7 @@ function xk(e = {}) {
|
|
|
26845
26969
|
}, se = () => {
|
|
26846
26970
|
S && globalThis.clearTimeout(S), S = globalThis.setTimeout(() => {
|
|
26847
26971
|
S = 0, b?.status === "completed" && (b = null, z(), G());
|
|
26848
|
-
},
|
|
26972
|
+
}, WO);
|
|
26849
26973
|
}, ce = async (e) => {
|
|
26850
26974
|
if (!(!b || b.id !== e.id)) {
|
|
26851
26975
|
if (b = {
|
|
@@ -26874,7 +26998,7 @@ function xk(e = {}) {
|
|
|
26874
26998
|
if (t || n.length > 0) {
|
|
26875
26999
|
z(), G(), x = globalThis.setTimeout(() => {
|
|
26876
27000
|
x = 0, le(e.id);
|
|
26877
|
-
},
|
|
27001
|
+
}, HO);
|
|
26878
27002
|
return;
|
|
26879
27003
|
}
|
|
26880
27004
|
}
|
|
@@ -26884,14 +27008,14 @@ function xk(e = {}) {
|
|
|
26884
27008
|
if (e.status === "interrupted") {
|
|
26885
27009
|
z(), G();
|
|
26886
27010
|
let t = e.updatedAt > 0 ? e.updatedAt : Date.now();
|
|
26887
|
-
Date.now() - t <
|
|
27011
|
+
Date.now() - t < KO && (x = globalThis.setTimeout(() => {
|
|
26888
27012
|
x = 0, le(e.id);
|
|
26889
|
-
},
|
|
27013
|
+
}, GO));
|
|
26890
27014
|
return;
|
|
26891
27015
|
}
|
|
26892
27016
|
G(), x = globalThis.setTimeout(() => {
|
|
26893
27017
|
x = 0, le(e.id);
|
|
26894
|
-
},
|
|
27018
|
+
}, UO);
|
|
26895
27019
|
}
|
|
26896
27020
|
}, le = async (e) => {
|
|
26897
27021
|
if (!(w || b?.id !== e)) try {
|
|
@@ -26915,7 +27039,7 @@ function xk(e = {}) {
|
|
|
26915
27039
|
b = {
|
|
26916
27040
|
...b,
|
|
26917
27041
|
status: "failed"
|
|
26918
|
-
}, z(),
|
|
27042
|
+
}, z(), Ck(n) && (o = "unavailable"), G();
|
|
26919
27043
|
}
|
|
26920
27044
|
}, ue = {
|
|
26921
27045
|
health: N,
|
|
@@ -26927,11 +27051,11 @@ function xk(e = {}) {
|
|
|
26927
27051
|
let n = await A({
|
|
26928
27052
|
action: "target",
|
|
26929
27053
|
thread: t
|
|
26930
|
-
}), r =
|
|
26931
|
-
return s =
|
|
27054
|
+
}), r = _k(n);
|
|
27055
|
+
return s = gk(n) ?? s, B(t, !l), f = r.thread, p = r.threads, o = "available", c = !0, G(), r;
|
|
26932
27056
|
},
|
|
26933
27057
|
async queue(e) {
|
|
26934
|
-
let r = await
|
|
27058
|
+
let r = await bk(i, e, t), a = e?.thread?.trim(), s = a || (n ? R() : null);
|
|
26935
27059
|
if (n && !a && (d || !s)) throw Error("Choose a Codex thread before queueing feedback.");
|
|
26936
27060
|
let c = { message: r.message };
|
|
26937
27061
|
s && (c.thread = s);
|
|
@@ -26951,14 +27075,14 @@ function xk(e = {}) {
|
|
|
26951
27075
|
};
|
|
26952
27076
|
return e.queuedSubmissionId !== void 0 && (n.queuedSubmissionId = e.queuedSubmissionId?.trim() || null), e.clientUserMessageId !== void 0 && (n.clientUserMessageId = e.clientUserMessageId?.trim() || null), e.dispatch !== void 0 && (n.dispatch = e.dispatch), e.dispatchError !== void 0 && (n.dispatchError = e.dispatchError?.trim() || null), n;
|
|
26953
27077
|
} catch (e) {
|
|
26954
|
-
throw n &&
|
|
27078
|
+
throw n && Ck(e) && (o = "unavailable", O = k ? null : pk(e) ?? "unavailable", G()), e;
|
|
26955
27079
|
}
|
|
26956
27080
|
},
|
|
26957
27081
|
send(e) {
|
|
26958
27082
|
return ue.queue(e);
|
|
26959
27083
|
}
|
|
26960
27084
|
};
|
|
26961
|
-
e.service.provide(
|
|
27085
|
+
e.service.provide(zO, ue);
|
|
26962
27086
|
let de = async () => {
|
|
26963
27087
|
if (!(C || V())) {
|
|
26964
27088
|
if (b?.status === "failed" && b.id) {
|
|
@@ -26996,9 +27120,9 @@ function xk(e = {}) {
|
|
|
26996
27120
|
updatedAt: 0
|
|
26997
27121
|
}) : x = globalThis.setTimeout(() => {
|
|
26998
27122
|
x = 0, le(e.deliveryId);
|
|
26999
|
-
},
|
|
27123
|
+
}, HO) : S = globalThis.setTimeout(() => {
|
|
27000
27124
|
S = 0, b?.id === null && b?.status === "queued" && (b = null, z(), G());
|
|
27001
|
-
},
|
|
27125
|
+
}, WO);
|
|
27002
27126
|
} catch (e) {
|
|
27003
27127
|
b = null, z(), G();
|
|
27004
27128
|
let t = e instanceof Error ? e.message : String(e);
|
|
@@ -27027,7 +27151,7 @@ function xk(e = {}) {
|
|
|
27027
27151
|
}, 0));
|
|
27028
27152
|
let t = globalThis.setInterval(() => {
|
|
27029
27153
|
k && !c || te(!0).catch(() => void 0);
|
|
27030
|
-
}, k ?
|
|
27154
|
+
}, k ? VO : tk);
|
|
27031
27155
|
e.lifecycle.onDispose(() => {
|
|
27032
27156
|
w = !0, oe(), globalThis.clearInterval(t), _?.dispose(), _ = void 0;
|
|
27033
27157
|
});
|
|
@@ -27037,64 +27161,64 @@ function xk(e = {}) {
|
|
|
27037
27161
|
}
|
|
27038
27162
|
//#endregion
|
|
27039
27163
|
//#region src/recording.ts
|
|
27040
|
-
var
|
|
27041
|
-
...
|
|
27042
|
-
version:
|
|
27043
|
-
}),
|
|
27044
|
-
...
|
|
27045
|
-
version:
|
|
27046
|
-
}),
|
|
27164
|
+
var Tk = pE, Ek = (e = {}) => ({
|
|
27165
|
+
...PE(e),
|
|
27166
|
+
version: WD
|
|
27167
|
+
}), Dk = qE, Ok = (e = {}) => ({
|
|
27168
|
+
...pD(e),
|
|
27169
|
+
version: WD
|
|
27170
|
+
}), kk = () => globalThis.window?.__MESURER_HOST__?.codexBridge !== void 0, Ak = [
|
|
27047
27171
|
{
|
|
27048
|
-
id:
|
|
27172
|
+
id: yO,
|
|
27049
27173
|
label: "Context",
|
|
27050
27174
|
order: 30,
|
|
27051
|
-
create:
|
|
27175
|
+
create: AO,
|
|
27052
27176
|
settingsIds: ["context"],
|
|
27053
27177
|
hiddenSettingsControlIds: ["ui"]
|
|
27054
27178
|
},
|
|
27055
27179
|
{
|
|
27056
|
-
id:
|
|
27180
|
+
id: GD,
|
|
27057
27181
|
label: "Edit",
|
|
27058
27182
|
order: 35,
|
|
27059
|
-
create:
|
|
27183
|
+
create: qD,
|
|
27060
27184
|
settingsIds: ["arrange"]
|
|
27061
27185
|
},
|
|
27062
27186
|
{
|
|
27063
|
-
id:
|
|
27187
|
+
id: gO,
|
|
27064
27188
|
label: "Layout Guides",
|
|
27065
27189
|
order: 38,
|
|
27066
|
-
create:
|
|
27190
|
+
create: vO
|
|
27067
27191
|
},
|
|
27068
27192
|
{
|
|
27069
|
-
id:
|
|
27193
|
+
id: Dk,
|
|
27070
27194
|
label: "Screenshot",
|
|
27071
27195
|
order: 40,
|
|
27072
|
-
create:
|
|
27196
|
+
create: Ok,
|
|
27073
27197
|
settingsIds: ["screenshot"],
|
|
27074
27198
|
hiddenSettingsControlIds: ["tool"]
|
|
27075
27199
|
},
|
|
27076
27200
|
{
|
|
27077
|
-
id:
|
|
27201
|
+
id: Tk,
|
|
27078
27202
|
label: "Recording",
|
|
27079
27203
|
order: 42,
|
|
27080
|
-
create:
|
|
27204
|
+
create: Ek,
|
|
27081
27205
|
settingsIds: ["recording"],
|
|
27082
27206
|
hiddenSettingsControlIds: ["tool"]
|
|
27083
27207
|
},
|
|
27084
27208
|
{
|
|
27085
|
-
id:
|
|
27209
|
+
id: RO,
|
|
27086
27210
|
label: "Codex",
|
|
27087
27211
|
order: 45,
|
|
27088
|
-
create:
|
|
27212
|
+
create: wk
|
|
27089
27213
|
}
|
|
27090
|
-
],
|
|
27091
|
-
let t = e !== void 0, n = new Map((e ?? []).map((e) => [e.id, e])), r = new Set(
|
|
27214
|
+
], jk = (e) => {
|
|
27215
|
+
let t = e !== void 0, n = new Map((e ?? []).map((e) => [e.id, e])), r = new Set(Ak.map((e) => e.id)), i = Ak.map((e) => {
|
|
27092
27216
|
let r = n.get(e.id);
|
|
27093
27217
|
return {
|
|
27094
27218
|
...e,
|
|
27095
27219
|
settingsIds: e.settingsIds ? [...e.settingsIds] : void 0,
|
|
27096
27220
|
hiddenSettingsControlIds: e.hiddenSettingsControlIds ? [...e.hiddenSettingsControlIds] : void 0,
|
|
27097
|
-
enabled: t ? !!r : e.id === "mesurer.codex" ?
|
|
27221
|
+
enabled: t ? !!r : e.id === "mesurer.codex" ? kk() : e.enabled !== !1,
|
|
27098
27222
|
create: r ? () => r : e.create
|
|
27099
27223
|
};
|
|
27100
27224
|
});
|
|
@@ -27105,7 +27229,7 @@ var Sk = uE, Ck = (e = {}) => ({
|
|
|
27105
27229
|
create: () => n
|
|
27106
27230
|
});
|
|
27107
27231
|
return i;
|
|
27108
|
-
},
|
|
27232
|
+
}, Mk = {
|
|
27109
27233
|
select: "select",
|
|
27110
27234
|
xray: "xray",
|
|
27111
27235
|
colorPicker: "color-picker",
|
|
@@ -27116,7 +27240,7 @@ var Sk = uE, Ck = (e = {}) => ({
|
|
|
27116
27240
|
distance: "distance",
|
|
27117
27241
|
settings: "settings"
|
|
27118
27242
|
};
|
|
27119
|
-
function
|
|
27243
|
+
function Nk(e = {}) {
|
|
27120
27244
|
if (!("document" in globalThis)) throw Error("mountMesurer() requires a browser or Electron renderer document.");
|
|
27121
27245
|
let { target: t = document.body, isolate: n = !0, shadowMode: r = "open", topLayer: i = !0, agent: a = !1, signal: o, onPluginHost: s, onPluginsReady: c, plugins: l, excludeBuiltins: u, excludePlugins: d, ...f } = e;
|
|
27122
27246
|
if (o?.aborted) throw o.reason ?? new DOMException("Mesurer mount aborted.", "AbortError");
|
|
@@ -27209,7 +27333,7 @@ function Ak(e = {}) {
|
|
|
27209
27333
|
} catch {}
|
|
27210
27334
|
let h = p.createElement("div");
|
|
27211
27335
|
h.dataset.mesurerIsland = "true";
|
|
27212
|
-
let g =
|
|
27336
|
+
let g = LO(h, t, i), _ = h, v = h, y = h;
|
|
27213
27337
|
if (n) {
|
|
27214
27338
|
let e = h.attachShadow({ mode: r });
|
|
27215
27339
|
v = p.createElement("div"), v.dataset.mesurerIslandMount = "true", e.append(v), _ = e, y = e;
|
|
@@ -27220,7 +27344,7 @@ function Ak(e = {}) {
|
|
|
27220
27344
|
C = e, w = t;
|
|
27221
27345
|
});
|
|
27222
27346
|
D.catch(() => void 0), O.catch(() => void 0);
|
|
27223
|
-
let k = async () => (await (b ? Promise.resolve(b) : D), O), A = a === !0 ? {} : a === !1 ? null : a, j =
|
|
27347
|
+
let k = async () => (await (b ? Promise.resolve(b) : D), O), A = a === !0 ? {} : a === !1 ? null : a, j = UD({
|
|
27224
27348
|
ownerDocument: p,
|
|
27225
27349
|
root: A?.root ?? (t.nodeType === 11 ? t : p),
|
|
27226
27350
|
getPluginHost: () => b,
|
|
@@ -27232,12 +27356,12 @@ function Ak(e = {}) {
|
|
|
27232
27356
|
return t;
|
|
27233
27357
|
}, N = async () => {
|
|
27234
27358
|
await j.ready();
|
|
27235
|
-
let e = b?.service.get(
|
|
27359
|
+
let e = b?.service.get(bO);
|
|
27236
27360
|
if (!e) throw Error("Mesurer Context is disabled. Enable it in Settings or include context() in plugins.");
|
|
27237
27361
|
return e;
|
|
27238
27362
|
}, P = async () => {
|
|
27239
27363
|
await j.ready();
|
|
27240
|
-
let e = b?.service.get(
|
|
27364
|
+
let e = b?.service.get(JD);
|
|
27241
27365
|
if (!e) throw Error("Mesurer Edit is disabled. Enable it in Settings or include edit() in plugins.");
|
|
27242
27366
|
return e;
|
|
27243
27367
|
}, F = async (e) => (await N()).context(e), I = async (e) => (await N()).contextText(e), L = async (e) => (await N()).copyContext(e), R = async (e) => (await N()).select(e), z = async () => (await N()).annotations(), B = async (e) => (await N()).review(e), V = async (e) => (await N()).capturePlan(e), ee = async () => (await N()).prepareCapture(), H = async () => (await N()).finishCapture(), U = async () => (await P()).intents(), W = async (e) => {
|
|
@@ -27248,7 +27372,7 @@ function Ak(e = {}) {
|
|
|
27248
27372
|
(await P()).show(e, t);
|
|
27249
27373
|
}, ne = async (e, t) => (await P()).capturePlan(e, t), re = async (e, t) => (await P()).review(e, t), ie = () => j.textEdits(), G = (e) => j.textEdit(e), ae = Object.assign(j, {
|
|
27250
27374
|
capabilities: () => {
|
|
27251
|
-
let e = !!b?.service.get(
|
|
27375
|
+
let e = !!b?.service.get(bO);
|
|
27252
27376
|
return {
|
|
27253
27377
|
protocol: "mesurer.agent/v1",
|
|
27254
27378
|
contextSchema: "mesurer.context/v1",
|
|
@@ -27258,8 +27382,8 @@ function Ak(e = {}) {
|
|
|
27258
27382
|
annotations: e,
|
|
27259
27383
|
review: e,
|
|
27260
27384
|
capturePlan: e,
|
|
27261
|
-
arrange: !!b?.service.get(
|
|
27262
|
-
textEdit: !!b?.service.get(
|
|
27385
|
+
arrange: !!b?.service.get(JD),
|
|
27386
|
+
textEdit: !!b?.service.get(VD)
|
|
27263
27387
|
}
|
|
27264
27388
|
};
|
|
27265
27389
|
},
|
|
@@ -27278,10 +27402,10 @@ function Ak(e = {}) {
|
|
|
27278
27402
|
reviewArrange: re
|
|
27279
27403
|
}), oe = {
|
|
27280
27404
|
...f,
|
|
27281
|
-
version:
|
|
27282
|
-
plugins:
|
|
27283
|
-
excludePlugins: u ? u.map((e) =>
|
|
27284
|
-
}, se = No(() => yo(
|
|
27405
|
+
version: WD,
|
|
27406
|
+
plugins: jk(l),
|
|
27407
|
+
excludePlugins: u ? u.map((e) => Mk[e]) : [...d ?? []]
|
|
27408
|
+
}, se = No(() => yo(YC, oo(oe, {
|
|
27285
27409
|
portalTarget: y,
|
|
27286
27410
|
pageTarget: t,
|
|
27287
27411
|
onPluginHost: (e) => {
|
|
@@ -27351,26 +27475,26 @@ function Ak(e = {}) {
|
|
|
27351
27475
|
}
|
|
27352
27476
|
//#endregion
|
|
27353
27477
|
//#region src/inject.ts
|
|
27354
|
-
var
|
|
27478
|
+
var Pk = globalThis.__MESURER_CONFIG__ ?? {}, Fk = (() => {
|
|
27355
27479
|
try {
|
|
27356
27480
|
return !!window.frameElement?.hasAttribute("data-mesurer-responsive-frame");
|
|
27357
27481
|
} catch {
|
|
27358
27482
|
return !1;
|
|
27359
27483
|
}
|
|
27360
|
-
})(), { target:
|
|
27361
|
-
function
|
|
27362
|
-
let e =
|
|
27363
|
-
if (!e) throw Error(`Mesurer injection target not found: ${
|
|
27364
|
-
return
|
|
27365
|
-
...
|
|
27484
|
+
})(), { target: Ik, globalName: Lk = "__MESURER__", reuseExisting: Rk = !0, recoverDisconnected: zk = !1, ...Bk } = Pk, Vk = globalThis.__MESURER_INSTANCE__, Hk = !Fk && Rk && Vk?.element.isConnected ? Vk : void 0;
|
|
27485
|
+
function Uk() {
|
|
27486
|
+
let e = Ik ? document.querySelector(Ik) : document.body;
|
|
27487
|
+
if (!e) throw Error(`Mesurer injection target not found: ${Ik}`);
|
|
27488
|
+
return Fk || globalThis.__MESURER_INSTANCE__?.dispose(), Nk({
|
|
27489
|
+
...Bk,
|
|
27366
27490
|
target: e,
|
|
27367
27491
|
agent: {
|
|
27368
|
-
globalName:
|
|
27492
|
+
globalName: Lk,
|
|
27369
27493
|
root: document
|
|
27370
27494
|
}
|
|
27371
27495
|
});
|
|
27372
27496
|
}
|
|
27373
|
-
var
|
|
27497
|
+
var Wk = (e) => {
|
|
27374
27498
|
globalThis.__MESURER_INJECT_RECOVERY__?.stop();
|
|
27375
27499
|
let t = !1, n = !1, r = () => {
|
|
27376
27500
|
if (n = !1, t || globalThis.__MESURER_INSTANCE__?.element.isConnected) return;
|
|
@@ -27389,7 +27513,7 @@ var Vk = (e) => {
|
|
|
27389
27513
|
}), globalThis.__MESURER_INJECT_RECOVERY__ = { stop() {
|
|
27390
27514
|
t = !0, i.disconnect();
|
|
27391
27515
|
} };
|
|
27392
|
-
},
|
|
27393
|
-
|
|
27516
|
+
}, Gk = Hk ?? Uk();
|
|
27517
|
+
Fk || (globalThis.__MESURER_INSTANCE__ = Gk), Fk || globalThis.__MESURER_INJECT_RECOVERY__?.stop(), Fk || (globalThis.__MESURER_INJECT_RECOVERY__ = void 0), zk && !Fk && Wk(Uk), Fk || await Gk.ready;
|
|
27394
27518
|
//#endregion
|
|
27395
|
-
export {
|
|
27519
|
+
export { Gk as mesurer };
|