@pixelmatters/markup 1.18.7 → 1.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -6
- package/dist/widget.js +983 -797
- package/dist/widget.js.map +1 -1
- package/package.json +1 -1
- package/skills/install-markup-widget/SKILL.md +4 -4
package/dist/widget.js
CHANGED
|
@@ -45,7 +45,7 @@ function w(e, t) {
|
|
|
45
45
|
function T(e) {
|
|
46
46
|
if (e.__P && e.__d) {
|
|
47
47
|
var n = e.__v, r = n.__e, i = [], a = [], o = v({}, n);
|
|
48
|
-
o.__v = n.__v + 1, t.vnode && t.vnode(o),
|
|
48
|
+
o.__v = n.__v + 1, t.vnode && t.vnode(o), ne(e.__P, o, n, e.__n, e.__P.namespaceURI, 32 & n.__u ? [r] : null, i, r ?? w(n), !!(32 & n.__u), a), o.__v = n.__v, o.__.__k[o.__i] = o, ie(i, o, a), n.__e = n.__ = null, o.__e != r && E(o);
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
function E(e) {
|
|
@@ -65,13 +65,13 @@ function O() {
|
|
|
65
65
|
}
|
|
66
66
|
function ee(e, t, n, r, i, a, o, s, c, l, u) {
|
|
67
67
|
var d, f, p, g, _, v, y, b = r && r.__k || h, x = t.length;
|
|
68
|
-
for (c = k(n, t, b, c, x), d = 0; d < x; d++) (p = n.__k[d]) != null && (f = p.__i != -1 && b[p.__i] || m, p.__i = d, v =
|
|
68
|
+
for (c = k(n, t, b, c, x), d = 0; d < x; d++) (p = n.__k[d]) != null && (f = p.__i != -1 && b[p.__i] || m, p.__i = d, v = ne(e, p, f, i, a, o, s, c, l, u), g = p.__e, p.ref && f.ref != p.ref && (f.ref && se(f.ref, null, p), u.push(p.ref, p.__c || g, p)), _ == null && g != null && (_ = g), (y = !!(4 & p.__u)) || f.__k === p.__k ? (c = A(p, c, e, y), y && f.__e && (f.__e = null)) : typeof p.type == "function" && v !== void 0 ? c = v : g && (c = g.nextSibling), p.__u &= -7);
|
|
69
69
|
return n.__e = _, c;
|
|
70
70
|
}
|
|
71
71
|
function k(e, t, n, r, i) {
|
|
72
72
|
var a, o, s, c, l, u = n.length, d = u, f = 0;
|
|
73
73
|
for (e.__k = Array(i), a = 0; a < i; a++) (o = t[a]) != null && typeof o != "boolean" && typeof o != "function" ? (typeof o == "string" || typeof o == "number" || typeof o == "bigint" || o.constructor == String ? o = e.__k[a] = x(null, o, null, null, null) : _(o) ? o = e.__k[a] = x(S, { children: o }, null, null, null) : o.constructor === void 0 && o.__b > 0 ? o = e.__k[a] = x(o.type, o.props, o.key, o.ref ? o.ref : null, o.__v) : e.__k[a] = o, c = a + f, o.__ = e, o.__b = e.__b + 1, s = null, (l = o.__i = j(o, n, c, d)) != -1 && (d--, (s = n[l]) && (s.__u |= 2)), s == null || s.__v == null ? (l == -1 && (i > u ? f-- : i < u && f++), typeof o.type != "function" && (o.__u |= 4)) : l != c && (l == c - 1 ? f-- : l == c + 1 ? f++ : (l > c ? f-- : f++, o.__u |= 4))) : e.__k[a] = null;
|
|
74
|
-
if (d) for (a = 0; a < u; a++) (s = n[a]) != null && !(2 & s.__u) && (s.__e == r && (r = w(s)),
|
|
74
|
+
if (d) for (a = 0; a < u; a++) (s = n[a]) != null && !(2 & s.__u) && (s.__e == r && (r = w(s)), ce(s, s));
|
|
75
75
|
return r;
|
|
76
76
|
}
|
|
77
77
|
function A(e, t, n, r) {
|
|
@@ -94,15 +94,15 @@ function j(e, t, n, r) {
|
|
|
94
94
|
}
|
|
95
95
|
return -1;
|
|
96
96
|
}
|
|
97
|
-
function
|
|
97
|
+
function M(e, t, n) {
|
|
98
98
|
t[0] == "-" ? e.setProperty(t, n ?? "") : e[t] = n == null ? "" : typeof n != "number" || g.test(t) ? n : n + "px";
|
|
99
99
|
}
|
|
100
|
-
function
|
|
100
|
+
function N(e, t, n, r, i) {
|
|
101
101
|
var a, o;
|
|
102
102
|
n: if (t == "style") if (typeof n == "string") e.style.cssText = n;
|
|
103
103
|
else {
|
|
104
|
-
if (typeof r == "string" && (e.style.cssText = r = ""), r) for (t in r) n && t in n ||
|
|
105
|
-
if (n) for (t in n) r && n[t] == r[t] ||
|
|
104
|
+
if (typeof r == "string" && (e.style.cssText = r = ""), r) for (t in r) n && t in n || M(e.style, t, "");
|
|
105
|
+
if (n) for (t in n) r && n[t] == r[t] || M(e.style, t, n[t]);
|
|
106
106
|
}
|
|
107
107
|
else if (t[0] == "o" && t[1] == "n") a = t != (t = t.replace(u, "$1")), o = t.toLowerCase(), t = o in e || t == "onFocusOut" || t == "onFocusIn" ? o.slice(2) : t.slice(2), e.l ||= {}, e.l[t + a] = n, n ? r ? n[l] = r[l] : (n[l] = d, e.addEventListener(t, a ? p : f, a)) : e.removeEventListener(t, a ? p : f, a);
|
|
108
108
|
else {
|
|
@@ -114,7 +114,7 @@ function M(e, t, n, r, i) {
|
|
|
114
114
|
typeof n == "function" || (n == null || !1 === n && t[4] != "-" ? e.removeAttribute(t) : e.setAttribute(t, t == "popover" && n == 1 ? "" : n));
|
|
115
115
|
}
|
|
116
116
|
}
|
|
117
|
-
function
|
|
117
|
+
function te(e) {
|
|
118
118
|
return function(n) {
|
|
119
119
|
if (this.l) {
|
|
120
120
|
var r = this.l[n.type + e];
|
|
@@ -124,16 +124,16 @@ function ne(e) {
|
|
|
124
124
|
}
|
|
125
125
|
};
|
|
126
126
|
}
|
|
127
|
-
function
|
|
128
|
-
var d, f, p, m, g, b, x, w, T, E, D, O, k, A, j,
|
|
127
|
+
function ne(e, n, r, i, a, o, s, c, l, u) {
|
|
128
|
+
var d, f, p, m, g, b, x, w, T, E, D, O, k, A, j, M, N = n.type;
|
|
129
129
|
if (n.constructor !== void 0) return null;
|
|
130
130
|
128 & r.__u && (l = !!(32 & r.__u), o = [c = n.__e = r.__e]), (d = t.__b) && d(n);
|
|
131
|
-
n: if (typeof
|
|
131
|
+
n: if (typeof N == "function") {
|
|
132
132
|
f = s.length;
|
|
133
133
|
try {
|
|
134
|
-
if (T = n.props, E =
|
|
134
|
+
if (T = n.props, E = N.prototype && N.prototype.render, D = (d = N.contextType) && i[d.__c], O = d ? D ? D.props.value : d.__ : i, r.__c ? w = (p = n.__c = r.__c).__ = p.__E : (E ? n.__c = p = new N(T, O) : (n.__c = p = new C(T, O), p.constructor = N, p.render = le), D && D.sub(p), p.state || (p.state = {}), p.__n = i, m = p.__d = !0, p.__h = [], p._sb = []), E && p.__s == null && (p.__s = p.state), E && N.getDerivedStateFromProps != null && (p.__s == p.state && (p.__s = v({}, p.__s)), v(p.__s, N.getDerivedStateFromProps(T, p.__s))), g = p.props, b = p.state, p.__v = n, m) E && N.getDerivedStateFromProps == null && p.componentWillMount != null && p.componentWillMount(), E && p.componentDidMount != null && p.__h.push(p.componentDidMount);
|
|
135
135
|
else {
|
|
136
|
-
if (E &&
|
|
136
|
+
if (E && N.getDerivedStateFromProps == null && T !== g && p.componentWillReceiveProps != null && p.componentWillReceiveProps(T, O), n.__v == r.__v || !p.__e && p.shouldComponentUpdate != null && !1 === p.shouldComponentUpdate(T, p.__s, O)) {
|
|
137
137
|
n.__v != r.__v && (p.props = T, p.state = p.__s, p.__d = !1), n.__e = r.__e, n.__k = r.__k, n.__k.some(function(e) {
|
|
138
138
|
e && (e.__ = n);
|
|
139
139
|
}), h.push.apply(p.__h, p._sb), p._sb = [], p.__h.length && s.push(p);
|
|
@@ -147,24 +147,24 @@ function re(e, n, r, i, a, o, s, c, l, u) {
|
|
|
147
147
|
else do
|
|
148
148
|
p.__d = !1, k && k(n), d = p.render(p.props, p.state, p.context), p.state = p.__s;
|
|
149
149
|
while (p.__d && ++A < 25);
|
|
150
|
-
p.state = p.__s, p.getChildContext != null && (i = v(v({}, i), p.getChildContext())), E && !m && p.getSnapshotBeforeUpdate != null && (x = p.getSnapshotBeforeUpdate(g, b)), j = d != null && d.type === S && d.key == null ?
|
|
150
|
+
p.state = p.__s, p.getChildContext != null && (i = v(v({}, i), p.getChildContext())), E && !m && p.getSnapshotBeforeUpdate != null && (x = p.getSnapshotBeforeUpdate(g, b)), j = d != null && d.type === S && d.key == null ? ae(d.props.children) : d, c = ee(e, _(j) ? j : [j], n, r, i, a, o, s, c, l, u), p.base = n.__e, n.__u &= -161, p.__h.length && s.push(p), w && (p.__E = p.__ = null);
|
|
151
151
|
} catch (e) {
|
|
152
152
|
if (s.length = f, n.__v = null, l || o != null) {
|
|
153
153
|
if (e.then) {
|
|
154
154
|
for (n.__u |= l ? 160 : 128; c && c.nodeType == 8 && c.nextSibling;) c = c.nextSibling;
|
|
155
155
|
o != null && (o[o.indexOf(c)] = null), n.__e = c;
|
|
156
|
-
} else if (o != null) for (
|
|
156
|
+
} else if (o != null) for (M = o.length; M--;) y(o[M]);
|
|
157
157
|
} else n.__e = r.__e;
|
|
158
|
-
n.__k ??= r.__k || [], e.then ||
|
|
158
|
+
n.__k ??= r.__k || [], e.then || re(n), t.__e(e, n, r);
|
|
159
159
|
}
|
|
160
|
-
} else o == null && n.__v == r.__v ? (n.__k = r.__k, n.__e = r.__e) : c = n.__e =
|
|
160
|
+
} else o == null && n.__v == r.__v ? (n.__k = r.__k, n.__e = r.__e) : c = n.__e = oe(r.__e, n, r, i, a, o, s, l, u);
|
|
161
161
|
return (d = t.diffed) && d(n), 128 & n.__u ? void 0 : c;
|
|
162
162
|
}
|
|
163
|
-
function
|
|
164
|
-
e && (e.__c && (e.__c.__e = !0), e.__k && e.__k.some(
|
|
163
|
+
function re(e) {
|
|
164
|
+
e && (e.__c && (e.__c.__e = !0), e.__k && e.__k.some(re));
|
|
165
165
|
}
|
|
166
|
-
function
|
|
167
|
-
for (var i = 0; i < r.length; i++)
|
|
166
|
+
function ie(e, n, r) {
|
|
167
|
+
for (var i = 0; i < r.length; i++) se(r[i], r[++i], r[++i]);
|
|
168
168
|
t.__c && t.__c(n, e), e.some(function(n) {
|
|
169
169
|
try {
|
|
170
170
|
e = n.__h, n.__h = [], e.some(function(e) {
|
|
@@ -175,10 +175,10 @@ function ae(e, n, r) {
|
|
|
175
175
|
}
|
|
176
176
|
});
|
|
177
177
|
}
|
|
178
|
-
function
|
|
179
|
-
return typeof e != "object" || !e || e.__b > 0 ? e : _(e) ? e.map(
|
|
178
|
+
function ae(e) {
|
|
179
|
+
return typeof e != "object" || !e || e.__b > 0 ? e : _(e) ? e.map(ae) : e.constructor === void 0 ? v({}, e) : null;
|
|
180
180
|
}
|
|
181
|
-
function
|
|
181
|
+
function oe(n, r, i, a, o, s, c, l, u) {
|
|
182
182
|
var d, f, p, h, g, v, b, x = i.props || m, S = r.props, C = r.type;
|
|
183
183
|
if (C == "svg" ? o = "http://www.w3.org/2000/svg" : C == "math" ? o = "http://www.w3.org/1998/Math/MathML" : o ||= "http://www.w3.org/1999/xhtml", s != null) {
|
|
184
184
|
for (d = 0; d < s.length; d++) if ((g = s[d]) && "setAttribute" in g == !!C && (C ? g.localName == C : g.nodeType == 3)) {
|
|
@@ -193,15 +193,15 @@ function se(n, r, i, a, o, s, c, l, u) {
|
|
|
193
193
|
if (C == null) x === S || l && n.data == S || (n.data = S);
|
|
194
194
|
else {
|
|
195
195
|
if (s = C == "textarea" && S.defaultValue != null ? null : s && e.call(n.childNodes), !l && s != null) for (x = {}, d = 0; d < n.attributes.length; d++) x[(g = n.attributes[d]).name] = g.value;
|
|
196
|
-
for (d in x) g = x[d], d == "dangerouslySetInnerHTML" ? p = g : d == "children" || d in S || d == "value" && "defaultValue" in S || d == "checked" && "defaultChecked" in S ||
|
|
197
|
-
for (d in S) g = S[d], d == "children" ? h = g : d == "dangerouslySetInnerHTML" ? f = g : d == "value" ? v = g : d == "checked" ? b = g : l && typeof g != "function" || x[d] === g ||
|
|
196
|
+
for (d in x) g = x[d], d == "dangerouslySetInnerHTML" ? p = g : d == "children" || d in S || d == "value" && "defaultValue" in S || d == "checked" && "defaultChecked" in S || N(n, d, null, g, o);
|
|
197
|
+
for (d in S) g = S[d], d == "children" ? h = g : d == "dangerouslySetInnerHTML" ? f = g : d == "value" ? v = g : d == "checked" ? b = g : l && typeof g != "function" || x[d] === g || N(n, d, g, x[d], o);
|
|
198
198
|
if (f) l || p && (f.__html == p.__html || f.__html == n.innerHTML) || (n.innerHTML = f.__html), r.__k = [];
|
|
199
199
|
else if (p && (n.innerHTML = ""), ee(r.type == "template" ? n.content : n, _(h) ? h : [h], r, i, a, C == "foreignObject" ? "http://www.w3.org/1999/xhtml" : o, s, c, s ? s[0] : i.__k && w(i, 0), l, u), s != null) for (d = s.length; d--;) y(s[d]);
|
|
200
|
-
l && C != "textarea" || (d = "value", C == "progress" && v == null ? n.removeAttribute("value") : v != null && (v !== n[d] || C == "progress" && !v || C == "option" && v != x[d]) &&
|
|
200
|
+
l && C != "textarea" || (d = "value", C == "progress" && v == null ? n.removeAttribute("value") : v != null && (v !== n[d] || C == "progress" && !v || C == "option" && v != x[d]) && N(n, d, v, x[d], o), d = "checked", b != null && b != n[d] && N(n, d, b, x[d], o));
|
|
201
201
|
}
|
|
202
202
|
return n;
|
|
203
203
|
}
|
|
204
|
-
function
|
|
204
|
+
function se(e, n, r) {
|
|
205
205
|
try {
|
|
206
206
|
if (typeof e == "function") {
|
|
207
207
|
var i = typeof e.__u == "function";
|
|
@@ -211,9 +211,9 @@ function ce(e, n, r) {
|
|
|
211
211
|
t.__e(e, r);
|
|
212
212
|
}
|
|
213
213
|
}
|
|
214
|
-
function
|
|
214
|
+
function ce(e, n, r) {
|
|
215
215
|
var i, a;
|
|
216
|
-
if (t.unmount && t.unmount(e), (i = e.ref) && (i.current && i.current != e.__e ||
|
|
216
|
+
if (t.unmount && t.unmount(e), (i = e.ref) && (i.current && i.current != e.__e || se(i, null, n)), (i = e.__c) != null) {
|
|
217
217
|
if (i.componentWillUnmount) try {
|
|
218
218
|
i.componentWillUnmount();
|
|
219
219
|
} catch (e) {
|
|
@@ -221,15 +221,15 @@ function le(e, n, r) {
|
|
|
221
221
|
}
|
|
222
222
|
i.base = i.__P = i.__n = null;
|
|
223
223
|
}
|
|
224
|
-
if (i = e.__k) for (a = 0; a < i.length; a++) i[a] &&
|
|
224
|
+
if (i = e.__k) for (a = 0; a < i.length; a++) i[a] && ce(i[a], n, r || typeof e.type != "function");
|
|
225
225
|
r || y(e.__e), e.__c = e.__ = e.__e = void 0;
|
|
226
226
|
}
|
|
227
|
-
function
|
|
227
|
+
function le(e, t, n) {
|
|
228
228
|
return this.constructor(e, n);
|
|
229
229
|
}
|
|
230
|
-
function
|
|
230
|
+
function ue(n, r, i) {
|
|
231
231
|
var a, o, s, c;
|
|
232
|
-
r == document && (r = document.documentElement), t.__ && t.__(n, r), o = (a = typeof i == "function") ? null : i && i.__k || r.__k, s = [], c = [],
|
|
232
|
+
r == document && (r = document.documentElement), t.__ && t.__(n, r), o = (a = typeof i == "function") ? null : i && i.__k || r.__k, s = [], c = [], ne(r, n = (!a && i || r).__k = b(S, null, [n]), o || m, m, r.namespaceURI, !a && i ? [i] : o ? null : r.firstChild ? e.call(r.childNodes) : null, s, !a && i ? i : o ? o.__e : r.firstChild, a, c), ie(s, n, c), n.props.children = null;
|
|
233
233
|
}
|
|
234
234
|
e = h.slice, t = { __e: function(e, t, n, r) {
|
|
235
235
|
for (var i, a, o; t = t.__;) if ((i = t.__c) && !i.__) try {
|
|
@@ -245,49 +245,49 @@ e = h.slice, t = { __e: function(e, t, n, r) {
|
|
|
245
245
|
this.__v && (this.__e = !0, e && this.__h.push(e), D(this));
|
|
246
246
|
}, C.prototype.render = S, r = [], a = typeof Promise == "function" ? Promise.prototype.then.bind(Promise.resolve()) : setTimeout, o = function(e, t) {
|
|
247
247
|
return e.__v.__b - t.__v.__b;
|
|
248
|
-
}, O.__r = 0, s = Math.random().toString(8), c = "__d" + s, l = "__a" + s, u = /(PointerCapture)$|Capture$/i, d = 0, f =
|
|
248
|
+
}, O.__r = 0, s = Math.random().toString(8), c = "__d" + s, l = "__a" + s, u = /(PointerCapture)$|Capture$/i, d = 0, f = te(!1), p = te(!0);
|
|
249
249
|
//#endregion
|
|
250
250
|
//#region src/styles.css?inline
|
|
251
|
-
var fe = ":host{--markup-paper:#fdfcfa;--markup-surface:#fff;--markup-surface-2:oklch(98.5% .002 250);--markup-surface-3:oklch(95% .003 250);--markup-hover:oklch(95% .003 250);--markup-ink:#1a1614;--markup-ink-soft:oklch(32% .005 250);--markup-muted:#6b6661;--markup-border:#1a16141a;--markup-border-strong:#1a16142e;--markup-brand:#e35d2a;--markup-brand-hover:#c84d20;--markup-accent-soft:oklch(95% .04 60);--markup-accent-ink:oklch(45% .14 38);--markup-accent-glow:color-mix(in srgb, var(--markup-brand) 28%, transparent);--markup-team:#2a4ac8;--markup-shadow:0 1px 2px #1a16140f, 0 8px 28px #1a16141f;--markup-shadow-toolbar:0 1px 1px #0000000a, 0 4px 10px -2px #0f14281a, 0 18px 36px -12px #0f14282e;--markup-shadow-pop:0 1px 1px #0000000a, 0 8px 24px -6px #0f14281f, 0 28px 60px -18px #0f142838;--markup-overlay-tint:#1a16140a;--markup-danger:#dc2626;--markup-success:oklch(62% .16 150);--markup-radius:6px;--markup-radius-sm:4px;--markup-font:\"Geist Variable\", \"Geist\", ui-sans-serif, -apple-system, BlinkMacSystemFont, \"Segoe UI\", system-ui, sans-serif;--markup-font-mono:\"Geist Mono Variable\", \"Geist Mono\", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;all:initial;font-family:var(--markup-font);color:var(--markup-ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.5}:host([data-theme=dark]){--markup-paper:#1a1614;--markup-surface:oklch(16% .005 250);--markup-surface-2:oklch(20% .005 250);--markup-surface-3:oklch(24% .005 250);--markup-hover:oklch(24% .005 250);--markup-ink:#fdfcfa;--markup-ink-soft:oklch(80% .005 250);--markup-muted:#a8a39e;--markup-border:#fdfcfa1f;--markup-border-strong:#fdfcfa38;--markup-team:#7b99f0;--markup-accent-soft:color-mix(in srgb, var(--markup-brand) 22%, transparent);--markup-accent-ink:oklch(86% .13 55);--markup-shadow:0 1px 2px #00000059, 0 12px 40px #00000073;--markup-shadow-toolbar:0 1px 0 #ffffff0a inset, 0 1px 2px #0006, 0 12px 30px -10px #0000008c, 0 28px 60px -20px #00000080;--markup-shadow-pop:0 1px 0 #ffffff0a inset, 0 8px 24px -6px #00000073, 0 28px 60px -18px #0000008c;--markup-overlay-tint:#fdfcfa0d;--markup-danger:#f87171}@media (prefers-color-scheme:dark){:host(:not([data-theme])){--markup-paper:#1a1614;--markup-surface:oklch(16% .005 250);--markup-surface-2:oklch(20% .005 250);--markup-surface-3:oklch(24% .005 250);--markup-hover:oklch(24% .005 250);--markup-ink:#fdfcfa;--markup-ink-soft:oklch(80% .005 250);--markup-muted:#a8a39e;--markup-border:#fdfcfa1f;--markup-border-strong:#fdfcfa38;--markup-team:#7b99f0;--markup-accent-soft:color-mix(in srgb, var(--markup-brand) 22%, transparent);--markup-accent-ink:oklch(86% .13 55);--markup-shadow:0 1px 2px #00000059, 0 12px 40px #00000073;--markup-shadow-toolbar:0 1px 0 #ffffff0a inset, 0 1px 2px #0006, 0 12px 30px -10px #0000008c, 0 28px 60px -20px #00000080;--markup-shadow-pop:0 1px 0 #ffffff0a inset, 0 8px 24px -6px #00000073, 0 28px 60px -18px #0000008c;--markup-overlay-tint:#fdfcfa0d;--markup-danger:#f87171}}.markup-sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.markup-shadow-root{font-family:var(--markup-font)}.markup-shadow-root *,.markup-shadow-root :before,.markup-shadow-root :after{box-sizing:border-box}:where(.markup-shadow-root button,.markup-shadow-root input,.markup-shadow-root textarea){font:inherit;color:inherit}.markup-eyebrow{font-family:var(--markup-font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--markup-muted);font-size:10px;font-weight:500}.markup-toolbar{z-index:10;background:var(--markup-surface);border:1px solid var(--markup-border);pointer-events:none;height:44px;box-shadow:var(--markup-shadow-toolbar);border-radius:9999px;align-items:center;gap:2px;padding:4px;transition:box-shadow .15s,left .22s cubic-bezier(.2,.7,.2,1),transform .22s cubic-bezier(.2,.7,.2,1);display:inline-flex;position:fixed;bottom:22px;left:100%;transform:translate(calc(-100% - 22px))}.markup-toolbar>*{pointer-events:auto}.markup-tb-btn{width:36px;height:36px;color:var(--markup-ink-soft);cursor:pointer;touch-action:none;font-family:var(--markup-font);background:0 0;border:1px solid #0000;border-radius:9999px;justify-content:center;align-items:center;gap:6px;padding:0;font-size:13px;font-weight:500;transition:background .12s,color .12s,transform .12s cubic-bezier(.2,.7,.2,1);display:inline-flex;position:relative}.markup-tb-btn:hover{background:var(--markup-hover);color:var(--markup-ink)}.markup-tb-btn:active{transform:scale(.97)}.markup-tb-btn:focus-visible{box-shadow:0 0 0 2px var(--markup-surface), 0 0 0 4px var(--markup-accent-glow);outline:none}.markup-tb-btn[data-on=true]{background:var(--markup-ink);color:var(--markup-paper)}@media (prefers-color-scheme:dark){:host(:not([data-theme])) .markup-tb-btn[data-on=true]{background:var(--markup-surface-3);color:var(--markup-ink)}}:host([data-theme=dark]) .markup-tb-btn[data-on=true]{background:var(--markup-surface-3);color:var(--markup-ink)}.markup-tb-btn[data-armed=true]{background:var(--markup-brand);color:#fff}.markup-tb-btn[data-armed=true]:hover{background:var(--markup-brand-hover);color:#fff}.markup-tb-btn[disabled]{color:color-mix(in srgb, var(--markup-muted) 60%, transparent);cursor:default}.markup-tb-btn[disabled]:hover{color:color-mix(in srgb, var(--markup-muted) 60%, transparent);background:0 0}.markup-tb-btn[data-kind=identity]{gap:6px;width:auto;padding:0 4px}.markup-tb-avatar{background:var(--markup-surface-3);width:28px;height:28px;font-family:var(--markup-font-mono);color:var(--markup-ink);border:1px solid var(--markup-border);border-radius:9999px;flex-shrink:0;justify-content:center;align-items:center;font-size:10.5px;font-weight:600;display:inline-flex;overflow:hidden}.markup-tb-avatar.is-anon{color:var(--markup-muted);background:var(--markup-surface-2)}.markup-tb-sep{background:var(--markup-border);flex-shrink:0;width:1px;height:20px;margin:0 4px}.markup-tb-badge{background:var(--markup-brand);color:#fff;min-width:16px;height:16px;font-family:var(--markup-font-mono);box-shadow:0 0 0 2px var(--markup-surface);pointer-events:none;border-radius:9999px;justify-content:center;align-items:center;padding:0 4px;font-size:9.5px;font-weight:600;line-height:1;transition:transform .15s cubic-bezier(.2,.7,.2,1),opacity .15s cubic-bezier(.2,.7,.2,1);display:inline-flex;position:absolute;top:0;right:0}.markup-tb-badge[data-unread=false]{opacity:0;transform:scale(.5)}.markup-toolbar-left{left:0;transform:translate(22px)}.markup-toolbar-center{left:50%;transform:translate(-50%)}.markup-toolbar-right{left:100%;transform:translate(calc(-100% - 22px))}.markup-pop{background:var(--markup-surface);border:1px solid var(--markup-border);box-shadow:var(--markup-shadow-pop);color:var(--markup-ink);z-index:11;border-radius:12px;font-size:13px;animation:.14s cubic-bezier(.2,.7,.2,1) markup-pop-in;position:absolute;bottom:calc(100% + 8px);overflow:hidden}.markup-pop[data-pop=overflow]{width:260px;padding:6px}.markup-pop[data-pop=identity]{width:240px;padding:6px}.markup-pop[data-pop=inbox]{width:380px;padding:0}.markup-pop.is-anchor-right{right:0}.markup-pop.is-anchor-left{left:0}.markup-pop.is-anchor-center{left:50%;transform:translate(-50%)}@keyframes markup-pop-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.markup-pop.is-anchor-center{animation-name:markup-pop-in-center}@keyframes markup-pop-in-center{0%{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%)}}.markup-pop-group-label{font-family:var(--markup-font-mono);letter-spacing:.06em;color:var(--markup-muted);text-transform:lowercase;padding:8px 10px 4px;font-size:10px}.markup-segmented-row{border-radius:6px;align-items:center;gap:10px;padding:7px 8px;display:flex}.markup-segmented-row .lbl{min-width:0;color:var(--markup-ink);flex:1;font-size:13px}.markup-segmented{background:var(--markup-surface-3);border-radius:7px;gap:2px;padding:2px;display:inline-flex}.markup-segmented button{font:inherit;width:28px;height:24px;color:var(--markup-muted);cursor:pointer;background:0 0;border:none;border-radius:5px;justify-content:center;align-items:center;padding:0;transition:background .1s,color .1s;display:inline-flex}.markup-segmented button:hover{color:var(--markup-ink)}.markup-segmented button.is-on{background:var(--markup-surface);color:var(--markup-ink);box-shadow:0 1px 2px #0000000d}.markup-menu-row{cursor:pointer;width:100%;color:inherit;text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;gap:10px;padding:7px 8px;font-family:inherit;font-size:13px;display:flex}.markup-menu-row:hover{background:var(--markup-hover)}.markup-menu-row:disabled{opacity:.5;cursor:default}.markup-menu-row:disabled:hover{background:0 0}.markup-menu-row .ic{width:16px;height:16px;color:var(--markup-muted);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.markup-menu-row .lbl{flex-direction:column;flex:1;min-width:0;display:flex}.markup-menu-row .lbl .sub{color:var(--markup-muted);margin-top:1px;font-size:11px}.markup-menu-row .right{font-family:var(--markup-font-mono);color:var(--markup-muted);margin-left:auto;font-size:10.5px}.markup-menu-row.is-danger,.markup-menu-row.is-danger .ic{color:var(--markup-danger)}.markup-menu-row.is-danger:hover{background:color-mix(in srgb, var(--markup-danger) 10%, transparent)}.markup-menu-row .switch{background:var(--markup-border-strong);border-radius:9999px;flex-shrink:0;width:26px;height:16px;transition:background .12s;position:relative}.markup-menu-row .switch:after{content:\"\";background:var(--markup-surface);border-radius:9999px;width:12px;height:12px;transition:left .12s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000026}.markup-menu-row[data-on=true] .switch{background:var(--markup-brand)}.markup-menu-row[data-on=true] .switch:after{left:12px}.markup-menu-divider{background:var(--markup-border);height:1px;margin:4px 0}.markup-brand-line{font-family:var(--markup-font-mono);color:var(--markup-muted);border-top:1px solid var(--markup-border);align-items:center;gap:8px;margin-top:6px;padding:8px 10px;font-size:10.5px;text-decoration:none;display:flex}.markup-brand-line:hover{color:var(--markup-ink)}.markup-brand-line svg{color:var(--markup-brand)}.markup-brand-line .ver{margin-left:auto}.markup-id-who{border-bottom:1px solid var(--markup-border);flex-direction:column;gap:2px;margin-bottom:4px;padding:10px 8px 12px;display:flex}.markup-id-who .nm{color:var(--markup-ink);font-size:13.5px;font-weight:600}.markup-id-who .em{font-family:var(--markup-font-mono);color:var(--markup-muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.markup-id-anon{text-align:left;flex-direction:column;gap:10px;padding:14px 10px;display:flex}.markup-id-anon .h{letter-spacing:-.005em;color:var(--markup-ink);font-size:14px;font-weight:600}.markup-id-anon .sub{color:var(--markup-muted);font-size:12.5px;line-height:18px}.markup-id-anon button:not(.markup-menu-row){background:var(--markup-ink);width:100%;color:var(--markup-paper);height:32px;font:inherit;cursor:pointer;border:none;border-radius:7px;justify-content:center;align-items:center;gap:6px;font-size:13px;font-weight:500;display:inline-flex}.markup-id-anon button:disabled{opacity:.7;cursor:default}.markup-id-anon button:not(.markup-menu-row):hover:not(:disabled){background:color-mix(in srgb, var(--markup-ink) 88%, var(--markup-surface))}.markup-hud-hidden-toast{z-index:10;background:var(--markup-ink);color:var(--markup-paper);letter-spacing:-.01em;box-shadow:var(--markup-shadow);pointer-events:none;border-radius:999px;align-items:center;gap:6px;padding:8px 14px;font-size:12px;font-weight:500;animation:.22s ease-out markup-hud-hidden-in,.32s ease-in 4.6s forwards markup-hud-hidden-out;display:inline-flex;position:fixed;bottom:24px}.markup-hud-hidden-toast-right{right:24px}.markup-hud-hidden-toast-left{left:24px}.markup-hud-hidden-toast-center{width:max-content;margin-inline:auto;left:0;right:0}.markup-kbd{background:color-mix(in srgb, var(--markup-paper) 14%, transparent);min-width:18px;height:18px;color:var(--markup-paper);font-family:var(--markup-font);border-radius:4px;justify-content:center;align-items:center;padding:0 5px;font-size:10px;font-weight:600;line-height:1;display:inline-flex}.markup-kbd.is-inline{background:color-mix(in srgb, var(--markup-ink) 8%, transparent);min-width:14px;height:14px;color:var(--markup-muted);border-radius:3px;padding:0 3px;font-size:9.5px}@keyframes markup-hud-hidden-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes markup-hud-hidden-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(4px)}}.markup-pins-layer{pointer-events:none;position:fixed;inset:0}.markup-pin{border:2px solid var(--markup-paper);background:var(--markup-brand);color:#fff;width:28px;height:28px;font-family:var(--markup-font-mono);cursor:pointer;pointer-events:auto;box-shadow:0 4px 14px -4px #00000059, 0 0 0 1px color-mix(in srgb, var(--markup-brand) 50%, transparent);border-radius:999px 999px 999px 4px;justify-content:center;align-items:center;margin:0;padding:0;font-size:11.5px;font-weight:600;line-height:1;transition:background .15s,color .15s,opacity .15s,top .2s,left .2s;display:inline-flex;position:absolute;transform:translate(-50%,-100%)}.markup-pin:hover{background:color-mix(in oklab, var(--markup-brand) 92%, black)}:host([data-theme=dark]) .markup-pin:hover{background:color-mix(in oklab, var(--markup-brand) 88%, var(--markup-paper))}@media (prefers-color-scheme:dark){:host(:not([data-theme])) .markup-pin:hover{background:color-mix(in oklab, var(--markup-brand) 88%, var(--markup-paper))}}.markup-pin.is-active{background:var(--markup-brand);color:#fff;border-color:var(--markup-paper)}.markup-pin.is-anchor{anchor-name:--markup-active-anchor}.markup-pin.is-unresolved{opacity:.6}.markup-pin-ghost{background:var(--markup-brand);color:#fff;cursor:default;pointer-events:none;animation:1.2s ease-in-out infinite markup-ghost-pulse}.markup-pin-num{pointer-events:none;justify-content:center;align-items:center;display:inline-flex}.markup-pin-count{background:var(--markup-ink);min-width:16px;height:16px;color:var(--markup-paper);font-family:var(--markup-font-mono);text-align:center;border:2px solid var(--markup-paper);pointer-events:none;border-radius:999px;padding:0 4px;font-size:9.5px;font-weight:600;line-height:12px;position:absolute;top:-6px;right:-8px}@keyframes markup-ghost-pulse{0%,to{box-shadow:0 4px 14px -4px #00000059,0 0 #e35d2a66}50%{box-shadow:0 4px 14px -4px #00000059,0 0 0 10px #e35d2a00}}.markup-placement-overlay{background:var(--markup-overlay-tint);cursor:crosshair;pointer-events:auto;z-index:1;animation:.18s ease-out markup-overlay-in;position:fixed;inset:0}.markup-placement-cursor-help{background:var(--markup-ink);color:var(--markup-paper);letter-spacing:-.01em;box-shadow:var(--markup-shadow);pointer-events:none;border-radius:999px;padding:10px 16px;font-size:12px;font-weight:500;animation:.22s ease-out 60ms backwards markup-help-in;position:fixed;top:24px;left:50%;transform:translate(-50%)}@keyframes markup-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes markup-help-in{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}.markup-popover{width:360px;max-width:calc(100vw - 24px);height:auto;max-height:calc(100dvh - 24px);inset:auto;left:var(--markup-pop-x,0);top:var(--markup-pop-y,0);background:var(--markup-paper);color:var(--markup-ink);border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius);box-shadow:var(--markup-shadow);pointer-events:auto;flex-direction:column;gap:0;margin:0;padding:0;animation:.16s ease-out markup-popover-in;display:flex;position:fixed;overflow:hidden}@supports (anchor-name:--x){.markup-popover{position-anchor:--markup-active-anchor;left:calc(anchor(right) + 8px);top:calc(anchor(top) - 9px);position-try-fallbacks:flip-block, flip-inline, flip-block flip-inline;position-try-order:most-block-size}.markup-popover.is-floating{left:var(--markup-pop-x,0);top:var(--markup-pop-y,0);position-try-fallbacks:none}}.markup-popover.is-hud-hidden{display:none}@keyframes markup-popover-in{0%{opacity:0;transform:translateY(-4px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.markup-popover-header{border-bottom:1px solid var(--markup-border);cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.markup-popover.is-dragging .markup-popover-header{cursor:grabbing}.markup-popover-header-actions{align-items:center;gap:4px;display:flex}.markup-popover-title{min-width:0;font-family:var(--markup-font-mono);letter-spacing:.02em;color:var(--markup-muted);white-space:nowrap;text-overflow:ellipsis;flex:auto;font-size:11px;line-height:1;overflow:hidden}.markup-thread-menu{display:flex;position:relative}.markup-thread-menu-list{z-index:10;background:var(--markup-paper);border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius);min-width:160px;box-shadow:var(--markup-shadow);padding:4px;animation:.12s ease-out markup-menu-in;position:absolute;top:calc(100% + 6px);right:0}.markup-thread-menu-item{border-radius:var(--markup-radius-sm);width:100%;color:var(--markup-ink);text-align:left;cursor:pointer;background:0 0;border:none;padding:7px 10px;font-size:13px;transition:background .1s,color .1s;display:block}.markup-thread-menu-item:hover{background:var(--markup-border)}.markup-thread-menu-item.is-danger{color:var(--markup-danger,#dc2626)}.markup-thread-menu-item.is-danger:hover{background:color-mix(in srgb, var(--markup-danger,#dc2626) 10%, transparent)}.markup-thread-menu-item:disabled{opacity:.5;cursor:default}@keyframes markup-menu-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.markup-popover-body{border-top:1px solid var(--markup-border);background:var(--markup-paper);flex-direction:column;gap:6px;padding:10px 12px 8px;display:flex}.markup-popover-header+.markup-popover-body{border-top:none}.markup-popover-byline{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.markup-popover-name{color:var(--markup-ink);font-weight:500}.markup-icon-btn{border-radius:var(--markup-radius-sm);width:24px;height:24px;color:var(--markup-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:background .12s,color .12s,transform .12s cubic-bezier(.2,.7,.2,1);display:inline-flex}.markup-icon-btn:hover,.markup-icon-btn.is-open{background:var(--markup-border);color:var(--markup-ink)}.markup-icon-btn:active{transform:scale(.97)}.markup-comments{flex-direction:column;max-height:420px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.markup-comment{border-bottom:1px solid var(--markup-border);grid-template-columns:26px 1fr;align-items:start;gap:0 10px;padding:12px;display:grid}.markup-comment:last-child{border-bottom:none}.markup-comment>:not(.markup-comment-avatar){grid-column:2}.markup-comment.is-new{animation:.2s cubic-bezier(.2,.7,.2,1) markup-comment-in}@keyframes markup-comment-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.markup-comment-avatar{background:var(--markup-border);width:26px;height:26px;color:var(--markup-ink);font-family:var(--markup-font-mono);letter-spacing:.02em;text-transform:uppercase;-webkit-user-select:none;user-select:none;border-radius:999px;grid-area:1/1/span 4;justify-content:center;align-items:center;margin-top:-3px;font-size:10.5px;font-weight:600;display:inline-flex;overflow:hidden}.markup-avatar-initials{text-box-trim:trim-both;text-box-edge:cap alphabetic;line-height:1}.markup-avatar-img{object-fit:cover;width:100%;height:100%;display:block}.markup-comment-avatar[data-tone=\"1\"]{color:oklch(25% .07 230);background:oklch(85% .07 200)}.markup-comment-avatar[data-tone=\"2\"]{color:oklch(30% .1 150);background:oklch(88% .07 130)}.markup-comment-avatar[data-tone=\"3\"]{color:oklch(35% .1 40);background:oklch(90% .05 50)}.markup-comment-avatar[data-tone=\"4\"]{color:oklch(30% .1 320);background:oklch(87% .07 320)}.markup-comment-avatar[data-tone=\"5\"]{color:oklch(32% .09 70);background:oklch(88% .06 80)}.markup-comment-meta{align-items:center;gap:8px;min-width:0;margin-bottom:4px;font-size:13px;display:flex}.markup-comment-author{color:var(--markup-ink);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:13px;font-weight:600;overflow:hidden}.markup-comment-badge{background:color-mix(in srgb, var(--markup-team) 12%, transparent);height:14px;color:var(--markup-team);font-family:var(--markup-font-mono);letter-spacing:.12em;text-transform:uppercase;border-radius:999px;align-items:center;padding:0 5px;font-size:9px;font-weight:500;line-height:1;display:inline-flex}.markup-comment-badge.is-agent{background:color-mix(in srgb, var(--markup-brand) 14%, transparent);color:var(--markup-brand);letter-spacing:normal;justify-content:center;width:14px;padding:0}.markup-comment-time{color:var(--markup-muted);font-family:var(--markup-font-mono);letter-spacing:.04em;white-space:nowrap;flex-shrink:0;font-size:10.5px}.markup-comment-body{color:var(--markup-ink);white-space:pre-wrap;word-break:break-word;margin:0;font-size:13.5px;line-height:19px}.markup-comment-edited{color:var(--markup-muted);font-family:var(--markup-font-mono);margin-left:2px;font-size:10.5px}.markup-comment-edited:before{content:\" · \"}.markup-thread-actions{align-items:center;gap:4px;display:flex}.markup-comment-meta .markup-reaction-picker-wrap,.markup-thread-actions{margin-left:auto}.markup-comment-meta .markup-reaction-add{width:22px;height:22px;margin-top:-4px;margin-bottom:-4px}.markup-reaction-picker-wrap>.markup-icon-btn,.markup-comment-menu>.markup-icon-btn{margin-top:-4px;margin-bottom:-4px}.markup-comment-menu.is-up .markup-thread-menu-list{animation-name:markup-menu-in-up;top:auto;bottom:calc(100% + 6px)}.markup-comment-menu.is-side .markup-thread-menu-list{animation-name:markup-menu-in-side;top:-4px;right:calc(100% + 2px)}@keyframes markup-menu-in-side{0%{opacity:0;transform:translate(4px)}to{opacity:1;transform:translate(0)}}@keyframes markup-menu-in-up{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.markup-comment{position:relative}.markup-reactions{flex-wrap:wrap;align-items:center;gap:4px;margin-top:6px;display:flex}.markup-reaction-chip{border:1px solid var(--markup-border);background:var(--markup-surface-3);color:var(--markup-ink);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:4px;padding:2px 7px;font-size:11.5px;line-height:1.2;transition:background .12s,border-color .12s;display:inline-flex}.markup-reaction-chip:hover:not(:disabled){background:var(--markup-hover)}.markup-reaction-chip.is-mine{background:var(--markup-accent-soft);border-color:color-mix(in srgb, var(--markup-brand) 50%, transparent);color:var(--markup-accent-ink)}.markup-reaction-chip.is-mine:hover:not(:disabled){background:color-mix(in srgb, var(--markup-brand) 18%, transparent)}.markup-reaction-chip:disabled{cursor:default;opacity:.6}.markup-reaction-emoji{font-size:13px;line-height:1}.markup-reaction-count{font-family:var(--markup-font-mono);letter-spacing:.04em;color:var(--markup-muted);font-size:10.5px}.markup-reaction-chip.is-mine .markup-reaction-count{color:var(--markup-accent-ink)}.markup-reaction-picker-wrap{opacity:0;flex:none;transition:opacity .12s;display:inline-flex;position:relative}.markup-comment:hover .markup-reaction-picker-wrap,.markup-comment:focus-within .markup-reaction-picker-wrap,.markup-reaction-picker-wrap.is-open{opacity:1}.markup-reaction-add{width:22px;height:22px;color:var(--markup-muted);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;font-size:13px;line-height:1;transition:background .12s,color .12s;display:inline-flex}.markup-reaction-add:hover,.markup-reaction-add.is-open{background:var(--markup-hover);color:var(--markup-ink)}.markup-reaction-picker{z-index:1;border:1px solid var(--markup-border-strong);background:var(--markup-paper);border-radius:8px;gap:2px;padding:4px;animation:.12s markup-menu-in;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 1px 2px #1a16140f,0 8px 28px #1a16141a}.markup-reaction-picker-wrap.is-up .markup-reaction-picker{animation-name:markup-menu-in-up;top:auto;bottom:calc(100% + 6px)}.markup-reaction-picker-wrap.is-side .markup-reaction-picker{animation-name:markup-menu-in-side;top:-4px;right:calc(100% + 2px)}.markup-reaction-picker-item{cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;font-size:16px;line-height:1;transition:background .12s;display:inline-flex}.markup-reaction-picker-item:hover{background:color-mix(in srgb, var(--markup-ink) 8%, transparent)}.markup-reaction-picker-item.is-mine{background:color-mix(in srgb, var(--markup-brand) 14%, transparent)}.markup-comment-edit-form{flex-direction:column;gap:6px;display:flex}.markup-comment-edit-actions{justify-content:flex-end;gap:6px;display:flex}.markup-composer{flex-direction:column;display:flex;position:relative}.markup-composer-input{width:100%;min-height:38px;max-height:120px;color:var(--markup-ink);font-family:var(--markup-font);background:0 0;border:none;border-radius:0;padding:2px 0;font-size:13.5px;line-height:19px;transition:none;overflow-y:auto}.markup-composer-input:focus-visible{box-shadow:none;outline:none}.markup-composer-footer-wrap{grid-template-rows:0fr;transition:grid-template-rows .15s;display:grid}.markup-composer.is-filled .markup-composer-footer-wrap{grid-template-rows:1fr}.markup-composer-footer{opacity:0;background:0 0;border:none;border-radius:0;justify-content:space-between;align-items:center;gap:8px;padding:0;transition:opacity .1s;display:flex;overflow:hidden}.markup-composer.is-filled .markup-composer-footer{opacity:1;transition-delay:60ms}.markup-composer-hint{font-family:var(--markup-font-mono);letter-spacing:.04em;color:var(--markup-muted);align-items:center;gap:3px;font-size:10.5px;display:inline-flex}.markup-composer-hint-label{margin-left:2px}.markup-composer-error{color:var(--markup-brand)}.markup-composer-actions{align-items:center;gap:6px;display:flex}.markup-composer .markup-btn-primary{background:var(--markup-ink);height:26px;color:var(--markup-paper);border-radius:6px;padding:0 10px}.markup-composer .markup-btn-primary:hover:not(:disabled){background:color-mix(in srgb, var(--markup-ink) 88%, var(--markup-paper))}.markup-composer-actions-empty{transition:opacity .12s;position:absolute;bottom:0;right:0}.markup-composer.is-filled .markup-composer-actions-empty{opacity:0;pointer-events:none}.markup-author-prompt{flex-direction:column;gap:10px;padding:12px;display:flex}.markup-author-status{color:var(--markup-muted);margin:0;font-size:12px}.markup-input{border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius-sm);background:var(--markup-paper);width:100%;height:36px;color:var(--markup-ink);outline:none;padding:0 10px;font-size:14px;transition:border-color .12s,box-shadow .12s}.markup-input:focus-visible{border-color:var(--markup-brand);box-shadow:0 0 0 3px #e35d2a2e}.markup-btn{border-radius:var(--markup-radius-sm);height:30px;color:var(--markup-ink);cursor:pointer;letter-spacing:-.01em;white-space:nowrap;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:0 8px;font-size:12px;font-weight:500;transition:background .12s,border-color .12s,color .12s,opacity .12s,transform .12s cubic-bezier(.2,.7,.2,1);display:inline-flex}.markup-btn:disabled{opacity:.5;cursor:not-allowed}.markup-btn:active:not(:disabled){transform:scale(.97)}.markup-btn-primary{background:var(--markup-ink);color:var(--markup-paper)}.markup-btn-primary:hover:not(:disabled){background:var(--markup-brand)}.markup-btn-ghost{color:var(--markup-muted)}.markup-btn-ghost:hover:not(:disabled){background:var(--markup-border);color:var(--markup-ink)}.markup-screenshot-row{border:1px dashed var(--markup-border-strong);color:var(--markup-muted);border-radius:6px;align-items:center;gap:8px;margin-top:0;padding:6px 8px;font-size:11.5px;display:flex}.markup-screenshot-status{color:var(--markup-muted);font-family:var(--markup-font-mono);letter-spacing:.04em;align-items:center;gap:5px;font-size:11px;display:flex}.markup-screenshot-row.is-failed{opacity:.85;border-style:dotted}.markup-screenshot-toggle{cursor:pointer;color:var(--markup-muted);font-family:var(--markup-font-mono);letter-spacing:.04em;align-items:center;gap:5px;font-size:11px;transition:color .12s;display:flex}.markup-screenshot-toggle:hover{color:var(--markup-ink)}.markup-screenshot-checkbox{width:12px;height:12px;accent-color:var(--markup-brand);cursor:pointer;margin:0}.markup-screenshot-thumb{border:1px solid var(--markup-border-strong);object-fit:cover;border-radius:3px;flex-shrink:0;width:auto;height:25px;margin:-5px 0 -5px auto;display:block}.markup-screenshot-redacted{font-family:var(--markup-font-mono);color:var(--markup-muted);margin-left:auto;font-size:10px}.markup-screenshot-redacted-chip{background:color-mix(in srgb, var(--markup-success,oklch(62% .16 150)) 16%, transparent);color:var(--markup-success,oklch(62% .16 150));font-family:var(--markup-font-mono);cursor:pointer;border:none;border-radius:999px;align-items:center;gap:3px;padding:1px 7px;font-size:10px;display:inline-flex}.markup-screenshot-redacted-chip:hover{filter:brightness(1.05)}.markup-screenshot-redacted-arrow{font-style:normal}.markup-screenshot-redacted-list{margin-top:3px;padding-left:10px}.markup-screenshot-redacted-selector{font-family:var(--markup-font-mono);color:var(--markup-muted);font-size:9px;display:block}.markup-screenshot-help{font-family:var(--markup-font-mono);color:var(--markup-muted);margin:5px 0 0;font-size:10px;line-height:1.5}.markup-screenshot-help-code{font-family:var(--markup-font-mono);color:var(--markup-ink)}.markup-comment-screenshot{border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius-sm);cursor:pointer;background:0 0;margin-top:8px;padding:0;transition:border-color .12s,opacity .12s;display:block;overflow:hidden}.markup-comment-screenshot:hover{border-color:var(--markup-brand);opacity:.9}.markup-comment-screenshot img{object-fit:cover;object-position:top;width:100%;height:auto;max-height:120px;display:block}.markup-lightbox{background:#1a1614e0;border:none;width:100%;max-width:100%;height:100%;max-height:100%;margin:0;padding:24px;position:fixed;inset:0}.markup-lightbox[open]{justify-content:center;align-items:center;display:flex}.markup-lightbox::backdrop{display:none}.markup-lightbox-img{border-radius:var(--markup-radius);object-fit:contain;max-width:100%;max-height:100%;box-shadow:var(--markup-shadow);animation:.16s ease-out markup-lightbox-in}.markup-lightbox-close{color:#fdfcfa;background:#1a161499;position:absolute;top:16px;right:16px}.markup-lightbox-close:hover{color:#fdfcfa;background:#1a1614d9}@keyframes markup-lightbox-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.markup-toolbar,.markup-tb-btn,.markup-tb-badge,.markup-comment,.markup-pin,.markup-icon-btn,.markup-btn,.markup-popover,.markup-pin-ghost,.markup-placement-overlay,.markup-placement-cursor-help,.markup-lightbox-img{transition:none;animation:none}}.markup-mention-chip{background:var(--markup-accent-soft);color:var(--markup-accent-ink);border-radius:3px;padding:0 2px;font-weight:500;display:inline-block}.markup-mention-input{white-space:pre-wrap;overflow-wrap:anywhere;cursor:text;outline:none;position:relative}.markup-mention-input[aria-disabled=true]{opacity:.6;cursor:default}.markup-mention-input[data-empty]:before{content:attr(data-placeholder);color:var(--markup-muted);pointer-events:none;position:absolute;inset:0 auto auto 0}.markup-mention-input .markup-mention-chip{white-space:nowrap;padding:0 3px}.markup-comment-edit-input{border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius-sm);background:var(--markup-paper);width:100%;min-height:58px;max-height:200px;color:var(--markup-ink);font:inherit;padding:8px 10px;font-size:13px;line-height:1.5;overflow-y:auto}.markup-comment-edit-input:focus-visible{border-color:var(--markup-brand);box-shadow:0 0 0 3px #e35d2a2e}.markup-comment-edit-input[data-empty]:before{inset:8px auto auto 10px}.markup-mention-picker{z-index:10;background:var(--markup-paper);border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius-sm);max-height:180px;box-shadow:var(--markup-shadow);margin:0 0 4px;padding:4px;list-style:none;position:absolute;bottom:100%;left:0;right:0;overflow-y:auto}.markup-mention-picker-item{border-radius:var(--markup-radius-sm);cursor:pointer;color:var(--markup-ink);justify-content:space-between;align-items:center;gap:8px;padding:6px 8px;font-size:13px;display:flex}.markup-mention-picker-item.is-active{background:color-mix(in srgb, var(--markup-brand) 12%, transparent)}.markup-mention-picker-name{font-weight:500}.markup-mention-picker-trigger{color:var(--markup-muted);font-family:var(--markup-font-mono);font-size:10px}.markup-notifications-panel{max-height:min(60vh,420px);color:var(--markup-ink);flex-direction:column;display:flex}.markup-notifications-panel-header{border-bottom:1px solid var(--markup-border);align-items:center;gap:8px;padding:8px 10px;display:flex}.markup-notifications-panel-header .markup-eyebrow{flex:1}.markup-notifications-panel-actions{align-items:center;gap:8px;display:flex}.markup-notifications-panel-mark-all{color:var(--markup-muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:11px}.markup-notifications-panel-mark-all:hover{color:var(--markup-ink)}.markup-notifications-panel-body{flex:1;overflow-y:auto}.markup-notifications-panel-empty,.markup-notifications-panel-error{text-align:center;color:var(--markup-muted);padding:24px 12px;font-size:12px}.markup-notifications-panel-empty-title{color:var(--markup-ink);margin:0 0 4px;font-weight:500}.markup-notifications-panel-empty-sub{color:var(--markup-muted);margin:0;line-height:1.4}.markup-notifications-panel-error{color:var(--markup-danger,#b91c1c)}.markup-notifications-panel-list{margin:0;padding:4px;list-style:none}.markup-notifications-panel-row{border-radius:var(--markup-radius-sm);text-align:start;cursor:pointer;width:100%;font:inherit;color:inherit;background:0 0;border:none;flex-direction:column;gap:4px;padding:8px 10px;display:flex}.markup-notifications-panel-row:hover{background:color-mix(in srgb, var(--markup-brand) 8%, transparent)}.markup-notifications-panel-row.is-unread{background:color-mix(in srgb, var(--markup-brand) 5%, transparent)}.markup-notifications-panel-meta{align-items:center;gap:6px;font-size:11px;display:flex}.markup-notifications-panel-dot{background:var(--markup-brand);border-radius:999px;flex-shrink:0;width:6px;height:6px}.markup-notifications-panel-actor{font-weight:600}.markup-notifications-panel-sep{color:var(--markup-muted)}.markup-notifications-panel-time{color:var(--markup-muted);font-family:var(--markup-font-mono);font-size:10px}.markup-notifications-panel-thread{color:var(--markup-muted);margin:0;font-size:12px}.markup-notifications-panel-thread-title{color:var(--markup-ink)}.markup-notifications-panel-excerpt{color:color-mix(in srgb, var(--markup-ink) 80%, transparent);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:12px;font-style:italic;display:-webkit-box;overflow:hidden}.markup-panel-pop{z-index:11;pointer-events:auto;width:380px;max-width:calc(100vw - 24px);position:fixed;bottom:76px}.markup-panel-pop[data-panel=privacy]{width:340px}.markup-panel-pop[data-panel=shortcuts]{width:320px}.markup-panel-pop-right{right:22px}.markup-panel-pop-left{left:22px}.markup-panel-pop-center{left:50%;transform:translate(-50%)}.markup-panel-pop .markup-pop{width:100%;animation:.14s cubic-bezier(.2,.7,.2,1) markup-pop-in;position:static}.markup-panel-pop .markup-notifications-panel{max-height:min(60vh,480px)}.markup-panel-pop .markup-notifications-panel-header{padding:12px 14px}.markup-panel-pop .markup-notifications-panel-header .markup-icon-btn{display:none}.markup-pop[data-pop=privacy],.markup-pop[data-pop=shortcuts]{padding:0}.markup-panel{max-height:min(70vh,520px);color:var(--markup-ink);flex-direction:column;display:flex}.markup-panel-header{border-bottom:1px solid var(--markup-border);align-items:center;gap:8px;padding:12px 14px;display:flex}.markup-panel-header .markup-eyebrow{flex:1}.markup-panel-body{flex:1;padding:4px 14px 14px;overflow-y:auto}.markup-panel-section{border-bottom:1px solid var(--markup-border);padding:10px 0}.markup-panel-section:last-child{border-bottom:none;padding-bottom:2px}.markup-panel-section-title{font-family:var(--markup-font-mono);letter-spacing:.06em;text-transform:lowercase;color:var(--markup-muted);margin:0 0 6px;font-size:10px;font-weight:400}.markup-panel-text{color:var(--markup-ink-soft);margin:0;font-size:12.5px;line-height:1.5}.markup-panel-text strong{color:var(--markup-ink);font-weight:600}.markup-panel-mono{font-family:var(--markup-font-mono);color:var(--markup-ink);word-break:break-all;font-size:11.5px}.markup-panel-list{color:var(--markup-ink-soft);margin:0;padding-left:16px;font-size:12.5px;line-height:1.5}.markup-panel-list li{margin-bottom:3px}.markup-panel-list li::marker{color:var(--markup-muted)}.markup-panel-note{color:var(--markup-muted);margin:8px 0 0;font-size:11.5px;line-height:1.45}.markup-panel-error{color:var(--markup-danger);margin:8px 0 0;font-size:11.5px;line-height:1.45}.markup-panel-action{border:1px solid var(--markup-border-strong);width:100%;height:30px;color:var(--markup-ink);font:inherit;cursor:pointer;background:0 0;border-radius:7px;margin-top:10px;padding:0 10px;font-size:12.5px;transition:background .12s,border-color .12s,color .12s}.markup-panel-action:hover:not(:disabled){background:var(--markup-hover)}.markup-panel-action:disabled{opacity:.6;cursor:default}.markup-panel-action.is-danger{border-color:color-mix(in srgb, var(--markup-danger) 45%, transparent);color:var(--markup-danger)}.markup-panel-action.is-danger:hover:not(:disabled){background:color-mix(in srgb, var(--markup-danger) 10%, transparent)}.markup-shortcut-list{margin:0;padding:0;list-style:none}.markup-shortcut-row{align-items:center;gap:10px;min-height:24px;padding:2px 0;display:flex}.markup-shortcut-label{min-width:0;color:var(--markup-ink-soft);flex:1;font-size:12.5px;line-height:1.4}.markup-shortcut-keys{flex-shrink:0;align-items:center;gap:4px;display:inline-flex}.markup-shortcut-chord{align-items:center;gap:3px;display:inline-flex}.markup-shortcut-or{color:var(--markup-muted);margin-right:1px;font-size:10px}", pe = 1e4, N = 20, me = 60, he = null, ge = [], P = null, _e = !1, ve = ye();
|
|
252
|
-
function
|
|
251
|
+
var de = ":host{--markup-paper:#fdfcfa;--markup-surface:#fff;--markup-surface-2:oklch(98.5% .002 250);--markup-surface-3:oklch(95% .003 250);--markup-hover:oklch(95% .003 250);--markup-ink:#1a1614;--markup-ink-soft:oklch(32% .005 250);--markup-muted:#6b6661;--markup-border:#1a16141a;--markup-border-strong:#1a16142e;--markup-brand:#e35d2a;--markup-brand-hover:#c84d20;--markup-accent-soft:oklch(95% .04 60);--markup-accent-ink:oklch(45% .14 38);--markup-accent-glow:color-mix(in srgb, var(--markup-brand) 28%, transparent);--markup-team:#2a4ac8;--markup-shadow:0 1px 2px #1a16140f, 0 8px 28px #1a16141f;--markup-shadow-toolbar:0 1px 1px #0000000a, 0 4px 10px -2px #0f14281a, 0 18px 36px -12px #0f14282e;--markup-shadow-pop:0 1px 1px #0000000a, 0 8px 24px -6px #0f14281f, 0 28px 60px -18px #0f142838;--markup-overlay-tint:#1a16140a;--markup-danger:#dc2626;--markup-success:oklch(62% .16 150);--markup-radius:6px;--markup-radius-sm:4px;--markup-font:\"Geist Variable\", \"Geist\", ui-sans-serif, -apple-system, BlinkMacSystemFont, \"Segoe UI\", system-ui, sans-serif;--markup-font-mono:\"Geist Mono Variable\", \"Geist Mono\", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;all:initial;font-family:var(--markup-font);color:var(--markup-ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.5}:host([data-theme=dark]){--markup-paper:#1a1614;--markup-surface:oklch(16% .005 250);--markup-surface-2:oklch(20% .005 250);--markup-surface-3:oklch(24% .005 250);--markup-hover:oklch(24% .005 250);--markup-ink:#fdfcfa;--markup-ink-soft:oklch(80% .005 250);--markup-muted:#a8a39e;--markup-border:#fdfcfa1f;--markup-border-strong:#fdfcfa38;--markup-team:#7b99f0;--markup-accent-soft:color-mix(in srgb, var(--markup-brand) 22%, transparent);--markup-accent-ink:oklch(86% .13 55);--markup-shadow:0 1px 2px #00000059, 0 12px 40px #00000073;--markup-shadow-toolbar:0 1px 0 #ffffff0a inset, 0 1px 2px #0006, 0 12px 30px -10px #0000008c, 0 28px 60px -20px #00000080;--markup-shadow-pop:0 1px 0 #ffffff0a inset, 0 8px 24px -6px #00000073, 0 28px 60px -18px #0000008c;--markup-overlay-tint:#fdfcfa0d;--markup-danger:#f87171}@media (prefers-color-scheme:dark){:host(:not([data-theme])){--markup-paper:#1a1614;--markup-surface:oklch(16% .005 250);--markup-surface-2:oklch(20% .005 250);--markup-surface-3:oklch(24% .005 250);--markup-hover:oklch(24% .005 250);--markup-ink:#fdfcfa;--markup-ink-soft:oklch(80% .005 250);--markup-muted:#a8a39e;--markup-border:#fdfcfa1f;--markup-border-strong:#fdfcfa38;--markup-team:#7b99f0;--markup-accent-soft:color-mix(in srgb, var(--markup-brand) 22%, transparent);--markup-accent-ink:oklch(86% .13 55);--markup-shadow:0 1px 2px #00000059, 0 12px 40px #00000073;--markup-shadow-toolbar:0 1px 0 #ffffff0a inset, 0 1px 2px #0006, 0 12px 30px -10px #0000008c, 0 28px 60px -20px #00000080;--markup-shadow-pop:0 1px 0 #ffffff0a inset, 0 8px 24px -6px #00000073, 0 28px 60px -18px #0000008c;--markup-overlay-tint:#fdfcfa0d;--markup-danger:#f87171}}.markup-sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.markup-shadow-root{font-family:var(--markup-font)}.markup-shadow-root *,.markup-shadow-root :before,.markup-shadow-root :after{box-sizing:border-box}:where(.markup-shadow-root button,.markup-shadow-root input,.markup-shadow-root textarea){font:inherit;color:inherit}.markup-eyebrow{font-family:var(--markup-font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--markup-muted);font-size:10px;font-weight:500}.markup-toolbar{z-index:10;background:var(--markup-surface);border:1px solid var(--markup-border);pointer-events:none;height:44px;box-shadow:var(--markup-shadow-toolbar);border-radius:9999px;align-items:center;gap:2px;padding:4px;transition:box-shadow .15s,left .22s cubic-bezier(.2,.7,.2,1),transform .22s cubic-bezier(.2,.7,.2,1);display:inline-flex;position:fixed;bottom:22px;left:100%;transform:translate(calc(-100% - 22px))}.markup-toolbar>*{pointer-events:auto}.markup-tb-btn{width:36px;height:36px;color:var(--markup-ink-soft);cursor:pointer;touch-action:none;font-family:var(--markup-font);background:0 0;border:1px solid #0000;border-radius:9999px;justify-content:center;align-items:center;gap:6px;padding:0;font-size:13px;font-weight:500;transition:background .12s,color .12s,transform .12s cubic-bezier(.2,.7,.2,1);display:inline-flex;position:relative}.markup-tb-btn:hover{background:var(--markup-hover);color:var(--markup-ink)}.markup-tb-btn:active{transform:scale(.97)}.markup-tb-btn:focus-visible{box-shadow:0 0 0 2px var(--markup-surface), 0 0 0 4px var(--markup-accent-glow);outline:none}.markup-tb-btn[data-on=true]{background:var(--markup-ink);color:var(--markup-paper)}@media (prefers-color-scheme:dark){:host(:not([data-theme])) .markup-tb-btn[data-on=true]{background:var(--markup-surface-3);color:var(--markup-ink)}}:host([data-theme=dark]) .markup-tb-btn[data-on=true]{background:var(--markup-surface-3);color:var(--markup-ink)}.markup-tb-btn[data-armed=true]{background:var(--markup-brand);color:#fff}.markup-tb-btn[data-armed=true]:hover{background:var(--markup-brand-hover);color:#fff}.markup-tb-btn[disabled]{color:color-mix(in srgb, var(--markup-muted) 60%, transparent);cursor:default}.markup-tb-btn[disabled]:hover{color:color-mix(in srgb, var(--markup-muted) 60%, transparent);background:0 0}.markup-tb-btn[data-kind=identity]{gap:6px;width:auto;padding:0 4px}.markup-tb-avatar{background:var(--markup-surface-3);width:28px;height:28px;font-family:var(--markup-font-mono);color:var(--markup-ink);border:1px solid var(--markup-border);border-radius:9999px;flex-shrink:0;justify-content:center;align-items:center;font-size:10.5px;font-weight:600;display:inline-flex;overflow:hidden}.markup-tb-avatar.is-anon{color:var(--markup-muted);background:var(--markup-surface-2)}.markup-tb-sep{background:var(--markup-border);flex-shrink:0;width:1px;height:20px;margin:0 4px}.markup-tb-badge{background:var(--markup-brand);color:#fff;min-width:16px;height:16px;font-family:var(--markup-font-mono);box-shadow:0 0 0 2px var(--markup-surface);pointer-events:none;border-radius:9999px;justify-content:center;align-items:center;padding:0 4px;font-size:9.5px;font-weight:600;line-height:1;transition:transform .15s cubic-bezier(.2,.7,.2,1),opacity .15s cubic-bezier(.2,.7,.2,1);display:inline-flex;position:absolute;top:0;right:0}.markup-tb-badge[data-unread=false]{opacity:0;transform:scale(.5)}.markup-toolbar-left{left:0;transform:translate(22px)}.markup-toolbar-center{left:50%;transform:translate(-50%)}.markup-toolbar-right{left:100%;transform:translate(calc(-100% - 22px))}.markup-pop{background:var(--markup-surface);border:1px solid var(--markup-border);box-shadow:var(--markup-shadow-pop);color:var(--markup-ink);z-index:11;border-radius:12px;font-size:13px;animation:.14s cubic-bezier(.2,.7,.2,1) markup-pop-in;position:absolute;bottom:calc(100% + 8px);overflow:hidden}.markup-pop[data-pop=overflow]{width:260px;padding:6px}.markup-pop[data-pop=identity]{width:240px;padding:6px}.markup-pop[data-pop=inbox]{width:380px;padding:0}.markup-pop.is-anchor-right{right:0}.markup-pop.is-anchor-left{left:0}.markup-pop.is-anchor-center{left:50%;transform:translate(-50%)}@keyframes markup-pop-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.markup-pop.is-anchor-center{animation-name:markup-pop-in-center}@keyframes markup-pop-in-center{0%{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%)}}.markup-pop-group-label{font-family:var(--markup-font-mono);letter-spacing:.06em;color:var(--markup-muted);text-transform:lowercase;padding:8px 10px 4px;font-size:10px}.markup-segmented-row{border-radius:6px;align-items:center;gap:10px;padding:7px 8px;display:flex}.markup-segmented-row .lbl{min-width:0;color:var(--markup-ink);flex:1;font-size:13px}.markup-segmented{background:var(--markup-surface-3);border-radius:7px;gap:2px;padding:2px;display:inline-flex}.markup-segmented button{font:inherit;width:28px;height:24px;color:var(--markup-muted);cursor:pointer;background:0 0;border:none;border-radius:5px;justify-content:center;align-items:center;padding:0;transition:background .1s,color .1s;display:inline-flex}.markup-segmented button:hover{color:var(--markup-ink)}.markup-segmented button.is-on{background:var(--markup-surface);color:var(--markup-ink);box-shadow:0 1px 2px #0000000d}.markup-menu-row{cursor:pointer;width:100%;color:inherit;text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;gap:10px;padding:7px 8px;font-family:inherit;font-size:13px;display:flex}.markup-menu-row:hover{background:var(--markup-hover)}.markup-menu-row:disabled{opacity:.5;cursor:default}.markup-menu-row:disabled:hover{background:0 0}.markup-menu-row .ic{width:16px;height:16px;color:var(--markup-muted);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.markup-menu-row .lbl{flex-direction:column;flex:1;min-width:0;display:flex}.markup-menu-row .lbl .sub{color:var(--markup-muted);margin-top:1px;font-size:11px}.markup-menu-row .right{font-family:var(--markup-font-mono);color:var(--markup-muted);margin-left:auto;font-size:10.5px}.markup-menu-row.is-danger,.markup-menu-row.is-danger .ic{color:var(--markup-danger)}.markup-menu-row.is-danger:hover{background:color-mix(in srgb, var(--markup-danger) 10%, transparent)}.markup-menu-row .switch{background:var(--markup-border-strong);border-radius:9999px;flex-shrink:0;width:26px;height:16px;transition:background .12s;position:relative}.markup-menu-row .switch:after{content:\"\";background:var(--markup-surface);border-radius:9999px;width:12px;height:12px;transition:left .12s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000026}.markup-menu-row[data-on=true] .switch{background:var(--markup-brand)}.markup-menu-row[data-on=true] .switch:after{left:12px}.markup-menu-divider{background:var(--markup-border);height:1px;margin:4px 0}.markup-brand-line{font-family:var(--markup-font-mono);color:var(--markup-muted);border-top:1px solid var(--markup-border);align-items:center;gap:8px;margin-top:6px;padding:8px 10px;font-size:10.5px;text-decoration:none;display:flex}.markup-brand-line:hover{color:var(--markup-ink)}.markup-brand-line svg{color:var(--markup-brand)}.markup-brand-line .ver{margin-left:auto}.markup-id-who{border-bottom:1px solid var(--markup-border);flex-direction:column;gap:2px;margin-bottom:4px;padding:10px 8px 12px;display:flex}.markup-id-who .nm{color:var(--markup-ink);font-size:13.5px;font-weight:600}.markup-id-who .em{font-family:var(--markup-font-mono);color:var(--markup-muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.markup-id-anon{text-align:left;flex-direction:column;gap:10px;padding:14px 10px;display:flex}.markup-id-anon .h{letter-spacing:-.005em;color:var(--markup-ink);font-size:14px;font-weight:600}.markup-id-anon .sub{color:var(--markup-muted);font-size:12.5px;line-height:18px}.markup-id-anon button:not(.markup-menu-row){background:var(--markup-ink);width:100%;color:var(--markup-paper);height:32px;font:inherit;cursor:pointer;border:none;border-radius:7px;justify-content:center;align-items:center;gap:6px;font-size:13px;font-weight:500;display:inline-flex}.markup-id-anon button:disabled{opacity:.7;cursor:default}.markup-id-anon button:not(.markup-menu-row):hover:not(:disabled){background:color-mix(in srgb, var(--markup-ink) 88%, var(--markup-surface))}.markup-hud-hidden-toast{z-index:10;background:var(--markup-ink);color:var(--markup-paper);letter-spacing:-.01em;box-shadow:var(--markup-shadow);pointer-events:none;border-radius:999px;align-items:center;gap:6px;padding:8px 14px;font-size:12px;font-weight:500;animation:.22s ease-out markup-hud-hidden-in,.32s ease-in 4.6s forwards markup-hud-hidden-out;display:inline-flex;position:fixed;bottom:24px}.markup-hud-hidden-toast-right{right:24px}.markup-hud-hidden-toast-left{left:24px}.markup-hud-hidden-toast-center{width:max-content;margin-inline:auto;left:0;right:0}.markup-kbd{background:color-mix(in srgb, var(--markup-paper) 14%, transparent);min-width:18px;height:18px;color:var(--markup-paper);font-family:var(--markup-font);border-radius:4px;justify-content:center;align-items:center;padding:0 5px;font-size:10px;font-weight:600;line-height:1;display:inline-flex}.markup-kbd.is-inline{background:color-mix(in srgb, var(--markup-ink) 8%, transparent);min-width:14px;height:14px;color:var(--markup-muted);border-radius:3px;padding:0 3px;font-size:9.5px}@keyframes markup-hud-hidden-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes markup-hud-hidden-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(4px)}}.markup-pins-layer{pointer-events:none;position:fixed;inset:0}.markup-pin{border:2px solid var(--markup-paper);background:var(--markup-brand);color:#fff;width:28px;height:28px;font-family:var(--markup-font-mono);cursor:pointer;pointer-events:auto;box-shadow:0 4px 14px -4px #00000059, 0 0 0 1px color-mix(in srgb, var(--markup-brand) 50%, transparent);border-radius:999px 999px 999px 4px;justify-content:center;align-items:center;margin:0;padding:0;font-size:11.5px;font-weight:600;line-height:1;transition:background .15s,color .15s,opacity .15s,top .2s,left .2s;display:inline-flex;position:absolute;transform:translate(-50%,-100%)}.markup-pin:hover{background:color-mix(in oklab, var(--markup-brand) 92%, black)}:host([data-theme=dark]) .markup-pin:hover{background:color-mix(in oklab, var(--markup-brand) 88%, var(--markup-paper))}@media (prefers-color-scheme:dark){:host(:not([data-theme])) .markup-pin:hover{background:color-mix(in oklab, var(--markup-brand) 88%, var(--markup-paper))}}.markup-pin.is-active{background:var(--markup-brand);color:#fff;border-color:var(--markup-paper)}.markup-pin.is-anchor{anchor-name:--markup-active-anchor}.markup-pin.is-unresolved{opacity:.6}.markup-pin-ghost{background:var(--markup-brand);color:#fff;cursor:default;pointer-events:none;animation:1.2s ease-in-out infinite markup-ghost-pulse}.markup-pin-num{pointer-events:none;justify-content:center;align-items:center;display:inline-flex}.markup-pin-count{background:var(--markup-ink);min-width:16px;height:16px;color:var(--markup-paper);font-family:var(--markup-font-mono);text-align:center;border:2px solid var(--markup-paper);pointer-events:none;border-radius:999px;padding:0 4px;font-size:9.5px;font-weight:600;line-height:12px;position:absolute;top:-6px;right:-8px}@keyframes markup-ghost-pulse{0%,to{box-shadow:0 4px 14px -4px #00000059,0 0 #e35d2a66}50%{box-shadow:0 4px 14px -4px #00000059,0 0 0 10px #e35d2a00}}.markup-placement-overlay{background:var(--markup-overlay-tint);pointer-events:none;z-index:1;animation:.18s ease-out markup-overlay-in;position:fixed;inset:0}.markup-placement-cursor-help{background:var(--markup-ink);color:var(--markup-paper);letter-spacing:-.01em;box-shadow:var(--markup-shadow);pointer-events:none;border-radius:999px;padding:10px 16px;font-size:12px;font-weight:500;animation:.22s ease-out 60ms backwards markup-help-in;position:fixed;top:24px;left:50%;transform:translate(-50%)}@keyframes markup-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes markup-help-in{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}.markup-popover{width:360px;max-width:calc(100vw - 24px);height:auto;max-height:calc(100dvh - 24px);inset:auto;left:var(--markup-pop-x,0);top:var(--markup-pop-y,0);background:var(--markup-paper);color:var(--markup-ink);border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius);box-shadow:var(--markup-shadow);pointer-events:auto;flex-direction:column;gap:0;margin:0;padding:0;animation:.16s ease-out markup-popover-in;display:flex;position:fixed;overflow:hidden}@supports (anchor-name:--x){.markup-popover{position-anchor:--markup-active-anchor;left:calc(anchor(right) + 8px);top:calc(anchor(top) - 9px);position-try-fallbacks:flip-block, flip-inline, flip-block flip-inline;position-try-order:most-block-size}.markup-popover.is-floating{left:var(--markup-pop-x,0);top:var(--markup-pop-y,0);position-try-fallbacks:none}}.markup-popover.is-hud-hidden{display:none}@keyframes markup-popover-in{0%{opacity:0;transform:translateY(-4px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.markup-popover-header{border-bottom:1px solid var(--markup-border);cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.markup-popover.is-dragging .markup-popover-header{cursor:grabbing}.markup-popover-header-actions{align-items:center;gap:4px;display:flex}.markup-popover-title{min-width:0;font-family:var(--markup-font-mono);letter-spacing:.02em;color:var(--markup-muted);white-space:nowrap;text-overflow:ellipsis;flex:auto;font-size:11px;line-height:1;overflow:hidden}.markup-thread-menu{display:flex;position:relative}.markup-thread-menu-list{z-index:10;background:var(--markup-paper);border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius);min-width:160px;box-shadow:var(--markup-shadow);padding:4px;animation:.12s ease-out markup-menu-in;position:absolute;top:calc(100% + 6px);right:0}.markup-thread-menu-item{border-radius:var(--markup-radius-sm);width:100%;color:var(--markup-ink);text-align:left;cursor:pointer;background:0 0;border:none;padding:7px 10px;font-size:13px;transition:background .1s,color .1s;display:block}.markup-thread-menu-item:hover{background:var(--markup-border)}.markup-thread-menu-item.is-danger{color:var(--markup-danger,#dc2626)}.markup-thread-menu-item.is-danger:hover{background:color-mix(in srgb, var(--markup-danger,#dc2626) 10%, transparent)}.markup-thread-menu-item:disabled{opacity:.5;cursor:default}@keyframes markup-menu-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.markup-popover-body{border-top:1px solid var(--markup-border);background:var(--markup-paper);flex-direction:column;gap:6px;padding:10px 12px 8px;display:flex}.markup-popover-header+.markup-popover-body{border-top:none}.markup-popover-byline{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.markup-popover-name{color:var(--markup-ink);font-weight:500}.markup-icon-btn{border-radius:var(--markup-radius-sm);width:24px;height:24px;color:var(--markup-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:background .12s,color .12s,transform .12s cubic-bezier(.2,.7,.2,1);display:inline-flex}.markup-icon-btn:hover,.markup-icon-btn.is-open{background:var(--markup-border);color:var(--markup-ink)}.markup-icon-btn:active{transform:scale(.97)}.markup-comments{flex-direction:column;max-height:420px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.markup-comment{border-bottom:1px solid var(--markup-border);grid-template-columns:26px 1fr;align-items:start;gap:0 10px;padding:12px;display:grid}.markup-comment:last-child{border-bottom:none}.markup-comment>:not(.markup-comment-avatar){grid-column:2}.markup-comment.is-new{animation:.2s cubic-bezier(.2,.7,.2,1) markup-comment-in}@keyframes markup-comment-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.markup-comment-avatar{background:var(--markup-border);width:26px;height:26px;color:var(--markup-ink);font-family:var(--markup-font-mono);letter-spacing:.02em;text-transform:uppercase;-webkit-user-select:none;user-select:none;border-radius:999px;grid-area:1/1/span 4;justify-content:center;align-items:center;margin-top:-3px;font-size:10.5px;font-weight:600;display:inline-flex;overflow:hidden}.markup-avatar-initials{text-box-trim:trim-both;text-box-edge:cap alphabetic;line-height:1}.markup-avatar-img{object-fit:cover;width:100%;height:100%;display:block}.markup-comment-avatar[data-tone=\"1\"]{color:oklch(25% .07 230);background:oklch(85% .07 200)}.markup-comment-avatar[data-tone=\"2\"]{color:oklch(30% .1 150);background:oklch(88% .07 130)}.markup-comment-avatar[data-tone=\"3\"]{color:oklch(35% .1 40);background:oklch(90% .05 50)}.markup-comment-avatar[data-tone=\"4\"]{color:oklch(30% .1 320);background:oklch(87% .07 320)}.markup-comment-avatar[data-tone=\"5\"]{color:oklch(32% .09 70);background:oklch(88% .06 80)}.markup-comment-meta{align-items:center;gap:8px;min-width:0;margin-bottom:4px;font-size:13px;display:flex}.markup-comment-author{color:var(--markup-ink);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:13px;font-weight:600;overflow:hidden}.markup-comment-badge{background:color-mix(in srgb, var(--markup-team) 12%, transparent);height:14px;color:var(--markup-team);font-family:var(--markup-font-mono);letter-spacing:.12em;text-transform:uppercase;border-radius:999px;align-items:center;padding:0 5px;font-size:9px;font-weight:500;line-height:1;display:inline-flex}.markup-comment-badge.is-agent{background:color-mix(in srgb, var(--markup-brand) 14%, transparent);color:var(--markup-brand);letter-spacing:normal;justify-content:center;width:14px;padding:0}.markup-comment-time{color:var(--markup-muted);font-family:var(--markup-font-mono);letter-spacing:.04em;white-space:nowrap;flex-shrink:0;font-size:10.5px}.markup-comment-body{color:var(--markup-ink);white-space:pre-wrap;word-break:break-word;margin:0;font-size:13.5px;line-height:19px}.markup-comment-edited{color:var(--markup-muted);font-family:var(--markup-font-mono);margin-left:2px;font-size:10.5px}.markup-comment-edited:before{content:\" · \"}.markup-thread-actions{align-items:center;gap:4px;display:flex}.markup-comment-meta .markup-reaction-picker-wrap,.markup-thread-actions{margin-left:auto}.markup-comment-meta .markup-reaction-add{width:22px;height:22px;margin-top:-4px;margin-bottom:-4px}.markup-reaction-picker-wrap>.markup-icon-btn,.markup-comment-menu>.markup-icon-btn{margin-top:-4px;margin-bottom:-4px}.markup-comment-menu.is-up .markup-thread-menu-list{animation-name:markup-menu-in-up;top:auto;bottom:calc(100% + 6px)}.markup-comment-menu.is-side .markup-thread-menu-list{animation-name:markup-menu-in-side;top:-4px;right:calc(100% + 2px)}@keyframes markup-menu-in-side{0%{opacity:0;transform:translate(4px)}to{opacity:1;transform:translate(0)}}@keyframes markup-menu-in-up{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.markup-comment{position:relative}.markup-reactions{flex-wrap:wrap;align-items:center;gap:4px;margin-top:6px;display:flex}.markup-reaction-chip{border:1px solid var(--markup-border);background:var(--markup-surface-3);color:var(--markup-ink);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:4px;padding:2px 7px;font-size:11.5px;line-height:1.2;transition:background .12s,border-color .12s;display:inline-flex}.markup-reaction-chip:hover:not(:disabled){background:var(--markup-hover)}.markup-reaction-chip.is-mine{background:var(--markup-accent-soft);border-color:color-mix(in srgb, var(--markup-brand) 50%, transparent);color:var(--markup-accent-ink)}.markup-reaction-chip.is-mine:hover:not(:disabled){background:color-mix(in srgb, var(--markup-brand) 18%, transparent)}.markup-reaction-chip:disabled{cursor:default;opacity:.6}.markup-reaction-emoji{font-size:13px;line-height:1}.markup-reaction-count{font-family:var(--markup-font-mono);letter-spacing:.04em;color:var(--markup-muted);font-size:10.5px}.markup-reaction-chip.is-mine .markup-reaction-count{color:var(--markup-accent-ink)}.markup-reaction-picker-wrap{opacity:0;flex:none;transition:opacity .12s;display:inline-flex;position:relative}.markup-comment:hover .markup-reaction-picker-wrap,.markup-comment:focus-within .markup-reaction-picker-wrap,.markup-reaction-picker-wrap.is-open{opacity:1}.markup-reaction-add{width:22px;height:22px;color:var(--markup-muted);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;font-size:13px;line-height:1;transition:background .12s,color .12s;display:inline-flex}.markup-reaction-add:hover,.markup-reaction-add.is-open{background:var(--markup-hover);color:var(--markup-ink)}.markup-reaction-picker{z-index:1;border:1px solid var(--markup-border-strong);background:var(--markup-paper);border-radius:8px;gap:2px;padding:4px;animation:.12s markup-menu-in;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 1px 2px #1a16140f,0 8px 28px #1a16141a}.markup-reaction-picker-wrap.is-up .markup-reaction-picker{animation-name:markup-menu-in-up;top:auto;bottom:calc(100% + 6px)}.markup-reaction-picker-wrap.is-side .markup-reaction-picker{animation-name:markup-menu-in-side;top:-4px;right:calc(100% + 2px)}.markup-reaction-picker-item{cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;font-size:16px;line-height:1;transition:background .12s;display:inline-flex}.markup-reaction-picker-item:hover{background:color-mix(in srgb, var(--markup-ink) 8%, transparent)}.markup-reaction-picker-item.is-mine{background:color-mix(in srgb, var(--markup-brand) 14%, transparent)}.markup-comment-edit-form{flex-direction:column;gap:6px;display:flex}.markup-comment-edit-actions{justify-content:flex-end;gap:6px;display:flex}.markup-composer{flex-direction:column;display:flex;position:relative}.markup-composer-input{width:100%;min-height:38px;max-height:120px;color:var(--markup-ink);font-family:var(--markup-font);background:0 0;border:none;border-radius:0;padding:2px 0;font-size:13.5px;line-height:19px;transition:none;overflow-y:auto}.markup-composer-input:focus-visible{box-shadow:none;outline:none}.markup-composer-footer-wrap{grid-template-rows:0fr;transition:grid-template-rows .15s;display:grid}.markup-composer.is-filled .markup-composer-footer-wrap{grid-template-rows:1fr}.markup-composer-footer{opacity:0;background:0 0;border:none;border-radius:0;justify-content:space-between;align-items:center;gap:8px;padding:0;transition:opacity .1s;display:flex;overflow:hidden}.markup-composer.is-filled .markup-composer-footer{opacity:1;transition-delay:60ms}.markup-composer-hint{font-family:var(--markup-font-mono);letter-spacing:.04em;color:var(--markup-muted);align-items:center;gap:3px;font-size:10.5px;display:inline-flex}.markup-composer-hint-label{margin-left:2px}.markup-composer-error{color:var(--markup-brand)}.markup-composer-actions{align-items:center;gap:6px;display:flex}.markup-composer .markup-btn-primary{background:var(--markup-ink);height:26px;color:var(--markup-paper);border-radius:6px;padding:0 10px}.markup-composer .markup-btn-primary:hover:not(:disabled){background:color-mix(in srgb, var(--markup-ink) 88%, var(--markup-paper))}.markup-composer-actions-empty{transition:opacity .12s;position:absolute;bottom:0;right:0}.markup-composer.is-filled .markup-composer-actions-empty{opacity:0;pointer-events:none}.markup-author-prompt{flex-direction:column;gap:10px;padding:12px;display:flex}.markup-author-status{color:var(--markup-muted);margin:0;font-size:12px}.markup-input{border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius-sm);background:var(--markup-paper);width:100%;height:36px;color:var(--markup-ink);outline:none;padding:0 10px;font-size:14px;transition:border-color .12s,box-shadow .12s}.markup-input:focus-visible{border-color:var(--markup-brand);box-shadow:0 0 0 3px #e35d2a2e}.markup-btn{border-radius:var(--markup-radius-sm);height:30px;color:var(--markup-ink);cursor:pointer;letter-spacing:-.01em;white-space:nowrap;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:0 8px;font-size:12px;font-weight:500;transition:background .12s,border-color .12s,color .12s,opacity .12s,transform .12s cubic-bezier(.2,.7,.2,1);display:inline-flex}.markup-btn:disabled{opacity:.5;cursor:not-allowed}.markup-btn:active:not(:disabled){transform:scale(.97)}.markup-btn-primary{background:var(--markup-ink);color:var(--markup-paper)}.markup-btn-primary:hover:not(:disabled){background:var(--markup-brand)}.markup-btn-ghost{color:var(--markup-muted)}.markup-btn-ghost:hover:not(:disabled){background:var(--markup-border);color:var(--markup-ink)}.markup-btn-danger{color:var(--markup-danger)}.markup-btn-danger:hover:not(:disabled){background:color-mix(in srgb, var(--markup-danger) 10%, transparent)}.markup-discard-confirm{background:color-mix(in srgb, var(--markup-paper) 92%, transparent);-webkit-backdrop-filter:blur(6px);flex-direction:column;justify-content:center;gap:4px;padding:16px;animation:.12s ease-out markup-menu-in;display:flex;position:absolute;inset:0}.markup-discard-confirm-title{color:var(--markup-ink);margin:0;font-size:13px;font-weight:600}.markup-discard-confirm-desc{color:var(--markup-muted);margin:0;font-size:12px}.markup-discard-confirm-actions{gap:6px;margin-top:10px;display:flex}.markup-screenshot-row{border:1px dashed var(--markup-border-strong);color:var(--markup-muted);border-radius:6px;flex-direction:column;gap:8px;margin-top:0;padding:6px 8px;font-size:11.5px;display:flex}.markup-screenshot-row.is-attached{border-style:solid;border-color:var(--markup-border);padding:8px}.markup-screenshot-row-head{justify-content:space-between;align-items:center;gap:8px;min-height:16px;display:flex}.markup-screenshot-status{color:var(--markup-muted);font-family:var(--markup-font-mono);letter-spacing:.04em;align-items:center;gap:5px;font-size:11px;display:flex}.markup-screenshot-row.is-failed{opacity:.85;border-style:dotted}.markup-screenshot-toggle{cursor:pointer;color:var(--markup-muted);font-family:var(--markup-font-mono);letter-spacing:.04em;align-items:center;gap:5px;font-size:11px;transition:color .12s;display:flex}.markup-screenshot-toggle:hover{color:var(--markup-ink)}.markup-screenshot-checkbox{width:12px;height:12px;accent-color:var(--markup-brand);cursor:pointer;margin:0}.markup-screenshot-thumb-link{border:1px solid var(--markup-border-strong);cursor:zoom-in;background:0 0;border-radius:3px;margin:-4px auto -4px -4px;padding:0;transition:border-color .12s;display:block;overflow:hidden}.markup-screenshot-thumb-link:hover,.markup-screenshot-thumb-link:focus-visible{border-color:var(--markup-brand)}.markup-screenshot-thumb{object-fit:cover;object-position:top;width:auto;height:22px;display:block}.markup-screenshot-redacted-chip{background:color-mix(in srgb, var(--markup-success,oklch(62% .16 150)) 16%, transparent);color:var(--markup-success,oklch(62% .16 150));font-family:var(--markup-font-mono);white-space:nowrap;cursor:pointer;border:none;border-radius:999px;align-items:center;gap:3px;padding:1px 7px;font-size:10px;display:inline-flex}.markup-screenshot-redacted-chip:hover{filter:brightness(1.05)}.markup-screenshot-redacted-arrow{font-style:normal}.markup-screenshot-redacted-list{flex-direction:column;gap:2px;display:flex}.markup-screenshot-redacted-selector{font-family:var(--markup-font-mono);color:var(--markup-muted);font-size:9px;display:block}.markup-screenshot-help{font-family:var(--markup-font-mono);color:var(--markup-muted);margin:0;font-size:10px;line-height:1.5}.markup-screenshot-help-link{color:var(--markup-ink);text-underline-offset:2px;text-decoration:underline}.markup-screenshot-help-link:hover{color:var(--markup-brand)}.markup-comment-screenshot{border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius-sm);cursor:pointer;background:0 0;margin-top:8px;padding:0;transition:border-color .12s,opacity .12s;display:block;overflow:hidden}.markup-comment-screenshot:hover{border-color:var(--markup-brand);opacity:.9}.markup-comment-screenshot img{object-fit:cover;object-position:top;width:100%;height:auto;max-height:120px;display:block}.markup-lightbox{background:#1a1614e0;border:none;width:100%;max-width:100%;height:100%;max-height:100%;margin:0;padding:24px;position:fixed;inset:0}.markup-lightbox[open]{justify-content:center;align-items:center;display:flex}.markup-lightbox::backdrop{display:none}.markup-lightbox-img{border-radius:var(--markup-radius);object-fit:contain;max-width:100%;max-height:100%;box-shadow:var(--markup-shadow);animation:.16s ease-out markup-lightbox-in}.markup-lightbox-close{color:#fdfcfa;background:#1a161499;position:absolute;top:16px;right:16px}.markup-lightbox-close:hover{color:#fdfcfa;background:#1a1614d9}@keyframes markup-lightbox-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.markup-toolbar,.markup-tb-btn,.markup-tb-badge,.markup-comment,.markup-pin,.markup-icon-btn,.markup-btn,.markup-popover,.markup-pin-ghost,.markup-placement-overlay,.markup-placement-cursor-help,.markup-lightbox-img{transition:none;animation:none}}.markup-mention-chip{background:var(--markup-accent-soft);color:var(--markup-accent-ink);border-radius:3px;padding:0 2px;font-weight:500;display:inline-block}.markup-mention-input{white-space:pre-wrap;overflow-wrap:anywhere;cursor:text;outline:none;position:relative}.markup-mention-input[aria-disabled=true]{opacity:.6;cursor:default}.markup-mention-input[data-empty]:before{content:attr(data-placeholder);color:var(--markup-muted);pointer-events:none;position:absolute;inset:0 auto auto 0}.markup-mention-input .markup-mention-chip{white-space:nowrap;padding:0 3px}.markup-comment-edit-input{border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius-sm);background:var(--markup-paper);width:100%;min-height:58px;max-height:200px;color:var(--markup-ink);font:inherit;padding:8px 10px;font-size:13px;line-height:1.5;overflow-y:auto}.markup-comment-edit-input:focus-visible{border-color:var(--markup-brand);box-shadow:0 0 0 3px #e35d2a2e}.markup-comment-edit-input[data-empty]:before{inset:8px auto auto 10px}.markup-mention-picker{z-index:10;background:var(--markup-paper);border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius-sm);max-height:180px;box-shadow:var(--markup-shadow);margin:0 0 4px;padding:4px;list-style:none;position:absolute;bottom:100%;left:0;right:0;overflow-y:auto}.markup-mention-picker-item{border-radius:var(--markup-radius-sm);cursor:pointer;color:var(--markup-ink);justify-content:space-between;align-items:center;gap:8px;padding:6px 8px;font-size:13px;display:flex}.markup-mention-picker-item.is-active{background:color-mix(in srgb, var(--markup-brand) 12%, transparent)}.markup-mention-picker-name{font-weight:500}.markup-mention-picker-trigger{color:var(--markup-muted);font-family:var(--markup-font-mono);font-size:10px}.markup-notifications-panel{max-height:min(60vh,420px);color:var(--markup-ink);flex-direction:column;display:flex}.markup-notifications-panel-header{border-bottom:1px solid var(--markup-border);align-items:center;gap:8px;padding:8px 10px;display:flex}.markup-notifications-panel-header .markup-eyebrow{flex:1}.markup-notifications-panel-actions{align-items:center;gap:8px;display:flex}.markup-notifications-panel-mark-all{color:var(--markup-muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:11px}.markup-notifications-panel-mark-all:hover{color:var(--markup-ink)}.markup-notifications-panel-body{flex:1;overflow-y:auto}.markup-notifications-panel-empty,.markup-notifications-panel-error{text-align:center;color:var(--markup-muted);padding:24px 12px;font-size:12px}.markup-notifications-panel-empty-title{color:var(--markup-ink);margin:0 0 4px;font-weight:500}.markup-notifications-panel-empty-sub{color:var(--markup-muted);margin:0;line-height:1.4}.markup-notifications-panel-error{color:var(--markup-danger,#b91c1c)}.markup-notifications-panel-list{margin:0;padding:4px;list-style:none}.markup-notifications-panel-row{border-radius:var(--markup-radius-sm);text-align:start;cursor:pointer;width:100%;font:inherit;color:inherit;background:0 0;border:none;flex-direction:column;gap:4px;padding:8px 10px;display:flex}.markup-notifications-panel-row:hover{background:color-mix(in srgb, var(--markup-brand) 8%, transparent)}.markup-notifications-panel-row.is-unread{background:color-mix(in srgb, var(--markup-brand) 5%, transparent)}.markup-notifications-panel-meta{align-items:center;gap:6px;font-size:11px;display:flex}.markup-notifications-panel-dot{background:var(--markup-brand);border-radius:999px;flex-shrink:0;width:6px;height:6px}.markup-notifications-panel-actor{font-weight:600}.markup-notifications-panel-sep{color:var(--markup-muted)}.markup-notifications-panel-time{color:var(--markup-muted);font-family:var(--markup-font-mono);font-size:10px}.markup-notifications-panel-thread{color:var(--markup-muted);margin:0;font-size:12px}.markup-notifications-panel-thread-title{color:var(--markup-ink)}.markup-notifications-panel-excerpt{color:color-mix(in srgb, var(--markup-ink) 80%, transparent);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:12px;font-style:italic;display:-webkit-box;overflow:hidden}.markup-panel-pop{z-index:11;pointer-events:auto;width:380px;max-width:calc(100vw - 24px);position:fixed;bottom:76px}.markup-panel-pop[data-panel=privacy]{width:340px}.markup-panel-pop[data-panel=shortcuts]{width:320px}.markup-panel-pop-right{right:22px}.markup-panel-pop-left{left:22px}.markup-panel-pop-center{left:50%;transform:translate(-50%)}.markup-panel-pop .markup-pop{width:100%;animation:.14s cubic-bezier(.2,.7,.2,1) markup-pop-in;position:static}.markup-panel-pop .markup-notifications-panel{max-height:min(60vh,480px)}.markup-panel-pop .markup-notifications-panel-header{padding:12px 14px}.markup-panel-pop .markup-notifications-panel-header .markup-icon-btn{display:none}.markup-pop[data-pop=privacy],.markup-pop[data-pop=shortcuts]{padding:0}.markup-panel{max-height:min(70vh,520px);color:var(--markup-ink);flex-direction:column;display:flex}.markup-panel-header{border-bottom:1px solid var(--markup-border);align-items:center;gap:8px;padding:12px 14px;display:flex}.markup-panel-header .markup-eyebrow{flex:1}.markup-panel-body{flex:1;padding:4px 14px 14px;overflow-y:auto}.markup-panel-section{border-bottom:1px solid var(--markup-border);padding:10px 0}.markup-panel-section:last-child{border-bottom:none;padding-bottom:2px}.markup-panel-section-title{font-family:var(--markup-font-mono);letter-spacing:.06em;text-transform:lowercase;color:var(--markup-muted);margin:0 0 6px;font-size:10px;font-weight:400}.markup-panel-text{color:var(--markup-ink-soft);margin:0;font-size:12.5px;line-height:1.5}.markup-panel-text strong{color:var(--markup-ink);font-weight:600}.markup-panel-mono{font-family:var(--markup-font-mono);color:var(--markup-ink);word-break:break-all;font-size:11.5px}.markup-panel-list{color:var(--markup-ink-soft);margin:0;padding-left:16px;font-size:12.5px;line-height:1.5}.markup-panel-list li{margin-bottom:3px}.markup-panel-list li::marker{color:var(--markup-muted)}.markup-panel-note{color:var(--markup-muted);margin:8px 0 0;font-size:11.5px;line-height:1.45}.markup-panel-error{color:var(--markup-danger);margin:8px 0 0;font-size:11.5px;line-height:1.45}.markup-panel-action{border:1px solid var(--markup-border-strong);width:100%;height:30px;color:var(--markup-ink);font:inherit;cursor:pointer;background:0 0;border-radius:7px;margin-top:10px;padding:0 10px;font-size:12.5px;transition:background .12s,border-color .12s,color .12s}.markup-panel-action:hover:not(:disabled){background:var(--markup-hover)}.markup-panel-action:disabled{opacity:.6;cursor:default}.markup-panel-action.is-danger{border-color:color-mix(in srgb, var(--markup-danger) 45%, transparent);color:var(--markup-danger)}.markup-panel-action.is-danger:hover:not(:disabled){background:color-mix(in srgb, var(--markup-danger) 10%, transparent)}.markup-shortcut-list{margin:0;padding:0;list-style:none}.markup-shortcut-row{align-items:center;gap:10px;min-height:24px;padding:2px 0;display:flex}.markup-shortcut-label{min-width:0;color:var(--markup-ink-soft);flex:1;font-size:12.5px;line-height:1.4}.markup-shortcut-keys{flex-shrink:0;align-items:center;gap:4px;display:inline-flex}.markup-shortcut-chord{align-items:center;gap:3px;display:inline-flex}.markup-shortcut-or{color:var(--markup-muted);margin-right:1px;font-size:10px}", fe = 1e4, P = 20, pe = 60, me = null, he = [], F = null, ge = !1, _e = ve();
|
|
252
|
+
function ve() {
|
|
253
253
|
return typeof crypto < "u" && typeof crypto.randomUUID == "function" ? crypto.randomUUID() : `s-${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 10)}`;
|
|
254
254
|
}
|
|
255
|
-
function
|
|
256
|
-
if (
|
|
257
|
-
|
|
255
|
+
function ye(e) {
|
|
256
|
+
if (me = e, !e) {
|
|
257
|
+
he = [], F &&= (clearTimeout(F), null);
|
|
258
258
|
return;
|
|
259
259
|
}
|
|
260
260
|
Se();
|
|
261
261
|
}
|
|
262
|
-
function
|
|
263
|
-
if (
|
|
264
|
-
if (
|
|
262
|
+
function be(e, t) {
|
|
263
|
+
if (me && !(he.length >= pe)) {
|
|
264
|
+
if (he.push({
|
|
265
265
|
name: e,
|
|
266
266
|
properties: t,
|
|
267
267
|
timestamp: Date.now()
|
|
268
|
-
}),
|
|
268
|
+
}), he.length >= P) {
|
|
269
269
|
xe();
|
|
270
270
|
return;
|
|
271
271
|
}
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
},
|
|
272
|
+
F ||= setTimeout(() => {
|
|
273
|
+
F = null, xe();
|
|
274
|
+
}, fe);
|
|
275
275
|
}
|
|
276
276
|
}
|
|
277
277
|
async function xe() {
|
|
278
|
-
if (!
|
|
279
|
-
let e =
|
|
280
|
-
|
|
278
|
+
if (!me || he.length === 0) return;
|
|
279
|
+
let e = he.splice(0, P);
|
|
280
|
+
F &&= (clearTimeout(F), null);
|
|
281
281
|
try {
|
|
282
|
-
await fetch(`${
|
|
282
|
+
await fetch(`${me.apiUrl.replace(/\/+$/, "")}/widget/events`, {
|
|
283
283
|
method: "POST",
|
|
284
284
|
headers: {
|
|
285
285
|
"content-type": "application/json",
|
|
286
|
-
"x-markup-api-key":
|
|
286
|
+
"x-markup-api-key": me.apiKey
|
|
287
287
|
},
|
|
288
288
|
body: JSON.stringify({
|
|
289
|
-
sessionId:
|
|
290
|
-
widgetVersion:
|
|
289
|
+
sessionId: _e,
|
|
290
|
+
widgetVersion: me.widgetVersion,
|
|
291
291
|
events: e.map((e) => ({
|
|
292
292
|
name: e.name,
|
|
293
293
|
properties: e.properties,
|
|
@@ -297,13 +297,13 @@ async function xe() {
|
|
|
297
297
|
keepalive: !0
|
|
298
298
|
});
|
|
299
299
|
} catch {}
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
},
|
|
300
|
+
me && he.length > 0 && !F && (F = setTimeout(() => {
|
|
301
|
+
F = null, xe();
|
|
302
|
+
}, fe));
|
|
303
303
|
}
|
|
304
304
|
function Se() {
|
|
305
|
-
if (
|
|
306
|
-
|
|
305
|
+
if (ge || typeof window > "u") return;
|
|
306
|
+
ge = !0;
|
|
307
307
|
let e = () => void xe();
|
|
308
308
|
window.addEventListener("pagehide", e), document.addEventListener("visibilitychange", () => {
|
|
309
309
|
document.visibilityState === "hidden" && e();
|
|
@@ -2983,7 +2983,7 @@ function* _i(e, t, n, r, i) {
|
|
|
2983
2983
|
//#endregion
|
|
2984
2984
|
//#region src/runtime/anchor.ts
|
|
2985
2985
|
function vi(e, t) {
|
|
2986
|
-
let n = document.documentElement, r = Math.max(n.scrollWidth, n.clientWidth), i = Math.max(n.scrollHeight, n.clientHeight), a = e.clientX + window.scrollX, o = e.clientY + window.scrollY, s = t === void 0 ? e.target instanceof Element ? e.target : null : t, c = s ?
|
|
2986
|
+
let n = document.documentElement, r = Math.max(n.scrollWidth, n.clientWidth), i = Math.max(n.scrollHeight, n.clientHeight), a = e.clientX + window.scrollX, o = e.clientY + window.scrollY, s = t === void 0 ? e.target instanceof Element ? e.target : null : t, c = s ? wi(s) : void 0, l, u;
|
|
2987
2987
|
if (s) {
|
|
2988
2988
|
let t = s.getBoundingClientRect();
|
|
2989
2989
|
t.width > 0 && t.height > 0 && (l = Math.max(0, Math.min(1, (e.clientX - t.left) / t.width)), u = Math.max(0, Math.min(1, (e.clientY - t.top) / t.height)));
|
|
@@ -3001,7 +3001,7 @@ function vi(e, t) {
|
|
|
3001
3001
|
function yi(e) {
|
|
3002
3002
|
if (e.anchorSelector) try {
|
|
3003
3003
|
let t = document.querySelector(e.anchorSelector), n = t?.getBoundingClientRect();
|
|
3004
|
-
if (t && n &&
|
|
3004
|
+
if (t && n && Ci(n)) return {
|
|
3005
3005
|
pageX: n.left + window.scrollX + (e.anchorOffsetX ?? .5) * n.width,
|
|
3006
3006
|
pageY: n.top + window.scrollY + (e.anchorOffsetY ?? .5) * n.height,
|
|
3007
3007
|
resolved: !0,
|
|
@@ -3016,10 +3016,58 @@ function yi(e) {
|
|
|
3016
3016
|
element: null
|
|
3017
3017
|
};
|
|
3018
3018
|
}
|
|
3019
|
-
function bi(e) {
|
|
3020
|
-
|
|
3019
|
+
function bi(e, t) {
|
|
3020
|
+
let n = window.innerWidth, r = t && t.viewportW === n ? t : void 0, i = yi(e);
|
|
3021
|
+
if (i.resolved && i.element) {
|
|
3022
|
+
let e = i.element.getBoundingClientRect(), t = {
|
|
3023
|
+
width: e.width,
|
|
3024
|
+
height: e.height
|
|
3025
|
+
};
|
|
3026
|
+
return r && r.element !== i.element && Si(i, t, r) ? {
|
|
3027
|
+
point: xi(r),
|
|
3028
|
+
memory: r
|
|
3029
|
+
} : {
|
|
3030
|
+
point: i,
|
|
3031
|
+
memory: {
|
|
3032
|
+
pageX: i.pageX,
|
|
3033
|
+
pageY: i.pageY,
|
|
3034
|
+
size: t,
|
|
3035
|
+
element: i.element,
|
|
3036
|
+
viewportW: n
|
|
3037
|
+
}
|
|
3038
|
+
};
|
|
3039
|
+
}
|
|
3040
|
+
return r ? {
|
|
3041
|
+
point: xi(r),
|
|
3042
|
+
memory: r
|
|
3043
|
+
} : {
|
|
3044
|
+
point: i,
|
|
3045
|
+
memory: {
|
|
3046
|
+
pageX: i.pageX,
|
|
3047
|
+
pageY: i.pageY,
|
|
3048
|
+
size: null,
|
|
3049
|
+
element: null,
|
|
3050
|
+
viewportW: n
|
|
3051
|
+
}
|
|
3052
|
+
};
|
|
3021
3053
|
}
|
|
3022
3054
|
function xi(e) {
|
|
3055
|
+
return {
|
|
3056
|
+
pageX: e.pageX,
|
|
3057
|
+
pageY: e.pageY,
|
|
3058
|
+
resolved: !1,
|
|
3059
|
+
element: null
|
|
3060
|
+
};
|
|
3061
|
+
}
|
|
3062
|
+
function Si(e, t, n) {
|
|
3063
|
+
if (!n.size) return !1;
|
|
3064
|
+
let r = (e, t) => e === 0 || t === 0 ? +(e === t) : e / t, i = r(t.width, n.size.width), a = r(t.height, n.size.height), o = i < .5 || i > 2 || a < .5 || a > 2, s = Math.hypot(e.pageX - n.pageX, e.pageY - n.pageY) > window.innerHeight;
|
|
3065
|
+
return o || s;
|
|
3066
|
+
}
|
|
3067
|
+
function Ci(e) {
|
|
3068
|
+
return e.width !== 0 || e.height !== 0 || e.top !== 0 || e.left !== 0;
|
|
3069
|
+
}
|
|
3070
|
+
function wi(e) {
|
|
3023
3071
|
try {
|
|
3024
3072
|
return ri(e, { timeoutMs: 1e3 });
|
|
3025
3073
|
} catch {
|
|
@@ -3028,22 +3076,22 @@ function xi(e) {
|
|
|
3028
3076
|
}
|
|
3029
3077
|
//#endregion
|
|
3030
3078
|
//#region src/runtime/api.ts
|
|
3031
|
-
var
|
|
3079
|
+
var Ti = class extends Error {
|
|
3032
3080
|
status;
|
|
3033
3081
|
constructor(e, t) {
|
|
3034
3082
|
super(e), this.name = "WidgetApiError", this.status = t;
|
|
3035
3083
|
}
|
|
3036
|
-
},
|
|
3084
|
+
}, Ei = class extends Ti {
|
|
3037
3085
|
category;
|
|
3038
3086
|
constructor(e, t) {
|
|
3039
3087
|
super(`${e} took too long, so check your connection`, 0), this.name = "WidgetTimeoutError", this.category = t;
|
|
3040
3088
|
}
|
|
3041
|
-
},
|
|
3042
|
-
function
|
|
3089
|
+
}, Di = 15e3, J = 3e4;
|
|
3090
|
+
function Oi(e, t) {
|
|
3043
3091
|
let n = AbortSignal.timeout(e);
|
|
3044
3092
|
return t ? AbortSignal.any([t, n]) : n;
|
|
3045
3093
|
}
|
|
3046
|
-
function
|
|
3094
|
+
function ki(e) {
|
|
3047
3095
|
let t = e.apiUrl.replace(/\/+$/, "");
|
|
3048
3096
|
async function n(n, r, i) {
|
|
3049
3097
|
let a = {
|
|
@@ -3057,23 +3105,23 @@ function Ei(e) {
|
|
|
3057
3105
|
let l = e.getStorageMode?.() === "cookies", u = {
|
|
3058
3106
|
...r,
|
|
3059
3107
|
headers: a,
|
|
3060
|
-
signal:
|
|
3108
|
+
signal: Oi(i.timeoutMs, i.signal)
|
|
3061
3109
|
};
|
|
3062
3110
|
l && (u.credentials = "include");
|
|
3063
3111
|
let d;
|
|
3064
3112
|
try {
|
|
3065
3113
|
d = await fetch(`${t}${n}`, u);
|
|
3066
3114
|
} catch (e) {
|
|
3067
|
-
throw e instanceof DOMException && e.name === "TimeoutError" ? new
|
|
3115
|
+
throw e instanceof DOMException && e.name === "TimeoutError" ? new Ei(i.operation, i.category) : e;
|
|
3068
3116
|
}
|
|
3069
|
-
let f = await d.text(), p = f ?
|
|
3070
|
-
if (!d.ok) throw d.status === 401 && (s || l) && e.onUnauthorized?.(), new
|
|
3117
|
+
let f = await d.text(), p = f ? Ai(f) : null;
|
|
3118
|
+
if (!d.ok) throw d.status === 401 && (s || l) && e.onUnauthorized?.(), new Ti((p && typeof p == "object" && "error" in p && typeof p.error == "string" ? p.error : null) ?? `Request failed with ${d.status}`, d.status);
|
|
3071
3119
|
return p;
|
|
3072
3120
|
}
|
|
3073
3121
|
return {
|
|
3074
3122
|
mintAnonIdentity(e) {
|
|
3075
3123
|
return n("/widget/anon-identity", { method: "POST" }, {
|
|
3076
|
-
timeoutMs:
|
|
3124
|
+
timeoutMs: Di,
|
|
3077
3125
|
category: "read",
|
|
3078
3126
|
operation: "mint-anon-identity",
|
|
3079
3127
|
signal: e?.signal
|
|
@@ -3081,7 +3129,7 @@ function Ei(e) {
|
|
|
3081
3129
|
},
|
|
3082
3130
|
getSubscriptionToken(e) {
|
|
3083
3131
|
return n("/widget/subscription-token", { method: "POST" }, {
|
|
3084
|
-
timeoutMs:
|
|
3132
|
+
timeoutMs: Di,
|
|
3085
3133
|
category: "read",
|
|
3086
3134
|
operation: "mint-subscription-token",
|
|
3087
3135
|
signal: e?.signal
|
|
@@ -3089,7 +3137,7 @@ function Ei(e) {
|
|
|
3089
3137
|
},
|
|
3090
3138
|
getScreenshotUploadUrl(e) {
|
|
3091
3139
|
return n("/widget/screenshots/upload-url", { method: "POST" }, {
|
|
3092
|
-
timeoutMs:
|
|
3140
|
+
timeoutMs: Di,
|
|
3093
3141
|
category: "read",
|
|
3094
3142
|
operation: "mint-screenshot-upload-url",
|
|
3095
3143
|
signal: e?.signal
|
|
@@ -3097,7 +3145,7 @@ function Ei(e) {
|
|
|
3097
3145
|
},
|
|
3098
3146
|
listThreads(e, t) {
|
|
3099
3147
|
return n(`/widget/threads?route=${encodeURIComponent(e)}`, { method: "GET" }, {
|
|
3100
|
-
timeoutMs:
|
|
3148
|
+
timeoutMs: Di,
|
|
3101
3149
|
category: "read",
|
|
3102
3150
|
operation: "list-threads",
|
|
3103
3151
|
signal: t?.signal
|
|
@@ -3105,7 +3153,7 @@ function Ei(e) {
|
|
|
3105
3153
|
},
|
|
3106
3154
|
listMembers(e) {
|
|
3107
3155
|
return n("/widget/members", { method: "GET" }, {
|
|
3108
|
-
timeoutMs:
|
|
3156
|
+
timeoutMs: Di,
|
|
3109
3157
|
category: "read",
|
|
3110
3158
|
operation: "list-members",
|
|
3111
3159
|
signal: e?.signal
|
|
@@ -3113,7 +3161,7 @@ function Ei(e) {
|
|
|
3113
3161
|
},
|
|
3114
3162
|
listNotifications(e) {
|
|
3115
3163
|
return n("/widget/notifications", { method: "GET" }, {
|
|
3116
|
-
timeoutMs:
|
|
3164
|
+
timeoutMs: Di,
|
|
3117
3165
|
category: "read",
|
|
3118
3166
|
operation: "list-notifications",
|
|
3119
3167
|
signal: e?.signal
|
|
@@ -3224,7 +3272,7 @@ function Ei(e) {
|
|
|
3224
3272
|
}
|
|
3225
3273
|
};
|
|
3226
3274
|
}
|
|
3227
|
-
function
|
|
3275
|
+
function Ai(e) {
|
|
3228
3276
|
try {
|
|
3229
3277
|
return JSON.parse(e);
|
|
3230
3278
|
} catch {
|
|
@@ -3233,10 +3281,10 @@ function Di(e) {
|
|
|
3233
3281
|
}
|
|
3234
3282
|
//#endregion
|
|
3235
3283
|
//#region src/runtime/cookie-probe.ts
|
|
3236
|
-
var
|
|
3237
|
-
async function
|
|
3284
|
+
var ji = "markup.cookieProbe";
|
|
3285
|
+
async function Mi(e, t) {
|
|
3238
3286
|
try {
|
|
3239
|
-
let e = sessionStorage.getItem(
|
|
3287
|
+
let e = sessionStorage.getItem(ji);
|
|
3240
3288
|
if (e === "supported") return !0;
|
|
3241
3289
|
if (e === "unsupported") return !1;
|
|
3242
3290
|
} catch {}
|
|
@@ -3246,18 +3294,18 @@ async function ki(e, t) {
|
|
|
3246
3294
|
method: "POST",
|
|
3247
3295
|
credentials: "include",
|
|
3248
3296
|
headers: r,
|
|
3249
|
-
signal:
|
|
3297
|
+
signal: Oi(15e3)
|
|
3250
3298
|
})).ok) return !1;
|
|
3251
3299
|
let e = await fetch(`${n}/widget/auth/probe-check`, {
|
|
3252
3300
|
method: "POST",
|
|
3253
3301
|
credentials: "include",
|
|
3254
3302
|
headers: r,
|
|
3255
|
-
signal:
|
|
3303
|
+
signal: Oi(Di)
|
|
3256
3304
|
});
|
|
3257
3305
|
if (!e.ok) return !1;
|
|
3258
3306
|
let { supported: t } = await e.json(), i = t === !0;
|
|
3259
3307
|
try {
|
|
3260
|
-
sessionStorage.setItem(
|
|
3308
|
+
sessionStorage.setItem(ji, i ? "supported" : "unsupported");
|
|
3261
3309
|
} catch {}
|
|
3262
3310
|
return i;
|
|
3263
3311
|
} catch (e) {
|
|
@@ -3267,8 +3315,8 @@ async function ki(e, t) {
|
|
|
3267
3315
|
}
|
|
3268
3316
|
//#endregion
|
|
3269
3317
|
//#region src/runtime/history-observer.ts
|
|
3270
|
-
var
|
|
3271
|
-
function
|
|
3318
|
+
var Ni = "__markup_history_observer__", Pi = "__markup_history_listeners__";
|
|
3319
|
+
function Fi(e) {
|
|
3272
3320
|
e.forEach((e) => {
|
|
3273
3321
|
try {
|
|
3274
3322
|
e();
|
|
@@ -3277,75 +3325,75 @@ function Mi(e) {
|
|
|
3277
3325
|
}
|
|
3278
3326
|
});
|
|
3279
3327
|
}
|
|
3280
|
-
var
|
|
3281
|
-
function
|
|
3328
|
+
var Ii = "__markup_history_restore__";
|
|
3329
|
+
function Li() {
|
|
3282
3330
|
let e = history.pushState;
|
|
3283
|
-
if (e[
|
|
3284
|
-
listeners: e[
|
|
3285
|
-
restore: e[
|
|
3331
|
+
if (e[Ni]) return {
|
|
3332
|
+
listeners: e[Pi],
|
|
3333
|
+
restore: e[Ii]
|
|
3286
3334
|
};
|
|
3287
3335
|
let t = /* @__PURE__ */ new Set(), n = history.pushState, r = history.replaceState;
|
|
3288
3336
|
function i(...e) {
|
|
3289
|
-
n.apply(this, e),
|
|
3337
|
+
n.apply(this, e), Fi(t);
|
|
3290
3338
|
}
|
|
3291
3339
|
function a(...e) {
|
|
3292
|
-
r.apply(this, e),
|
|
3340
|
+
r.apply(this, e), Fi(t);
|
|
3293
3341
|
}
|
|
3294
|
-
let o = () =>
|
|
3342
|
+
let o = () => Fi(t), s = () => {
|
|
3295
3343
|
history.pushState === i && (history.pushState = n), history.replaceState === a && (history.replaceState = r), window.removeEventListener("popstate", o), t.clear();
|
|
3296
3344
|
};
|
|
3297
|
-
return Object.defineProperty(i,
|
|
3345
|
+
return Object.defineProperty(i, Ni, { value: 1 }), Object.defineProperty(i, Pi, { value: t }), Object.defineProperty(i, Ii, { value: s }), Object.defineProperty(a, Ni, { value: 1 }), history.pushState = i, history.replaceState = a, window.addEventListener("popstate", o), {
|
|
3298
3346
|
listeners: t,
|
|
3299
3347
|
restore: s
|
|
3300
3348
|
};
|
|
3301
3349
|
}
|
|
3302
|
-
var
|
|
3303
|
-
function
|
|
3304
|
-
|
|
3305
|
-
let t =
|
|
3350
|
+
var Ri = null;
|
|
3351
|
+
function zi(e) {
|
|
3352
|
+
Ri ||= Li();
|
|
3353
|
+
let t = Ri;
|
|
3306
3354
|
t.listeners.add(e);
|
|
3307
3355
|
let n = !1;
|
|
3308
3356
|
return () => {
|
|
3309
|
-
n || (n = !0, t.listeners.delete(e), t.listeners.size === 0 && (t.restore(),
|
|
3357
|
+
n || (n = !0, t.listeners.delete(e), t.listeners.size === 0 && (t.restore(), Ri === t && (Ri = null)));
|
|
3310
3358
|
};
|
|
3311
3359
|
}
|
|
3312
3360
|
//#endregion
|
|
3313
3361
|
//#region src/runtime/safe-url.ts
|
|
3314
|
-
var
|
|
3315
|
-
function
|
|
3362
|
+
var Bi = /* @__PURE__ */ new Set(["http:", "https:"]);
|
|
3363
|
+
function Vi(e, t) {
|
|
3316
3364
|
let n;
|
|
3317
3365
|
try {
|
|
3318
3366
|
n = new URL(e, t);
|
|
3319
3367
|
} catch {
|
|
3320
3368
|
return null;
|
|
3321
3369
|
}
|
|
3322
|
-
return
|
|
3370
|
+
return Bi.has(n.protocol) ? n : null;
|
|
3323
3371
|
}
|
|
3324
3372
|
//#endregion
|
|
3325
3373
|
//#region src/runtime/identity-store.ts
|
|
3326
|
-
var
|
|
3327
|
-
function
|
|
3374
|
+
var Hi = "markup.identity";
|
|
3375
|
+
function Ui() {
|
|
3328
3376
|
try {
|
|
3329
|
-
let e = localStorage.getItem(
|
|
3377
|
+
let e = localStorage.getItem(Hi);
|
|
3330
3378
|
return e ? JSON.parse(e) : null;
|
|
3331
3379
|
} catch {
|
|
3332
3380
|
return null;
|
|
3333
3381
|
}
|
|
3334
3382
|
}
|
|
3335
|
-
function
|
|
3336
|
-
if (typeof e.image == "string") return
|
|
3383
|
+
function Wi(e) {
|
|
3384
|
+
if (typeof e.image == "string") return Vi(e.image, location.href)?.href ?? void 0;
|
|
3337
3385
|
}
|
|
3338
|
-
function
|
|
3386
|
+
function Gi(e) {
|
|
3339
3387
|
try {
|
|
3340
3388
|
if (e == null) {
|
|
3341
|
-
localStorage.removeItem(
|
|
3389
|
+
localStorage.removeItem(Hi);
|
|
3342
3390
|
return;
|
|
3343
3391
|
}
|
|
3344
|
-
localStorage.setItem(
|
|
3392
|
+
localStorage.setItem(Hi, JSON.stringify(e));
|
|
3345
3393
|
} catch {}
|
|
3346
3394
|
}
|
|
3347
|
-
function
|
|
3348
|
-
let e =
|
|
3395
|
+
function Ki() {
|
|
3396
|
+
let e = Ui(), t = {
|
|
3349
3397
|
name: e?.name,
|
|
3350
3398
|
email: e?.email
|
|
3351
3399
|
};
|
|
@@ -3364,7 +3412,7 @@ function Ui() {
|
|
|
3364
3412
|
refreshTokenExpiresAt: e.refreshTokenExpiresAt,
|
|
3365
3413
|
name: e.name,
|
|
3366
3414
|
email: e.email,
|
|
3367
|
-
image:
|
|
3415
|
+
image: Wi(e)
|
|
3368
3416
|
}
|
|
3369
3417
|
},
|
|
3370
3418
|
preserved: t
|
|
@@ -3385,7 +3433,7 @@ function Ui() {
|
|
|
3385
3433
|
} : {},
|
|
3386
3434
|
name: e.name,
|
|
3387
3435
|
email: e.email,
|
|
3388
|
-
image:
|
|
3436
|
+
image: Wi(e)
|
|
3389
3437
|
}
|
|
3390
3438
|
},
|
|
3391
3439
|
preserved: t
|
|
@@ -3407,10 +3455,10 @@ function Ui() {
|
|
|
3407
3455
|
preserved: t
|
|
3408
3456
|
};
|
|
3409
3457
|
}
|
|
3410
|
-
function
|
|
3458
|
+
function qi(e) {
|
|
3411
3459
|
switch (e.kind) {
|
|
3412
3460
|
case "verified":
|
|
3413
|
-
|
|
3461
|
+
Gi({
|
|
3414
3462
|
clientId: e.identity.clientId,
|
|
3415
3463
|
storage: e.identity.storage,
|
|
3416
3464
|
token: e.identity.storage === "cookies" ? void 0 : e.identity.token,
|
|
@@ -3424,7 +3472,7 @@ function Wi(e) {
|
|
|
3424
3472
|
});
|
|
3425
3473
|
return;
|
|
3426
3474
|
case "anon":
|
|
3427
|
-
|
|
3475
|
+
Gi({
|
|
3428
3476
|
clientId: e.identity.clientId,
|
|
3429
3477
|
anonToken: e.identity.anonToken,
|
|
3430
3478
|
name: e.identity.name,
|
|
@@ -3432,23 +3480,23 @@ function Wi(e) {
|
|
|
3432
3480
|
});
|
|
3433
3481
|
return;
|
|
3434
3482
|
case "recovering":
|
|
3435
|
-
|
|
3483
|
+
Gi({
|
|
3436
3484
|
name: e.preserved.name,
|
|
3437
3485
|
email: e.preserved.email
|
|
3438
3486
|
});
|
|
3439
3487
|
return;
|
|
3440
3488
|
case "unresolved":
|
|
3441
|
-
|
|
3489
|
+
Gi(null);
|
|
3442
3490
|
return;
|
|
3443
3491
|
}
|
|
3444
3492
|
}
|
|
3445
|
-
function
|
|
3493
|
+
function Ji(e) {
|
|
3446
3494
|
if (e.kind === "anon" || e.kind === "verified") return e.identity.clientId;
|
|
3447
3495
|
}
|
|
3448
|
-
function
|
|
3496
|
+
function Yi(e) {
|
|
3449
3497
|
return e.kind === "anon" ? e.identity.name ?? null : e.kind === "verified" ? e.identity.name : null;
|
|
3450
3498
|
}
|
|
3451
|
-
function
|
|
3499
|
+
function Xi(e) {
|
|
3452
3500
|
if (e.kind === "anon") {
|
|
3453
3501
|
let t = e.identity.name;
|
|
3454
3502
|
return t ? {
|
|
@@ -3463,8 +3511,8 @@ function qi(e) {
|
|
|
3463
3511
|
}
|
|
3464
3512
|
//#endregion
|
|
3465
3513
|
//#region src/runtime/popup-auth.ts
|
|
3466
|
-
var
|
|
3467
|
-
async function
|
|
3514
|
+
var Zi = "MARKUP_AUTH_RESULT", Qi = "MARKUP_AUTH_RETRY", $i = "MARKUP_AUTH_EXPIRED", ea = 5;
|
|
3515
|
+
async function ta(e) {
|
|
3468
3516
|
let { apiUrl: t, apiKey: n, useCookies: r } = e, i = new URL(t).origin, a = r ? "refresh,cookies" : "refresh";
|
|
3469
3517
|
async function o() {
|
|
3470
3518
|
let e = await fetch(`${t.replace(/\/+$/, "")}/widget/popup-exchange`, {
|
|
@@ -3474,7 +3522,7 @@ async function Qi(e) {
|
|
|
3474
3522
|
"x-markup-api-key": n
|
|
3475
3523
|
},
|
|
3476
3524
|
body: "{}",
|
|
3477
|
-
signal:
|
|
3525
|
+
signal: Oi(J)
|
|
3478
3526
|
});
|
|
3479
3527
|
if (!e.ok) throw Error(`popup-exchange responded with ${e.status}`);
|
|
3480
3528
|
let { code: r } = await e.json(), i = new URL("/widget/auth", t);
|
|
@@ -3497,7 +3545,7 @@ async function Qi(e) {
|
|
|
3497
3545
|
let s = (e) => {
|
|
3498
3546
|
if (!r) {
|
|
3499
3547
|
if (e) {
|
|
3500
|
-
if (n >=
|
|
3548
|
+
if (n >= ea) {
|
|
3501
3549
|
a(), t(/* @__PURE__ */ Error("Sign-in could not be restarted. Close the window and try again"));
|
|
3502
3550
|
return;
|
|
3503
3551
|
}
|
|
@@ -3515,15 +3563,15 @@ async function Qi(e) {
|
|
|
3515
3563
|
function c(n) {
|
|
3516
3564
|
if (n.origin !== i || n.source !== u) return;
|
|
3517
3565
|
let r = n.data;
|
|
3518
|
-
if (r?.type ===
|
|
3566
|
+
if (r?.type === Qi) {
|
|
3519
3567
|
s(!1);
|
|
3520
3568
|
return;
|
|
3521
3569
|
}
|
|
3522
|
-
if (r?.type ===
|
|
3570
|
+
if (r?.type === $i) {
|
|
3523
3571
|
s(!0);
|
|
3524
3572
|
return;
|
|
3525
3573
|
}
|
|
3526
|
-
r?.type ===
|
|
3574
|
+
r?.type === Zi && (a(), r.identity?.id && r.identity?.name ? e({
|
|
3527
3575
|
mode: r.mode === "cookies" ? "cookies" : "localStorage",
|
|
3528
3576
|
identity: r.identity,
|
|
3529
3577
|
token: typeof r.token == "string" ? r.token : null,
|
|
@@ -3551,7 +3599,7 @@ async function Qi(e) {
|
|
|
3551
3599
|
accessToken: d.token,
|
|
3552
3600
|
refreshToken: d.refreshToken
|
|
3553
3601
|
}),
|
|
3554
|
-
signal:
|
|
3602
|
+
signal: Oi(J)
|
|
3555
3603
|
});
|
|
3556
3604
|
if (!e.ok) {
|
|
3557
3605
|
let t = /* @__PURE__ */ Error(`Failed to install widget cookies (${e.status})`);
|
|
@@ -3567,45 +3615,45 @@ async function Qi(e) {
|
|
|
3567
3615
|
}
|
|
3568
3616
|
//#endregion
|
|
3569
3617
|
//#region ../../node_modules/.pnpm/html-to-image@1.11.13/node_modules/html-to-image/es/util.js
|
|
3570
|
-
function
|
|
3618
|
+
function na(e, t) {
|
|
3571
3619
|
if (e.match(/^[a-z]+:\/\//i)) return e;
|
|
3572
3620
|
if (e.match(/^\/\//)) return window.location.protocol + e;
|
|
3573
3621
|
if (e.match(/^[a-z]+:/i)) return e;
|
|
3574
3622
|
let n = document.implementation.createHTMLDocument(), r = n.createElement("base"), i = n.createElement("a");
|
|
3575
3623
|
return n.head.appendChild(r), n.body.appendChild(i), t && (r.href = t), i.href = e, i.href;
|
|
3576
3624
|
}
|
|
3577
|
-
var
|
|
3625
|
+
var ra = (() => {
|
|
3578
3626
|
let e = 0, t = () => `0000${(Math.random() * 36 ** 4 << 0).toString(36)}`.slice(-4);
|
|
3579
3627
|
return () => (e += 1, `u${t()}${e}`);
|
|
3580
3628
|
})();
|
|
3581
|
-
function
|
|
3629
|
+
function ia(e) {
|
|
3582
3630
|
let t = [];
|
|
3583
3631
|
for (let n = 0, r = e.length; n < r; n++) t.push(e[n]);
|
|
3584
3632
|
return t;
|
|
3585
3633
|
}
|
|
3586
|
-
var
|
|
3587
|
-
function
|
|
3588
|
-
return
|
|
3634
|
+
var aa = null;
|
|
3635
|
+
function oa(e = {}) {
|
|
3636
|
+
return aa || (e.includeStyleProperties ? (aa = e.includeStyleProperties, aa) : (aa = ia(window.getComputedStyle(document.documentElement)), aa));
|
|
3589
3637
|
}
|
|
3590
|
-
function
|
|
3638
|
+
function sa(e, t) {
|
|
3591
3639
|
let n = (e.ownerDocument.defaultView || window).getComputedStyle(e).getPropertyValue(t);
|
|
3592
3640
|
return n ? parseFloat(n.replace("px", "")) : 0;
|
|
3593
3641
|
}
|
|
3594
|
-
function
|
|
3595
|
-
let t =
|
|
3642
|
+
function ca(e) {
|
|
3643
|
+
let t = sa(e, "border-left-width"), n = sa(e, "border-right-width");
|
|
3596
3644
|
return e.clientWidth + t + n;
|
|
3597
3645
|
}
|
|
3598
|
-
function
|
|
3599
|
-
let t =
|
|
3646
|
+
function la(e) {
|
|
3647
|
+
let t = sa(e, "border-top-width"), n = sa(e, "border-bottom-width");
|
|
3600
3648
|
return e.clientHeight + t + n;
|
|
3601
3649
|
}
|
|
3602
|
-
function
|
|
3650
|
+
function ua(e, t = {}) {
|
|
3603
3651
|
return {
|
|
3604
|
-
width: t.width ||
|
|
3605
|
-
height: t.height ||
|
|
3652
|
+
width: t.width || ca(e),
|
|
3653
|
+
height: t.height || la(e)
|
|
3606
3654
|
};
|
|
3607
3655
|
}
|
|
3608
|
-
function
|
|
3656
|
+
function da() {
|
|
3609
3657
|
let e, t;
|
|
3610
3658
|
try {
|
|
3611
3659
|
t = process;
|
|
@@ -3614,10 +3662,10 @@ function ca() {
|
|
|
3614
3662
|
return n && (e = parseInt(n, 10), Number.isNaN(e) && (e = 1)), e || window.devicePixelRatio || 1;
|
|
3615
3663
|
}
|
|
3616
3664
|
var Y = 16384;
|
|
3617
|
-
function
|
|
3665
|
+
function fa(e) {
|
|
3618
3666
|
(e.width > Y || e.height > Y) && (e.width > Y && e.height > Y ? e.width > e.height ? (e.height *= Y / e.width, e.width = Y) : (e.width *= Y / e.height, e.height = Y) : e.width > Y ? (e.height *= Y / e.width, e.width = Y) : (e.width *= Y / e.height, e.height = Y));
|
|
3619
3667
|
}
|
|
3620
|
-
function
|
|
3668
|
+
function pa(e) {
|
|
3621
3669
|
return new Promise((t, n) => {
|
|
3622
3670
|
let r = new Image();
|
|
3623
3671
|
r.onload = () => {
|
|
@@ -3627,12 +3675,12 @@ function ua(e) {
|
|
|
3627
3675
|
}, r.onerror = n, r.crossOrigin = "anonymous", r.decoding = "async", r.src = e;
|
|
3628
3676
|
});
|
|
3629
3677
|
}
|
|
3630
|
-
async function
|
|
3678
|
+
async function ma(e) {
|
|
3631
3679
|
return Promise.resolve().then(() => new XMLSerializer().serializeToString(e)).then(encodeURIComponent).then((e) => `data:image/svg+xml;charset=utf-8,${e}`);
|
|
3632
3680
|
}
|
|
3633
|
-
async function
|
|
3681
|
+
async function ha(e, t, n) {
|
|
3634
3682
|
let r = "http://www.w3.org/2000/svg", i = document.createElementNS(r, "svg"), a = document.createElementNS(r, "foreignObject");
|
|
3635
|
-
return i.setAttribute("width", `${t}`), i.setAttribute("height", `${n}`), i.setAttribute("viewBox", `0 0 ${t} ${n}`), a.setAttribute("width", "100%"), a.setAttribute("height", "100%"), a.setAttribute("x", "0"), a.setAttribute("y", "0"), a.setAttribute("externalResourcesRequired", "true"), i.appendChild(a), a.appendChild(e),
|
|
3683
|
+
return i.setAttribute("width", `${t}`), i.setAttribute("height", `${n}`), i.setAttribute("viewBox", `0 0 ${t} ${n}`), a.setAttribute("width", "100%"), a.setAttribute("height", "100%"), a.setAttribute("x", "0"), a.setAttribute("y", "0"), a.setAttribute("externalResourcesRequired", "true"), i.appendChild(a), a.appendChild(e), ma(i);
|
|
3636
3684
|
}
|
|
3637
3685
|
var X = (e, t) => {
|
|
3638
3686
|
if (e instanceof t) return !0;
|
|
@@ -3641,66 +3689,66 @@ var X = (e, t) => {
|
|
|
3641
3689
|
};
|
|
3642
3690
|
//#endregion
|
|
3643
3691
|
//#region ../../node_modules/.pnpm/html-to-image@1.11.13/node_modules/html-to-image/es/clone-pseudos.js
|
|
3644
|
-
function
|
|
3692
|
+
function ga(e) {
|
|
3645
3693
|
let t = e.getPropertyValue("content");
|
|
3646
3694
|
return `${e.cssText} content: '${t.replace(/'|"/g, "")}';`;
|
|
3647
3695
|
}
|
|
3648
|
-
function
|
|
3649
|
-
return
|
|
3696
|
+
function _a(e, t) {
|
|
3697
|
+
return oa(t).map((t) => `${t}: ${e.getPropertyValue(t)}${e.getPropertyPriority(t) ? " !important" : ""};`).join(" ");
|
|
3650
3698
|
}
|
|
3651
|
-
function
|
|
3652
|
-
let i = `.${e}:${t}`, a = n.cssText ?
|
|
3699
|
+
function va(e, t, n, r) {
|
|
3700
|
+
let i = `.${e}:${t}`, a = n.cssText ? ga(n) : _a(n, r);
|
|
3653
3701
|
return document.createTextNode(`${i}{${a}}`);
|
|
3654
3702
|
}
|
|
3655
|
-
function
|
|
3703
|
+
function ya(e, t, n, r) {
|
|
3656
3704
|
let i = window.getComputedStyle(e, n), a = i.getPropertyValue("content");
|
|
3657
3705
|
if (a === "" || a === "none") return;
|
|
3658
|
-
let o =
|
|
3706
|
+
let o = ra();
|
|
3659
3707
|
try {
|
|
3660
3708
|
t.className = `${t.className} ${o}`;
|
|
3661
3709
|
} catch {
|
|
3662
3710
|
return;
|
|
3663
3711
|
}
|
|
3664
3712
|
let s = document.createElement("style");
|
|
3665
|
-
s.appendChild(
|
|
3713
|
+
s.appendChild(va(o, n, i, r)), t.appendChild(s);
|
|
3666
3714
|
}
|
|
3667
|
-
function
|
|
3668
|
-
|
|
3715
|
+
function ba(e, t, n) {
|
|
3716
|
+
ya(e, t, ":before", n), ya(e, t, ":after", n);
|
|
3669
3717
|
}
|
|
3670
3718
|
//#endregion
|
|
3671
3719
|
//#region ../../node_modules/.pnpm/html-to-image@1.11.13/node_modules/html-to-image/es/mimes.js
|
|
3672
|
-
var
|
|
3673
|
-
woff:
|
|
3674
|
-
woff2:
|
|
3720
|
+
var xa = "application/font-woff", Sa = "image/jpeg", Ca = {
|
|
3721
|
+
woff: xa,
|
|
3722
|
+
woff2: xa,
|
|
3675
3723
|
ttf: "application/font-truetype",
|
|
3676
3724
|
eot: "application/vnd.ms-fontobject",
|
|
3677
3725
|
png: "image/png",
|
|
3678
|
-
jpg:
|
|
3679
|
-
jpeg:
|
|
3726
|
+
jpg: Sa,
|
|
3727
|
+
jpeg: Sa,
|
|
3680
3728
|
gif: "image/gif",
|
|
3681
3729
|
tiff: "image/tiff",
|
|
3682
3730
|
svg: "image/svg+xml",
|
|
3683
3731
|
webp: "image/webp"
|
|
3684
3732
|
};
|
|
3685
|
-
function
|
|
3733
|
+
function wa(e) {
|
|
3686
3734
|
let t = /\.([^./]*?)$/g.exec(e);
|
|
3687
3735
|
return t ? t[1] : "";
|
|
3688
3736
|
}
|
|
3689
|
-
function
|
|
3690
|
-
return
|
|
3737
|
+
function Ta(e) {
|
|
3738
|
+
return Ca[wa(e).toLowerCase()] || "";
|
|
3691
3739
|
}
|
|
3692
3740
|
//#endregion
|
|
3693
3741
|
//#region ../../node_modules/.pnpm/html-to-image@1.11.13/node_modules/html-to-image/es/dataurl.js
|
|
3694
|
-
function
|
|
3742
|
+
function Ea(e) {
|
|
3695
3743
|
return e.split(/,/)[1];
|
|
3696
3744
|
}
|
|
3697
|
-
function
|
|
3745
|
+
function Da(e) {
|
|
3698
3746
|
return e.search(/^(data:)/) !== -1;
|
|
3699
3747
|
}
|
|
3700
|
-
function
|
|
3748
|
+
function Oa(e, t) {
|
|
3701
3749
|
return `data:${t};base64,${e}`;
|
|
3702
3750
|
}
|
|
3703
|
-
async function
|
|
3751
|
+
async function ka(e, t, n) {
|
|
3704
3752
|
let r = await fetch(e, t);
|
|
3705
3753
|
if (r.status === 404) throw Error(`Resource "${r.url}" not found`);
|
|
3706
3754
|
let i = await r.blob();
|
|
@@ -3718,78 +3766,78 @@ async function Ea(e, t, n) {
|
|
|
3718
3766
|
}, a.readAsDataURL(i);
|
|
3719
3767
|
});
|
|
3720
3768
|
}
|
|
3721
|
-
var
|
|
3722
|
-
function
|
|
3769
|
+
var Aa = {};
|
|
3770
|
+
function ja(e, t, n) {
|
|
3723
3771
|
let r = e.replace(/\?.*/, "");
|
|
3724
3772
|
return n && (r = e), /ttf|otf|eot|woff2?/i.test(r) && (r = r.replace(/.*\//, "")), t ? `[${t}]${r}` : r;
|
|
3725
3773
|
}
|
|
3726
|
-
async function
|
|
3727
|
-
let r =
|
|
3728
|
-
if (
|
|
3774
|
+
async function Ma(e, t, n) {
|
|
3775
|
+
let r = ja(e, t, n.includeQueryParams);
|
|
3776
|
+
if (Aa[r] != null) return Aa[r];
|
|
3729
3777
|
n.cacheBust && (e += (/\?/.test(e) ? "&" : "?") + (/* @__PURE__ */ new Date()).getTime());
|
|
3730
3778
|
let i;
|
|
3731
3779
|
try {
|
|
3732
|
-
i =
|
|
3780
|
+
i = Oa(await ka(e, n.fetchRequestInit, ({ res: e, result: n }) => (t ||= e.headers.get("Content-Type") || "", Ea(n))), t);
|
|
3733
3781
|
} catch (t) {
|
|
3734
3782
|
i = n.imagePlaceholder || "";
|
|
3735
3783
|
let r = `Failed to fetch resource: ${e}`;
|
|
3736
3784
|
t && (r = typeof t == "string" ? t : t.message), r && console.warn(r);
|
|
3737
3785
|
}
|
|
3738
|
-
return
|
|
3786
|
+
return Aa[r] = i, i;
|
|
3739
3787
|
}
|
|
3740
3788
|
//#endregion
|
|
3741
3789
|
//#region ../../node_modules/.pnpm/html-to-image@1.11.13/node_modules/html-to-image/es/clone-node.js
|
|
3742
|
-
async function
|
|
3790
|
+
async function Na(e) {
|
|
3743
3791
|
let t = e.toDataURL();
|
|
3744
|
-
return t === "data:," ? e.cloneNode(!1) :
|
|
3792
|
+
return t === "data:," ? e.cloneNode(!1) : pa(t);
|
|
3745
3793
|
}
|
|
3746
|
-
async function
|
|
3794
|
+
async function Pa(e, t) {
|
|
3747
3795
|
if (e.currentSrc) {
|
|
3748
3796
|
let t = document.createElement("canvas"), n = t.getContext("2d");
|
|
3749
|
-
return t.width = e.clientWidth, t.height = e.clientHeight, n?.drawImage(e, 0, 0, t.width, t.height),
|
|
3797
|
+
return t.width = e.clientWidth, t.height = e.clientHeight, n?.drawImage(e, 0, 0, t.width, t.height), pa(t.toDataURL());
|
|
3750
3798
|
}
|
|
3751
3799
|
let n = e.poster;
|
|
3752
|
-
return
|
|
3800
|
+
return pa(await Ma(n, Ta(n), t));
|
|
3753
3801
|
}
|
|
3754
|
-
async function
|
|
3802
|
+
async function Fa(e, t) {
|
|
3755
3803
|
try {
|
|
3756
|
-
if (e?.contentDocument?.body) return await
|
|
3804
|
+
if (e?.contentDocument?.body) return await Ga(e.contentDocument.body, t, !0);
|
|
3757
3805
|
} catch {}
|
|
3758
3806
|
return e.cloneNode(!1);
|
|
3759
3807
|
}
|
|
3760
|
-
async function
|
|
3761
|
-
return X(e, HTMLCanvasElement) ?
|
|
3808
|
+
async function Ia(e, t) {
|
|
3809
|
+
return X(e, HTMLCanvasElement) ? Na(e) : X(e, HTMLVideoElement) ? Pa(e, t) : X(e, HTMLIFrameElement) ? Fa(e, t) : e.cloneNode(Ra(e));
|
|
3762
3810
|
}
|
|
3763
|
-
var
|
|
3764
|
-
async function
|
|
3765
|
-
if (
|
|
3811
|
+
var La = (e) => e.tagName != null && e.tagName.toUpperCase() === "SLOT", Ra = (e) => e.tagName != null && e.tagName.toUpperCase() === "SVG";
|
|
3812
|
+
async function za(e, t, n) {
|
|
3813
|
+
if (Ra(t)) return t;
|
|
3766
3814
|
let r = [];
|
|
3767
|
-
return r =
|
|
3815
|
+
return r = La(e) && e.assignedNodes ? ia(e.assignedNodes()) : X(e, HTMLIFrameElement) && e.contentDocument?.body ? ia(e.contentDocument.body.childNodes) : ia((e.shadowRoot ?? e).childNodes), r.length === 0 || X(e, HTMLVideoElement) || await r.reduce((e, r) => e.then(() => Ga(r, n)).then((e) => {
|
|
3768
3816
|
e && t.appendChild(e);
|
|
3769
3817
|
}), Promise.resolve()), t;
|
|
3770
3818
|
}
|
|
3771
|
-
function
|
|
3819
|
+
function Ba(e, t, n) {
|
|
3772
3820
|
let r = t.style;
|
|
3773
3821
|
if (!r) return;
|
|
3774
3822
|
let i = window.getComputedStyle(e);
|
|
3775
|
-
i.cssText ? (r.cssText = i.cssText, r.transformOrigin = i.transformOrigin) :
|
|
3823
|
+
i.cssText ? (r.cssText = i.cssText, r.transformOrigin = i.transformOrigin) : oa(n).forEach((n) => {
|
|
3776
3824
|
let a = i.getPropertyValue(n);
|
|
3777
3825
|
n === "font-size" && a.endsWith("px") && (a = `${Math.floor(parseFloat(a.substring(0, a.length - 2))) - .1}px`), X(e, HTMLIFrameElement) && n === "display" && a === "inline" && (a = "block"), n === "d" && t.getAttribute("d") && (a = `path(${t.getAttribute("d")})`), r.setProperty(n, a, i.getPropertyPriority(n));
|
|
3778
3826
|
});
|
|
3779
3827
|
}
|
|
3780
|
-
function
|
|
3828
|
+
function Va(e, t) {
|
|
3781
3829
|
X(e, HTMLTextAreaElement) && (t.innerHTML = e.value), X(e, HTMLInputElement) && t.setAttribute("value", e.value);
|
|
3782
3830
|
}
|
|
3783
|
-
function
|
|
3831
|
+
function Ha(e, t) {
|
|
3784
3832
|
if (X(e, HTMLSelectElement)) {
|
|
3785
3833
|
let n = t, r = Array.from(n.children).find((t) => e.value === t.getAttribute("value"));
|
|
3786
3834
|
r && r.setAttribute("selected", "");
|
|
3787
3835
|
}
|
|
3788
3836
|
}
|
|
3789
|
-
function
|
|
3790
|
-
return X(t, Element) && (
|
|
3837
|
+
function Ua(e, t, n) {
|
|
3838
|
+
return X(t, Element) && (Ba(e, t, n), ba(e, t, n), Va(e, t), Ha(e, t)), t;
|
|
3791
3839
|
}
|
|
3792
|
-
async function
|
|
3840
|
+
async function Wa(e, t) {
|
|
3793
3841
|
let n = e.querySelectorAll ? e.querySelectorAll("use") : [];
|
|
3794
3842
|
if (n.length === 0) return e;
|
|
3795
3843
|
let r = {};
|
|
@@ -3797,7 +3845,7 @@ async function Va(e, t) {
|
|
|
3797
3845
|
let a = n[i].getAttribute("xlink:href");
|
|
3798
3846
|
if (a) {
|
|
3799
3847
|
let n = e.querySelector(a), i = document.querySelector(a);
|
|
3800
|
-
!n && i && !r[a] && (r[a] = await
|
|
3848
|
+
!n && i && !r[a] && (r[a] = await Ga(i, t, !0));
|
|
3801
3849
|
}
|
|
3802
3850
|
}
|
|
3803
3851
|
let i = Object.values(r);
|
|
@@ -3811,61 +3859,61 @@ async function Va(e, t) {
|
|
|
3811
3859
|
}
|
|
3812
3860
|
return e;
|
|
3813
3861
|
}
|
|
3814
|
-
async function
|
|
3815
|
-
return !n && t.filter && !t.filter(e) ? null : Promise.resolve(e).then((e) =>
|
|
3862
|
+
async function Ga(e, t, n) {
|
|
3863
|
+
return !n && t.filter && !t.filter(e) ? null : Promise.resolve(e).then((e) => Ia(e, t)).then((n) => za(e, n, t)).then((n) => Ua(e, n, t)).then((e) => Wa(e, t));
|
|
3816
3864
|
}
|
|
3817
3865
|
//#endregion
|
|
3818
3866
|
//#region ../../node_modules/.pnpm/html-to-image@1.11.13/node_modules/html-to-image/es/embed-resources.js
|
|
3819
|
-
var
|
|
3820
|
-
function
|
|
3867
|
+
var Ka = /url\((['"]?)([^'"]+?)\1\)/g, qa = /url\([^)]+\)\s*format\((["']?)([^"']+)\1\)/g, Ja = /src:\s*(?:url\([^)]+\)\s*format\([^)]+\)[,;]\s*)+/g;
|
|
3868
|
+
function Ya(e) {
|
|
3821
3869
|
let t = e.replace(/([.*+?^${}()|\[\]\/\\])/g, "\\$1");
|
|
3822
3870
|
return RegExp(`(url\\(['"]?)(${t})(['"]?\\))`, "g");
|
|
3823
3871
|
}
|
|
3824
|
-
function
|
|
3872
|
+
function Xa(e) {
|
|
3825
3873
|
let t = [];
|
|
3826
|
-
return e.replace(
|
|
3874
|
+
return e.replace(Ka, (e, n, r) => (t.push(r), e)), t.filter((e) => !Da(e));
|
|
3827
3875
|
}
|
|
3828
|
-
async function
|
|
3876
|
+
async function Za(e, t, n, r, i) {
|
|
3829
3877
|
try {
|
|
3830
|
-
let a = n ?
|
|
3831
|
-
return s = i ?
|
|
3878
|
+
let a = n ? na(t, n) : t, o = Ta(t), s;
|
|
3879
|
+
return s = i ? Oa(await i(a), o) : await Ma(a, o, r), e.replace(Ya(t), `$1${s}$3`);
|
|
3832
3880
|
} catch {}
|
|
3833
3881
|
return e;
|
|
3834
3882
|
}
|
|
3835
|
-
function
|
|
3836
|
-
return t ? e.replace(
|
|
3883
|
+
function Qa(e, { preferredFontFormat: t }) {
|
|
3884
|
+
return t ? e.replace(Ja, (e) => {
|
|
3837
3885
|
for (;;) {
|
|
3838
|
-
let [n, , r] =
|
|
3886
|
+
let [n, , r] = qa.exec(e) || [];
|
|
3839
3887
|
if (!r) return "";
|
|
3840
3888
|
if (r === t) return `src: ${n};`;
|
|
3841
3889
|
}
|
|
3842
3890
|
}) : e;
|
|
3843
3891
|
}
|
|
3844
|
-
function
|
|
3845
|
-
return e.search(
|
|
3892
|
+
function $a(e) {
|
|
3893
|
+
return e.search(Ka) !== -1;
|
|
3846
3894
|
}
|
|
3847
|
-
async function
|
|
3848
|
-
if (
|
|
3849
|
-
let r =
|
|
3850
|
-
return
|
|
3895
|
+
async function eo(e, t, n) {
|
|
3896
|
+
if (!$a(e)) return e;
|
|
3897
|
+
let r = Qa(e, n);
|
|
3898
|
+
return Xa(r).reduce((e, r) => e.then((e) => Za(e, r, t, n)), Promise.resolve(r));
|
|
3851
3899
|
}
|
|
3852
3900
|
//#endregion
|
|
3853
3901
|
//#region ../../node_modules/.pnpm/html-to-image@1.11.13/node_modules/html-to-image/es/embed-images.js
|
|
3854
|
-
async function
|
|
3902
|
+
async function to(e, t, n) {
|
|
3855
3903
|
let r = t.style?.getPropertyValue(e);
|
|
3856
3904
|
if (r) {
|
|
3857
|
-
let i = await
|
|
3905
|
+
let i = await eo(r, null, n);
|
|
3858
3906
|
return t.style.setProperty(e, i, t.style.getPropertyPriority(e)), !0;
|
|
3859
3907
|
}
|
|
3860
3908
|
return !1;
|
|
3861
3909
|
}
|
|
3862
|
-
async function
|
|
3863
|
-
await
|
|
3910
|
+
async function no(e, t) {
|
|
3911
|
+
await to("background", e, t) || await to("background-image", e, t), await to("mask", e, t) || await to("-webkit-mask", e, t) || await to("mask-image", e, t) || await to("-webkit-mask-image", e, t);
|
|
3864
3912
|
}
|
|
3865
|
-
async function
|
|
3913
|
+
async function ro(e, t) {
|
|
3866
3914
|
let n = X(e, HTMLImageElement);
|
|
3867
|
-
if (!(n && !
|
|
3868
|
-
let r = n ? e.src : e.href.baseVal, i = await
|
|
3915
|
+
if (!(n && !Da(e.src)) && !(X(e, SVGImageElement) && !Da(e.href.baseVal))) return;
|
|
3916
|
+
let r = n ? e.src : e.href.baseVal, i = await Ma(r, Ta(r), t);
|
|
3869
3917
|
await new Promise((r, a) => {
|
|
3870
3918
|
e.onload = r, e.onerror = t.onImageErrorHandler ? (...e) => {
|
|
3871
3919
|
try {
|
|
@@ -3878,16 +3926,16 @@ async function eo(e, t) {
|
|
|
3878
3926
|
o.decode &&= r, o.loading === "lazy" && (o.loading = "eager"), n ? (e.srcset = "", e.src = i) : e.href.baseVal = i;
|
|
3879
3927
|
});
|
|
3880
3928
|
}
|
|
3881
|
-
async function
|
|
3882
|
-
let n =
|
|
3929
|
+
async function io(e, t) {
|
|
3930
|
+
let n = ia(e.childNodes).map((e) => ao(e, t));
|
|
3883
3931
|
await Promise.all(n).then(() => e);
|
|
3884
3932
|
}
|
|
3885
|
-
async function
|
|
3886
|
-
X(e, Element) && (await
|
|
3933
|
+
async function ao(e, t) {
|
|
3934
|
+
X(e, Element) && (await no(e, t), await ro(e, t), await io(e, t));
|
|
3887
3935
|
}
|
|
3888
3936
|
//#endregion
|
|
3889
3937
|
//#region ../../node_modules/.pnpm/html-to-image@1.11.13/node_modules/html-to-image/es/apply-style.js
|
|
3890
|
-
function
|
|
3938
|
+
function oo(e, t) {
|
|
3891
3939
|
let { style: n } = e;
|
|
3892
3940
|
t.backgroundColor && (n.backgroundColor = t.backgroundColor), t.width && (n.width = `${t.width}px`), t.height && (n.height = `${t.height}px`);
|
|
3893
3941
|
let r = t.style;
|
|
@@ -3897,22 +3945,22 @@ function ro(e, t) {
|
|
|
3897
3945
|
}
|
|
3898
3946
|
//#endregion
|
|
3899
3947
|
//#region ../../node_modules/.pnpm/html-to-image@1.11.13/node_modules/html-to-image/es/embed-webfonts.js
|
|
3900
|
-
var
|
|
3901
|
-
async function
|
|
3902
|
-
let t =
|
|
3948
|
+
var so = {};
|
|
3949
|
+
async function co(e) {
|
|
3950
|
+
let t = so[e];
|
|
3903
3951
|
return t ?? (t = {
|
|
3904
3952
|
url: e,
|
|
3905
3953
|
cssText: await (await fetch(e)).text()
|
|
3906
|
-
},
|
|
3954
|
+
}, so[e] = t, t);
|
|
3907
3955
|
}
|
|
3908
|
-
async function
|
|
3956
|
+
async function lo(e, t) {
|
|
3909
3957
|
let n = e.cssText, r = /url\(["']?([^"')]+)["']?\)/g, i = (n.match(/url\([^)]+\)/g) || []).map(async (i) => {
|
|
3910
3958
|
let a = i.replace(r, "$1");
|
|
3911
|
-
return a.startsWith("https://") || (a = new URL(a, e.url).href),
|
|
3959
|
+
return a.startsWith("https://") || (a = new URL(a, e.url).href), ka(a, t.fetchRequestInit, ({ result: e }) => (n = n.replace(i, `url(${e})`), [i, e]));
|
|
3912
3960
|
});
|
|
3913
3961
|
return Promise.all(i).then(() => n);
|
|
3914
3962
|
}
|
|
3915
|
-
function
|
|
3963
|
+
function uo(e) {
|
|
3916
3964
|
if (e == null) return [];
|
|
3917
3965
|
let t = [], n = e.replace(/(\/\*[\s\S]*?\*\/)/gi, ""), r = /* @__PURE__ */ RegExp("((@.*?keyframes [\\s\\S]*?){([\\s\\S]*?}\\s*?)})", "gi");
|
|
3918
3966
|
for (;;) {
|
|
@@ -3932,13 +3980,13 @@ function so(e) {
|
|
|
3932
3980
|
}
|
|
3933
3981
|
return t;
|
|
3934
3982
|
}
|
|
3935
|
-
async function
|
|
3983
|
+
async function fo(e, t) {
|
|
3936
3984
|
let n = [], r = [];
|
|
3937
3985
|
return e.forEach((n) => {
|
|
3938
3986
|
if ("cssRules" in n) try {
|
|
3939
|
-
|
|
3987
|
+
ia(n.cssRules || []).forEach((e, i) => {
|
|
3940
3988
|
if (e.type === CSSRule.IMPORT_RULE) {
|
|
3941
|
-
let a = i + 1, o = e.href, s =
|
|
3989
|
+
let a = i + 1, o = e.href, s = co(o).then((e) => lo(e, t)).then((e) => uo(e).forEach((e) => {
|
|
3942
3990
|
try {
|
|
3943
3991
|
n.insertRule(e, e.startsWith("@import") ? a += 1 : n.cssRules.length);
|
|
3944
3992
|
} catch (t) {
|
|
@@ -3955,7 +4003,7 @@ async function co(e, t) {
|
|
|
3955
4003
|
});
|
|
3956
4004
|
} catch (i) {
|
|
3957
4005
|
let a = e.find((e) => e.href == null) || document.styleSheets[0];
|
|
3958
|
-
n.href != null && r.push(
|
|
4006
|
+
n.href != null && r.push(co(n.href).then((e) => lo(e, t)).then((e) => uo(e).forEach((e) => {
|
|
3959
4007
|
a.insertRule(e, a.cssRules.length);
|
|
3960
4008
|
})).catch((e) => {
|
|
3961
4009
|
console.error("Error loading remote stylesheet", e);
|
|
@@ -3963,7 +4011,7 @@ async function co(e, t) {
|
|
|
3963
4011
|
}
|
|
3964
4012
|
}), Promise.all(r).then(() => (e.forEach((e) => {
|
|
3965
4013
|
if ("cssRules" in e) try {
|
|
3966
|
-
|
|
4014
|
+
ia(e.cssRules || []).forEach((e) => {
|
|
3967
4015
|
n.push(e);
|
|
3968
4016
|
});
|
|
3969
4017
|
} catch (t) {
|
|
@@ -3971,36 +4019,36 @@ async function co(e, t) {
|
|
|
3971
4019
|
}
|
|
3972
4020
|
}), n));
|
|
3973
4021
|
}
|
|
3974
|
-
function
|
|
3975
|
-
return e.filter((e) => e.type === CSSRule.FONT_FACE_RULE).filter((e) =>
|
|
4022
|
+
function po(e) {
|
|
4023
|
+
return e.filter((e) => e.type === CSSRule.FONT_FACE_RULE).filter((e) => $a(e.style.getPropertyValue("src")));
|
|
3976
4024
|
}
|
|
3977
|
-
async function
|
|
4025
|
+
async function mo(e, t) {
|
|
3978
4026
|
if (e.ownerDocument == null) throw Error("Provided element is not within a Document");
|
|
3979
|
-
return
|
|
4027
|
+
return po(await fo(ia(e.ownerDocument.styleSheets), t));
|
|
3980
4028
|
}
|
|
3981
|
-
function
|
|
4029
|
+
function ho(e) {
|
|
3982
4030
|
return e.trim().replace(/["']/g, "");
|
|
3983
4031
|
}
|
|
3984
|
-
function
|
|
4032
|
+
function go(e) {
|
|
3985
4033
|
let t = /* @__PURE__ */ new Set();
|
|
3986
4034
|
function n(e) {
|
|
3987
4035
|
(e.style.fontFamily || getComputedStyle(e).fontFamily).split(",").forEach((e) => {
|
|
3988
|
-
t.add(
|
|
4036
|
+
t.add(ho(e));
|
|
3989
4037
|
}), Array.from(e.children).forEach((e) => {
|
|
3990
4038
|
e instanceof HTMLElement && n(e);
|
|
3991
4039
|
});
|
|
3992
4040
|
}
|
|
3993
4041
|
return n(e), t;
|
|
3994
4042
|
}
|
|
3995
|
-
async function
|
|
3996
|
-
let n = await
|
|
3997
|
-
return (await Promise.all(n.filter((e) => r.has(
|
|
4043
|
+
async function _o(e, t) {
|
|
4044
|
+
let n = await mo(e, t), r = go(e);
|
|
4045
|
+
return (await Promise.all(n.filter((e) => r.has(ho(e.style.fontFamily))).map((e) => {
|
|
3998
4046
|
let n = e.parentStyleSheet ? e.parentStyleSheet.href : null;
|
|
3999
|
-
return
|
|
4047
|
+
return eo(e.cssText, n, t);
|
|
4000
4048
|
}))).join("\n");
|
|
4001
4049
|
}
|
|
4002
|
-
async function
|
|
4003
|
-
let n = t.fontEmbedCSS == null ? t.skipFonts ? null : await
|
|
4050
|
+
async function vo(e, t) {
|
|
4051
|
+
let n = t.fontEmbedCSS == null ? t.skipFonts ? null : await _o(e, t) : t.fontEmbedCSS;
|
|
4004
4052
|
if (n) {
|
|
4005
4053
|
let t = document.createElement("style"), r = document.createTextNode(n);
|
|
4006
4054
|
t.appendChild(r), e.firstChild ? e.insertBefore(t, e.firstChild) : e.appendChild(t);
|
|
@@ -4008,17 +4056,17 @@ async function ho(e, t) {
|
|
|
4008
4056
|
}
|
|
4009
4057
|
//#endregion
|
|
4010
4058
|
//#region ../../node_modules/.pnpm/html-to-image@1.11.13/node_modules/html-to-image/es/index.js
|
|
4011
|
-
async function
|
|
4012
|
-
let { width: n, height: r } =
|
|
4013
|
-
return await
|
|
4059
|
+
async function yo(e, t = {}) {
|
|
4060
|
+
let { width: n, height: r } = ua(e, t), i = await Ga(e, t, !0);
|
|
4061
|
+
return await vo(i, t), await ao(i, t), oo(i, t), await ha(i, n, r);
|
|
4014
4062
|
}
|
|
4015
|
-
async function
|
|
4016
|
-
let { width: n, height: r } =
|
|
4017
|
-
return a.width = c * s, a.height = l * s, t.skipAutoScale ||
|
|
4063
|
+
async function bo(e, t = {}) {
|
|
4064
|
+
let { width: n, height: r } = ua(e, t), i = await pa(await yo(e, t)), a = document.createElement("canvas"), o = a.getContext("2d"), s = t.pixelRatio || da(), c = t.canvasWidth || n, l = t.canvasHeight || r;
|
|
4065
|
+
return a.width = c * s, a.height = l * s, t.skipAutoScale || fa(a), a.style.width = `${c}`, a.style.height = `${l}`, t.backgroundColor && (o.fillStyle = t.backgroundColor, o.fillRect(0, 0, a.width, a.height)), o.drawImage(i, 0, 0, a.width, a.height), a;
|
|
4018
4066
|
}
|
|
4019
4067
|
//#endregion
|
|
4020
4068
|
//#region src/runtime/screenshot.ts
|
|
4021
|
-
var
|
|
4069
|
+
var xo = 2097152, So = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7", Co = [
|
|
4022
4070
|
{
|
|
4023
4071
|
quality: .85,
|
|
4024
4072
|
scale: 1
|
|
@@ -4035,8 +4083,8 @@ var vo = 2097152, yo = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAA
|
|
|
4035
4083
|
quality: .6,
|
|
4036
4084
|
scale: .5
|
|
4037
4085
|
}
|
|
4038
|
-
],
|
|
4039
|
-
function
|
|
4086
|
+
], wo = "background:currentColor!important;color:transparent!important;text-shadow:none!important;-webkit-text-fill-color:transparent!important", To = "input[type=\"password\"],input[autocomplete~=\"cc-number\"],input[autocomplete~=\"cc-csc\"],input[autocomplete~=\"cc-exp\"],input[autocomplete~=\"cc-name\"],input[autocomplete~=\"cc-type\"],input[autocomplete~=\"current-password\"],input[autocomplete~=\"new-password\"],input[autocomplete~=\"one-time-code\"]";
|
|
4087
|
+
function Eo(e) {
|
|
4040
4088
|
let t = e.parentElement;
|
|
4041
4089
|
for (; t;) {
|
|
4042
4090
|
if (t.hasAttribute("data-markup-safe")) return !0;
|
|
@@ -4044,37 +4092,37 @@ function Co(e) {
|
|
|
4044
4092
|
}
|
|
4045
4093
|
return !1;
|
|
4046
4094
|
}
|
|
4047
|
-
function
|
|
4095
|
+
function Do(e) {
|
|
4048
4096
|
let t = /* @__PURE__ */ new Set(), n = [];
|
|
4049
4097
|
function r(e) {
|
|
4050
4098
|
t.has(e) || (t.add(e), n.push(e));
|
|
4051
4099
|
}
|
|
4052
4100
|
for (let e of document.querySelectorAll("[data-markup-private],[data-markup-redact]")) r(e);
|
|
4053
|
-
for (let e of document.querySelectorAll(
|
|
4101
|
+
for (let e of document.querySelectorAll(To)) Eo(e) || r(e);
|
|
4054
4102
|
if (e.redactSelector) try {
|
|
4055
|
-
for (let t of document.querySelectorAll(e.redactSelector))
|
|
4103
|
+
for (let t of document.querySelectorAll(e.redactSelector)) Eo(t) || r(t);
|
|
4056
4104
|
} catch (e) {
|
|
4057
4105
|
I(e, { context: "screenshot-redact-selector" });
|
|
4058
4106
|
}
|
|
4059
|
-
if (e.strictScrub) for (let e of document.querySelectorAll("input,select,textarea"))
|
|
4107
|
+
if (e.strictScrub) for (let e of document.querySelectorAll("input,select,textarea")) Eo(e) || r(e);
|
|
4060
4108
|
return n;
|
|
4061
4109
|
}
|
|
4062
|
-
function
|
|
4110
|
+
function Oo(e) {
|
|
4063
4111
|
let t = e.getAttribute("style");
|
|
4064
|
-
return e.setAttribute("style", t ? `${t};${
|
|
4112
|
+
return e.setAttribute("style", t ? `${t};${wo}` : wo), () => {
|
|
4065
4113
|
t === null ? e.removeAttribute("style") : e.setAttribute("style", t);
|
|
4066
4114
|
};
|
|
4067
4115
|
}
|
|
4068
|
-
function
|
|
4116
|
+
function ko(e) {
|
|
4069
4117
|
if (e.id) return `#${CSS.escape(e.id)}`;
|
|
4070
4118
|
let t = e.tagName.toLowerCase(), n = e.getAttribute("type"), r = e.getAttribute("name");
|
|
4071
4119
|
return n && r ? `${t}[type="${n}"][name="${r}"]` : n ? `${t}[type="${n}"]` : r ? `${t}[name="${r}"]` : t;
|
|
4072
4120
|
}
|
|
4073
|
-
async function
|
|
4121
|
+
async function Ao(e, t, n) {
|
|
4074
4122
|
try {
|
|
4075
|
-
let r = window.innerWidth, i = window.innerHeight, a = Math.min(window.devicePixelRatio, 2), o = n ?
|
|
4123
|
+
let r = window.innerWidth, i = window.innerHeight, a = Math.min(window.devicePixelRatio, 2), o = n ? Do(n) : [], s = o.map(ko), c = o.map(Oo), l;
|
|
4076
4124
|
try {
|
|
4077
|
-
l = await
|
|
4125
|
+
l = await bo(document.documentElement, {
|
|
4078
4126
|
width: r,
|
|
4079
4127
|
height: i,
|
|
4080
4128
|
cacheBust: !0,
|
|
@@ -4083,7 +4131,7 @@ async function Do(e, t, n) {
|
|
|
4083
4131
|
filter(t) {
|
|
4084
4132
|
return !(e && (t === e || e.contains(t)) || t instanceof Element && t.hasAttribute("data-markup-skip"));
|
|
4085
4133
|
},
|
|
4086
|
-
imagePlaceholder:
|
|
4134
|
+
imagePlaceholder: So,
|
|
4087
4135
|
onImageErrorHandler: () => {},
|
|
4088
4136
|
style: {
|
|
4089
4137
|
transform: `translateY(-${window.scrollY}px)`,
|
|
@@ -4095,9 +4143,9 @@ async function Do(e, t, n) {
|
|
|
4095
4143
|
}
|
|
4096
4144
|
if (t) {
|
|
4097
4145
|
let e = l.getContext("2d");
|
|
4098
|
-
e &&
|
|
4146
|
+
e && Po(e, t.x, t.y, a);
|
|
4099
4147
|
}
|
|
4100
|
-
let u = await
|
|
4148
|
+
let u = await No(l);
|
|
4101
4149
|
return u ? {
|
|
4102
4150
|
blob: u,
|
|
4103
4151
|
redactedCount: s.length,
|
|
@@ -4107,29 +4155,29 @@ async function Do(e, t, n) {
|
|
|
4107
4155
|
return I(e, { context: "screenshot-capture" }), null;
|
|
4108
4156
|
}
|
|
4109
4157
|
}
|
|
4110
|
-
function
|
|
4158
|
+
function jo(e, t) {
|
|
4111
4159
|
return new Promise((n) => e.toBlob(n, "image/jpeg", t));
|
|
4112
4160
|
}
|
|
4113
|
-
function
|
|
4161
|
+
function Mo(e, t) {
|
|
4114
4162
|
let n = document.createElement("canvas");
|
|
4115
4163
|
n.width = Math.max(1, Math.round(e.width * t)), n.height = Math.max(1, Math.round(e.height * t));
|
|
4116
4164
|
let r = n.getContext("2d");
|
|
4117
4165
|
return r ? (r.imageSmoothingQuality = "high", r.drawImage(e, 0, 0, n.width, n.height), n) : null;
|
|
4118
4166
|
}
|
|
4119
|
-
async function
|
|
4167
|
+
async function No(e) {
|
|
4120
4168
|
let t = null;
|
|
4121
|
-
for (let { quality: n, scale: r } of
|
|
4122
|
-
let i = r === 1 ? e :
|
|
4169
|
+
for (let { quality: n, scale: r } of Co) {
|
|
4170
|
+
let i = r === 1 ? e : Mo(e, r);
|
|
4123
4171
|
if (!i) continue;
|
|
4124
|
-
let a = await
|
|
4172
|
+
let a = await jo(i, n);
|
|
4125
4173
|
if (a) {
|
|
4126
|
-
if (a.size <=
|
|
4174
|
+
if (a.size <= xo) return a;
|
|
4127
4175
|
t = t == null ? a.size : Math.min(t, a.size);
|
|
4128
4176
|
}
|
|
4129
4177
|
}
|
|
4130
|
-
return I(/* @__PURE__ */ Error(t == null ? "Screenshot encode produced no blob at any quality/scale" : `Screenshot still ${t} bytes at the end of the encode ladder (cap ${
|
|
4178
|
+
return I(/* @__PURE__ */ Error(t == null ? "Screenshot encode produced no blob at any quality/scale" : `Screenshot still ${t} bytes at the end of the encode ladder (cap ${xo})`), { context: "screenshot-encode" }), null;
|
|
4131
4179
|
}
|
|
4132
|
-
function
|
|
4180
|
+
function Po(e, t, n, r) {
|
|
4133
4181
|
let i = r, a = 28 * i, o = a / 2, s = t * i, c = n * i;
|
|
4134
4182
|
e.save();
|
|
4135
4183
|
let l = 2 * i;
|
|
@@ -4147,7 +4195,7 @@ function jo(e, t, n, r) {
|
|
|
4147
4195
|
}
|
|
4148
4196
|
//#endregion
|
|
4149
4197
|
//#region src/runtime/use-subscription-token.ts
|
|
4150
|
-
var
|
|
4198
|
+
var Fo = Ur({
|
|
4151
4199
|
idle: { issued: (e, t) => ({
|
|
4152
4200
|
kind: "active",
|
|
4153
4201
|
token: t.token,
|
|
@@ -4158,9 +4206,9 @@ var Mo = Ur({
|
|
|
4158
4206
|
token: t.token,
|
|
4159
4207
|
expiresAt: t.expiresAt
|
|
4160
4208
|
}) }
|
|
4161
|
-
}),
|
|
4162
|
-
function
|
|
4163
|
-
let [t, n] = Wr(
|
|
4209
|
+
}), Io = 18e5, Lo = 6e4, Ro = 6e4;
|
|
4210
|
+
function zo(e) {
|
|
4211
|
+
let [t, n] = Wr(Fo, { kind: "idle" });
|
|
4164
4212
|
return V(() => {
|
|
4165
4213
|
let t = !1, r = null;
|
|
4166
4214
|
async function i() {
|
|
@@ -4172,11 +4220,11 @@ function Io(e) {
|
|
|
4172
4220
|
token: a.token,
|
|
4173
4221
|
expiresAt: a.expiresAt
|
|
4174
4222
|
});
|
|
4175
|
-
let o = Math.max(
|
|
4223
|
+
let o = Math.max(Lo, a.expiresAt - Date.now() - Io);
|
|
4176
4224
|
r = setTimeout(i, o);
|
|
4177
4225
|
} catch (e) {
|
|
4178
4226
|
if (t) return;
|
|
4179
|
-
e?.name !== "TypeError" && I(e, { context: "subscription-token-refresh" }), r = setTimeout(i,
|
|
4227
|
+
e?.name !== "TypeError" && I(e, { context: "subscription-token-refresh" }), r = setTimeout(i, Ro);
|
|
4180
4228
|
}
|
|
4181
4229
|
}
|
|
4182
4230
|
return i(), () => {
|
|
@@ -4186,7 +4234,7 @@ function Io(e) {
|
|
|
4186
4234
|
}
|
|
4187
4235
|
//#endregion
|
|
4188
4236
|
//#region src/runtime/refresh-token.ts
|
|
4189
|
-
async function
|
|
4237
|
+
async function Bo(e) {
|
|
4190
4238
|
try {
|
|
4191
4239
|
let t = {
|
|
4192
4240
|
method: "POST",
|
|
@@ -4194,7 +4242,7 @@ async function Lo(e) {
|
|
|
4194
4242
|
"content-type": "application/json",
|
|
4195
4243
|
"x-markup-api-key": e.apiKey
|
|
4196
4244
|
},
|
|
4197
|
-
signal:
|
|
4245
|
+
signal: Oi(J, e.signal)
|
|
4198
4246
|
};
|
|
4199
4247
|
if (e.mode === "cookies") t.credentials = "include", t.body = "{}";
|
|
4200
4248
|
else {
|
|
@@ -4222,8 +4270,8 @@ async function Lo(e) {
|
|
|
4222
4270
|
}
|
|
4223
4271
|
//#endregion
|
|
4224
4272
|
//#region src/runtime/use-token-refresh.ts
|
|
4225
|
-
var
|
|
4226
|
-
function
|
|
4273
|
+
var Vo = 6e4, Ho = 500;
|
|
4274
|
+
function Uo(e, t, n, r, i) {
|
|
4227
4275
|
let a = e.kind === "verified", o = a ? e.identity.storage : void 0, s = a ? e.identity.refreshToken : void 0, c = a ? e.identity.refreshTokenExpiresAt : void 0, l = a ? e.identity.tokenExpiresAt : void 0;
|
|
4228
4276
|
V(() => {
|
|
4229
4277
|
if (!a || c == null || l == null || o === "localStorage" && s == null || o !== "cookies" && o !== "localStorage") return;
|
|
@@ -4232,8 +4280,8 @@ function Bo(e, t, n, r, i) {
|
|
|
4232
4280
|
i();
|
|
4233
4281
|
return;
|
|
4234
4282
|
}
|
|
4235
|
-
let d = Math.max(
|
|
4236
|
-
let a = await
|
|
4283
|
+
let d = Math.max(Ho, l - Vo - u), f = new AbortController(), p = window.setTimeout(async () => {
|
|
4284
|
+
let a = await Bo({
|
|
4237
4285
|
apiUrl: t,
|
|
4238
4286
|
apiKey: n,
|
|
4239
4287
|
mode: o,
|
|
@@ -4276,7 +4324,7 @@ function Bo(e, t, n, r, i) {
|
|
|
4276
4324
|
function Z(...e) {
|
|
4277
4325
|
return e.filter(Boolean).join(" ");
|
|
4278
4326
|
}
|
|
4279
|
-
function
|
|
4327
|
+
function Wo() {
|
|
4280
4328
|
return typeof navigator < "u" && /Mac|iPhone|iPad/.test(navigator.platform || navigator.userAgent) ? {
|
|
4281
4329
|
mod: "⌘",
|
|
4282
4330
|
enter: "↵"
|
|
@@ -4287,7 +4335,7 @@ function Vo() {
|
|
|
4287
4335
|
}
|
|
4288
4336
|
//#endregion
|
|
4289
4337
|
//#region ../../node_modules/.pnpm/preact@10.29.7/node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js
|
|
4290
|
-
var
|
|
4338
|
+
var Go = 0;
|
|
4291
4339
|
Array.isArray;
|
|
4292
4340
|
function Q(e, n, r, i, a, o) {
|
|
4293
4341
|
n ||= {};
|
|
@@ -4304,7 +4352,7 @@ function Q(e, n, r, i, a, o) {
|
|
|
4304
4352
|
__e: null,
|
|
4305
4353
|
__c: null,
|
|
4306
4354
|
constructor: void 0,
|
|
4307
|
-
__v: --
|
|
4355
|
+
__v: --Go,
|
|
4308
4356
|
__i: -1,
|
|
4309
4357
|
__u: 0,
|
|
4310
4358
|
__source: a,
|
|
@@ -4315,7 +4363,7 @@ function Q(e, n, r, i, a, o) {
|
|
|
4315
4363
|
}
|
|
4316
4364
|
//#endregion
|
|
4317
4365
|
//#region src/runtime/ui/icons.tsx
|
|
4318
|
-
function
|
|
4366
|
+
function Ko({ size: e = 16 }) {
|
|
4319
4367
|
return /* @__PURE__ */ Q("svg", {
|
|
4320
4368
|
width: e,
|
|
4321
4369
|
height: e,
|
|
@@ -4325,7 +4373,7 @@ function Uo({ size: e = 16 }) {
|
|
|
4325
4373
|
children: /* @__PURE__ */ Q("path", { d: "M63.4561 0.00557731C70.6277 -0.0175584 76.9025 1.04088 83.5898 3.71066C97.7952 9.43043 109.186 20.5001 115.311 34.5359C119.708 44.8002 120.746 54.7869 119.156 65.8171C116.857 82.7956 105.129 98.8382 90.0566 106.846C83.4394 110.362 74.7336 113.029 67.2051 113.271C62.4204 113.425 61.1274 113.32 56.6807 115.204C50.2035 117.858 43.6874 120.417 37.1348 122.879C34.8442 123.763 32.3203 124.902 29.9404 125.51C29.4023 125.648 28.1978 125.009 27.7598 124.646C26.9046 123.951 27.0582 122.505 27.0264 121.484C26.8123 114.646 27.3302 107.458 26.8604 100.656C25.1578 98.6714 22.4026 96.603 20.3086 94.1989C12.1853 84.8731 7.05334 73.9949 6.18164 61.6101C4.95583 46.292 9.97176 31.1285 20.0908 19.5632C29.989 8.13202 44.0369 1.11921 59.1221 0.0788195C60.2694 -0.0356049 62.2637 0.00944821 63.4561 0.00557731ZM92.2676 55.7497C91.5754 39.5314 77.8207 26.9725 61.6064 27.7536C45.5175 28.5287 33.0758 42.1537 33.7627 58.2468C34.4496 74.3398 48.007 86.8553 64.1035 86.2566C80.3254 85.6533 92.9599 71.968 92.2676 55.7497Z" })
|
|
4326
4374
|
});
|
|
4327
4375
|
}
|
|
4328
|
-
function
|
|
4376
|
+
function qo({ size: e = 16 }) {
|
|
4329
4377
|
return /* @__PURE__ */ Q("svg", {
|
|
4330
4378
|
width: e,
|
|
4331
4379
|
height: e,
|
|
@@ -4334,7 +4382,7 @@ function Wo({ size: e = 16 }) {
|
|
|
4334
4382
|
children: /* @__PURE__ */ Q("path", { d: "M6.28 5.22a.75.75 0 0 0-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 1 0 1.06 1.06L10 11.06l3.72 3.72a.75.75 0 1 0 1.06-1.06L11.06 10l3.72-3.72a.75.75 0 0 0-1.06-1.06L10 8.94 6.28 5.22Z" })
|
|
4335
4383
|
});
|
|
4336
4384
|
}
|
|
4337
|
-
function
|
|
4385
|
+
function Jo({ size: e = 16 }) {
|
|
4338
4386
|
return /* @__PURE__ */ Q("svg", {
|
|
4339
4387
|
width: e,
|
|
4340
4388
|
height: e,
|
|
@@ -4344,7 +4392,7 @@ function Go({ size: e = 16 }) {
|
|
|
4344
4392
|
children: /* @__PURE__ */ Q("path", { d: "M12.78 5.22a.75.75 0 0 1 0 1.06L9.06 10l3.72 3.72a.75.75 0 1 1-1.06 1.06l-4.25-4.25a.75.75 0 0 1 0-1.06l4.25-4.25a.75.75 0 0 1 1.06 0Z" })
|
|
4345
4393
|
});
|
|
4346
4394
|
}
|
|
4347
|
-
function
|
|
4395
|
+
function Yo({ size: e = 16 }) {
|
|
4348
4396
|
return /* @__PURE__ */ Q("svg", {
|
|
4349
4397
|
width: e,
|
|
4350
4398
|
height: e,
|
|
@@ -4353,7 +4401,7 @@ function Ko({ size: e = 16 }) {
|
|
|
4353
4401
|
children: /* @__PURE__ */ Q("path", { d: "M3 10a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0ZM8.5 10a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0ZM15.5 8.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3Z" })
|
|
4354
4402
|
});
|
|
4355
4403
|
}
|
|
4356
|
-
function
|
|
4404
|
+
function Xo({ size: e = 16 }) {
|
|
4357
4405
|
return /* @__PURE__ */ Q("svg", {
|
|
4358
4406
|
xmlns: "http://www.w3.org/2000/svg",
|
|
4359
4407
|
width: e,
|
|
@@ -4363,7 +4411,7 @@ function qo({ size: e = 16 }) {
|
|
|
4363
4411
|
children: /* @__PURE__ */ Q("path", { d: "M173.66,98.34a8,8,0,0,1,0,11.32l-56,56a8,8,0,0,1-11.32,0l-24-24a8,8,0,0,1,11.32-11.32L112,148.69l50.34-50.35A8,8,0,0,1,173.66,98.34ZM232,128A104,104,0,1,1,128,24,104.11,104.11,0,0,1,232,128Zm-16,0a88,88,0,1,0-88,88A88.1,88.1,0,0,0,216,128Z" })
|
|
4364
4412
|
});
|
|
4365
4413
|
}
|
|
4366
|
-
function
|
|
4414
|
+
function Zo({ size: e = 16 }) {
|
|
4367
4415
|
return /* @__PURE__ */ Q("svg", {
|
|
4368
4416
|
width: e,
|
|
4369
4417
|
height: e,
|
|
@@ -4377,7 +4425,7 @@ function Jo({ size: e = 16 }) {
|
|
|
4377
4425
|
})
|
|
4378
4426
|
});
|
|
4379
4427
|
}
|
|
4380
|
-
function
|
|
4428
|
+
function Qo({ size: e = 16 }) {
|
|
4381
4429
|
return /* @__PURE__ */ Q("svg", {
|
|
4382
4430
|
width: e,
|
|
4383
4431
|
height: e,
|
|
@@ -4386,7 +4434,7 @@ function Yo({ size: e = 16 }) {
|
|
|
4386
4434
|
children: /* @__PURE__ */ Q("path", { d: "M2.87 2.298a.75.75 0 0 0-.812 1.021L3.39 6.624a1 1 0 0 0 .928.626H8.25a.75.75 0 0 1 0 1.5H4.318a1 1 0 0 0-.927.626l-1.333 3.305a.75.75 0 0 0 .811 1.022 24.89 24.89 0 0 0 11.668-5.115.75.75 0 0 0 0-1.175A24.89 24.89 0 0 0 2.869 2.298Z" })
|
|
4387
4435
|
});
|
|
4388
4436
|
}
|
|
4389
|
-
function
|
|
4437
|
+
function $o({ size: e = 16 }) {
|
|
4390
4438
|
return /* @__PURE__ */ Q("svg", {
|
|
4391
4439
|
width: e,
|
|
4392
4440
|
height: e,
|
|
@@ -4410,19 +4458,19 @@ function $({ size: e = 16, children: t }) {
|
|
|
4410
4458
|
children: t
|
|
4411
4459
|
});
|
|
4412
4460
|
}
|
|
4413
|
-
function
|
|
4461
|
+
function es({ size: e = 16 }) {
|
|
4414
4462
|
return /* @__PURE__ */ Q($, {
|
|
4415
4463
|
size: e,
|
|
4416
4464
|
children: /* @__PURE__ */ Q("path", { d: "M21 11.5a8.4 8.4 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.4 8.4 0 0 1-3.8-.9L3 21l1.9-5.7a8.4 8.4 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.4 8.4 0 0 1 3.8-.9h.5a8.5 8.5 0 0 1 8 8v.5z" })
|
|
4417
4465
|
});
|
|
4418
4466
|
}
|
|
4419
|
-
function
|
|
4467
|
+
function ts({ size: e = 16 }) {
|
|
4420
4468
|
return /* @__PURE__ */ Q($, {
|
|
4421
4469
|
size: e,
|
|
4422
4470
|
children: [/* @__PURE__ */ Q("path", { d: "M22 12h-6l-2 3h-4l-2-3H2" }), /* @__PURE__ */ Q("path", { d: "M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z" })]
|
|
4423
4471
|
});
|
|
4424
4472
|
}
|
|
4425
|
-
function
|
|
4473
|
+
function ns({ size: e = 16 }) {
|
|
4426
4474
|
return /* @__PURE__ */ Q($, {
|
|
4427
4475
|
size: e,
|
|
4428
4476
|
children: [/* @__PURE__ */ Q("path", { d: "M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12z" }), /* @__PURE__ */ Q("circle", {
|
|
@@ -4432,7 +4480,7 @@ function $o({ size: e = 16 }) {
|
|
|
4432
4480
|
})]
|
|
4433
4481
|
});
|
|
4434
4482
|
}
|
|
4435
|
-
function
|
|
4483
|
+
function rs({ size: e = 16 }) {
|
|
4436
4484
|
return /* @__PURE__ */ Q($, {
|
|
4437
4485
|
size: e,
|
|
4438
4486
|
children: [
|
|
@@ -4443,13 +4491,13 @@ function es({ size: e = 16 }) {
|
|
|
4443
4491
|
]
|
|
4444
4492
|
});
|
|
4445
4493
|
}
|
|
4446
|
-
function
|
|
4494
|
+
function is({ size: e = 16 }) {
|
|
4447
4495
|
return /* @__PURE__ */ Q($, {
|
|
4448
4496
|
size: e,
|
|
4449
4497
|
children: /* @__PURE__ */ Q("path", { d: "M3 6h18M3 12h18M3 18h18" })
|
|
4450
4498
|
});
|
|
4451
4499
|
}
|
|
4452
|
-
function
|
|
4500
|
+
function as({ size: e = 16 }) {
|
|
4453
4501
|
return /* @__PURE__ */ Q($, {
|
|
4454
4502
|
size: e,
|
|
4455
4503
|
children: [/* @__PURE__ */ Q("circle", {
|
|
@@ -4459,13 +4507,13 @@ function ns({ size: e = 16 }) {
|
|
|
4459
4507
|
}), /* @__PURE__ */ Q("path", { d: "M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M4.93 19.07l1.41-1.41M17.66 6.34l1.41-1.41" })]
|
|
4460
4508
|
});
|
|
4461
4509
|
}
|
|
4462
|
-
function
|
|
4510
|
+
function os({ size: e = 16 }) {
|
|
4463
4511
|
return /* @__PURE__ */ Q($, {
|
|
4464
4512
|
size: e,
|
|
4465
4513
|
children: /* @__PURE__ */ Q("path", { d: "M21 12.79A9 9 0 1 1 11.21 3a7 7 0 0 0 9.79 9.79z" })
|
|
4466
4514
|
});
|
|
4467
4515
|
}
|
|
4468
|
-
function
|
|
4516
|
+
function ss({ size: e = 16 }) {
|
|
4469
4517
|
return /* @__PURE__ */ Q($, {
|
|
4470
4518
|
size: e,
|
|
4471
4519
|
children: [/* @__PURE__ */ Q("rect", {
|
|
@@ -4477,13 +4525,13 @@ function is({ size: e = 16 }) {
|
|
|
4477
4525
|
}), /* @__PURE__ */ Q("path", { d: "M8 21h8M12 17v4" })]
|
|
4478
4526
|
});
|
|
4479
4527
|
}
|
|
4480
|
-
function
|
|
4528
|
+
function cs({ size: e = 16 }) {
|
|
4481
4529
|
return /* @__PURE__ */ Q($, {
|
|
4482
4530
|
size: e,
|
|
4483
4531
|
children: /* @__PURE__ */ Q("path", { d: "M12 22s8-3.5 8-10V5l-8-3-8 3v7c0 6.5 8 10 8 10z" })
|
|
4484
4532
|
});
|
|
4485
4533
|
}
|
|
4486
|
-
function
|
|
4534
|
+
function ls({ size: e = 16 }) {
|
|
4487
4535
|
return /* @__PURE__ */ Q($, {
|
|
4488
4536
|
size: e,
|
|
4489
4537
|
children: [/* @__PURE__ */ Q("rect", {
|
|
@@ -4495,19 +4543,19 @@ function os({ size: e = 16 }) {
|
|
|
4495
4543
|
}), /* @__PURE__ */ Q("path", { d: "M6 10h.01M10 10h.01M14 10h.01M18 10h.01M6 14h.01M18 14h.01M10 14h4" })]
|
|
4496
4544
|
});
|
|
4497
4545
|
}
|
|
4498
|
-
function
|
|
4546
|
+
function us({ size: e = 16 }) {
|
|
4499
4547
|
return /* @__PURE__ */ Q($, {
|
|
4500
4548
|
size: e,
|
|
4501
4549
|
children: [/* @__PURE__ */ Q("path", { d: "M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4" }), /* @__PURE__ */ Q("path", { d: "M10 17l5-5-5-5M15 12H3" })]
|
|
4502
4550
|
});
|
|
4503
4551
|
}
|
|
4504
|
-
function
|
|
4552
|
+
function ds({ size: e = 16 }) {
|
|
4505
4553
|
return /* @__PURE__ */ Q($, {
|
|
4506
4554
|
size: e,
|
|
4507
4555
|
children: [/* @__PURE__ */ Q("path", { d: "M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4" }), /* @__PURE__ */ Q("path", { d: "M16 17l5-5-5-5M21 12H9" })]
|
|
4508
4556
|
});
|
|
4509
4557
|
}
|
|
4510
|
-
function
|
|
4558
|
+
function fs({ size: e = 16 }) {
|
|
4511
4559
|
return /* @__PURE__ */ Q($, {
|
|
4512
4560
|
size: e,
|
|
4513
4561
|
children: [/* @__PURE__ */ Q("circle", {
|
|
@@ -4517,7 +4565,7 @@ function ls({ size: e = 16 }) {
|
|
|
4517
4565
|
}), /* @__PURE__ */ Q("path", { d: "M4 21a8 8 0 0 1 16 0" })]
|
|
4518
4566
|
});
|
|
4519
4567
|
}
|
|
4520
|
-
function
|
|
4568
|
+
function ps({ size: e = 16 }) {
|
|
4521
4569
|
return /* @__PURE__ */ Q($, {
|
|
4522
4570
|
size: e,
|
|
4523
4571
|
children: [
|
|
@@ -4536,7 +4584,7 @@ function us({ size: e = 16 }) {
|
|
|
4536
4584
|
]
|
|
4537
4585
|
});
|
|
4538
4586
|
}
|
|
4539
|
-
function
|
|
4587
|
+
function ms({ size: e = 16 }) {
|
|
4540
4588
|
return /* @__PURE__ */ Q($, {
|
|
4541
4589
|
size: e,
|
|
4542
4590
|
children: [
|
|
@@ -4548,7 +4596,7 @@ function ds({ size: e = 16 }) {
|
|
|
4548
4596
|
}
|
|
4549
4597
|
//#endregion
|
|
4550
4598
|
//#region src/runtime/ui/identity-menu.tsx
|
|
4551
|
-
function
|
|
4599
|
+
function hs({ identity: e, position: t, isSigningIn: n, isSigningOut: r, dashboardUrl: i, onSignIn: a, onSignOut: o, onForgetMe: s }) {
|
|
4552
4600
|
let [c, l] = B(!1), [u, d] = B(!1), [f, p] = B(!1), m = H(null);
|
|
4553
4601
|
V(() => {
|
|
4554
4602
|
if (!c) return;
|
|
@@ -4565,7 +4613,7 @@ function fs({ identity: e, position: t, isSigningIn: n, isSigningOut: r, dashboa
|
|
|
4565
4613
|
}, [c]), V(() => {
|
|
4566
4614
|
c || (d(!1), p(!1));
|
|
4567
4615
|
}, [c]);
|
|
4568
|
-
let h =
|
|
4616
|
+
let h = Yi(e), g = gs(h), _ = e.kind === "verified", v = e.kind === "verified" ? e.identity.image : void 0, [y, b] = B(null), x = _ && v != null && y !== v, C = _ ? e.identity.email : null, w = t === "bottom-left" ? "is-anchor-left" : t === "bottom-center" ? "is-anchor-center" : "is-anchor-right";
|
|
4569
4617
|
return /* @__PURE__ */ Q("div", {
|
|
4570
4618
|
ref: m,
|
|
4571
4619
|
style: {
|
|
@@ -4598,7 +4646,7 @@ function fs({ identity: e, position: t, isSigningIn: n, isSigningOut: r, dashboa
|
|
|
4598
4646
|
}) : _ && g ? /* @__PURE__ */ Q("span", {
|
|
4599
4647
|
class: "markup-avatar-initials",
|
|
4600
4648
|
children: g
|
|
4601
|
-
}) : /* @__PURE__ */ Q(
|
|
4649
|
+
}) : /* @__PURE__ */ Q(fs, { size: 14 })
|
|
4602
4650
|
}), _ && h ? /* @__PURE__ */ Q("span", {
|
|
4603
4651
|
class: "markup-sr-only",
|
|
4604
4652
|
children: h
|
|
@@ -4627,7 +4675,7 @@ function fs({ identity: e, position: t, isSigningIn: n, isSigningOut: r, dashboa
|
|
|
4627
4675
|
onClick: () => l(!1),
|
|
4628
4676
|
children: [/* @__PURE__ */ Q("span", {
|
|
4629
4677
|
class: "ic",
|
|
4630
|
-
children: /* @__PURE__ */ Q(
|
|
4678
|
+
children: /* @__PURE__ */ Q(ms, { size: 16 })
|
|
4631
4679
|
}), /* @__PURE__ */ Q("span", {
|
|
4632
4680
|
class: "lbl",
|
|
4633
4681
|
children: "Account"
|
|
@@ -4643,7 +4691,7 @@ function fs({ identity: e, position: t, isSigningIn: n, isSigningOut: r, dashboa
|
|
|
4643
4691
|
},
|
|
4644
4692
|
children: [/* @__PURE__ */ Q("span", {
|
|
4645
4693
|
class: "ic",
|
|
4646
|
-
children: /* @__PURE__ */ Q(
|
|
4694
|
+
children: /* @__PURE__ */ Q(ds, { size: 16 })
|
|
4647
4695
|
}), /* @__PURE__ */ Q("span", {
|
|
4648
4696
|
class: "lbl",
|
|
4649
4697
|
children: r ? "Signing out…" : f ? "Confirm: sign out of this site" : "Sign out"
|
|
@@ -4666,7 +4714,7 @@ function fs({ identity: e, position: t, isSigningIn: n, isSigningOut: r, dashboa
|
|
|
4666
4714
|
onClick: () => {
|
|
4667
4715
|
l(!1), a();
|
|
4668
4716
|
},
|
|
4669
|
-
children: [/* @__PURE__ */ Q(
|
|
4717
|
+
children: [/* @__PURE__ */ Q(us, { size: 14 }), /* @__PURE__ */ Q("span", { children: n ? "Signing in…" : "Sign in" })]
|
|
4670
4718
|
}),
|
|
4671
4719
|
/* @__PURE__ */ Q("button", {
|
|
4672
4720
|
type: "button",
|
|
@@ -4685,12 +4733,12 @@ function fs({ identity: e, position: t, isSigningIn: n, isSigningOut: r, dashboa
|
|
|
4685
4733
|
}) : null]
|
|
4686
4734
|
});
|
|
4687
4735
|
}
|
|
4688
|
-
function
|
|
4736
|
+
function gs(e) {
|
|
4689
4737
|
return e && e.trim().split(/\s+/).slice(0, 2).map((e) => e[0]?.toUpperCase() ?? "").join("") || null;
|
|
4690
4738
|
}
|
|
4691
4739
|
//#endregion
|
|
4692
4740
|
//#region src/runtime/use-drag.ts
|
|
4693
|
-
function
|
|
4741
|
+
function _s(e) {
|
|
4694
4742
|
let t = H(e);
|
|
4695
4743
|
t.current = e;
|
|
4696
4744
|
let [n, r] = B(!1);
|
|
@@ -4718,8 +4766,8 @@ function ms(e) {
|
|
|
4718
4766
|
h = !0, r(!0), t.current.onStart?.();
|
|
4719
4767
|
}
|
|
4720
4768
|
let a = Math.max(p, window.innerWidth - u - p), _ = Math.max(p, window.innerHeight - d - p), v = {
|
|
4721
|
-
left:
|
|
4722
|
-
top:
|
|
4769
|
+
left: vs(c + n, p, a),
|
|
4770
|
+
top: vs(l + i, p, _)
|
|
4723
4771
|
};
|
|
4724
4772
|
g = v, t.current.onMove(v);
|
|
4725
4773
|
}
|
|
@@ -4734,12 +4782,12 @@ function ms(e) {
|
|
|
4734
4782
|
isDragging: n
|
|
4735
4783
|
};
|
|
4736
4784
|
}
|
|
4737
|
-
function
|
|
4785
|
+
function vs(e, t, n) {
|
|
4738
4786
|
return Math.max(t, Math.min(n, e));
|
|
4739
4787
|
}
|
|
4740
4788
|
//#endregion
|
|
4741
4789
|
//#region src/runtime/use-focus-trap.ts
|
|
4742
|
-
var
|
|
4790
|
+
var ys = [
|
|
4743
4791
|
"a[href]",
|
|
4744
4792
|
"button:not([disabled])",
|
|
4745
4793
|
"input:not([disabled])",
|
|
@@ -4747,14 +4795,14 @@ var gs = [
|
|
|
4747
4795
|
"textarea:not([disabled])",
|
|
4748
4796
|
"[tabindex]:not([tabindex=\"-1\"])"
|
|
4749
4797
|
].join(",");
|
|
4750
|
-
function
|
|
4798
|
+
function bs(e, t) {
|
|
4751
4799
|
V(() => {
|
|
4752
4800
|
if (!t) return;
|
|
4753
4801
|
let n = e.current;
|
|
4754
4802
|
if (!n) return;
|
|
4755
4803
|
function r(e) {
|
|
4756
4804
|
if (e.key !== "Tab") return;
|
|
4757
|
-
let t = Array.from(n.querySelectorAll(
|
|
4805
|
+
let t = Array.from(n.querySelectorAll(ys)), r = t[0], i = t[t.length - 1];
|
|
4758
4806
|
if (!r || !i) return;
|
|
4759
4807
|
let a = n.getRootNode(), o = a instanceof ShadowRoot ? a.activeElement : document.activeElement;
|
|
4760
4808
|
(e.shiftKey ? o === r : o === i) && (e.preventDefault(), (e.shiftKey ? i : r).focus());
|
|
@@ -4764,7 +4812,7 @@ function _s(e, t) {
|
|
|
4764
4812
|
}
|
|
4765
4813
|
//#endregion
|
|
4766
4814
|
//#region src/runtime/use-object-url.ts
|
|
4767
|
-
function
|
|
4815
|
+
function xs(e) {
|
|
4768
4816
|
let [t, n] = B(null);
|
|
4769
4817
|
return V(() => {
|
|
4770
4818
|
if (!e) {
|
|
@@ -4777,7 +4825,7 @@ function vs(e) {
|
|
|
4777
4825
|
}
|
|
4778
4826
|
//#endregion
|
|
4779
4827
|
//#region src/runtime/ui/author-prompt.tsx
|
|
4780
|
-
function
|
|
4828
|
+
function Ss({ isPending: e, isConnecting: t = !1, isSigningIn: n = !1, onSubmit: r, onCancel: i, onSignIn: a }) {
|
|
4781
4829
|
let [o, s] = B(""), [c, l] = B(""), u = H(null);
|
|
4782
4830
|
V(() => {
|
|
4783
4831
|
u.current?.focus();
|
|
@@ -4856,27 +4904,27 @@ function ys({ isPending: e, isConnecting: t = !1, isSigningIn: n = !1, onSubmit:
|
|
|
4856
4904
|
}
|
|
4857
4905
|
//#endregion
|
|
4858
4906
|
//#region src/runtime/mention-input.ts
|
|
4859
|
-
var
|
|
4907
|
+
var Cs = "data-markup-mention", ws = "data-markup-mention-name", Ts = /* @__PURE__ */ new Set([
|
|
4860
4908
|
"DIV",
|
|
4861
4909
|
"P",
|
|
4862
4910
|
"LI",
|
|
4863
4911
|
"BLOCKQUOTE",
|
|
4864
4912
|
"PRE"
|
|
4865
|
-
]),
|
|
4866
|
-
function
|
|
4913
|
+
]), Es = 3, Ds = 1;
|
|
4914
|
+
function Os(e) {
|
|
4867
4915
|
let t = "", n = (r) => {
|
|
4868
4916
|
let i = r.childNodes;
|
|
4869
4917
|
for (let a = 0; a < i.length; a++) {
|
|
4870
4918
|
let o = i[a];
|
|
4871
4919
|
if (!o) continue;
|
|
4872
|
-
if (o.nodeType ===
|
|
4920
|
+
if (o.nodeType === Es) {
|
|
4873
4921
|
t += o.data;
|
|
4874
4922
|
continue;
|
|
4875
4923
|
}
|
|
4876
|
-
if (o.nodeType !==
|
|
4877
|
-
let s = o, c = s.getAttribute(
|
|
4924
|
+
if (o.nodeType !== Ds) continue;
|
|
4925
|
+
let s = o, c = s.getAttribute(Cs);
|
|
4878
4926
|
if (c) {
|
|
4879
|
-
let e =
|
|
4927
|
+
let e = ks(s);
|
|
4880
4928
|
t += Yr({
|
|
4881
4929
|
userId: c,
|
|
4882
4930
|
name: e
|
|
@@ -4887,77 +4935,77 @@ function Ts(e) {
|
|
|
4887
4935
|
(r !== e || a !== i.length - 1) && (t += "\n");
|
|
4888
4936
|
continue;
|
|
4889
4937
|
}
|
|
4890
|
-
|
|
4938
|
+
Ts.has(s.tagName) && t !== "" && !t.endsWith("\n") && (t += "\n"), n(s);
|
|
4891
4939
|
}
|
|
4892
4940
|
};
|
|
4893
4941
|
return n(e), t;
|
|
4894
4942
|
}
|
|
4895
|
-
function
|
|
4896
|
-
return e.getAttribute(
|
|
4943
|
+
function ks(e) {
|
|
4944
|
+
return e.getAttribute(ws) || (e.textContent ?? "").replace(/^@/, "");
|
|
4897
4945
|
}
|
|
4898
|
-
function
|
|
4946
|
+
function As(e, t, n) {
|
|
4899
4947
|
let r = e.createElement("span");
|
|
4900
|
-
return r.className = n, r.setAttribute("contenteditable", "false"), r.setAttribute(
|
|
4948
|
+
return r.className = n, r.setAttribute("contenteditable", "false"), r.setAttribute(Cs, t.userId), r.setAttribute(ws, t.name), r.textContent = `@${t.name}`, r;
|
|
4901
4949
|
}
|
|
4902
|
-
function
|
|
4950
|
+
function js(e, t, n) {
|
|
4903
4951
|
let r = e.createDocumentFragment();
|
|
4904
4952
|
for (let i of Kr(t)) {
|
|
4905
4953
|
if (i.type === "text") {
|
|
4906
4954
|
i.value && r.appendChild(e.createTextNode(i.value));
|
|
4907
4955
|
continue;
|
|
4908
4956
|
}
|
|
4909
|
-
r.appendChild(
|
|
4957
|
+
r.appendChild(As(e, {
|
|
4910
4958
|
userId: i.userId,
|
|
4911
4959
|
name: i.name
|
|
4912
4960
|
}, n));
|
|
4913
4961
|
}
|
|
4914
4962
|
return r;
|
|
4915
4963
|
}
|
|
4916
|
-
function
|
|
4964
|
+
function Ms(e) {
|
|
4917
4965
|
let t = e.getRootNode();
|
|
4918
4966
|
return typeof t.getSelection == "function" ? t.getSelection() : e.ownerDocument.getSelection();
|
|
4919
4967
|
}
|
|
4920
|
-
function
|
|
4921
|
-
let t =
|
|
4968
|
+
function Ns(e) {
|
|
4969
|
+
let t = Ms(e);
|
|
4922
4970
|
if (!t || t.rangeCount === 0 || !t.isCollapsed) return null;
|
|
4923
4971
|
let n = t.focusNode;
|
|
4924
|
-
return !n || n.nodeType !==
|
|
4972
|
+
return !n || n.nodeType !== Es || !e.contains(n) || Ps(n, e) ? null : {
|
|
4925
4973
|
node: n,
|
|
4926
4974
|
offset: t.focusOffset
|
|
4927
4975
|
};
|
|
4928
4976
|
}
|
|
4929
|
-
function
|
|
4977
|
+
function Ps(e, t) {
|
|
4930
4978
|
let n = e;
|
|
4931
4979
|
for (; n && n !== t;) {
|
|
4932
|
-
if (n.nodeType ===
|
|
4980
|
+
if (n.nodeType === Ds && n.hasAttribute("data-markup-mention")) return n;
|
|
4933
4981
|
n = n.parentNode;
|
|
4934
4982
|
}
|
|
4935
4983
|
return null;
|
|
4936
4984
|
}
|
|
4937
|
-
function
|
|
4938
|
-
let t =
|
|
4985
|
+
function Fs(e) {
|
|
4986
|
+
let t = Ms(e);
|
|
4939
4987
|
if (!t || t.rangeCount === 0 || !t.isCollapsed) return;
|
|
4940
4988
|
let n = t.focusNode;
|
|
4941
4989
|
if (!n || !e.contains(n)) return;
|
|
4942
|
-
let r =
|
|
4990
|
+
let r = Ps(n, e);
|
|
4943
4991
|
if (!r) return;
|
|
4944
4992
|
let i = r.nextSibling;
|
|
4945
|
-
(!i || i.nodeType !==
|
|
4993
|
+
(!i || i.nodeType !== Es) && (i = e.ownerDocument.createTextNode(""), r.parentNode?.insertBefore(i, r.nextSibling)), Is(e, i, 0);
|
|
4946
4994
|
}
|
|
4947
|
-
function
|
|
4948
|
-
let r =
|
|
4995
|
+
function Is(e, t, n) {
|
|
4996
|
+
let r = Ms(e);
|
|
4949
4997
|
if (!r) return;
|
|
4950
4998
|
let i = e.ownerDocument.createRange();
|
|
4951
4999
|
i.setStart(t, n), i.collapse(!0), r.removeAllRanges(), r.addRange(i);
|
|
4952
5000
|
}
|
|
4953
|
-
function
|
|
5001
|
+
function Ls(e) {
|
|
4954
5002
|
let t = Jr(e.node.data, e.offset);
|
|
4955
5003
|
return t ? {
|
|
4956
5004
|
...t,
|
|
4957
5005
|
textNode: e.node
|
|
4958
5006
|
} : null;
|
|
4959
5007
|
}
|
|
4960
|
-
function
|
|
5008
|
+
function Rs(e, t, n, r) {
|
|
4961
5009
|
if (Yr(n) == null) return !1;
|
|
4962
5010
|
let i = t.textNode;
|
|
4963
5011
|
if (!e.contains(i)) return !1;
|
|
@@ -4965,31 +5013,31 @@ function Fs(e, t, n, r) {
|
|
|
4965
5013
|
if (!a || t.caret > i.data.length) return !1;
|
|
4966
5014
|
i.deleteData(t.at, t.caret - t.at);
|
|
4967
5015
|
let o = i.splitText(t.at);
|
|
4968
|
-
return a.insertBefore(
|
|
5016
|
+
return a.insertBefore(As(e.ownerDocument, n, r), o), o.data.startsWith(" ") || o.insertData(0, " "), Is(e, o, 1), !0;
|
|
4969
5017
|
}
|
|
4970
|
-
function
|
|
4971
|
-
let n =
|
|
5018
|
+
function zs(e, t) {
|
|
5019
|
+
let n = Ms(e);
|
|
4972
5020
|
if (!n || n.rangeCount === 0) return;
|
|
4973
5021
|
let r = n.getRangeAt(0);
|
|
4974
5022
|
if (!e.contains(r.commonAncestorContainer)) return;
|
|
4975
5023
|
r.deleteContents();
|
|
4976
5024
|
let { startContainer: i, startOffset: a } = r;
|
|
4977
|
-
if (i.nodeType ===
|
|
5025
|
+
if (i.nodeType === Es) {
|
|
4978
5026
|
let n = i;
|
|
4979
|
-
n.insertData(a, t),
|
|
5027
|
+
n.insertData(a, t), Is(e, n, a + t.length);
|
|
4980
5028
|
return;
|
|
4981
5029
|
}
|
|
4982
5030
|
let o = e.ownerDocument.createTextNode(t);
|
|
4983
|
-
r.insertNode(o),
|
|
5031
|
+
r.insertNode(o), Is(e, o, o.data.length);
|
|
4984
5032
|
}
|
|
4985
|
-
function
|
|
5033
|
+
function Bs(e, t) {
|
|
4986
5034
|
let n = e.ownerDocument, r = null, i = null, a = !0;
|
|
4987
5035
|
function o(t) {
|
|
4988
5036
|
let n = t.length === 0;
|
|
4989
5037
|
(n !== a || e.hasAttribute("data-empty") !== n) && (a = n, e.toggleAttribute("data-empty", n));
|
|
4990
5038
|
}
|
|
4991
5039
|
function s() {
|
|
4992
|
-
let n =
|
|
5040
|
+
let n = Os(e);
|
|
4993
5041
|
o(n), t.onChange(n);
|
|
4994
5042
|
}
|
|
4995
5043
|
function c(e) {
|
|
@@ -5005,7 +5053,7 @@ function Ls(e, t) {
|
|
|
5005
5053
|
c(null);
|
|
5006
5054
|
return;
|
|
5007
5055
|
}
|
|
5008
|
-
let n =
|
|
5056
|
+
let n = Ns(e), r = n ? Ls(n) : null;
|
|
5009
5057
|
if (r && i && r.textNode === i.node && r.at === i.at) {
|
|
5010
5058
|
c(null);
|
|
5011
5059
|
return;
|
|
@@ -5013,29 +5061,29 @@ function Ls(e, t) {
|
|
|
5013
5061
|
i = null, c(r);
|
|
5014
5062
|
}
|
|
5015
5063
|
function u(r) {
|
|
5016
|
-
e.replaceChildren(
|
|
5064
|
+
e.replaceChildren(js(n, r, t.chipClass)), o(Os(e)), i = null, c(null);
|
|
5017
5065
|
}
|
|
5018
5066
|
let d = () => {
|
|
5019
5067
|
s(), l();
|
|
5020
5068
|
}, f = () => l(), p = () => {
|
|
5021
|
-
|
|
5069
|
+
Fs(e), l();
|
|
5022
5070
|
}, m = (t) => {
|
|
5023
5071
|
let n = t.clipboardData?.getData("text/plain");
|
|
5024
|
-
t.preventDefault(), n && (
|
|
5072
|
+
t.preventDefault(), n && (zs(e, n.replace(/\r\n?/g, "\n")), s(), l());
|
|
5025
5073
|
}, h = (e) => {
|
|
5026
5074
|
e.preventDefault();
|
|
5027
5075
|
};
|
|
5028
5076
|
return e.addEventListener("input", d), e.addEventListener("keyup", f), e.addEventListener("mouseup", p), e.addEventListener("focus", p), e.addEventListener("paste", m), e.addEventListener("drop", h), u(t.initialValue ?? ""), {
|
|
5029
|
-
getValue: () =>
|
|
5077
|
+
getValue: () => Os(e),
|
|
5030
5078
|
setValue: u,
|
|
5031
5079
|
focus() {
|
|
5032
5080
|
e.focus();
|
|
5033
5081
|
let t = e.lastChild;
|
|
5034
|
-
t && (t.nodeType ===
|
|
5082
|
+
t && (t.nodeType === Es ? Is(e, t, t.data.length) : Is(e, e, e.childNodes.length));
|
|
5035
5083
|
},
|
|
5036
5084
|
insertMention(n) {
|
|
5037
|
-
let a =
|
|
5038
|
-
o &&
|
|
5085
|
+
let a = Ns(e), o = (a ? Ls(a) : null) ?? r;
|
|
5086
|
+
o && Rs(e, o, n, t.chipClass) && (s(), i = null, c(null));
|
|
5039
5087
|
},
|
|
5040
5088
|
syncTrigger: l,
|
|
5041
5089
|
clearTrigger: () => c(null),
|
|
@@ -5050,21 +5098,21 @@ function Ls(e, t) {
|
|
|
5050
5098
|
}
|
|
5051
5099
|
};
|
|
5052
5100
|
}
|
|
5053
|
-
var
|
|
5054
|
-
function
|
|
5055
|
-
if (
|
|
5101
|
+
var Vs = null;
|
|
5102
|
+
function Hs() {
|
|
5103
|
+
if (Vs) return Vs;
|
|
5056
5104
|
if (typeof document > "u") return "true";
|
|
5057
5105
|
let e = document.createElement("div");
|
|
5058
5106
|
try {
|
|
5059
|
-
e.contentEditable = "plaintext-only",
|
|
5107
|
+
e.contentEditable = "plaintext-only", Vs = e.contentEditable === "plaintext-only" ? "plaintext-only" : "true";
|
|
5060
5108
|
} catch {
|
|
5061
|
-
|
|
5109
|
+
Vs = "true";
|
|
5062
5110
|
}
|
|
5063
|
-
return
|
|
5111
|
+
return Vs;
|
|
5064
5112
|
}
|
|
5065
5113
|
//#endregion
|
|
5066
5114
|
//#region src/runtime/ui/mentions.tsx
|
|
5067
|
-
function
|
|
5115
|
+
function Us({ body: e, mentions: t, trailing: n }) {
|
|
5068
5116
|
let r = it(() => new Set(t), [t]);
|
|
5069
5117
|
return /* @__PURE__ */ Q("p", {
|
|
5070
5118
|
class: "markup-comment-body",
|
|
@@ -5074,7 +5122,7 @@ function Bs({ body: e, mentions: t, trailing: n }) {
|
|
|
5074
5122
|
}, t) : /* @__PURE__ */ Q("span", { children: e.type === "mention" ? `@${e.name}` : e.value }, t)), n]
|
|
5075
5123
|
});
|
|
5076
5124
|
}
|
|
5077
|
-
function
|
|
5125
|
+
function Ws(e) {
|
|
5078
5126
|
let { members: t, trigger: n, onSelect: r, onClose: i } = e, [a, o] = B(0), s = it(() => {
|
|
5079
5127
|
if (!n) return [];
|
|
5080
5128
|
let e = n.query.toLowerCase();
|
|
@@ -5102,7 +5150,7 @@ function Vs(e) {
|
|
|
5102
5150
|
handleKeyDown: c
|
|
5103
5151
|
};
|
|
5104
5152
|
}
|
|
5105
|
-
function
|
|
5153
|
+
function Gs({ items: e, highlight: t, setHighlight: n, onSelect: r }) {
|
|
5106
5154
|
return e.length === 0 ? null : /* @__PURE__ */ Q("ul", {
|
|
5107
5155
|
class: "markup-mention-picker",
|
|
5108
5156
|
role: "listbox",
|
|
@@ -5128,7 +5176,7 @@ function Hs({ items: e, highlight: t, setHighlight: n, onSelect: r }) {
|
|
|
5128
5176
|
}
|
|
5129
5177
|
//#endregion
|
|
5130
5178
|
//#region src/runtime/ui/mention-input.tsx
|
|
5131
|
-
function
|
|
5179
|
+
function Ks({ value: e, onChange: t, onKeyDown: n, members: r, label: i, placeholder: a, disabled: o = !1, autoFocus: s = !1, class: c, handle: l }) {
|
|
5132
5180
|
let u = H(null), d = H(null), [f, p] = B(null), m = H(t);
|
|
5133
5181
|
m.current = t;
|
|
5134
5182
|
let h = H(r);
|
|
@@ -5137,7 +5185,7 @@ function Us({ value: e, onChange: t, onKeyDown: n, members: r, label: i, placeho
|
|
|
5137
5185
|
rt(() => {
|
|
5138
5186
|
let e = u.current;
|
|
5139
5187
|
if (!e) return;
|
|
5140
|
-
let t =
|
|
5188
|
+
let t = Bs(e, {
|
|
5141
5189
|
chipClass: "markup-mention-chip",
|
|
5142
5190
|
initialValue: g.current,
|
|
5143
5191
|
onChange: (e) => m.current(e),
|
|
@@ -5157,7 +5205,7 @@ function Us({ value: e, onChange: t, onKeyDown: n, members: r, label: i, placeho
|
|
|
5157
5205
|
let t = d.current;
|
|
5158
5206
|
t && t.getValue() !== e && t.setValue(e);
|
|
5159
5207
|
}, [e]);
|
|
5160
|
-
let _ =
|
|
5208
|
+
let _ = Ws({
|
|
5161
5209
|
members: r ?? [],
|
|
5162
5210
|
trigger: f,
|
|
5163
5211
|
onSelect: (e) => d.current?.insertMention(e),
|
|
@@ -5170,7 +5218,7 @@ function Us({ value: e, onChange: t, onKeyDown: n, members: r, label: i, placeho
|
|
|
5170
5218
|
"aria-label": i,
|
|
5171
5219
|
"aria-disabled": o || void 0,
|
|
5172
5220
|
class: Z("markup-mention-input", c),
|
|
5173
|
-
contentEditable: o ? "false" :
|
|
5221
|
+
contentEditable: o ? "false" : Hs(),
|
|
5174
5222
|
"data-placeholder": a,
|
|
5175
5223
|
tabIndex: o ? -1 : 0,
|
|
5176
5224
|
onKeyDown: (e) => {
|
|
@@ -5179,7 +5227,7 @@ function Us({ value: e, onChange: t, onKeyDown: n, members: r, label: i, placeho
|
|
|
5179
5227
|
onBlur: () => {
|
|
5180
5228
|
setTimeout(() => d.current?.clearTrigger(), 120);
|
|
5181
5229
|
}
|
|
5182
|
-
}), _.isOpen ? /* @__PURE__ */ Q(
|
|
5230
|
+
}), _.isOpen ? /* @__PURE__ */ Q(Gs, {
|
|
5183
5231
|
items: _.items,
|
|
5184
5232
|
highlight: _.highlight,
|
|
5185
5233
|
setHighlight: _.setHighlight,
|
|
@@ -5188,48 +5236,54 @@ function Us({ value: e, onChange: t, onKeyDown: n, members: r, label: i, placeho
|
|
|
5188
5236
|
}
|
|
5189
5237
|
//#endregion
|
|
5190
5238
|
//#region src/runtime/ui/composer.tsx
|
|
5191
|
-
var
|
|
5192
|
-
function
|
|
5193
|
-
let [
|
|
5239
|
+
var qs = 4e3;
|
|
5240
|
+
function Js({ label: e, placeholder: t = "Leave feedback…", submitLabel: n = "Post", initialFocus: r = !0, isPending: i, error: a, onSubmit: o, onDirtyChange: s, members: c }) {
|
|
5241
|
+
let [l, u] = B(""), d = H(null), f = H(!1);
|
|
5194
5242
|
V(() => {
|
|
5195
|
-
|
|
5196
|
-
}, [
|
|
5197
|
-
|
|
5198
|
-
|
|
5243
|
+
f.current && !i && !a && (u(""), s?.(!1), d.current?.focus()), f.current = i;
|
|
5244
|
+
}, [
|
|
5245
|
+
i,
|
|
5246
|
+
a,
|
|
5247
|
+
s
|
|
5248
|
+
]);
|
|
5249
|
+
let p = qs - l.length, m = p < 0;
|
|
5250
|
+
function h(e) {
|
|
5199
5251
|
e?.preventDefault();
|
|
5200
|
-
let t =
|
|
5201
|
-
!t || i ||
|
|
5252
|
+
let t = l.trim();
|
|
5253
|
+
!t || i || m || o(t);
|
|
5202
5254
|
}
|
|
5203
|
-
function
|
|
5204
|
-
(e.metaKey || e.ctrlKey) && e.key === "Enter" &&
|
|
5255
|
+
function g(e) {
|
|
5256
|
+
(e.metaKey || e.ctrlKey) && e.key === "Enter" && h(e);
|
|
5205
5257
|
}
|
|
5206
|
-
let
|
|
5207
|
-
function
|
|
5258
|
+
let _ = l.length > 0, v = Wo();
|
|
5259
|
+
function y(e) {
|
|
5208
5260
|
return /* @__PURE__ */ Q("button", {
|
|
5209
5261
|
type: "submit",
|
|
5210
5262
|
class: "markup-btn markup-btn-primary",
|
|
5211
|
-
disabled: i || !
|
|
5263
|
+
disabled: i || !l.trim() || m,
|
|
5212
5264
|
"aria-label": i ? "Sending…" : n,
|
|
5213
5265
|
title: i ? "Sending…" : n,
|
|
5214
5266
|
tabIndex: e,
|
|
5215
|
-
children: /* @__PURE__ */ Q(
|
|
5267
|
+
children: /* @__PURE__ */ Q(Qo, { size: 14 })
|
|
5216
5268
|
});
|
|
5217
5269
|
}
|
|
5218
5270
|
return /* @__PURE__ */ Q("form", {
|
|
5219
|
-
class: Z("markup-composer",
|
|
5220
|
-
onSubmit:
|
|
5271
|
+
class: Z("markup-composer", _ && "is-filled"),
|
|
5272
|
+
onSubmit: h,
|
|
5221
5273
|
children: [
|
|
5222
|
-
/* @__PURE__ */ Q(
|
|
5274
|
+
/* @__PURE__ */ Q(Ks, {
|
|
5223
5275
|
class: "markup-composer-input",
|
|
5224
5276
|
label: e,
|
|
5225
5277
|
placeholder: t,
|
|
5226
|
-
value:
|
|
5227
|
-
onChange:
|
|
5228
|
-
|
|
5229
|
-
|
|
5278
|
+
value: l,
|
|
5279
|
+
onChange: (e) => {
|
|
5280
|
+
u(e), s?.(e.trim().length > 0);
|
|
5281
|
+
},
|
|
5282
|
+
onKeyDown: g,
|
|
5283
|
+
members: c,
|
|
5230
5284
|
disabled: i,
|
|
5231
5285
|
autoFocus: r,
|
|
5232
|
-
handle:
|
|
5286
|
+
handle: d
|
|
5233
5287
|
}),
|
|
5234
5288
|
/* @__PURE__ */ Q("div", {
|
|
5235
5289
|
class: "markup-composer-footer-wrap",
|
|
@@ -5240,17 +5294,17 @@ function Gs({ label: e, placeholder: t = "Leave feedback…", submitLabel: n = "
|
|
|
5240
5294
|
children: a ? /* @__PURE__ */ Q("span", {
|
|
5241
5295
|
class: "markup-composer-error",
|
|
5242
5296
|
children: a
|
|
5243
|
-
}) :
|
|
5297
|
+
}) : m ? /* @__PURE__ */ Q("span", {
|
|
5244
5298
|
class: "markup-composer-error",
|
|
5245
|
-
children: [Math.abs(
|
|
5299
|
+
children: [Math.abs(p), " too long"]
|
|
5246
5300
|
}) : /* @__PURE__ */ Q(S, { children: [
|
|
5247
5301
|
/* @__PURE__ */ Q("kbd", {
|
|
5248
5302
|
class: "markup-kbd is-inline",
|
|
5249
|
-
children:
|
|
5303
|
+
children: v.mod
|
|
5250
5304
|
}),
|
|
5251
5305
|
/* @__PURE__ */ Q("kbd", {
|
|
5252
5306
|
class: "markup-kbd is-inline",
|
|
5253
|
-
children:
|
|
5307
|
+
children: v.enter
|
|
5254
5308
|
}),
|
|
5255
5309
|
/* @__PURE__ */ Q("span", {
|
|
5256
5310
|
class: "markup-composer-hint-label",
|
|
@@ -5259,177 +5313,274 @@ function Gs({ label: e, placeholder: t = "Leave feedback…", submitLabel: n = "
|
|
|
5259
5313
|
] })
|
|
5260
5314
|
}), /* @__PURE__ */ Q("div", {
|
|
5261
5315
|
class: "markup-composer-actions",
|
|
5262
|
-
children:
|
|
5316
|
+
children: y(_ ? void 0 : -1)
|
|
5263
5317
|
})]
|
|
5264
5318
|
})
|
|
5265
5319
|
}),
|
|
5266
5320
|
/* @__PURE__ */ Q("span", {
|
|
5267
5321
|
class: "markup-composer-actions-empty",
|
|
5268
|
-
"aria-hidden":
|
|
5269
|
-
children:
|
|
5322
|
+
"aria-hidden": _ || void 0,
|
|
5323
|
+
children: y(_ ? -1 : void 0)
|
|
5270
5324
|
})
|
|
5271
5325
|
]
|
|
5272
5326
|
});
|
|
5273
5327
|
}
|
|
5274
5328
|
//#endregion
|
|
5275
5329
|
//#region src/runtime/ui/new-thread-popover.tsx
|
|
5276
|
-
|
|
5330
|
+
var Ys = "https://markup.pixelmatters.dev/docs/install#9-screenshots-privacy";
|
|
5331
|
+
function Xs({ pageX: e, pageY: t, authorName: n, isVerified: r, isIdentityResolving: i, isSigningIn: a, isPending: o, error: s, screenshot: c, isScreenshotCapturing: l, screenshotFailed: u, screenshotRedactedCount: d, screenshotRedactedSelectors: f, members: p = [], onAuthor: m, onSignIn: h, onSubmit: g, onClose: _ }) {
|
|
5277
5332
|
let v = H(null);
|
|
5278
|
-
|
|
5279
|
-
let
|
|
5333
|
+
bs(v, !0);
|
|
5334
|
+
let y = H(!1), b = H(!1), [x, C] = B(!1), w = U((e) => {
|
|
5335
|
+
b.current = e, C(e);
|
|
5336
|
+
}, []), T = U(() => {
|
|
5337
|
+
b.current || (y.current ? w(!0) : _());
|
|
5338
|
+
}, [_, w]), E = U(() => {
|
|
5339
|
+
w(!1), v.current?.querySelector(".markup-mention-input")?.focus();
|
|
5340
|
+
}, [w]), [D, O] = B(!1), [ee, k] = B(!1), A = xs(c), j = H(null), [M, N] = B(null), { onPointerDown: te, isDragging: ne } = _s({
|
|
5280
5341
|
targetRef: v,
|
|
5281
5342
|
shouldStart: (e) => !e.target?.closest("button, a, input, textarea, select"),
|
|
5282
|
-
onMove:
|
|
5343
|
+
onMove: N
|
|
5283
5344
|
});
|
|
5284
5345
|
V(() => {
|
|
5285
5346
|
let e = v.current;
|
|
5286
|
-
if (!e)
|
|
5287
|
-
if (typeof e.showPopover == "function" && !e.matches(":popover-open")) try {
|
|
5347
|
+
if (e && typeof e.showPopover == "function" && !e.matches(":popover-open")) try {
|
|
5288
5348
|
e.showPopover();
|
|
5289
5349
|
} catch {}
|
|
5290
|
-
|
|
5291
|
-
|
|
5350
|
+
}, []), V(() => {
|
|
5351
|
+
let e = v.current;
|
|
5352
|
+
if (!e) return;
|
|
5353
|
+
function t(t) {
|
|
5354
|
+
if (!t.composedPath().includes(e)) {
|
|
5355
|
+
if (b.current) {
|
|
5356
|
+
t.preventDefault(), t.stopPropagation();
|
|
5357
|
+
return;
|
|
5358
|
+
}
|
|
5359
|
+
y.current && (t.preventDefault(), t.stopPropagation()), T();
|
|
5360
|
+
}
|
|
5292
5361
|
}
|
|
5293
|
-
|
|
5294
|
-
|
|
5295
|
-
|
|
5362
|
+
function n(e) {
|
|
5363
|
+
e.key !== "Escape" || e.defaultPrevented || j.current?.open || (e.preventDefault(), b.current ? E() : T());
|
|
5364
|
+
}
|
|
5365
|
+
return document.addEventListener("click", t, !0), document.addEventListener("keydown", n), () => {
|
|
5366
|
+
document.removeEventListener("click", t, !0), document.removeEventListener("keydown", n);
|
|
5367
|
+
};
|
|
5368
|
+
}, [T, E]), V(() => {
|
|
5369
|
+
x && v.current?.querySelector(".markup-discard-confirm-keep")?.focus();
|
|
5370
|
+
}, [x]);
|
|
5371
|
+
let re = Zs(e - window.scrollX + 16, 12, window.innerWidth - 320 - 12), ie = Zs(t - window.scrollY - 16, 12, window.innerHeight - 220), ae = typeof window < "u" ? window.location.href : "", oe = c != null, se = l || oe || u, ce = D && oe;
|
|
5296
5372
|
return /* @__PURE__ */ Q("div", {
|
|
5297
5373
|
ref: v,
|
|
5298
|
-
class: Z("markup-popover",
|
|
5299
|
-
popover: "
|
|
5374
|
+
class: Z("markup-popover", M && "is-floating", ne && "is-dragging"),
|
|
5375
|
+
popover: "manual",
|
|
5300
5376
|
style: {
|
|
5301
|
-
"--markup-pop-x": `${
|
|
5302
|
-
"--markup-pop-y": `${
|
|
5377
|
+
"--markup-pop-x": `${M?.left ?? re}px`,
|
|
5378
|
+
"--markup-pop-y": `${M?.top ?? ie}px`
|
|
5303
5379
|
},
|
|
5304
5380
|
role: "dialog",
|
|
5305
5381
|
"aria-label": "New markup",
|
|
5306
|
-
children: [
|
|
5307
|
-
|
|
5308
|
-
|
|
5309
|
-
|
|
5310
|
-
|
|
5311
|
-
|
|
5312
|
-
|
|
5313
|
-
|
|
5314
|
-
|
|
5315
|
-
|
|
5316
|
-
|
|
5317
|
-
|
|
5318
|
-
|
|
5319
|
-
|
|
5320
|
-
|
|
5321
|
-
|
|
5322
|
-
|
|
5323
|
-
|
|
5324
|
-
|
|
5325
|
-
|
|
5326
|
-
|
|
5327
|
-
|
|
5328
|
-
|
|
5329
|
-
|
|
5330
|
-
|
|
5331
|
-
|
|
5332
|
-
|
|
5333
|
-
|
|
5334
|
-
/* @__PURE__ */ Q("span", {
|
|
5335
|
-
class: "markup-popover-name",
|
|
5336
|
-
children: n
|
|
5337
|
-
}),
|
|
5338
|
-
r ? /* @__PURE__ */ Q("span", {
|
|
5339
|
-
class: "markup-comment-badge",
|
|
5340
|
-
children: "team"
|
|
5341
|
-
}) : null
|
|
5342
|
-
]
|
|
5343
|
-
}),
|
|
5344
|
-
/* @__PURE__ */ Q(Gs, {
|
|
5345
|
-
label: "Feedback",
|
|
5346
|
-
placeholder: "What's wrong, missing, or worth noting?",
|
|
5347
|
-
submitLabel: "Post markup",
|
|
5348
|
-
isPending: o,
|
|
5349
|
-
error: s,
|
|
5350
|
-
onSubmit: (e) => g(e, y && j),
|
|
5351
|
-
members: p
|
|
5352
|
-
}),
|
|
5353
|
-
te ? /* @__PURE__ */ Q("div", {
|
|
5354
|
-
class: Z("markup-screenshot-row", u && "is-failed"),
|
|
5355
|
-
children: [l ? /* @__PURE__ */ Q("span", {
|
|
5356
|
-
class: "markup-screenshot-status",
|
|
5357
|
-
children: [
|
|
5358
|
-
/* @__PURE__ */ Q("input", {
|
|
5359
|
-
type: "checkbox",
|
|
5360
|
-
class: "markup-screenshot-checkbox",
|
|
5361
|
-
disabled: !0
|
|
5362
|
-
}),
|
|
5363
|
-
/* @__PURE__ */ Q(Jo, { size: 12 }),
|
|
5364
|
-
/* @__PURE__ */ Q("span", { children: "Capturing…" })
|
|
5365
|
-
]
|
|
5366
|
-
}) : u ? /* @__PURE__ */ Q("span", {
|
|
5367
|
-
class: "markup-screenshot-status",
|
|
5368
|
-
title: "This page has something the capture can't read, often a third-party image. Your comment will post without a screenshot.",
|
|
5369
|
-
children: [/* @__PURE__ */ Q(Jo, { size: 12 }), /* @__PURE__ */ Q("span", { children: "Screenshot unavailable" })]
|
|
5370
|
-
}) : /* @__PURE__ */ Q("label", {
|
|
5371
|
-
class: "markup-screenshot-toggle",
|
|
5382
|
+
children: [
|
|
5383
|
+
/* @__PURE__ */ Q("header", {
|
|
5384
|
+
class: "markup-popover-header",
|
|
5385
|
+
onPointerDown: te,
|
|
5386
|
+
children: [/* @__PURE__ */ Q("span", {
|
|
5387
|
+
class: "markup-popover-title",
|
|
5388
|
+
title: ae,
|
|
5389
|
+
children: "New comment"
|
|
5390
|
+
}), /* @__PURE__ */ Q("button", {
|
|
5391
|
+
type: "button",
|
|
5392
|
+
class: "markup-icon-btn",
|
|
5393
|
+
"aria-label": "Discard pin",
|
|
5394
|
+
onClick: T,
|
|
5395
|
+
children: /* @__PURE__ */ Q(qo, { size: 16 })
|
|
5396
|
+
})]
|
|
5397
|
+
}),
|
|
5398
|
+
n == null ? /* @__PURE__ */ Q(Ss, {
|
|
5399
|
+
isPending: o,
|
|
5400
|
+
isConnecting: i,
|
|
5401
|
+
isSigningIn: a,
|
|
5402
|
+
onSubmit: m,
|
|
5403
|
+
onCancel: _,
|
|
5404
|
+
onSignIn: h
|
|
5405
|
+
}) : /* @__PURE__ */ Q("div", {
|
|
5406
|
+
class: "markup-popover-body",
|
|
5407
|
+
children: [
|
|
5408
|
+
/* @__PURE__ */ Q("p", {
|
|
5409
|
+
class: "markup-popover-byline",
|
|
5372
5410
|
children: [
|
|
5373
|
-
|
|
5374
|
-
|
|
5375
|
-
class: "markup-
|
|
5376
|
-
|
|
5377
|
-
onChange: (e) => b(e.currentTarget.checked)
|
|
5411
|
+
"posting as ",
|
|
5412
|
+
/* @__PURE__ */ Q("span", {
|
|
5413
|
+
class: "markup-popover-name",
|
|
5414
|
+
children: n
|
|
5378
5415
|
}),
|
|
5379
|
-
/* @__PURE__ */ Q(
|
|
5380
|
-
|
|
5381
|
-
|
|
5382
|
-
class: "markup-screenshot-thumb",
|
|
5383
|
-
src: w,
|
|
5384
|
-
alt: "Screenshot preview"
|
|
5416
|
+
r ? /* @__PURE__ */ Q("span", {
|
|
5417
|
+
class: "markup-comment-badge",
|
|
5418
|
+
children: "team"
|
|
5385
5419
|
}) : null
|
|
5386
5420
|
]
|
|
5387
|
-
}),
|
|
5388
|
-
|
|
5389
|
-
|
|
5390
|
-
|
|
5391
|
-
|
|
5392
|
-
|
|
5421
|
+
}),
|
|
5422
|
+
/* @__PURE__ */ Q(Js, {
|
|
5423
|
+
label: "Feedback",
|
|
5424
|
+
placeholder: "What's wrong, missing, or worth noting?",
|
|
5425
|
+
submitLabel: "Post markup",
|
|
5426
|
+
isPending: o,
|
|
5427
|
+
error: s,
|
|
5428
|
+
onSubmit: (e) => g(e, D && oe),
|
|
5429
|
+
onDirtyChange: (e) => {
|
|
5430
|
+
y.current = e;
|
|
5431
|
+
},
|
|
5432
|
+
members: p
|
|
5433
|
+
}),
|
|
5434
|
+
se ? /* @__PURE__ */ Q("div", {
|
|
5435
|
+
class: Z("markup-screenshot-row", u && "is-failed", ce && "is-attached"),
|
|
5436
|
+
children: [/* @__PURE__ */ Q("div", {
|
|
5437
|
+
class: "markup-screenshot-row-head",
|
|
5393
5438
|
children: [
|
|
5394
|
-
/* @__PURE__ */ Q("
|
|
5395
|
-
class: "markup-screenshot-
|
|
5396
|
-
children:
|
|
5439
|
+
l ? /* @__PURE__ */ Q("span", {
|
|
5440
|
+
class: "markup-screenshot-status",
|
|
5441
|
+
children: [
|
|
5442
|
+
/* @__PURE__ */ Q("input", {
|
|
5443
|
+
type: "checkbox",
|
|
5444
|
+
class: "markup-screenshot-checkbox",
|
|
5445
|
+
disabled: !0
|
|
5446
|
+
}),
|
|
5447
|
+
/* @__PURE__ */ Q(Zo, { size: 12 }),
|
|
5448
|
+
/* @__PURE__ */ Q("span", { children: "Capturing…" })
|
|
5449
|
+
]
|
|
5450
|
+
}) : u ? /* @__PURE__ */ Q("span", {
|
|
5451
|
+
class: "markup-screenshot-status",
|
|
5452
|
+
title: "This page has something the capture can't read, often a third-party image. Your comment will post without a screenshot.",
|
|
5453
|
+
children: [/* @__PURE__ */ Q(Zo, { size: 12 }), /* @__PURE__ */ Q("span", { children: "Screenshot unavailable" })]
|
|
5454
|
+
}) : /* @__PURE__ */ Q("label", {
|
|
5455
|
+
class: "markup-screenshot-toggle",
|
|
5456
|
+
children: [
|
|
5457
|
+
/* @__PURE__ */ Q("input", {
|
|
5458
|
+
type: "checkbox",
|
|
5459
|
+
class: "markup-screenshot-checkbox",
|
|
5460
|
+
checked: D,
|
|
5461
|
+
onChange: (e) => O(e.currentTarget.checked)
|
|
5462
|
+
}),
|
|
5463
|
+
/* @__PURE__ */ Q(Zo, { size: 12 }),
|
|
5464
|
+
/* @__PURE__ */ Q("span", { children: "Attach screenshot" })
|
|
5465
|
+
]
|
|
5397
5466
|
}),
|
|
5398
|
-
|
|
5399
|
-
|
|
5400
|
-
|
|
5401
|
-
|
|
5467
|
+
ce && A ? /* @__PURE__ */ Q("a", {
|
|
5468
|
+
class: "markup-screenshot-thumb-link",
|
|
5469
|
+
href: A,
|
|
5470
|
+
target: "_blank",
|
|
5471
|
+
rel: "noopener",
|
|
5472
|
+
title: "Preview screenshot",
|
|
5473
|
+
"aria-label": "Preview screenshot",
|
|
5474
|
+
onClick: (e) => {
|
|
5475
|
+
e.metaKey || e.ctrlKey || e.shiftKey || e.altKey || e.button !== 0 || (e.preventDefault(), j.current?.showModal());
|
|
5476
|
+
},
|
|
5477
|
+
children: /* @__PURE__ */ Q("img", {
|
|
5478
|
+
class: "markup-screenshot-thumb",
|
|
5479
|
+
src: A,
|
|
5480
|
+
alt: ""
|
|
5481
|
+
})
|
|
5482
|
+
}) : null,
|
|
5483
|
+
ce && d > 0 ? /* @__PURE__ */ Q("button", {
|
|
5484
|
+
type: "button",
|
|
5485
|
+
class: "markup-screenshot-redacted-chip",
|
|
5486
|
+
"aria-expanded": ee,
|
|
5487
|
+
onClick: () => k((e) => !e),
|
|
5488
|
+
children: [
|
|
5489
|
+
/* @__PURE__ */ Q("em", {
|
|
5490
|
+
class: "markup-screenshot-redacted-arrow",
|
|
5491
|
+
children: ee ? "▾" : "▸"
|
|
5492
|
+
}),
|
|
5493
|
+
d,
|
|
5494
|
+
" ",
|
|
5495
|
+
d === 1 ? "field" : "fields",
|
|
5496
|
+
" ",
|
|
5497
|
+
"redacted"
|
|
5498
|
+
]
|
|
5499
|
+
}) : null
|
|
5402
5500
|
]
|
|
5403
|
-
}),
|
|
5501
|
+
}), ce ? /* @__PURE__ */ Q(S, { children: [ee && d > 0 ? /* @__PURE__ */ Q("div", {
|
|
5404
5502
|
class: "markup-screenshot-redacted-list",
|
|
5405
5503
|
children: f.map((e) => /* @__PURE__ */ Q("code", {
|
|
5406
5504
|
class: "markup-screenshot-redacted-selector",
|
|
5407
5505
|
children: e
|
|
5408
5506
|
}, e))
|
|
5409
|
-
}) : null
|
|
5410
|
-
|
|
5411
|
-
|
|
5412
|
-
|
|
5413
|
-
|
|
5414
|
-
|
|
5415
|
-
|
|
5416
|
-
|
|
5417
|
-
|
|
5418
|
-
|
|
5419
|
-
|
|
5420
|
-
|
|
5421
|
-
|
|
5422
|
-
|
|
5423
|
-
|
|
5424
|
-
|
|
5507
|
+
}) : null, /* @__PURE__ */ Q("p", {
|
|
5508
|
+
class: "markup-screenshot-help",
|
|
5509
|
+
children: [
|
|
5510
|
+
"Password and credit-card fields are blacked out automatically.",
|
|
5511
|
+
" ",
|
|
5512
|
+
/* @__PURE__ */ Q("a", {
|
|
5513
|
+
class: "markup-screenshot-help-link",
|
|
5514
|
+
href: Ys,
|
|
5515
|
+
target: "_blank",
|
|
5516
|
+
rel: "noopener noreferrer",
|
|
5517
|
+
children: "More info here."
|
|
5518
|
+
})
|
|
5519
|
+
]
|
|
5520
|
+
})] }) : null]
|
|
5521
|
+
}) : null
|
|
5522
|
+
]
|
|
5523
|
+
}),
|
|
5524
|
+
ce && A ? /* @__PURE__ */ Q("dialog", {
|
|
5525
|
+
ref: j,
|
|
5526
|
+
class: "markup-lightbox",
|
|
5527
|
+
onClick: () => j.current?.close(),
|
|
5528
|
+
children: [/* @__PURE__ */ Q("button", {
|
|
5529
|
+
type: "button",
|
|
5530
|
+
class: "markup-lightbox-close markup-icon-btn",
|
|
5531
|
+
"aria-label": "Close screenshot",
|
|
5532
|
+
onClick: (e) => {
|
|
5533
|
+
e.stopPropagation(), j.current?.close();
|
|
5534
|
+
},
|
|
5535
|
+
children: /* @__PURE__ */ Q(qo, { size: 16 })
|
|
5536
|
+
}), /* @__PURE__ */ Q("img", {
|
|
5537
|
+
class: "markup-lightbox-img",
|
|
5538
|
+
src: A,
|
|
5539
|
+
alt: "Screenshot preview",
|
|
5540
|
+
onClick: (e) => e.stopPropagation()
|
|
5541
|
+
})]
|
|
5542
|
+
}) : null,
|
|
5543
|
+
x ? /* @__PURE__ */ Q("div", {
|
|
5544
|
+
class: "markup-discard-confirm",
|
|
5545
|
+
role: "alertdialog",
|
|
5546
|
+
"aria-labelledby": "markup-discard-confirm-title",
|
|
5547
|
+
"aria-describedby": "markup-discard-confirm-desc",
|
|
5548
|
+
children: [
|
|
5549
|
+
/* @__PURE__ */ Q("p", {
|
|
5550
|
+
id: "markup-discard-confirm-title",
|
|
5551
|
+
class: "markup-discard-confirm-title",
|
|
5552
|
+
children: "Discard this comment?"
|
|
5553
|
+
}),
|
|
5554
|
+
/* @__PURE__ */ Q("p", {
|
|
5555
|
+
id: "markup-discard-confirm-desc",
|
|
5556
|
+
class: "markup-discard-confirm-desc",
|
|
5557
|
+
children: "What you wrote will be lost."
|
|
5558
|
+
}),
|
|
5559
|
+
/* @__PURE__ */ Q("div", {
|
|
5560
|
+
class: "markup-discard-confirm-actions",
|
|
5561
|
+
children: [/* @__PURE__ */ Q("button", {
|
|
5562
|
+
type: "button",
|
|
5563
|
+
class: "markup-btn markup-btn-primary markup-discard-confirm-keep",
|
|
5564
|
+
onClick: E,
|
|
5565
|
+
children: "Keep editing"
|
|
5566
|
+
}), /* @__PURE__ */ Q("button", {
|
|
5567
|
+
type: "button",
|
|
5568
|
+
class: "markup-btn markup-btn-danger",
|
|
5569
|
+
onClick: _,
|
|
5570
|
+
children: "Discard"
|
|
5571
|
+
})]
|
|
5572
|
+
})
|
|
5573
|
+
]
|
|
5574
|
+
}) : null
|
|
5575
|
+
]
|
|
5425
5576
|
});
|
|
5426
5577
|
}
|
|
5427
|
-
function
|
|
5578
|
+
function Zs(e, t, n) {
|
|
5428
5579
|
return Math.max(t, Math.min(n, e));
|
|
5429
5580
|
}
|
|
5430
5581
|
//#endregion
|
|
5431
5582
|
//#region src/runtime/ui/notifications-panel.tsx
|
|
5432
|
-
function
|
|
5583
|
+
function Qs({ items: e, isLoading: t, error: n, onBack: r, onItemClick: i, onMarkAllRead: a, isMarkingAll: o }) {
|
|
5433
5584
|
let s = e.some((e) => e.readAt == null);
|
|
5434
5585
|
return /* @__PURE__ */ Q("div", {
|
|
5435
5586
|
class: "markup-notifications-panel",
|
|
@@ -5444,7 +5595,7 @@ function Js({ items: e, isLoading: t, error: n, onBack: r, onItemClick: i, onMar
|
|
|
5444
5595
|
title: "Back to menu",
|
|
5445
5596
|
"aria-label": "Back to menu",
|
|
5446
5597
|
onClick: r,
|
|
5447
|
-
children: /* @__PURE__ */ Q(
|
|
5598
|
+
children: /* @__PURE__ */ Q(Jo, { size: 16 })
|
|
5448
5599
|
}),
|
|
5449
5600
|
/* @__PURE__ */ Q("span", {
|
|
5450
5601
|
class: "markup-eyebrow",
|
|
@@ -5501,7 +5652,7 @@ function Js({ items: e, isLoading: t, error: n, onBack: r, onItemClick: i, onMar
|
|
|
5501
5652
|
role: "img",
|
|
5502
5653
|
"aria-label": "Written by an AI agent",
|
|
5503
5654
|
title: "Written by an AI agent on this person's behalf",
|
|
5504
|
-
children: /* @__PURE__ */ Q(
|
|
5655
|
+
children: /* @__PURE__ */ Q(ps, { size: 11 })
|
|
5505
5656
|
}) : null,
|
|
5506
5657
|
/* @__PURE__ */ Q("span", {
|
|
5507
5658
|
class: "markup-notifications-panel-sep",
|
|
@@ -5509,7 +5660,7 @@ function Js({ items: e, isLoading: t, error: n, onBack: r, onItemClick: i, onMar
|
|
|
5509
5660
|
}),
|
|
5510
5661
|
/* @__PURE__ */ Q("span", {
|
|
5511
5662
|
class: "markup-notifications-panel-time",
|
|
5512
|
-
children:
|
|
5663
|
+
children: $s(e.createdAt)
|
|
5513
5664
|
})
|
|
5514
5665
|
]
|
|
5515
5666
|
}),
|
|
@@ -5538,7 +5689,7 @@ function Js({ items: e, isLoading: t, error: n, onBack: r, onItemClick: i, onMar
|
|
|
5538
5689
|
})]
|
|
5539
5690
|
});
|
|
5540
5691
|
}
|
|
5541
|
-
function
|
|
5692
|
+
function $s(e) {
|
|
5542
5693
|
let t = Date.now() - e, n = Math.floor(t / 1e3);
|
|
5543
5694
|
if (n < 60) return "just now";
|
|
5544
5695
|
let r = Math.floor(n / 60);
|
|
@@ -5550,7 +5701,7 @@ function Ys(e) {
|
|
|
5550
5701
|
}
|
|
5551
5702
|
//#endregion
|
|
5552
5703
|
//#region src/runtime/use-theme.ts
|
|
5553
|
-
function
|
|
5704
|
+
function ec() {
|
|
5554
5705
|
let [, e] = B(0);
|
|
5555
5706
|
return V(() => He(() => e((e) => e + 1)), []), {
|
|
5556
5707
|
mode: ze(),
|
|
@@ -5560,8 +5711,8 @@ function Xs() {
|
|
|
5560
5711
|
}
|
|
5561
5712
|
//#endregion
|
|
5562
5713
|
//#region src/runtime/ui/overflow-menu.tsx
|
|
5563
|
-
function
|
|
5564
|
-
let [u, d] = B(!1), f = H(null), p =
|
|
5714
|
+
function tc({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked: r = !1, onToggleAutoCapture: i, onOpenPrivacy: a, onOpenShortcuts: o, onHideForSession: s, version: c, dashboardUrl: l }) {
|
|
5715
|
+
let [u, d] = B(!1), f = H(null), p = ec();
|
|
5565
5716
|
V(() => {
|
|
5566
5717
|
if (!u) return;
|
|
5567
5718
|
function e(e) {
|
|
@@ -5575,7 +5726,7 @@ function Zs({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
|
|
|
5575
5726
|
document.removeEventListener("click", e, !0), document.removeEventListener("keydown", t);
|
|
5576
5727
|
};
|
|
5577
5728
|
}, [u]);
|
|
5578
|
-
let m = e === "bottom-left" ? "is-anchor-left" : e === "bottom-center" ? "is-anchor-center" : "is-anchor-right", { mod: h } =
|
|
5729
|
+
let m = e === "bottom-left" ? "is-anchor-left" : e === "bottom-center" ? "is-anchor-center" : "is-anchor-right", { mod: h } = Wo();
|
|
5579
5730
|
return /* @__PURE__ */ Q("div", {
|
|
5580
5731
|
ref: f,
|
|
5581
5732
|
style: {
|
|
@@ -5594,7 +5745,7 @@ function Zs({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
|
|
|
5594
5745
|
onClick: (e) => {
|
|
5595
5746
|
e.preventDefault(), e.stopPropagation(), d((e) => !e);
|
|
5596
5747
|
},
|
|
5597
|
-
children: /* @__PURE__ */ Q(
|
|
5748
|
+
children: /* @__PURE__ */ Q(is, { size: 16 })
|
|
5598
5749
|
}), u ? /* @__PURE__ */ Q("div", {
|
|
5599
5750
|
class: Z("markup-pop", m),
|
|
5600
5751
|
"data-pop": "overflow",
|
|
@@ -5618,7 +5769,7 @@ function Zs({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
|
|
|
5618
5769
|
title: "Light",
|
|
5619
5770
|
class: Z(p.mode === "light" && "is-on"),
|
|
5620
5771
|
onClick: () => p.set("light"),
|
|
5621
|
-
children: /* @__PURE__ */ Q(
|
|
5772
|
+
children: /* @__PURE__ */ Q(as, { size: 14 })
|
|
5622
5773
|
}),
|
|
5623
5774
|
/* @__PURE__ */ Q("button", {
|
|
5624
5775
|
type: "button",
|
|
@@ -5628,7 +5779,7 @@ function Zs({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
|
|
|
5628
5779
|
title: "Dark",
|
|
5629
5780
|
class: Z(p.mode === "dark" && "is-on"),
|
|
5630
5781
|
onClick: () => p.set("dark"),
|
|
5631
|
-
children: /* @__PURE__ */ Q(
|
|
5782
|
+
children: /* @__PURE__ */ Q(os, { size: 14 })
|
|
5632
5783
|
}),
|
|
5633
5784
|
/* @__PURE__ */ Q("button", {
|
|
5634
5785
|
type: "button",
|
|
@@ -5638,7 +5789,7 @@ function Zs({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
|
|
|
5638
5789
|
title: `Auto, currently ${p.resolved}`,
|
|
5639
5790
|
class: Z(p.mode === "auto" && "is-on"),
|
|
5640
5791
|
onClick: () => p.set("auto"),
|
|
5641
|
-
children: /* @__PURE__ */ Q(
|
|
5792
|
+
children: /* @__PURE__ */ Q(ss, { size: 14 })
|
|
5642
5793
|
})
|
|
5643
5794
|
]
|
|
5644
5795
|
})]
|
|
@@ -5661,7 +5812,7 @@ function Zs({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
|
|
|
5661
5812
|
title: "Bottom left",
|
|
5662
5813
|
class: Z(e === "bottom-left" && "is-on"),
|
|
5663
5814
|
onClick: () => t("bottom-left"),
|
|
5664
|
-
children: /* @__PURE__ */ Q(
|
|
5815
|
+
children: /* @__PURE__ */ Q(nc, { side: "left" })
|
|
5665
5816
|
}),
|
|
5666
5817
|
/* @__PURE__ */ Q("button", {
|
|
5667
5818
|
type: "button",
|
|
@@ -5671,7 +5822,7 @@ function Zs({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
|
|
|
5671
5822
|
title: "Bottom center",
|
|
5672
5823
|
class: Z(e === "bottom-center" && "is-on"),
|
|
5673
5824
|
onClick: () => t("bottom-center"),
|
|
5674
|
-
children: /* @__PURE__ */ Q(
|
|
5825
|
+
children: /* @__PURE__ */ Q(nc, { side: "center" })
|
|
5675
5826
|
}),
|
|
5676
5827
|
/* @__PURE__ */ Q("button", {
|
|
5677
5828
|
type: "button",
|
|
@@ -5681,7 +5832,7 @@ function Zs({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
|
|
|
5681
5832
|
title: "Bottom right",
|
|
5682
5833
|
class: Z(e === "bottom-right" && "is-on"),
|
|
5683
5834
|
onClick: () => t("bottom-right"),
|
|
5684
|
-
children: /* @__PURE__ */ Q(
|
|
5835
|
+
children: /* @__PURE__ */ Q(nc, { side: "right" })
|
|
5685
5836
|
})
|
|
5686
5837
|
]
|
|
5687
5838
|
})]
|
|
@@ -5703,7 +5854,7 @@ function Zs({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
|
|
|
5703
5854
|
children: [
|
|
5704
5855
|
/* @__PURE__ */ Q("span", {
|
|
5705
5856
|
class: "ic",
|
|
5706
|
-
children: /* @__PURE__ */ Q(
|
|
5857
|
+
children: /* @__PURE__ */ Q(rc, {})
|
|
5707
5858
|
}),
|
|
5708
5859
|
/* @__PURE__ */ Q("span", {
|
|
5709
5860
|
class: "lbl",
|
|
@@ -5727,7 +5878,7 @@ function Zs({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
|
|
|
5727
5878
|
},
|
|
5728
5879
|
children: [/* @__PURE__ */ Q("span", {
|
|
5729
5880
|
class: "ic",
|
|
5730
|
-
children: /* @__PURE__ */ Q(
|
|
5881
|
+
children: /* @__PURE__ */ Q(cs, { size: 16 })
|
|
5731
5882
|
}), /* @__PURE__ */ Q("span", {
|
|
5732
5883
|
class: "lbl",
|
|
5733
5884
|
children: "Privacy & data"
|
|
@@ -5742,7 +5893,7 @@ function Zs({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
|
|
|
5742
5893
|
},
|
|
5743
5894
|
children: [/* @__PURE__ */ Q("span", {
|
|
5744
5895
|
class: "ic",
|
|
5745
|
-
children: /* @__PURE__ */ Q(
|
|
5896
|
+
children: /* @__PURE__ */ Q(ls, { size: 16 })
|
|
5746
5897
|
}), /* @__PURE__ */ Q("span", {
|
|
5747
5898
|
class: "lbl",
|
|
5748
5899
|
children: "Keyboard shortcuts"
|
|
@@ -5759,7 +5910,7 @@ function Zs({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
|
|
|
5759
5910
|
children: [
|
|
5760
5911
|
/* @__PURE__ */ Q("span", {
|
|
5761
5912
|
class: "ic",
|
|
5762
|
-
children: /* @__PURE__ */ Q(
|
|
5913
|
+
children: /* @__PURE__ */ Q(ic, {})
|
|
5763
5914
|
}),
|
|
5764
5915
|
/* @__PURE__ */ Q("span", {
|
|
5765
5916
|
class: "lbl",
|
|
@@ -5777,7 +5928,7 @@ function Zs({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
|
|
|
5777
5928
|
target: "_blank",
|
|
5778
5929
|
rel: "noopener noreferrer",
|
|
5779
5930
|
children: [
|
|
5780
|
-
/* @__PURE__ */ Q(
|
|
5931
|
+
/* @__PURE__ */ Q(Ko, { size: 12 }),
|
|
5781
5932
|
/* @__PURE__ */ Q("span", { children: "Powered by Markup" }),
|
|
5782
5933
|
/* @__PURE__ */ Q("span", {
|
|
5783
5934
|
class: "ver",
|
|
@@ -5789,7 +5940,7 @@ function Zs({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
|
|
|
5789
5940
|
}) : null]
|
|
5790
5941
|
});
|
|
5791
5942
|
}
|
|
5792
|
-
function
|
|
5943
|
+
function nc({ side: e }) {
|
|
5793
5944
|
return /* @__PURE__ */ Q("svg", {
|
|
5794
5945
|
width: 14,
|
|
5795
5946
|
height: 14,
|
|
@@ -5815,7 +5966,7 @@ function Qs({ side: e }) {
|
|
|
5815
5966
|
})]
|
|
5816
5967
|
});
|
|
5817
5968
|
}
|
|
5818
|
-
function
|
|
5969
|
+
function rc() {
|
|
5819
5970
|
return /* @__PURE__ */ Q("svg", {
|
|
5820
5971
|
width: 16,
|
|
5821
5972
|
height: 16,
|
|
@@ -5833,7 +5984,7 @@ function $s() {
|
|
|
5833
5984
|
})]
|
|
5834
5985
|
});
|
|
5835
5986
|
}
|
|
5836
|
-
function
|
|
5987
|
+
function ic() {
|
|
5837
5988
|
return /* @__PURE__ */ Q("svg", {
|
|
5838
5989
|
width: 16,
|
|
5839
5990
|
height: 16,
|
|
@@ -5854,7 +6005,7 @@ function ec() {
|
|
|
5854
6005
|
}
|
|
5855
6006
|
//#endregion
|
|
5856
6007
|
//#region src/runtime/ui/panel-popover.tsx
|
|
5857
|
-
function
|
|
6008
|
+
function ac({ kind: e, label: t, position: n, ignoreToolbarKind: r, onClose: i, children: a }) {
|
|
5858
6009
|
let o = H(null);
|
|
5859
6010
|
return V(() => {
|
|
5860
6011
|
function e(e) {
|
|
@@ -5884,7 +6035,7 @@ function tc({ kind: e, label: t, position: n, ignoreToolbarKind: r, onClose: i,
|
|
|
5884
6035
|
}
|
|
5885
6036
|
//#endregion
|
|
5886
6037
|
//#region src/runtime/ui/pin.tsx
|
|
5887
|
-
function
|
|
6038
|
+
function oc({ pageX: e, pageY: t, count: n, isActive: r, isUnresolved: i, onClick: a }) {
|
|
5888
6039
|
let o = t - window.scrollY, s = e - window.scrollX;
|
|
5889
6040
|
return /* @__PURE__ */ Q("button", {
|
|
5890
6041
|
type: "button",
|
|
@@ -5904,7 +6055,7 @@ function nc({ pageX: e, pageY: t, count: n, isActive: r, isUnresolved: i, onClic
|
|
|
5904
6055
|
})
|
|
5905
6056
|
});
|
|
5906
6057
|
}
|
|
5907
|
-
function
|
|
6058
|
+
function sc({ pageX: e, pageY: t }) {
|
|
5908
6059
|
let n = t - window.scrollY, r = e - window.scrollX;
|
|
5909
6060
|
return /* @__PURE__ */ Q("div", {
|
|
5910
6061
|
class: "markup-pin markup-pin-ghost is-anchor",
|
|
@@ -5921,23 +6072,40 @@ function rc({ pageX: e, pageY: t }) {
|
|
|
5921
6072
|
}
|
|
5922
6073
|
//#endregion
|
|
5923
6074
|
//#region src/runtime/ui/placement-overlay.tsx
|
|
5924
|
-
function
|
|
5925
|
-
|
|
5926
|
-
|
|
6075
|
+
function cc({ onPlace: e, onCancel: t }) {
|
|
6076
|
+
let n = H(null);
|
|
6077
|
+
return rt(() => {
|
|
6078
|
+
let r = n.current?.getRootNode() ?? null, i = (e) => r !== null && e.composedPath().includes(r);
|
|
6079
|
+
function a(e) {
|
|
5927
6080
|
e.key === "Escape" && t();
|
|
5928
6081
|
}
|
|
5929
|
-
|
|
5930
|
-
|
|
5931
|
-
|
|
5932
|
-
|
|
5933
|
-
|
|
5934
|
-
|
|
5935
|
-
|
|
5936
|
-
|
|
5937
|
-
|
|
6082
|
+
function o(e) {
|
|
6083
|
+
i(e) || (e.preventDefault(), e.stopPropagation());
|
|
6084
|
+
}
|
|
6085
|
+
function s(t) {
|
|
6086
|
+
i(t) || (t.preventDefault(), t.stopPropagation(), e(vi(t), t.clientX, t.clientY));
|
|
6087
|
+
}
|
|
6088
|
+
let c = { capture: !0 }, l = [
|
|
6089
|
+
"pointerdown",
|
|
6090
|
+
"pointerup",
|
|
6091
|
+
"mousedown",
|
|
6092
|
+
"mouseup",
|
|
6093
|
+
"dblclick",
|
|
6094
|
+
"auxclick",
|
|
6095
|
+
"contextmenu"
|
|
6096
|
+
];
|
|
6097
|
+
window.addEventListener("keydown", a);
|
|
6098
|
+
for (let e of l) window.addEventListener(e, o, c);
|
|
6099
|
+
window.addEventListener("click", s, c);
|
|
6100
|
+
let u = lc();
|
|
6101
|
+
return () => {
|
|
6102
|
+
window.removeEventListener("keydown", a);
|
|
6103
|
+
for (let e of l) window.removeEventListener(e, o, c);
|
|
6104
|
+
window.removeEventListener("click", s, c), u();
|
|
6105
|
+
};
|
|
6106
|
+
}, [e, t]), /* @__PURE__ */ Q("div", {
|
|
5938
6107
|
class: "markup-placement-overlay",
|
|
5939
|
-
|
|
5940
|
-
onClick: n,
|
|
6108
|
+
ref: n,
|
|
5941
6109
|
role: "presentation",
|
|
5942
6110
|
children: /* @__PURE__ */ Q("div", {
|
|
5943
6111
|
class: "markup-placement-cursor-help",
|
|
@@ -5945,10 +6113,21 @@ function ic({ onPlace: e, onCancel: t }) {
|
|
|
5945
6113
|
})
|
|
5946
6114
|
});
|
|
5947
6115
|
}
|
|
6116
|
+
function lc() {
|
|
6117
|
+
let e = "html, html * { cursor: crosshair !important; }";
|
|
6118
|
+
if ("adoptedStyleSheets" in document && "replaceSync" in CSSStyleSheet.prototype) {
|
|
6119
|
+
let t = new CSSStyleSheet();
|
|
6120
|
+
return t.replaceSync(e), document.adoptedStyleSheets = [...document.adoptedStyleSheets, t], () => {
|
|
6121
|
+
document.adoptedStyleSheets = document.adoptedStyleSheets.filter((e) => e !== t);
|
|
6122
|
+
};
|
|
6123
|
+
}
|
|
6124
|
+
let t = document.createElement("style");
|
|
6125
|
+
return t.textContent = e, document.head.appendChild(t), () => t.remove();
|
|
6126
|
+
}
|
|
5948
6127
|
//#endregion
|
|
5949
6128
|
//#region src/runtime/ui/privacy-panel.tsx
|
|
5950
|
-
function
|
|
5951
|
-
let [c, l] = B(!1), u =
|
|
6129
|
+
function uc({ identity: e, apiUrl: t, autoCapture: n, autoCaptureLocked: r, isForgettingMe: i, forgetMeError: a, onForgetMe: o, onClose: s }) {
|
|
6130
|
+
let [c, l] = B(!1), u = Yi(e), d = e.kind === "verified", f = d ? e.identity.email : void 0, p = e.kind === "anon";
|
|
5952
6131
|
return /* @__PURE__ */ Q("div", {
|
|
5953
6132
|
class: "markup-panel",
|
|
5954
6133
|
children: [/* @__PURE__ */ Q("header", {
|
|
@@ -5962,7 +6141,7 @@ function ac({ identity: e, apiUrl: t, autoCapture: n, autoCaptureLocked: r, isFo
|
|
|
5962
6141
|
title: "Close",
|
|
5963
6142
|
"aria-label": "Close privacy and data",
|
|
5964
6143
|
onClick: s,
|
|
5965
|
-
children: /* @__PURE__ */ Q(
|
|
6144
|
+
children: /* @__PURE__ */ Q(qo, { size: 14 })
|
|
5966
6145
|
})]
|
|
5967
6146
|
}), /* @__PURE__ */ Q("div", {
|
|
5968
6147
|
class: "markup-panel-body",
|
|
@@ -6047,7 +6226,7 @@ function ac({ identity: e, apiUrl: t, autoCapture: n, autoCaptureLocked: r, isFo
|
|
|
6047
6226
|
"Only ",
|
|
6048
6227
|
/* @__PURE__ */ Q("span", {
|
|
6049
6228
|
class: "markup-panel-mono",
|
|
6050
|
-
children:
|
|
6229
|
+
children: dc(t)
|
|
6051
6230
|
}),
|
|
6052
6231
|
". No analytics, no ad tech, no third-party requests from the widget. If the widget itself crashes it posts the error, this page's URL and your user-agent to that same host, never your identity or what you were writing."
|
|
6053
6232
|
]
|
|
@@ -6083,7 +6262,7 @@ function ac({ identity: e, apiUrl: t, autoCapture: n, autoCaptureLocked: r, isFo
|
|
|
6083
6262
|
})]
|
|
6084
6263
|
});
|
|
6085
6264
|
}
|
|
6086
|
-
function
|
|
6265
|
+
function dc(e) {
|
|
6087
6266
|
try {
|
|
6088
6267
|
return new URL(e).host;
|
|
6089
6268
|
} catch {
|
|
@@ -6092,8 +6271,8 @@ function oc(e) {
|
|
|
6092
6271
|
}
|
|
6093
6272
|
//#endregion
|
|
6094
6273
|
//#region src/runtime/ui/shortcuts-panel.tsx
|
|
6095
|
-
function
|
|
6096
|
-
let { mod: t, enter: n } =
|
|
6274
|
+
function fc({ onClose: e }) {
|
|
6275
|
+
let { mod: t, enter: n } = Wo();
|
|
6097
6276
|
return /* @__PURE__ */ Q("div", {
|
|
6098
6277
|
class: "markup-panel",
|
|
6099
6278
|
children: [/* @__PURE__ */ Q("header", {
|
|
@@ -6107,7 +6286,7 @@ function sc({ onClose: e }) {
|
|
|
6107
6286
|
title: "Close",
|
|
6108
6287
|
"aria-label": "Close keyboard shortcuts",
|
|
6109
6288
|
onClick: e,
|
|
6110
|
-
children: /* @__PURE__ */ Q(
|
|
6289
|
+
children: /* @__PURE__ */ Q(qo, { size: 14 })
|
|
6111
6290
|
})]
|
|
6112
6291
|
}), /* @__PURE__ */ Q("div", {
|
|
6113
6292
|
class: "markup-panel-body",
|
|
@@ -6187,14 +6366,14 @@ function sc({ onClose: e }) {
|
|
|
6187
6366
|
}
|
|
6188
6367
|
//#endregion
|
|
6189
6368
|
//#region src/runtime/ui/thread-popover.tsx
|
|
6190
|
-
var
|
|
6369
|
+
var pc = [
|
|
6191
6370
|
"👍",
|
|
6192
6371
|
"❤️",
|
|
6193
6372
|
"🎉",
|
|
6194
6373
|
"😮",
|
|
6195
6374
|
"😄",
|
|
6196
6375
|
"❓"
|
|
6197
|
-
],
|
|
6376
|
+
], mc = Ur({
|
|
6198
6377
|
none: {
|
|
6199
6378
|
"toggle-thread-menu": () => ({
|
|
6200
6379
|
kind: "thread-menu",
|
|
@@ -6250,13 +6429,13 @@ var cc = [
|
|
|
6250
6429
|
dismiss: () => ({ kind: "none" })
|
|
6251
6430
|
}
|
|
6252
6431
|
});
|
|
6253
|
-
function
|
|
6254
|
-
let b = H(null), x = H(null), S = H(null), C = H(null), [w, T] = Wr(
|
|
6432
|
+
function hc({ thread: e, authorName: t, currentClientId: n, isVerified: r, isIdentityResolving: i, isSigningIn: a, canDelete: o, isPending: s, error: c, isHidden: l = !1, members: u = [], onAuthor: d, onSignIn: f, onClose: p, onReply: m, onEditComment: h, onDeleteComment: g, onToggleReaction: _, onResolve: v, onDelete: y }) {
|
|
6433
|
+
let b = H(null), x = H(null), S = H(null), C = H(null), [w, T] = Wr(mc, { kind: "none" }), [E, D] = B(null), { onPointerDown: O, isDragging: ee } = _s({
|
|
6255
6434
|
targetRef: b,
|
|
6256
6435
|
shouldStart: (e) => !e.target?.closest("button, a, input, textarea, select"),
|
|
6257
6436
|
onMove: D
|
|
6258
6437
|
});
|
|
6259
|
-
|
|
6438
|
+
bs(b, !0);
|
|
6260
6439
|
let k = e.resolvedAt != null, A = it(() => e.comments.filter((e) => !e.deleted), [e.comments]);
|
|
6261
6440
|
V(() => {
|
|
6262
6441
|
if (w.kind === "none" || w.kind === "editing") return;
|
|
@@ -6278,12 +6457,12 @@ function uc({ thread: e, authorName: t, currentClientId: n, isVerified: r, isIde
|
|
|
6278
6457
|
V(() => {
|
|
6279
6458
|
j.current ??= A.at(-1)?.createdAt ?? 0;
|
|
6280
6459
|
}, [A]);
|
|
6281
|
-
let
|
|
6460
|
+
let M = H(!0);
|
|
6282
6461
|
V(() => {
|
|
6283
6462
|
let e = x.current;
|
|
6284
6463
|
if (e) {
|
|
6285
|
-
if (
|
|
6286
|
-
|
|
6464
|
+
if (M.current) {
|
|
6465
|
+
M.current = !1, e.scrollTop = e.scrollHeight;
|
|
6287
6466
|
return;
|
|
6288
6467
|
}
|
|
6289
6468
|
e.scrollHeight - e.scrollTop - e.clientHeight < 80 && (e.scrollTop = e.scrollHeight);
|
|
@@ -6299,15 +6478,15 @@ function uc({ thread: e, authorName: t, currentClientId: n, isVerified: r, isIde
|
|
|
6299
6478
|
}
|
|
6300
6479
|
return e.addEventListener("toggle", t), () => e.removeEventListener("toggle", t);
|
|
6301
6480
|
}, [p]);
|
|
6302
|
-
let
|
|
6481
|
+
let N = it(() => {
|
|
6303
6482
|
let t = yi({
|
|
6304
6483
|
anchorX: e.anchorX,
|
|
6305
6484
|
anchorY: e.anchorY,
|
|
6306
6485
|
anchorSelector: e.anchorSelector
|
|
6307
6486
|
});
|
|
6308
6487
|
return {
|
|
6309
|
-
left:
|
|
6310
|
-
top:
|
|
6488
|
+
left: yc(t.pageX - window.scrollX + 16, 12, window.innerWidth - 320 - 12),
|
|
6489
|
+
top: yc(t.pageY - window.scrollY - 16, 12, window.innerHeight - 200)
|
|
6311
6490
|
};
|
|
6312
6491
|
}, [
|
|
6313
6492
|
e.anchorX,
|
|
@@ -6320,8 +6499,8 @@ function uc({ thread: e, authorName: t, currentClientId: n, isVerified: r, isIde
|
|
|
6320
6499
|
class: Z("markup-popover", E && "is-floating", ee && "is-dragging", l && "is-hud-hidden"),
|
|
6321
6500
|
popover: "auto",
|
|
6322
6501
|
style: {
|
|
6323
|
-
"--markup-pop-x": `${E?.left ??
|
|
6324
|
-
"--markup-pop-y": `${E?.top ??
|
|
6502
|
+
"--markup-pop-x": `${E?.left ?? N.left}px`,
|
|
6503
|
+
"--markup-pop-y": `${E?.top ?? N.top}px`
|
|
6325
6504
|
},
|
|
6326
6505
|
role: "dialog",
|
|
6327
6506
|
"aria-label": "Markup thread",
|
|
@@ -6347,7 +6526,7 @@ function uc({ thread: e, authorName: t, currentClientId: n, isVerified: r, isIde
|
|
|
6347
6526
|
class: Z("markup-icon-btn", w.kind === "thread-menu" && "is-open"),
|
|
6348
6527
|
title: "More options",
|
|
6349
6528
|
onClick: () => T({ type: "toggle-thread-menu" }),
|
|
6350
|
-
children: /* @__PURE__ */ Q(
|
|
6529
|
+
children: /* @__PURE__ */ Q(Yo, { size: 16 })
|
|
6351
6530
|
}), w.kind === "thread-menu" ? /* @__PURE__ */ Q("div", {
|
|
6352
6531
|
class: "markup-thread-menu-list",
|
|
6353
6532
|
children: [/* @__PURE__ */ Q("button", {
|
|
@@ -6375,14 +6554,14 @@ function uc({ thread: e, authorName: t, currentClientId: n, isVerified: r, isIde
|
|
|
6375
6554
|
title: "Mark as resolved",
|
|
6376
6555
|
disabled: s,
|
|
6377
6556
|
onClick: v,
|
|
6378
|
-
children: /* @__PURE__ */ Q(
|
|
6557
|
+
children: /* @__PURE__ */ Q(Xo, { size: 16 })
|
|
6379
6558
|
}) : null,
|
|
6380
6559
|
/* @__PURE__ */ Q("button", {
|
|
6381
6560
|
type: "button",
|
|
6382
6561
|
class: "markup-icon-btn",
|
|
6383
6562
|
title: "Close thread",
|
|
6384
6563
|
onClick: p,
|
|
6385
|
-
children: /* @__PURE__ */ Q(
|
|
6564
|
+
children: /* @__PURE__ */ Q(qo, { size: 16 })
|
|
6386
6565
|
})
|
|
6387
6566
|
]
|
|
6388
6567
|
})]
|
|
@@ -6395,10 +6574,10 @@ function uc({ thread: e, authorName: t, currentClientId: n, isVerified: r, isIde
|
|
|
6395
6574
|
return /* @__PURE__ */ Q("li", {
|
|
6396
6575
|
class: Z("markup-comment", j.current != null && t.createdAt > j.current && "is-new"),
|
|
6397
6576
|
children: [
|
|
6398
|
-
/* @__PURE__ */ Q(
|
|
6577
|
+
/* @__PURE__ */ Q(bc, {
|
|
6399
6578
|
name: t.authorName,
|
|
6400
6579
|
image: t.authorImage,
|
|
6401
|
-
tone:
|
|
6580
|
+
tone: Sc(t.authorClientId ?? t.authorName)
|
|
6402
6581
|
}),
|
|
6403
6582
|
/* @__PURE__ */ Q("div", {
|
|
6404
6583
|
class: "markup-comment-meta",
|
|
@@ -6412,23 +6591,23 @@ function uc({ thread: e, authorName: t, currentClientId: n, isVerified: r, isIde
|
|
|
6412
6591
|
role: "img",
|
|
6413
6592
|
"aria-label": "Written by an AI agent",
|
|
6414
6593
|
title: "Written by an AI agent",
|
|
6415
|
-
children: /* @__PURE__ */ Q(
|
|
6594
|
+
children: /* @__PURE__ */ Q(ps, { size: 11 })
|
|
6416
6595
|
}) : null,
|
|
6417
6596
|
/* @__PURE__ */ Q("time", {
|
|
6418
6597
|
class: "markup-comment-time",
|
|
6419
6598
|
datetime: new Date(t.createdAt).toISOString(),
|
|
6420
|
-
title:
|
|
6421
|
-
children:
|
|
6599
|
+
title: wc(t.createdAt),
|
|
6600
|
+
children: Cc(t.createdAt)
|
|
6422
6601
|
}),
|
|
6423
6602
|
t.editedAt == null ? null : /* @__PURE__ */ Q("time", {
|
|
6424
6603
|
class: "markup-comment-edited",
|
|
6425
6604
|
datetime: new Date(t.editedAt).toISOString(),
|
|
6426
|
-
title:
|
|
6605
|
+
title: wc(t.editedAt),
|
|
6427
6606
|
children: "edited"
|
|
6428
6607
|
}),
|
|
6429
6608
|
/* @__PURE__ */ Q("div", {
|
|
6430
6609
|
class: "markup-thread-actions",
|
|
6431
|
-
children: [!k && !l ? /* @__PURE__ */ Q(
|
|
6610
|
+
children: [!k && !l ? /* @__PURE__ */ Q(gc, {
|
|
6432
6611
|
comment: t,
|
|
6433
6612
|
pickerOpen: m,
|
|
6434
6613
|
pickerDirection: v,
|
|
@@ -6496,7 +6675,7 @@ function uc({ thread: e, authorName: t, currentClientId: n, isVerified: r, isIde
|
|
|
6496
6675
|
direction: a < i ? "up" : "down"
|
|
6497
6676
|
});
|
|
6498
6677
|
},
|
|
6499
|
-
children: /* @__PURE__ */ Q(
|
|
6678
|
+
children: /* @__PURE__ */ Q(Yo, { size: 16 })
|
|
6500
6679
|
}), f ? /* @__PURE__ */ Q("div", {
|
|
6501
6680
|
class: "markup-thread-menu-list",
|
|
6502
6681
|
children: [o ? /* @__PURE__ */ Q("button", {
|
|
@@ -6536,7 +6715,7 @@ function uc({ thread: e, authorName: t, currentClientId: n, isVerified: r, isIde
|
|
|
6536
6715
|
await h(t._id, n), T({ type: "dismiss" });
|
|
6537
6716
|
} catch {}
|
|
6538
6717
|
},
|
|
6539
|
-
children: [/* @__PURE__ */ Q(
|
|
6718
|
+
children: [/* @__PURE__ */ Q(Ks, {
|
|
6540
6719
|
class: "markup-comment-edit-input",
|
|
6541
6720
|
label: "Edit comment",
|
|
6542
6721
|
value: w.draft,
|
|
@@ -6562,7 +6741,7 @@ function uc({ thread: e, authorName: t, currentClientId: n, isVerified: r, isIde
|
|
|
6562
6741
|
children: "Save"
|
|
6563
6742
|
})]
|
|
6564
6743
|
})]
|
|
6565
|
-
}) : /* @__PURE__ */ Q(
|
|
6744
|
+
}) : /* @__PURE__ */ Q(Us, {
|
|
6566
6745
|
body: t.body,
|
|
6567
6746
|
mentions: t.mentions
|
|
6568
6747
|
}),
|
|
@@ -6575,7 +6754,7 @@ function uc({ thread: e, authorName: t, currentClientId: n, isVerified: r, isIde
|
|
|
6575
6754
|
alt: "Screenshot"
|
|
6576
6755
|
})
|
|
6577
6756
|
}) : null,
|
|
6578
|
-
!l && t.reactions.length > 0 ? /* @__PURE__ */ Q(
|
|
6757
|
+
!l && t.reactions.length > 0 ? /* @__PURE__ */ Q(_c, {
|
|
6579
6758
|
comment: t,
|
|
6580
6759
|
isResolved: k,
|
|
6581
6760
|
onToggle: (e) => _(t._id, e)
|
|
@@ -6595,7 +6774,7 @@ function uc({ thread: e, authorName: t, currentClientId: n, isVerified: r, isIde
|
|
|
6595
6774
|
onClick: (e) => {
|
|
6596
6775
|
e.stopPropagation(), S.current?.close();
|
|
6597
6776
|
},
|
|
6598
|
-
children: /* @__PURE__ */ Q(
|
|
6777
|
+
children: /* @__PURE__ */ Q(qo, { size: 16 })
|
|
6599
6778
|
}), /* @__PURE__ */ Q("img", {
|
|
6600
6779
|
class: "markup-lightbox-img",
|
|
6601
6780
|
src: e.screenshotUrl,
|
|
@@ -6603,7 +6782,7 @@ function uc({ thread: e, authorName: t, currentClientId: n, isVerified: r, isIde
|
|
|
6603
6782
|
onClick: (e) => e.stopPropagation()
|
|
6604
6783
|
})]
|
|
6605
6784
|
}) : null,
|
|
6606
|
-
t == null ? /* @__PURE__ */ Q(
|
|
6785
|
+
t == null ? /* @__PURE__ */ Q(Ss, {
|
|
6607
6786
|
isPending: s,
|
|
6608
6787
|
isConnecting: i,
|
|
6609
6788
|
isSigningIn: a,
|
|
@@ -6625,7 +6804,7 @@ function uc({ thread: e, authorName: t, currentClientId: n, isVerified: r, isIde
|
|
|
6625
6804
|
children: "team"
|
|
6626
6805
|
}) : null
|
|
6627
6806
|
]
|
|
6628
|
-
}), /* @__PURE__ */ Q(
|
|
6807
|
+
}), /* @__PURE__ */ Q(Js, {
|
|
6629
6808
|
label: "Reply",
|
|
6630
6809
|
placeholder: "Write a reply…",
|
|
6631
6810
|
submitLabel: "Reply",
|
|
@@ -6639,7 +6818,7 @@ function uc({ thread: e, authorName: t, currentClientId: n, isVerified: r, isIde
|
|
|
6639
6818
|
]
|
|
6640
6819
|
});
|
|
6641
6820
|
}
|
|
6642
|
-
function
|
|
6821
|
+
function gc({ comment: e, pickerOpen: t, pickerDirection: n, pickerSide: r, pickerRef: i, onPickerClick: a, onPickerSelect: o }) {
|
|
6643
6822
|
return /* @__PURE__ */ Q("div", {
|
|
6644
6823
|
class: Z("markup-reaction-picker-wrap", t && "is-open", t && n === "up" && "is-up", r && "is-side"),
|
|
6645
6824
|
ref: i,
|
|
@@ -6649,11 +6828,11 @@ function dc({ comment: e, pickerOpen: t, pickerDirection: n, pickerSide: r, pick
|
|
|
6649
6828
|
title: "Add reaction",
|
|
6650
6829
|
"aria-label": "Add reaction",
|
|
6651
6830
|
onClick: a,
|
|
6652
|
-
children: /* @__PURE__ */ Q(
|
|
6831
|
+
children: /* @__PURE__ */ Q($o, { size: 16 })
|
|
6653
6832
|
}), t ? /* @__PURE__ */ Q("div", {
|
|
6654
6833
|
class: "markup-reaction-picker",
|
|
6655
6834
|
role: "menu",
|
|
6656
|
-
children:
|
|
6835
|
+
children: pc.map((t) => /* @__PURE__ */ Q("button", {
|
|
6657
6836
|
type: "button",
|
|
6658
6837
|
role: "menuitem",
|
|
6659
6838
|
class: Z("markup-reaction-picker-item", (e.reactions.find((e) => e.emoji === t)?.mine ?? !1) && "is-mine"),
|
|
@@ -6663,11 +6842,11 @@ function dc({ comment: e, pickerOpen: t, pickerDirection: n, pickerSide: r, pick
|
|
|
6663
6842
|
}) : null]
|
|
6664
6843
|
});
|
|
6665
6844
|
}
|
|
6666
|
-
function
|
|
6845
|
+
function _c({ comment: e, isResolved: t, onToggle: n }) {
|
|
6667
6846
|
return /* @__PURE__ */ Q("div", {
|
|
6668
6847
|
class: "markup-reactions",
|
|
6669
6848
|
children: e.reactions.map((e) => {
|
|
6670
|
-
let r =
|
|
6849
|
+
let r = vc(e.reactors, e.mine, e.count, e.emoji);
|
|
6671
6850
|
return /* @__PURE__ */ Q("button", {
|
|
6672
6851
|
type: "button",
|
|
6673
6852
|
class: Z("markup-reaction-chip", e.mine && "is-mine"),
|
|
@@ -6688,14 +6867,14 @@ function fc({ comment: e, isResolved: t, onToggle: n }) {
|
|
|
6688
6867
|
})
|
|
6689
6868
|
});
|
|
6690
6869
|
}
|
|
6691
|
-
function
|
|
6870
|
+
function vc(e, t, n, r) {
|
|
6692
6871
|
let i = e.slice(), a = i.length + +!!t, o = Math.max(0, n - a);
|
|
6693
6872
|
return o > 0 && i.push(`${o} other${o === 1 ? "" : "s"}`), t && i.push("you"), i.length === 0 ? `${n} reacted with ${r}` : `${i.length === 1 ? i[0] : `${i.slice(0, -1).join(", ")} and ${i[i.length - 1]}`} reacted with ${r}`;
|
|
6694
6873
|
}
|
|
6695
|
-
function
|
|
6874
|
+
function yc(e, t, n) {
|
|
6696
6875
|
return Math.max(t, Math.min(n, e));
|
|
6697
6876
|
}
|
|
6698
|
-
function
|
|
6877
|
+
function bc({ name: e, image: t, tone: n }) {
|
|
6699
6878
|
let [r, i] = B(null);
|
|
6700
6879
|
return /* @__PURE__ */ Q("span", {
|
|
6701
6880
|
class: "markup-comment-avatar",
|
|
@@ -6711,11 +6890,11 @@ function hc({ name: e, image: t, tone: n }) {
|
|
|
6711
6890
|
onError: () => i(t)
|
|
6712
6891
|
}) : /* @__PURE__ */ Q("span", {
|
|
6713
6892
|
class: "markup-avatar-initials",
|
|
6714
|
-
children:
|
|
6893
|
+
children: xc(e)
|
|
6715
6894
|
})
|
|
6716
6895
|
});
|
|
6717
6896
|
}
|
|
6718
|
-
function
|
|
6897
|
+
function xc(e) {
|
|
6719
6898
|
let t = e.trim();
|
|
6720
6899
|
if (!t) return "??";
|
|
6721
6900
|
let n = t.split(/\s+/).filter(Boolean), r = n[0] ?? "";
|
|
@@ -6723,12 +6902,12 @@ function gc(e) {
|
|
|
6723
6902
|
let i = n[n.length - 1] ?? "";
|
|
6724
6903
|
return ((r[0] ?? "") + (i[0] ?? "")).toUpperCase();
|
|
6725
6904
|
}
|
|
6726
|
-
function
|
|
6905
|
+
function Sc(e) {
|
|
6727
6906
|
let t = 0;
|
|
6728
6907
|
for (let n = 0; n < e.length; n++) t = t * 31 + e.charCodeAt(n) | 0;
|
|
6729
6908
|
return Math.abs(t) % 5 + 1;
|
|
6730
6909
|
}
|
|
6731
|
-
function
|
|
6910
|
+
function Cc(e) {
|
|
6732
6911
|
let t = Date.now() - e, n = Math.floor(t / 1e3);
|
|
6733
6912
|
if (n < 60) return "just now";
|
|
6734
6913
|
let r = Math.floor(n / 60);
|
|
@@ -6745,7 +6924,7 @@ function vc(e) {
|
|
|
6745
6924
|
year: "numeric"
|
|
6746
6925
|
});
|
|
6747
6926
|
}
|
|
6748
|
-
function
|
|
6927
|
+
function wc(e) {
|
|
6749
6928
|
return new Date(e).toLocaleDateString([], {
|
|
6750
6929
|
month: "long",
|
|
6751
6930
|
day: "numeric",
|
|
@@ -6756,7 +6935,7 @@ function yc(e) {
|
|
|
6756
6935
|
}
|
|
6757
6936
|
//#endregion
|
|
6758
6937
|
//#region src/runtime/ui/toolbar.tsx
|
|
6759
|
-
function
|
|
6938
|
+
function Tc({ isActive: e, onToggle: t, onHide: n, position: r = "bottom-right", unreadCount: i = 0, showInbox: a = !1, onOpenInbox: o, inboxOpen: s = !1, pinsVisible: c = !0, onTogglePins: l, identityButton: u, overflowButton: d }) {
|
|
6760
6939
|
let f = H(0);
|
|
6761
6940
|
i > 0 && (f.current = i);
|
|
6762
6941
|
let p = r === "bottom-left" ? "markup-toolbar-left" : r === "bottom-center" ? "markup-toolbar-center" : "markup-toolbar-right";
|
|
@@ -6780,7 +6959,7 @@ function bc({ isActive: e, onToggle: t, onHide: n, position: r = "bottom-right",
|
|
|
6780
6959
|
title: e ? "Cancel placing markup" : "Leave a markup",
|
|
6781
6960
|
"aria-pressed": e,
|
|
6782
6961
|
onClick: m,
|
|
6783
|
-
children: Q(e ?
|
|
6962
|
+
children: Q(e ? qo : es, { size: 16 })
|
|
6784
6963
|
}),
|
|
6785
6964
|
a ? /* @__PURE__ */ Q("button", {
|
|
6786
6965
|
type: "button",
|
|
@@ -6792,7 +6971,7 @@ function bc({ isActive: e, onToggle: t, onHide: n, position: r = "bottom-right",
|
|
|
6792
6971
|
onClick: (e) => {
|
|
6793
6972
|
e.preventDefault(), e.stopPropagation(), o?.();
|
|
6794
6973
|
},
|
|
6795
|
-
children: [/* @__PURE__ */ Q(
|
|
6974
|
+
children: [/* @__PURE__ */ Q(ts, { size: 16 }), /* @__PURE__ */ Q("span", {
|
|
6796
6975
|
class: "markup-tb-badge",
|
|
6797
6976
|
"data-unread": i > 0 ? "true" : "false",
|
|
6798
6977
|
"aria-hidden": "true",
|
|
@@ -6812,7 +6991,7 @@ function bc({ isActive: e, onToggle: t, onHide: n, position: r = "bottom-right",
|
|
|
6812
6991
|
onClick: (e) => {
|
|
6813
6992
|
e.preventDefault(), e.stopPropagation(), l();
|
|
6814
6993
|
},
|
|
6815
|
-
children: Q(c ?
|
|
6994
|
+
children: Q(c ? ns : rs, { size: 16 })
|
|
6816
6995
|
})] }) : null,
|
|
6817
6996
|
u || d ? /* @__PURE__ */ Q("div", {
|
|
6818
6997
|
class: "markup-tb-sep",
|
|
@@ -6826,19 +7005,19 @@ function bc({ isActive: e, onToggle: t, onHide: n, position: r = "bottom-right",
|
|
|
6826
7005
|
"data-kind": "overflow",
|
|
6827
7006
|
"aria-label": "More options",
|
|
6828
7007
|
disabled: !0,
|
|
6829
|
-
children: /* @__PURE__ */ Q(
|
|
7008
|
+
children: /* @__PURE__ */ Q(is, { size: 16 })
|
|
6830
7009
|
})
|
|
6831
7010
|
]
|
|
6832
7011
|
});
|
|
6833
7012
|
}
|
|
6834
7013
|
//#endregion
|
|
6835
7014
|
//#region src/runtime/ui/app.tsx
|
|
6836
|
-
function
|
|
7015
|
+
function Ec(e) {
|
|
6837
7016
|
let t = {
|
|
6838
7017
|
clientId: `markup_user_${e.identity.id}`,
|
|
6839
7018
|
name: e.identity.name,
|
|
6840
7019
|
email: e.identity.email,
|
|
6841
|
-
image: e.identity.image == null ? void 0 :
|
|
7020
|
+
image: e.identity.image == null ? void 0 : Vi(e.identity.image, location.href)?.href ?? void 0
|
|
6842
7021
|
};
|
|
6843
7022
|
if (e.mode === "cookies") return e.tokenExpiresAt == null || e.refreshTokenExpiresAt == null ? null : {
|
|
6844
7023
|
storage: "cookies",
|
|
@@ -6859,17 +7038,17 @@ function xc(e) {
|
|
|
6859
7038
|
} : {}
|
|
6860
7039
|
};
|
|
6861
7040
|
}
|
|
6862
|
-
function
|
|
7041
|
+
function Dc() {
|
|
6863
7042
|
let e = document.activeElement;
|
|
6864
7043
|
for (; e && e.shadowRoot && e.shadowRoot.activeElement;) e = e.shadowRoot.activeElement;
|
|
6865
7044
|
if (!e) return !1;
|
|
6866
7045
|
let t = e.tagName;
|
|
6867
7046
|
return t === "INPUT" || t === "TEXTAREA" || t === "SELECT" || e.isContentEditable;
|
|
6868
7047
|
}
|
|
6869
|
-
function
|
|
7048
|
+
function Oc() {
|
|
6870
7049
|
return window.location.host + window.location.pathname;
|
|
6871
7050
|
}
|
|
6872
|
-
var
|
|
7051
|
+
var kc = Ur({
|
|
6873
7052
|
visible: {
|
|
6874
7053
|
"hide-with-toast": () => ({ kind: "hidden-with-toast" }),
|
|
6875
7054
|
toggle: () => ({ kind: "hidden" })
|
|
@@ -6880,26 +7059,26 @@ var wc = Ur({
|
|
|
6880
7059
|
},
|
|
6881
7060
|
hidden: { toggle: () => ({ kind: "visible" }) }
|
|
6882
7061
|
});
|
|
6883
|
-
function
|
|
6884
|
-
return
|
|
7062
|
+
function Ac(e) {
|
|
7063
|
+
return qi(e), e;
|
|
6885
7064
|
}
|
|
6886
|
-
var
|
|
7065
|
+
var jc = Ur({
|
|
6887
7066
|
unresolved: {
|
|
6888
|
-
"mint-success": (e, t) =>
|
|
7067
|
+
"mint-success": (e, t) => Ac({
|
|
6889
7068
|
kind: "anon",
|
|
6890
7069
|
identity: t.identity
|
|
6891
7070
|
}),
|
|
6892
|
-
"signed-in": (e, t) =>
|
|
7071
|
+
"signed-in": (e, t) => Ac({
|
|
6893
7072
|
kind: "verified",
|
|
6894
7073
|
identity: t.identity
|
|
6895
7074
|
})
|
|
6896
7075
|
},
|
|
6897
7076
|
anon: {
|
|
6898
|
-
"signed-in": (e, t) =>
|
|
7077
|
+
"signed-in": (e, t) => Ac({
|
|
6899
7078
|
kind: "verified",
|
|
6900
7079
|
identity: t.identity
|
|
6901
7080
|
}),
|
|
6902
|
-
"author-set": (e, t) =>
|
|
7081
|
+
"author-set": (e, t) => Ac({
|
|
6903
7082
|
kind: "anon",
|
|
6904
7083
|
identity: {
|
|
6905
7084
|
...e.identity,
|
|
@@ -6907,49 +7086,49 @@ var Ec = Ur({
|
|
|
6907
7086
|
email: t.email
|
|
6908
7087
|
}
|
|
6909
7088
|
}),
|
|
6910
|
-
"forget-me": () =>
|
|
7089
|
+
"forget-me": () => Ac({ kind: "unresolved" })
|
|
6911
7090
|
},
|
|
6912
7091
|
verified: {
|
|
6913
|
-
"signed-in": (e, t) =>
|
|
7092
|
+
"signed-in": (e, t) => Ac({
|
|
6914
7093
|
kind: "verified",
|
|
6915
7094
|
identity: t.identity
|
|
6916
7095
|
}),
|
|
6917
|
-
unauthorized: (e) =>
|
|
7096
|
+
unauthorized: (e) => Ac({
|
|
6918
7097
|
kind: "recovering",
|
|
6919
7098
|
preserved: {
|
|
6920
7099
|
name: e.identity.name,
|
|
6921
7100
|
email: e.identity.email
|
|
6922
7101
|
}
|
|
6923
7102
|
}),
|
|
6924
|
-
"signed-out": () =>
|
|
7103
|
+
"signed-out": () => Ac({ kind: "unresolved" })
|
|
6925
7104
|
},
|
|
6926
7105
|
recovering: {
|
|
6927
|
-
"mint-success": (e, t) =>
|
|
7106
|
+
"mint-success": (e, t) => Ac({
|
|
6928
7107
|
kind: "anon",
|
|
6929
7108
|
identity: t.identity
|
|
6930
7109
|
}),
|
|
6931
|
-
"signed-in": (e, t) =>
|
|
7110
|
+
"signed-in": (e, t) => Ac({
|
|
6932
7111
|
kind: "verified",
|
|
6933
7112
|
identity: t.identity
|
|
6934
7113
|
})
|
|
6935
7114
|
}
|
|
6936
7115
|
});
|
|
6937
|
-
function
|
|
6938
|
-
let [a, o] = B(
|
|
7116
|
+
function Mc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r, dashboardUrl: i }) {
|
|
7117
|
+
let [a, o] = B(Oc), [s, c] = B([]), [l, u] = B(!1), d = it(() => Ki(), []), [f, p] = Wr(jc, d.state), [m, h] = B(null);
|
|
6939
7118
|
V(() => {
|
|
6940
7119
|
let n = !1;
|
|
6941
|
-
return
|
|
7120
|
+
return Mi(e, t).then((e) => {
|
|
6942
7121
|
n || h(e);
|
|
6943
7122
|
}), () => {
|
|
6944
7123
|
n = !0;
|
|
6945
7124
|
};
|
|
6946
7125
|
}, [e, t]);
|
|
6947
7126
|
let [g, _] = B(n), [v, y] = B(!0), [b, x] = B(!0), [S, C] = B(null), w = U(() => C(null), []), T = H(f);
|
|
6948
|
-
T.current = f,
|
|
7127
|
+
T.current = f, Uo(f, e, t, (e) => p({
|
|
6949
7128
|
type: "signed-in",
|
|
6950
7129
|
identity: e
|
|
6951
7130
|
}), () => p({ type: "unauthorized" }));
|
|
6952
|
-
let E = it(() =>
|
|
7131
|
+
let E = it(() => ki({
|
|
6953
7132
|
apiUrl: e,
|
|
6954
7133
|
apiKey: t,
|
|
6955
7134
|
getToken: () => {
|
|
@@ -6983,15 +7162,15 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
6983
7162
|
e = !0;
|
|
6984
7163
|
};
|
|
6985
7164
|
}, [E]);
|
|
6986
|
-
let [A, j] = B(0), [
|
|
6987
|
-
|
|
6988
|
-
|
|
7165
|
+
let [A, j] = B(0), [M, N] = B([]), [te, ne] = B(!1), [re, ie] = B(void 0), [ae, oe] = B(!1), se = U(() => {
|
|
7166
|
+
ne(!0), ie(void 0), E.listNotifications().then((e) => {
|
|
7167
|
+
N(e.notifications);
|
|
6989
7168
|
}).catch((e) => {
|
|
6990
|
-
|
|
7169
|
+
ie(e instanceof Error ? e.message : "Failed to load.");
|
|
6991
7170
|
}).finally(() => {
|
|
6992
|
-
|
|
7171
|
+
ne(!1);
|
|
6993
7172
|
});
|
|
6994
|
-
}, [E]),
|
|
7173
|
+
}, [E]), ce = Zr(), le = Zr(), ue = Zr(), de = Zr(), fe = Zr(), { run: P, reset: pe } = ce, { run: me } = le, { run: he, reset: F } = ue, { run: ge } = de, { run: _e } = fe, ve = fe.isPending, ye = ce.isPending, xe = ce.error ?? le.error ?? ue.error, [Se, Ce] = Wr(kc, { kind: "visible" }), we = Se.kind !== "visible", [Te, Ee] = B(0), De = H(null), Oe = Yi(f), ke = f.kind === "verified", Ae = f.kind === "unresolved" || f.kind === "recovering", je = Ji(f);
|
|
6995
7174
|
V(() => {
|
|
6996
7175
|
if (f.kind !== "unresolved" && f.kind !== "recovering") return;
|
|
6997
7176
|
let e = f.kind === "recovering" ? f.preserved : d.preserved, t = !1, n = null, r = 1e3;
|
|
@@ -7021,7 +7200,7 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7021
7200
|
p,
|
|
7022
7201
|
d
|
|
7023
7202
|
]);
|
|
7024
|
-
let I =
|
|
7203
|
+
let I = zo(E), [Me, Ne] = B(null);
|
|
7025
7204
|
V(() => {
|
|
7026
7205
|
let t = new Hr(e.replace(/\.convex\.site(\/.*)?$/, ".convex.cloud"));
|
|
7027
7206
|
return Ne(t), () => {
|
|
@@ -7030,7 +7209,7 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7030
7209
|
}, [e]);
|
|
7031
7210
|
let L = H(!1);
|
|
7032
7211
|
V(() => {
|
|
7033
|
-
if (!(!Me || !I)) return
|
|
7212
|
+
if (!(!Me || !I)) return pe(), F(), Me.onUpdate(Nn("widget/queries:subscribeThreadsForRoute"), {
|
|
7034
7213
|
subscriptionToken: I,
|
|
7035
7214
|
route: a,
|
|
7036
7215
|
viewerClientId: je
|
|
@@ -7042,8 +7221,8 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7042
7221
|
I,
|
|
7043
7222
|
a,
|
|
7044
7223
|
je,
|
|
7045
|
-
|
|
7046
|
-
|
|
7224
|
+
pe,
|
|
7225
|
+
F
|
|
7047
7226
|
]), V(() => {
|
|
7048
7227
|
if (f.kind !== "verified") {
|
|
7049
7228
|
j(0);
|
|
@@ -7067,7 +7246,7 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7067
7246
|
}), history.replaceState(null, "", window.location.pathname + window.location.search);
|
|
7068
7247
|
}
|
|
7069
7248
|
L.current = !0;
|
|
7070
|
-
}, [s, l]), V(() =>
|
|
7249
|
+
}, [s, l]), V(() => zi(() => o(Oc())), []), V(() => {
|
|
7071
7250
|
function e(e) {
|
|
7072
7251
|
e.key === "." && (e.metaKey || e.ctrlKey) && (e.altKey || e.shiftKey || (e.preventDefault(), Ce({ type: "toggle" })));
|
|
7073
7252
|
}
|
|
@@ -7092,11 +7271,11 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7092
7271
|
};
|
|
7093
7272
|
}, []);
|
|
7094
7273
|
let Pe = U(() => {
|
|
7095
|
-
|
|
7096
|
-
}, [
|
|
7274
|
+
pe(), F(), be("comment_started"), O({ kind: "placing" });
|
|
7275
|
+
}, [pe, F]);
|
|
7097
7276
|
V(() => {
|
|
7098
7277
|
function e(e) {
|
|
7099
|
-
e.key === "c" && (e.metaKey || e.ctrlKey || e.altKey || e.shiftKey || D.kind === "idle" && (we ||
|
|
7278
|
+
e.key === "c" && (e.metaKey || e.ctrlKey || e.altKey || e.shiftKey || D.kind === "idle" && (we || Dc() || (e.preventDefault(), Pe())));
|
|
7100
7279
|
}
|
|
7101
7280
|
return window.addEventListener("keydown", e), () => window.removeEventListener("keydown", e);
|
|
7102
7281
|
}, [
|
|
@@ -7105,8 +7284,8 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7105
7284
|
Pe
|
|
7106
7285
|
]);
|
|
7107
7286
|
let Fe = U(() => {
|
|
7108
|
-
O({ kind: "idle" }),
|
|
7109
|
-
}, [
|
|
7287
|
+
O({ kind: "idle" }), pe(), F();
|
|
7288
|
+
}, [pe, F]), Ie = H(0), Le = U((e, t, n) => {
|
|
7110
7289
|
let i = t + window.scrollX, a = n + window.scrollY, o = ++Ie.current;
|
|
7111
7290
|
if (r?.enabled === !1 || !b) {
|
|
7112
7291
|
O({
|
|
@@ -7139,7 +7318,7 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7139
7318
|
strictScrub: r?.strictScrub,
|
|
7140
7319
|
redactSelector: r?.redactSelector
|
|
7141
7320
|
};
|
|
7142
|
-
|
|
7321
|
+
Ao(s, {
|
|
7143
7322
|
x: t,
|
|
7144
7323
|
y: n
|
|
7145
7324
|
}, c).then((e) => {
|
|
@@ -7150,7 +7329,7 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7150
7329
|
screenshotFailed: e == null,
|
|
7151
7330
|
screenshotRedactedCount: e?.redactedCount ?? 0,
|
|
7152
7331
|
screenshotRedactedSelectors: e?.redactedSelectors ?? []
|
|
7153
|
-
}),
|
|
7332
|
+
}), be("screenshot_captured", { ok: e != null });
|
|
7154
7333
|
});
|
|
7155
7334
|
}, [r, b]), Re = U((e, t) => {
|
|
7156
7335
|
p({
|
|
@@ -7158,9 +7337,9 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7158
7337
|
name: e,
|
|
7159
7338
|
email: t
|
|
7160
7339
|
});
|
|
7161
|
-
}, [p]), ze =
|
|
7162
|
-
|
|
7163
|
-
let n =
|
|
7340
|
+
}, [p]), ze = le.isPending, Be = U(async () => {
|
|
7341
|
+
be("sign_in_started"), await me(async () => {
|
|
7342
|
+
let n = Ec(await ta({
|
|
7164
7343
|
apiUrl: e,
|
|
7165
7344
|
apiKey: t,
|
|
7166
7345
|
useCookies: m === !0
|
|
@@ -7169,18 +7348,18 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7169
7348
|
p({
|
|
7170
7349
|
type: "signed-in",
|
|
7171
7350
|
identity: n
|
|
7172
|
-
}),
|
|
7351
|
+
}), be("sign_in_completed");
|
|
7173
7352
|
});
|
|
7174
7353
|
}, [
|
|
7175
7354
|
e,
|
|
7176
7355
|
t,
|
|
7177
7356
|
m,
|
|
7178
|
-
|
|
7357
|
+
me,
|
|
7179
7358
|
p
|
|
7180
7359
|
]), Ve = U(async (e, t) => {
|
|
7181
7360
|
if (D.kind !== "composing-new") return;
|
|
7182
|
-
let n =
|
|
7183
|
-
n && await
|
|
7361
|
+
let n = Xi(f);
|
|
7362
|
+
n && await P(async () => {
|
|
7184
7363
|
let r;
|
|
7185
7364
|
if (t && D.screenshot) {
|
|
7186
7365
|
let { uploadUrl: e } = await E.getScreenshotUploadUrl(), t;
|
|
@@ -7215,7 +7394,7 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7215
7394
|
mentions: i.length > 0 ? i : void 0,
|
|
7216
7395
|
screenshotStorageId: r
|
|
7217
7396
|
});
|
|
7218
|
-
c((e) => [...e, o.thread]),
|
|
7397
|
+
c((e) => [...e, o.thread]), be("comment_submitted", {
|
|
7219
7398
|
hasScreenshot: r != null,
|
|
7220
7399
|
hasMentions: i.length > 0
|
|
7221
7400
|
}), O({
|
|
@@ -7228,30 +7407,30 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7228
7407
|
f,
|
|
7229
7408
|
D,
|
|
7230
7409
|
a,
|
|
7231
|
-
|
|
7410
|
+
P
|
|
7232
7411
|
]), He = U(async () => {
|
|
7233
7412
|
if (D.kind !== "thread") return;
|
|
7234
7413
|
let e = D.threadId;
|
|
7235
|
-
await
|
|
7414
|
+
await P(async () => {
|
|
7236
7415
|
await E.deleteThread(e), c((t) => t.filter((t) => t._id !== e)), O({ kind: "idle" });
|
|
7237
7416
|
});
|
|
7238
7417
|
}, [
|
|
7239
7418
|
E,
|
|
7240
7419
|
D,
|
|
7241
|
-
|
|
7420
|
+
P
|
|
7242
7421
|
]), Ue = U(async () => {
|
|
7243
7422
|
if (D.kind !== "thread") return;
|
|
7244
7423
|
let e = D.threadId;
|
|
7245
|
-
await
|
|
7246
|
-
await E.resolveThread(e, je), c((t) => t.filter((t) => t._id !== e)),
|
|
7424
|
+
await P(async () => {
|
|
7425
|
+
await E.resolveThread(e, je), c((t) => t.filter((t) => t._id !== e)), be("thread_resolved"), O({ kind: "idle" });
|
|
7247
7426
|
});
|
|
7248
7427
|
}, [
|
|
7249
7428
|
E,
|
|
7250
7429
|
D,
|
|
7251
7430
|
je,
|
|
7252
|
-
|
|
7431
|
+
P
|
|
7253
7432
|
]), We = U((e) => {
|
|
7254
|
-
if (e.readAt ?? (j((e) => Math.max(0, e - 1)),
|
|
7433
|
+
if (e.readAt ?? (j((e) => Math.max(0, e - 1)), N((t) => t.map((t) => t._id === e._id ? {
|
|
7255
7434
|
...t,
|
|
7256
7435
|
readAt: Date.now()
|
|
7257
7436
|
} : t)), E.markNotificationRead(e._id).catch(() => {})), s.some((t) => t._id === e.threadId)) O({
|
|
@@ -7259,37 +7438,37 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7259
7438
|
threadId: e.threadId
|
|
7260
7439
|
});
|
|
7261
7440
|
else {
|
|
7262
|
-
let t =
|
|
7441
|
+
let t = Vi(e.threadUrl, window.location.href);
|
|
7263
7442
|
t && (t.hash = `markup-thread=${e.threadId}`, window.location.href = t.toString());
|
|
7264
7443
|
}
|
|
7265
7444
|
}, [E, s]), R = U(() => {
|
|
7266
|
-
|
|
7445
|
+
oe(!0), j(0), N((e) => e.map((e) => e.readAt == null ? {
|
|
7267
7446
|
...e,
|
|
7268
7447
|
readAt: Date.now()
|
|
7269
|
-
} : e)), E.markAllNotificationsRead().catch(() => {}).finally(() =>
|
|
7448
|
+
} : e)), E.markAllNotificationsRead().catch(() => {}).finally(() => oe(!1));
|
|
7270
7449
|
}, [E]), Ge = U(async (e) => {
|
|
7271
7450
|
if (D.kind !== "thread") return;
|
|
7272
|
-
let t =
|
|
7451
|
+
let t = Xi(f);
|
|
7273
7452
|
if (!t) return;
|
|
7274
7453
|
let n = D.threadId;
|
|
7275
|
-
await
|
|
7454
|
+
await P(async () => {
|
|
7276
7455
|
let r = qr(e), i = await E.addComment(n, {
|
|
7277
7456
|
body: e,
|
|
7278
7457
|
authorName: t.name,
|
|
7279
7458
|
authorEmail: t.email,
|
|
7280
7459
|
mentions: r.length > 0 ? r : void 0
|
|
7281
7460
|
});
|
|
7282
|
-
c((e) => e.map((e) => e._id === n ? i.thread : e)),
|
|
7461
|
+
c((e) => e.map((e) => e._id === n ? i.thread : e)), be("reply_submitted", { hasMentions: r.length > 0 });
|
|
7283
7462
|
});
|
|
7284
7463
|
}, [
|
|
7285
7464
|
E,
|
|
7286
7465
|
f,
|
|
7287
7466
|
D,
|
|
7288
|
-
|
|
7467
|
+
P
|
|
7289
7468
|
]), Ke = U(async (e, t) => {
|
|
7290
7469
|
if (D.kind !== "thread" || f.kind !== "anon" && f.kind !== "verified") return;
|
|
7291
7470
|
let n = D.threadId;
|
|
7292
|
-
await
|
|
7471
|
+
await P(async () => {
|
|
7293
7472
|
let r = qr(t), i = await E.editComment(n, e, {
|
|
7294
7473
|
body: t,
|
|
7295
7474
|
mentions: r.length > 0 ? r : void 0
|
|
@@ -7300,11 +7479,11 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7300
7479
|
E,
|
|
7301
7480
|
f,
|
|
7302
7481
|
D,
|
|
7303
|
-
|
|
7482
|
+
P
|
|
7304
7483
|
]), qe = U(async (e) => {
|
|
7305
7484
|
if (D.kind !== "thread" || f.kind !== "anon" && f.kind !== "verified") return;
|
|
7306
7485
|
let t = D.threadId;
|
|
7307
|
-
await
|
|
7486
|
+
await P(async () => {
|
|
7308
7487
|
let n = await E.deleteComment(t, e);
|
|
7309
7488
|
c((e) => e.map((e) => e._id === t ? n.thread : e));
|
|
7310
7489
|
});
|
|
@@ -7312,32 +7491,32 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7312
7491
|
E,
|
|
7313
7492
|
f,
|
|
7314
7493
|
D,
|
|
7315
|
-
|
|
7494
|
+
P
|
|
7316
7495
|
]), Je = U(async (e, t) => {
|
|
7317
7496
|
if (D.kind !== "thread") return;
|
|
7318
|
-
let n =
|
|
7497
|
+
let n = Xi(f);
|
|
7319
7498
|
if (!n) return;
|
|
7320
7499
|
let r = D.threadId;
|
|
7321
|
-
await
|
|
7500
|
+
await he(async () => {
|
|
7322
7501
|
let i = await E.toggleReaction(e, {
|
|
7323
7502
|
emoji: t,
|
|
7324
7503
|
authorName: n.name
|
|
7325
7504
|
});
|
|
7326
|
-
c((e) => e.map((e) => e._id === r ? i.thread : e)),
|
|
7505
|
+
c((e) => e.map((e) => e._id === r ? i.thread : e)), be("reaction_added");
|
|
7327
7506
|
});
|
|
7328
7507
|
}, [
|
|
7329
7508
|
E,
|
|
7330
7509
|
f,
|
|
7331
7510
|
D,
|
|
7332
|
-
|
|
7511
|
+
he
|
|
7333
7512
|
]), [z, Ye] = B(!1), Xe = U(async () => {
|
|
7334
|
-
await
|
|
7513
|
+
await ge(async () => {
|
|
7335
7514
|
await E.forgetMe(), O({ kind: "idle" }), w(), p({ type: "forget-me" }), Ye(!0);
|
|
7336
7515
|
});
|
|
7337
7516
|
}, [
|
|
7338
7517
|
E,
|
|
7339
7518
|
w,
|
|
7340
|
-
|
|
7519
|
+
ge,
|
|
7341
7520
|
p
|
|
7342
7521
|
]);
|
|
7343
7522
|
V(() => {
|
|
@@ -7346,12 +7525,12 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7346
7525
|
return () => window.clearTimeout(e);
|
|
7347
7526
|
}, [z]);
|
|
7348
7527
|
let [Ze, Qe] = B(!1), $e = U(async () => {
|
|
7349
|
-
await
|
|
7528
|
+
await _e(async () => {
|
|
7350
7529
|
await E.signOut(), O({ kind: "idle" }), p({ type: "signed-out" }), Qe(!0);
|
|
7351
7530
|
});
|
|
7352
7531
|
}, [
|
|
7353
7532
|
E,
|
|
7354
|
-
|
|
7533
|
+
_e,
|
|
7355
7534
|
p
|
|
7356
7535
|
]);
|
|
7357
7536
|
V(() => {
|
|
@@ -7359,28 +7538,35 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7359
7538
|
let e = window.setTimeout(() => Qe(!1), 5e3);
|
|
7360
7539
|
return () => window.clearTimeout(e);
|
|
7361
7540
|
}, [Ze]);
|
|
7362
|
-
let et = D.kind === "thread" ? s.find((e) => e._id === D.threadId) ?? null : null, tt = ke || je != null && je === et?.authorClientId, nt =
|
|
7363
|
-
|
|
7364
|
-
|
|
7365
|
-
|
|
7366
|
-
|
|
7367
|
-
|
|
7368
|
-
|
|
7369
|
-
|
|
7370
|
-
|
|
7371
|
-
|
|
7541
|
+
let et = D.kind === "thread" ? s.find((e) => e._id === D.threadId) ?? null : null, tt = ke || je != null && je === et?.authorClientId, nt = H(/* @__PURE__ */ new Map()), rt = it(() => {
|
|
7542
|
+
let e = nt.current, t = s.map((t) => {
|
|
7543
|
+
let { point: n, memory: r } = bi({
|
|
7544
|
+
anchorX: t.anchorX,
|
|
7545
|
+
anchorY: t.anchorY,
|
|
7546
|
+
anchorSelector: t.anchorSelector,
|
|
7547
|
+
anchorOffsetX: t.anchorOffsetX,
|
|
7548
|
+
anchorOffsetY: t.anchorOffsetY
|
|
7549
|
+
}, e.get(t._id));
|
|
7550
|
+
return e.set(t._id, r), {
|
|
7551
|
+
thread: t,
|
|
7552
|
+
point: n
|
|
7553
|
+
};
|
|
7554
|
+
});
|
|
7555
|
+
for (let t of e.keys()) s.some((e) => e._id === t) || e.delete(t);
|
|
7556
|
+
return t;
|
|
7557
|
+
}, [s, Te]), at = H({
|
|
7372
7558
|
retryable: !1,
|
|
7373
7559
|
elements: []
|
|
7374
7560
|
});
|
|
7375
7561
|
V(() => {
|
|
7376
|
-
|
|
7377
|
-
retryable:
|
|
7378
|
-
elements:
|
|
7562
|
+
at.current = {
|
|
7563
|
+
retryable: rt.some((e) => !e.point.resolved && e.thread.anchorSelector != null),
|
|
7564
|
+
elements: rt.flatMap((e) => e.point.element ? [e.point.element] : [])
|
|
7379
7565
|
};
|
|
7380
|
-
}, [
|
|
7381
|
-
let
|
|
7566
|
+
}, [rt]);
|
|
7567
|
+
let ot = s.some((e) => e.anchorSelector != null);
|
|
7382
7568
|
return V(() => {
|
|
7383
|
-
if (!
|
|
7569
|
+
if (!ot) return;
|
|
7384
7570
|
let e = null;
|
|
7385
7571
|
function t() {
|
|
7386
7572
|
e ??= requestAnimationFrame(() => {
|
|
@@ -7388,7 +7574,7 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7388
7574
|
});
|
|
7389
7575
|
}
|
|
7390
7576
|
let n = new MutationObserver(() => {
|
|
7391
|
-
let { retryable: e, elements: n } =
|
|
7577
|
+
let { retryable: e, elements: n } = at.current;
|
|
7392
7578
|
!e && n.every((e) => e.isConnected) || t();
|
|
7393
7579
|
});
|
|
7394
7580
|
return n.observe(document.body, {
|
|
@@ -7397,7 +7583,7 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7397
7583
|
}), () => {
|
|
7398
7584
|
n.disconnect(), e != null && cancelAnimationFrame(e);
|
|
7399
7585
|
};
|
|
7400
|
-
}, [
|
|
7586
|
+
}, [ot]), V(() => {
|
|
7401
7587
|
D.kind === "thread" && et == null && Fe();
|
|
7402
7588
|
}, [
|
|
7403
7589
|
D,
|
|
@@ -7409,31 +7595,31 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7409
7595
|
children: [
|
|
7410
7596
|
D.kind === "placing" ? null : /* @__PURE__ */ Q("div", {
|
|
7411
7597
|
class: "markup-pins-layer",
|
|
7412
|
-
children: [!we && v ?
|
|
7598
|
+
children: [!we && v ? rt.map(({ thread: e, point: t }) => {
|
|
7413
7599
|
let n = D.kind === "thread" && D.threadId === e._id, r = e.comments.reduce((e, t) => e + +!t.deleted, 0);
|
|
7414
|
-
return /* @__PURE__ */ Q(
|
|
7600
|
+
return /* @__PURE__ */ Q(oc, {
|
|
7415
7601
|
pageX: t.pageX,
|
|
7416
7602
|
pageY: t.pageY,
|
|
7417
7603
|
count: r,
|
|
7418
7604
|
isActive: n,
|
|
7419
7605
|
isUnresolved: !t.resolved,
|
|
7420
7606
|
onClick: () => {
|
|
7421
|
-
|
|
7607
|
+
be("thread_opened", { commentCount: r }), O({
|
|
7422
7608
|
kind: "thread",
|
|
7423
7609
|
threadId: e._id
|
|
7424
7610
|
});
|
|
7425
7611
|
}
|
|
7426
7612
|
}, e._id);
|
|
7427
|
-
}) : null, D.kind === "composing-new" ? /* @__PURE__ */ Q(
|
|
7613
|
+
}) : null, D.kind === "composing-new" ? /* @__PURE__ */ Q(sc, {
|
|
7428
7614
|
pageX: D.pageX,
|
|
7429
7615
|
pageY: D.pageY
|
|
7430
7616
|
}) : null]
|
|
7431
7617
|
}),
|
|
7432
|
-
D.kind === "placing" ? /* @__PURE__ */ Q(
|
|
7618
|
+
D.kind === "placing" ? /* @__PURE__ */ Q(cc, {
|
|
7433
7619
|
onPlace: Le,
|
|
7434
7620
|
onCancel: Fe
|
|
7435
7621
|
}) : null,
|
|
7436
|
-
D.kind === "thread" && et ? /* @__PURE__ */ Q(
|
|
7622
|
+
D.kind === "thread" && et ? /* @__PURE__ */ Q(hc, {
|
|
7437
7623
|
thread: et,
|
|
7438
7624
|
authorName: Oe,
|
|
7439
7625
|
currentClientId: je ?? null,
|
|
@@ -7441,7 +7627,7 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7441
7627
|
isIdentityResolving: Ae,
|
|
7442
7628
|
isSigningIn: ze,
|
|
7443
7629
|
canDelete: tt,
|
|
7444
|
-
isPending:
|
|
7630
|
+
isPending: ye,
|
|
7445
7631
|
error: xe,
|
|
7446
7632
|
isHidden: we,
|
|
7447
7633
|
members: ee,
|
|
@@ -7455,14 +7641,14 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7455
7641
|
onDelete: He,
|
|
7456
7642
|
onResolve: Ue
|
|
7457
7643
|
}, et._id) : null,
|
|
7458
|
-
D.kind === "composing-new" ? /* @__PURE__ */ Q(
|
|
7644
|
+
D.kind === "composing-new" ? /* @__PURE__ */ Q(Xs, {
|
|
7459
7645
|
pageX: D.pageX,
|
|
7460
7646
|
pageY: D.pageY,
|
|
7461
7647
|
authorName: Oe,
|
|
7462
7648
|
isVerified: ke,
|
|
7463
7649
|
isIdentityResolving: Ae,
|
|
7464
7650
|
isSigningIn: ze,
|
|
7465
|
-
isPending:
|
|
7651
|
+
isPending: ye,
|
|
7466
7652
|
error: xe,
|
|
7467
7653
|
screenshot: D.screenshot,
|
|
7468
7654
|
isScreenshotCapturing: D.isScreenshotCapturing,
|
|
@@ -7475,7 +7661,7 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7475
7661
|
onSubmit: Ve,
|
|
7476
7662
|
onClose: Fe
|
|
7477
7663
|
}) : null,
|
|
7478
|
-
!we || D.kind === "placing" || D.kind === "composing-new" ? /* @__PURE__ */ Q(
|
|
7664
|
+
!we || D.kind === "placing" || D.kind === "composing-new" ? /* @__PURE__ */ Q(Tc, {
|
|
7479
7665
|
isActive: D.kind === "placing",
|
|
7480
7666
|
onToggle: () => D.kind === "placing" ? Fe() : Pe(),
|
|
7481
7667
|
onHide: () => Ce({ type: "hide-with-toast" }),
|
|
@@ -7485,21 +7671,21 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7485
7671
|
inboxOpen: S === "inbox",
|
|
7486
7672
|
onOpenInbox: () => {
|
|
7487
7673
|
let e = S === "inbox" ? null : "inbox";
|
|
7488
|
-
C(e), e && (
|
|
7674
|
+
C(e), e && (be("notifications_opened", { unreadCount: A }), se());
|
|
7489
7675
|
},
|
|
7490
7676
|
pinsVisible: v,
|
|
7491
7677
|
onTogglePins: () => y((e) => !e),
|
|
7492
|
-
identityButton: /* @__PURE__ */ Q(
|
|
7678
|
+
identityButton: /* @__PURE__ */ Q(hs, {
|
|
7493
7679
|
identity: f,
|
|
7494
7680
|
position: g,
|
|
7495
7681
|
isSigningIn: ze,
|
|
7496
|
-
isSigningOut:
|
|
7682
|
+
isSigningOut: ve,
|
|
7497
7683
|
dashboardUrl: i,
|
|
7498
7684
|
onSignIn: Be,
|
|
7499
7685
|
onSignOut: $e,
|
|
7500
7686
|
onForgetMe: Xe
|
|
7501
7687
|
}),
|
|
7502
|
-
overflowButton: /* @__PURE__ */ Q(
|
|
7688
|
+
overflowButton: /* @__PURE__ */ Q(tc, {
|
|
7503
7689
|
position: g,
|
|
7504
7690
|
onSetPosition: _,
|
|
7505
7691
|
autoCapture: b && r?.enabled !== !1,
|
|
@@ -7508,21 +7694,21 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7508
7694
|
onOpenPrivacy: () => C("privacy"),
|
|
7509
7695
|
onOpenShortcuts: () => C("shortcuts"),
|
|
7510
7696
|
onHideForSession: () => Ce({ type: "hide-with-toast" }),
|
|
7511
|
-
version: "1.
|
|
7697
|
+
version: "1.20.0",
|
|
7512
7698
|
dashboardUrl: i
|
|
7513
7699
|
})
|
|
7514
7700
|
}) : null,
|
|
7515
|
-
S === "inbox" && ke ? /* @__PURE__ */ Q(
|
|
7701
|
+
S === "inbox" && ke ? /* @__PURE__ */ Q(ac, {
|
|
7516
7702
|
kind: "inbox",
|
|
7517
7703
|
label: "Inbox",
|
|
7518
7704
|
position: g,
|
|
7519
7705
|
ignoreToolbarKind: "inbox",
|
|
7520
7706
|
onClose: w,
|
|
7521
|
-
children: /* @__PURE__ */ Q(
|
|
7522
|
-
items:
|
|
7523
|
-
isLoading:
|
|
7524
|
-
error:
|
|
7525
|
-
isMarkingAll:
|
|
7707
|
+
children: /* @__PURE__ */ Q(Qs, {
|
|
7708
|
+
items: M,
|
|
7709
|
+
isLoading: te,
|
|
7710
|
+
error: re,
|
|
7711
|
+
isMarkingAll: ae,
|
|
7526
7712
|
onBack: w,
|
|
7527
7713
|
onItemClick: (e) => {
|
|
7528
7714
|
w(), We(e);
|
|
@@ -7530,37 +7716,37 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7530
7716
|
onMarkAllRead: R
|
|
7531
7717
|
})
|
|
7532
7718
|
}) : null,
|
|
7533
|
-
S === "privacy" ? /* @__PURE__ */ Q(
|
|
7719
|
+
S === "privacy" ? /* @__PURE__ */ Q(ac, {
|
|
7534
7720
|
kind: "privacy",
|
|
7535
7721
|
label: "Privacy and data",
|
|
7536
7722
|
position: g,
|
|
7537
7723
|
onClose: w,
|
|
7538
|
-
children: /* @__PURE__ */ Q(
|
|
7724
|
+
children: /* @__PURE__ */ Q(uc, {
|
|
7539
7725
|
identity: f,
|
|
7540
7726
|
apiUrl: e,
|
|
7541
7727
|
autoCapture: b && r?.enabled !== !1,
|
|
7542
7728
|
autoCaptureLocked: r?.enabled === !1,
|
|
7543
|
-
isForgettingMe:
|
|
7544
|
-
forgetMeError:
|
|
7729
|
+
isForgettingMe: de.isPending,
|
|
7730
|
+
forgetMeError: de.error,
|
|
7545
7731
|
onForgetMe: Xe,
|
|
7546
7732
|
onClose: w
|
|
7547
7733
|
})
|
|
7548
7734
|
}) : null,
|
|
7549
|
-
S === "shortcuts" ? /* @__PURE__ */ Q(
|
|
7735
|
+
S === "shortcuts" ? /* @__PURE__ */ Q(ac, {
|
|
7550
7736
|
kind: "shortcuts",
|
|
7551
7737
|
label: "Keyboard shortcuts",
|
|
7552
7738
|
position: g,
|
|
7553
7739
|
onClose: w,
|
|
7554
|
-
children: /* @__PURE__ */ Q(
|
|
7740
|
+
children: /* @__PURE__ */ Q(fc, { onClose: w })
|
|
7555
7741
|
}) : null,
|
|
7556
|
-
Se.kind === "hidden-with-toast" ? /* @__PURE__ */ Q(
|
|
7557
|
-
z ? /* @__PURE__ */ Q(
|
|
7558
|
-
Ze ? /* @__PURE__ */ Q(
|
|
7742
|
+
Se.kind === "hidden-with-toast" ? /* @__PURE__ */ Q(Nc, { position: g }) : null,
|
|
7743
|
+
z ? /* @__PURE__ */ Q(Pc, { position: g }) : null,
|
|
7744
|
+
Ze ? /* @__PURE__ */ Q(Fc, { position: g }) : null
|
|
7559
7745
|
]
|
|
7560
7746
|
});
|
|
7561
7747
|
}
|
|
7562
|
-
function
|
|
7563
|
-
let { mod: t } =
|
|
7748
|
+
function Nc({ position: e }) {
|
|
7749
|
+
let { mod: t } = Wo();
|
|
7564
7750
|
return /* @__PURE__ */ Q("div", {
|
|
7565
7751
|
class: Z("markup-hud-hidden-toast", e === "bottom-left" ? "markup-hud-hidden-toast-left" : e === "bottom-center" ? "markup-hud-hidden-toast-center" : "markup-hud-hidden-toast-right"),
|
|
7566
7752
|
role: "status",
|
|
@@ -7579,7 +7765,7 @@ function Oc({ position: e }) {
|
|
|
7579
7765
|
]
|
|
7580
7766
|
});
|
|
7581
7767
|
}
|
|
7582
|
-
function
|
|
7768
|
+
function Pc({ position: e }) {
|
|
7583
7769
|
return /* @__PURE__ */ Q("div", {
|
|
7584
7770
|
class: Z("markup-hud-hidden-toast", e === "bottom-left" ? "markup-hud-hidden-toast-left" : e === "bottom-center" ? "markup-hud-hidden-toast-center" : "markup-hud-hidden-toast-right"),
|
|
7585
7771
|
role: "status",
|
|
@@ -7587,7 +7773,7 @@ function kc({ position: e }) {
|
|
|
7587
7773
|
children: "Forgotten on this site — your name and email were cleared."
|
|
7588
7774
|
});
|
|
7589
7775
|
}
|
|
7590
|
-
function
|
|
7776
|
+
function Fc({ position: e }) {
|
|
7591
7777
|
return /* @__PURE__ */ Q("div", {
|
|
7592
7778
|
class: Z("markup-hud-hidden-toast", e === "bottom-left" ? "markup-hud-hidden-toast-left" : e === "bottom-center" ? "markup-hud-hidden-toast-center" : "markup-hud-hidden-toast-right"),
|
|
7593
7779
|
role: "status",
|
|
@@ -7597,52 +7783,52 @@ function Ac({ position: e }) {
|
|
|
7597
7783
|
}
|
|
7598
7784
|
//#endregion
|
|
7599
7785
|
//#region src/runtime/mount.tsx
|
|
7600
|
-
function
|
|
7786
|
+
function Ic(e, t) {
|
|
7601
7787
|
e.style.position = "fixed", e.style.inset = "0", e.style.zIndex = "2147483647", e.style.pointerEvents = "none", Re(e, t.theme ?? "auto");
|
|
7602
7788
|
let n = Ue(), r = e.attachShadow({ mode: "open" }), i = document.createElement("style");
|
|
7603
|
-
i.textContent =
|
|
7789
|
+
i.textContent = de, r.appendChild(i);
|
|
7604
7790
|
let a = document.createElement("div");
|
|
7605
7791
|
a.className = "markup-shadow-root", r.appendChild(a), je({
|
|
7606
7792
|
apiUrl: t.apiUrl,
|
|
7607
7793
|
apiKey: t.apiKey,
|
|
7608
|
-
widgetVersion: "1.
|
|
7609
|
-
}),
|
|
7794
|
+
widgetVersion: "1.20.0"
|
|
7795
|
+
}), ye(t.analytics === !1 ? null : {
|
|
7610
7796
|
apiUrl: t.apiUrl,
|
|
7611
7797
|
apiKey: t.apiKey,
|
|
7612
|
-
widgetVersion: "1.
|
|
7613
|
-
}),
|
|
7798
|
+
widgetVersion: "1.20.0"
|
|
7799
|
+
}), be("widget_loaded");
|
|
7614
7800
|
let { theme: o, analytics: s, ...c } = t;
|
|
7615
|
-
return
|
|
7801
|
+
return ue(/* @__PURE__ */ Q(Ce, {
|
|
7616
7802
|
onError: (e) => I(e, { context: "render" }),
|
|
7617
|
-
children: /* @__PURE__ */ Q(
|
|
7803
|
+
children: /* @__PURE__ */ Q(Mc, { ...c })
|
|
7618
7804
|
}), a), () => {
|
|
7619
|
-
n(), je(null),
|
|
7805
|
+
n(), je(null), ye(null), ue(null, a);
|
|
7620
7806
|
};
|
|
7621
7807
|
}
|
|
7622
7808
|
//#endregion
|
|
7623
7809
|
//#region src/widget.ts
|
|
7624
|
-
var
|
|
7625
|
-
function
|
|
7810
|
+
var Lc = null, Rc = null, zc = null, Bc = !1;
|
|
7811
|
+
function Vc(e) {
|
|
7626
7812
|
if (!e.apiUrl || !e.apiKey) return console.warn("[markup] init() requires both apiUrl and apiKey, so the widget was not mounted"), () => {};
|
|
7627
|
-
e.fab != null && !
|
|
7813
|
+
e.fab != null && !Bc && (Bc = !0, console.warn("[markup] the `fab` option is ignored and will be removed in the next major. The toolbar replaced the floating action button. Remove it from your config.")), Hc();
|
|
7628
7814
|
let t = () => {
|
|
7629
|
-
if (
|
|
7815
|
+
if (zc = null, !document.body) return;
|
|
7630
7816
|
let t = document.createElement("div");
|
|
7631
|
-
t.id = "markup-widget", document.body.appendChild(t),
|
|
7817
|
+
t.id = "markup-widget", document.body.appendChild(t), Rc = t, Lc = Ic(t, e);
|
|
7632
7818
|
};
|
|
7633
7819
|
if (document.readyState === "loading" || !document.body) {
|
|
7634
7820
|
let e = () => t();
|
|
7635
|
-
|
|
7821
|
+
zc = () => document.removeEventListener("DOMContentLoaded", e), document.addEventListener("DOMContentLoaded", e, { once: !0 });
|
|
7636
7822
|
} else t();
|
|
7637
|
-
return
|
|
7823
|
+
return Hc;
|
|
7638
7824
|
}
|
|
7639
|
-
function
|
|
7640
|
-
|
|
7825
|
+
function Hc() {
|
|
7826
|
+
zc &&= (zc(), null), Lc &&= (Lc(), null), Rc?.parentNode && Rc.parentNode.removeChild(Rc), Rc = null;
|
|
7641
7827
|
}
|
|
7642
7828
|
if (typeof document < "u") {
|
|
7643
7829
|
let e = document.currentScript ?? document.querySelector("script[data-markup-widget=\"true\"]"), t = e?.dataset.apiUrl, n = e?.dataset.apiKey;
|
|
7644
7830
|
if (t && n) {
|
|
7645
|
-
let r = e?.dataset.position, i = e?.dataset.theme, a = e?.dataset.fab, o = e?.dataset.dashboardUrl, s = e?.dataset.analytics !== "false", c = () =>
|
|
7831
|
+
let r = e?.dataset.position, i = e?.dataset.theme, a = e?.dataset.fab, o = e?.dataset.dashboardUrl, s = e?.dataset.analytics !== "false", c = () => Vc({
|
|
7646
7832
|
apiUrl: t,
|
|
7647
7833
|
apiKey: n,
|
|
7648
7834
|
position: r,
|
|
@@ -7655,6 +7841,6 @@ if (typeof document < "u") {
|
|
|
7655
7841
|
}
|
|
7656
7842
|
}
|
|
7657
7843
|
//#endregion
|
|
7658
|
-
export {
|
|
7844
|
+
export { Hc as destroy, Vc as init };
|
|
7659
7845
|
|
|
7660
7846
|
//# sourceMappingURL=widget.js.map
|