mesurer-solid 0.2.1-beta.5 → 0.2.1-beta.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1285 -770
- package/dist/inject-script.js +8 -8
- package/dist/inject.js +1280 -765
- package/dist/plugins.js +1383 -869
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -5508,7 +5508,7 @@ function ll(e) {
|
|
|
5508
5508
|
get children() {
|
|
5509
5509
|
var n = X("div", {
|
|
5510
5510
|
"data-mesurer-measurement-chrome": "true",
|
|
5511
|
-
class: "msr:absolute"
|
|
5511
|
+
class: "msr:pointer-events-none msr:absolute"
|
|
5512
5512
|
});
|
|
5513
5513
|
return aa(() => (e) => {
|
|
5514
5514
|
t = e;
|
|
@@ -5870,6 +5870,7 @@ function dl(e) {
|
|
|
5870
5870
|
};
|
|
5871
5871
|
});
|
|
5872
5872
|
var B = X("div", {
|
|
5873
|
+
"data-mesurer-interaction-overlay": "true",
|
|
5873
5874
|
onPointerDown: (t) => e.onPointerDown(t),
|
|
5874
5875
|
onPointerUp: (t) => e.onPointerUp(t),
|
|
5875
5876
|
onPointerLeave: (t) => e.onPointerLeave(t)
|
|
@@ -17972,42 +17973,57 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
|
|
|
17972
17973
|
}, lb = (e) => {
|
|
17973
17974
|
let t = Number.isFinite(e) ? Math.max(0, e) : 0, n = Math.floor(t / 60);
|
|
17974
17975
|
return `${n}:${(t - n * 60).toFixed(2).padStart(5, "0")}`;
|
|
17975
|
-
}, ub = (e, t) => {
|
|
17976
|
-
let
|
|
17977
|
-
return
|
|
17978
|
-
|
|
17979
|
-
|
|
17980
|
-
|
|
17981
|
-
|
|
17982
|
-
|
|
17976
|
+
}, ub = (e, t, n) => {
|
|
17977
|
+
let r = e.createElement("button");
|
|
17978
|
+
return r.type = "button", r.setAttribute("aria-label", t), r.title = t, r.textContent = n, cb(r, {
|
|
17979
|
+
display: "inline-flex",
|
|
17980
|
+
width: "20px",
|
|
17981
|
+
height: "20px",
|
|
17982
|
+
padding: "0",
|
|
17983
|
+
border: "0",
|
|
17984
|
+
"border-radius": "5px",
|
|
17985
|
+
background: "transparent",
|
|
17983
17986
|
color: "var(--msr-content, #18181b)",
|
|
17987
|
+
"align-items": "center",
|
|
17988
|
+
"justify-content": "center",
|
|
17984
17989
|
"font-family": "inherit",
|
|
17985
17990
|
"font-size": "11px",
|
|
17986
|
-
"
|
|
17991
|
+
"line-height": "1",
|
|
17987
17992
|
cursor: "pointer"
|
|
17988
|
-
}),
|
|
17993
|
+
}), r;
|
|
17989
17994
|
}, db = (e, t) => {
|
|
17990
|
-
let n = e.createElement("
|
|
17991
|
-
|
|
17995
|
+
let n = e.createElement("button");
|
|
17996
|
+
n.type = "button", n.setAttribute("role", "menuitemradio"), cb(n, {
|
|
17997
|
+
display: "grid",
|
|
17998
|
+
width: "100%",
|
|
17992
17999
|
height: "28px",
|
|
17993
|
-
padding: "0
|
|
17994
|
-
border: "
|
|
17995
|
-
"border-radius": "
|
|
17996
|
-
background: "
|
|
18000
|
+
padding: "0 8px",
|
|
18001
|
+
border: "0",
|
|
18002
|
+
"border-radius": "6px",
|
|
18003
|
+
background: "transparent",
|
|
17997
18004
|
color: "var(--msr-content, #18181b)",
|
|
18005
|
+
"grid-template-columns": "14px minmax(0, 1fr)",
|
|
18006
|
+
gap: "6px",
|
|
18007
|
+
"align-items": "center",
|
|
18008
|
+
"text-align": "left",
|
|
17998
18009
|
"font-family": "inherit",
|
|
17999
18010
|
"font-size": "11px",
|
|
18000
18011
|
cursor: "pointer"
|
|
18001
|
-
})
|
|
18012
|
+
});
|
|
18013
|
+
let r = e.createElement("span");
|
|
18014
|
+
r.setAttribute("aria-hidden", "true"), r.textContent = "✓", r.style.opacity = "0";
|
|
18015
|
+
let i = e.createElement("span");
|
|
18016
|
+
return i.textContent = t, n.append(r, i), {
|
|
18017
|
+
button: n,
|
|
18018
|
+
check: r,
|
|
18019
|
+
text: i
|
|
18020
|
+
};
|
|
18002
18021
|
}, fb = (e, t, n, r) => {
|
|
18003
|
-
let i = e.createElement("option");
|
|
18004
|
-
i.value = n, i.textContent = r, t.append(i);
|
|
18005
|
-
}, pb = (e, t, n, r) => {
|
|
18006
18022
|
let i = globalThis.URL.createObjectURL(e), a = n.createElement("a");
|
|
18007
18023
|
a.href = i, a.download = t, a.rel = "noopener", n.documentElement.append(a), a.click(), a.remove(), r.setTimeout(() => globalThis.URL.revokeObjectURL(i), 1e3);
|
|
18008
|
-
},
|
|
18024
|
+
}, pb = ({ ownerDocument: e, ownerWindow: t, root: n, formats: r, onDiscard: i, onExport: a }) => {
|
|
18009
18025
|
let o = e.createElement("section");
|
|
18010
|
-
o.dataset.mesurerRecordingPreview = "true", o.dataset.mesurerInspectorUi = "true", o.setAttribute("role", "dialog"), o.setAttribute("aria-label", "Screen recording editor"), cb(o, {
|
|
18026
|
+
o.dataset.mesurerRecordingPreview = "true", o.dataset.mesurerInspectorUi = "true", o.setAttribute("role", "dialog"), o.setAttribute("aria-label", "Screen recording editor"), o.tabIndex = 0, cb(o, {
|
|
18011
18027
|
position: "fixed",
|
|
18012
18028
|
display: "none",
|
|
18013
18029
|
width: `${rb}px`,
|
|
@@ -18022,234 +18038,425 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
|
|
|
18022
18038
|
"box-shadow": "var(--msr-shadow-floating, 0 10px 30px rgba(0, 0, 0, 0.12))",
|
|
18023
18039
|
"font-family": "ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif",
|
|
18024
18040
|
"font-size": "11px",
|
|
18025
|
-
"pointer-events": "auto"
|
|
18041
|
+
"pointer-events": "auto",
|
|
18042
|
+
outline: "none",
|
|
18043
|
+
transition: "width 200ms ease"
|
|
18026
18044
|
}), n.append(o);
|
|
18027
18045
|
let s = e.createElement("div");
|
|
18028
18046
|
cb(s, {
|
|
18029
18047
|
position: "relative",
|
|
18048
|
+
display: "flex",
|
|
18030
18049
|
width: "100%",
|
|
18031
18050
|
"min-height": "72px",
|
|
18032
|
-
"max-height": "
|
|
18051
|
+
"max-height": "144px",
|
|
18033
18052
|
overflow: "hidden",
|
|
18034
18053
|
"border-radius": "8px",
|
|
18035
18054
|
background: "var(--msr-surface-muted, #f8fafc)",
|
|
18036
|
-
|
|
18055
|
+
"align-items": "center",
|
|
18056
|
+
"justify-content": "center",
|
|
18057
|
+
transition: "max-height 200ms ease",
|
|
18058
|
+
cursor: "default"
|
|
18037
18059
|
}), o.append(s);
|
|
18038
18060
|
let c = e.createElement("video");
|
|
18039
18061
|
c.muted = !0, c.playsInline = !0, c.preload = "auto", cb(c, {
|
|
18040
18062
|
display: "block",
|
|
18041
18063
|
width: "100%",
|
|
18042
18064
|
height: "100%",
|
|
18043
|
-
"max-
|
|
18065
|
+
"max-width": "100%",
|
|
18066
|
+
"max-height": "144px",
|
|
18044
18067
|
"object-fit": "contain",
|
|
18045
|
-
transition: "max-height
|
|
18068
|
+
transition: "max-height 200ms ease"
|
|
18046
18069
|
}), s.append(c);
|
|
18047
|
-
let l =
|
|
18048
|
-
l.dataset.
|
|
18070
|
+
let l = e.createElement("div");
|
|
18071
|
+
l.dataset.mesurerRecordingExporting = "true", l.textContent = "Exporting…", cb(l, {
|
|
18072
|
+
position: "absolute",
|
|
18073
|
+
inset: "0",
|
|
18074
|
+
display: "none",
|
|
18075
|
+
"align-items": "center",
|
|
18076
|
+
"justify-content": "center",
|
|
18077
|
+
"z-index": "30",
|
|
18078
|
+
background: "rgb(15 23 42 / 45%)",
|
|
18079
|
+
color: "#fff",
|
|
18080
|
+
"font-size": "11px",
|
|
18081
|
+
"pointer-events": "none"
|
|
18082
|
+
}), s.append(l);
|
|
18083
|
+
let u = ub(e, "Close", "×");
|
|
18084
|
+
u.dataset.mesurerRecordingDiscard = "true", cb(u, {
|
|
18049
18085
|
position: "absolute",
|
|
18050
18086
|
top: "6px",
|
|
18051
18087
|
right: "6px",
|
|
18052
18088
|
width: "24px",
|
|
18053
|
-
|
|
18054
|
-
"
|
|
18089
|
+
height: "24px",
|
|
18090
|
+
"z-index": "40",
|
|
18055
18091
|
background: "rgb(15 23 42 / 78%)",
|
|
18056
18092
|
color: "#fff",
|
|
18057
|
-
|
|
18058
|
-
|
|
18059
|
-
|
|
18060
|
-
|
|
18093
|
+
opacity: "0",
|
|
18094
|
+
"pointer-events": "none",
|
|
18095
|
+
transition: "opacity 150ms ease"
|
|
18096
|
+
}), s.append(u), s.addEventListener("mouseenter", () => {
|
|
18097
|
+
u.style.opacity = "1", u.style.pointerEvents = "auto";
|
|
18098
|
+
}), s.addEventListener("mouseleave", () => {
|
|
18099
|
+
e.activeElement !== u && (u.style.opacity = "0", u.style.pointerEvents = "none");
|
|
18100
|
+
}), u.addEventListener("focus", () => {
|
|
18101
|
+
u.style.opacity = "1", u.style.pointerEvents = "auto";
|
|
18102
|
+
}), u.addEventListener("blur", () => {
|
|
18103
|
+
u.style.opacity = "0", u.style.pointerEvents = "none";
|
|
18104
|
+
});
|
|
18105
|
+
let d = e.createElement("div");
|
|
18106
|
+
cb(d, {
|
|
18061
18107
|
display: "flex",
|
|
18108
|
+
height: "20px",
|
|
18062
18109
|
"align-items": "center",
|
|
18063
18110
|
gap: "6px",
|
|
18064
18111
|
"margin-top": "8px"
|
|
18065
|
-
}), o.append(
|
|
18066
|
-
let
|
|
18067
|
-
|
|
18068
|
-
let f = e.createElement("span");
|
|
18069
|
-
f.textContent = "0:00.00", cb(f, {
|
|
18070
|
-
width: "48px",
|
|
18071
|
-
color: "var(--msr-color-ink-500, #64748b)",
|
|
18072
|
-
"font-family": "ui-monospace, SFMono-Regular, Menlo, monospace",
|
|
18073
|
-
"font-variant-numeric": "tabular-nums"
|
|
18074
|
-
}), u.append(f);
|
|
18112
|
+
}), o.append(d);
|
|
18113
|
+
let f = ub(e, "Play", "▶");
|
|
18114
|
+
f.dataset.mesurerRecordingPlay = "true", d.append(f);
|
|
18075
18115
|
let p = e.createElement("span");
|
|
18076
|
-
cb(p, {
|
|
18077
|
-
|
|
18116
|
+
p.textContent = "0:00.00", cb(p, {
|
|
18117
|
+
display: "flex",
|
|
18118
|
+
width: "32px",
|
|
18119
|
+
height: "20px",
|
|
18120
|
+
"align-items": "center",
|
|
18121
|
+
"flex-shrink": "0",
|
|
18078
18122
|
color: "var(--msr-color-ink-500, #64748b)",
|
|
18079
18123
|
"font-family": "ui-monospace, SFMono-Regular, Menlo, monospace",
|
|
18124
|
+
"font-size": "10px",
|
|
18080
18125
|
"font-variant-numeric": "tabular-nums"
|
|
18081
|
-
}),
|
|
18126
|
+
}), d.append(p);
|
|
18082
18127
|
let m = e.createElement("div");
|
|
18083
|
-
m.dataset.
|
|
18084
|
-
|
|
18128
|
+
m.dataset.mesurerRecordingTimeline = "true", cb(m, {
|
|
18129
|
+
position: "relative",
|
|
18130
|
+
height: "20px",
|
|
18131
|
+
"min-width": "0",
|
|
18132
|
+
flex: "1 1 0",
|
|
18133
|
+
cursor: "pointer",
|
|
18134
|
+
"user-select": "none"
|
|
18135
|
+
}), d.append(m);
|
|
18136
|
+
let h = e.createElement("div");
|
|
18137
|
+
h.dataset.mesurerRecordingTimelineRail = "true", cb(h, {
|
|
18138
|
+
position: "absolute",
|
|
18139
|
+
left: "0",
|
|
18140
|
+
right: "0",
|
|
18141
|
+
top: "50%",
|
|
18142
|
+
height: "3px",
|
|
18143
|
+
transform: "translateY(-50%)",
|
|
18144
|
+
"border-radius": "999px",
|
|
18145
|
+
background: "var(--msr-color-ink-200, #e2e8f0)",
|
|
18146
|
+
"pointer-events": "none"
|
|
18147
|
+
}), m.append(h);
|
|
18148
|
+
let g = e.createElement("div");
|
|
18149
|
+
g.dataset.mesurerRecordingTimelineClip = "true", cb(g, {
|
|
18150
|
+
position: "absolute",
|
|
18151
|
+
top: "50%",
|
|
18152
|
+
height: "3px",
|
|
18153
|
+
transform: "translateY(-50%)",
|
|
18154
|
+
"border-radius": "999px",
|
|
18155
|
+
background: "var(--msr-color-ink-300, #cbd5e1)",
|
|
18156
|
+
"pointer-events": "none"
|
|
18157
|
+
}), m.append(g);
|
|
18158
|
+
let _ = e.createElement("div");
|
|
18159
|
+
cb(_, {
|
|
18160
|
+
position: "absolute",
|
|
18161
|
+
display: "none",
|
|
18162
|
+
top: "50%",
|
|
18163
|
+
width: "2px",
|
|
18164
|
+
height: "10px",
|
|
18165
|
+
transform: "translate(-50%, -50%)",
|
|
18166
|
+
"border-radius": "999px",
|
|
18167
|
+
background: "var(--msr-color-ink-500, #64748b)",
|
|
18168
|
+
opacity: "0.5",
|
|
18169
|
+
"pointer-events": "none"
|
|
18170
|
+
}), m.append(_);
|
|
18171
|
+
let v = e.createElement("div");
|
|
18172
|
+
v.dataset.mesurerRecordingPlayhead = "true", cb(v, {
|
|
18173
|
+
position: "absolute",
|
|
18174
|
+
top: "50%",
|
|
18175
|
+
left: "0",
|
|
18176
|
+
width: "2px",
|
|
18177
|
+
height: "8px",
|
|
18178
|
+
transform: "translate(-50%, -50%)",
|
|
18179
|
+
"border-radius": "999px",
|
|
18180
|
+
background: "var(--msr-content, #18181b)",
|
|
18181
|
+
"z-index": "25",
|
|
18182
|
+
"pointer-events": "none",
|
|
18183
|
+
transition: "height 150ms ease"
|
|
18184
|
+
}), m.append(v);
|
|
18185
|
+
let y = (t, n) => {
|
|
18186
|
+
let r = e.createElement("button");
|
|
18187
|
+
return r.type = "button", r.dataset.mesurerRecordingTrimHandle = t, r.setAttribute("role", "slider"), r.setAttribute("aria-label", n), r.setAttribute("aria-valuemin", "0"), cb(r, {
|
|
18188
|
+
position: "absolute",
|
|
18189
|
+
top: "50%",
|
|
18190
|
+
width: "8px",
|
|
18191
|
+
height: "14px",
|
|
18192
|
+
padding: "0",
|
|
18193
|
+
border: "1px solid var(--msr-surface-raised, #fff)",
|
|
18194
|
+
"border-radius": "3px",
|
|
18195
|
+
background: "var(--msr-content, #18181b)",
|
|
18196
|
+
transform: "translate(-50%, -50%)",
|
|
18197
|
+
"z-index": "20",
|
|
18198
|
+
cursor: "ew-resize"
|
|
18199
|
+
}), m.append(r), r;
|
|
18200
|
+
}, b = y("start", "Trim start"), x = y("end", "Trim end"), S = e.createElement("span");
|
|
18201
|
+
cb(S, {
|
|
18202
|
+
display: "flex",
|
|
18203
|
+
width: "32px",
|
|
18204
|
+
height: "20px",
|
|
18205
|
+
"align-items": "center",
|
|
18206
|
+
"justify-content": "flex-end",
|
|
18207
|
+
"flex-shrink": "0",
|
|
18085
18208
|
color: "var(--msr-color-ink-500, #64748b)",
|
|
18086
18209
|
"font-family": "ui-monospace, SFMono-Regular, Menlo, monospace",
|
|
18210
|
+
"font-size": "10px",
|
|
18087
18211
|
"font-variant-numeric": "tabular-nums"
|
|
18088
|
-
}),
|
|
18089
|
-
let
|
|
18090
|
-
cb(
|
|
18091
|
-
|
|
18092
|
-
"grid-template-columns": "32px minmax(0, 1fr)",
|
|
18093
|
-
gap: "5px 8px",
|
|
18094
|
-
"align-items": "center",
|
|
18095
|
-
"margin-top": "5px"
|
|
18096
|
-
}), o.append(h);
|
|
18097
|
-
let g = e.createElement("span");
|
|
18098
|
-
g.textContent = "In", g.style.color = "var(--msr-color-ink-500, #64748b)", h.append(g);
|
|
18099
|
-
let _ = e.createElement("input");
|
|
18100
|
-
_.type = "range", _.min = "0", _.step = "0.01", _.dataset.mesurerRecordingTrimStart = "true", h.append(_);
|
|
18101
|
-
let v = e.createElement("span");
|
|
18102
|
-
v.textContent = "Out", v.style.color = "var(--msr-color-ink-500, #64748b)", h.append(v);
|
|
18103
|
-
let y = e.createElement("input");
|
|
18104
|
-
y.type = "range", y.min = "0", y.step = "0.01", y.dataset.mesurerRecordingTrimEnd = "true", h.append(y);
|
|
18105
|
-
for (let e of [_, y]) cb(e, {
|
|
18106
|
-
width: "100%",
|
|
18107
|
-
height: "20px",
|
|
18108
|
-
margin: "0",
|
|
18109
|
-
accentColor: "var(--msr-accent, #0d99ff)",
|
|
18110
|
-
cursor: "ew-resize"
|
|
18111
|
-
});
|
|
18112
|
-
let b = e.createElement("div");
|
|
18113
|
-
cb(b, {
|
|
18212
|
+
}), d.append(S);
|
|
18213
|
+
let C = e.createElement("div");
|
|
18214
|
+
cb(C, {
|
|
18215
|
+
position: "relative",
|
|
18114
18216
|
display: "flex",
|
|
18115
|
-
|
|
18116
|
-
|
|
18117
|
-
|
|
18118
|
-
|
|
18119
|
-
|
|
18120
|
-
|
|
18121
|
-
|
|
18122
|
-
|
|
18123
|
-
|
|
18124
|
-
|
|
18125
|
-
|
|
18126
|
-
|
|
18127
|
-
color: "var(--msr-surface, #fff)",
|
|
18128
|
-
border: "0"
|
|
18129
|
-
}), b.append(C);
|
|
18130
|
-
let w = ub(e, "Expand");
|
|
18131
|
-
w.dataset.mesurerRecordingExpand = "true", b.append(w);
|
|
18132
|
-
let T = e.createElement("p");
|
|
18133
|
-
T.dataset.mesurerRecordingPreviewStatus = "true", T.setAttribute("role", "status"), cb(T, {
|
|
18217
|
+
height: "20px",
|
|
18218
|
+
"align-items": "center"
|
|
18219
|
+
}), d.append(C);
|
|
18220
|
+
let w = ub(e, "Export options", "1×");
|
|
18221
|
+
w.dataset.mesurerRecordingExportOptions = "true", w.setAttribute("aria-haspopup", "menu"), w.setAttribute("aria-expanded", "false"), cb(w, {
|
|
18222
|
+
width: "28px",
|
|
18223
|
+
"font-family": "ui-monospace, SFMono-Regular, Menlo, monospace",
|
|
18224
|
+
"font-size": "10px"
|
|
18225
|
+
}), C.append(w);
|
|
18226
|
+
let T = e.createElement("div");
|
|
18227
|
+
T.dataset.mesurerRecordingExportMenu = "true", T.setAttribute("role", "menu"), cb(T, {
|
|
18228
|
+
position: "absolute",
|
|
18134
18229
|
display: "none",
|
|
18135
|
-
|
|
18230
|
+
right: "0",
|
|
18231
|
+
bottom: "24px",
|
|
18232
|
+
width: "176px",
|
|
18233
|
+
padding: "4px",
|
|
18234
|
+
"z-index": "120",
|
|
18235
|
+
border: "1px solid var(--msr-color-ink-200, #e2e8f0)",
|
|
18236
|
+
"border-radius": "9px",
|
|
18237
|
+
background: "var(--msr-surface-raised, #fff)",
|
|
18238
|
+
color: "var(--msr-content, #18181b)",
|
|
18239
|
+
"box-shadow": "var(--msr-shadow-floating, 0 10px 30px rgba(0, 0, 0, 0.12))",
|
|
18240
|
+
"pointer-events": "auto"
|
|
18241
|
+
}), C.append(T);
|
|
18242
|
+
let E = e.createElement("p");
|
|
18243
|
+
E.textContent = "Format", cb(E, {
|
|
18244
|
+
margin: "0",
|
|
18245
|
+
padding: "4px 8px",
|
|
18136
18246
|
color: "var(--msr-color-ink-500, #64748b)",
|
|
18137
|
-
"font-size": "
|
|
18138
|
-
|
|
18139
|
-
|
|
18140
|
-
|
|
18141
|
-
|
|
18142
|
-
|
|
18143
|
-
|
|
18144
|
-
|
|
18145
|
-
|
|
18146
|
-
|
|
18247
|
+
"font-size": "10px",
|
|
18248
|
+
"font-weight": "500"
|
|
18249
|
+
}), T.append(E);
|
|
18250
|
+
let D = e.createElement("div");
|
|
18251
|
+
T.append(D);
|
|
18252
|
+
let O = e.createElement("p");
|
|
18253
|
+
O.textContent = "Size", cb(O, {
|
|
18254
|
+
margin: "0",
|
|
18255
|
+
padding: "6px 8px 4px",
|
|
18256
|
+
color: "var(--msr-color-ink-500, #64748b)",
|
|
18257
|
+
"font-size": "10px",
|
|
18258
|
+
"font-weight": "500"
|
|
18259
|
+
}), T.append(O);
|
|
18260
|
+
let k = e.createElement("div");
|
|
18261
|
+
T.append(k);
|
|
18262
|
+
let A = [
|
|
18263
|
+
1,
|
|
18264
|
+
2,
|
|
18265
|
+
3
|
|
18266
|
+
].map((t) => {
|
|
18267
|
+
let n = db(e, `${t}×`);
|
|
18268
|
+
return n.button.dataset.mesurerRecordingScale = String(t), k.append(n.button), {
|
|
18269
|
+
scale: t,
|
|
18270
|
+
...n
|
|
18147
18271
|
};
|
|
18148
|
-
},
|
|
18149
|
-
|
|
18150
|
-
|
|
18151
|
-
|
|
18152
|
-
|
|
18272
|
+
}), j = ub(e, "Download", "↓");
|
|
18273
|
+
j.dataset.mesurerRecordingExport = "true", d.append(j);
|
|
18274
|
+
let M = ub(e, "Grow preview", "↗");
|
|
18275
|
+
M.dataset.mesurerRecordingExpand = "true", d.append(M);
|
|
18276
|
+
let N = e.createElement("p");
|
|
18277
|
+
N.dataset.mesurerRecordingPreviewStatus = "true", N.setAttribute("role", "status"), cb(N, {
|
|
18278
|
+
display: "none",
|
|
18279
|
+
margin: "8px 0 0",
|
|
18280
|
+
color: "var(--msr-color-ink-500, #64748b)",
|
|
18281
|
+
"font-size": "11px",
|
|
18282
|
+
"line-height": "16px"
|
|
18283
|
+
}), o.append(N);
|
|
18284
|
+
let P = null, F = null, I = !1, L = !1, R = 0, z = ["webm"], B = "webm", V = 1, H = 0, U = 0, ee = null, te = null, ne = (e) => {
|
|
18285
|
+
let t = P?.duration ?? 0;
|
|
18286
|
+
return t <= 0 ? 0 : Math.min(1, Math.max(0, e / t));
|
|
18287
|
+
}, W = () => ({
|
|
18288
|
+
start: H,
|
|
18289
|
+
end: U
|
|
18290
|
+
}), re = (e) => {
|
|
18291
|
+
let t = P?.duration ?? 0, n = m.getBoundingClientRect();
|
|
18292
|
+
return t <= 0 || n.width <= 0 ? 0 : Math.min(t, Math.max(0, (e - n.left) / n.width * t));
|
|
18293
|
+
}, ie = () => {
|
|
18294
|
+
let e = P?.duration ?? 0, t = Math.min(e, Math.max(0, c.currentTime || 0)), n = ne(H) * 100, r = ne(U) * 100;
|
|
18295
|
+
b.style.left = `${n}%`, x.style.left = `${r}%`, g.style.left = `${n}%`, g.style.width = `${Math.max(0, r - n)}%`, v.style.left = `${ne(t) * 100}%`, b.setAttribute("aria-valuemax", String(Math.max(0, U - sb))), b.setAttribute("aria-valuenow", String(H)), b.setAttribute("aria-valuetext", lb(H)), x.setAttribute("aria-valuemin", String(Math.min(e, H + sb))), x.setAttribute("aria-valuemax", String(e)), x.setAttribute("aria-valuenow", String(U)), x.setAttribute("aria-valuetext", lb(U)), p.textContent = lb(t), S.textContent = lb(e);
|
|
18296
|
+
}, ae = (e, t = !0) => {
|
|
18297
|
+
if (!P) return;
|
|
18298
|
+
let n = Math.min(U, Math.max(H, e));
|
|
18299
|
+
t && !c.paused && c.pause(), c.currentTime = n, ie();
|
|
18300
|
+
}, oe = (e, t = !1) => {
|
|
18301
|
+
P && (H = Math.min(Math.max(0, e), Math.max(0, U - sb)), (t || c.currentTime < H) && ae(H), ie());
|
|
18302
|
+
}, se = (e, t = !1) => {
|
|
18303
|
+
P && (U = Math.max(Math.min(P.duration, e), Math.min(P.duration, H + sb)), t ? ae(U) : c.currentTime > U && ae(H), ie());
|
|
18304
|
+
}, ce = () => {
|
|
18305
|
+
w.textContent = `${V}×`;
|
|
18306
|
+
for (let e of A) {
|
|
18307
|
+
let t = e.scale === V;
|
|
18308
|
+
e.button.setAttribute("aria-checked", t ? "true" : "false"), e.check.style.opacity = t ? "1" : "0", e.text.textContent = P ? `${e.scale}× ${Math.round(P.width * e.scale)} × ${Math.round(P.height * e.scale)}` : `${e.scale}×`;
|
|
18309
|
+
}
|
|
18310
|
+
}, le = () => {
|
|
18311
|
+
D.replaceChildren();
|
|
18312
|
+
for (let t of z) {
|
|
18313
|
+
let n = db(e, t === "mp4" ? "MP4" : "WebM"), r = t === B;
|
|
18314
|
+
n.button.dataset.mesurerRecordingFormat = t, n.button.setAttribute("aria-checked", r ? "true" : "false"), n.check.style.opacity = r ? "1" : "0", n.button.addEventListener("click", () => {
|
|
18315
|
+
B = t, le();
|
|
18316
|
+
}), D.append(n.button);
|
|
18317
|
+
}
|
|
18318
|
+
}, G = () => {
|
|
18319
|
+
if (T.style.display === "none") return;
|
|
18320
|
+
let e = C.getBoundingClientRect(), n = Math.max(1, T.offsetHeight), r = e.top - ab, i = t.innerHeight - e.bottom - ab;
|
|
18321
|
+
r >= n || r >= i ? (T.style.top = "auto", T.style.bottom = "24px") : (T.style.top = "24px", T.style.bottom = "auto");
|
|
18322
|
+
}, ue = (e) => {
|
|
18323
|
+
T.style.display = e ? "block" : "none", w.setAttribute("aria-expanded", e ? "true" : "false"), e && G();
|
|
18324
|
+
}, de = (e) => {
|
|
18325
|
+
L = e, l.style.display = e ? "flex" : "none";
|
|
18153
18326
|
for (let t of [
|
|
18154
|
-
|
|
18155
|
-
|
|
18156
|
-
|
|
18157
|
-
y,
|
|
18327
|
+
f,
|
|
18328
|
+
u,
|
|
18329
|
+
b,
|
|
18158
18330
|
x,
|
|
18159
|
-
|
|
18160
|
-
|
|
18161
|
-
|
|
18331
|
+
w,
|
|
18332
|
+
j,
|
|
18333
|
+
M,
|
|
18334
|
+
...A.map((e) => e.button)
|
|
18162
18335
|
]) t.toggleAttribute("disabled", e);
|
|
18163
|
-
|
|
18164
|
-
}, F = () => {
|
|
18336
|
+
}, fe = () => {
|
|
18165
18337
|
if (o.style.display === "none") return;
|
|
18166
|
-
let r = Math.min(
|
|
18167
|
-
s = Math.min(Math.max(ab, s), Math.max(ab, t.innerWidth - r - ab)), c + i > t.innerHeight - ab && (c = a ? a.top - i - ob : t.innerHeight - i - ab), o.style.left = `${s}px`, o.style.top = `${Math.max(ab, c)}px
|
|
18168
|
-
},
|
|
18169
|
-
c.pause(), c.removeAttribute("src"), c.load(),
|
|
18170
|
-
},
|
|
18171
|
-
|
|
18172
|
-
}
|
|
18173
|
-
|
|
18174
|
-
|
|
18175
|
-
|
|
18176
|
-
if (!(!E || k)) {
|
|
18177
|
-
if (c.paused) {
|
|
18178
|
-
let { start: e, end: t } = M();
|
|
18179
|
-
(c.currentTime < e || c.currentTime >= t) && (c.currentTime = e), c.play();
|
|
18338
|
+
let r = Math.min(I ? ib : rb, Math.max(1, t.innerWidth - 16)), i = Math.max(180, o.offsetHeight), a = (n.closest("[data-mesurer-root='true']")?.querySelector("[data-mesurer-tool-id='recording']") ?? e.querySelector("[data-mesurer-tool-id='recording']"))?.getBoundingClientRect(), s = a ? a.left + a.width / 2 - r / 2 : t.innerWidth - r - ab, c = a ? a.bottom + ob : ab;
|
|
18339
|
+
s = Math.min(Math.max(ab, s), Math.max(ab, t.innerWidth - r - ab)), c + i > t.innerHeight - ab && (c = a ? a.top - i - ob : t.innerHeight - i - ab), o.style.left = `${s}px`, o.style.top = `${Math.max(ab, c)}px`, T.style.display !== "none" && G();
|
|
18340
|
+
}, pe = () => {
|
|
18341
|
+
c.pause(), c.removeAttribute("src"), c.load(), F &&= (globalThis.URL.revokeObjectURL(F), null);
|
|
18342
|
+
}, me = () => {
|
|
18343
|
+
R += 1, pe(), P = null, ee = null, te = null, ue(!1), o.style.display = "none", N.style.display = "none", de(!1);
|
|
18344
|
+
}, he = () => {
|
|
18345
|
+
if (!(!P || L)) {
|
|
18346
|
+
if (!c.paused) {
|
|
18347
|
+
c.pause();
|
|
18180
18348
|
return;
|
|
18181
18349
|
}
|
|
18182
|
-
c.
|
|
18350
|
+
(c.currentTime < H || c.currentTime >= U) && (c.currentTime = H), c.play();
|
|
18183
18351
|
}
|
|
18184
|
-
}
|
|
18185
|
-
|
|
18352
|
+
}, ge = () => {
|
|
18353
|
+
ee = null, te = null, v.style.height = "8px";
|
|
18354
|
+
}, _e = (e) => {
|
|
18355
|
+
if (!ee) return;
|
|
18356
|
+
let t = re(e);
|
|
18357
|
+
ee === "start" ? oe(t, !0) : ee === "end" ? se(t, !0) : ae(t);
|
|
18358
|
+
}, ve = (e, t) => {
|
|
18359
|
+
!P || L || t.button !== 0 || (t.preventDefault(), t.stopPropagation(), ee = e, te = t.pointerId, v.style.height = "10px", _e(t.clientX));
|
|
18360
|
+
}, ye = (e) => {
|
|
18361
|
+
te !== null && e.pointerId === te && _e(e.clientX);
|
|
18362
|
+
}, be = (e) => {
|
|
18363
|
+
te !== null && e.pointerId === te && ge();
|
|
18364
|
+
};
|
|
18365
|
+
b.addEventListener("pointerdown", (e) => ve("start", e)), x.addEventListener("pointerdown", (e) => ve("end", e)), m.addEventListener("pointerdown", (e) => {
|
|
18366
|
+
let t = e.target;
|
|
18367
|
+
t instanceof Element && t.closest("[data-mesurer-recording-trim-handle]") || ve("playhead", e);
|
|
18368
|
+
}), m.addEventListener("pointermove", (e) => {
|
|
18369
|
+
te === null && (_.style.display = "block", _.style.left = `${ne(re(e.clientX)) * 100}%`);
|
|
18370
|
+
}), m.addEventListener("pointerleave", () => {
|
|
18371
|
+
_.style.display = "none";
|
|
18372
|
+
});
|
|
18373
|
+
for (let [e, t] of [["start", b], ["end", x]]) t.addEventListener("keydown", (t) => {
|
|
18374
|
+
if (!P || t.key !== "ArrowLeft" && t.key !== "ArrowRight") return;
|
|
18375
|
+
t.preventDefault();
|
|
18376
|
+
let n = t.key === "ArrowLeft" ? -1 : 1, r = (e === "start" ? H : U) + n * .05;
|
|
18377
|
+
e === "start" ? oe(r, !0) : se(r, !0);
|
|
18378
|
+
});
|
|
18379
|
+
t.addEventListener("pointermove", ye, !0), t.addEventListener("pointerup", be, !0), t.addEventListener("pointercancel", be, !0), u.addEventListener("click", (e) => {
|
|
18380
|
+
e.stopPropagation(), me(), i();
|
|
18381
|
+
}), s.addEventListener("click", (e) => {
|
|
18382
|
+
let t = e.target;
|
|
18383
|
+
t instanceof Element && t.closest("button") || he();
|
|
18384
|
+
}), f.addEventListener("click", he), c.addEventListener("play", () => {
|
|
18385
|
+
f.textContent = "Ⅱ", f.setAttribute("aria-label", "Pause"), f.title = "Pause";
|
|
18186
18386
|
}), c.addEventListener("pause", () => {
|
|
18187
|
-
|
|
18387
|
+
f.textContent = "▶", f.setAttribute("aria-label", "Play"), f.title = "Play";
|
|
18188
18388
|
}), c.addEventListener("timeupdate", () => {
|
|
18189
|
-
|
|
18190
|
-
|
|
18191
|
-
|
|
18192
|
-
}), _.addEventListener("input", () => {
|
|
18193
|
-
if (!E) return;
|
|
18194
|
-
let e = Math.min(E.duration - sb, Math.max(0, Number(_.value) || 0));
|
|
18195
|
-
_.value = String(e), (Number(y.value) || E.duration) < e + sb && (y.value = String(Math.min(E.duration, e + sb))), c.currentTime = e, N();
|
|
18196
|
-
}), y.addEventListener("input", () => {
|
|
18197
|
-
if (!E) return;
|
|
18198
|
-
let e = Number(_.value) || 0, t = Math.max(e + sb, Math.min(E.duration, Number(y.value) || E.duration));
|
|
18199
|
-
y.value = String(t), c.currentTime = t, N();
|
|
18389
|
+
P && (c.currentTime >= U - .01 ? (c.pause(), c.currentTime = H) : c.currentTime < H && (c.currentTime = H), ie());
|
|
18390
|
+
}), c.addEventListener("loadedmetadata", () => {
|
|
18391
|
+
ie();
|
|
18200
18392
|
}), w.addEventListener("click", () => {
|
|
18201
|
-
|
|
18202
|
-
})
|
|
18203
|
-
|
|
18204
|
-
|
|
18205
|
-
|
|
18206
|
-
|
|
18393
|
+
L || ue(T.style.display === "none");
|
|
18394
|
+
});
|
|
18395
|
+
for (let e of A) e.button.addEventListener("click", () => {
|
|
18396
|
+
V = e.scale, ce();
|
|
18397
|
+
});
|
|
18398
|
+
let xe = (e) => {
|
|
18399
|
+
T.style.display !== "none" && (e.composedPath().includes(C) || ue(!1));
|
|
18400
|
+
};
|
|
18401
|
+
e.addEventListener("pointerdown", xe, !0), M.addEventListener("click", () => {
|
|
18402
|
+
I = !I, o.style.width = `${I ? ib : rb}px`, s.style.maxHeight = I ? "448px" : "144px", c.style.maxHeight = I ? "448px" : "144px", M.textContent = I ? "↙" : "↗", M.setAttribute("aria-label", I ? "Shrink preview" : "Grow preview"), M.title = I ? "Shrink preview" : "Grow preview", t.requestAnimationFrame(fe);
|
|
18403
|
+
}), j.addEventListener("click", () => {
|
|
18404
|
+
if (!P || L || z.length === 0) return;
|
|
18405
|
+
let n = ++R, { start: r, end: i } = W();
|
|
18406
|
+
de(!0), ue(!1), N.style.display = "none", a({
|
|
18407
|
+
format: B,
|
|
18207
18408
|
startTime: r,
|
|
18208
18409
|
endTime: i,
|
|
18209
|
-
scale:
|
|
18410
|
+
scale: V
|
|
18210
18411
|
}).then((r) => {
|
|
18211
|
-
n ===
|
|
18412
|
+
n === R && fb(r.blob, r.filename, e, t);
|
|
18212
18413
|
}).catch((e) => {
|
|
18213
|
-
n ===
|
|
18414
|
+
n === R && (N.style.display = "block", N.style.color = "var(--msr-danger-text, #dc2626)", N.textContent = e instanceof Error ? e.message : "Could not export the recording.");
|
|
18214
18415
|
}).finally(() => {
|
|
18215
|
-
n ===
|
|
18416
|
+
n === R && de(!1);
|
|
18216
18417
|
});
|
|
18418
|
+
}), o.addEventListener("keydown", (e) => {
|
|
18419
|
+
if (e.key === "Escape") {
|
|
18420
|
+
if (T.style.display !== "none") {
|
|
18421
|
+
e.preventDefault(), ue(!1);
|
|
18422
|
+
return;
|
|
18423
|
+
}
|
|
18424
|
+
e.preventDefault(), me(), i();
|
|
18425
|
+
return;
|
|
18426
|
+
}
|
|
18427
|
+
(e.key === " " || e.code === "Space") && e.target === o && (e.preventDefault(), he());
|
|
18217
18428
|
});
|
|
18218
|
-
let
|
|
18219
|
-
return t.addEventListener("resize",
|
|
18220
|
-
show(
|
|
18221
|
-
|
|
18222
|
-
let
|
|
18223
|
-
|
|
18224
|
-
let
|
|
18225
|
-
r(
|
|
18226
|
-
|
|
18227
|
-
x.replaceChildren();
|
|
18228
|
-
for (let n of t) fb(e, x, n, n === "mp4" ? "MP4" : "WebM");
|
|
18229
|
-
t.length === 0 ? (fb(e, x, "webm", "No export codec"), x.disabled = !0, C.disabled = !0, T.style.display = "block", T.textContent = "No MediaBunny video encoder is available in this runtime.") : (x.disabled = !1, C.disabled = !1);
|
|
18230
|
-
}
|
|
18429
|
+
let Se = () => fe();
|
|
18430
|
+
return t.addEventListener("resize", Se), {
|
|
18431
|
+
show(e) {
|
|
18432
|
+
R += 1, pe(), P = e, I = !1, V = 1, B = "webm", z = ["webm"], H = 0, U = e.duration, ee = null, te = null;
|
|
18433
|
+
let n = globalThis.URL.createObjectURL(e.blob);
|
|
18434
|
+
F = 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 = `${rb}px`, s.style.maxHeight = "144px", c.style.maxHeight = "144px", M.textContent = "↗", M.setAttribute("aria-label", "Grow preview"), M.title = "Grow preview", p.textContent = "0:00.00", S.textContent = lb(e.duration), N.style.display = "none", N.style.color = "var(--msr-color-ink-500, #64748b)", ue(!1), le(), ce(), ie(), de(!1), o.style.display = "block", fe(), o.focus({ preventScroll: !0 });
|
|
18435
|
+
let i = R;
|
|
18436
|
+
r(e).then((e) => {
|
|
18437
|
+
i !== R || !P || (z = e, B = e.includes(B) ? B : e[0] ?? "webm", le(), j.disabled = e.length === 0, e.length === 0 && (N.style.display = "block", N.style.color = "var(--msr-danger-text, #dc2626)", N.textContent = "No MediaBunny video encoder is available in this runtime."));
|
|
18231
18438
|
}).catch((e) => {
|
|
18232
|
-
|
|
18233
|
-
}), t.requestAnimationFrame(
|
|
18439
|
+
i === R && (z = [], le(), j.disabled = !0, N.style.display = "block", N.style.color = "var(--msr-danger-text, #dc2626)", N.textContent = e instanceof Error ? e.message : "Could not inspect export support.");
|
|
18440
|
+
}), t.requestAnimationFrame(fe);
|
|
18234
18441
|
},
|
|
18235
|
-
dismiss:
|
|
18442
|
+
dismiss: me,
|
|
18236
18443
|
dispose() {
|
|
18237
|
-
|
|
18444
|
+
me(), t.removeEventListener("resize", Se), t.removeEventListener("pointermove", ye, !0), t.removeEventListener("pointerup", be, !0), t.removeEventListener("pointercancel", be, !0), e.removeEventListener("pointerdown", xe, !0), o.remove();
|
|
18238
18445
|
}
|
|
18239
18446
|
};
|
|
18240
|
-
},
|
|
18447
|
+
}, mb = "mesurer.recording", hb = "recording:v1", gb = "mesurer.recording.settings", _b = "runtime:solid", vb = "recording.toggle", yb = "recording.stop", bb = "recording.discard", xb = "recording.export", Sb = 30, Cb = 60, wb = 3e3, Tb = {
|
|
18241
18448
|
viewBox: "0 0 24 24",
|
|
18242
18449
|
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"]
|
|
18243
|
-
},
|
|
18450
|
+
}, Eb = (e) => e ? { ...e } : null, Db = (e) => ({
|
|
18244
18451
|
...e,
|
|
18245
|
-
rect:
|
|
18246
|
-
}),
|
|
18452
|
+
rect: Eb(e.rect)
|
|
18453
|
+
}), Ob = (e, t) => {
|
|
18247
18454
|
for (let [n, r] of Object.entries(t)) e.style.setProperty(n, r);
|
|
18248
|
-
},
|
|
18249
|
-
if (!
|
|
18455
|
+
}, kb = (e) => e != null && !Array.isArray(e) && typeof e == "object", Ab = (e) => typeof e == "number" && Number.isFinite(e), jb = (e) => {
|
|
18456
|
+
if (!kb(e)) return {};
|
|
18250
18457
|
let t = {};
|
|
18251
|
-
return (e.format === "webm" || e.format === "mp4") && (t.format = e.format),
|
|
18252
|
-
},
|
|
18458
|
+
return (e.format === "webm" || e.format === "mp4") && (t.format = e.format), Ab(e.startTime) && (t.startTime = e.startTime), Ab(e.endTime) && (t.endTime = e.endTime), (e.scale === 1 || e.scale === 2 || e.scale === 3) && (t.scale = e.scale), t;
|
|
18459
|
+
}, Mb = (e) => ({
|
|
18253
18460
|
status: e.status,
|
|
18254
18461
|
elapsed: e.elapsed,
|
|
18255
18462
|
rect: e.rect ? { ...e.rect } : null,
|
|
@@ -18257,52 +18464,56 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
|
|
|
18257
18464
|
width: e.width,
|
|
18258
18465
|
height: e.height,
|
|
18259
18466
|
error: e.error
|
|
18260
|
-
}),
|
|
18467
|
+
}), Nb = (e) => ({
|
|
18261
18468
|
filename: e.filename,
|
|
18262
18469
|
format: e.format,
|
|
18263
18470
|
duration: e.duration,
|
|
18264
18471
|
width: e.width,
|
|
18265
18472
|
height: e.height,
|
|
18266
18473
|
bytes: e.blob.size
|
|
18267
|
-
}),
|
|
18474
|
+
}), Pb = (e) => ({
|
|
18268
18475
|
format: e.format,
|
|
18269
18476
|
duration: e.duration,
|
|
18270
18477
|
width: e.width,
|
|
18271
18478
|
height: e.height,
|
|
18272
18479
|
bytes: e.blob.size,
|
|
18273
18480
|
createdAt: e.createdAt
|
|
18274
|
-
}),
|
|
18481
|
+
}), Fb = (e, t, n) => {
|
|
18275
18482
|
let r = globalThis.URL.createObjectURL(e.blob), i = t.createElement("a");
|
|
18276
18483
|
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);
|
|
18277
|
-
},
|
|
18278
|
-
id:
|
|
18484
|
+
}, Ib = (e = {}) => Ta({
|
|
18485
|
+
id: mb,
|
|
18279
18486
|
version: "0.1.0",
|
|
18280
|
-
requires: [
|
|
18281
|
-
provides: ["tool:recording",
|
|
18487
|
+
requires: [_b],
|
|
18488
|
+
provides: ["tool:recording", hb],
|
|
18282
18489
|
setup(t) {
|
|
18283
|
-
let n = t.service.get(
|
|
18490
|
+
let n = t.service.get(_b);
|
|
18284
18491
|
if (!n) throw Error("Recording plugin requires the Solid renderer runtime.");
|
|
18285
|
-
let { ownerDocument: r, ownerWindow: i } = n, a = n.createInspectorMount(), o = a.element
|
|
18286
|
-
|
|
18492
|
+
let { ownerDocument: r, ownerWindow: i } = n, a = n.createInspectorMount(), o = a.element, s = n.rendererRoot ?? n.portalTarget.querySelector("[data-mesurer-root='true']"), c = (e) => {
|
|
18493
|
+
s?.toggleAttribute("data-mesurer-recording-active", e);
|
|
18494
|
+
let t = s?.querySelector("[data-mesurer-interaction-overlay='true']");
|
|
18495
|
+
t && (e ? (t.style.setProperty("pointer-events", "none", "important"), t.style.setProperty("cursor", "default", "important")) : (t.style.removeProperty("pointer-events"), t.style.removeProperty("cursor")));
|
|
18496
|
+
};
|
|
18497
|
+
o.dataset.mesurerRecording = "true", Ob(o, {
|
|
18287
18498
|
position: "fixed",
|
|
18288
18499
|
inset: "0",
|
|
18289
18500
|
"z-index": "86",
|
|
18290
18501
|
"pointer-events": "none",
|
|
18291
18502
|
"font-family": "ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif"
|
|
18292
18503
|
});
|
|
18293
|
-
let
|
|
18504
|
+
let l = Math.max(1, Math.min(60, Math.round(e.frameRate ?? Sb))), u = Math.max(1, Math.min(600, e.maxDurationSeconds ?? Cb)), d = e.quality ?? "medium";
|
|
18294
18505
|
t.state.register({
|
|
18295
|
-
id:
|
|
18506
|
+
id: gb,
|
|
18296
18507
|
initial: { toolEnabled: e.toolEnabled ?? !0 },
|
|
18297
18508
|
persist: !0
|
|
18298
18509
|
});
|
|
18299
|
-
let
|
|
18300
|
-
t.state.update(
|
|
18510
|
+
let f = () => ({ toolEnabled: t.state.get("mesurer.recording.settings")?.toolEnabled ?? !0 }), p = (e) => {
|
|
18511
|
+
t.state.update(gb, (t) => {
|
|
18301
18512
|
let n = { ...t };
|
|
18302
18513
|
return e.toolEnabled !== void 0 && (n.toolEnabled = e.toolEnabled), n;
|
|
18303
18514
|
});
|
|
18304
|
-
},
|
|
18305
|
-
|
|
18515
|
+
}, m = r.createElement("div");
|
|
18516
|
+
m.dataset.mesurerRecordingSelect = "true", m.dataset.mesurerInspectorUi = "true", m.setAttribute("role", "application"), m.setAttribute("aria-label", "Recording selection"), Ob(m, {
|
|
18306
18517
|
position: "fixed",
|
|
18307
18518
|
inset: "0",
|
|
18308
18519
|
display: "none",
|
|
@@ -18311,24 +18522,24 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
|
|
|
18311
18522
|
"pointer-events": "auto",
|
|
18312
18523
|
"user-select": "none",
|
|
18313
18524
|
"touch-action": "none"
|
|
18314
|
-
}), o.append(
|
|
18315
|
-
let
|
|
18525
|
+
}), o.append(m);
|
|
18526
|
+
let h = Array.from({ length: 4 }, () => {
|
|
18316
18527
|
let e = r.createElement("div");
|
|
18317
|
-
return
|
|
18528
|
+
return Ob(e, {
|
|
18318
18529
|
position: "fixed",
|
|
18319
18530
|
background: "rgb(0 0 0 / 40%)",
|
|
18320
18531
|
"pointer-events": "none"
|
|
18321
|
-
}),
|
|
18322
|
-
}),
|
|
18323
|
-
|
|
18532
|
+
}), m.append(e), e;
|
|
18533
|
+
}), g = r.createElement("div");
|
|
18534
|
+
g.dataset.mesurerRecordingSelection = "true", Ob(g, {
|
|
18324
18535
|
position: "fixed",
|
|
18325
18536
|
display: "none",
|
|
18326
18537
|
border: "1px solid var(--msr-accent, #0d99ff)",
|
|
18327
18538
|
"box-sizing": "border-box",
|
|
18328
18539
|
"pointer-events": "none"
|
|
18329
|
-
}),
|
|
18330
|
-
let
|
|
18331
|
-
|
|
18540
|
+
}), m.append(g);
|
|
18541
|
+
let _ = r.createElement("div");
|
|
18542
|
+
Ob(_, {
|
|
18332
18543
|
position: "fixed",
|
|
18333
18544
|
display: "none",
|
|
18334
18545
|
transform: "translateX(-50%)",
|
|
@@ -18339,9 +18550,9 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
|
|
|
18339
18550
|
"font-size": "10px",
|
|
18340
18551
|
"font-variant-numeric": "tabular-nums",
|
|
18341
18552
|
"pointer-events": "none"
|
|
18342
|
-
}),
|
|
18343
|
-
let
|
|
18344
|
-
|
|
18553
|
+
}), m.append(_);
|
|
18554
|
+
let v = r.createElement("div");
|
|
18555
|
+
v.textContent = "Drag a region to record · Esc to cancel", Ob(v, {
|
|
18345
18556
|
position: "fixed",
|
|
18346
18557
|
left: "50%",
|
|
18347
18558
|
bottom: "16px",
|
|
@@ -18352,26 +18563,217 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
|
|
|
18352
18563
|
color: "var(--msr-surface, #fff)",
|
|
18353
18564
|
"font-size": "11px",
|
|
18354
18565
|
"pointer-events": "none"
|
|
18355
|
-
}),
|
|
18356
|
-
let
|
|
18357
|
-
|
|
18566
|
+
}), m.append(v);
|
|
18567
|
+
let y = r.createElement("div");
|
|
18568
|
+
y.dataset.mesurerRecordingRegion = "true", y.dataset.mesurerInspectorUi = "true", y.setAttribute("role", "dialog"), y.setAttribute("aria-label", "Recording region"), Ob(y, {
|
|
18358
18569
|
position: "fixed",
|
|
18359
18570
|
display: "none",
|
|
18360
|
-
|
|
18361
|
-
padding: "
|
|
18571
|
+
width: "220px",
|
|
18572
|
+
padding: "8px",
|
|
18573
|
+
"z-index": "90",
|
|
18574
|
+
"box-sizing": "border-box",
|
|
18575
|
+
overflow: "hidden",
|
|
18576
|
+
"border-radius": "10px",
|
|
18577
|
+
background: "var(--msr-surface-raised, #fff)",
|
|
18578
|
+
color: "var(--msr-content, #18181b)",
|
|
18579
|
+
"box-shadow": "var(--msr-shadow-floating, 0 10px 30px rgba(0,0,0,.12))",
|
|
18580
|
+
"font-size": "11px",
|
|
18581
|
+
"pointer-events": "auto",
|
|
18582
|
+
transform: "translateX(-50%)"
|
|
18583
|
+
}), m.append(y);
|
|
18584
|
+
let b = (e) => {
|
|
18585
|
+
let t = r.createElement("label");
|
|
18586
|
+
Ob(t, {
|
|
18587
|
+
display: "grid",
|
|
18588
|
+
"grid-template-columns": "44px minmax(0,1fr)",
|
|
18589
|
+
"align-items": "center",
|
|
18590
|
+
gap: "8px"
|
|
18591
|
+
});
|
|
18592
|
+
let n = r.createElement("span");
|
|
18593
|
+
n.textContent = e, n.style.color = "var(--msr-color-ink-500, #64748b)", t.append(n);
|
|
18594
|
+
let i = r.createElement("div");
|
|
18595
|
+
return Ob(i, {
|
|
18596
|
+
display: "flex",
|
|
18597
|
+
"align-items": "center",
|
|
18598
|
+
gap: "4px",
|
|
18599
|
+
"min-width": "0"
|
|
18600
|
+
}), t.append(i), y.append(t), i;
|
|
18601
|
+
}, x = (e) => {
|
|
18602
|
+
let t = r.createElement("input");
|
|
18603
|
+
return t.type = "number", t.setAttribute("aria-label", e), t.step = "1", Ob(t, {
|
|
18604
|
+
width: "0",
|
|
18605
|
+
"min-width": "0",
|
|
18606
|
+
flex: "1 1 0",
|
|
18607
|
+
height: "26px",
|
|
18608
|
+
padding: "0 6px",
|
|
18609
|
+
border: "1px solid var(--msr-color-ink-200, #e2e8f0)",
|
|
18610
|
+
"border-radius": "6px",
|
|
18611
|
+
background: "var(--msr-surface, #fff)",
|
|
18612
|
+
color: "var(--msr-content, #18181b)",
|
|
18613
|
+
"font-family": "ui-monospace, SFMono-Regular, Menlo, monospace",
|
|
18614
|
+
"font-size": "10px",
|
|
18615
|
+
"font-variant-numeric": "tabular-nums"
|
|
18616
|
+
}), t;
|
|
18617
|
+
}, S = b("Size"), C = x("Width"), w = x("Height");
|
|
18618
|
+
S.append(C);
|
|
18619
|
+
let T = r.createElement("span");
|
|
18620
|
+
T.textContent = "×", T.style.color = "var(--msr-color-ink-500, #64748b)", S.append(T, w);
|
|
18621
|
+
let E = r.createElement("span");
|
|
18622
|
+
E.textContent = "px", E.style.color = "var(--msr-color-ink-500, #64748b)", S.append(E);
|
|
18623
|
+
let D = b("Position");
|
|
18624
|
+
D.style.marginTop = "8px";
|
|
18625
|
+
let O = x("Left"), k = x("Top");
|
|
18626
|
+
D.append(O, k);
|
|
18627
|
+
let A = r.createElement("span");
|
|
18628
|
+
A.textContent = "px", A.style.color = "var(--msr-color-ink-500, #64748b)", D.append(A);
|
|
18629
|
+
let j = r.createElement("button");
|
|
18630
|
+
j.type = "button", j.dataset.mesurerRecordingStart = "true", j.textContent = "● Start recording", Ob(j, {
|
|
18631
|
+
width: "100%",
|
|
18632
|
+
height: "28px",
|
|
18633
|
+
"margin-top": "8px",
|
|
18634
|
+
border: "1px solid var(--msr-color-ink-200, #e2e8f0)",
|
|
18635
|
+
"border-radius": "7px",
|
|
18636
|
+
background: "var(--msr-surface-raised, #fff)",
|
|
18637
|
+
color: "var(--msr-content, #18181b)",
|
|
18638
|
+
"font-family": "inherit",
|
|
18639
|
+
"font-size": "11px",
|
|
18640
|
+
"font-weight": "500",
|
|
18641
|
+
cursor: "pointer"
|
|
18642
|
+
}), y.append(j);
|
|
18643
|
+
let M = r.createElement("div");
|
|
18644
|
+
M.dataset.mesurerRecordingGrid = "true", Ob(M, {
|
|
18645
|
+
position: "absolute",
|
|
18646
|
+
inset: "0",
|
|
18647
|
+
display: "none",
|
|
18648
|
+
"pointer-events": "none"
|
|
18649
|
+
}), g.append(M);
|
|
18650
|
+
let N = (e) => {
|
|
18651
|
+
let t = r.createElement("div");
|
|
18652
|
+
Ob(t, {
|
|
18653
|
+
position: "absolute",
|
|
18654
|
+
opacity: "0.3",
|
|
18655
|
+
...e
|
|
18656
|
+
}), M.append(t);
|
|
18657
|
+
};
|
|
18658
|
+
N({
|
|
18659
|
+
left: "33.333%",
|
|
18660
|
+
top: "0",
|
|
18661
|
+
bottom: "0",
|
|
18662
|
+
borderLeft: "1px dashed var(--msr-color-ink-500, #64748b)"
|
|
18663
|
+
}), N({
|
|
18664
|
+
left: "66.666%",
|
|
18665
|
+
top: "0",
|
|
18666
|
+
bottom: "0",
|
|
18667
|
+
borderLeft: "1px dashed var(--msr-color-ink-500, #64748b)"
|
|
18668
|
+
}), N({
|
|
18669
|
+
top: "33.333%",
|
|
18670
|
+
left: "0",
|
|
18671
|
+
right: "0",
|
|
18672
|
+
borderTop: "1px dashed var(--msr-color-ink-500, #64748b)"
|
|
18673
|
+
}), N({
|
|
18674
|
+
top: "66.666%",
|
|
18675
|
+
left: "0",
|
|
18676
|
+
right: "0",
|
|
18677
|
+
borderTop: "1px dashed var(--msr-color-ink-500, #64748b)"
|
|
18678
|
+
});
|
|
18679
|
+
let P = Object.entries({
|
|
18680
|
+
nw: {
|
|
18681
|
+
left: "0",
|
|
18682
|
+
top: "0"
|
|
18683
|
+
},
|
|
18684
|
+
n: {
|
|
18685
|
+
left: "50%",
|
|
18686
|
+
top: "0"
|
|
18687
|
+
},
|
|
18688
|
+
ne: {
|
|
18689
|
+
left: "100%",
|
|
18690
|
+
top: "0"
|
|
18691
|
+
},
|
|
18692
|
+
e: {
|
|
18693
|
+
left: "100%",
|
|
18694
|
+
top: "50%"
|
|
18695
|
+
},
|
|
18696
|
+
se: {
|
|
18697
|
+
left: "100%",
|
|
18698
|
+
top: "100%"
|
|
18699
|
+
},
|
|
18700
|
+
s: {
|
|
18701
|
+
left: "50%",
|
|
18702
|
+
top: "100%"
|
|
18703
|
+
},
|
|
18704
|
+
sw: {
|
|
18705
|
+
left: "0",
|
|
18706
|
+
top: "100%"
|
|
18707
|
+
},
|
|
18708
|
+
w: {
|
|
18709
|
+
left: "0",
|
|
18710
|
+
top: "50%"
|
|
18711
|
+
}
|
|
18712
|
+
}).map(([e, t]) => {
|
|
18713
|
+
let n = r.createElement("button");
|
|
18714
|
+
return n.type = "button", n.dataset.mesurerRecordingResize = e, n.setAttribute("aria-label", `Resize ${e}`), Ob(n, {
|
|
18715
|
+
position: "absolute",
|
|
18716
|
+
display: "none",
|
|
18717
|
+
left: t.left,
|
|
18718
|
+
top: t.top,
|
|
18719
|
+
width: "8px",
|
|
18720
|
+
height: "8px",
|
|
18721
|
+
padding: "0",
|
|
18722
|
+
border: "1px solid var(--msr-color-white, #fff)",
|
|
18723
|
+
"border-radius": "999px",
|
|
18724
|
+
background: "var(--msr-color-ink-900, #18181b)",
|
|
18725
|
+
"box-shadow": "0 0 0 1px rgb(0 0 0 / 25%)",
|
|
18726
|
+
transform: "translate(-50%, -50%)",
|
|
18727
|
+
cursor: e === "n" || e === "s" ? "ns-resize" : e === "e" || e === "w" ? "ew-resize" : e === "nw" || e === "se" ? "nwse-resize" : "nesw-resize",
|
|
18728
|
+
"pointer-events": "auto"
|
|
18729
|
+
}), g.append(n), n;
|
|
18730
|
+
}), F = r.createElement("section");
|
|
18731
|
+
F.dataset.mesurerRecordingStatus = "true", F.dataset.mesurerInspectorUi = "true", F.setAttribute("aria-label", "Screen recording"), Ob(F, {
|
|
18732
|
+
position: "fixed",
|
|
18733
|
+
display: "none",
|
|
18734
|
+
height: "34px",
|
|
18735
|
+
padding: "0 8px",
|
|
18736
|
+
"align-items": "center",
|
|
18737
|
+
gap: "8px",
|
|
18362
18738
|
border: "0",
|
|
18363
|
-
"border-radius": "
|
|
18739
|
+
"border-radius": "9px",
|
|
18364
18740
|
background: "var(--msr-surface-raised, #fff)",
|
|
18365
18741
|
color: "var(--msr-content, #18181b)",
|
|
18366
18742
|
"box-shadow": "var(--msr-shadow-floating, 0 8px 24px rgba(0,0,0,.14))",
|
|
18367
18743
|
"font-family": "inherit",
|
|
18368
18744
|
"font-size": "11px",
|
|
18369
|
-
"font-variant-numeric": "tabular-nums",
|
|
18370
|
-
cursor: "pointer",
|
|
18371
18745
|
"pointer-events": "auto"
|
|
18372
|
-
})
|
|
18373
|
-
let
|
|
18374
|
-
|
|
18746
|
+
});
|
|
18747
|
+
let I = r.createElement("span");
|
|
18748
|
+
I.setAttribute("aria-hidden", "true"), Ob(I, {
|
|
18749
|
+
width: "6px",
|
|
18750
|
+
height: "6px",
|
|
18751
|
+
"border-radius": "999px",
|
|
18752
|
+
background: "var(--msr-danger-solid-bg, #dc2626)",
|
|
18753
|
+
"flex-shrink": "0"
|
|
18754
|
+
}), F.append(I);
|
|
18755
|
+
let L = r.createElement("span");
|
|
18756
|
+
L.dataset.mesurerRecordingTime = "true", L.textContent = "00:00", Ob(L, {
|
|
18757
|
+
color: "var(--msr-content, #18181b)",
|
|
18758
|
+
"font-family": "ui-monospace, SFMono-Regular, Menlo, monospace",
|
|
18759
|
+
"font-size": "11px",
|
|
18760
|
+
"font-variant-numeric": "tabular-nums"
|
|
18761
|
+
}), F.append(L);
|
|
18762
|
+
let R = r.createElement("button");
|
|
18763
|
+
R.type = "button", R.dataset.mesurerRecordingStop = "true", R.textContent = "Stop", R.setAttribute("aria-label", "Stop recording"), Ob(R, {
|
|
18764
|
+
height: "24px",
|
|
18765
|
+
padding: "0 8px",
|
|
18766
|
+
border: "0",
|
|
18767
|
+
"border-radius": "6px",
|
|
18768
|
+
background: "var(--msr-danger-solid-bg, #dc2626)",
|
|
18769
|
+
color: "var(--msr-danger-solid-text, #fff)",
|
|
18770
|
+
"font-family": "inherit",
|
|
18771
|
+
"font-size": "11px",
|
|
18772
|
+
"font-weight": "500",
|
|
18773
|
+
cursor: "pointer"
|
|
18774
|
+
}), F.append(R), o.append(F);
|
|
18775
|
+
let z = r.createElement("div");
|
|
18776
|
+
z.dataset.mesurerRecordingError = "true", z.dataset.mesurerInspectorUi = "true", z.setAttribute("role", "status"), Ob(z, {
|
|
18375
18777
|
position: "fixed",
|
|
18376
18778
|
display: "none",
|
|
18377
18779
|
left: "8px",
|
|
@@ -18383,8 +18785,8 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
|
|
|
18383
18785
|
color: "#fff",
|
|
18384
18786
|
"font-size": "11px",
|
|
18385
18787
|
"pointer-events": "none"
|
|
18386
|
-
}), o.append(
|
|
18387
|
-
let
|
|
18788
|
+
}), o.append(z);
|
|
18789
|
+
let B = {
|
|
18388
18790
|
status: "idle",
|
|
18389
18791
|
elapsed: 0,
|
|
18390
18792
|
rect: null,
|
|
@@ -18392,28 +18794,28 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
|
|
|
18392
18794
|
width: null,
|
|
18393
18795
|
height: null,
|
|
18394
18796
|
error: null
|
|
18395
|
-
},
|
|
18396
|
-
let e =
|
|
18397
|
-
for (let t of
|
|
18398
|
-
},
|
|
18399
|
-
|
|
18400
|
-
...
|
|
18797
|
+
}, V = /* @__PURE__ */ new Set(), H = null, U = null, ee = null, te = null, ne = null, W = null, re = !1, ie = null, ae = null, oe = 0, se = 0, ce = 0, le = 0, G = 0, ue = -1, de = !1, fe = null, pe = () => {
|
|
18798
|
+
let e = Db(B);
|
|
18799
|
+
for (let t of V) t(e);
|
|
18800
|
+
}, me = (e) => {
|
|
18801
|
+
B = {
|
|
18802
|
+
...B,
|
|
18401
18803
|
...e,
|
|
18402
|
-
rect: e.rect === void 0 ?
|
|
18403
|
-
},
|
|
18404
|
-
},
|
|
18405
|
-
if (
|
|
18804
|
+
rect: e.rect === void 0 ? B.rect : Eb(e.rect)
|
|
18805
|
+
}, pe();
|
|
18806
|
+
}, he = () => B.status === "selecting" || B.status === "recording" || B.status === "exporting", ge = () => {
|
|
18807
|
+
if (ae) return;
|
|
18406
18808
|
let e = n.portalTarget.querySelector("[data-mesurer-toolbar='true']");
|
|
18407
|
-
e && (
|
|
18809
|
+
e && (ae = {
|
|
18408
18810
|
element: e,
|
|
18409
18811
|
value: e.style.getPropertyValue("visibility"),
|
|
18410
18812
|
priority: e.style.getPropertyPriority("visibility")
|
|
18411
18813
|
}, e.style.setProperty("visibility", "hidden", "important"));
|
|
18412
|
-
},
|
|
18413
|
-
if (!
|
|
18414
|
-
let e =
|
|
18415
|
-
|
|
18416
|
-
},
|
|
18814
|
+
}, _e = () => {
|
|
18815
|
+
if (!ae) return;
|
|
18816
|
+
let e = ae;
|
|
18817
|
+
ae = null, e.value || e.priority ? e.element.style.setProperty("visibility", e.value, e.priority) : e.element.style.removeProperty("visibility");
|
|
18818
|
+
}, ve = (e, t) => {
|
|
18417
18819
|
for (let n of [
|
|
18418
18820
|
"left",
|
|
18419
18821
|
"top",
|
|
@@ -18423,78 +18825,128 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
|
|
|
18423
18825
|
let r = t[n];
|
|
18424
18826
|
r === void 0 ? e.style.removeProperty(n) : e.style.setProperty(n, `${r}px`);
|
|
18425
18827
|
}
|
|
18426
|
-
},
|
|
18828
|
+
}, ye = (e) => {
|
|
18829
|
+
let t = i.innerWidth, n = i.innerHeight, r = Math.min(t, Math.max(4, Math.round(e.width))), a = Math.min(n, Math.max(4, Math.round(e.height)));
|
|
18830
|
+
return {
|
|
18831
|
+
left: Math.min(Math.max(0, Math.round(e.left)), Math.max(0, t - r)),
|
|
18832
|
+
top: Math.min(Math.max(0, Math.round(e.top)), Math.max(0, n - a)),
|
|
18833
|
+
width: r,
|
|
18834
|
+
height: a
|
|
18835
|
+
};
|
|
18836
|
+
}, be = (e, t) => t.x >= e.left && t.x <= e.left + e.width && t.y >= e.top && t.y <= e.top + e.height, xe = (e) => {
|
|
18427
18837
|
let t = i.innerWidth, n = i.innerHeight;
|
|
18428
18838
|
if (!e || e.width <= 0 || e.height <= 0) {
|
|
18429
|
-
|
|
18839
|
+
ve(h[0], {
|
|
18430
18840
|
left: 0,
|
|
18431
18841
|
top: 0,
|
|
18432
18842
|
width: t,
|
|
18433
18843
|
height: n
|
|
18434
18844
|
});
|
|
18435
|
-
for (let e of
|
|
18845
|
+
for (let e of h.slice(1)) ve(e, {
|
|
18436
18846
|
left: 0,
|
|
18437
18847
|
top: 0,
|
|
18438
18848
|
width: 0,
|
|
18439
18849
|
height: 0
|
|
18440
18850
|
});
|
|
18441
|
-
|
|
18851
|
+
g.style.display = "none", g.style.pointerEvents = "none", M.style.display = "none";
|
|
18852
|
+
for (let e of P) e.style.display = "none";
|
|
18853
|
+
_.style.display = "none", y.style.display = "none", v.textContent = "Drag to select a region · Esc to cancel";
|
|
18442
18854
|
return;
|
|
18443
18855
|
}
|
|
18444
|
-
|
|
18856
|
+
if (ve(h[0], {
|
|
18445
18857
|
left: 0,
|
|
18446
18858
|
top: 0,
|
|
18447
18859
|
width: t,
|
|
18448
18860
|
height: e.top
|
|
18449
|
-
}),
|
|
18861
|
+
}), ve(h[1], {
|
|
18450
18862
|
left: 0,
|
|
18451
18863
|
top: e.top,
|
|
18452
18864
|
width: e.left,
|
|
18453
18865
|
height: e.height
|
|
18454
|
-
}),
|
|
18866
|
+
}), ve(h[2], {
|
|
18455
18867
|
left: e.left + e.width,
|
|
18456
18868
|
top: e.top,
|
|
18457
18869
|
width: Math.max(0, t - e.left - e.width),
|
|
18458
18870
|
height: e.height
|
|
18459
|
-
}),
|
|
18871
|
+
}), ve(h[3], {
|
|
18460
18872
|
left: 0,
|
|
18461
18873
|
top: e.top + e.height,
|
|
18462
18874
|
width: t,
|
|
18463
18875
|
height: Math.max(0, n - e.top - e.height)
|
|
18464
|
-
}),
|
|
18465
|
-
|
|
18466
|
-
|
|
18467
|
-
|
|
18468
|
-
|
|
18469
|
-
|
|
18470
|
-
|
|
18471
|
-
|
|
18876
|
+
}), g.style.display = "block", ve(g, e), re) {
|
|
18877
|
+
g.style.pointerEvents = "auto", g.style.cursor = "move", M.style.display = "block";
|
|
18878
|
+
for (let e of P) e.style.display = "block";
|
|
18879
|
+
_.style.display = "none", C.value = String(Math.round(e.width)), w.value = String(Math.round(e.height)), O.value = String(Math.round(e.left)), k.value = String(Math.round(e.top)), C.max = String(t), w.max = String(n), O.max = String(Math.max(0, t - e.width)), k.max = String(Math.max(0, n - e.height));
|
|
18880
|
+
let r = Math.min(Math.max(118, e.left + e.width / 2), Math.max(118, t - 110 - 8)), i = e.top + e.height + 12, a = i + 112 <= n ? i : Math.max(8, e.top - 112);
|
|
18881
|
+
y.style.left = `${r}px`, y.style.top = `${a}px`, y.style.display = "block", v.textContent = "Adjust region · Enter to start · Esc to cancel";
|
|
18882
|
+
} else {
|
|
18883
|
+
g.style.pointerEvents = "none", g.style.cursor = "", M.style.display = "none";
|
|
18884
|
+
for (let e of P) e.style.display = "none";
|
|
18885
|
+
y.style.display = "none", _.style.display = "block", _.textContent = `${Math.round(e.width)} × ${Math.round(e.height)}`, ve(_, {
|
|
18886
|
+
left: e.left + e.width / 2,
|
|
18887
|
+
top: Math.min(n - 22, e.top + e.height + 6)
|
|
18888
|
+
}), v.textContent = "Drag to select a region · Esc to cancel";
|
|
18889
|
+
}
|
|
18890
|
+
}, Se = (e) => {
|
|
18891
|
+
let t = ye(e);
|
|
18892
|
+
W = t, me({ rect: t }), xe(t);
|
|
18893
|
+
}, Ce = (e) => {
|
|
18894
|
+
let t = i.innerWidth, n = i.innerHeight;
|
|
18895
|
+
ve(h[0], {
|
|
18896
|
+
left: 0,
|
|
18897
|
+
top: 0,
|
|
18898
|
+
width: t,
|
|
18899
|
+
height: e.top
|
|
18900
|
+
}), ve(h[1], {
|
|
18901
|
+
left: 0,
|
|
18902
|
+
top: e.top,
|
|
18903
|
+
width: e.left,
|
|
18904
|
+
height: e.height
|
|
18905
|
+
}), ve(h[2], {
|
|
18906
|
+
left: e.left + e.width,
|
|
18907
|
+
top: e.top,
|
|
18908
|
+
width: Math.max(0, t - e.left - e.width),
|
|
18909
|
+
height: e.height
|
|
18910
|
+
}), ve(h[3], {
|
|
18911
|
+
left: 0,
|
|
18912
|
+
top: e.top + e.height,
|
|
18913
|
+
width: t,
|
|
18914
|
+
height: Math.max(0, n - e.top - e.height)
|
|
18915
|
+
}), g.style.display = "none", _.style.display = "none", y.style.display = "none", M.style.display = "none", v.style.display = "none";
|
|
18916
|
+
for (let e of P) e.style.display = "none";
|
|
18917
|
+
m.style.display = "block", m.style.pointerEvents = "none", m.style.cursor = "default";
|
|
18918
|
+
}, we = () => {
|
|
18919
|
+
c(!1), m.style.display = "none", m.style.pointerEvents = "auto", m.style.cursor = "crosshair", v.style.removeProperty("display");
|
|
18920
|
+
}, Te = () => {
|
|
18921
|
+
ne = null, W = null, re = !1, ie = null, xe(null), m.style.display = "none", m.style.cursor = "crosshair", o.style.pointerEvents = "none";
|
|
18922
|
+
}, Ee = (e) => {
|
|
18923
|
+
let t = i.innerHeight, n = i.innerWidth, r = Math.max(112, F.offsetWidth || 112), a = null;
|
|
18472
18924
|
if (e.top >= 46 ? a = e.top - 30 - 8 : t - (e.top + e.height) >= 46 && (a = e.top + e.height + 8), a === null) {
|
|
18473
|
-
|
|
18925
|
+
F.style.display = "none";
|
|
18474
18926
|
return;
|
|
18475
18927
|
}
|
|
18476
18928
|
let o = Math.min(n - r - 8, Math.max(8, e.left + e.width / 2 - r / 2));
|
|
18477
|
-
|
|
18478
|
-
},
|
|
18479
|
-
|
|
18480
|
-
},
|
|
18481
|
-
|
|
18929
|
+
F.style.left = `${o}px`, F.style.top = `${a}px`, F.style.display = "flex";
|
|
18930
|
+
}, De = () => {
|
|
18931
|
+
F.style.display = "none";
|
|
18932
|
+
}, Oe = (e) => {
|
|
18933
|
+
ce && i.clearTimeout(ce);
|
|
18482
18934
|
let t = e instanceof Error ? e.message : "Could not record this region.";
|
|
18483
|
-
|
|
18484
|
-
|
|
18485
|
-
},
|
|
18486
|
-
},
|
|
18487
|
-
|
|
18488
|
-
let t =
|
|
18489
|
-
if (
|
|
18935
|
+
z.textContent = t, z.style.display = "block", ce = i.setTimeout(() => {
|
|
18936
|
+
ce = 0, z.style.display = "none";
|
|
18937
|
+
}, wb);
|
|
18938
|
+
}, ke = async (e) => {
|
|
18939
|
+
oe && i.cancelAnimationFrame(oe), oe = 0, se && i.clearTimeout(se), se = 0;
|
|
18940
|
+
let t = te;
|
|
18941
|
+
if (te = null, t) try {
|
|
18490
18942
|
await t;
|
|
18491
18943
|
} catch {}
|
|
18492
|
-
let n =
|
|
18493
|
-
|
|
18494
|
-
let r =
|
|
18495
|
-
|
|
18496
|
-
},
|
|
18497
|
-
|
|
18944
|
+
let n = ee;
|
|
18945
|
+
ee = null, e && await n?.cancel();
|
|
18946
|
+
let r = U;
|
|
18947
|
+
U = null, r && Vy(r), we(), De();
|
|
18948
|
+
}, Ae = () => {
|
|
18949
|
+
H = null, Ne.dismiss(), me({
|
|
18498
18950
|
status: "idle",
|
|
18499
18951
|
elapsed: 0,
|
|
18500
18952
|
rect: null,
|
|
@@ -18503,14 +18955,14 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
|
|
|
18503
18955
|
height: null,
|
|
18504
18956
|
error: null
|
|
18505
18957
|
}), t.hook.emit("recording:discard", {});
|
|
18506
|
-
},
|
|
18507
|
-
let e =
|
|
18508
|
-
return Zy(e?.width ?? Math.max(2, Math.round(i.innerWidth)), e?.height ?? Math.max(2, Math.round(i.innerHeight)),
|
|
18509
|
-
},
|
|
18510
|
-
let n =
|
|
18958
|
+
}, je = async () => {
|
|
18959
|
+
let e = H;
|
|
18960
|
+
return Zy(e?.width ?? Math.max(2, Math.round(i.innerWidth)), e?.height ?? Math.max(2, Math.round(i.innerHeight)), l);
|
|
18961
|
+
}, Me = async (e = {}) => {
|
|
18962
|
+
let n = H;
|
|
18511
18963
|
if (!n) throw Error("No recording is ready to export.");
|
|
18512
|
-
let r =
|
|
18513
|
-
|
|
18964
|
+
let r = B.status;
|
|
18965
|
+
me({
|
|
18514
18966
|
status: "exporting",
|
|
18515
18967
|
error: null
|
|
18516
18968
|
});
|
|
@@ -18519,7 +18971,7 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
|
|
|
18519
18971
|
...r,
|
|
18520
18972
|
filename: nb(r.format)
|
|
18521
18973
|
};
|
|
18522
|
-
return
|
|
18974
|
+
return me({
|
|
18523
18975
|
status: "ready",
|
|
18524
18976
|
duration: n.duration,
|
|
18525
18977
|
width: n.width,
|
|
@@ -18534,29 +18986,29 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
|
|
|
18534
18986
|
bytes: i.blob.size
|
|
18535
18987
|
}), i;
|
|
18536
18988
|
} catch (e) {
|
|
18537
|
-
throw
|
|
18989
|
+
throw me({
|
|
18538
18990
|
status: r === "ready" ? "ready" : "error",
|
|
18539
18991
|
error: e instanceof Error ? e.message : "Could not export the recording."
|
|
18540
18992
|
}), e;
|
|
18541
18993
|
}
|
|
18542
|
-
},
|
|
18994
|
+
}, Ne = pb({
|
|
18543
18995
|
ownerDocument: r,
|
|
18544
18996
|
ownerWindow: i,
|
|
18545
18997
|
root: o,
|
|
18546
|
-
formats: async () =>
|
|
18547
|
-
onDiscard:
|
|
18548
|
-
onExport:
|
|
18549
|
-
}),
|
|
18550
|
-
if (
|
|
18551
|
-
if (
|
|
18552
|
-
let e =
|
|
18998
|
+
formats: async () => je(),
|
|
18999
|
+
onDiscard: Ae,
|
|
19000
|
+
onExport: Me
|
|
19001
|
+
}), Pe = async () => {
|
|
19002
|
+
if (fe) return fe;
|
|
19003
|
+
if (B.status !== "recording" || !ee || !U) throw Error("No recording is active.");
|
|
19004
|
+
let e = le, n = ee, r = U, a = Eb(B.rect);
|
|
18553
19005
|
if (!a) throw Error("Recording region is unavailable.");
|
|
18554
|
-
return
|
|
18555
|
-
|
|
18556
|
-
let s =
|
|
18557
|
-
|
|
19006
|
+
return fe = (async () => {
|
|
19007
|
+
oe && i.cancelAnimationFrame(oe), oe = 0, se && i.clearTimeout(se), se = 0;
|
|
19008
|
+
let s = te;
|
|
19009
|
+
te = null, s && await s;
|
|
18558
19010
|
let c = await n.finalize();
|
|
18559
|
-
if (
|
|
19011
|
+
if (ee = null, U = null, Vy(r), le !== e || de) throw Error("Recording was cancelled.");
|
|
18560
19012
|
let l = await eb(c), u = {
|
|
18561
19013
|
blob: c,
|
|
18562
19014
|
format: "webm",
|
|
@@ -18565,14 +19017,14 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
|
|
|
18565
19017
|
height: l.height,
|
|
18566
19018
|
createdAt: Date.now()
|
|
18567
19019
|
};
|
|
18568
|
-
return
|
|
19020
|
+
return H = u, we(), De(), _e(), o.style.pointerEvents = "none", me({
|
|
18569
19021
|
status: "ready",
|
|
18570
19022
|
elapsed: l.duration,
|
|
18571
19023
|
duration: l.duration,
|
|
18572
19024
|
width: l.width,
|
|
18573
19025
|
height: l.height,
|
|
18574
19026
|
error: null
|
|
18575
|
-
}),
|
|
19027
|
+
}), Ne.show(u), await t.hook.emit("recording:ready", {
|
|
18576
19028
|
rect: a,
|
|
18577
19029
|
duration: l.duration,
|
|
18578
19030
|
width: l.width,
|
|
@@ -18580,45 +19032,45 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
|
|
|
18580
19032
|
bytes: c.size
|
|
18581
19033
|
}), u;
|
|
18582
19034
|
})().catch(async (t) => {
|
|
18583
|
-
if (await
|
|
19035
|
+
if (await ke(!0), _e(), le === e && !de) {
|
|
18584
19036
|
let e = t instanceof Error ? t.message : "Could not finish the recording.";
|
|
18585
|
-
|
|
19037
|
+
me({
|
|
18586
19038
|
status: "error",
|
|
18587
19039
|
error: e
|
|
18588
|
-
}),
|
|
19040
|
+
}), Oe(t);
|
|
18589
19041
|
}
|
|
18590
19042
|
throw t;
|
|
18591
19043
|
}).finally(() => {
|
|
18592
|
-
|
|
18593
|
-
}),
|
|
18594
|
-
},
|
|
18595
|
-
let r = 1 /
|
|
18596
|
-
if (
|
|
18597
|
-
let s = Math.max(0, (o -
|
|
18598
|
-
|
|
19044
|
+
fe = null;
|
|
19045
|
+
}), fe;
|
|
19046
|
+
}, Fe = (e, t, n) => {
|
|
19047
|
+
let r = 1 / l, a = (o) => {
|
|
19048
|
+
if (de || le !== n || B.status !== "recording" || ee !== t || U !== e) return;
|
|
19049
|
+
let s = Math.max(0, (o - G) / 1e3);
|
|
19050
|
+
me({ elapsed: s }), L.textContent = `${String(Math.floor(s / 60)).padStart(2, "0")}:${String(Math.floor(s % 60)).padStart(2, "0")}`;
|
|
18599
19051
|
let c = s;
|
|
18600
|
-
!
|
|
19052
|
+
!te && c - ue >= r * .8 && (By(e, B.rect ?? {
|
|
18601
19053
|
left: 0,
|
|
18602
19054
|
top: 0,
|
|
18603
19055
|
width: i.innerWidth,
|
|
18604
19056
|
height: i.innerHeight
|
|
18605
|
-
}, Ty(i)),
|
|
18606
|
-
throw
|
|
18607
|
-
|
|
19057
|
+
}, Ty(i)), ue = c, te = t.addFrame(c, r).catch((e) => {
|
|
19058
|
+
throw le === n && !de && ke(!0).then(() => {
|
|
19059
|
+
_e();
|
|
18608
19060
|
let t = e instanceof Error ? e.message : "MediaBunny could not encode the recording.";
|
|
18609
|
-
|
|
19061
|
+
me({
|
|
18610
19062
|
status: "error",
|
|
18611
19063
|
error: t
|
|
18612
|
-
}),
|
|
19064
|
+
}), Oe(e);
|
|
18613
19065
|
}), e;
|
|
18614
19066
|
}).finally(() => {
|
|
18615
|
-
|
|
18616
|
-
})),
|
|
19067
|
+
te = null;
|
|
19068
|
+
})), oe = i.requestAnimationFrame(a);
|
|
18617
19069
|
};
|
|
18618
|
-
|
|
18619
|
-
},
|
|
18620
|
-
let n = ++
|
|
18621
|
-
|
|
19070
|
+
oe = i.requestAnimationFrame(a);
|
|
19071
|
+
}, Ie = async (e) => {
|
|
19072
|
+
let n = ++le;
|
|
19073
|
+
Ne.dismiss(), H = null, Te(), _e(), me({
|
|
18622
19074
|
status: "selecting",
|
|
18623
19075
|
elapsed: 0,
|
|
18624
19076
|
rect: e,
|
|
@@ -18629,46 +19081,46 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
|
|
|
18629
19081
|
});
|
|
18630
19082
|
try {
|
|
18631
19083
|
let a = await zy(r, i, e);
|
|
18632
|
-
if (
|
|
19084
|
+
if (de || le !== n) {
|
|
18633
19085
|
Vy(a);
|
|
18634
19086
|
return;
|
|
18635
19087
|
}
|
|
18636
|
-
let
|
|
19088
|
+
let s = await $y(a.canvas, {
|
|
18637
19089
|
format: "webm",
|
|
18638
|
-
frameRate:
|
|
18639
|
-
quality:
|
|
19090
|
+
frameRate: l,
|
|
19091
|
+
quality: d
|
|
18640
19092
|
});
|
|
18641
|
-
if (
|
|
18642
|
-
await
|
|
19093
|
+
if (de || le !== n) {
|
|
19094
|
+
await s.cancel(), Vy(a);
|
|
18643
19095
|
return;
|
|
18644
19096
|
}
|
|
18645
|
-
if (
|
|
18646
|
-
await
|
|
19097
|
+
if (U = a, ee = s, G = i.performance.now(), ue = 0, By(a, e, Ty(i)), await s.addFrame(0, 1 / l), de || le !== n) {
|
|
19098
|
+
await ke(!0);
|
|
18647
19099
|
return;
|
|
18648
19100
|
}
|
|
18649
|
-
|
|
19101
|
+
me({
|
|
18650
19102
|
status: "recording",
|
|
18651
19103
|
elapsed: 0
|
|
18652
|
-
}), o.style.pointerEvents = "
|
|
18653
|
-
|
|
18654
|
-
}, { once: !0 }),
|
|
18655
|
-
|
|
18656
|
-
},
|
|
19104
|
+
}), o.style.pointerEvents = "none", c(!0), Ce(e), L.textContent = "00:00", Ee(e), Fe(a, s, n), a.track.addEventListener("ended", () => {
|
|
19105
|
+
le === n && B.status === "recording" && Pe().catch(() => void 0);
|
|
19106
|
+
}, { once: !0 }), se = i.setTimeout(() => {
|
|
19107
|
+
le === n && B.status === "recording" && Pe().catch(() => void 0);
|
|
19108
|
+
}, u * 1e3), await t.hook.emit("recording:start", {
|
|
18657
19109
|
rect: { ...e },
|
|
18658
|
-
frameRate:
|
|
18659
|
-
maxDurationSeconds:
|
|
19110
|
+
frameRate: l,
|
|
19111
|
+
maxDurationSeconds: u
|
|
18660
19112
|
});
|
|
18661
19113
|
} catch (t) {
|
|
18662
|
-
if (await
|
|
19114
|
+
if (await ke(!0), _e(), le !== n || de) return;
|
|
18663
19115
|
let r = t instanceof DOMException && t.name === "AbortError", i = r ? null : t instanceof Error ? t.message : "Could not start the recording.";
|
|
18664
|
-
throw
|
|
19116
|
+
throw me({
|
|
18665
19117
|
status: r ? "idle" : "error",
|
|
18666
19118
|
rect: r ? null : e,
|
|
18667
19119
|
error: i
|
|
18668
|
-
}), r ||
|
|
19120
|
+
}), r || Oe(t), t;
|
|
18669
19121
|
}
|
|
18670
|
-
},
|
|
18671
|
-
|
|
19122
|
+
}, Le = () => {
|
|
19123
|
+
B.status !== "selecting" && (++le, Ne.dismiss(), H = null, W = null, re = !1, ie = null, ge(), xe(null), m.style.display = "block", m.style.pointerEvents = "auto", v.style.removeProperty("display"), o.style.pointerEvents = "auto", me({
|
|
18672
19124
|
status: "selecting",
|
|
18673
19125
|
elapsed: 0,
|
|
18674
19126
|
rect: null,
|
|
@@ -18677,23 +19129,23 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
|
|
|
18677
19129
|
height: null,
|
|
18678
19130
|
error: null
|
|
18679
19131
|
}));
|
|
18680
|
-
},
|
|
18681
|
-
if (
|
|
18682
|
-
await
|
|
19132
|
+
}, Re = async (e) => {
|
|
19133
|
+
if (B.status === "recording") {
|
|
19134
|
+
await Pe();
|
|
18683
19135
|
return;
|
|
18684
19136
|
}
|
|
18685
|
-
if (
|
|
18686
|
-
await
|
|
19137
|
+
if (B.status === "selecting") {
|
|
19138
|
+
await ze();
|
|
18687
19139
|
return;
|
|
18688
19140
|
}
|
|
18689
19141
|
if (!e) {
|
|
18690
|
-
|
|
19142
|
+
Le();
|
|
18691
19143
|
return;
|
|
18692
19144
|
}
|
|
18693
19145
|
if (e.width < 4 || e.height < 4) throw Error("Recording selection must be at least 4px by 4px.");
|
|
18694
|
-
await
|
|
18695
|
-
},
|
|
18696
|
-
++
|
|
19146
|
+
await Ie(e);
|
|
19147
|
+
}, ze = async () => {
|
|
19148
|
+
++le, Te(), await ke(!0), _e(), B.status !== "ready" && me({
|
|
18697
19149
|
status: "idle",
|
|
18698
19150
|
elapsed: 0,
|
|
18699
19151
|
rect: null,
|
|
@@ -18702,26 +19154,64 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
|
|
|
18702
19154
|
height: null,
|
|
18703
19155
|
error: null
|
|
18704
19156
|
});
|
|
18705
|
-
},
|
|
18706
|
-
|
|
19157
|
+
}, Be = (e, t, n) => {
|
|
19158
|
+
let r = W;
|
|
19159
|
+
!re || !r || e.button !== 0 || (e.preventDefault(), e.stopPropagation(), ie = {
|
|
19160
|
+
kind: t,
|
|
19161
|
+
handle: n,
|
|
19162
|
+
pointerId: e.pointerId,
|
|
19163
|
+
startX: e.clientX,
|
|
19164
|
+
startY: e.clientY,
|
|
19165
|
+
rect: { ...r }
|
|
19166
|
+
}, m.setPointerCapture?.(e.pointerId));
|
|
19167
|
+
}, Ve = (e) => {
|
|
19168
|
+
B.status === "selecting" && e.button === 0 && (re && W && be(W, {
|
|
18707
19169
|
x: e.clientX,
|
|
18708
19170
|
y: e.clientY
|
|
18709
|
-
},
|
|
18710
|
-
width: i.innerWidth,
|
|
18711
|
-
height: i.innerHeight
|
|
18712
|
-
})), f.setPointerCapture?.(e.pointerId));
|
|
18713
|
-
}, fe = (e) => {
|
|
18714
|
-
y.status !== "selecting" || !T || V(qa(T, {
|
|
19171
|
+
}) || (e.preventDefault(), e.stopPropagation(), re = !1, W = null, me({ rect: null }), m.style.cursor = "crosshair", ne = {
|
|
18715
19172
|
x: e.clientX,
|
|
18716
19173
|
y: e.clientY
|
|
18717
|
-
}, {
|
|
19174
|
+
}, xe(qa(ne, ne, {
|
|
18718
19175
|
width: i.innerWidth,
|
|
18719
19176
|
height: i.innerHeight
|
|
18720
|
-
}));
|
|
18721
|
-
},
|
|
18722
|
-
|
|
18723
|
-
|
|
18724
|
-
|
|
19177
|
+
})), m.setPointerCapture?.(e.pointerId)));
|
|
19178
|
+
}, He = (e) => {
|
|
19179
|
+
if (B.status === "selecting") {
|
|
19180
|
+
if (ie) {
|
|
19181
|
+
let t = ie, n = e.clientX - t.startX, r = e.clientY - t.startY, a = i.innerWidth, o = i.innerHeight;
|
|
19182
|
+
if (t.kind === "move") {
|
|
19183
|
+
Se({
|
|
19184
|
+
...t.rect,
|
|
19185
|
+
left: t.rect.left + n,
|
|
19186
|
+
top: t.rect.top + r
|
|
19187
|
+
});
|
|
19188
|
+
return;
|
|
19189
|
+
}
|
|
19190
|
+
let s = t.handle ?? "", c = t.rect.left, l = t.rect.top, u = t.rect.left + t.rect.width, d = t.rect.top + t.rect.height;
|
|
19191
|
+
s.includes("w") && (c = Math.min(u - 4, Math.max(0, t.rect.left + n))), s.includes("e") && (u = Math.max(c + 4, Math.min(a, t.rect.left + t.rect.width + n))), s.includes("n") && (l = Math.min(d - 4, Math.max(0, t.rect.top + r))), s.includes("s") && (d = Math.max(l + 4, Math.min(o, t.rect.top + t.rect.height + r))), Se({
|
|
19192
|
+
left: c,
|
|
19193
|
+
top: l,
|
|
19194
|
+
width: u - c,
|
|
19195
|
+
height: d - l
|
|
19196
|
+
});
|
|
19197
|
+
return;
|
|
19198
|
+
}
|
|
19199
|
+
ne && xe(qa(ne, {
|
|
19200
|
+
x: e.clientX,
|
|
19201
|
+
y: e.clientY
|
|
19202
|
+
}, {
|
|
19203
|
+
width: i.innerWidth,
|
|
19204
|
+
height: i.innerHeight
|
|
19205
|
+
}));
|
|
19206
|
+
}
|
|
19207
|
+
}, Ue = (e) => {
|
|
19208
|
+
if (ie) {
|
|
19209
|
+
ie = null, m.hasPointerCapture?.(e.pointerId) && m.releasePointerCapture(e.pointerId), W && xe(W);
|
|
19210
|
+
return;
|
|
19211
|
+
}
|
|
19212
|
+
let t = ne;
|
|
19213
|
+
if (ne = null, B.status !== "selecting" || !t) return;
|
|
19214
|
+
m.hasPointerCapture?.(e.pointerId) && m.releasePointerCapture(e.pointerId);
|
|
18725
19215
|
let n = qa(t, {
|
|
18726
19216
|
x: e.clientX,
|
|
18727
19217
|
y: e.clientY
|
|
@@ -18730,66 +19220,91 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
|
|
|
18730
19220
|
height: i.innerHeight
|
|
18731
19221
|
});
|
|
18732
19222
|
if (n.width < 4 || n.height < 4) {
|
|
18733
|
-
|
|
19223
|
+
W = null, re = !1, me({ rect: null }), xe(null);
|
|
19224
|
+
return;
|
|
19225
|
+
}
|
|
19226
|
+
W = ye(n), re = !0, m.style.cursor = "default", me({ rect: W }), xe(W);
|
|
19227
|
+
}, We = (e) => {
|
|
19228
|
+
ne = null, ie = null, m.hasPointerCapture?.(e.pointerId) && m.releasePointerCapture(e.pointerId), xe(W && re ? W : null);
|
|
19229
|
+
}, Ge = (e) => {
|
|
19230
|
+
if (e.key === "Enter" && B.status === "selecting" && re && W) {
|
|
19231
|
+
e.preventDefault(), e.stopImmediatePropagation(), Ie(W).catch(() => void 0);
|
|
18734
19232
|
return;
|
|
18735
19233
|
}
|
|
18736
|
-
ce(n).catch(() => void 0);
|
|
18737
|
-
}, me = (e) => {
|
|
18738
|
-
T = null, f.hasPointerCapture?.(e.pointerId) && f.releasePointerCapture(e.pointerId), V(null);
|
|
18739
|
-
}, he = (e) => {
|
|
18740
19234
|
if (e.key === "Escape") {
|
|
18741
|
-
if (
|
|
18742
|
-
e.preventDefault(), e.stopImmediatePropagation(),
|
|
19235
|
+
if (B.status === "selecting") {
|
|
19236
|
+
e.preventDefault(), e.stopImmediatePropagation(), ze();
|
|
18743
19237
|
return;
|
|
18744
19238
|
}
|
|
18745
|
-
|
|
19239
|
+
B.status === "recording" && (e.preventDefault(), e.stopImmediatePropagation(), Pe().catch(() => void 0));
|
|
18746
19240
|
}
|
|
18747
19241
|
};
|
|
18748
|
-
|
|
18749
|
-
|
|
19242
|
+
m.addEventListener("pointerdown", Ve), m.addEventListener("pointermove", He), m.addEventListener("pointerup", Ue), m.addEventListener("pointercancel", We), i.addEventListener("keydown", Ge, !0), g.addEventListener("pointerdown", (e) => {
|
|
19243
|
+
let t = e.target;
|
|
19244
|
+
t instanceof Element && t.closest("[data-mesurer-recording-resize]") || Be(e, "move");
|
|
19245
|
+
});
|
|
19246
|
+
for (let e of P) e.addEventListener("pointerdown", (t) => {
|
|
19247
|
+
Be(t, "resize", e.dataset.mesurerRecordingResize);
|
|
19248
|
+
});
|
|
19249
|
+
y.addEventListener("pointerdown", (e) => {
|
|
19250
|
+
e.stopPropagation();
|
|
19251
|
+
}), y.addEventListener("click", (e) => {
|
|
19252
|
+
e.stopPropagation();
|
|
19253
|
+
});
|
|
19254
|
+
let Ke = (e, t) => {
|
|
19255
|
+
let n = W, r = Number(e.value);
|
|
19256
|
+
!n || !Number.isFinite(r) || Se({
|
|
19257
|
+
...n,
|
|
19258
|
+
[t]: r
|
|
19259
|
+
});
|
|
19260
|
+
};
|
|
19261
|
+
C.addEventListener("change", () => Ke(C, "width")), w.addEventListener("change", () => Ke(w, "height")), O.addEventListener("change", () => Ke(O, "left")), k.addEventListener("change", () => Ke(k, "top")), j.addEventListener("click", () => {
|
|
19262
|
+
B.status === "selecting" && re && W && Ie(W).catch(() => void 0);
|
|
19263
|
+
}), R.addEventListener("click", () => {
|
|
19264
|
+
B.status === "recording" && Pe().catch(() => void 0);
|
|
18750
19265
|
});
|
|
18751
|
-
let
|
|
18752
|
-
snapshot: () =>
|
|
19266
|
+
let qe = {
|
|
19267
|
+
snapshot: () => Db(B),
|
|
18753
19268
|
subscribe(e) {
|
|
18754
|
-
return
|
|
19269
|
+
return V.add(e), () => V.delete(e);
|
|
18755
19270
|
},
|
|
18756
|
-
formats:
|
|
18757
|
-
start:
|
|
18758
|
-
stop:
|
|
18759
|
-
cancel:
|
|
18760
|
-
discard:
|
|
18761
|
-
export:
|
|
19271
|
+
formats: je,
|
|
19272
|
+
start: Re,
|
|
19273
|
+
stop: Pe,
|
|
19274
|
+
cancel: ze,
|
|
19275
|
+
discard: Ae,
|
|
19276
|
+
export: Me
|
|
18762
19277
|
};
|
|
18763
19278
|
t.tool.register({
|
|
18764
19279
|
id: "recording",
|
|
18765
19280
|
label: "Record",
|
|
18766
19281
|
shortcut: "Shift+R",
|
|
18767
19282
|
order: 72,
|
|
18768
|
-
command:
|
|
19283
|
+
command: vb,
|
|
18769
19284
|
toolbarMode: "select",
|
|
18770
|
-
icon:
|
|
18771
|
-
active:
|
|
18772
|
-
hidden: () => !
|
|
19285
|
+
icon: Tb,
|
|
19286
|
+
active: he,
|
|
19287
|
+
hidden: () => !f().toolEnabled,
|
|
18773
19288
|
menu: {
|
|
18774
19289
|
label: "Recording options",
|
|
18775
19290
|
items: [
|
|
18776
19291
|
{
|
|
18777
19292
|
id: "new",
|
|
18778
19293
|
label: "New recording",
|
|
18779
|
-
disabled: () =>
|
|
18780
|
-
run: () =>
|
|
19294
|
+
disabled: () => B.status === "recording" || B.status === "exporting",
|
|
19295
|
+
run: () => Re()
|
|
18781
19296
|
},
|
|
18782
19297
|
{
|
|
18783
19298
|
id: "stop",
|
|
18784
19299
|
label: "Stop recording",
|
|
18785
|
-
disabled: () =>
|
|
18786
|
-
run: () =>
|
|
19300
|
+
disabled: () => B.status !== "recording",
|
|
19301
|
+
run: () => Pe().then(() => void 0)
|
|
18787
19302
|
},
|
|
18788
19303
|
{
|
|
18789
19304
|
id: "discard",
|
|
18790
19305
|
label: "Discard clip",
|
|
18791
|
-
disabled: () =>
|
|
18792
|
-
run:
|
|
19306
|
+
disabled: () => H === null,
|
|
19307
|
+
run: Ae
|
|
18793
19308
|
}
|
|
18794
19309
|
]
|
|
18795
19310
|
}
|
|
@@ -18802,26 +19317,26 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
|
|
|
18802
19317
|
id: "tool",
|
|
18803
19318
|
label: "Recording tool",
|
|
18804
19319
|
description: "Show selected-region video recording in the Select toolbar.",
|
|
18805
|
-
value: () =>
|
|
19320
|
+
value: () => f().toolEnabled,
|
|
18806
19321
|
set: async (e) => {
|
|
18807
|
-
|
|
19322
|
+
p({ toolEnabled: e }), !e && he() && await ze();
|
|
18808
19323
|
}
|
|
18809
19324
|
}]
|
|
18810
|
-
}), t.command.register(
|
|
18811
|
-
let t = await
|
|
18812
|
-
return
|
|
18813
|
-
}), t.service.provide(
|
|
18814
|
-
|
|
19325
|
+
}), t.command.register(vb, async () => (await Re(), Mb(B))), t.command.register(yb, async () => Pb(await Pe())), t.command.register(bb, () => (Ae(), Mb(B))), t.command.register(xb, async (e) => {
|
|
19326
|
+
let t = await Me(jb(e));
|
|
19327
|
+
return Fb(t, r, i), Nb(t);
|
|
19328
|
+
}), t.service.provide(hb, qe), t.lifecycle.onDispose(() => {
|
|
19329
|
+
de = !0, ++le, V.clear(), m.removeEventListener("pointerdown", Ve), m.removeEventListener("pointermove", He), m.removeEventListener("pointerup", Ue), m.removeEventListener("pointercancel", We), i.removeEventListener("keydown", Ge, !0), ce && i.clearTimeout(ce), Ne.dispose(), Te(), _e(), ke(!0), a.dispose();
|
|
18815
19330
|
});
|
|
18816
19331
|
}
|
|
18817
|
-
}),
|
|
19332
|
+
}), Lb = 144, Rb = 96, zb = 8, Bb = 4, Vb = 1800, Hb = (e, t) => {
|
|
18818
19333
|
for (let [n, r] of Object.entries(t)) e.style.setProperty(n, r);
|
|
18819
|
-
},
|
|
18820
|
-
left: Math.min(Math.max(
|
|
18821
|
-
top: Math.min(Math.max(
|
|
18822
|
-
}),
|
|
19334
|
+
}, Ub = (e, t) => ({
|
|
19335
|
+
left: Math.min(Math.max(zb, e.left), Math.max(zb, t.innerWidth - Lb - zb)),
|
|
19336
|
+
top: Math.min(Math.max(zb, e.top), Math.max(zb, t.innerHeight - Rb - zb))
|
|
19337
|
+
}), Wb = (e, t) => {
|
|
18823
19338
|
let n = e.createElement("button");
|
|
18824
|
-
return n.type = "button", n.textContent = t,
|
|
19339
|
+
return n.type = "button", n.textContent = t, Hb(n, {
|
|
18825
19340
|
height: "32px",
|
|
18826
19341
|
padding: "0 12px",
|
|
18827
19342
|
border: "1px solid rgb(255 255 255 / 18%)",
|
|
@@ -18833,11 +19348,11 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
|
|
|
18833
19348
|
"font-weight": "500",
|
|
18834
19349
|
cursor: "pointer"
|
|
18835
19350
|
}), n;
|
|
18836
|
-
},
|
|
19351
|
+
}, Gb = ({ 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", Kb = (e) => e !== null && (e.nodeType === 1 || e.nodeType === 11), qb = ({ ownerDocument: e, ownerWindow: t, root: n, previewDurationMs: r }) => {
|
|
18837
19352
|
let i = n.closest("[data-mesurer-root='true']")?.parentNode ?? n.parentNode;
|
|
18838
|
-
if (!
|
|
19353
|
+
if (!Kb(i)) throw Error("Screenshot preview requires a mounted Mesurer host.");
|
|
18839
19354
|
let a = e.createElement("div");
|
|
18840
|
-
a.dataset.mesurerInspectorUi = "true", a.dataset.mesurerScreenshotInteractive = "true",
|
|
19355
|
+
a.dataset.mesurerInspectorUi = "true", a.dataset.mesurerScreenshotInteractive = "true", Hb(a, {
|
|
18841
19356
|
position: "fixed",
|
|
18842
19357
|
left: "0",
|
|
18843
19358
|
top: "0",
|
|
@@ -18849,12 +19364,12 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
|
|
|
18849
19364
|
"font-family": "ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif"
|
|
18850
19365
|
}), i.append(a);
|
|
18851
19366
|
let o = e.createElement("div");
|
|
18852
|
-
o.dataset.mesurerScreenshotPreview = "true", o.setAttribute("role", "button"), o.setAttribute("aria-label", "Open captured screenshot"), o.tabIndex = 0,
|
|
19367
|
+
o.dataset.mesurerScreenshotPreview = "true", o.setAttribute("role", "button"), o.setAttribute("aria-label", "Open captured screenshot"), o.tabIndex = 0, Hb(o, {
|
|
18853
19368
|
position: "fixed",
|
|
18854
19369
|
display: "none",
|
|
18855
19370
|
"z-index": "96",
|
|
18856
|
-
width: `${
|
|
18857
|
-
height: `${
|
|
19371
|
+
width: `${Lb}px`,
|
|
19372
|
+
height: `${Rb}px`,
|
|
18858
19373
|
"box-sizing": "border-box",
|
|
18859
19374
|
overflow: "hidden",
|
|
18860
19375
|
"border-radius": "10px",
|
|
@@ -18867,7 +19382,7 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
|
|
|
18867
19382
|
"touch-action": "none"
|
|
18868
19383
|
});
|
|
18869
19384
|
let s = e.createElement("img");
|
|
18870
|
-
s.dataset.mesurerScreenshotPreviewImage = "true", s.alt = "Captured screenshot", s.draggable = !1, s.title = "Click to open · Right-click for browser image actions",
|
|
19385
|
+
s.dataset.mesurerScreenshotPreviewImage = "true", s.alt = "Captured screenshot", s.draggable = !1, s.title = "Click to open · Right-click for browser image actions", Hb(s, {
|
|
18871
19386
|
display: "block",
|
|
18872
19387
|
width: "100%",
|
|
18873
19388
|
height: "100%",
|
|
@@ -18875,7 +19390,7 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
|
|
|
18875
19390
|
"background-color": "white"
|
|
18876
19391
|
}), o.append(s);
|
|
18877
19392
|
let c = e.createElement("button");
|
|
18878
|
-
c.dataset.mesurerScreenshotPreviewDismiss = "true", c.type = "button", c.setAttribute("aria-label", "Dismiss screenshot preview"), c.title = "Dismiss",
|
|
19393
|
+
c.dataset.mesurerScreenshotPreviewDismiss = "true", c.type = "button", c.setAttribute("aria-label", "Dismiss screenshot preview"), c.title = "Dismiss", Hb(c, {
|
|
18879
19394
|
position: "absolute",
|
|
18880
19395
|
top: "8px",
|
|
18881
19396
|
right: "8px",
|
|
@@ -18901,7 +19416,7 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
|
|
|
18901
19416
|
let u = e.createElementNS("http://www.w3.org/2000/svg", "path");
|
|
18902
19417
|
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);
|
|
18903
19418
|
let d = e.createElement("div");
|
|
18904
|
-
d.dataset.mesurerScreenshotViewer = "true", d.setAttribute("role", "dialog"), d.setAttribute("aria-modal", "true"), d.setAttribute("aria-label", "Screenshot viewer"),
|
|
19419
|
+
d.dataset.mesurerScreenshotViewer = "true", d.setAttribute("role", "dialog"), d.setAttribute("aria-modal", "true"), d.setAttribute("aria-label", "Screenshot viewer"), Hb(d, {
|
|
18905
19420
|
position: "fixed",
|
|
18906
19421
|
inset: "0",
|
|
18907
19422
|
display: "none",
|
|
@@ -18915,7 +19430,7 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
|
|
|
18915
19430
|
"pointer-events": "auto"
|
|
18916
19431
|
});
|
|
18917
19432
|
let f = e.createElement("img");
|
|
18918
|
-
f.dataset.mesurerScreenshotViewerImage = "true", f.alt = "Captured screenshot",
|
|
19433
|
+
f.dataset.mesurerScreenshotViewerImage = "true", f.alt = "Captured screenshot", Hb(f, {
|
|
18919
19434
|
display: "block",
|
|
18920
19435
|
"max-width": "calc(100vw - 96px)",
|
|
18921
19436
|
"max-height": "calc(100vh - 112px)",
|
|
@@ -18926,7 +19441,7 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
|
|
|
18926
19441
|
"box-shadow": "0 8px 30px rgb(0 0 0 / 28%)"
|
|
18927
19442
|
}), d.append(f);
|
|
18928
19443
|
let p = e.createElement("div");
|
|
18929
|
-
p.dataset.mesurerScreenshotViewerControls = "true",
|
|
19444
|
+
p.dataset.mesurerScreenshotViewerControls = "true", Hb(p, {
|
|
18930
19445
|
position: "fixed",
|
|
18931
19446
|
top: "16px",
|
|
18932
19447
|
right: "16px",
|
|
@@ -18934,14 +19449,14 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
|
|
|
18934
19449
|
gap: "8px",
|
|
18935
19450
|
"pointer-events": "auto"
|
|
18936
19451
|
});
|
|
18937
|
-
let m =
|
|
19452
|
+
let m = Wb(e, "Copy");
|
|
18938
19453
|
m.dataset.mesurerScreenshotViewerCopy = "true", m.setAttribute("aria-label", "Copy screenshot");
|
|
18939
|
-
let h =
|
|
19454
|
+
let h = Wb(e, "Save");
|
|
18940
19455
|
h.dataset.mesurerScreenshotViewerSave = "true", h.setAttribute("aria-label", "Save screenshot");
|
|
18941
|
-
let g =
|
|
19456
|
+
let g = Wb(e, "Close");
|
|
18942
19457
|
g.dataset.mesurerScreenshotViewerClose = "true", g.setAttribute("aria-label", "Close screenshot viewer"), p.append(m, h, g), d.append(p), a.append(d);
|
|
18943
19458
|
let _ = e.createElement("div");
|
|
18944
|
-
_.dataset.mesurerScreenshotToast = "true", _.setAttribute("role", "status"),
|
|
19459
|
+
_.dataset.mesurerScreenshotToast = "true", _.setAttribute("role", "status"), Hb(_, {
|
|
18945
19460
|
position: "fixed",
|
|
18946
19461
|
left: "50%",
|
|
18947
19462
|
bottom: "20px",
|
|
@@ -18963,18 +19478,18 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
|
|
|
18963
19478
|
}, D = (e, n = !1) => {
|
|
18964
19479
|
E(), _.textContent = e, _.style.backgroundColor = n ? "#b42318" : "rgb(28 28 30 / 90%)", _.style.display = "block", C = t.setTimeout(() => {
|
|
18965
19480
|
C = 0, _.style.display = "none";
|
|
18966
|
-
},
|
|
19481
|
+
}, Vb);
|
|
18967
19482
|
}, O = () => {
|
|
18968
19483
|
d.style.display = "none";
|
|
18969
19484
|
}, k = () => {
|
|
18970
19485
|
y && globalThis.URL.revokeObjectURL(y), y = null, v = null, s.removeAttribute("src"), f.removeAttribute("src");
|
|
18971
19486
|
}, A = () => {
|
|
18972
19487
|
T(), O(), o.style.display = "none", k();
|
|
18973
|
-
}, j = () =>
|
|
18974
|
-
left: t.innerWidth -
|
|
18975
|
-
top: t.innerHeight -
|
|
19488
|
+
}, j = () => Ub({
|
|
19489
|
+
left: t.innerWidth - Lb - zb,
|
|
19490
|
+
top: t.innerHeight - Rb - zb
|
|
18976
19491
|
}, t), M = (e) => {
|
|
18977
|
-
let n =
|
|
19492
|
+
let n = Ub(e, t);
|
|
18978
19493
|
b = n, o.style.left = `${n.left}px`, o.style.top = `${n.top}px`;
|
|
18979
19494
|
}, N = () => {
|
|
18980
19495
|
!v || !y || (T(), d.style.display = "flex", g.focus());
|
|
@@ -19008,7 +19523,7 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
|
|
|
19008
19523
|
let n = x;
|
|
19009
19524
|
if (!n) return;
|
|
19010
19525
|
let r = e - n.startX, i = t - n.startY;
|
|
19011
|
-
!n.moved && Math.hypot(r, i) >=
|
|
19526
|
+
!n.moved && Math.hypot(r, i) >= Bb && (n.moved = !0), n.moved && M({
|
|
19012
19527
|
left: n.left + r,
|
|
19013
19528
|
top: n.top + i
|
|
19014
19529
|
});
|
|
@@ -19052,25 +19567,25 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
|
|
|
19052
19567
|
if (w) return;
|
|
19053
19568
|
T(), O(), k(), v = e;
|
|
19054
19569
|
let i = globalThis.URL.createObjectURL(e);
|
|
19055
|
-
y = i, s.src = i, f.src = i, o.style.display = "block", M(b ?? j()), D(
|
|
19570
|
+
y = i, s.src = i, f.src = i, o.style.display = "block", M(b ?? j()), D(Gb(n)), r > 0 && (S = t.setTimeout(A, r));
|
|
19056
19571
|
},
|
|
19057
19572
|
dismiss: A,
|
|
19058
19573
|
dispose() {
|
|
19059
19574
|
w || (w = !0, T(), E(), A(), t.removeEventListener("mousemove", V, !0), t.removeEventListener("mouseup", H, !0), t.removeEventListener("pointermove", ee, !0), t.removeEventListener("pointerup", te, !0), t.removeEventListener("pointercancel", ne, !0), t.removeEventListener("keydown", ae, !0), o.removeEventListener("mousedown", B), o.removeEventListener("pointerdown", U), o.removeEventListener("keydown", W), o.removeEventListener("contextmenu", re), d.removeEventListener("click", ie), a.remove());
|
|
19060
19575
|
}
|
|
19061
19576
|
};
|
|
19062
|
-
},
|
|
19577
|
+
}, Jb = "mesurer.screenshot", Yb = "screenshot", Xb = "mesurer.screenshot.settings", Zb = "mesurer.screenshot.active", Qb = "runtime:solid", $b = "screenshot.toggle", ex = 2500, tx = 0, nx = [
|
|
19063
19578
|
"[data-mesurer-measurement='true']",
|
|
19064
19579
|
"[data-mesurer-selected-measurement='true']",
|
|
19065
19580
|
"[data-mesurer-selection-spacing-target='true']",
|
|
19066
19581
|
"[data-mesurer-guide='true']",
|
|
19067
19582
|
"[data-mesurer-distance='true']"
|
|
19068
|
-
].join(","),
|
|
19583
|
+
].join(","), rx = `${nx},[data-mesurer-rulers='true']`, ix = {
|
|
19069
19584
|
viewBox: "0 0 256 256",
|
|
19070
19585
|
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"]
|
|
19071
|
-
},
|
|
19586
|
+
}, ax = (e, t) => {
|
|
19072
19587
|
for (let [n, r] of Object.entries(t)) e.style.setProperty(n, r);
|
|
19073
|
-
},
|
|
19588
|
+
}, ox = (e, t) => {
|
|
19074
19589
|
for (let n of [
|
|
19075
19590
|
"left",
|
|
19076
19591
|
"top",
|
|
@@ -19082,63 +19597,63 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
|
|
|
19082
19597
|
let r = t[n];
|
|
19083
19598
|
r === void 0 ? e.style.removeProperty(n) : e.style.setProperty(n, `${r}px`);
|
|
19084
19599
|
}
|
|
19085
|
-
},
|
|
19086
|
-
let t = e(
|
|
19600
|
+
}, sx = (e) => {
|
|
19601
|
+
let t = e(Xb);
|
|
19087
19602
|
return {
|
|
19088
19603
|
toolEnabled: t?.toolEnabled ?? !0,
|
|
19089
19604
|
copy: t?.copy ?? !0,
|
|
19090
19605
|
download: t?.download ?? !1,
|
|
19091
19606
|
includeMeasurements: t?.includeMeasurements ?? !1
|
|
19092
19607
|
};
|
|
19093
|
-
},
|
|
19608
|
+
}, cx = (e) => ({
|
|
19094
19609
|
value: e.style.getPropertyValue("display"),
|
|
19095
19610
|
priority: e.style.getPropertyPriority("display")
|
|
19096
|
-
}),
|
|
19611
|
+
}), lx = (e, t) => {
|
|
19097
19612
|
t.value || t.priority ? e.style.setProperty("display", t.value, t.priority) : e.style.removeProperty("display");
|
|
19098
|
-
},
|
|
19613
|
+
}, ux = (e, t) => {
|
|
19099
19614
|
let n = e;
|
|
19100
19615
|
for (; n.parentElement && n.parentElement !== t;) n = n.parentElement;
|
|
19101
19616
|
return n.parentElement === t ? n : null;
|
|
19102
|
-
},
|
|
19617
|
+
}, dx = (e) => {
|
|
19103
19618
|
let t = e.querySelector("[data-mesurer-root='true']");
|
|
19104
19619
|
if (!t) return () => void 0;
|
|
19105
19620
|
let n = /* @__PURE__ */ new Set();
|
|
19106
19621
|
for (let e of t.querySelectorAll("[data-mesurer-rulers='true']")) {
|
|
19107
|
-
let r =
|
|
19622
|
+
let r = ux(e, t);
|
|
19108
19623
|
r && n.add(r);
|
|
19109
19624
|
}
|
|
19110
|
-
for (let e of t.querySelectorAll(
|
|
19111
|
-
let r =
|
|
19625
|
+
for (let e of t.querySelectorAll(nx)) {
|
|
19626
|
+
let r = ux(e, t);
|
|
19112
19627
|
r && n.add(r);
|
|
19113
19628
|
}
|
|
19114
19629
|
let r = [];
|
|
19115
19630
|
for (let e of n) e.dataset.mesurerInspectorUi !== "true" && (r.push({
|
|
19116
19631
|
element: e,
|
|
19117
|
-
display:
|
|
19632
|
+
display: cx(e)
|
|
19118
19633
|
}), e.style.setProperty("display", "none", "important"));
|
|
19119
19634
|
return () => {
|
|
19120
|
-
for (let e of r)
|
|
19635
|
+
for (let e of r) lx(e.element, e.display);
|
|
19121
19636
|
};
|
|
19122
|
-
},
|
|
19637
|
+
}, fx = (e) => Array.from(e.querySelectorAll(rx)).filter((e) => e.dataset.mesurerInspectorUi === "true").map((e) => ({
|
|
19123
19638
|
element: e,
|
|
19124
|
-
display:
|
|
19125
|
-
})),
|
|
19126
|
-
for (let t of e) t.element.isConnected &&
|
|
19127
|
-
},
|
|
19128
|
-
id:
|
|
19639
|
+
display: cx(e)
|
|
19640
|
+
})), px = (e) => {
|
|
19641
|
+
for (let t of e) t.element.isConnected && lx(t.element, t.display);
|
|
19642
|
+
}, mx = (e = {}) => Ta({
|
|
19643
|
+
id: Jb,
|
|
19129
19644
|
version: "0.1.0",
|
|
19130
|
-
requires: [
|
|
19645
|
+
requires: [Qb],
|
|
19131
19646
|
provides: [
|
|
19132
19647
|
"tool:screenshot",
|
|
19133
19648
|
"capture:screenshot",
|
|
19134
19649
|
"settings:screenshot"
|
|
19135
19650
|
],
|
|
19136
19651
|
setup(t) {
|
|
19137
|
-
let n = t.service.get(
|
|
19652
|
+
let n = t.service.get(Qb);
|
|
19138
19653
|
if (!n) throw Error("Screenshot plugin requires the Solid renderer runtime.");
|
|
19139
|
-
let { ownerDocument: r, ownerWindow: i } = n, a = n.createWorkspaceRuntime(), o = n.createInspectorMount(), s = e.capture ?? e.captureVisibleTab, c = s ?? _o, l = e.previewDurationMs ??
|
|
19654
|
+
let { ownerDocument: r, ownerWindow: i } = n, a = n.createWorkspaceRuntime(), o = n.createInspectorMount(), s = e.capture ?? e.captureVisibleTab, c = s ?? _o, l = e.previewDurationMs ?? tx;
|
|
19140
19655
|
t.state.register({
|
|
19141
|
-
id:
|
|
19656
|
+
id: Xb,
|
|
19142
19657
|
initial: {
|
|
19143
19658
|
toolEnabled: e.toolEnabled ?? !0,
|
|
19144
19659
|
copy: e.copy ?? !0,
|
|
@@ -19147,11 +19662,11 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
|
|
|
19147
19662
|
},
|
|
19148
19663
|
persist: !0
|
|
19149
19664
|
}), t.state.register({
|
|
19150
|
-
id:
|
|
19665
|
+
id: Zb,
|
|
19151
19666
|
initial: !1
|
|
19152
19667
|
});
|
|
19153
19668
|
let u = o.element;
|
|
19154
|
-
u.dataset.mesurerScreenshot = "true",
|
|
19669
|
+
u.dataset.mesurerScreenshot = "true", ax(u, {
|
|
19155
19670
|
position: "fixed",
|
|
19156
19671
|
inset: "0",
|
|
19157
19672
|
"z-index": "85",
|
|
@@ -19159,7 +19674,7 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
|
|
|
19159
19674
|
"font-family": "ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif"
|
|
19160
19675
|
});
|
|
19161
19676
|
let d = r.createElement("div");
|
|
19162
|
-
d.dataset.mesurerScreenshotSelect = "true", d.setAttribute("role", "application"), d.setAttribute("aria-label", "Screenshot selection"),
|
|
19677
|
+
d.dataset.mesurerScreenshotSelect = "true", d.setAttribute("role", "application"), d.setAttribute("aria-label", "Screenshot selection"), ax(d, {
|
|
19163
19678
|
position: "fixed",
|
|
19164
19679
|
inset: "0",
|
|
19165
19680
|
display: "none",
|
|
@@ -19171,13 +19686,13 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
|
|
|
19171
19686
|
}), u.append(d);
|
|
19172
19687
|
let f = Array.from({ length: 4 }, () => {
|
|
19173
19688
|
let e = r.createElement("div");
|
|
19174
|
-
return
|
|
19689
|
+
return ax(e, {
|
|
19175
19690
|
position: "fixed",
|
|
19176
19691
|
"background-color": "rgb(0 0 0 / 40%)",
|
|
19177
19692
|
"pointer-events": "none"
|
|
19178
19693
|
}), d.append(e), e;
|
|
19179
19694
|
}), p = r.createElement("div");
|
|
19180
|
-
|
|
19695
|
+
ax(p, {
|
|
19181
19696
|
position: "fixed",
|
|
19182
19697
|
display: "none",
|
|
19183
19698
|
border: "1px solid #0d99ff",
|
|
@@ -19185,7 +19700,7 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
|
|
|
19185
19700
|
"pointer-events": "none"
|
|
19186
19701
|
}), d.append(p);
|
|
19187
19702
|
let m = r.createElement("div");
|
|
19188
|
-
|
|
19703
|
+
ax(m, {
|
|
19189
19704
|
position: "fixed",
|
|
19190
19705
|
display: "none",
|
|
19191
19706
|
"z-index": "86",
|
|
@@ -19199,7 +19714,7 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
|
|
|
19199
19714
|
"pointer-events": "none"
|
|
19200
19715
|
}), d.append(m);
|
|
19201
19716
|
let h = r.createElement("div");
|
|
19202
|
-
h.textContent = "Drag to select · Esc to cancel",
|
|
19717
|
+
h.textContent = "Drag to select · Esc to cancel", ax(h, {
|
|
19203
19718
|
position: "fixed",
|
|
19204
19719
|
left: "50%",
|
|
19205
19720
|
bottom: "16px",
|
|
@@ -19212,7 +19727,7 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
|
|
|
19212
19727
|
"pointer-events": "none"
|
|
19213
19728
|
}), d.append(h);
|
|
19214
19729
|
let g = r.createElement("div");
|
|
19215
|
-
g.dataset.mesurerScreenshotError = "true", g.setAttribute("role", "status"), g.textContent = "Could not save screenshot",
|
|
19730
|
+
g.dataset.mesurerScreenshotError = "true", g.setAttribute("role", "status"), g.textContent = "Could not save screenshot", ax(g, {
|
|
19216
19731
|
position: "fixed",
|
|
19217
19732
|
display: "none",
|
|
19218
19733
|
"z-index": "97",
|
|
@@ -19223,8 +19738,8 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
|
|
|
19223
19738
|
"font-size": "11px",
|
|
19224
19739
|
"pointer-events": "none"
|
|
19225
19740
|
}), u.append(g);
|
|
19226
|
-
let _ = null, v = null, y = 0, b = 0, x = !1, S = !1, C = !1, w = () => t.state.get("mesurer.screenshot.active") ?? !1, T = () =>
|
|
19227
|
-
t.state.update(
|
|
19741
|
+
let _ = null, v = null, y = 0, b = 0, x = !1, S = !1, C = !1, w = () => t.state.get("mesurer.screenshot.active") ?? !1, T = () => sx(t.state.get), E = (e) => {
|
|
19742
|
+
t.state.update(Xb, (t) => {
|
|
19228
19743
|
let n = { ...t };
|
|
19229
19744
|
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;
|
|
19230
19745
|
});
|
|
@@ -19247,13 +19762,13 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
|
|
|
19247
19762
|
}, A = (e) => {
|
|
19248
19763
|
let t = i.innerWidth, n = i.innerHeight;
|
|
19249
19764
|
if (!e || e.width <= 0 || e.height <= 0) {
|
|
19250
|
-
|
|
19765
|
+
ox(f[0], {
|
|
19251
19766
|
left: 0,
|
|
19252
19767
|
top: 0,
|
|
19253
19768
|
width: t,
|
|
19254
19769
|
height: n
|
|
19255
19770
|
});
|
|
19256
|
-
for (let e of f.slice(1))
|
|
19771
|
+
for (let e of f.slice(1)) ox(e, {
|
|
19257
19772
|
left: 0,
|
|
19258
19773
|
top: 0,
|
|
19259
19774
|
width: 0,
|
|
@@ -19262,31 +19777,31 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
|
|
|
19262
19777
|
p.style.display = "none", m.style.display = "none";
|
|
19263
19778
|
return;
|
|
19264
19779
|
}
|
|
19265
|
-
|
|
19780
|
+
ox(f[0], {
|
|
19266
19781
|
left: 0,
|
|
19267
19782
|
top: 0,
|
|
19268
19783
|
width: t,
|
|
19269
19784
|
height: e.top
|
|
19270
|
-
}),
|
|
19785
|
+
}), ox(f[1], {
|
|
19271
19786
|
left: 0,
|
|
19272
19787
|
top: e.top,
|
|
19273
19788
|
width: e.left,
|
|
19274
19789
|
height: e.height
|
|
19275
|
-
}),
|
|
19790
|
+
}), ox(f[2], {
|
|
19276
19791
|
left: e.left + e.width,
|
|
19277
19792
|
top: e.top,
|
|
19278
19793
|
width: Math.max(0, t - e.left - e.width),
|
|
19279
19794
|
height: e.height
|
|
19280
|
-
}),
|
|
19795
|
+
}), ox(f[3], {
|
|
19281
19796
|
left: 0,
|
|
19282
19797
|
top: e.top + e.height,
|
|
19283
19798
|
width: t,
|
|
19284
19799
|
height: Math.max(0, n - e.top - e.height)
|
|
19285
|
-
}), p.style.display = "block",
|
|
19800
|
+
}), p.style.display = "block", ox(p, e), m.style.display = "block", m.textContent = `${Math.round(e.width)} × ${Math.round(e.height)}`, ox(m, {
|
|
19286
19801
|
left: e.left + e.width / 2,
|
|
19287
19802
|
top: Math.min(n - 22, e.top + e.height + 6)
|
|
19288
19803
|
});
|
|
19289
|
-
}, j = () => n.portalTarget.querySelector("[data-mesurer-tool-id='screenshot']")?.getBoundingClientRect() ?? null, M =
|
|
19804
|
+
}, j = () => n.portalTarget.querySelector("[data-mesurer-tool-id='screenshot']")?.getBoundingClientRect() ?? null, M = qb({
|
|
19290
19805
|
ownerDocument: r,
|
|
19291
19806
|
ownerWindow: i,
|
|
19292
19807
|
root: u,
|
|
@@ -19297,7 +19812,7 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
|
|
|
19297
19812
|
}, P = () => {
|
|
19298
19813
|
y && i.clearTimeout(y), g.style.display = "block", N(g), y = i.setTimeout(() => {
|
|
19299
19814
|
y = 0, g.style.display = "none";
|
|
19300
|
-
},
|
|
19815
|
+
}, ex);
|
|
19301
19816
|
}, F = () => {
|
|
19302
19817
|
_ = null, A(null), d.style.visibility = "", d.style.display = "none", u.style.pointerEvents = "none", D(!1), k();
|
|
19303
19818
|
}, I = () => {
|
|
@@ -19306,8 +19821,8 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
|
|
|
19306
19821
|
if (x) throw Error("A screenshot capture is already running.");
|
|
19307
19822
|
if (e.width < 4 || e.height < 4) throw Error("Screenshot selection must be at least 4px by 4px.");
|
|
19308
19823
|
x = !0;
|
|
19309
|
-
let o = ++b, s = T(), l = s.includeMeasurements ?
|
|
19310
|
-
a.prepareCapture(), s.includeMeasurements &&
|
|
19824
|
+
let o = ++b, s = T(), l = s.includeMeasurements ? fx(r) : [], u = s.includeMeasurements ? () => void 0 : dx(n.portalTarget);
|
|
19825
|
+
a.prepareCapture(), s.includeMeasurements && px(l);
|
|
19311
19826
|
try {
|
|
19312
19827
|
d.style.visibility = "hidden", await Qa(i);
|
|
19313
19828
|
let n = await Ja(await c({
|
|
@@ -19415,9 +19930,9 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
|
|
|
19415
19930
|
label: "Screenshot",
|
|
19416
19931
|
shortcut: "Shift+S",
|
|
19417
19932
|
order: 70,
|
|
19418
|
-
command:
|
|
19933
|
+
command: $b,
|
|
19419
19934
|
toolbarMode: "select",
|
|
19420
|
-
icon:
|
|
19935
|
+
icon: ix,
|
|
19421
19936
|
active: w,
|
|
19422
19937
|
hidden: () => !T().toolEnabled,
|
|
19423
19938
|
menu: {
|
|
@@ -19483,31 +19998,31 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
|
|
|
19483
19998
|
set: (e) => E({ includeMeasurements: e })
|
|
19484
19999
|
}
|
|
19485
20000
|
]
|
|
19486
|
-
}), t.command.register(
|
|
20001
|
+
}), t.command.register($b, R), t.service.provide(Yb, ee), t.lifecycle.onDispose(() => {
|
|
19487
20002
|
C = !0, b += 1, d.removeEventListener("pointerdown", z), d.removeEventListener("pointermove", B), d.removeEventListener("pointerup", V), d.removeEventListener("pointercancel", H), i.removeEventListener("keydown", U, !0), y && i.clearTimeout(y), M.dispose(), k(), vo(i), a.finishCapture(), a.dispose(), o.dispose();
|
|
19488
20003
|
});
|
|
19489
20004
|
}
|
|
19490
|
-
}),
|
|
20005
|
+
}), hx = (e) => Number.parseFloat(e) || 0, gx = 0, _x = (e, t) => {
|
|
19491
20006
|
let n = t.CSS;
|
|
19492
20007
|
return n?.escape ? n.escape(e) : e.replace(/[^a-zA-Z0-9_-]/g, (e) => `\\${e}`);
|
|
19493
|
-
},
|
|
19494
|
-
function
|
|
20008
|
+
}, vx = (e) => e.nodeType === 9, yx = (e) => e.nodeType === 11;
|
|
20009
|
+
function bx(e) {
|
|
19495
20010
|
let t = e.getRootNode();
|
|
19496
|
-
return
|
|
20011
|
+
return yx(t) ? t : e.ownerDocument;
|
|
19497
20012
|
}
|
|
19498
|
-
var
|
|
19499
|
-
if (
|
|
19500
|
-
let n =
|
|
19501
|
-
return
|
|
19502
|
-
},
|
|
20013
|
+
var xx = (e, t) => {
|
|
20014
|
+
if (vx(e) || yx(e)) return e;
|
|
20015
|
+
let n = bx(e);
|
|
20016
|
+
return yx(n) ? n : t;
|
|
20017
|
+
}, Sx = 600, Cx = "audio, canvas, embed, iframe, img, input, object, picture, select, textarea, video", wx = /* @__PURE__ */ new WeakMap(), Tx = (e) => {
|
|
19503
20018
|
let t = e;
|
|
19504
20019
|
for (; t;) {
|
|
19505
|
-
if ((
|
|
20020
|
+
if ((wx.get(t) ?? 0) > 0) return !0;
|
|
19506
20021
|
let e = t.getRootNode();
|
|
19507
|
-
t =
|
|
20022
|
+
t = yx(e) ? e.host : t.parentElement;
|
|
19508
20023
|
}
|
|
19509
20024
|
return !1;
|
|
19510
|
-
},
|
|
20025
|
+
}, Ex = (e, t) => t.x >= e.left && t.x <= e.right && t.y >= e.top && t.y <= e.bottom, Dx = (e, t) => Array.from(e.getClientRects()).some((e) => Ex(e, t)), Ox = (e, t, n) => {
|
|
19511
20026
|
let r = e;
|
|
19512
20027
|
for (; r;) {
|
|
19513
20028
|
let e = n.getComputedStyle(r);
|
|
@@ -19516,7 +20031,7 @@ var Sx = (e, t) => {
|
|
|
19516
20031
|
r = r.parentElement;
|
|
19517
20032
|
}
|
|
19518
20033
|
return !0;
|
|
19519
|
-
},
|
|
20034
|
+
}, kx = (e, t) => {
|
|
19520
20035
|
if (e.matches("img, picture, video, canvas, svg image, path, circle, ellipse, line, polygon, polyline, rect, text, use")) return !0;
|
|
19521
20036
|
let n = t.getComputedStyle(e), r = n.backgroundImage !== "none" || n.backgroundColor !== "transparent" && n.backgroundColor !== "rgba(0, 0, 0, 0)", i = [
|
|
19522
20037
|
"top",
|
|
@@ -19525,7 +20040,7 @@ var Sx = (e, t) => {
|
|
|
19525
20040
|
"left"
|
|
19526
20041
|
].some((e) => Number.parseFloat(n.getPropertyValue(`border-${e}-width`)) > 0 && n.getPropertyValue(`border-${e}-style`) !== "none");
|
|
19527
20042
|
return r || i || n.boxShadow !== "none" || n.outlineStyle !== "none";
|
|
19528
|
-
},
|
|
20043
|
+
}, Ax = (e, t) => !!e.textContent?.trim() || kx(e, t), jx = (e, t, n) => {
|
|
19529
20044
|
let r = t, i = r.caretRangeFromPoint?.(e.x, e.y)?.startContainer ?? r.caretPositionFromPoint?.(e.x, e.y)?.offsetNode;
|
|
19530
20045
|
if (!i) return null;
|
|
19531
20046
|
let a = t.defaultView?.Element;
|
|
@@ -19536,11 +20051,11 @@ var Sx = (e, t) => {
|
|
|
19536
20051
|
o = o.parentElement;
|
|
19537
20052
|
}
|
|
19538
20053
|
return o === n ? n : null;
|
|
19539
|
-
},
|
|
20054
|
+
}, Mx = (e, t, n) => {
|
|
19540
20055
|
let r = n.defaultView, i = r?.Element;
|
|
19541
20056
|
if (!r || !i) return [];
|
|
19542
20057
|
let a = [], o = /* @__PURE__ */ new Set(), s = (n, i, s) => {
|
|
19543
|
-
if (o.has(n) ||
|
|
20058
|
+
if (o.has(n) || Tx(n) || r.getComputedStyle(n).pointerEvents !== "none" || Ox(n, e, r) || !Dx(n, t)) return;
|
|
19544
20059
|
let c = n.getBoundingClientRect();
|
|
19545
20060
|
o.add(n), a.push({
|
|
19546
20061
|
element: n,
|
|
@@ -19549,7 +20064,7 @@ var Sx = (e, t) => {
|
|
|
19549
20064
|
order: s
|
|
19550
20065
|
});
|
|
19551
20066
|
}, c = n.createTreeWalker(e, 1), l = c.nextNode(), u = 1;
|
|
19552
|
-
for (; l && u <=
|
|
20067
|
+
for (; l && u <= Sx;) {
|
|
19553
20068
|
if (l instanceof i) {
|
|
19554
20069
|
let t = l;
|
|
19555
20070
|
if (r.getComputedStyle(t).pointerEvents === "none") {
|
|
@@ -19560,9 +20075,9 @@ var Sx = (e, t) => {
|
|
|
19560
20075
|
}
|
|
19561
20076
|
u += 1, l = c.nextNode();
|
|
19562
20077
|
}
|
|
19563
|
-
let d =
|
|
20078
|
+
let d = jx(t, n, e);
|
|
19564
20079
|
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);
|
|
19565
|
-
},
|
|
20080
|
+
}, Nx = (e, t, n) => {
|
|
19566
20081
|
let r = t.ownerDocument.defaultView;
|
|
19567
20082
|
if (!r) return [];
|
|
19568
20083
|
let i = [...new Set(e)], a = /* @__PURE__ */ new Map();
|
|
@@ -19571,7 +20086,7 @@ var Sx = (e, t) => {
|
|
|
19571
20086
|
t && (a.set(e, e.getAttribute("style")), t.style.setProperty("pointer-events", "auto", "important"));
|
|
19572
20087
|
}
|
|
19573
20088
|
try {
|
|
19574
|
-
let e =
|
|
20089
|
+
let e = bx(t).elementsFromPoint(n.x, n.y), r = e.findIndex((e) => e === t), a = new Map(e.map((e, t) => [e, t]));
|
|
19575
20090
|
return i.filter((e) => {
|
|
19576
20091
|
let t = a.get(e);
|
|
19577
20092
|
return t !== void 0 && (r < 0 || t < r);
|
|
@@ -19579,31 +20094,31 @@ var Sx = (e, t) => {
|
|
|
19579
20094
|
} finally {
|
|
19580
20095
|
for (let [e, t] of a) t === null ? e.removeAttribute("style") : e.setAttribute("style", t);
|
|
19581
20096
|
}
|
|
19582
|
-
},
|
|
20097
|
+
}, Px = (e, t) => {
|
|
19583
20098
|
let n = e;
|
|
19584
20099
|
for (; n.parentElement && n.parentElement !== t;) n = n.parentElement;
|
|
19585
20100
|
return n.parentElement === t ? n : null;
|
|
19586
|
-
},
|
|
20101
|
+
}, Fx = (e, t, n, r) => {
|
|
19587
20102
|
let i = r.defaultView;
|
|
19588
20103
|
if (!i) return [];
|
|
19589
|
-
let a =
|
|
20104
|
+
let a = Nx(Mx(e, t, r).filter((e) => Ax(e, i)), e, t);
|
|
19590
20105
|
if (a.length > 0) return a;
|
|
19591
|
-
if (e.textContent?.trim() && !e.matches(
|
|
19592
|
-
let o = [], s = /* @__PURE__ */ new Set(), c = !
|
|
20106
|
+
if (e.textContent?.trim() && !e.matches(Cx) || e.matches("a, button, input, select, textarea, label, summary, [contenteditable='true']")) return [];
|
|
20107
|
+
let o = [], s = /* @__PURE__ */ new Set(), c = !vx(n) && !yx(n) ? n : null, l = e.parentElement;
|
|
19593
20108
|
for (; l && l !== r.body && l !== r.documentElement && !(c && l !== c && !c.contains(l));) {
|
|
19594
|
-
let a = l, u =
|
|
19595
|
-
if (!
|
|
19596
|
-
let t =
|
|
20109
|
+
let a = l, u = Px(e, a), d = Mx(a, t, r).filter((e) => {
|
|
20110
|
+
if (!Lx(e, n) || e.closest("[aria-hidden='true'], [inert]")) return !1;
|
|
20111
|
+
let t = Px(e, a);
|
|
19597
20112
|
return t === null || t !== u;
|
|
19598
20113
|
});
|
|
19599
|
-
for (let e of d) s.has(e) || !
|
|
20114
|
+
for (let e of d) s.has(e) || !Ax(e, i) || (s.add(e), o.push(e));
|
|
19600
20115
|
if (a === c) break;
|
|
19601
20116
|
l = a.parentElement;
|
|
19602
20117
|
}
|
|
19603
|
-
return
|
|
20118
|
+
return Nx(o, e, t);
|
|
19604
20119
|
};
|
|
19605
|
-
function
|
|
19606
|
-
let r =
|
|
20120
|
+
function Ix(e, t, n = vx(t) ? t : t.ownerDocument ?? document) {
|
|
20121
|
+
let r = xx(t, n), i = n.defaultView;
|
|
19607
20122
|
if (!i) return null;
|
|
19608
20123
|
let a = r.elementsFromPoint(e.x, e.y);
|
|
19609
20124
|
for (let r of a) {
|
|
@@ -19613,28 +20128,28 @@ function Lx(e, t, n = yx(t) ? t : t.ownerDocument ?? document) {
|
|
|
19613
20128
|
if (!t || t === a) break;
|
|
19614
20129
|
a = t;
|
|
19615
20130
|
}
|
|
19616
|
-
if (!a || !
|
|
19617
|
-
let o =
|
|
20131
|
+
if (!a || !Lx(a, t)) continue;
|
|
20132
|
+
let o = Fx(a, e, t, n);
|
|
19618
20133
|
if (o.length > 0) return o[0];
|
|
19619
20134
|
if (i.getComputedStyle(a).pointerEvents !== "none") return a;
|
|
19620
20135
|
}
|
|
19621
20136
|
return null;
|
|
19622
20137
|
}
|
|
19623
|
-
function
|
|
19624
|
-
if (
|
|
20138
|
+
function Lx(e, t) {
|
|
20139
|
+
if (vx(t)) return !0;
|
|
19625
20140
|
let n = e;
|
|
19626
20141
|
for (; n;) {
|
|
19627
20142
|
if (t === n || t.contains(n)) return !0;
|
|
19628
20143
|
let e = n.getRootNode();
|
|
19629
|
-
if (!
|
|
20144
|
+
if (!yx(e)) return !1;
|
|
19630
20145
|
n = e.host;
|
|
19631
20146
|
}
|
|
19632
20147
|
return !1;
|
|
19633
20148
|
}
|
|
19634
|
-
function
|
|
20149
|
+
function Rx(e, t) {
|
|
19635
20150
|
if (!e) return t();
|
|
19636
|
-
let n =
|
|
19637
|
-
|
|
20151
|
+
let n = wx.get(e) ?? 0;
|
|
20152
|
+
wx.set(e, n + 1);
|
|
19638
20153
|
let r = [e, ...e.querySelectorAll("*")], i = r.map((e) => [
|
|
19639
20154
|
e,
|
|
19640
20155
|
e.style.getPropertyValue("pointer-events"),
|
|
@@ -19644,13 +20159,13 @@ function zx(e, t) {
|
|
|
19644
20159
|
try {
|
|
19645
20160
|
return t();
|
|
19646
20161
|
} finally {
|
|
19647
|
-
n === 0 ?
|
|
20162
|
+
n === 0 ? wx.delete(e) : wx.set(e, n);
|
|
19648
20163
|
for (let [e, t, n] of i) t ? e.style.setProperty("pointer-events", t, n) : e.style.removeProperty("pointer-events");
|
|
19649
20164
|
}
|
|
19650
20165
|
}
|
|
19651
|
-
function
|
|
20166
|
+
function zx(e) {
|
|
19652
20167
|
let t = e.ownerDocument.defaultView ?? window;
|
|
19653
|
-
if (e.id) return `#${
|
|
20168
|
+
if (e.id) return `#${_x(e.id, t)}`;
|
|
19654
20169
|
let n = e.getAttribute("data-testid");
|
|
19655
20170
|
if (n) return `[data-testid=${JSON.stringify(n)}]`;
|
|
19656
20171
|
let r = [], i = e;
|
|
@@ -19664,17 +20179,17 @@ function Bx(e) {
|
|
|
19664
20179
|
}
|
|
19665
20180
|
return r.join(" > ");
|
|
19666
20181
|
}
|
|
19667
|
-
function
|
|
20182
|
+
function Bx(e, t, n = `dom-inspection-${++gx}`) {
|
|
19668
20183
|
let r = e.getBoundingClientRect(), i = t.getComputedStyle(e), a = {
|
|
19669
|
-
top:
|
|
19670
|
-
right:
|
|
19671
|
-
bottom:
|
|
19672
|
-
left:
|
|
20184
|
+
top: hx(i.paddingTop),
|
|
20185
|
+
right: hx(i.paddingRight),
|
|
20186
|
+
bottom: hx(i.paddingBottom),
|
|
20187
|
+
left: hx(i.paddingLeft)
|
|
19673
20188
|
}, o = {
|
|
19674
|
-
top:
|
|
19675
|
-
right:
|
|
19676
|
-
bottom:
|
|
19677
|
-
left:
|
|
20189
|
+
top: hx(i.marginTop),
|
|
20190
|
+
right: hx(i.marginRight),
|
|
20191
|
+
bottom: hx(i.marginBottom),
|
|
20192
|
+
left: hx(i.marginLeft)
|
|
19678
20193
|
}, s = {
|
|
19679
20194
|
left: r.left + a.left,
|
|
19680
20195
|
top: r.top + a.top,
|
|
@@ -19702,8 +20217,8 @@ function Vx(e, t, n = `dom-inspection-${++_x}`) {
|
|
|
19702
20217
|
elementRef: e
|
|
19703
20218
|
};
|
|
19704
20219
|
}
|
|
19705
|
-
function
|
|
19706
|
-
let t = e.ownerDocument.defaultView ?? window, n = t.getComputedStyle(e), r = e instanceof t.HTMLElement ? e : null, i = e.getBoundingClientRect(), a = r ?
|
|
20220
|
+
function Vx(e) {
|
|
20221
|
+
let t = e.ownerDocument.defaultView ?? window, n = t.getComputedStyle(e), r = e instanceof t.HTMLElement ? e : null, i = e.getBoundingClientRect(), a = r ? Bx(r, t) : null, o = (e) => {
|
|
19707
20222
|
let t = Number.parseFloat(e);
|
|
19708
20223
|
return Number.isFinite(t) ? t : 0;
|
|
19709
20224
|
}, s = (e) => ({
|
|
@@ -19713,7 +20228,7 @@ function Hx(e) {
|
|
|
19713
20228
|
left: o(n.getPropertyValue(`${e}-left${e === "border" ? "-width" : ""}`))
|
|
19714
20229
|
});
|
|
19715
20230
|
return {
|
|
19716
|
-
selector:
|
|
20231
|
+
selector: zx(e),
|
|
19717
20232
|
tag: e.localName,
|
|
19718
20233
|
id: e.id || null,
|
|
19719
20234
|
classes: [...e.classList],
|
|
@@ -19775,10 +20290,10 @@ function Hx(e) {
|
|
|
19775
20290
|
}
|
|
19776
20291
|
//#endregion
|
|
19777
20292
|
//#region src/agent.ts
|
|
19778
|
-
var
|
|
19779
|
-
function
|
|
19780
|
-
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 ||
|
|
19781
|
-
let t = (e.getPluginHost() ?? await e.waitForPluginHost()).service.get(
|
|
20293
|
+
var Hx = "text-edit", Ux = (e) => Vx(e);
|
|
20294
|
+
function Wx(e) {
|
|
20295
|
+
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 || Lx(n, t), a = async () => {
|
|
20296
|
+
let t = (e.getPluginHost() ?? await e.waitForPluginHost()).service.get(Hx);
|
|
19782
20297
|
if (!t) throw Error("Mesurer text editing service is unavailable.");
|
|
19783
20298
|
return t;
|
|
19784
20299
|
}, o = () => {
|
|
@@ -19807,25 +20322,25 @@ function Gx(e) {
|
|
|
19807
20322
|
},
|
|
19808
20323
|
inspect(e, t = 0) {
|
|
19809
20324
|
let n = r(e, t);
|
|
19810
|
-
return n ?
|
|
20325
|
+
return n ? Ux(n) : null;
|
|
19811
20326
|
},
|
|
19812
20327
|
inspectAll(e, n = 50) {
|
|
19813
|
-
return [...t.querySelectorAll(e)].slice(0, Math.max(0, n)).map(
|
|
20328
|
+
return [...t.querySelectorAll(e)].slice(0, Math.max(0, n)).map(Ux);
|
|
19814
20329
|
},
|
|
19815
20330
|
at(n, r) {
|
|
19816
20331
|
let a = t.querySelector?.("[data-mesurer-island]") ?? null;
|
|
19817
|
-
return
|
|
19818
|
-
let a =
|
|
20332
|
+
return Rx(a?.shadowRoot?.querySelector("[data-mesurer-root='true']") ?? a, () => {
|
|
20333
|
+
let a = Ix({
|
|
19819
20334
|
x: n,
|
|
19820
20335
|
y: r
|
|
19821
20336
|
}, t, e.ownerDocument);
|
|
19822
|
-
return a && i(a) ?
|
|
20337
|
+
return a && i(a) ? Ux(a) : null;
|
|
19823
20338
|
});
|
|
19824
20339
|
},
|
|
19825
20340
|
distance(e, t) {
|
|
19826
20341
|
let n = r(e), i = r(t);
|
|
19827
20342
|
if (!n || !i) return null;
|
|
19828
|
-
let a =
|
|
20343
|
+
let a = Ux(n), o = Ux(i), s = a.rect, c = o.rect;
|
|
19829
20344
|
return {
|
|
19830
20345
|
a,
|
|
19831
20346
|
b: o,
|
|
@@ -19841,7 +20356,7 @@ function Gx(e) {
|
|
|
19841
20356
|
let r = e.getPluginHost() ?? await e.waitForPluginHost();
|
|
19842
20357
|
return {
|
|
19843
20358
|
viewport: o(),
|
|
19844
|
-
elements: n.flatMap((e) => [...t.querySelectorAll(e)].slice(0, 50).map(
|
|
20359
|
+
elements: n.flatMap((e) => [...t.querySelectorAll(e)].slice(0, 50).map(Ux)),
|
|
19845
20360
|
plugins: r.describe(),
|
|
19846
20361
|
pluginState: r.state.serialize("all")
|
|
19847
20362
|
};
|
|
@@ -19866,10 +20381,10 @@ function Gx(e) {
|
|
|
19866
20381
|
}
|
|
19867
20382
|
//#endregion
|
|
19868
20383
|
//#region src/version.ts
|
|
19869
|
-
var
|
|
20384
|
+
var Gx = "0.2.1-beta.7", Kx = Np, qx = Pp, Jx = () => ({
|
|
19870
20385
|
...km(),
|
|
19871
|
-
version:
|
|
19872
|
-
}),
|
|
20386
|
+
version: Gx
|
|
20387
|
+
}), Yx = qx, Xx = (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, Zx = (e) => {
|
|
19873
20388
|
if (!e.length) return null;
|
|
19874
20389
|
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));
|
|
19875
20390
|
return {
|
|
@@ -19878,36 +20393,36 @@ var Kx = "0.2.1-beta.5", qx = Np, Jx = Pp, Yx = () => ({
|
|
|
19878
20393
|
width: r - t,
|
|
19879
20394
|
height: i - n
|
|
19880
20395
|
};
|
|
19881
|
-
},
|
|
19882
|
-
function
|
|
20396
|
+
}, Qx = (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), $x = (e) => [...e.measurements, ...e.activeMeasurement && !e.measurements.some((t) => t.id === e.activeMeasurement?.id) ? [e.activeMeasurement] : []];
|
|
20397
|
+
function eS(e) {
|
|
19883
20398
|
let { workspace: t, scope: n, guideTolerance: r } = e;
|
|
19884
20399
|
if (n.kind === "workspace") return {
|
|
19885
20400
|
guides: t.guides.map((e) => ({ ...e })),
|
|
19886
|
-
measurements:
|
|
20401
|
+
measurements: $x(t),
|
|
19887
20402
|
distances: [...t.distances]
|
|
19888
20403
|
};
|
|
19889
|
-
let i = new Set(n.elements), a = (e) => e != null && i.has(e), o = (e) => n.regions.some((t) =>
|
|
20404
|
+
let i = new Set(n.elements), a = (e) => e != null && i.has(e), o = (e) => n.regions.some((t) => Xx(e, t));
|
|
19890
20405
|
return {
|
|
19891
|
-
guides: t.guides.filter((e) =>
|
|
19892
|
-
measurements:
|
|
20406
|
+
guides: t.guides.filter((e) => Qx(e, n.regions, r)).map((e) => ({ ...e })),
|
|
20407
|
+
measurements: $x(t).filter((e) => a(e.elementRef) || o(e.rect)),
|
|
19893
20408
|
distances: t.distances.filter((e) => a(e.elementRefA) || a(e.elementRefB) || o(e.rectA) || o(e.rectB))
|
|
19894
20409
|
};
|
|
19895
20410
|
}
|
|
19896
20411
|
//#endregion
|
|
19897
20412
|
//#region ../mesurer-core/dist/domain.js
|
|
19898
|
-
var
|
|
20413
|
+
var tS = {
|
|
19899
20414
|
opacity: 1,
|
|
19900
20415
|
width: 1,
|
|
19901
20416
|
pattern: "solid",
|
|
19902
20417
|
dashLength: 6,
|
|
19903
20418
|
gap: 4
|
|
19904
|
-
},
|
|
20419
|
+
}, nS = {
|
|
19905
20420
|
opacity: 1,
|
|
19906
20421
|
edgeReveal: !1
|
|
19907
20422
|
};
|
|
19908
20423
|
//#endregion
|
|
19909
20424
|
//#region ../mesurer-core/dist/events.js
|
|
19910
|
-
function
|
|
20425
|
+
function rS() {
|
|
19911
20426
|
let e = /* @__PURE__ */ new Map();
|
|
19912
20427
|
return {
|
|
19913
20428
|
on(t, n) {
|
|
@@ -19925,12 +20440,12 @@ function iS() {
|
|
|
19925
20440
|
}
|
|
19926
20441
|
};
|
|
19927
20442
|
}
|
|
19928
|
-
({ ...
|
|
20443
|
+
({ ...tS }), { ...nS };
|
|
19929
20444
|
//#endregion
|
|
19930
20445
|
//#region ../mesurer-core/dist/plugins.js
|
|
19931
|
-
var
|
|
19932
|
-
function
|
|
19933
|
-
let e = 1, t = 0, n =
|
|
20446
|
+
var iS = 50;
|
|
20447
|
+
function aS() {
|
|
20448
|
+
let e = 1, t = 0, n = rS(), r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map(), a = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Map(), c = /* @__PURE__ */ new Map(), l = /* @__PURE__ */ new Map(), u = /* @__PURE__ */ new Map(), d = /* @__PURE__ */ new Map(), f = /* @__PURE__ */ new Map(), p = [], m = [], h = (e, t) => {
|
|
19934
20449
|
n.emit("changed", {
|
|
19935
20450
|
pluginId: e,
|
|
19936
20451
|
reason: t
|
|
@@ -19993,15 +20508,15 @@ function oS() {
|
|
|
19993
20508
|
}
|
|
19994
20509
|
if (o && s) {
|
|
19995
20510
|
let e = y("history");
|
|
19996
|
-
x(s, e) || (p.push(s), p.length >
|
|
20511
|
+
x(s, e) || (p.push(s), p.length > iS && p.shift(), m.length = 0);
|
|
19997
20512
|
}
|
|
19998
20513
|
return l;
|
|
19999
20514
|
}, w = () => {
|
|
20000
20515
|
let e = p.pop();
|
|
20001
|
-
return e ? (m.push(y("history")), m.length >
|
|
20516
|
+
return e ? (m.push(y("history")), m.length > iS && m.shift(), b(e, "history"), h(void 0, "history"), !0) : !1;
|
|
20002
20517
|
}, T = () => {
|
|
20003
20518
|
let e = m.pop();
|
|
20004
|
-
return e ? (p.push(y("history")), p.length >
|
|
20519
|
+
return e ? (p.push(y("history")), p.length > iS && p.shift(), b(e, "history"), h(void 0, "history"), !0) : !1;
|
|
20005
20520
|
}, E = async (e, t) => {
|
|
20006
20521
|
for (let n of [...l.values()].filter((t) => t.name === e)) await n.handler(t);
|
|
20007
20522
|
}, D = (e) => [...u.values()].reverse().find((t) => t.id === e)?.value, O = {
|
|
@@ -20158,8 +20673,8 @@ function oS() {
|
|
|
20158
20673
|
}
|
|
20159
20674
|
//#endregion
|
|
20160
20675
|
//#region ../mesurer-core/dist/runtime.js
|
|
20161
|
-
async function
|
|
20162
|
-
let t =
|
|
20676
|
+
async function oS(e = {}) {
|
|
20677
|
+
let t = aS();
|
|
20163
20678
|
try {
|
|
20164
20679
|
for (let n of e.plugins ?? []) await t.load(n);
|
|
20165
20680
|
return t;
|
|
@@ -20169,17 +20684,17 @@ async function sS(e = {}) {
|
|
|
20169
20684
|
}
|
|
20170
20685
|
//#endregion
|
|
20171
20686
|
//#region src/context.ts
|
|
20172
|
-
var
|
|
20687
|
+
var sS = 10, cS = (e) => ({
|
|
20173
20688
|
left: e.left,
|
|
20174
20689
|
top: e.top,
|
|
20175
20690
|
width: e.width,
|
|
20176
20691
|
height: e.height
|
|
20177
|
-
}),
|
|
20692
|
+
}), lS = (e) => {
|
|
20178
20693
|
let t = /* @__PURE__ */ new Set(), n = [];
|
|
20179
20694
|
for (let r of e) !r?.isConnected || t.has(r) || (t.add(r), n.push(r));
|
|
20180
20695
|
return n;
|
|
20181
|
-
},
|
|
20182
|
-
function
|
|
20696
|
+
}, uS = (e) => e.crypto?.randomUUID?.() ?? `${Date.now()}-${Math.random().toString(36).slice(2)}`;
|
|
20697
|
+
function dS(e) {
|
|
20183
20698
|
let { runtime: t, ownerDocument: n, ownerWindow: r } = e, i = e.request ?? { scope: "workspace" }, a = t.snapshot();
|
|
20184
20699
|
if (!a) throw Error("Mesurer workspace is not ready yet.");
|
|
20185
20700
|
let o = [], s = [], c = { kind: "workspace" }, l = /* @__PURE__ */ new Map();
|
|
@@ -20187,7 +20702,7 @@ function fS(e) {
|
|
|
20187
20702
|
let e = t.annotation(i.annotation);
|
|
20188
20703
|
if (!e) throw Error(`Mesurer annotation not found: ${i.annotation}`);
|
|
20189
20704
|
for (let t of e.resolvedTargets) t.element?.isConnected && l.set(t.element, t.target.id);
|
|
20190
|
-
o =
|
|
20705
|
+
o = lS(e.resolvedTargets.map((e) => e.element));
|
|
20191
20706
|
let n = t.annotationRect(e.id);
|
|
20192
20707
|
n && (s = [n]);
|
|
20193
20708
|
let r = e.resolvedTargets.length, a = e.resolvedTargets.filter((e) => e.element?.isConnected).length, u = e.anchor.kind === "region" ? "connected" : r === 0 || a === 0 ? "stale" : a === r ? "connected" : "partial";
|
|
@@ -20199,15 +20714,15 @@ function fS(e) {
|
|
|
20199
20714
|
};
|
|
20200
20715
|
} else if (i.scope === "selection") {
|
|
20201
20716
|
let e = t.currentSelection();
|
|
20202
|
-
if (o =
|
|
20203
|
-
s = e.region ? [e.region] : o.map((e) =>
|
|
20204
|
-
} else o =
|
|
20717
|
+
if (o = lS(e.elements), !o.length && !e.region) throw Error("Mesurer has no current selection.");
|
|
20718
|
+
s = e.region ? [e.region] : o.map((e) => cS(e.getBoundingClientRect())), c = { kind: "selection" };
|
|
20719
|
+
} else o = lS([
|
|
20205
20720
|
...t.currentSelection().elements,
|
|
20206
20721
|
...a.measurements.map((e) => e.elementRef),
|
|
20207
20722
|
a.activeMeasurement?.elementRef,
|
|
20208
20723
|
...a.heldDistances.flatMap((e) => [e.elementRefA, e.elementRefB])
|
|
20209
20724
|
]);
|
|
20210
|
-
let u = c.kind === "workspace" ? [] : s.length ? s : o.map((e) =>
|
|
20725
|
+
let u = c.kind === "workspace" ? [] : s.length ? s : o.map((e) => cS(e.getBoundingClientRect())), d = eS({
|
|
20211
20726
|
workspace: {
|
|
20212
20727
|
guides: a.guides,
|
|
20213
20728
|
measurements: a.measurements,
|
|
@@ -20219,8 +20734,8 @@ function fS(e) {
|
|
|
20219
20734
|
elements: o,
|
|
20220
20735
|
regions: u
|
|
20221
20736
|
},
|
|
20222
|
-
guideTolerance: a.guideRelevanceTolerance ??
|
|
20223
|
-
}), f = d.measurements, p = d.distances, m = d.guides, h =
|
|
20737
|
+
guideTolerance: a.guideRelevanceTolerance ?? sS
|
|
20738
|
+
}), f = d.measurements, p = d.distances, m = d.guides, h = lS([
|
|
20224
20739
|
...o,
|
|
20225
20740
|
...f.map((e) => e.elementRef),
|
|
20226
20741
|
...p.flatMap((e) => [e.elementRefA, e.elementRefB])
|
|
@@ -20232,12 +20747,12 @@ function fS(e) {
|
|
|
20232
20747
|
let t = l.get(e) ?? y();
|
|
20233
20748
|
return g.set(e, t), {
|
|
20234
20749
|
ref: t,
|
|
20235
|
-
inspection:
|
|
20750
|
+
inspection: Vx(e)
|
|
20236
20751
|
};
|
|
20237
20752
|
}), x = f.map((e) => {
|
|
20238
20753
|
let t = {
|
|
20239
20754
|
id: e.id,
|
|
20240
|
-
rect:
|
|
20755
|
+
rect: cS(e.rect),
|
|
20241
20756
|
deltaX: e.deltaX,
|
|
20242
20757
|
deltaY: e.deltaY
|
|
20243
20758
|
};
|
|
@@ -20247,8 +20762,8 @@ function fS(e) {
|
|
|
20247
20762
|
}), S = p.map((e) => {
|
|
20248
20763
|
let t = {
|
|
20249
20764
|
id: e.id,
|
|
20250
|
-
rectA:
|
|
20251
|
-
rectB:
|
|
20765
|
+
rectA: cS(e.rectA),
|
|
20766
|
+
rectB: cS(e.rectB),
|
|
20252
20767
|
horizontal: e.horizontal ? { ...e.horizontal } : null,
|
|
20253
20768
|
vertical: e.vertical ? { ...e.vertical } : null
|
|
20254
20769
|
}, n = e.elementRefA ? g.get(e.elementRefA) : void 0, r = e.elementRefB ? g.get(e.elementRefB) : void 0;
|
|
@@ -20256,7 +20771,7 @@ function fS(e) {
|
|
|
20256
20771
|
});
|
|
20257
20772
|
return {
|
|
20258
20773
|
schema: "mesurer.context/v1",
|
|
20259
|
-
id:
|
|
20774
|
+
id: uS(r),
|
|
20260
20775
|
createdAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
20261
20776
|
scope: c,
|
|
20262
20777
|
page: {
|
|
@@ -20271,7 +20786,7 @@ function fS(e) {
|
|
|
20271
20786
|
scrollY: r.scrollY
|
|
20272
20787
|
},
|
|
20273
20788
|
coordinateSpace: "viewport-css-px",
|
|
20274
|
-
regions: c.kind === "workspace" ? [] : s.map(
|
|
20789
|
+
regions: c.kind === "workspace" ? [] : s.map(cS),
|
|
20275
20790
|
visualState: {
|
|
20276
20791
|
rulersVisible: a.rulersVisible,
|
|
20277
20792
|
xrayVisible: a.xrayVisible
|
|
@@ -20285,48 +20800,48 @@ function fS(e) {
|
|
|
20285
20800
|
}
|
|
20286
20801
|
};
|
|
20287
20802
|
}
|
|
20288
|
-
var
|
|
20289
|
-
function
|
|
20803
|
+
var fS = (e) => `${Math.round(e * 100) / 100}px`, pS = (e) => `x=${fS(e.left)} y=${fS(e.top)} w=${fS(e.width)} h=${fS(e.height)}`;
|
|
20804
|
+
function mS(e) {
|
|
20290
20805
|
let t = [
|
|
20291
20806
|
"Mesurer visual context",
|
|
20292
20807
|
"",
|
|
20293
20808
|
`Page: ${e.page.url}`,
|
|
20294
20809
|
`Viewport: ${e.viewport.width} × ${e.viewport.height} CSS px; scroll x=${e.viewport.scrollX} y=${e.viewport.scrollY}`
|
|
20295
20810
|
];
|
|
20296
|
-
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}: ${
|
|
20811
|
+
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}: ${pS(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) {
|
|
20297
20812
|
t.push("", "Targets");
|
|
20298
20813
|
for (let n of e.targets) {
|
|
20299
20814
|
let e = n.inspection;
|
|
20300
|
-
t.push(`[${n.ref}] ${e.selector}`, ` rect: ${
|
|
20815
|
+
t.push(`[${n.ref}] ${e.selector}`, ` rect: ${pS(e.rect)}`, ` margin: ${fS(e.margin.top)} ${fS(e.margin.right)} ${fS(e.margin.bottom)} ${fS(e.margin.left)}`, ` padding: ${fS(e.padding.top)} ${fS(e.padding.right)} ${fS(e.padding.bottom)} ${fS(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)}`);
|
|
20301
20816
|
}
|
|
20302
20817
|
}
|
|
20303
20818
|
if (e.visualContext.guides.length) {
|
|
20304
20819
|
t.push("", "Relevant guides");
|
|
20305
|
-
for (let n of e.visualContext.guides) t.push(`- ${n.orientation} ${n.orientation === "vertical" ? "x" : "y"}=${
|
|
20820
|
+
for (let n of e.visualContext.guides) t.push(`- ${n.orientation} ${n.orientation === "vertical" ? "x" : "y"}=${fS(n.position)}`);
|
|
20306
20821
|
}
|
|
20307
20822
|
if (e.visualContext.layoutGuides.length) {
|
|
20308
20823
|
t.push("", "Layout guides");
|
|
20309
20824
|
for (let n of e.visualContext.layoutGuides) {
|
|
20310
20825
|
if (!n.visible) continue;
|
|
20311
|
-
let e = n.kind === "grid" ? `grid ${
|
|
20826
|
+
let e = n.kind === "grid" ? `grid ${fS(n.size)}` : `${n.count} ${n.kind}; gutter=${fS(n.gutter)}; offset=${fS(n.offset)}; align=${n.align}`;
|
|
20312
20827
|
t.push(`- ${e}; color=${n.color}; opacity=${Math.round(n.opacity * 100)}%`);
|
|
20313
20828
|
}
|
|
20314
20829
|
}
|
|
20315
20830
|
if (e.visualContext.measurements.length) {
|
|
20316
20831
|
t.push("", "Relevant measurements");
|
|
20317
|
-
for (let n of e.visualContext.measurements) t.push(`- ${n.targetRef ? `${n.targetRef}: ` : ""}${
|
|
20832
|
+
for (let n of e.visualContext.measurements) t.push(`- ${n.targetRef ? `${n.targetRef}: ` : ""}${pS(n.rect)}; delta=${fS(n.deltaX)} × ${fS(n.deltaY)}`);
|
|
20318
20833
|
}
|
|
20319
20834
|
if (e.visualContext.distances.length) {
|
|
20320
20835
|
t.push("", "Relevant distances");
|
|
20321
20836
|
for (let n of e.visualContext.distances) {
|
|
20322
|
-
let e = [n.targetARef, n.targetBRef].filter(Boolean).join(" → "), r = [n.horizontal ? `horizontal=${
|
|
20837
|
+
let e = [n.targetARef, n.targetBRef].filter(Boolean).join(" → "), r = [n.horizontal ? `horizontal=${fS(n.horizontal.value)}` : null, n.vertical ? `vertical=${fS(n.vertical.value)}` : null].filter(Boolean).join("; ");
|
|
20323
20838
|
t.push(`- ${e ? `${e}: ` : ""}${r || "overlapping"}`);
|
|
20324
20839
|
}
|
|
20325
20840
|
}
|
|
20326
20841
|
return t.join("\n").trimEnd();
|
|
20327
20842
|
}
|
|
20328
|
-
function
|
|
20329
|
-
let t =
|
|
20843
|
+
function hS(e) {
|
|
20844
|
+
let t = Zx([
|
|
20330
20845
|
...e.regions,
|
|
20331
20846
|
...e.targets.map((e) => e.inspection.rect),
|
|
20332
20847
|
...e.visualContext.measurements.map((e) => e.rect),
|
|
@@ -20356,7 +20871,7 @@ function gS(e) {
|
|
|
20356
20871
|
captures: n
|
|
20357
20872
|
};
|
|
20358
20873
|
}
|
|
20359
|
-
var
|
|
20874
|
+
var gS = (e, t, n, r, i) => {
|
|
20360
20875
|
!Number.isFinite(r) || !Number.isFinite(i) || Math.abs(r - i) < .01 || e.push({
|
|
20361
20876
|
kind: t,
|
|
20362
20877
|
label: n,
|
|
@@ -20365,16 +20880,16 @@ var _S = (e, t, n, r, i) => {
|
|
|
20365
20880
|
delta: i - r,
|
|
20366
20881
|
unit: "px"
|
|
20367
20882
|
});
|
|
20368
|
-
},
|
|
20883
|
+
}, _S = (e, t, n, r) => e.push({
|
|
20369
20884
|
kind: "missing",
|
|
20370
20885
|
evidence: t,
|
|
20371
20886
|
id: n,
|
|
20372
20887
|
label: r
|
|
20373
|
-
}),
|
|
20374
|
-
function
|
|
20888
|
+
}), vS = (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;
|
|
20889
|
+
function yS(e) {
|
|
20375
20890
|
let t = e.runtime.annotation(e.annotationId);
|
|
20376
20891
|
if (!t) throw Error(`Mesurer annotation not found: ${e.annotationId}`);
|
|
20377
|
-
let n =
|
|
20892
|
+
let n = dS({
|
|
20378
20893
|
runtime: e.runtime,
|
|
20379
20894
|
ownerDocument: e.ownerDocument,
|
|
20380
20895
|
ownerWindow: e.ownerWindow,
|
|
@@ -20384,42 +20899,42 @@ function bS(e) {
|
|
|
20384
20899
|
if (n.scope.kind !== "annotation") throw Error("Mesurer annotation context invariant failed.");
|
|
20385
20900
|
let r = e.runtime.snapshot();
|
|
20386
20901
|
if (!r) throw Error("Mesurer workspace is not ready yet.");
|
|
20387
|
-
let i =
|
|
20902
|
+
let i = $x({
|
|
20388
20903
|
measurements: r.measurements,
|
|
20389
20904
|
activeMeasurement: r.activeMeasurement
|
|
20390
20905
|
}), a = [];
|
|
20391
20906
|
for (let e of t.baseline.targets) {
|
|
20392
20907
|
let t = n.targets.find((t) => t.ref === e.id);
|
|
20393
20908
|
if (!t) {
|
|
20394
|
-
|
|
20909
|
+
_S(a, "target", e.id, e.selector);
|
|
20395
20910
|
continue;
|
|
20396
20911
|
}
|
|
20397
|
-
|
|
20912
|
+
gS(a, "target-rect", `${t.inspection.selector} left`, e.rect.left, t.inspection.rect.left), gS(a, "target-rect", `${t.inspection.selector} top`, e.rect.top, t.inspection.rect.top), gS(a, "target-rect", `${t.inspection.selector} width`, e.rect.width, t.inspection.rect.width), gS(a, "target-rect", `${t.inspection.selector} height`, e.rect.height, t.inspection.rect.height);
|
|
20398
20913
|
}
|
|
20399
20914
|
for (let e of t.baseline.guides) {
|
|
20400
20915
|
let t = n.visualContext.guides.find((t) => t.id === e.id) ?? r.guides.find((t) => t.id === e.id);
|
|
20401
20916
|
if (!t) {
|
|
20402
|
-
|
|
20917
|
+
_S(a, "guide", e.id, `${e.orientation} guide ${e.id}`);
|
|
20403
20918
|
continue;
|
|
20404
20919
|
}
|
|
20405
|
-
|
|
20920
|
+
gS(a, "guide", `${e.orientation} guide ${e.id}`, e.position, t.position);
|
|
20406
20921
|
}
|
|
20407
20922
|
for (let e of t.baseline.measurements) {
|
|
20408
20923
|
let r = n.visualContext.measurements.find((t) => t.id === e.id) ?? i.find((t) => t.id === e.id);
|
|
20409
20924
|
if (!r) {
|
|
20410
|
-
let r = t.baseline.targets.find((t) =>
|
|
20411
|
-
r && n.targets.some((e) => e.ref === r.id) ||
|
|
20925
|
+
let r = t.baseline.targets.find((t) => vS(t.rect, e.rect));
|
|
20926
|
+
r && n.targets.some((e) => e.ref === r.id) || _S(a, "measurement", e.id, e.id);
|
|
20412
20927
|
continue;
|
|
20413
20928
|
}
|
|
20414
|
-
|
|
20929
|
+
gS(a, "measurement", `${e.id} width`, e.rect.width, r.rect.width), gS(a, "measurement", `${e.id} height`, e.rect.height, r.rect.height);
|
|
20415
20930
|
}
|
|
20416
20931
|
for (let e of t.baseline.distances) {
|
|
20417
20932
|
let t = n.visualContext.distances.find((t) => t.id === e.id) ?? r.heldDistances.find((t) => t.id === e.id);
|
|
20418
20933
|
if (!t) {
|
|
20419
|
-
|
|
20934
|
+
_S(a, "distance", e.id, e.id);
|
|
20420
20935
|
continue;
|
|
20421
20936
|
}
|
|
20422
|
-
e.horizontal && t.horizontal ?
|
|
20937
|
+
e.horizontal && t.horizontal ? gS(a, "distance", `${e.id} horizontal`, e.horizontal.value, t.horizontal.value) : e.horizontal && !t.horizontal && _S(a, "distance", e.id, `${e.id} horizontal`), e.vertical && t.vertical ? gS(a, "distance", `${e.id} vertical`, e.vertical.value, t.vertical.value) : e.vertical && !t.vertical && _S(a, "distance", e.id, `${e.id} vertical`);
|
|
20423
20938
|
}
|
|
20424
20939
|
return {
|
|
20425
20940
|
schema: "mesurer.review/v1",
|
|
@@ -20431,7 +20946,7 @@ function bS(e) {
|
|
|
20431
20946
|
changes: a
|
|
20432
20947
|
};
|
|
20433
20948
|
}
|
|
20434
|
-
async function
|
|
20949
|
+
async function bS(e, t, n) {
|
|
20435
20950
|
try {
|
|
20436
20951
|
if (t.navigator.clipboard?.writeText) {
|
|
20437
20952
|
await t.navigator.clipboard.writeText(n);
|
|
@@ -20445,43 +20960,43 @@ async function xS(e, t, n) {
|
|
|
20445
20960
|
}
|
|
20446
20961
|
//#endregion
|
|
20447
20962
|
//#region src/layout-guides.ts
|
|
20448
|
-
var
|
|
20963
|
+
var xS = Kv, SS = qv, CS = () => ({
|
|
20449
20964
|
...yy(),
|
|
20450
|
-
version:
|
|
20451
|
-
}),
|
|
20965
|
+
version: Gx
|
|
20966
|
+
}), wS = "mesurer.context", TS = "context:v1", ES = "mesurer.context.settings", DS = "context.ui", OS = "data-mesurer-direct-text-edit-active", kS = {
|
|
20452
20967
|
viewBox: "0 0 256 256",
|
|
20453
20968
|
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"]
|
|
20454
|
-
},
|
|
20969
|
+
}, AS = {
|
|
20455
20970
|
viewBox: "0 0 256 256",
|
|
20456
20971
|
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"]
|
|
20457
|
-
},
|
|
20972
|
+
}, jS = {
|
|
20458
20973
|
viewBox: "0 0 256 256",
|
|
20459
20974
|
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"]
|
|
20460
|
-
},
|
|
20975
|
+
}, MS = async (e, t, n = 1) => {
|
|
20461
20976
|
await e.fonts?.ready;
|
|
20462
20977
|
for (let e = 0; e < Math.max(1, n); e += 1) await new Promise((e) => t.requestAnimationFrame(() => e()));
|
|
20463
|
-
},
|
|
20464
|
-
let i = async (i) =>
|
|
20978
|
+
}, NS = (e, t, n, r) => {
|
|
20979
|
+
let i = async (i) => dS({
|
|
20465
20980
|
runtime: e,
|
|
20466
20981
|
ownerDocument: t,
|
|
20467
20982
|
ownerWindow: n,
|
|
20468
20983
|
request: i,
|
|
20469
20984
|
layoutGuides: r()
|
|
20470
|
-
}), a = async (e) =>
|
|
20985
|
+
}), a = async (e) => mS(await i(e));
|
|
20471
20986
|
return {
|
|
20472
20987
|
context: i,
|
|
20473
20988
|
contextText: a,
|
|
20474
|
-
copyContext: async (e) =>
|
|
20989
|
+
copyContext: async (e) => bS(t, n, await a(e)),
|
|
20475
20990
|
select: async (r) => {
|
|
20476
20991
|
let a = Array.isArray(r) ? [...r] : [String(r)];
|
|
20477
|
-
return e.select(a), await
|
|
20992
|
+
return e.select(a), await MS(t, n), i({ scope: "selection" });
|
|
20478
20993
|
},
|
|
20479
20994
|
annotations: async () => e.annotations(),
|
|
20480
20995
|
removeAnnotation: async (r) => {
|
|
20481
|
-
e.removeAnnotation(r), await
|
|
20996
|
+
e.removeAnnotation(r), await MS(t, n);
|
|
20482
20997
|
},
|
|
20483
20998
|
review: async (i) => {
|
|
20484
|
-
if (await
|
|
20999
|
+
if (await MS(t, n), i) return yS({
|
|
20485
21000
|
runtime: e,
|
|
20486
21001
|
ownerDocument: t,
|
|
20487
21002
|
ownerWindow: n,
|
|
@@ -20489,7 +21004,7 @@ var SS = Kv, CS = qv, wS = () => ({
|
|
|
20489
21004
|
layoutGuides: r()
|
|
20490
21005
|
});
|
|
20491
21006
|
let a = r();
|
|
20492
|
-
return e.annotations().map((r) =>
|
|
21007
|
+
return e.annotations().map((r) => yS({
|
|
20493
21008
|
runtime: e,
|
|
20494
21009
|
ownerDocument: t,
|
|
20495
21010
|
ownerWindow: n,
|
|
@@ -20497,38 +21012,38 @@ var SS = Kv, CS = qv, wS = () => ({
|
|
|
20497
21012
|
layoutGuides: a
|
|
20498
21013
|
}));
|
|
20499
21014
|
},
|
|
20500
|
-
capturePlan: async (e) =>
|
|
21015
|
+
capturePlan: async (e) => hS(await i(e)),
|
|
20501
21016
|
prepareCapture: async () => {
|
|
20502
|
-
e.prepareCapture(), await
|
|
21017
|
+
e.prepareCapture(), await MS(t, n);
|
|
20503
21018
|
},
|
|
20504
21019
|
finishCapture: async () => {
|
|
20505
|
-
e.finishCapture(), await
|
|
21020
|
+
e.finishCapture(), await MS(t, n);
|
|
20506
21021
|
}
|
|
20507
21022
|
};
|
|
20508
|
-
},
|
|
21023
|
+
}, PS = (e) => {
|
|
20509
21024
|
let t = e.currentSelection();
|
|
20510
21025
|
return t.elements.length > 0 || t.region !== null;
|
|
20511
21026
|
};
|
|
20512
|
-
function
|
|
21027
|
+
function FS(e = {}) {
|
|
20513
21028
|
return {
|
|
20514
|
-
id:
|
|
20515
|
-
version:
|
|
21029
|
+
id: wS,
|
|
21030
|
+
version: Gx,
|
|
20516
21031
|
requires: ["runtime:solid"],
|
|
20517
|
-
provides: [
|
|
21032
|
+
provides: [TS],
|
|
20518
21033
|
setup(t) {
|
|
20519
21034
|
let n = t.service.get("runtime:solid");
|
|
20520
21035
|
if (!n) throw Error("Mesurer context plugin requires the renderer runtime service.");
|
|
20521
|
-
let r = n.createWorkspaceRuntime(
|
|
20522
|
-
t.service.provide(
|
|
20523
|
-
id:
|
|
21036
|
+
let r = n.createWorkspaceRuntime(wS), i = NS(r, n.ownerDocument, n.ownerWindow, () => t.service.get(SS)?.list() ?? []);
|
|
21037
|
+
t.service.provide(TS, i), t.state.register({
|
|
21038
|
+
id: ES,
|
|
20524
21039
|
initial: { ui: e.ui ?? !0 },
|
|
20525
21040
|
persist: !0
|
|
20526
21041
|
}), t.state.register({
|
|
20527
|
-
id:
|
|
20528
|
-
initial: { hasSelection:
|
|
21042
|
+
id: DS,
|
|
21043
|
+
initial: { hasSelection: PS(r) }
|
|
20529
21044
|
});
|
|
20530
|
-
let a = () => t.state.get("mesurer.context.settings")?.ui ?? !0, o = () => t.state.get(
|
|
20531
|
-
t.state.update(
|
|
21045
|
+
let a = () => t.state.get("mesurer.context.settings")?.ui ?? !0, o = () => t.state.get(DS)?.hasSelection === !0, s = (e) => {
|
|
21046
|
+
t.state.update(ES, (t) => ({
|
|
20532
21047
|
...t,
|
|
20533
21048
|
ui: e
|
|
20534
21049
|
}));
|
|
@@ -20542,12 +21057,12 @@ function IS(e = {}) {
|
|
|
20542
21057
|
region: e.region ? { ...e.region } : null
|
|
20543
21058
|
}, r.selectGestureActive() ? c?.abandonNoteComposer() : n && c?.closeNoteComposer();
|
|
20544
21059
|
let i = e.elements.length > 0 || e.region !== null;
|
|
20545
|
-
i !== (t.state.get(
|
|
21060
|
+
i !== (t.state.get(DS)?.hasSelection ?? !1) && t.state.update(DS, () => ({ hasSelection: i }));
|
|
20546
21061
|
});
|
|
20547
21062
|
t.command.register("context.copy", () => i.copyContext()), t.command.register("context.copy-selection", () => i.copyContext({ scope: "selection" }));
|
|
20548
21063
|
let g = () => {
|
|
20549
21064
|
let e = u?.element;
|
|
20550
|
-
e && (n.rendererRoot?.hasAttribute(
|
|
21065
|
+
e && (n.rendererRoot?.hasAttribute(OS) ? e.setAttribute(OS, "true") : e.removeAttribute(OS));
|
|
20551
21066
|
}, _ = () => {
|
|
20552
21067
|
d?.disconnect(), d = null, c = null, l?.(), l = null, u?.dispose(), u = null;
|
|
20553
21068
|
}, v = () => {
|
|
@@ -20556,7 +21071,7 @@ function IS(e = {}) {
|
|
|
20556
21071
|
let e = new n.ownerWindow.MutationObserver(g);
|
|
20557
21072
|
d = e, e.observe(n.rendererRoot, {
|
|
20558
21073
|
attributes: !0,
|
|
20559
|
-
attributeFilter: [
|
|
21074
|
+
attributeFilter: [OS]
|
|
20560
21075
|
}), g();
|
|
20561
21076
|
}
|
|
20562
21077
|
let e = {
|
|
@@ -20580,7 +21095,7 @@ function IS(e = {}) {
|
|
|
20580
21095
|
command: "context.copy",
|
|
20581
21096
|
order: 70,
|
|
20582
21097
|
toolbarMode: "always",
|
|
20583
|
-
icon:
|
|
21098
|
+
icon: kS,
|
|
20584
21099
|
hidden: () => !a()
|
|
20585
21100
|
}), t.tool.register({
|
|
20586
21101
|
id: "context.copy-selection",
|
|
@@ -20589,7 +21104,7 @@ function IS(e = {}) {
|
|
|
20589
21104
|
command: "context.copy-selection",
|
|
20590
21105
|
order: 71,
|
|
20591
21106
|
toolbarMode: "always",
|
|
20592
|
-
icon:
|
|
21107
|
+
icon: AS,
|
|
20593
21108
|
hidden: () => !a(),
|
|
20594
21109
|
disabled: () => !o()
|
|
20595
21110
|
}), t.tool.register({
|
|
@@ -20599,7 +21114,7 @@ function IS(e = {}) {
|
|
|
20599
21114
|
command: "context.add-note",
|
|
20600
21115
|
order: 72,
|
|
20601
21116
|
toolbarMode: "always",
|
|
20602
|
-
icon:
|
|
21117
|
+
icon: jS,
|
|
20603
21118
|
hidden: () => !a(),
|
|
20604
21119
|
disabled: () => !o()
|
|
20605
21120
|
}), t.settings.register({
|
|
@@ -20622,7 +21137,7 @@ function IS(e = {}) {
|
|
|
20622
21137
|
}
|
|
20623
21138
|
//#endregion
|
|
20624
21139
|
//#region src/host-layer.ts
|
|
20625
|
-
var
|
|
21140
|
+
var IS = {
|
|
20626
21141
|
display: "block",
|
|
20627
21142
|
position: "fixed",
|
|
20628
21143
|
inset: "0",
|
|
@@ -20638,7 +21153,7 @@ var LS = {
|
|
|
20638
21153
|
overflow: "visible",
|
|
20639
21154
|
background: "transparent",
|
|
20640
21155
|
"box-sizing": "border-box",
|
|
20641
|
-
"pointer-events": "
|
|
21156
|
+
"pointer-events": "none",
|
|
20642
21157
|
"z-index": "2147483647",
|
|
20643
21158
|
opacity: "1",
|
|
20644
21159
|
visibility: "visible",
|
|
@@ -20664,48 +21179,48 @@ var LS = {
|
|
|
20664
21179
|
"letter-spacing": "normal",
|
|
20665
21180
|
direction: "ltr"
|
|
20666
21181
|
};
|
|
20667
|
-
function
|
|
20668
|
-
for (let [t, n] of Object.entries(
|
|
21182
|
+
function LS(e) {
|
|
21183
|
+
for (let [t, n] of Object.entries(IS)) e.style.setProperty(t, n, "important");
|
|
20669
21184
|
}
|
|
20670
|
-
function
|
|
21185
|
+
function RS(e) {
|
|
20671
21186
|
return "popover" in e && "showPopover" in e && typeof e.showPopover == "function" && "hidePopover" in e && typeof e.hidePopover == "function";
|
|
20672
21187
|
}
|
|
20673
|
-
var
|
|
20674
|
-
function
|
|
20675
|
-
if (!
|
|
21188
|
+
var zS = (e) => "newState" in e, BS = (e) => e.localName === "dialog";
|
|
21189
|
+
function VS(e) {
|
|
21190
|
+
if (!BS(e) || !e.open) return !1;
|
|
20676
21191
|
try {
|
|
20677
21192
|
return e.matches(":modal");
|
|
20678
21193
|
} catch {
|
|
20679
21194
|
return !1;
|
|
20680
21195
|
}
|
|
20681
21196
|
}
|
|
20682
|
-
function
|
|
20683
|
-
|
|
21197
|
+
function HS(e, t, n = !0) {
|
|
21198
|
+
LS(e);
|
|
20684
21199
|
let r = e.ownerDocument, i = r.defaultView ?? window, a = t, o = !1, s = "fixed", c = !1, l = 0, u = [];
|
|
20685
|
-
if (n &&
|
|
21200
|
+
if (n && RS(e) && (e.popover = "manual"), t.append(e), n && RS(e)) try {
|
|
20686
21201
|
e.showPopover(), c = e.matches(":popover-open"), c && (s = "top-layer");
|
|
20687
21202
|
} catch {
|
|
20688
21203
|
e.removeAttribute("popover");
|
|
20689
21204
|
}
|
|
20690
21205
|
let d = () => {
|
|
20691
|
-
if (!(!c || !
|
|
21206
|
+
if (!(!c || !RS(e))) try {
|
|
20692
21207
|
e.matches(":popover-open") || e.showPopover();
|
|
20693
21208
|
} catch {}
|
|
20694
21209
|
}, f = (t) => {
|
|
20695
21210
|
if (e.parentNode === t) return;
|
|
20696
|
-
let n = c &&
|
|
20697
|
-
if (n &&
|
|
21211
|
+
let n = c && RS(e) && e.matches(":popover-open");
|
|
21212
|
+
if (n && RS(e)) try {
|
|
20698
21213
|
e.hidePopover();
|
|
20699
21214
|
} catch {}
|
|
20700
|
-
t.append(e),
|
|
21215
|
+
t.append(e), LS(e), n && d();
|
|
20701
21216
|
}, p = () => {
|
|
20702
|
-
u = u.filter((e) => e.isConnected &&
|
|
21217
|
+
u = u.filter((e) => e.isConnected && VS(e)), f(u.at(-1) ?? a);
|
|
20703
21218
|
}, m = (e) => {
|
|
20704
21219
|
u = u.filter((t) => t !== e), u.push(e), p();
|
|
20705
21220
|
}, h = (e) => {
|
|
20706
21221
|
u = u.filter((t) => t !== e), p();
|
|
20707
21222
|
}, g = () => {
|
|
20708
|
-
if (!(o || !c || !
|
|
21223
|
+
if (!(o || !c || !RS(e))) try {
|
|
20709
21224
|
e.matches(":popover-open") && e.hidePopover(), e.showPopover();
|
|
20710
21225
|
} catch {}
|
|
20711
21226
|
}, _ = () => {
|
|
@@ -20714,27 +21229,27 @@ function US(e, t, n = !0) {
|
|
|
20714
21229
|
}));
|
|
20715
21230
|
}, v = (t) => {
|
|
20716
21231
|
if (!c || t.target === e) return;
|
|
20717
|
-
let n =
|
|
21232
|
+
let n = zS(t) ? t.newState : void 0, r = t.target;
|
|
20718
21233
|
if (r instanceof i.Element) {
|
|
20719
|
-
if (
|
|
20720
|
-
n === "open" &&
|
|
21234
|
+
if (BS(r)) {
|
|
21235
|
+
n === "open" && VS(r) ? (m(r), _()) : n === "closed" ? h(r) : n === "open" && _();
|
|
20721
21236
|
return;
|
|
20722
21237
|
}
|
|
20723
21238
|
n === "open" && r.hasAttribute("popover") && _();
|
|
20724
21239
|
}
|
|
20725
21240
|
}, y = (e) => {
|
|
20726
21241
|
let t = e.target;
|
|
20727
|
-
t instanceof i.Element &&
|
|
21242
|
+
t instanceof i.Element && BS(t) && h(t);
|
|
20728
21243
|
}, b = () => {
|
|
20729
21244
|
r.fullscreenElement && _();
|
|
20730
21245
|
}, x = (e) => {
|
|
20731
|
-
|
|
20732
|
-
for (let t of e.querySelectorAll("dialog"))
|
|
21246
|
+
VS(e) && m(e);
|
|
21247
|
+
for (let t of e.querySelectorAll("dialog")) VS(t) && m(t);
|
|
20733
21248
|
}, S = new i.MutationObserver((e) => {
|
|
20734
21249
|
if (c) for (let t of e) {
|
|
20735
21250
|
if (t.type === "attributes") {
|
|
20736
21251
|
let e = t.target;
|
|
20737
|
-
e instanceof i.Element &&
|
|
21252
|
+
e instanceof i.Element && BS(e) && (VS(e) ? m(e) : h(e));
|
|
20738
21253
|
}
|
|
20739
21254
|
for (let e of t.addedNodes) e instanceof i.Element && x(e);
|
|
20740
21255
|
u.some((e) => !e.isConnected) && p();
|
|
@@ -20750,7 +21265,7 @@ function US(e, t, n = !0) {
|
|
|
20750
21265
|
bringToFront: g,
|
|
20751
21266
|
dispose() {
|
|
20752
21267
|
if (!o) {
|
|
20753
|
-
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 &&
|
|
21268
|
+
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 && RS(e) && e.matches(":popover-open")) try {
|
|
20754
21269
|
e.hidePopover();
|
|
20755
21270
|
} catch {}
|
|
20756
21271
|
u = [];
|
|
@@ -20760,28 +21275,28 @@ function US(e, t, n = !0) {
|
|
|
20760
21275
|
}
|
|
20761
21276
|
//#endregion
|
|
20762
21277
|
//#region src/plugins/codex/index.ts
|
|
20763
|
-
var
|
|
21278
|
+
var US = "mesurer.codex", WS = "codex:v1", GS = "mesurer.plugin.before-disable", KS = 2e3, qS = 750, JS = 1800, YS = 2e3, XS = 12e4, ZS = 10, QS = 5, $S = "Codex host connection is unavailable. Electron apps must expose window.__MESURER_HOST__.codexBridge from preload.", eC = [
|
|
20764
21279
|
"Implement the current human feedback from Mesurer in this project.",
|
|
20765
21280
|
"Treat the rendered page as the source of truth, preserve unrelated Mesurer review state,",
|
|
20766
21281
|
"and verify the affected UI in the live page with Mesurer before claiming completion."
|
|
20767
|
-
].join(" "),
|
|
21282
|
+
].join(" "), tC = {
|
|
20768
21283
|
viewBox: "0 0 256 256",
|
|
20769
21284
|
paths: ["M224,48,32,120l88,32,32,88Z M120,152l104-104"]
|
|
20770
|
-
},
|
|
21285
|
+
}, nC = {
|
|
20771
21286
|
viewBox: "0 0 256 256",
|
|
20772
21287
|
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"]
|
|
20773
|
-
},
|
|
21288
|
+
}, rC = {
|
|
20774
21289
|
viewBox: "0 0 256 256",
|
|
20775
21290
|
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"]
|
|
20776
|
-
},
|
|
21291
|
+
}, iC = () => {
|
|
20777
21292
|
try {
|
|
20778
21293
|
let e = globalThis.location;
|
|
20779
21294
|
return e?.origin ? `mesurer-codex-ui:v2:${e.origin}${e.pathname}` : null;
|
|
20780
21295
|
} catch {
|
|
20781
21296
|
return null;
|
|
20782
21297
|
}
|
|
20783
|
-
},
|
|
20784
|
-
let e =
|
|
21298
|
+
}, aC = () => {
|
|
21299
|
+
let e = iC();
|
|
20785
21300
|
if (!e) return null;
|
|
20786
21301
|
try {
|
|
20787
21302
|
let t = globalThis.sessionStorage?.getItem(e);
|
|
@@ -20806,18 +21321,18 @@ var WS = "mesurer.codex", GS = "codex:v1", KS = "mesurer.plugin.before-disable",
|
|
|
20806
21321
|
} catch {
|
|
20807
21322
|
return null;
|
|
20808
21323
|
}
|
|
20809
|
-
},
|
|
20810
|
-
let t =
|
|
21324
|
+
}, oC = (e) => {
|
|
21325
|
+
let t = iC();
|
|
20811
21326
|
if (t) try {
|
|
20812
21327
|
globalThis.sessionStorage?.setItem(t, JSON.stringify(e));
|
|
20813
21328
|
} catch {}
|
|
20814
|
-
},
|
|
21329
|
+
}, sC = async (e) => {
|
|
20815
21330
|
let t = window.__MESURER_HOST__?.codexBridge;
|
|
20816
|
-
if (!t) throw Error(
|
|
21331
|
+
if (!t) throw Error($S);
|
|
20817
21332
|
let n = await t(e);
|
|
20818
21333
|
if (n.ok === !1) throw Error(n.error ?? "Codex Bridge request failed.");
|
|
20819
21334
|
return n;
|
|
20820
|
-
},
|
|
21335
|
+
}, cC = (e) => {
|
|
20821
21336
|
let t = e.runtime;
|
|
20822
21337
|
return !t || ![
|
|
20823
21338
|
"shared",
|
|
@@ -20835,10 +21350,10 @@ var WS = "mesurer.codex", GS = "codex:v1", KS = "mesurer.plugin.before-disable",
|
|
|
20835
21350
|
available: t.available === !0,
|
|
20836
21351
|
reason: t.reason
|
|
20837
21352
|
};
|
|
20838
|
-
},
|
|
21353
|
+
}, lC = (e) => ({
|
|
20839
21354
|
thread: e.thread?.trim() || null,
|
|
20840
21355
|
threads: Array.isArray(e.threads) ? e.threads.filter((e) => e.trim().length > 0) : []
|
|
20841
|
-
}),
|
|
21356
|
+
}), uC = (e) => {
|
|
20842
21357
|
let t = e.deliveryId?.trim(), n = e.thread?.trim(), r = e.status;
|
|
20843
21358
|
if (!t || !n || !r) throw Error("Codex Bridge returned an invalid delivery state.");
|
|
20844
21359
|
let i = {
|
|
@@ -20850,7 +21365,7 @@ var WS = "mesurer.codex", GS = "codex:v1", KS = "mesurer.plugin.before-disable",
|
|
|
20850
21365
|
updatedAt: Number.isFinite(e.updatedAt) ? Number(e.updatedAt) : 0
|
|
20851
21366
|
};
|
|
20852
21367
|
return e.queuedSubmissionId !== void 0 && (i.queuedSubmissionId = e.queuedSubmissionId?.trim() || null), e.dispatch !== void 0 && (i.dispatch = e.dispatch), e.dispatchError !== void 0 && (i.dispatchError = e.dispatchError?.trim() || null), i;
|
|
20853
|
-
},
|
|
21368
|
+
}, dC = (e) => ({
|
|
20854
21369
|
thread: e.thread?.trim() || null,
|
|
20855
21370
|
threads: Array.isArray(e.threadDetails) ? e.threadDetails.flatMap((e) => {
|
|
20856
21371
|
let t = e.id?.trim() ?? "";
|
|
@@ -20862,7 +21377,7 @@ var WS = "mesurer.codex", GS = "codex:v1", KS = "mesurer.plugin.before-disable",
|
|
|
20862
21377
|
}] : [];
|
|
20863
21378
|
}) : [],
|
|
20864
21379
|
hasMore: e.hasMore === !0
|
|
20865
|
-
}),
|
|
21380
|
+
}), fC = async (e, t, n) => {
|
|
20866
21381
|
let r = t?.instruction?.trim() || n, i = await e.annotations(), a = t?.annotationIds, o = a ? a.flatMap((e) => {
|
|
20867
21382
|
let t = i.find((t) => t.id === e);
|
|
20868
21383
|
return t ? [t] : [];
|
|
@@ -20885,18 +21400,18 @@ var WS = "mesurer.codex", GS = "codex:v1", KS = "mesurer.plugin.before-disable",
|
|
|
20885
21400
|
])
|
|
20886
21401
|
].join("\n").trimEnd()
|
|
20887
21402
|
};
|
|
20888
|
-
},
|
|
20889
|
-
function
|
|
20890
|
-
let t = e.instruction?.trim() ||
|
|
21403
|
+
}, pC = (e) => e.length > 16 ? `${e.slice(0, 8)}…${e.slice(-4)}` : e, mC = (e, t = 42) => e.length > t ? `${e.slice(0, t - 1)}…` : e, hC = (e) => e instanceof Error && (e.message === $S || e.message === "Codex Bridge is unavailable in this host." || e.message.includes("Codex Bridge lease"));
|
|
21404
|
+
function gC(e = {}) {
|
|
21405
|
+
let t = e.instruction?.trim() || eC, n = e.ui ?? !0, r = e.clearCompletedAnnotations ?? !0;
|
|
20891
21406
|
return {
|
|
20892
|
-
id:
|
|
20893
|
-
version:
|
|
20894
|
-
requires: [
|
|
20895
|
-
provides: [
|
|
21407
|
+
id: US,
|
|
21408
|
+
version: Gx,
|
|
21409
|
+
requires: [TS],
|
|
21410
|
+
provides: [WS],
|
|
20896
21411
|
async setup(e) {
|
|
20897
|
-
let i = e.service.get(
|
|
21412
|
+
let i = e.service.get(TS);
|
|
20898
21413
|
if (!i) throw Error("Mesurer Codex plugin requires context() from mesurer-solid/plugins.");
|
|
20899
|
-
let a = n ?
|
|
21414
|
+
let a = n ? aC() : 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 = QS, _, v = "", y = null, b = a?.delivery ? {
|
|
20900
21415
|
id: a.delivery.id,
|
|
20901
21416
|
thread: a.delivery.thread,
|
|
20902
21417
|
status: a.delivery.status,
|
|
@@ -20905,38 +21420,38 @@ function _C(e = {}) {
|
|
|
20905
21420
|
dispatch: a.delivery.dispatch ?? null,
|
|
20906
21421
|
dispatchError: a.delivery.dispatchError ?? null
|
|
20907
21422
|
} : null, x = 0, S = 0, C = null, w = !1, T = null, E = async (e) => {
|
|
20908
|
-
if (e.action === "activate" || e.action === "runtime") return
|
|
21423
|
+
if (e.action === "activate" || e.action === "runtime") return sC(e);
|
|
20909
21424
|
if (!T) throw Error("Codex Bridge lease is not active for this plugin.");
|
|
20910
|
-
return
|
|
21425
|
+
return sC({
|
|
20911
21426
|
...e,
|
|
20912
21427
|
leaseId: T
|
|
20913
21428
|
});
|
|
20914
21429
|
}, D = async () => {
|
|
20915
21430
|
let e = T;
|
|
20916
21431
|
if (e) {
|
|
20917
|
-
if ((await
|
|
21432
|
+
if ((await sC({
|
|
20918
21433
|
action: "deactivate",
|
|
20919
21434
|
leaseId: e
|
|
20920
21435
|
})).released !== !0) throw Error("Codex Bridge did not confirm lease release.");
|
|
20921
21436
|
T = null;
|
|
20922
21437
|
}
|
|
20923
|
-
}, O = await
|
|
21438
|
+
}, O = await sC({
|
|
20924
21439
|
action: "activate",
|
|
20925
21440
|
thread: u ?? l ?? void 0
|
|
20926
21441
|
}), k = O.leaseId?.trim();
|
|
20927
21442
|
if (!k) throw Error("Codex Bridge did not return an activation lease.");
|
|
20928
|
-
T = k, o = "available", s =
|
|
20929
|
-
let A =
|
|
21443
|
+
T = k, o = "available", s = cC(O);
|
|
21444
|
+
let A = lC(O);
|
|
20930
21445
|
c = !0, f = A.thread, p = A.threads, e.lifecycle.onDispose(() => {
|
|
20931
21446
|
T && D().catch((e) => {
|
|
20932
21447
|
let t = e instanceof Error ? e.message : String(e);
|
|
20933
21448
|
console.error(`[Mesurer] Failed to release Codex host lease: ${t}`);
|
|
20934
21449
|
});
|
|
20935
|
-
}), e.hook.on(
|
|
21450
|
+
}), e.hook.on(GS, async (e) => {
|
|
20936
21451
|
e === "mesurer.codex" && await D();
|
|
20937
21452
|
});
|
|
20938
21453
|
let j = async () => {
|
|
20939
|
-
let e =
|
|
21454
|
+
let e = cC(await E({ action: "runtime" }));
|
|
20940
21455
|
if (!e) throw Error("Codex Bridge returned an invalid runtime state.");
|
|
20941
21456
|
return s = e, e;
|
|
20942
21457
|
}, M = async () => {
|
|
@@ -20944,8 +21459,8 @@ function _C(e = {}) {
|
|
|
20944
21459
|
action: "health",
|
|
20945
21460
|
thread: u ?? l ?? void 0
|
|
20946
21461
|
});
|
|
20947
|
-
return s =
|
|
20948
|
-
}, N = M, P = async (e) =>
|
|
21462
|
+
return s = cC(e) ?? s, lC(e);
|
|
21463
|
+
}, N = M, P = async (e) => uC(await E({
|
|
20949
21464
|
action: "delivery",
|
|
20950
21465
|
deliveryId: e
|
|
20951
21466
|
})), F = async (e) => {
|
|
@@ -20955,13 +21470,13 @@ function _C(e = {}) {
|
|
|
20955
21470
|
deliveryId: e.id,
|
|
20956
21471
|
thread: e.thread
|
|
20957
21472
|
};
|
|
20958
|
-
return e.queuedSubmissionId && (t.queuedSubmissionId = e.queuedSubmissionId),
|
|
21473
|
+
return e.queuedSubmissionId && (t.queuedSubmissionId = e.queuedSubmissionId), uC(await E(t));
|
|
20959
21474
|
}, I = async (e = {}) => {
|
|
20960
21475
|
let t = {
|
|
20961
21476
|
action: "threads",
|
|
20962
|
-
limit: e.limit ??
|
|
21477
|
+
limit: e.limit ?? ZS
|
|
20963
21478
|
}, n = e.thread?.trim();
|
|
20964
|
-
return n && (t.thread = n),
|
|
21479
|
+
return n && (t.thread = n), dC(await E(t));
|
|
20965
21480
|
}, L = () => u ?? l ?? (d ? null : f), R = () => {
|
|
20966
21481
|
if (!n) return;
|
|
20967
21482
|
let e = b?.id && (b.status === "queued" || b.status === "working" || b.status === "interrupted") ? {
|
|
@@ -20973,7 +21488,7 @@ function _C(e = {}) {
|
|
|
20973
21488
|
dispatch: b.dispatch,
|
|
20974
21489
|
dispatchError: b.dispatchError
|
|
20975
21490
|
} : null;
|
|
20976
|
-
|
|
21491
|
+
oC({
|
|
20977
21492
|
version: 1,
|
|
20978
21493
|
originThread: l,
|
|
20979
21494
|
selectedThread: u,
|
|
@@ -20991,12 +21506,12 @@ function _C(e = {}) {
|
|
|
20991
21506
|
"queueing",
|
|
20992
21507
|
"queued",
|
|
20993
21508
|
"working"
|
|
20994
|
-
].includes(b.status) ?
|
|
21509
|
+
].includes(b.status) ? nC : b.status === "completed" ? rC : tC : tC, ee = () => {
|
|
20995
21510
|
let e = [], t = /* @__PURE__ */ new Set(), n = (n) => {
|
|
20996
21511
|
t.has(n.id) || (t.add(n.id), e.push(n));
|
|
20997
21512
|
}, r = (e) => ({
|
|
20998
21513
|
id: e,
|
|
20999
|
-
title: `Codex ${
|
|
21514
|
+
title: `Codex ${pC(e)}`,
|
|
21000
21515
|
updatedAt: null,
|
|
21001
21516
|
connected: !0
|
|
21002
21517
|
});
|
|
@@ -21024,7 +21539,7 @@ function _C(e = {}) {
|
|
|
21024
21539
|
let t = e.id === l ? "Current · " : e.connected ? "Loaded · " : "", r = b?.thread === e.id ? ` · ${V(b.status)}` : "";
|
|
21025
21540
|
return {
|
|
21026
21541
|
id: `codex.thread.${e.id}`,
|
|
21027
|
-
label: `${t}${
|
|
21542
|
+
label: `${t}${mC(e.title)}${r}`,
|
|
21028
21543
|
checked: () => n === e.id,
|
|
21029
21544
|
disabled: () => B(),
|
|
21030
21545
|
run() {
|
|
@@ -21032,15 +21547,15 @@ function _C(e = {}) {
|
|
|
21032
21547
|
}
|
|
21033
21548
|
};
|
|
21034
21549
|
});
|
|
21035
|
-
return g <
|
|
21550
|
+
return g < ZS && (e.length > g || h) && r.push({
|
|
21036
21551
|
id: "codex.thread.show-more",
|
|
21037
21552
|
label: "Show 5 more…",
|
|
21038
21553
|
run() {
|
|
21039
|
-
g =
|
|
21554
|
+
g = ZS, W();
|
|
21040
21555
|
}
|
|
21041
21556
|
}), b?.queuedSubmissionId && b.status === "queued" && (b.dispatch === "desktop-opened" || b.dispatch === "desktop-wake-failed") && r.push({
|
|
21042
21557
|
id: "codex.delivery.receipt",
|
|
21043
|
-
label: `Receipt · ${
|
|
21558
|
+
label: `Receipt · ${pC(b.queuedSubmissionId)}`,
|
|
21044
21559
|
disabled: () => !0,
|
|
21045
21560
|
run: () => void 0
|
|
21046
21561
|
}), r;
|
|
@@ -21077,7 +21592,7 @@ function _C(e = {}) {
|
|
|
21077
21592
|
}, re = async (e) => {
|
|
21078
21593
|
if (o !== "available") return;
|
|
21079
21594
|
let t = await I({
|
|
21080
|
-
limit:
|
|
21595
|
+
limit: ZS,
|
|
21081
21596
|
thread: e ?? void 0
|
|
21082
21597
|
});
|
|
21083
21598
|
m = t.threads, h = t.hasMore, p = t.threads.filter((e) => e.connected).map((e) => e.id), f = t.thread;
|
|
@@ -21099,7 +21614,7 @@ function _C(e = {}) {
|
|
|
21099
21614
|
}, ae = () => {
|
|
21100
21615
|
S && globalThis.clearTimeout(S), S = globalThis.setTimeout(() => {
|
|
21101
21616
|
S = 0, b?.status === "completed" && (b = null, R(), W());
|
|
21102
|
-
},
|
|
21617
|
+
}, JS);
|
|
21103
21618
|
}, oe = async (e) => {
|
|
21104
21619
|
if (!(!b || b.id !== e.id)) {
|
|
21105
21620
|
if (b = {
|
|
@@ -21121,14 +21636,14 @@ function _C(e = {}) {
|
|
|
21121
21636
|
if (e.status === "interrupted") {
|
|
21122
21637
|
R(), W();
|
|
21123
21638
|
let t = e.updatedAt > 0 ? e.updatedAt : Date.now();
|
|
21124
|
-
Date.now() - t <
|
|
21639
|
+
Date.now() - t < XS && (x = globalThis.setTimeout(() => {
|
|
21125
21640
|
x = 0, se(e.id);
|
|
21126
|
-
},
|
|
21641
|
+
}, YS));
|
|
21127
21642
|
return;
|
|
21128
21643
|
}
|
|
21129
21644
|
W(), x = globalThis.setTimeout(() => {
|
|
21130
21645
|
x = 0, se(e.id);
|
|
21131
|
-
},
|
|
21646
|
+
}, qS);
|
|
21132
21647
|
}
|
|
21133
21648
|
}, se = async (e) => {
|
|
21134
21649
|
if (!(w || b?.id !== e)) try {
|
|
@@ -21152,7 +21667,7 @@ function _C(e = {}) {
|
|
|
21152
21667
|
b = {
|
|
21153
21668
|
...b,
|
|
21154
21669
|
status: "failed"
|
|
21155
|
-
}, R(),
|
|
21670
|
+
}, R(), hC(n) && (o = "unavailable"), W();
|
|
21156
21671
|
}
|
|
21157
21672
|
}, ce = {
|
|
21158
21673
|
health: M,
|
|
@@ -21164,11 +21679,11 @@ function _C(e = {}) {
|
|
|
21164
21679
|
let n = await E({
|
|
21165
21680
|
action: "target",
|
|
21166
21681
|
thread: t
|
|
21167
|
-
}), r =
|
|
21168
|
-
return s =
|
|
21682
|
+
}), r = lC(n);
|
|
21683
|
+
return s = cC(n) ?? s, z(t, !l), f = r.thread, p = r.threads, o = "available", c = !0, W(), r;
|
|
21169
21684
|
},
|
|
21170
21685
|
async queue(e) {
|
|
21171
|
-
let r = await
|
|
21686
|
+
let r = await fC(i, e, t), a = e?.thread?.trim(), s = a || (n ? L() : null);
|
|
21172
21687
|
if (n && !a && (d || !s)) throw Error("Choose a Codex thread before queueing feedback.");
|
|
21173
21688
|
let c = { message: r.message };
|
|
21174
21689
|
s && (c.thread = s);
|
|
@@ -21188,14 +21703,14 @@ function _C(e = {}) {
|
|
|
21188
21703
|
};
|
|
21189
21704
|
return e.queuedSubmissionId !== void 0 && (n.queuedSubmissionId = e.queuedSubmissionId?.trim() || null), e.dispatch !== void 0 && (n.dispatch = e.dispatch), e.dispatchError !== void 0 && (n.dispatchError = e.dispatchError?.trim() || null), n;
|
|
21190
21705
|
} catch (e) {
|
|
21191
|
-
throw n &&
|
|
21706
|
+
throw n && hC(e) && (o = "unavailable", W()), e;
|
|
21192
21707
|
}
|
|
21193
21708
|
},
|
|
21194
21709
|
send(e) {
|
|
21195
21710
|
return ce.queue(e);
|
|
21196
21711
|
}
|
|
21197
21712
|
};
|
|
21198
|
-
e.service.provide(
|
|
21713
|
+
e.service.provide(WS, ce);
|
|
21199
21714
|
let le = async () => {
|
|
21200
21715
|
if (!(C || B())) return ie(), b = {
|
|
21201
21716
|
id: null,
|
|
@@ -21226,9 +21741,9 @@ function _C(e = {}) {
|
|
|
21226
21741
|
updatedAt: 0
|
|
21227
21742
|
}) : x = globalThis.setTimeout(() => {
|
|
21228
21743
|
x = 0, se(e.deliveryId);
|
|
21229
|
-
},
|
|
21744
|
+
}, qS) : S = globalThis.setTimeout(() => {
|
|
21230
21745
|
S = 0, b?.id === null && b?.status === "queued" && (b = null, R(), W());
|
|
21231
|
-
},
|
|
21746
|
+
}, JS);
|
|
21232
21747
|
} catch (e) {
|
|
21233
21748
|
b = null, R(), W();
|
|
21234
21749
|
let t = e instanceof Error ? e.message : String(e);
|
|
@@ -21256,7 +21771,7 @@ function _C(e = {}) {
|
|
|
21256
21771
|
}, 0));
|
|
21257
21772
|
let t = globalThis.setInterval(() => {
|
|
21258
21773
|
c && te().catch(() => void 0);
|
|
21259
|
-
},
|
|
21774
|
+
}, KS);
|
|
21260
21775
|
e.lifecycle.onDispose(() => {
|
|
21261
21776
|
w = !0, ie(), globalThis.clearInterval(t), _?.dispose(), _ = void 0;
|
|
21262
21777
|
});
|
|
@@ -21266,66 +21781,66 @@ function _C(e = {}) {
|
|
|
21266
21781
|
}
|
|
21267
21782
|
//#endregion
|
|
21268
21783
|
//#region src/recording.ts
|
|
21269
|
-
var
|
|
21270
|
-
...
|
|
21271
|
-
version:
|
|
21272
|
-
}),
|
|
21273
|
-
...
|
|
21274
|
-
version:
|
|
21275
|
-
}),
|
|
21784
|
+
var _C = mb, vC = (e = {}) => ({
|
|
21785
|
+
...Ib(e),
|
|
21786
|
+
version: Gx
|
|
21787
|
+
}), yC = Jb, bC = (e = {}) => ({
|
|
21788
|
+
...mx(e),
|
|
21789
|
+
version: Gx
|
|
21790
|
+
}), xC = () => globalThis.window?.__MESURER_HOST__?.codexBridge !== void 0, SC = [
|
|
21276
21791
|
{
|
|
21277
|
-
id:
|
|
21792
|
+
id: wS,
|
|
21278
21793
|
label: "Context",
|
|
21279
21794
|
order: 30,
|
|
21280
|
-
create:
|
|
21795
|
+
create: FS,
|
|
21281
21796
|
settingsIds: ["context"],
|
|
21282
21797
|
hiddenSettingsControlIds: ["ui"]
|
|
21283
21798
|
},
|
|
21284
21799
|
{
|
|
21285
|
-
id:
|
|
21800
|
+
id: Kx,
|
|
21286
21801
|
label: "Edit",
|
|
21287
21802
|
order: 35,
|
|
21288
|
-
create:
|
|
21803
|
+
create: Jx,
|
|
21289
21804
|
settingsIds: ["arrange"]
|
|
21290
21805
|
},
|
|
21291
21806
|
{
|
|
21292
|
-
id:
|
|
21807
|
+
id: xS,
|
|
21293
21808
|
label: "Layout Guides",
|
|
21294
21809
|
order: 38,
|
|
21295
|
-
create:
|
|
21810
|
+
create: CS
|
|
21296
21811
|
},
|
|
21297
21812
|
{
|
|
21298
|
-
id:
|
|
21813
|
+
id: yC,
|
|
21299
21814
|
label: "Screenshot",
|
|
21300
21815
|
order: 40,
|
|
21301
|
-
create:
|
|
21816
|
+
create: bC,
|
|
21302
21817
|
settingsIds: ["screenshot"],
|
|
21303
21818
|
hiddenSettingsControlIds: ["tool"]
|
|
21304
21819
|
},
|
|
21305
21820
|
{
|
|
21306
|
-
id:
|
|
21821
|
+
id: _C,
|
|
21307
21822
|
label: "Recording",
|
|
21308
21823
|
description: "Record a selected page region and trim, resize, or export it through MediaBunny.",
|
|
21309
21824
|
order: 42,
|
|
21310
|
-
create:
|
|
21825
|
+
create: vC,
|
|
21311
21826
|
settingsIds: ["recording"],
|
|
21312
21827
|
hiddenSettingsControlIds: ["tool"]
|
|
21313
21828
|
},
|
|
21314
21829
|
{
|
|
21315
|
-
id:
|
|
21830
|
+
id: US,
|
|
21316
21831
|
label: "Codex",
|
|
21317
21832
|
description: "Connects Mesurer to open Codex threads on this computer. Electron hosts provide the native Codex connection through preload.",
|
|
21318
21833
|
order: 45,
|
|
21319
|
-
create:
|
|
21834
|
+
create: gC
|
|
21320
21835
|
}
|
|
21321
|
-
],
|
|
21322
|
-
let t = e !== void 0, n = new Map((e ?? []).map((e) => [e.id, e])), r = new Set(
|
|
21836
|
+
], CC = (e) => {
|
|
21837
|
+
let t = e !== void 0, n = new Map((e ?? []).map((e) => [e.id, e])), r = new Set(SC.map((e) => e.id)), i = SC.map((e) => {
|
|
21323
21838
|
let r = n.get(e.id);
|
|
21324
21839
|
return {
|
|
21325
21840
|
...e,
|
|
21326
21841
|
settingsIds: e.settingsIds ? [...e.settingsIds] : void 0,
|
|
21327
21842
|
hiddenSettingsControlIds: e.hiddenSettingsControlIds ? [...e.hiddenSettingsControlIds] : void 0,
|
|
21328
|
-
enabled: t ? !!r : e.id === "mesurer.codex" ?
|
|
21843
|
+
enabled: t ? !!r : e.id === "mesurer.codex" ? xC() : e.enabled !== !1,
|
|
21329
21844
|
create: r ? () => r : e.create
|
|
21330
21845
|
};
|
|
21331
21846
|
});
|
|
@@ -21336,16 +21851,16 @@ var vC = hb, yC = (e = {}) => ({
|
|
|
21336
21851
|
create: () => n
|
|
21337
21852
|
});
|
|
21338
21853
|
return i;
|
|
21339
|
-
},
|
|
21340
|
-
function
|
|
21341
|
-
return
|
|
21854
|
+
}, wC = (e) => e;
|
|
21855
|
+
function TC() {
|
|
21856
|
+
return aS();
|
|
21342
21857
|
}
|
|
21343
|
-
async function
|
|
21344
|
-
return
|
|
21858
|
+
async function EC(e = {}) {
|
|
21859
|
+
return oS(e);
|
|
21345
21860
|
}
|
|
21346
21861
|
//#endregion
|
|
21347
21862
|
//#region src/index.tsx
|
|
21348
|
-
var
|
|
21863
|
+
var DC = {
|
|
21349
21864
|
select: "select",
|
|
21350
21865
|
xray: "xray",
|
|
21351
21866
|
colorPicker: "color-picker",
|
|
@@ -21355,14 +21870,14 @@ var OC = {
|
|
|
21355
21870
|
distance: "distance",
|
|
21356
21871
|
settings: "settings"
|
|
21357
21872
|
};
|
|
21358
|
-
function
|
|
21873
|
+
function OC(e = {}) {
|
|
21359
21874
|
if (!("document" in globalThis)) throw Error("mountMesurer() requires a browser or Electron renderer document.");
|
|
21360
21875
|
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;
|
|
21361
21876
|
if (o?.aborted) throw o.reason ?? new DOMException("Mesurer mount aborted.", "AbortError");
|
|
21362
21877
|
if (!t) throw Error("mountMesurer() requires document.body to exist or an explicit target.");
|
|
21363
21878
|
let p = t.ownerDocument ?? document, m = p.defaultView ?? window, h = p.createElement("div");
|
|
21364
21879
|
h.dataset.mesurerIsland = "true";
|
|
21365
|
-
let g =
|
|
21880
|
+
let g = HS(h, t, i), _ = h, v = h, y = h;
|
|
21366
21881
|
if (n) {
|
|
21367
21882
|
let e = h.attachShadow({ mode: r });
|
|
21368
21883
|
v = p.createElement("div"), v.dataset.mesurerIslandMount = "true", e.append(v), _ = e, y = e;
|
|
@@ -21373,7 +21888,7 @@ function kC(e = {}) {
|
|
|
21373
21888
|
C = e, w = t;
|
|
21374
21889
|
});
|
|
21375
21890
|
D.catch(() => void 0), O.catch(() => void 0);
|
|
21376
|
-
let k = async () => (await (b ? Promise.resolve(b) : D), O), A = a === !0 ? {} : a === !1 ? null : a, j =
|
|
21891
|
+
let k = async () => (await (b ? Promise.resolve(b) : D), O), A = a === !0 ? {} : a === !1 ? null : a, j = Wx({
|
|
21377
21892
|
ownerDocument: p,
|
|
21378
21893
|
root: A?.root ?? (t.nodeType === 11 ? t : p),
|
|
21379
21894
|
getPluginHost: () => b,
|
|
@@ -21385,12 +21900,12 @@ function kC(e = {}) {
|
|
|
21385
21900
|
return t;
|
|
21386
21901
|
}, N = async () => {
|
|
21387
21902
|
await j.ready();
|
|
21388
|
-
let e = b?.service.get(
|
|
21903
|
+
let e = b?.service.get(TS);
|
|
21389
21904
|
if (!e) throw Error("Mesurer Context is disabled. Enable it in Settings or include context() in plugins.");
|
|
21390
21905
|
return e;
|
|
21391
21906
|
}, P = async () => {
|
|
21392
21907
|
await j.ready();
|
|
21393
|
-
let e = b?.service.get(
|
|
21908
|
+
let e = b?.service.get(Yx);
|
|
21394
21909
|
if (!e) throw Error("Mesurer Edit is disabled. Enable it in Settings or include edit() in plugins.");
|
|
21395
21910
|
return e;
|
|
21396
21911
|
}, F = async (e) => (await N()).context(e), I = async (e) => (await N()).contextText(e), L = async (e) => (await N()).copyContext(e), R = async (e) => (await N()).select(e), z = async () => (await N()).annotations(), B = async (e) => (await N()).review(e), V = async (e) => (await N()).capturePlan(e), H = async () => (await N()).prepareCapture(), U = async () => (await N()).finishCapture(), ee = async () => (await P()).intents(), te = async (e) => {
|
|
@@ -21401,7 +21916,7 @@ function kC(e = {}) {
|
|
|
21401
21916
|
(await P()).show(e, t);
|
|
21402
21917
|
}, W = async (e, t) => (await P()).capturePlan(e, t), re = async (e, t) => (await P()).review(e, t), ie = () => j.textEdits(), ae = (e) => j.textEdit(e), oe = Object.assign(j, {
|
|
21403
21918
|
capabilities: () => {
|
|
21404
|
-
let e = !!b?.service.get(
|
|
21919
|
+
let e = !!b?.service.get(TS);
|
|
21405
21920
|
return {
|
|
21406
21921
|
protocol: "mesurer.agent/v1",
|
|
21407
21922
|
contextSchema: "mesurer.context/v1",
|
|
@@ -21411,8 +21926,8 @@ function kC(e = {}) {
|
|
|
21411
21926
|
annotations: e,
|
|
21412
21927
|
review: e,
|
|
21413
21928
|
capturePlan: e,
|
|
21414
|
-
arrange: !!b?.service.get(
|
|
21415
|
-
textEdit: !!b?.service.get(
|
|
21929
|
+
arrange: !!b?.service.get(Yx),
|
|
21930
|
+
textEdit: !!b?.service.get(Hx)
|
|
21416
21931
|
}
|
|
21417
21932
|
};
|
|
21418
21933
|
},
|
|
@@ -21431,9 +21946,9 @@ function kC(e = {}) {
|
|
|
21431
21946
|
reviewArrange: re
|
|
21432
21947
|
}), se = {
|
|
21433
21948
|
...f,
|
|
21434
|
-
version:
|
|
21435
|
-
plugins:
|
|
21436
|
-
excludePlugins: u ? u.map((e) =>
|
|
21949
|
+
version: Gx,
|
|
21950
|
+
plugins: CC(l),
|
|
21951
|
+
excludePlugins: u ? u.map((e) => DC[e]) : [...d ?? []]
|
|
21437
21952
|
}, ce = Oi(() => Yr(rv, Di(se, {
|
|
21438
21953
|
portalTarget: y,
|
|
21439
21954
|
pageTarget: t,
|
|
@@ -21502,6 +22017,6 @@ function kC(e = {}) {
|
|
|
21502
22017
|
}
|
|
21503
22018
|
return he;
|
|
21504
22019
|
}
|
|
21505
|
-
var
|
|
22020
|
+
var kC = OC;
|
|
21506
22021
|
//#endregion
|
|
21507
|
-
export {
|
|
22022
|
+
export { Hx as MESURER_TEXT_EDIT_SERVICE_ID, Gx as MESURER_VERSION, dS as captureMesurerContext, bS as copyTextToClipboard, Wx as createMesurerAgentHarness, hS as createMesurerCapturePlan, TC as createMesurerPluginHost, EC as createMesurerRuntime, wC as defineMesurerPlugin, mS as formatMesurerContext, kC as mountMeasurer, OC as mountMesurer, yS as reviewMesurerAnnotation };
|