@pixelmatters/markup 1.25.0 → 1.25.2
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 +744 -704
- package/dist/widget.js.map +1 -1
- package/package.json +6 -6
- package/skills/install-markup-widget/SKILL.md +4 -4
package/dist/widget.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//#region ../../node_modules/.pnpm/preact@10.29.
|
|
1
|
+
//#region ../../node_modules/.pnpm/preact@10.29.8/node_modules/preact/dist/preact.module.js
|
|
2
2
|
var e, t, n, r, i, a, o, s, c, l, u, d, f, p, m = {}, h = [], g = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i, _ = Array.isArray;
|
|
3
3
|
function v(e, t) {
|
|
4
4
|
for (var n in t) e[n] = t[n];
|
|
@@ -64,29 +64,29 @@ function O() {
|
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
function k(e, t, n, r, i, a, o, s, c, l, u) {
|
|
67
|
-
var d, f, p, g, _, v, y
|
|
68
|
-
for (c = A(n, t,
|
|
67
|
+
var d, f, p, g, _, v, y = r && r.__k || h, b = t.length;
|
|
68
|
+
for (c = A(n, t, y, c, b), d = 0; d < b; d++) (p = n.__k[d]) != null && (f = p.__i != -1 && y[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 && ae(f.ref, null, p), u.push(p.ref, p.__c || g, p)), _ == null && g != null && (_ = g), 4 & p.__u ? (c = j(p, c, e), 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 A(e, t, n, r, i) {
|
|
72
72
|
var a, o, s, c, l, u = n.length, d = u, f = 0;
|
|
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 =
|
|
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 = ee(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
74
|
if (d) for (a = 0; a < u; a++) (s = n[a]) != null && !(2 & s.__u) && (s.__e == r && (r = w(s)), oe(s, s));
|
|
75
75
|
return r;
|
|
76
76
|
}
|
|
77
|
-
function j(e, t, n
|
|
78
|
-
var
|
|
77
|
+
function j(e, t, n) {
|
|
78
|
+
var r, i;
|
|
79
79
|
if (typeof e.type == "function") {
|
|
80
|
-
for (
|
|
80
|
+
for (r = e.__k, i = 0; r && i < r.length; i++) r[i] && (r[i].__ = e, t = j(r[i], t, n));
|
|
81
81
|
return t;
|
|
82
82
|
}
|
|
83
|
-
e.__e != t && (
|
|
83
|
+
e.__e != t && (t && e.type && !t.parentNode && (t = w(e)), t = n.insertBefore(e.__e, t || null));
|
|
84
84
|
do
|
|
85
85
|
t &&= t.nextSibling;
|
|
86
86
|
while (t != null && t.nodeType == 8);
|
|
87
87
|
return t;
|
|
88
88
|
}
|
|
89
|
-
function
|
|
89
|
+
function ee(e, t, n, r) {
|
|
90
90
|
var i, a, o, s = e.key, c = e.type, l = t[n], u = l != null && !(2 & l.__u);
|
|
91
91
|
if (l === null && s == null || u && s == l.key && c == l.type) return n;
|
|
92
92
|
if (r > +!!u) {
|
|
@@ -94,17 +94,18 @@ function M(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 te(e, t, n, r, i) {
|
|
101
101
|
var a, o;
|
|
102
|
-
n: if (t == "style")
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
102
|
+
n: if (t == "style") {
|
|
103
|
+
if (typeof n == "string") e.style.cssText = n;
|
|
104
|
+
else {
|
|
105
|
+
if (typeof r == "string" && (e.style.cssText = r = ""), r) for (t in r) n && t in n || M(e.style, t, "");
|
|
106
|
+
if (n) for (t in n) r && n[t] == r[t] || M(e.style, t, n[t]);
|
|
107
|
+
}
|
|
108
|
+
} 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
109
|
else {
|
|
109
110
|
if (i == "http://www.w3.org/2000/svg") t = t.replace(/xlink(H|:h)/, "h").replace(/sName$/, "s");
|
|
110
111
|
else if (t != "width" && t != "height" && t != "href" && t != "list" && t != "form" && t != "tabIndex" && t != "download" && t != "rowSpan" && t != "colSpan" && t != "role" && t != "popover" && t in e) try {
|
|
@@ -114,7 +115,7 @@ function N(e, t, n, r, i) {
|
|
|
114
115
|
typeof n == "function" || (n == null || !1 === n && t[4] != "-" ? e.removeAttribute(t) : e.setAttribute(t, t == "popover" && n == 1 ? "" : n));
|
|
115
116
|
}
|
|
116
117
|
}
|
|
117
|
-
function
|
|
118
|
+
function N(e) {
|
|
118
119
|
return function(n) {
|
|
119
120
|
if (this.l) {
|
|
120
121
|
var r = this.l[n.type + e];
|
|
@@ -125,35 +126,35 @@ function te(e) {
|
|
|
125
126
|
};
|
|
126
127
|
}
|
|
127
128
|
function ne(e, n, r, i, a, o, s, c, l, u) {
|
|
128
|
-
var d, f, p, m, g, b, x,
|
|
129
|
+
var d, f, p, m, g, b, x, T, E, D, O, A, j, ee, M, te, N = n.type;
|
|
129
130
|
if (n.constructor !== void 0) return null;
|
|
130
131
|
128 & r.__u && (l = !!(32 & r.__u), o = [c = n.__e = r.__e]), (d = t.__b) && d(n);
|
|
131
132
|
n: if (typeof N == "function") {
|
|
132
133
|
f = s.length;
|
|
133
134
|
try {
|
|
134
|
-
if (
|
|
135
|
+
if (E = n.props, D = N.prototype && N.prototype.render, O = (d = N.contextType) && i[d.__c], A = d ? O ? O.props.value : d.__ : i, r.__c ? T = (p = n.__c = r.__c).__ = p.__E : (D ? n.__c = p = new N(E, A) : (n.__c = p = new C(E, A), p.constructor = N, p.render = se), O && O.sub(p), p.state || (p.state = {}), p.__n = i, m = p.__d = !0, p.__h = [], p._sb = []), D && p.__s == null && (p.__s = p.state), D && N.getDerivedStateFromProps != null && (p.__s == p.state && (p.__s = v({}, p.__s)), v(p.__s, N.getDerivedStateFromProps(E, p.__s))), g = p.props, b = p.state, p.__v = n, m) D && N.getDerivedStateFromProps == null && p.componentWillMount != null && p.componentWillMount(), D && p.componentDidMount != null && p.__h.push(p.componentDidMount);
|
|
135
136
|
else {
|
|
136
|
-
if (
|
|
137
|
-
n.__v != r.__v && (p.props =
|
|
137
|
+
if (D && N.getDerivedStateFromProps == null && E !== g && p.componentWillReceiveProps != null && p.componentWillReceiveProps(E, A), n.__v == r.__v || !p.__e && p.shouldComponentUpdate != null && !1 === p.shouldComponentUpdate(E, p.__s, A)) {
|
|
138
|
+
n.__v != r.__v && (p.props = E, p.state = p.__s, p.__d = !1), n.__e = r.__e, n.__k = r.__k, n.__k.some(function(e) {
|
|
138
139
|
e && (e.__ = n);
|
|
139
|
-
}), h.push.apply(p.__h, p._sb), p._sb = [], p.__h.length && s.push(p);
|
|
140
|
+
}), h.push.apply(p.__h, p._sb), p._sb = [], p.__h.length && s.push(p), c = w(r);
|
|
140
141
|
break n;
|
|
141
142
|
}
|
|
142
|
-
p.componentWillUpdate != null && p.componentWillUpdate(
|
|
143
|
+
p.componentWillUpdate != null && p.componentWillUpdate(E, p.__s, A), D && p.componentDidUpdate != null && p.__h.push(function() {
|
|
143
144
|
p.componentDidUpdate(g, b, x);
|
|
144
145
|
});
|
|
145
146
|
}
|
|
146
|
-
if (p.context =
|
|
147
|
+
if (p.context = A, p.props = E, p.__P = e, p.__e = !1, j = t.__r, ee = 0, D) p.state = p.__s, p.__d = !1, j && j(n), d = p.render(p.props, p.state, p.context), h.push.apply(p.__h, p._sb), p._sb = [];
|
|
147
148
|
else do
|
|
148
|
-
p.__d = !1,
|
|
149
|
-
while (p.__d && ++
|
|
150
|
-
p.state = p.__s, p.getChildContext != null && (i = v(v({}, i), p.getChildContext())),
|
|
149
|
+
p.__d = !1, j && j(n), d = p.render(p.props, p.state, p.context), p.state = p.__s;
|
|
150
|
+
while (p.__d && ++ee < 25);
|
|
151
|
+
p.state = p.__s, p.getChildContext != null && (i = v(v({}, i), p.getChildContext())), D && !m && p.getSnapshotBeforeUpdate != null && (x = p.getSnapshotBeforeUpdate(g, b)), M = d != null && d.type === S && d.key == null ? re(d.props.children) : d, c = k(e, _(M) ? M : [M], n, r, i, a, o, s, c, l, u), p.base = n.__e, n.__u &= -161, p.__h.length && s.push(p), T && (p.__E = p.__ = null);
|
|
151
152
|
} catch (e) {
|
|
152
153
|
if (s.length = f, n.__v = null, l || o != null) {
|
|
153
154
|
if (e.then) {
|
|
154
155
|
for (n.__u |= l ? 160 : 128; c && c.nodeType == 8 && c.nextSibling;) c = c.nextSibling;
|
|
155
156
|
o != null && (o[o.indexOf(c)] = null), n.__e = c;
|
|
156
|
-
} else if (o != null) for (
|
|
157
|
+
} else if (o != null) for (te = o.length; te--;) y(o[te]);
|
|
157
158
|
} else n.__e = r.__e;
|
|
158
159
|
n.__k ??= r.__k || [], e.then || P(n), t.__e(e, n, r);
|
|
159
160
|
}
|
|
@@ -193,11 +194,11 @@ function ie(n, r, i, a, o, s, c, l, u) {
|
|
|
193
194
|
if (C == null) x === S || l && n.data == S || (n.data = S);
|
|
194
195
|
else {
|
|
195
196
|
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 ||
|
|
197
|
+
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 || te(n, d, null, g, o);
|
|
198
|
+
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 || te(n, d, g, x[d], o);
|
|
198
199
|
if (f) l || p && (f.__html == p.__html || f.__html == n.innerHTML) || (n.innerHTML = f.__html), r.__k = [];
|
|
199
200
|
else if (p && (n.innerHTML = ""), k(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]) &&
|
|
201
|
+
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]) && te(n, d, v, x[d], o), d = "checked", b != null && b != n[d] && te(n, d, b, x[d], o));
|
|
201
202
|
}
|
|
202
203
|
return n;
|
|
203
204
|
}
|
|
@@ -245,49 +246,49 @@ e = h.slice, t = { __e: function(e, t, n, r) {
|
|
|
245
246
|
this.__v && (this.__e = !0, e && this.__h.push(e), D(this));
|
|
246
247
|
}, C.prototype.render = S, r = [], a = typeof Promise == "function" ? Promise.prototype.then.bind(Promise.resolve()) : setTimeout, o = function(e, t) {
|
|
247
248
|
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 =
|
|
249
|
+
}, O.__r = 0, s = Math.random().toString(8), c = "__d" + s, l = "__a" + s, u = /(PointerCapture)$|Capture$/i, d = 0, f = N(!1), p = N(!0);
|
|
249
250
|
//#endregion
|
|
250
251
|
//#region src/styles.css?inline
|
|
251
|
-
var le = ":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-popover-w:360px;--markup-pin-enter:.18s;--markup-menu-in:.12s;--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);transform-origin:50% 100%;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);animation:.22s cubic-bezier(.2,.7,.2,1) backwards markup-toolbar-in;display:inline-flex;position:fixed;bottom:22px;left:100%;transform:translate(calc(-100% - 22px))}.markup-toolbar.is-leaving,.markup-toolbar.is-leaving>*{pointer-events:none}.markup-toolbar.is-leaving{animation-name:markup-toolbar-out;animation-duration:var(--markup-toolbar-leave);animation-timing-function:ease-in;animation-fill-mode:forwards}@keyframes markup-toolbar-in{0%{opacity:0;translate:0 10px;scale:.96}to{opacity:1;translate:0;scale:1}}@keyframes markup-toolbar-out{0%{opacity:1;translate:0;scale:1}to{opacity:0;translate:0 6px;scale:.97}}.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]{--markup-view-w:260px;--markup-view-fit:min(var(--markup-view-w), calc(100vw - 24px));width:var(--markup-view-fit);align-items:flex-end;transition:width .16s cubic-bezier(.2,.7,.2,1),height .16s cubic-bezier(.2,.7,.2,1);display:flex}.markup-pop[data-pop=overflow]>*{width:var(--markup-view-fit);flex:none}.markup-pop[data-pop=overflow].is-anchor-right{justify-content:flex-end}.markup-pop[data-pop=overflow].is-anchor-center{justify-content:center}.markup-pop[data-pop=overflow]:focus{outline:none}.markup-pop[data-pop=overflow][data-view=privacy]{--markup-view-w:340px}.markup-pop[data-pop=overflow][data-view=shortcuts]{--markup-view-w:320px}.markup-menu-view{padding:6px;display:block}.markup-pop[data-pop=identity]{width:240px;padding:6px}.markup-pop[data-pop=inbox]{width:var(--markup-popover-w);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.is-leaving{pointer-events:none;animation-name:markup-pop-out;animation-duration:var(--markup-pop-leave);animation-timing-function:ease-in;animation-fill-mode:forwards}.markup-pop.is-anchor-center.is-leaving{animation-name:markup-pop-out-center}@keyframes markup-pop-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(6px)}}@keyframes markup-pop-out-center{0%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,6px)}}.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.no-underline{text-decoration:none}.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);align-items:center;margin-left:auto;font-size:10.5px;display:inline-flex}.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:10px;margin-top:6px;padding:14px 10px 8px;font-size:11px;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;display:inline-flex;position:fixed;bottom:24px}.markup-hud-hidden-toast.is-leaving{animation-name:markup-hud-hidden-out;animation-duration:var(--markup-toast-leave);animation-timing-function:ease-in;animation-fill-mode:forwards}.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;opacity:var(--markup-pin-opacity,1);transform-origin:0 100%;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.is-entering{animation:markup-pin-in var(--markup-pin-enter) cubic-bezier(.2, .7, .2, 1) backwards}.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-leaving{pointer-events:none;animation-name:markup-pin-out;animation-duration:var(--markup-pin-leave);animation-timing-function:ease-in;animation-iteration-count:1;animation-fill-mode:forwards}.markup-pin-ghost.is-leaving{animation-duration:var(--markup-popover-leave)}@keyframes markup-pin-in{0%{opacity:0;transform:translate(-50%,-100%)scale(.5)}to{opacity:var(--markup-pin-opacity,1);transform:translate(-50%,-100%)scale(1)}}@keyframes markup-pin-out{0%{opacity:var(--markup-pin-opacity,1);transform:translate(-50%,-100%)scale(1)}to{opacity:0;transform:translate(-50%,-100%)scale(.7)}}.markup-pin.is-unresolved{--markup-pin-opacity:.6}.markup-pin.is-closed,.markup-pin.is-closed.is-active{background:var(--markup-paper);color:var(--markup-muted);border-color:var(--markup-muted);box-shadow:0 4px 14px -4px #00000040}.markup-pin.is-closed:hover{background:var(--markup-paper);color:var(--markup-ink)}.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:var(--markup-popover-w);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}}@supports (transition-behavior:allow-discrete) and selector(:popover-open){.markup-popover{opacity:0;transition:opacity var(--markup-popover-leave) ease, transform var(--markup-popover-leave) ease, overlay var(--markup-popover-leave) allow-discrete, display var(--markup-popover-leave) allow-discrete;animation:none;display:none;transform:translateY(-4px)scale(.98)}.markup-popover:popover-open{opacity:1;display:flex;transform:translateY(0)scale(1)}@starting-style{.markup-popover:popover-open{opacity:0;transform:translateY(-4px)scale(.98)}}.markup-popover:not(:popover-open){pointer-events:none}}.markup-popover.is-leaving{pointer-events:none}.markup-popover.is-hud-hidden{transition-property:none;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);animation:markup-menu-in var(--markup-menu-in) ease-out;padding:4px;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:translate(var(--markup-menu-from-x,0), var(--markup-menu-from-y,-4px))}to{opacity:1;transform:translate(0)}}@keyframes markup-menu-out{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(var(--markup-menu-from-x,0), var(--markup-menu-from-y,-4px))}}.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-link{color:var(--markup-brand);text-underline-offset:2px;text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--markup-brand) 40%, transparent);text-decoration-color:color-mix(in srgb, var(--markup-brand) 40%, transparent)}.markup-comment-link:hover{-webkit-text-decoration-color:var(--markup-brand);text-decoration-color:var(--markup-brand)}.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{--markup-menu-from-y:4px;top:auto;bottom:calc(100% + 6px)}.markup-comment-menu.is-side .markup-thread-menu-list{--markup-menu-from-x:4px;--markup-menu-from-y:0;top:-4px;right:calc(100% + 2px)}.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);animation:markup-menu-in var(--markup-menu-in) ease;border-radius:8px;gap:2px;padding:4px;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{--markup-menu-from-y:4px;top:auto;bottom:calc(100% + 6px)}.markup-reaction-picker-wrap.is-side .markup-reaction-picker{--markup-menu-from-x:4px;--markup-menu-from-y:0;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-author-copy{color:var(--markup-fg);margin:0;font-size:13px;line-height:1.5}.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);animation:markup-menu-in var(--markup-menu-in) ease-out;flex-direction:column;justify-content:center;gap:4px;padding:16px;display:flex;position:absolute;inset:0}.markup-thread-menu-list.is-leaving,.markup-reaction-picker.is-leaving,.markup-discard-confirm.is-leaving{pointer-events:none;animation-name:markup-menu-out;animation-duration:var(--markup-menu-leave);animation-timing-function:ease-in;animation-fill-mode:forwards}.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}@supports (transition-behavior:allow-discrete){.markup-lightbox{opacity:0;transition:opacity var(--markup-lightbox-leave) ease, overlay var(--markup-lightbox-leave) allow-discrete, display var(--markup-lightbox-leave) allow-discrete}.markup-lightbox[open]{opacity:1}@starting-style{.markup-lightbox[open]{opacity:0}}}.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-toolbar.is-leaving,.markup-hud-hidden-toast,.markup-hud-hidden-toast.is-leaving,.markup-tb-btn,.markup-tb-badge,.markup-comment,.markup-pin,.markup-pin.is-entering,.markup-pin.is-leaving,.markup-pop,.markup-pop.is-leaving,.markup-pop[data-pop=overflow],.markup-pop.is-anchor-center,.markup-pop.is-anchor-center.is-leaving,.markup-thread-menu-list,.markup-thread-menu-list.is-leaving,.markup-reaction-picker,.markup-reaction-picker.is-leaving,.markup-discard-confirm,.markup-discard-confirm.is-leaving,.markup-icon-btn,.markup-btn,.markup-popover,.markup-pin-ghost,.markup-placement-overlay,.markup-placement-cursor-help,.markup-lightbox,.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;box-sizing:border-box;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;padding:4px;list-style:none;position:fixed;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:var(--markup-popover-w);max-width:calc(100vw - 24px);position:fixed;bottom:76px}.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%;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-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-back{color:var(--markup-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;align-items:center;gap:2px;margin-left:-4px;padding:3px 6px 3px 4px;font-family:inherit;font-size:12px;display:inline-flex}.markup-panel-back:hover{background:var(--markup-hover);color:var(--markup-ink)}.markup-panel-body{flex:1;padding:4px 14px 14px;overflow-y:auto}.markup-panel-body:focus{outline:none}.markup-panel-body:focus-visible{box-shadow:inset 0 0 0 2px var(--markup-accent-glow);outline:none}.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}", ue = 1e4, de = 20, fe = 60, pe = null, me = [], he = null, ge = !1, _e = ve();
|
|
252
|
-
function
|
|
252
|
+
var le = ":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-popover-w:360px;--markup-pin-enter:.18s;--markup-menu-in:.12s;--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);transform-origin:50% 100%;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);animation:.22s cubic-bezier(.2,.7,.2,1) backwards markup-toolbar-in;display:inline-flex;position:fixed;bottom:22px;left:100%;transform:translate(calc(-100% - 22px))}.markup-toolbar.is-leaving,.markup-toolbar.is-leaving>*{pointer-events:none}.markup-toolbar.is-leaving{animation-name:markup-toolbar-out;animation-duration:var(--markup-toolbar-leave);animation-timing-function:ease-in;animation-fill-mode:forwards}@keyframes markup-toolbar-in{0%{opacity:0;translate:0 10px;scale:.96}to{opacity:1;translate:0;scale:1}}@keyframes markup-toolbar-out{0%{opacity:1;translate:0;scale:1}to{opacity:0;translate:0 6px;scale:.97}}.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]{--markup-view-w:260px;--markup-view-fit:min(var(--markup-view-w), calc(100vw - 24px));width:var(--markup-view-fit);align-items:flex-end;transition:width .16s cubic-bezier(.2,.7,.2,1),height .16s cubic-bezier(.2,.7,.2,1);display:flex}.markup-pop[data-pop=overflow]>*{width:var(--markup-view-fit);flex:none}.markup-pop[data-pop=overflow].is-anchor-right{justify-content:flex-end}.markup-pop[data-pop=overflow].is-anchor-center{justify-content:center}.markup-pop[data-pop=overflow]:focus{outline:none}.markup-pop[data-pop=overflow][data-view=privacy]{--markup-view-w:340px}.markup-pop[data-pop=overflow][data-view=shortcuts]{--markup-view-w:320px}.markup-menu-view{padding:6px;display:block}.markup-pop[data-pop=identity]{width:240px;padding:6px}.markup-pop[data-pop=inbox]{width:var(--markup-popover-w);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.is-leaving{pointer-events:none;animation-name:markup-pop-out;animation-duration:var(--markup-pop-leave);animation-timing-function:ease-in;animation-fill-mode:forwards}.markup-pop.is-anchor-center.is-leaving{animation-name:markup-pop-out-center}@keyframes markup-pop-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(6px)}}@keyframes markup-pop-out-center{0%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,6px)}}.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.no-underline{text-decoration:none}.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);align-items:center;margin-left:auto;font-size:10.5px;display:inline-flex}.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:10px;margin-top:6px;padding:14px 10px 8px;font-size:11px;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;display:inline-flex;position:fixed;bottom:24px}.markup-hud-hidden-toast.is-leaving{animation-name:markup-hud-hidden-out;animation-duration:var(--markup-toast-leave);animation-timing-function:ease-in;animation-fill-mode:forwards}.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;opacity:var(--markup-pin-opacity,1);transform-origin:0 100%;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.is-entering{animation:markup-pin-in var(--markup-pin-enter) cubic-bezier(.2, .7, .2, 1) backwards}.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-leaving{pointer-events:none;animation-name:markup-pin-out;animation-duration:var(--markup-pin-leave);animation-timing-function:ease-in;animation-iteration-count:1;animation-fill-mode:forwards}.markup-pin-ghost.is-leaving{animation-duration:var(--markup-popover-leave)}@keyframes markup-pin-in{0%{opacity:0;transform:translate(-50%,-100%)scale(.5)}to{opacity:var(--markup-pin-opacity,1);transform:translate(-50%,-100%)scale(1)}}@keyframes markup-pin-out{0%{opacity:var(--markup-pin-opacity,1);transform:translate(-50%,-100%)scale(1)}to{opacity:0;transform:translate(-50%,-100%)scale(.7)}}.markup-pin.is-unresolved{--markup-pin-opacity:.6}.markup-pin.is-closed,.markup-pin.is-closed.is-active{background:var(--markup-paper);color:var(--markup-muted);border-color:var(--markup-muted);box-shadow:0 4px 14px -4px #00000040}.markup-pin.is-closed:hover{background:var(--markup-paper);color:var(--markup-ink)}.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:var(--markup-popover-w);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}}@supports (transition-behavior:allow-discrete) and selector(:popover-open){.markup-popover{opacity:0;transition:opacity var(--markup-popover-leave) ease, transform var(--markup-popover-leave) ease, overlay var(--markup-popover-leave) allow-discrete, display var(--markup-popover-leave) allow-discrete;animation:none;display:none;transform:translateY(-4px)scale(.98)}.markup-popover:popover-open{opacity:1;display:flex;transform:translateY(0)scale(1)}@starting-style{.markup-popover:popover-open{opacity:0;transform:translateY(-4px)scale(.98)}}.markup-popover:not(:popover-open){pointer-events:none}}.markup-popover.is-leaving{pointer-events:none}.markup-popover.is-hud-hidden{transition-property:none;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);animation:markup-menu-in var(--markup-menu-in) ease-out;padding:4px;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:translate(var(--markup-menu-from-x,0), var(--markup-menu-from-y,-4px))}to{opacity:1;transform:translate(0)}}@keyframes markup-menu-out{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(var(--markup-menu-from-x,0), var(--markup-menu-from-y,-4px))}}.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-link{color:var(--markup-brand);text-underline-offset:2px;text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--markup-brand) 40%, transparent);text-decoration-color:color-mix(in srgb, var(--markup-brand) 40%, transparent)}.markup-comment-link:hover{-webkit-text-decoration-color:var(--markup-brand);text-decoration-color:var(--markup-brand)}.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{--markup-menu-from-y:4px;top:auto;bottom:calc(100% + 6px)}.markup-comment-menu.is-side .markup-thread-menu-list{--markup-menu-from-x:4px;--markup-menu-from-y:0;top:-4px;right:calc(100% + 2px)}.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);animation:markup-menu-in var(--markup-menu-in) ease;border-radius:8px;gap:2px;padding:4px;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{--markup-menu-from-y:4px;top:auto;bottom:calc(100% + 6px)}.markup-reaction-picker-wrap.is-side .markup-reaction-picker{--markup-menu-from-x:4px;--markup-menu-from-y:0;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-author-copy{color:var(--markup-fg);margin:0;font-size:13px;line-height:1.5}.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);animation:markup-menu-in var(--markup-menu-in) ease-out;flex-direction:column;justify-content:center;gap:4px;padding:16px;display:flex;position:absolute;inset:0}.markup-thread-menu-list.is-leaving,.markup-reaction-picker.is-leaving,.markup-discard-confirm.is-leaving{pointer-events:none;animation-name:markup-menu-out;animation-duration:var(--markup-menu-leave);animation-timing-function:ease-in;animation-fill-mode:forwards}.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}@supports (transition-behavior:allow-discrete){.markup-lightbox{opacity:0;transition:opacity var(--markup-lightbox-leave) ease, overlay var(--markup-lightbox-leave) allow-discrete, display var(--markup-lightbox-leave) allow-discrete}.markup-lightbox[open]{opacity:1}@starting-style{.markup-lightbox[open]{opacity:0}}}.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-toolbar.is-leaving,.markup-hud-hidden-toast,.markup-hud-hidden-toast.is-leaving,.markup-tb-btn,.markup-tb-badge,.markup-comment,.markup-pin,.markup-pin.is-entering,.markup-pin.is-leaving,.markup-pop,.markup-pop.is-leaving,.markup-pop[data-pop=overflow],.markup-pop.is-anchor-center,.markup-pop.is-anchor-center.is-leaving,.markup-thread-menu-list,.markup-thread-menu-list.is-leaving,.markup-reaction-picker,.markup-reaction-picker.is-leaving,.markup-discard-confirm,.markup-discard-confirm.is-leaving,.markup-icon-btn,.markup-btn,.markup-popover,.markup-pin-ghost,.markup-placement-overlay,.markup-placement-cursor-help,.markup-lightbox,.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;box-sizing:border-box;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;padding:4px;list-style:none;position:fixed;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:var(--markup-popover-w);max-width:calc(100vw - 24px);position:fixed;bottom:76px}.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%;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-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-back{color:var(--markup-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;align-items:center;gap:2px;margin-left:-4px;padding:3px 6px 3px 4px;font-family:inherit;font-size:12px;display:inline-flex}.markup-panel-back:hover{background:var(--markup-hover);color:var(--markup-ink)}.markup-panel-body{flex:1;padding:4px 14px 14px;overflow-y:auto}.markup-panel-body:focus{outline:none}.markup-panel-body:focus-visible{box-shadow:inset 0 0 0 2px var(--markup-accent-glow);outline:none}.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}", ue = 1e4, de = 20, I = 60, fe = null, pe = [], me = null, he = !1, ge = _e();
|
|
253
|
+
function _e() {
|
|
253
254
|
return typeof crypto < "u" && typeof crypto.randomUUID == "function" ? crypto.randomUUID() : `s-${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 10)}`;
|
|
254
255
|
}
|
|
255
|
-
function
|
|
256
|
-
if (
|
|
257
|
-
|
|
256
|
+
function ve(e) {
|
|
257
|
+
if (fe = e, !e) {
|
|
258
|
+
pe = [], me &&= (clearTimeout(me), null);
|
|
258
259
|
return;
|
|
259
260
|
}
|
|
260
|
-
|
|
261
|
+
xe();
|
|
261
262
|
}
|
|
262
|
-
function
|
|
263
|
-
if (
|
|
264
|
-
if (
|
|
263
|
+
function ye(e, t) {
|
|
264
|
+
if (fe && !(pe.length >= I)) {
|
|
265
|
+
if (pe.push({
|
|
265
266
|
name: e,
|
|
266
267
|
properties: t,
|
|
267
268
|
timestamp: Date.now()
|
|
268
|
-
}),
|
|
269
|
-
|
|
269
|
+
}), pe.length >= de) {
|
|
270
|
+
be();
|
|
270
271
|
return;
|
|
271
272
|
}
|
|
272
|
-
|
|
273
|
-
|
|
273
|
+
me ||= setTimeout(() => {
|
|
274
|
+
me = null, be();
|
|
274
275
|
}, ue);
|
|
275
276
|
}
|
|
276
277
|
}
|
|
277
|
-
async function
|
|
278
|
-
if (!
|
|
279
|
-
let e =
|
|
280
|
-
|
|
278
|
+
async function be() {
|
|
279
|
+
if (!fe || pe.length === 0) return;
|
|
280
|
+
let e = pe.splice(0, de);
|
|
281
|
+
me &&= (clearTimeout(me), null);
|
|
281
282
|
try {
|
|
282
|
-
await fetch(`${
|
|
283
|
+
await fetch(`${fe.apiUrl.replace(/\/+$/, "")}/widget/events`, {
|
|
283
284
|
method: "POST",
|
|
284
285
|
headers: {
|
|
285
286
|
"content-type": "application/json",
|
|
286
|
-
"x-markup-api-key":
|
|
287
|
+
"x-markup-api-key": fe.apiKey
|
|
287
288
|
},
|
|
288
289
|
body: JSON.stringify({
|
|
289
|
-
sessionId:
|
|
290
|
-
widgetVersion:
|
|
290
|
+
sessionId: ge,
|
|
291
|
+
widgetVersion: fe.widgetVersion,
|
|
291
292
|
events: e.map((e) => ({
|
|
292
293
|
name: e.name,
|
|
293
294
|
properties: e.properties,
|
|
@@ -297,21 +298,21 @@ async function xe() {
|
|
|
297
298
|
keepalive: !0
|
|
298
299
|
});
|
|
299
300
|
} catch {}
|
|
300
|
-
|
|
301
|
-
|
|
301
|
+
fe && pe.length > 0 && !me && (me = setTimeout(() => {
|
|
302
|
+
me = null, be();
|
|
302
303
|
}, ue));
|
|
303
304
|
}
|
|
304
|
-
function
|
|
305
|
-
if (
|
|
306
|
-
|
|
307
|
-
let e = () => void
|
|
305
|
+
function xe() {
|
|
306
|
+
if (he || typeof window > "u") return;
|
|
307
|
+
he = !0;
|
|
308
|
+
let e = () => void be();
|
|
308
309
|
window.addEventListener("pagehide", e), document.addEventListener("visibilitychange", () => {
|
|
309
310
|
document.visibilityState === "hidden" && e();
|
|
310
311
|
});
|
|
311
312
|
}
|
|
312
313
|
//#endregion
|
|
313
314
|
//#region src/runtime/error-boundary.tsx
|
|
314
|
-
var
|
|
315
|
+
var Se = class extends C {
|
|
315
316
|
state = { hasError: !1 };
|
|
316
317
|
static getDerivedStateFromError() {
|
|
317
318
|
return { hasError: !0 };
|
|
@@ -324,12 +325,12 @@ var Ce = class extends C {
|
|
|
324
325
|
render() {
|
|
325
326
|
return this.state.hasError ? null : this.props.children;
|
|
326
327
|
}
|
|
327
|
-
},
|
|
328
|
-
function
|
|
328
|
+
}, Ce = 1e3;
|
|
329
|
+
function we(e) {
|
|
329
330
|
let t = !1, n = 0;
|
|
330
331
|
return (r) => {
|
|
331
332
|
let i = Date.now();
|
|
332
|
-
t || i - n <
|
|
333
|
+
t || i - n < Ce || (t = !0, n = i, fetch(`${e.apiUrl.replace(/\/+$/, "")}/widget/error`, {
|
|
333
334
|
method: "POST",
|
|
334
335
|
headers: {
|
|
335
336
|
"content-type": "application/json",
|
|
@@ -345,97 +346,97 @@ function Te(e) {
|
|
|
345
346
|
}));
|
|
346
347
|
};
|
|
347
348
|
}
|
|
348
|
-
function
|
|
349
|
+
function Te() {
|
|
349
350
|
return typeof window < "u" ? window.location.href : void 0;
|
|
350
351
|
}
|
|
351
|
-
function
|
|
352
|
+
function Ee() {
|
|
352
353
|
return typeof navigator < "u" ? navigator.userAgent : void 0;
|
|
353
354
|
}
|
|
354
|
-
var
|
|
355
|
-
function
|
|
356
|
-
let r =
|
|
357
|
-
r || (r =
|
|
355
|
+
var De = /* @__PURE__ */ new WeakMap();
|
|
356
|
+
function Oe(e, t, n) {
|
|
357
|
+
let r = De.get(e);
|
|
358
|
+
r || (r = we(e), De.set(e, r));
|
|
358
359
|
let i = t instanceof Error ? t : Error(String(t));
|
|
359
360
|
r({
|
|
360
361
|
message: i.message,
|
|
361
362
|
name: i.name,
|
|
362
363
|
stack: i.stack,
|
|
363
|
-
url:
|
|
364
|
-
userAgent:
|
|
364
|
+
url: Te(),
|
|
365
|
+
userAgent: Ee(),
|
|
365
366
|
context: n?.context
|
|
366
367
|
});
|
|
367
368
|
}
|
|
368
|
-
var
|
|
369
|
-
function
|
|
370
|
-
|
|
369
|
+
var ke = null;
|
|
370
|
+
function Ae(e) {
|
|
371
|
+
ke = e;
|
|
371
372
|
}
|
|
372
|
-
function
|
|
373
|
-
|
|
373
|
+
function L(e, t) {
|
|
374
|
+
ke && Oe(ke, e, t);
|
|
374
375
|
}
|
|
375
376
|
//#endregion
|
|
376
377
|
//#region src/runtime/theme-store.ts
|
|
377
|
-
var
|
|
378
|
-
function
|
|
378
|
+
var je = "markup:widget:theme", Me = null, R = Fe() ?? "auto", Ne = Fe() != null, Pe = /* @__PURE__ */ new Set();
|
|
379
|
+
function Fe() {
|
|
379
380
|
try {
|
|
380
|
-
let e = localStorage.getItem(
|
|
381
|
+
let e = localStorage.getItem(je);
|
|
381
382
|
if (e === "light" || e === "dark" || e === "auto") return e;
|
|
382
383
|
} catch {}
|
|
383
384
|
return null;
|
|
384
385
|
}
|
|
385
|
-
function
|
|
386
|
-
|
|
386
|
+
function Ie() {
|
|
387
|
+
Me && (R === "auto" ? delete Me.dataset.theme : Me.dataset.theme = R);
|
|
387
388
|
}
|
|
388
|
-
function
|
|
389
|
-
|
|
389
|
+
function Le(e, t) {
|
|
390
|
+
Me = e, !Ne && t && (R = t), Ie();
|
|
390
391
|
}
|
|
391
|
-
function
|
|
392
|
-
return
|
|
392
|
+
function Re() {
|
|
393
|
+
return R;
|
|
393
394
|
}
|
|
394
|
-
function
|
|
395
|
-
return
|
|
395
|
+
function ze() {
|
|
396
|
+
return R === "dark" ? "dark" : R === "light" ? "light" : typeof window < "u" && window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
|
|
396
397
|
}
|
|
397
|
-
function
|
|
398
|
-
if (e !==
|
|
399
|
-
|
|
398
|
+
function Be(e) {
|
|
399
|
+
if (e !== R) {
|
|
400
|
+
R = e, Ne = !0;
|
|
400
401
|
try {
|
|
401
|
-
localStorage.setItem(
|
|
402
|
+
localStorage.setItem(je, e);
|
|
402
403
|
} catch {}
|
|
403
|
-
|
|
404
|
-
for (let e of
|
|
404
|
+
Ie();
|
|
405
|
+
for (let e of Pe) e(R);
|
|
405
406
|
}
|
|
406
407
|
}
|
|
407
|
-
function
|
|
408
|
-
return
|
|
409
|
-
|
|
408
|
+
function Ve(e) {
|
|
409
|
+
return Pe.add(e), () => {
|
|
410
|
+
Pe.delete(e);
|
|
410
411
|
};
|
|
411
412
|
}
|
|
412
|
-
function
|
|
413
|
+
function He() {
|
|
413
414
|
if (typeof window > "u" || !window.matchMedia) return () => {};
|
|
414
415
|
let e = window.matchMedia("(prefers-color-scheme: dark)"), t = () => {
|
|
415
|
-
if (
|
|
416
|
+
if (R === "auto") for (let e of Pe) e(R);
|
|
416
417
|
};
|
|
417
418
|
return e.addEventListener?.("change", t), () => e.removeEventListener?.("change", t);
|
|
418
419
|
}
|
|
419
420
|
//#endregion
|
|
420
|
-
//#region ../../node_modules/.pnpm/preact@10.29.
|
|
421
|
-
var
|
|
422
|
-
function
|
|
423
|
-
|
|
424
|
-
var n =
|
|
421
|
+
//#region ../../node_modules/.pnpm/preact@10.29.8/node_modules/preact/hooks/dist/hooks.module.js
|
|
422
|
+
var Ue, z, We, Ge, Ke = 0, qe = [], B = t, Je = B.__b, Ye = B.__r, Xe = B.diffed, Ze = B.__c, Qe = B.unmount, $e = B.__;
|
|
423
|
+
function et(e, t) {
|
|
424
|
+
B.__h && B.__h(z, e, Ke || t), Ke = 0;
|
|
425
|
+
var n = z.__H || (z.__H = {
|
|
425
426
|
__: [],
|
|
426
427
|
__h: []
|
|
427
428
|
});
|
|
428
429
|
return e >= n.__.length && n.__.push({}), n.__[e];
|
|
429
430
|
}
|
|
430
|
-
function
|
|
431
|
-
return
|
|
431
|
+
function V(e) {
|
|
432
|
+
return Ke = 1, tt(lt, e);
|
|
432
433
|
}
|
|
433
|
-
function
|
|
434
|
-
var r =
|
|
435
|
-
if (r.t = e, !r.__c && (r.__ = [n ? n(t) :
|
|
434
|
+
function tt(e, t, n) {
|
|
435
|
+
var r = et(Ue++, 2);
|
|
436
|
+
if (r.t = e, !r.__c && (r.__ = [n ? n(t) : lt(void 0, t), function(e) {
|
|
436
437
|
var t = r.__N ? r.__N[0] : r.__[0], n = r.t(t, e);
|
|
437
438
|
t !== n && (r.__N = [n, r.__[1]], r.__c.setState({}));
|
|
438
|
-
}], r.__c =
|
|
439
|
+
}], r.__c = z, !z.__f)) {
|
|
439
440
|
var i = function(e, t, n) {
|
|
440
441
|
if (!r.__c.__H) return !0;
|
|
441
442
|
var i = !1, o = r.__c.props !== e;
|
|
@@ -451,114 +452,114 @@ function rt(e, t, n) {
|
|
|
451
452
|
}
|
|
452
453
|
return !i || o;
|
|
453
454
|
};
|
|
454
|
-
|
|
455
|
-
var a =
|
|
456
|
-
|
|
455
|
+
z.__f = !0;
|
|
456
|
+
var a = z.shouldComponentUpdate, o = z.componentWillUpdate;
|
|
457
|
+
z.componentWillUpdate = function(e, t, n) {
|
|
457
458
|
if (this.__e) {
|
|
458
459
|
var r = a;
|
|
459
460
|
a = void 0, i(e, t, n), a = r;
|
|
460
461
|
}
|
|
461
462
|
o && o.call(this, e, t, n);
|
|
462
|
-
},
|
|
463
|
+
}, z.shouldComponentUpdate = i;
|
|
463
464
|
}
|
|
464
465
|
return r.__N || r.__;
|
|
465
466
|
}
|
|
466
|
-
function
|
|
467
|
-
var n =
|
|
468
|
-
!
|
|
467
|
+
function H(e, t) {
|
|
468
|
+
var n = et(Ue++, 3);
|
|
469
|
+
!B.__s && ct(n.__H, t) && (n.__ = e, n.u = t, z.__H.__h.push(n));
|
|
469
470
|
}
|
|
470
|
-
function
|
|
471
|
-
var n =
|
|
472
|
-
!
|
|
471
|
+
function U(e, t) {
|
|
472
|
+
var n = et(Ue++, 4);
|
|
473
|
+
!B.__s && ct(n.__H, t) && (n.__ = e, n.u = t, z.__h.push(n));
|
|
473
474
|
}
|
|
474
|
-
function
|
|
475
|
-
return
|
|
475
|
+
function W(e) {
|
|
476
|
+
return Ke = 5, nt(function() {
|
|
476
477
|
return { current: e };
|
|
477
478
|
}, []);
|
|
478
479
|
}
|
|
479
|
-
function
|
|
480
|
-
var n =
|
|
481
|
-
return
|
|
480
|
+
function nt(e, t) {
|
|
481
|
+
var n = et(Ue++, 7);
|
|
482
|
+
return ct(n.__H, t) && (n.__ = e(), n.__H = t, n.__h = e), n.__;
|
|
482
483
|
}
|
|
483
|
-
function
|
|
484
|
-
return
|
|
484
|
+
function G(e, t) {
|
|
485
|
+
return Ke = 8, nt(function() {
|
|
485
486
|
return e;
|
|
486
487
|
}, t);
|
|
487
488
|
}
|
|
488
|
-
function
|
|
489
|
-
for (var e; e =
|
|
489
|
+
function rt() {
|
|
490
|
+
for (var e; e = qe.shift();) {
|
|
490
491
|
var t = e.__H;
|
|
491
492
|
if (e.__P && t) try {
|
|
492
|
-
t.__h.some(
|
|
493
|
+
t.__h.some(ot), t.__h.some(st), t.__h = [];
|
|
493
494
|
} catch (n) {
|
|
494
|
-
t.__h = [],
|
|
495
|
+
t.__h = [], B.__e(n, e.__v);
|
|
495
496
|
}
|
|
496
497
|
}
|
|
497
498
|
}
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
},
|
|
501
|
-
e && t.__k && t.__k.__m && (e.__m = t.__k.__m),
|
|
502
|
-
},
|
|
503
|
-
|
|
504
|
-
var t = (
|
|
505
|
-
t && (
|
|
499
|
+
B.__b = function(e) {
|
|
500
|
+
z = null, Je && Je(e);
|
|
501
|
+
}, B.__ = function(e, t) {
|
|
502
|
+
e && t.__k && t.__k.__m && (e.__m = t.__k.__m), $e && $e(e, t);
|
|
503
|
+
}, B.__r = function(e) {
|
|
504
|
+
Ye && Ye(e), Ue = 0;
|
|
505
|
+
var t = (z = e.__c).__H;
|
|
506
|
+
t && (We === z ? (t.__h = [], z.__h = [], t.__.some(function(e) {
|
|
506
507
|
e.__N && (e.__ = e.__N), e.u = e.__N = void 0;
|
|
507
|
-
})) : (t.__h.some(
|
|
508
|
-
},
|
|
509
|
-
|
|
508
|
+
})) : (t.__h.some(ot), t.__h.some(st), t.__h = [], Ue = 0)), We = z;
|
|
509
|
+
}, B.diffed = function(e) {
|
|
510
|
+
Xe && Xe(e);
|
|
510
511
|
var t = e.__c;
|
|
511
|
-
t && t.__H && (t.__H.__h.length && (
|
|
512
|
+
t && t.__H && (t.__H.__h.length && (qe.push(t) !== 1 && Ge === B.requestAnimationFrame || ((Ge = B.requestAnimationFrame) || at)(rt)), t.__H.__.some(function(e) {
|
|
512
513
|
e.u &&= (e.__H = e.u, void 0);
|
|
513
|
-
})),
|
|
514
|
-
},
|
|
514
|
+
})), We = z = null;
|
|
515
|
+
}, B.__c = function(e, t) {
|
|
515
516
|
t.some(function(e) {
|
|
516
517
|
try {
|
|
517
|
-
e.__h.some(
|
|
518
|
-
return !e.__ ||
|
|
518
|
+
e.__h.some(ot), e.__h = e.__h.filter(function(e) {
|
|
519
|
+
return !e.__ || st(e);
|
|
519
520
|
});
|
|
520
521
|
} catch (n) {
|
|
521
522
|
t.some(function(e) {
|
|
522
523
|
e.__h &&= [];
|
|
523
|
-
}), t = [],
|
|
524
|
+
}), t = [], B.__e(n, e.__v);
|
|
524
525
|
}
|
|
525
|
-
}),
|
|
526
|
-
},
|
|
527
|
-
|
|
526
|
+
}), Ze && Ze(e, t);
|
|
527
|
+
}, B.unmount = function(e) {
|
|
528
|
+
Qe && Qe(e);
|
|
528
529
|
var t, n = e.__c;
|
|
529
530
|
n && n.__H && (n.__H.__.some(function(e) {
|
|
530
531
|
try {
|
|
531
|
-
|
|
532
|
+
ot(e);
|
|
532
533
|
} catch (e) {
|
|
533
534
|
t = e;
|
|
534
535
|
}
|
|
535
|
-
}), n.__H = void 0, t &&
|
|
536
|
+
}), n.__H = void 0, t && B.__e(t, n.__v));
|
|
536
537
|
};
|
|
537
|
-
var
|
|
538
|
-
function
|
|
538
|
+
var it = typeof requestAnimationFrame == "function";
|
|
539
|
+
function at(e) {
|
|
539
540
|
var t, n = function() {
|
|
540
|
-
clearTimeout(r),
|
|
541
|
+
clearTimeout(r), it && cancelAnimationFrame(t), setTimeout(e);
|
|
541
542
|
}, r = setTimeout(n, 35);
|
|
542
|
-
|
|
543
|
+
it && (t = requestAnimationFrame(n));
|
|
543
544
|
}
|
|
544
|
-
function
|
|
545
|
-
var t =
|
|
546
|
-
typeof n == "function" && (e.__c = void 0, n()),
|
|
545
|
+
function ot(e) {
|
|
546
|
+
var t = z, n = e.__c;
|
|
547
|
+
typeof n == "function" && (e.__c = void 0, n()), z = t;
|
|
547
548
|
}
|
|
548
|
-
function
|
|
549
|
-
var t =
|
|
550
|
-
e.__c = e.__(),
|
|
549
|
+
function st(e) {
|
|
550
|
+
var t = z;
|
|
551
|
+
e.__c = e.__(), z = t;
|
|
551
552
|
}
|
|
552
|
-
function
|
|
553
|
+
function ct(e, t) {
|
|
553
554
|
return !e || e.length !== t.length || t.some(function(t, n) {
|
|
554
555
|
return t !== e[n];
|
|
555
556
|
});
|
|
556
557
|
}
|
|
557
|
-
function
|
|
558
|
+
function lt(e, t) {
|
|
558
559
|
return typeof t == "function" ? t(e) : t;
|
|
559
560
|
}
|
|
560
|
-
for (var
|
|
561
|
-
|
|
561
|
+
for (var ut = "1.38.0", dt = [], ft = [], pt = Uint8Array, mt = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", ht = 0, gt = mt.length; ht < gt; ++ht) dt[ht] = mt[ht], ft[mt.charCodeAt(ht)] = ht;
|
|
562
|
+
ft[45] = 62, ft[95] = 63;
|
|
562
563
|
function _t(e) {
|
|
563
564
|
var t = e.length;
|
|
564
565
|
if (t % 4 > 0) throw Error("Invalid string. Length must be a multiple of 4");
|
|
@@ -570,24 +571,23 @@ function _t(e) {
|
|
|
570
571
|
function vt(e, t, n) {
|
|
571
572
|
return (t + n) * 3 / 4 - n;
|
|
572
573
|
}
|
|
573
|
-
function K(e) {
|
|
574
|
-
var t, n = _t(e), r = n[0], i = n[1], a = new pt(vt(e, r, i)), o = 0, s = i > 0 ? r - 4 : r, c;
|
|
575
|
-
for (c = 0; c < s; c += 4) t = G[e.charCodeAt(c)] << 18 | G[e.charCodeAt(c + 1)] << 12 | G[e.charCodeAt(c + 2)] << 6 | G[e.charCodeAt(c + 3)], a[o++] = t >> 16 & 255, a[o++] = t >> 8 & 255, a[o++] = t & 255;
|
|
576
|
-
return i === 2 && (t = G[e.charCodeAt(c)] << 2 | G[e.charCodeAt(c + 1)] >> 4, a[o++] = t & 255), i === 1 && (t = G[e.charCodeAt(c)] << 10 | G[e.charCodeAt(c + 1)] << 4 | G[e.charCodeAt(c + 2)] >> 2, a[o++] = t >> 8 & 255, a[o++] = t & 255), a;
|
|
577
|
-
}
|
|
578
574
|
function yt(e) {
|
|
579
|
-
|
|
575
|
+
for (var t, n = _t(e), r = n[0], i = n[1], a = new pt(vt(e, r, i)), o = 0, s = i > 0 ? r - 4 : r, c = 0; c < s; c += 4) t = ft[e.charCodeAt(c)] << 18 | ft[e.charCodeAt(c + 1)] << 12 | ft[e.charCodeAt(c + 2)] << 6 | ft[e.charCodeAt(c + 3)], a[o++] = t >> 16 & 255, a[o++] = t >> 8 & 255, a[o++] = t & 255;
|
|
576
|
+
return i === 2 && (t = ft[e.charCodeAt(c)] << 2 | ft[e.charCodeAt(c + 1)] >> 4, a[o++] = t & 255), i === 1 && (t = ft[e.charCodeAt(c)] << 10 | ft[e.charCodeAt(c + 1)] << 4 | ft[e.charCodeAt(c + 2)] >> 2, a[o++] = t >> 8 & 255, a[o++] = t & 255), a;
|
|
580
577
|
}
|
|
581
|
-
function bt(e
|
|
582
|
-
|
|
578
|
+
function bt(e) {
|
|
579
|
+
return dt[e >> 18 & 63] + dt[e >> 12 & 63] + dt[e >> 6 & 63] + dt[e & 63];
|
|
580
|
+
}
|
|
581
|
+
function K(e, t, n) {
|
|
582
|
+
for (var r, i = [], a = t; a < n; a += 3) r = (e[a] << 16 & 16711680) + (e[a + 1] << 8 & 65280) + (e[a + 2] & 255), i.push(bt(r));
|
|
583
583
|
return i.join("");
|
|
584
584
|
}
|
|
585
585
|
function xt(e) {
|
|
586
|
-
for (var t, n = e.length, r = n % 3, i = [], a = 16383, o = 0, s = n - r; o < s; o += a) i.push(
|
|
587
|
-
return r === 1 ? (t = e[n - 1], i.push(
|
|
586
|
+
for (var t, n = e.length, r = n % 3, i = [], a = 16383, o = 0, s = n - r; o < s; o += a) i.push(K(e, o, o + a > s ? s : o + a));
|
|
587
|
+
return r === 1 ? (t = e[n - 1], i.push(dt[t >> 2] + dt[t << 4 & 63] + "==")) : r === 2 && (t = (e[n - 2] << 8) + e[n - 1], i.push(dt[t >> 10] + dt[t >> 4 & 63] + dt[t << 2 & 63] + "=")), i.join("");
|
|
588
588
|
}
|
|
589
589
|
//#endregion
|
|
590
|
-
//#region ../../node_modules/.pnpm/convex@1.38.0_react@19.
|
|
590
|
+
//#region ../../node_modules/.pnpm/convex@1.38.0_react@19.3.0/node_modules/convex/dist/esm/common/index.js
|
|
591
591
|
function St(e) {
|
|
592
592
|
if (e === void 0) return {};
|
|
593
593
|
if (!wt(e)) throw Error(`The arguments to a Convex function must be an object. Received: ${e}`);
|
|
@@ -609,7 +609,7 @@ function wt(e) {
|
|
|
609
609
|
return t && r;
|
|
610
610
|
}
|
|
611
611
|
//#endregion
|
|
612
|
-
//#region ../../node_modules/.pnpm/convex@1.38.0_react@19.
|
|
612
|
+
//#region ../../node_modules/.pnpm/convex@1.38.0_react@19.3.0/node_modules/convex/dist/esm/values/value.js
|
|
613
613
|
var Tt = !0, Et = BigInt("-9223372036854775808"), Dt = BigInt("9223372036854775807"), Ot = BigInt("0"), kt = BigInt("8"), At = BigInt("256");
|
|
614
614
|
function jt(e) {
|
|
615
615
|
return Number.isNaN(e) || !Number.isFinite(e) || Object.is(e, -0);
|
|
@@ -623,7 +623,7 @@ function Mt(e) {
|
|
|
623
623
|
return xt(n);
|
|
624
624
|
}
|
|
625
625
|
function Nt(e) {
|
|
626
|
-
let t =
|
|
626
|
+
let t = yt(e);
|
|
627
627
|
if (t.byteLength !== 8) throw Error(`Received ${t.byteLength} bytes, expected 8 for $integer`);
|
|
628
628
|
let n = Ot, r = Ot;
|
|
629
629
|
for (let e of t) n += BigInt(e) * At ** r, r++;
|
|
@@ -635,7 +635,7 @@ function Pt(e) {
|
|
|
635
635
|
return new DataView(t).setBigInt64(0, e, !0), xt(new Uint8Array(t));
|
|
636
636
|
}
|
|
637
637
|
function Ft(e) {
|
|
638
|
-
let t =
|
|
638
|
+
let t = yt(e);
|
|
639
639
|
if (t.byteLength !== 8) throw Error(`Received ${t.byteLength} bytes, expected 8 for $integer`);
|
|
640
640
|
return new DataView(t.buffer).getBigInt64(0, !0);
|
|
641
641
|
}
|
|
@@ -657,7 +657,7 @@ function Bt(e) {
|
|
|
657
657
|
let n = t[0][0];
|
|
658
658
|
if (n === "$bytes") {
|
|
659
659
|
if (typeof e.$bytes != "string") throw Error(`Malformed $bytes field on ${e}`);
|
|
660
|
-
return
|
|
660
|
+
return yt(e.$bytes).buffer;
|
|
661
661
|
}
|
|
662
662
|
if (n === "$integer") {
|
|
663
663
|
if (typeof e.$integer != "string") throw Error(`Malformed $integer field on ${e}`);
|
|
@@ -665,7 +665,7 @@ function Bt(e) {
|
|
|
665
665
|
}
|
|
666
666
|
if (n === "$float") {
|
|
667
667
|
if (typeof e.$float != "string") throw Error(`Malformed $float field on ${e}`);
|
|
668
|
-
let t =
|
|
668
|
+
let t = yt(e.$float);
|
|
669
669
|
if (t.byteLength !== 8) throw Error(`Received ${t.byteLength} bytes, expected 8 for $float`);
|
|
670
670
|
let n = new DataView(t.buffer).getFloat64(0, Tt);
|
|
671
671
|
if (!jt(n)) throw Error(`Float ${n} should be encoded as a number`);
|
|
@@ -697,10 +697,13 @@ function Ut(e, t, n, r) {
|
|
|
697
697
|
if (e < Et || Dt < e) throw Error(`BigInt ${e} does not fit into a 64-bit signed integer.`);
|
|
698
698
|
return { $integer: It(e) };
|
|
699
699
|
}
|
|
700
|
-
if (typeof e == "number")
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
700
|
+
if (typeof e == "number") {
|
|
701
|
+
if (jt(e)) {
|
|
702
|
+
let t = /* @__PURE__ */ new ArrayBuffer(8);
|
|
703
|
+
return new DataView(t).setFloat64(0, e, Tt), { $float: xt(new Uint8Array(t)) };
|
|
704
|
+
}
|
|
705
|
+
return e;
|
|
706
|
+
}
|
|
704
707
|
if (typeof e == "boolean" || typeof e == "string") return e;
|
|
705
708
|
if (e instanceof ArrayBuffer) return { $bytes: xt(new Uint8Array(e)) };
|
|
706
709
|
if (Array.isArray(e)) return e.map((e, r) => Ut(e, t, n + `[${r}]`, !1));
|
|
@@ -727,7 +730,7 @@ function Kt(e) {
|
|
|
727
730
|
return Ut(e, e, "", !1);
|
|
728
731
|
}
|
|
729
732
|
//#endregion
|
|
730
|
-
//#region ../../node_modules/.pnpm/convex@1.38.0_react@19.
|
|
733
|
+
//#region ../../node_modules/.pnpm/convex@1.38.0_react@19.3.0/node_modules/convex/dist/esm/values/errors.js
|
|
731
734
|
var qt = Object.defineProperty, Jt = (e, t, n) => t in e ? qt(e, t, {
|
|
732
735
|
enumerable: !0,
|
|
733
736
|
configurable: !0,
|
|
@@ -822,7 +825,7 @@ function fn(e, t) {
|
|
|
822
825
|
return t.data = e.errorData, t;
|
|
823
826
|
}
|
|
824
827
|
//#endregion
|
|
825
|
-
//#region ../../node_modules/.pnpm/convex@1.38.0_react@19.
|
|
828
|
+
//#region ../../node_modules/.pnpm/convex@1.38.0_react@19.3.0/node_modules/convex/dist/esm/browser/sync/udf_path_utils.js
|
|
826
829
|
function pn(e) {
|
|
827
830
|
let t = e.split(":"), n, r;
|
|
828
831
|
return t.length === 1 ? (n = t[0], r = "default") : (n = t.slice(0, t.length - 1).join(":"), r = t[t.length - 1]), n.endsWith(".js") && (n = n.slice(0, -3)), `${n}:${r}`;
|
|
@@ -849,7 +852,7 @@ function gn(e) {
|
|
|
849
852
|
return JSON.parse(e).type === "paginated";
|
|
850
853
|
}
|
|
851
854
|
//#endregion
|
|
852
|
-
//#region ../../node_modules/.pnpm/convex@1.38.0_react@19.
|
|
855
|
+
//#region ../../node_modules/.pnpm/convex@1.38.0_react@19.3.0/node_modules/convex/dist/esm/browser/sync/local_state.js
|
|
853
856
|
var _n = Object.defineProperty, vn = (e, t, n) => t in e ? _n(e, t, {
|
|
854
857
|
enumerable: !0,
|
|
855
858
|
configurable: !0,
|
|
@@ -1181,7 +1184,7 @@ function kn(e) {
|
|
|
1181
1184
|
return t;
|
|
1182
1185
|
}
|
|
1183
1186
|
//#endregion
|
|
1184
|
-
//#region ../../node_modules/.pnpm/convex@1.38.0_react@19.
|
|
1187
|
+
//#region ../../node_modules/.pnpm/convex@1.38.0_react@19.3.0/node_modules/convex/dist/esm/server/api.js
|
|
1185
1188
|
function An(e) {
|
|
1186
1189
|
let t = kn(e);
|
|
1187
1190
|
if (t.name === void 0) throw t.functionHandle === void 0 ? t.reference === void 0 ? Error(`Expected function reference like "api.file.func" or "internal.file.func", but received ${JSON.stringify(t)}`) : Error(`Expected function reference in the current component like "api.file.func" or "internal.file.func", but received reference ${t.reference}`) : Error(`Expected function reference like "api.file.func" or "internal.file.func", but received function handle ${t.functionHandle}`);
|
|
@@ -1209,7 +1212,7 @@ function Mn(e = []) {
|
|
|
1209
1212
|
}
|
|
1210
1213
|
Mn();
|
|
1211
1214
|
//#endregion
|
|
1212
|
-
//#region ../../node_modules/.pnpm/convex@1.38.0_react@19.
|
|
1215
|
+
//#region ../../node_modules/.pnpm/convex@1.38.0_react@19.3.0/node_modules/convex/dist/esm/browser/sync/optimistic_updates_impl.js
|
|
1213
1216
|
var Nn = Object.defineProperty, Pn = (e, t, n) => t in e ? Nn(e, t, {
|
|
1214
1217
|
enumerable: !0,
|
|
1215
1218
|
configurable: !0,
|
|
@@ -1396,9 +1399,9 @@ var Nn = Object.defineProperty, Pn = (e, t, n) => t in e ? Nn(e, t, {
|
|
|
1396
1399
|
}
|
|
1397
1400
|
};
|
|
1398
1401
|
//#endregion
|
|
1399
|
-
//#region ../../node_modules/.pnpm/convex@1.38.0_react@19.
|
|
1402
|
+
//#region ../../node_modules/.pnpm/convex@1.38.0_react@19.3.0/node_modules/convex/dist/esm/browser/sync/protocol.js
|
|
1400
1403
|
function Zn(e) {
|
|
1401
|
-
let t =
|
|
1404
|
+
let t = yt(e);
|
|
1402
1405
|
return Vn.fromBytesLE(Array.from(t));
|
|
1403
1406
|
}
|
|
1404
1407
|
function Qn(e) {
|
|
@@ -1445,7 +1448,7 @@ function er(e) {
|
|
|
1445
1448
|
}
|
|
1446
1449
|
}
|
|
1447
1450
|
//#endregion
|
|
1448
|
-
//#region ../../node_modules/.pnpm/convex@1.38.0_react@19.
|
|
1451
|
+
//#region ../../node_modules/.pnpm/convex@1.38.0_react@19.3.0/node_modules/convex/dist/esm/browser/sync/web_socket_manager.js
|
|
1449
1452
|
var tr = Object.defineProperty, nr = (e, t, n) => t in e ? tr(e, t, {
|
|
1450
1453
|
enumerable: !0,
|
|
1451
1454
|
configurable: !0,
|
|
@@ -1487,7 +1490,7 @@ var fr = class {
|
|
|
1487
1490
|
this.socket = e, this._logVerbose(`socket state changed: ${this.socket.state}, paused: ${"paused" in this.socket ? this.socket.paused : void 0}`), this.markConnectionStateDirty();
|
|
1488
1491
|
}
|
|
1489
1492
|
setupNetworkListener() {
|
|
1490
|
-
typeof window
|
|
1493
|
+
typeof window < "u" && typeof window.addEventListener == "function" && this.networkOnlineHandler === null && (this.networkOnlineHandler = () => {
|
|
1491
1494
|
this._logVerbose("network online event detected"), this.tryReconnectImmediately();
|
|
1492
1495
|
}, window.addEventListener("online", this.networkOnlineHandler), this._logVerbose("network online event listener registered"));
|
|
1493
1496
|
}
|
|
@@ -1776,7 +1779,7 @@ var fr = class {
|
|
|
1776
1779
|
}
|
|
1777
1780
|
};
|
|
1778
1781
|
//#endregion
|
|
1779
|
-
//#region ../../node_modules/.pnpm/convex@1.38.0_react@19.
|
|
1782
|
+
//#region ../../node_modules/.pnpm/convex@1.38.0_react@19.3.0/node_modules/convex/dist/esm/browser/sync/session.js
|
|
1780
1783
|
function pr() {
|
|
1781
1784
|
return mr();
|
|
1782
1785
|
}
|
|
@@ -1787,7 +1790,7 @@ function mr() {
|
|
|
1787
1790
|
});
|
|
1788
1791
|
}
|
|
1789
1792
|
//#endregion
|
|
1790
|
-
//#region ../../node_modules/.pnpm/convex@1.38.0_react@19.
|
|
1793
|
+
//#region ../../node_modules/.pnpm/convex@1.38.0_react@19.3.0/node_modules/convex/dist/esm/vendor/jwt-decode/index.js
|
|
1791
1794
|
var hr = class extends Error {};
|
|
1792
1795
|
hr.prototype.name = "InvalidTokenError";
|
|
1793
1796
|
function gr(e) {
|
|
@@ -1832,7 +1835,7 @@ function vr(e, t) {
|
|
|
1832
1835
|
}
|
|
1833
1836
|
}
|
|
1834
1837
|
//#endregion
|
|
1835
|
-
//#region ../../node_modules/.pnpm/convex@1.38.0_react@19.
|
|
1838
|
+
//#region ../../node_modules/.pnpm/convex@1.38.0_react@19.3.0/node_modules/convex/dist/esm/browser/sync/authentication_manager.js
|
|
1836
1839
|
var yr = Object.defineProperty, br = (e, t, n) => t in e ? yr(e, t, {
|
|
1837
1840
|
enumerable: !0,
|
|
1838
1841
|
configurable: !0,
|
|
@@ -1985,7 +1988,7 @@ var yr = Object.defineProperty, br = (e, t, n) => t in e ? yr(e, t, {
|
|
|
1985
1988
|
];
|
|
1986
1989
|
function Er(e, t) {
|
|
1987
1990
|
let n = { sessionId: t };
|
|
1988
|
-
typeof performance
|
|
1991
|
+
typeof performance < "u" && performance.mark && performance.mark(e, { detail: n });
|
|
1989
1992
|
}
|
|
1990
1993
|
function Dr(e) {
|
|
1991
1994
|
let t = e.name.slice(6);
|
|
@@ -2004,7 +2007,7 @@ function Or(e) {
|
|
|
2004
2007
|
return t.map(Dr);
|
|
2005
2008
|
}
|
|
2006
2009
|
//#endregion
|
|
2007
|
-
//#region ../../node_modules/.pnpm/convex@1.38.0_react@19.
|
|
2010
|
+
//#region ../../node_modules/.pnpm/convex@1.38.0_react@19.3.0/node_modules/convex/dist/esm/browser/sync/client.js
|
|
2008
2011
|
var kr = Object.defineProperty, Ar = (e, t, n) => t in e ? kr(e, t, {
|
|
2009
2012
|
enumerable: !0,
|
|
2010
2013
|
configurable: !0,
|
|
@@ -2033,7 +2036,7 @@ var kr = Object.defineProperty, Ar = (e, t, n) => t in e ? kr(e, t, {
|
|
|
2033
2036
|
if (s === "http") c = "ws";
|
|
2034
2037
|
else if (s === "https") c = "wss";
|
|
2035
2038
|
else throw Error(`Unknown parent protocol ${s}`);
|
|
2036
|
-
let l = `${c}://${o}/api/${
|
|
2039
|
+
let l = `${c}://${o}/api/${ut}/sync`;
|
|
2037
2040
|
this.state = new bn(), this.remoteQuerySet = new Xn((e) => this.state.queryPath(e), this.logger), this.requestManager = new wn(this.logger, this.markConnectionStateDirty);
|
|
2038
2041
|
let u = () => {
|
|
2039
2042
|
this.webSocketManager.pause(), this.state.pause();
|
|
@@ -2331,7 +2334,7 @@ var kr = Object.defineProperty, Ar = (e, t, n) => t in e ? kr(e, t, {
|
|
|
2331
2334
|
method: "POST",
|
|
2332
2335
|
headers: {
|
|
2333
2336
|
"Content-Type": "application/json",
|
|
2334
|
-
"Convex-Client": `npm-${
|
|
2337
|
+
"Convex-Client": `npm-${ut}`
|
|
2335
2338
|
},
|
|
2336
2339
|
body: JSON.stringify({ event: "LongWebsocketDisconnect" })
|
|
2337
2340
|
}).then((e) => {
|
|
@@ -2342,13 +2345,13 @@ var kr = Object.defineProperty, Ar = (e, t, n) => t in e ? kr(e, t, {
|
|
|
2342
2345
|
}
|
|
2343
2346
|
};
|
|
2344
2347
|
//#endregion
|
|
2345
|
-
//#region ../../node_modules/.pnpm/convex@1.38.0_react@19.
|
|
2348
|
+
//#region ../../node_modules/.pnpm/convex@1.38.0_react@19.3.0/node_modules/convex/dist/esm/browser/sync/pagination.js
|
|
2346
2349
|
function Mr(e) {
|
|
2347
2350
|
if (typeof e != "object" || !e || !Array.isArray(e.page) || typeof e.isDone != "boolean" || typeof e.continueCursor != "string") throw Error(`Not a valid paginated query result: ${e?.toString()}`);
|
|
2348
2351
|
return e;
|
|
2349
2352
|
}
|
|
2350
2353
|
//#endregion
|
|
2351
|
-
//#region ../../node_modules/.pnpm/convex@1.38.0_react@19.
|
|
2354
|
+
//#region ../../node_modules/.pnpm/convex@1.38.0_react@19.3.0/node_modules/convex/dist/esm/browser/sync/paginated_query_client.js
|
|
2352
2355
|
var Nr = Object.defineProperty, Pr = (e, t, n) => t in e ? Nr(e, t, {
|
|
2353
2356
|
enumerable: !0,
|
|
2354
2357
|
configurable: !0,
|
|
@@ -2537,11 +2540,11 @@ var Nr = Object.defineProperty, Pr = (e, t, n) => t in e ? Nr(e, t, {
|
|
|
2537
2540
|
configurable: !0,
|
|
2538
2541
|
writable: !0,
|
|
2539
2542
|
value: n
|
|
2540
|
-
}) : e[t] = n, zr = (e, t, n) => Rr(e, typeof t == "symbol" ? t : t + "", n), Br
|
|
2543
|
+
}) : e[t] = n, zr = (e, t, n) => Rr(e, typeof t == "symbol" ? t : t + "", n), Br = class {
|
|
2541
2544
|
constructor(e, t = {}) {
|
|
2542
2545
|
zr(this, "listeners"), zr(this, "_client"), zr(this, "_paginatedClient"), zr(this, "callNewListenersWithCurrentValuesTimer"), zr(this, "_closed"), zr(this, "_disabled"), t.skipConvexDeploymentUrlCheck !== !0 && Ct(e);
|
|
2543
2546
|
let { disabled: n, ...r } = t;
|
|
2544
|
-
this._closed = !1, this._disabled = !!n,
|
|
2547
|
+
this._closed = !1, this._disabled = !!n, typeof window > "u" && !("unsavedChangesWarning" in r) && (r.unsavedChangesWarning = !1), this.disabled || (this._client = new jr(e, () => {}, r), this._paginatedClient = new Ir(this._client, (e) => this._transition(e))), this.listeners = /* @__PURE__ */ new Set();
|
|
2545
2548
|
}
|
|
2546
2549
|
get closed() {
|
|
2547
2550
|
return this._closed;
|
|
@@ -2681,14 +2684,14 @@ var Nr = Object.defineProperty, Pr = (e, t, n) => t in e ? Nr(e, t, {
|
|
|
2681
2684
|
};
|
|
2682
2685
|
//#endregion
|
|
2683
2686
|
//#region src/lib/machine.ts
|
|
2684
|
-
function
|
|
2687
|
+
function Vr(e) {
|
|
2685
2688
|
return e;
|
|
2686
2689
|
}
|
|
2687
|
-
function
|
|
2688
|
-
let n =
|
|
2690
|
+
function Hr(e, t) {
|
|
2691
|
+
let n = W(e);
|
|
2689
2692
|
n.current = e;
|
|
2690
|
-
let [r, i] =
|
|
2691
|
-
return [r,
|
|
2693
|
+
let [r, i] = V(() => typeof t == "function" ? t() : t);
|
|
2694
|
+
return [r, G((e) => {
|
|
2692
2695
|
i((t) => {
|
|
2693
2696
|
let r = n.current[t.kind]?.[e.type];
|
|
2694
2697
|
return r ? r(t, e) : t;
|
|
@@ -2697,9 +2700,9 @@ function Ur(e, t) {
|
|
|
2697
2700
|
}
|
|
2698
2701
|
//#endregion
|
|
2699
2702
|
//#region src/lib/mentions.ts
|
|
2700
|
-
var
|
|
2701
|
-
function
|
|
2702
|
-
let t = [], n = 0, r = new RegExp(
|
|
2703
|
+
var Ur = /@\[([^\]\n]+)\]\(([^)\s]+)\)/g;
|
|
2704
|
+
function Wr(e) {
|
|
2705
|
+
let t = [], n = 0, r = new RegExp(Ur.source, "g");
|
|
2703
2706
|
for (let i = r.exec(e); i !== null; i = r.exec(e)) i.index > n && t.push({
|
|
2704
2707
|
type: "text",
|
|
2705
2708
|
value: e.slice(n, i.index)
|
|
@@ -2713,15 +2716,15 @@ function Gr(e) {
|
|
|
2713
2716
|
value: e.slice(n)
|
|
2714
2717
|
}), t;
|
|
2715
2718
|
}
|
|
2716
|
-
function
|
|
2717
|
-
let t = /* @__PURE__ */ new Set(), n = [], r = new RegExp(
|
|
2719
|
+
function Gr(e) {
|
|
2720
|
+
let t = /* @__PURE__ */ new Set(), n = [], r = new RegExp(Ur.source, "g");
|
|
2718
2721
|
for (let i = r.exec(e); i !== null; i = r.exec(e)) {
|
|
2719
2722
|
let e = i[2];
|
|
2720
2723
|
e && !t.has(e) && (t.add(e), n.push(e));
|
|
2721
2724
|
}
|
|
2722
2725
|
return n;
|
|
2723
2726
|
}
|
|
2724
|
-
function
|
|
2727
|
+
function Kr(e, t) {
|
|
2725
2728
|
for (let n = t - 1; n >= 0; n--) {
|
|
2726
2729
|
let r = e[n];
|
|
2727
2730
|
if (r === "@") {
|
|
@@ -2738,14 +2741,14 @@ function qr(e, t) {
|
|
|
2738
2741
|
}
|
|
2739
2742
|
return null;
|
|
2740
2743
|
}
|
|
2741
|
-
function
|
|
2744
|
+
function qr(e) {
|
|
2742
2745
|
if (!e.userId || /[)\s]/.test(e.userId)) return null;
|
|
2743
2746
|
let t = e.name.replace(/[\]\r\n]+/g, " ").trim();
|
|
2744
2747
|
return t ? `@[${t}](${e.userId})` : null;
|
|
2745
2748
|
}
|
|
2746
2749
|
//#endregion
|
|
2747
2750
|
//#region src/lib/use-async-action.ts
|
|
2748
|
-
var
|
|
2751
|
+
var Jr = Vr({
|
|
2749
2752
|
idle: { start: () => ({ kind: "pending" }) },
|
|
2750
2753
|
pending: {
|
|
2751
2754
|
success: (e, t) => ({
|
|
@@ -2766,10 +2769,10 @@ var Yr = Hr({
|
|
|
2766
2769
|
reset: () => ({ kind: "idle" })
|
|
2767
2770
|
}
|
|
2768
2771
|
});
|
|
2769
|
-
function
|
|
2770
|
-
let [e, t] =
|
|
2772
|
+
function Yr() {
|
|
2773
|
+
let [e, t] = Hr(Jr, { kind: "idle" }), n = e, r = W(n);
|
|
2771
2774
|
r.current = n;
|
|
2772
|
-
let i =
|
|
2775
|
+
let i = G(async (e, n) => {
|
|
2773
2776
|
if (r.current.kind !== "pending") {
|
|
2774
2777
|
t({ type: "start" });
|
|
2775
2778
|
try {
|
|
@@ -2787,7 +2790,7 @@ function Xr() {
|
|
|
2787
2790
|
return;
|
|
2788
2791
|
}
|
|
2789
2792
|
}
|
|
2790
|
-
}, [t]), a =
|
|
2793
|
+
}, [t]), a = G(() => t({ type: "reset" }), [t]);
|
|
2791
2794
|
return {
|
|
2792
2795
|
state: n,
|
|
2793
2796
|
isIdle: n.kind === "idle",
|
|
@@ -2802,7 +2805,7 @@ function Xr() {
|
|
|
2802
2805
|
}
|
|
2803
2806
|
//#endregion
|
|
2804
2807
|
//#region src/lib/use-presence.ts
|
|
2805
|
-
function
|
|
2808
|
+
function Xr(e, t, n, r) {
|
|
2806
2809
|
let i = new Map(t.map((e) => [e.key, e.value])), a = e.map((e) => {
|
|
2807
2810
|
if (!i.has(e.key)) return e.isLeaving ? e : {
|
|
2808
2811
|
...e,
|
|
@@ -2828,18 +2831,18 @@ function Zr(e, t, n, r) {
|
|
|
2828
2831
|
leavingAt: null
|
|
2829
2832
|
}))];
|
|
2830
2833
|
}
|
|
2831
|
-
var
|
|
2832
|
-
function
|
|
2833
|
-
return
|
|
2834
|
+
var Zr;
|
|
2835
|
+
function Qr() {
|
|
2836
|
+
return Zr === void 0 && (Zr = window.matchMedia?.("(prefers-reduced-motion: reduce)") ?? null), Zr?.matches ?? !1;
|
|
2834
2837
|
}
|
|
2835
|
-
function
|
|
2836
|
-
let r =
|
|
2837
|
-
r.current =
|
|
2838
|
+
function $r(e, t, n) {
|
|
2839
|
+
let r = W([]), i = W(/* @__PURE__ */ new Map()), [, a] = V(0), o = Qr() ? 0 : n;
|
|
2840
|
+
r.current = Xr(r.current, e.map((e) => ({
|
|
2838
2841
|
key: t(e),
|
|
2839
2842
|
value: e
|
|
2840
2843
|
})), Date.now(), o);
|
|
2841
2844
|
let s = r.current, c = s.filter((e) => e.isLeaving).map((e) => e.key);
|
|
2842
|
-
return
|
|
2845
|
+
return H(() => {
|
|
2843
2846
|
let e = i.current;
|
|
2844
2847
|
for (let [t, n] of e) c.includes(t) || (window.clearTimeout(n), e.delete(t));
|
|
2845
2848
|
for (let t of c) {
|
|
@@ -2849,7 +2852,7 @@ function ei(e, t, n) {
|
|
|
2849
2852
|
}, o);
|
|
2850
2853
|
e.set(t, n);
|
|
2851
2854
|
}
|
|
2852
|
-
}, [c.join("|"), o]),
|
|
2855
|
+
}, [c.join("|"), o]), H(() => {
|
|
2853
2856
|
let e = i.current;
|
|
2854
2857
|
return () => {
|
|
2855
2858
|
for (let t of e.values()) window.clearTimeout(t);
|
|
@@ -2857,11 +2860,11 @@ function ei(e, t, n) {
|
|
|
2857
2860
|
};
|
|
2858
2861
|
}, []), s;
|
|
2859
2862
|
}
|
|
2860
|
-
function
|
|
2861
|
-
let n =
|
|
2863
|
+
function ei(e, t) {
|
|
2864
|
+
let n = W(null), r = W(null), [, i] = V(0), a = Qr() ? 0 : t;
|
|
2862
2865
|
e != null && (n.current = e);
|
|
2863
2866
|
let o = e ?? n.current, s = e == null && o != null;
|
|
2864
|
-
return
|
|
2867
|
+
return H(() => {
|
|
2865
2868
|
if (!s) {
|
|
2866
2869
|
r.current != null && (window.clearTimeout(r.current), r.current = null);
|
|
2867
2870
|
return;
|
|
@@ -2869,14 +2872,14 @@ function ti(e, t) {
|
|
|
2869
2872
|
r.current ??= window.setTimeout(() => {
|
|
2870
2873
|
r.current = null, n.current = null, i((e) => e + 1);
|
|
2871
2874
|
}, a);
|
|
2872
|
-
}, [s, a]),
|
|
2875
|
+
}, [s, a]), H(() => () => {
|
|
2873
2876
|
r.current != null && window.clearTimeout(r.current);
|
|
2874
2877
|
}, []), o == null ? null : {
|
|
2875
2878
|
value: o,
|
|
2876
2879
|
isLeaving: s
|
|
2877
2880
|
};
|
|
2878
2881
|
}
|
|
2879
|
-
var
|
|
2882
|
+
var ti = /* @__PURE__ */ new Set([
|
|
2880
2883
|
"body",
|
|
2881
2884
|
"main",
|
|
2882
2885
|
"nav",
|
|
@@ -2887,60 +2890,60 @@ var ni = /* @__PURE__ */ new Set([
|
|
|
2887
2890
|
"table",
|
|
2888
2891
|
"dialog",
|
|
2889
2892
|
"article"
|
|
2890
|
-
]),
|
|
2893
|
+
]), ni = [
|
|
2891
2894
|
"data-testid",
|
|
2892
2895
|
"data-test-id",
|
|
2893
2896
|
"data-test",
|
|
2894
2897
|
"data-cy",
|
|
2895
2898
|
"data-qa"
|
|
2896
|
-
],
|
|
2899
|
+
], ri = [
|
|
2897
2900
|
"name",
|
|
2898
2901
|
"href",
|
|
2899
2902
|
"alt"
|
|
2900
2903
|
];
|
|
2901
|
-
function
|
|
2904
|
+
function ii(e) {
|
|
2902
2905
|
return !/^[A-Za-z][\w-]{1,63}$/.test(e) || /\d{2,}|\d[a-z]/i.test(e) ? !1 : !/^(radix|base-ui|headlessui|mui|react-aria|chakra|mantine|ember|ng|v-)/i.test(e);
|
|
2903
2906
|
}
|
|
2904
|
-
function
|
|
2907
|
+
function ai(e) {
|
|
2905
2908
|
return e.length > 0 && e.length <= 80 && !/\d{3,}/.test(e);
|
|
2906
2909
|
}
|
|
2907
|
-
function
|
|
2910
|
+
function oi(e, t) {
|
|
2908
2911
|
for (let n of t) {
|
|
2909
2912
|
let t = e.getAttribute(n);
|
|
2910
|
-
if (t != null &&
|
|
2913
|
+
if (t != null && ai(t)) return `${ci(e)}[${n}="${hi(t)}"]`;
|
|
2911
2914
|
}
|
|
2912
2915
|
return null;
|
|
2913
2916
|
}
|
|
2914
|
-
var
|
|
2915
|
-
function
|
|
2916
|
-
return e.namespaceURI == null || e.namespaceURI ===
|
|
2917
|
+
var si = "http://www.w3.org/1999/xhtml";
|
|
2918
|
+
function ci(e) {
|
|
2919
|
+
return e.namespaceURI == null || e.namespaceURI === si ? e.tagName.toLowerCase() : e.tagName;
|
|
2917
2920
|
}
|
|
2918
|
-
function
|
|
2921
|
+
function li(e) {
|
|
2919
2922
|
let t = 1;
|
|
2920
2923
|
for (let n = e.previousElementSibling; n; n = n.previousElementSibling) n.tagName === e.tagName && t++;
|
|
2921
2924
|
return t;
|
|
2922
2925
|
}
|
|
2926
|
+
function ui(e) {
|
|
2927
|
+
let t = ci(e);
|
|
2928
|
+
return t === "body" || t === "html" ? t : e.id && ii(e.id) ? `#${hi(e.id)}` : oi(e, ni) ?? oi(e, ri) ?? `${t}:nth-of-type(${li(e)})`;
|
|
2929
|
+
}
|
|
2923
2930
|
function di(e) {
|
|
2924
|
-
|
|
2925
|
-
return t === "body" || t === "html" ? t : e.id && ai(e.id) ? `#${gi(e.id)}` : si(e, ri) ?? si(e, ii) ?? `${t}:nth-of-type(${ui(e)})`;
|
|
2931
|
+
return ti.has(e.tagName.toLowerCase()) || oi(e, ni) != null;
|
|
2926
2932
|
}
|
|
2927
2933
|
function fi(e) {
|
|
2928
|
-
return ni.has(e.tagName.toLowerCase()) || si(e, ri) != null;
|
|
2929
|
-
}
|
|
2930
|
-
function pi(e) {
|
|
2931
2934
|
let t = [], n = e;
|
|
2932
2935
|
for (; n;) {
|
|
2933
|
-
t.unshift(
|
|
2934
|
-
let r = n.tagName.toLowerCase(), i = n.id !== "" &&
|
|
2935
|
-
if (r === "html" || i || n !== e &&
|
|
2936
|
+
t.unshift(ui(n));
|
|
2937
|
+
let r = n.tagName.toLowerCase(), i = n.id !== "" && ii(n.id);
|
|
2938
|
+
if (r === "html" || i || n !== e && di(n)) break;
|
|
2936
2939
|
n = n.parentElement;
|
|
2937
2940
|
}
|
|
2938
2941
|
let r = t.join(" > ");
|
|
2939
2942
|
return r.length <= 1024 ? r : void 0;
|
|
2940
2943
|
}
|
|
2941
|
-
var
|
|
2942
|
-
function
|
|
2943
|
-
let i = e.split(" > "), a = r ? Math.min(
|
|
2944
|
+
var pi = 3;
|
|
2945
|
+
function mi(e, t, n, { canRelax: r = !0 } = {}) {
|
|
2946
|
+
let i = e.split(" > "), a = r ? Math.min(pi, Math.max(0, i.length - 2)) : 0;
|
|
2944
2947
|
for (let e = 0; e <= a; e++) {
|
|
2945
2948
|
let r = i.slice(e).join(" > "), a;
|
|
2946
2949
|
try {
|
|
@@ -2954,13 +2957,13 @@ function hi(e, t, n, { canRelax: r = !0 } = {}) {
|
|
|
2954
2957
|
}
|
|
2955
2958
|
return null;
|
|
2956
2959
|
}
|
|
2957
|
-
function
|
|
2960
|
+
function hi(e) {
|
|
2958
2961
|
return typeof CSS < "u" && typeof CSS.escape == "function" ? CSS.escape(e) : e.replace(/["\\]/g, "\\$&");
|
|
2959
2962
|
}
|
|
2960
2963
|
//#endregion
|
|
2961
2964
|
//#region src/runtime/anchor.ts
|
|
2962
|
-
function
|
|
2963
|
-
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 ? Ai(s) : void 0, l = s ?
|
|
2965
|
+
function gi(e, t) {
|
|
2966
|
+
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 ? Ai(s) : void 0, l = s ? bi(s) : void 0, u, d;
|
|
2964
2967
|
if (s) {
|
|
2965
2968
|
let t = s.getBoundingClientRect();
|
|
2966
2969
|
t.width > 0 && t.height > 0 && (u = Math.max(0, Math.min(1, (e.clientX - t.left) / t.width)), d = Math.max(0, Math.min(1, (e.clientY - t.top) / t.height)));
|
|
@@ -2976,9 +2979,9 @@ function _i(e, t) {
|
|
|
2976
2979
|
anchorOffsetY: d
|
|
2977
2980
|
};
|
|
2978
2981
|
}
|
|
2979
|
-
function
|
|
2982
|
+
function _i(e) {
|
|
2980
2983
|
if (e.anchorSelector) {
|
|
2981
|
-
let t =
|
|
2984
|
+
let t = mi(e.anchorSelector, document, (t) => vi(t, e.anchorText), { canRelax: e.anchorText !== void 0 });
|
|
2982
2985
|
if (t) {
|
|
2983
2986
|
let n = t.getBoundingClientRect();
|
|
2984
2987
|
return {
|
|
@@ -2997,12 +3000,12 @@ function vi(e) {
|
|
|
2997
3000
|
element: null
|
|
2998
3001
|
};
|
|
2999
3002
|
}
|
|
3000
|
-
function
|
|
3001
|
-
return ki(e.getBoundingClientRect()) ? t === void 0 ||
|
|
3003
|
+
function vi(e, t) {
|
|
3004
|
+
return ki(e.getBoundingClientRect()) ? t === void 0 || bi(e) === t : !1;
|
|
3002
3005
|
}
|
|
3003
|
-
var
|
|
3004
|
-
function
|
|
3005
|
-
let t =
|
|
3006
|
+
var yi = 120;
|
|
3007
|
+
function bi(e) {
|
|
3008
|
+
let t = Ci(Si(e));
|
|
3006
3009
|
if (t) return t;
|
|
3007
3010
|
for (let t of [
|
|
3008
3011
|
"aria-label",
|
|
@@ -3011,52 +3014,70 @@ function xi(e) {
|
|
|
3011
3014
|
"title",
|
|
3012
3015
|
"name"
|
|
3013
3016
|
]) {
|
|
3014
|
-
let n =
|
|
3017
|
+
let n = Ci(e.getAttribute(t) ?? "");
|
|
3015
3018
|
if (n) return n;
|
|
3016
3019
|
}
|
|
3017
3020
|
}
|
|
3018
|
-
var
|
|
3019
|
-
function
|
|
3020
|
-
if (typeof document > "u" || typeof document.createTreeWalker != "function") return (e.textContent ?? "").slice(0,
|
|
3021
|
+
var xi = 480;
|
|
3022
|
+
function Si(e) {
|
|
3023
|
+
if (typeof document > "u" || typeof document.createTreeWalker != "function") return (e.textContent ?? "").slice(0, xi);
|
|
3021
3024
|
let t = document.createTreeWalker(e, NodeFilter.SHOW_TEXT), n = "";
|
|
3022
|
-
for (let e = t.nextNode(); e && n.length <
|
|
3023
|
-
return n.slice(0,
|
|
3024
|
-
}
|
|
3025
|
-
function wi(e) {
|
|
3026
|
-
return e.replace(/\d+/g, "").replace(/\s+/g, " ").trim().toLowerCase().slice(0, bi);
|
|
3025
|
+
for (let e = t.nextNode(); e && n.length < xi; e = t.nextNode()) n += e.nodeValue ?? "";
|
|
3026
|
+
return n.slice(0, xi);
|
|
3027
3027
|
}
|
|
3028
|
-
function
|
|
3029
|
-
|
|
3030
|
-
|
|
3031
|
-
|
|
3028
|
+
function Ci(e) {
|
|
3029
|
+
return e.replace(/\d+/g, "").replace(/\s+/g, " ").trim().toLowerCase().slice(0, yi);
|
|
3030
|
+
}
|
|
3031
|
+
var wi = 500;
|
|
3032
|
+
function Ti(e, t, n) {
|
|
3033
|
+
let r = window.innerWidth, i = t && t.viewportW === r ? t : void 0, a = i?.element ? Ei(e, i.element) : null, o = i?.missedAt;
|
|
3034
|
+
if (!a && i != null && i.missedAtDomVersion === n && o != null && Date.now() - o < wi) return {
|
|
3035
|
+
point: Di(i),
|
|
3036
|
+
memory: i
|
|
3037
|
+
};
|
|
3038
|
+
let s = a ?? _i(e);
|
|
3039
|
+
if (s.resolved && s.element) {
|
|
3040
|
+
let e = s.element.getBoundingClientRect(), t = {
|
|
3032
3041
|
width: e.width,
|
|
3033
3042
|
height: e.height
|
|
3034
3043
|
};
|
|
3035
|
-
return
|
|
3036
|
-
point: Di(
|
|
3037
|
-
memory:
|
|
3044
|
+
return i && i.element !== s.element && Oi(s, t, i) ? {
|
|
3045
|
+
point: Di(i),
|
|
3046
|
+
memory: {
|
|
3047
|
+
...i,
|
|
3048
|
+
missedAtDomVersion: n,
|
|
3049
|
+
missedAt: Date.now()
|
|
3050
|
+
}
|
|
3038
3051
|
} : {
|
|
3039
|
-
point:
|
|
3052
|
+
point: s,
|
|
3040
3053
|
memory: {
|
|
3041
|
-
pageX:
|
|
3042
|
-
pageY:
|
|
3054
|
+
pageX: s.pageX,
|
|
3055
|
+
pageY: s.pageY,
|
|
3043
3056
|
size: t,
|
|
3044
|
-
element:
|
|
3045
|
-
viewportW:
|
|
3057
|
+
element: s.element,
|
|
3058
|
+
viewportW: r,
|
|
3059
|
+
missedAtDomVersion: null,
|
|
3060
|
+
missedAt: null
|
|
3046
3061
|
}
|
|
3047
3062
|
};
|
|
3048
3063
|
}
|
|
3049
|
-
return
|
|
3050
|
-
point: Di(
|
|
3051
|
-
memory:
|
|
3064
|
+
return i ? {
|
|
3065
|
+
point: Di(i),
|
|
3066
|
+
memory: {
|
|
3067
|
+
...i,
|
|
3068
|
+
missedAtDomVersion: n,
|
|
3069
|
+
missedAt: Date.now()
|
|
3070
|
+
}
|
|
3052
3071
|
} : {
|
|
3053
|
-
point:
|
|
3072
|
+
point: s,
|
|
3054
3073
|
memory: {
|
|
3055
|
-
pageX:
|
|
3056
|
-
pageY:
|
|
3074
|
+
pageX: s.pageX,
|
|
3075
|
+
pageY: s.pageY,
|
|
3057
3076
|
size: null,
|
|
3058
3077
|
element: null,
|
|
3059
|
-
viewportW:
|
|
3078
|
+
viewportW: r,
|
|
3079
|
+
missedAtDomVersion: n,
|
|
3080
|
+
missedAt: Date.now()
|
|
3060
3081
|
}
|
|
3061
3082
|
};
|
|
3062
3083
|
}
|
|
@@ -3088,7 +3109,7 @@ function ki(e) {
|
|
|
3088
3109
|
}
|
|
3089
3110
|
function Ai(e) {
|
|
3090
3111
|
try {
|
|
3091
|
-
return
|
|
3112
|
+
return fi(e);
|
|
3092
3113
|
} catch {
|
|
3093
3114
|
return;
|
|
3094
3115
|
}
|
|
@@ -3348,7 +3369,7 @@ async function Hi(e, t) {
|
|
|
3348
3369
|
return i;
|
|
3349
3370
|
} catch (e) {
|
|
3350
3371
|
let t = e?.name;
|
|
3351
|
-
return t !== "TypeError" && t !== "TimeoutError" &&
|
|
3372
|
+
return t !== "TypeError" && t !== "TimeoutError" && L(e, { context: "cookie-probe" }), !1;
|
|
3352
3373
|
}
|
|
3353
3374
|
}
|
|
3354
3375
|
//#endregion
|
|
@@ -3359,7 +3380,7 @@ function Gi(e) {
|
|
|
3359
3380
|
try {
|
|
3360
3381
|
e();
|
|
3361
3382
|
} catch (e) {
|
|
3362
|
-
|
|
3383
|
+
L(e, { context: "history-observer-listener" });
|
|
3363
3384
|
}
|
|
3364
3385
|
});
|
|
3365
3386
|
}
|
|
@@ -3549,7 +3570,7 @@ function oa(e) {
|
|
|
3549
3570
|
}
|
|
3550
3571
|
//#endregion
|
|
3551
3572
|
//#region src/runtime/inbox.ts
|
|
3552
|
-
var sa =
|
|
3573
|
+
var sa = Vr({
|
|
3553
3574
|
idle: { fetch: () => ({ kind: "loading" }) },
|
|
3554
3575
|
loading: {
|
|
3555
3576
|
loaded: (e, t) => ({
|
|
@@ -3607,7 +3628,7 @@ async function fa(e) {
|
|
|
3607
3628
|
s = await o();
|
|
3608
3629
|
} catch (e) {
|
|
3609
3630
|
let t = e?.name;
|
|
3610
|
-
return t !== "TypeError" && t !== "TimeoutError" &&
|
|
3631
|
+
return t !== "TypeError" && t !== "TimeoutError" && L(e, { context: "popup-exchange" }), Promise.reject(e instanceof Error ? e : /* @__PURE__ */ Error("Failed to start popup exchange"));
|
|
3611
3632
|
}
|
|
3612
3633
|
let c = Math.max(0, window.screenX + (window.outerWidth - 420) / 2), l = Math.max(0, window.screenY + (window.outerHeight - 560) / 2), u = window.open(s, "markup-auth", `width=420,height=560,left=${c},top=${l}`);
|
|
3613
3634
|
if (!u) return Promise.reject(/* @__PURE__ */ Error("Popup blocked. Allow popups for this site to sign in"));
|
|
@@ -3628,7 +3649,7 @@ async function fa(e) {
|
|
|
3628
3649
|
r = !0, o().then((e) => {
|
|
3629
3650
|
u.closed || (u.location.href = e);
|
|
3630
3651
|
}).catch((e) => {
|
|
3631
|
-
a(),
|
|
3652
|
+
a(), L(e, { context: "popup-exchange-remint" }), t(e instanceof Error ? e : /* @__PURE__ */ Error("Failed to restart sign-in"));
|
|
3632
3653
|
}).finally(() => {
|
|
3633
3654
|
r = !1;
|
|
3634
3655
|
});
|
|
@@ -3677,7 +3698,7 @@ async function fa(e) {
|
|
|
3677
3698
|
});
|
|
3678
3699
|
if (!e.ok) {
|
|
3679
3700
|
let t = /* @__PURE__ */ Error(`Failed to install widget cookies (${e.status})`);
|
|
3680
|
-
throw
|
|
3701
|
+
throw L(t, { context: "install-cookies" }), t;
|
|
3681
3702
|
}
|
|
3682
3703
|
return {
|
|
3683
3704
|
...d,
|
|
@@ -4028,7 +4049,7 @@ async function To(e, t) {
|
|
|
4028
4049
|
}
|
|
4029
4050
|
async function Eo(e, t) {
|
|
4030
4051
|
let n = X(e, HTMLImageElement);
|
|
4031
|
-
if (!
|
|
4052
|
+
if ((!n || Ya(e.src)) && (!X(e, SVGImageElement) || Ya(e.href.baseVal))) return;
|
|
4032
4053
|
let r = n ? e.src : e.href.baseVal, i = await eo(r, qa(r), t);
|
|
4033
4054
|
await new Promise((r, a) => {
|
|
4034
4055
|
e.onload = r, e.onerror = t.onImageErrorHandler ? (...e) => {
|
|
@@ -4209,7 +4230,7 @@ function Jo(e) {
|
|
|
4209
4230
|
let t = new DOMParser().parseFromString(await e.text(), "image/svg+xml");
|
|
4210
4231
|
if (t.querySelector("parsererror")) throw Error("sprite is not parseable SVG");
|
|
4211
4232
|
return t;
|
|
4212
|
-
}).catch((t) => (
|
|
4233
|
+
}).catch((t) => (L(/* @__PURE__ */ Error(`Screenshot sprite ${e} unreadable: ${String(t)}`), { context: "screenshot-sprite" }), null));
|
|
4213
4234
|
return qo.set(e, n), n;
|
|
4214
4235
|
}
|
|
4215
4236
|
function Yo(e, t) {
|
|
@@ -4305,7 +4326,7 @@ function is(e) {
|
|
|
4305
4326
|
if (e.redactSelector) try {
|
|
4306
4327
|
for (let t of document.querySelectorAll(e.redactSelector)) rs(t) || r(t);
|
|
4307
4328
|
} catch (e) {
|
|
4308
|
-
|
|
4329
|
+
L(e, { context: "screenshot-redact-selector" });
|
|
4309
4330
|
}
|
|
4310
4331
|
if (e.strictScrub) for (let e of document.querySelectorAll("input,select,textarea")) rs(e) || r(e);
|
|
4311
4332
|
return n;
|
|
@@ -4356,7 +4377,7 @@ async function ss(e, t, n) {
|
|
|
4356
4377
|
redactedSelectors: c
|
|
4357
4378
|
} : null;
|
|
4358
4379
|
} catch (e) {
|
|
4359
|
-
return
|
|
4380
|
+
return L(e, { context: "screenshot-capture" }), null;
|
|
4360
4381
|
}
|
|
4361
4382
|
}
|
|
4362
4383
|
function cs(e, t) {
|
|
@@ -4379,7 +4400,7 @@ async function us(e) {
|
|
|
4379
4400
|
t = t == null ? a.size : Math.min(t, a.size);
|
|
4380
4401
|
}
|
|
4381
4402
|
}
|
|
4382
|
-
return
|
|
4403
|
+
return L(/* @__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 ${Qo})`), { context: "screenshot-encode" }), null;
|
|
4383
4404
|
}
|
|
4384
4405
|
function ds(e, t, n, r) {
|
|
4385
4406
|
let i = r, a = 28 * i, o = a / 2, s = t * i, c = n * i;
|
|
@@ -4408,7 +4429,7 @@ function hs(e) {
|
|
|
4408
4429
|
i = await e.mint();
|
|
4409
4430
|
} catch (e) {
|
|
4410
4431
|
if (t) return;
|
|
4411
|
-
e?.name !== "TypeError" &&
|
|
4432
|
+
e?.name !== "TypeError" && L(e, { context: "subscription-token-refresh" }), n = setTimeout(r, ms);
|
|
4412
4433
|
return;
|
|
4413
4434
|
}
|
|
4414
4435
|
if (t) return;
|
|
@@ -4417,7 +4438,7 @@ function hs(e) {
|
|
|
4417
4438
|
try {
|
|
4418
4439
|
e.onIssued(i);
|
|
4419
4440
|
} catch (e) {
|
|
4420
|
-
|
|
4441
|
+
L(e, { context: "subscription-token-issued" });
|
|
4421
4442
|
}
|
|
4422
4443
|
}
|
|
4423
4444
|
return r(), () => {
|
|
@@ -4426,7 +4447,7 @@ function hs(e) {
|
|
|
4426
4447
|
}
|
|
4427
4448
|
//#endregion
|
|
4428
4449
|
//#region src/runtime/use-subscription-token.ts
|
|
4429
|
-
var gs =
|
|
4450
|
+
var gs = Vr({
|
|
4430
4451
|
idle: { issued: (e, t) => ({
|
|
4431
4452
|
kind: "active",
|
|
4432
4453
|
token: t.token,
|
|
@@ -4450,8 +4471,8 @@ function bs(e, t) {
|
|
|
4450
4471
|
return e.kind === "active" && e.mintedAs === t;
|
|
4451
4472
|
}
|
|
4452
4473
|
function xs(e, t) {
|
|
4453
|
-
let [n, r] =
|
|
4454
|
-
return
|
|
4474
|
+
let [n, r] = Hr(gs, { kind: "idle" }), i = ys(t);
|
|
4475
|
+
return H(() => hs({
|
|
4455
4476
|
mint: () => e.getSubscriptionToken(),
|
|
4456
4477
|
onIssued: (e) => r({
|
|
4457
4478
|
type: "issued",
|
|
@@ -4501,7 +4522,7 @@ async function Ss(e) {
|
|
|
4501
4522
|
};
|
|
4502
4523
|
} catch (e) {
|
|
4503
4524
|
let t = e?.name;
|
|
4504
|
-
return t !== "AbortError" && t !== "TypeError" && t !== "TimeoutError" &&
|
|
4525
|
+
return t !== "AbortError" && t !== "TypeError" && t !== "TimeoutError" && L(e, { context: "refresh-token" }), null;
|
|
4505
4526
|
}
|
|
4506
4527
|
}
|
|
4507
4528
|
//#endregion
|
|
@@ -4509,7 +4530,7 @@ async function Ss(e) {
|
|
|
4509
4530
|
var Cs = 6e4, ws = 500;
|
|
4510
4531
|
function Ts(e, t, n, r, i) {
|
|
4511
4532
|
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;
|
|
4512
|
-
|
|
4533
|
+
H(() => {
|
|
4513
4534
|
if (!a || c == null || l == null || o === "localStorage" && s == null || o !== "cookies" && o !== "localStorage") return;
|
|
4514
4535
|
let u = Date.now();
|
|
4515
4536
|
if (c <= u) {
|
|
@@ -4570,7 +4591,7 @@ function Es() {
|
|
|
4570
4591
|
};
|
|
4571
4592
|
}
|
|
4572
4593
|
//#endregion
|
|
4573
|
-
//#region ../../node_modules/.pnpm/preact@10.29.
|
|
4594
|
+
//#region ../../node_modules/.pnpm/preact@10.29.8/node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js
|
|
4574
4595
|
var Ds = 0;
|
|
4575
4596
|
Array.isArray;
|
|
4576
4597
|
function Q(e, n, r, i, a, o) {
|
|
@@ -4852,8 +4873,8 @@ var Qs = {
|
|
|
4852
4873
|
//#endregion
|
|
4853
4874
|
//#region src/runtime/ui/identity-menu.tsx
|
|
4854
4875
|
function $s({ identity: e, position: t, isSigningIn: n, isSigningOut: r, dashboardUrl: i, commentAccess: a = "anyone", onSignIn: o, onSignOut: s, onForgetMe: c }) {
|
|
4855
|
-
let [l, u] =
|
|
4856
|
-
|
|
4876
|
+
let [l, u] = V(!1), d = ei(l || null, 140), f = d?.isLeaving ?? !1, [p, m] = V(!1), [h, g] = V(!1), _ = W(null);
|
|
4877
|
+
H(() => {
|
|
4857
4878
|
if (!l) return;
|
|
4858
4879
|
function e(e) {
|
|
4859
4880
|
let t = _.current;
|
|
@@ -4867,10 +4888,10 @@ function $s({ identity: e, position: t, isSigningIn: n, isSigningOut: r, dashboa
|
|
|
4867
4888
|
};
|
|
4868
4889
|
}, [l]);
|
|
4869
4890
|
let v = d != null;
|
|
4870
|
-
|
|
4891
|
+
H(() => {
|
|
4871
4892
|
v || (m(!1), g(!1));
|
|
4872
4893
|
}, [v]);
|
|
4873
|
-
let y = aa(e), b = ec(y), x = e.kind === "verified", C = e.kind === "verified" ? e.identity.image : void 0, [w, T] =
|
|
4894
|
+
let y = aa(e), b = ec(y), x = e.kind === "verified", C = e.kind === "verified" ? e.identity.image : void 0, [w, T] = V(null), E = x && C != null && w !== C, D = x ? e.identity.email : null, O = t === "bottom-left" ? "is-anchor-left" : t === "bottom-center" ? "is-anchor-center" : "is-anchor-right";
|
|
4874
4895
|
return /* @__PURE__ */ Q("div", {
|
|
4875
4896
|
ref: _,
|
|
4876
4897
|
style: {
|
|
@@ -4997,11 +5018,13 @@ function ec(e) {
|
|
|
4997
5018
|
//#endregion
|
|
4998
5019
|
//#region src/runtime/use-drag.ts
|
|
4999
5020
|
function tc(e) {
|
|
5000
|
-
let t =
|
|
5001
|
-
|
|
5002
|
-
|
|
5021
|
+
let t = W(e);
|
|
5022
|
+
U(() => {
|
|
5023
|
+
t.current = e;
|
|
5024
|
+
});
|
|
5025
|
+
let [n, r] = V(!1);
|
|
5003
5026
|
return {
|
|
5004
|
-
onPointerDown:
|
|
5027
|
+
onPointerDown: G((e) => {
|
|
5005
5028
|
let n = t.current;
|
|
5006
5029
|
if (n.preventDefault && e.preventDefault(), n.stopPropagation && e.stopPropagation(), e.button !== 0 || n.shouldStart && !n.shouldStart(e)) return;
|
|
5007
5030
|
let i = e.currentTarget;
|
|
@@ -5054,7 +5077,7 @@ var rc = [
|
|
|
5054
5077
|
"[tabindex]:not([tabindex=\"-1\"])"
|
|
5055
5078
|
].join(",");
|
|
5056
5079
|
function ic(e, t) {
|
|
5057
|
-
|
|
5080
|
+
H(() => {
|
|
5058
5081
|
if (!t) return;
|
|
5059
5082
|
let n = e.current;
|
|
5060
5083
|
if (!n) return;
|
|
@@ -5071,8 +5094,8 @@ function ic(e, t) {
|
|
|
5071
5094
|
//#endregion
|
|
5072
5095
|
//#region src/runtime/use-object-url.ts
|
|
5073
5096
|
function ac(e) {
|
|
5074
|
-
let [t, n] =
|
|
5075
|
-
return
|
|
5097
|
+
let [t, n] = V(null);
|
|
5098
|
+
return H(() => {
|
|
5076
5099
|
if (!e) {
|
|
5077
5100
|
n(null);
|
|
5078
5101
|
return;
|
|
@@ -5084,8 +5107,8 @@ function ac(e) {
|
|
|
5084
5107
|
//#endregion
|
|
5085
5108
|
//#region src/runtime/ui/author-prompt.tsx
|
|
5086
5109
|
function oc({ mode: e = "guest-or-sign-in", isPending: t, isConnecting: n = !1, isSigningIn: r = !1, onSubmit: i, onCancel: a, onSignIn: o, onSignOut: s }) {
|
|
5087
|
-
let [c, l] =
|
|
5088
|
-
|
|
5110
|
+
let [c, l] = V(""), [u, d] = V(""), f = W(null);
|
|
5111
|
+
H(() => {
|
|
5089
5112
|
f.current?.focus();
|
|
5090
5113
|
}, []);
|
|
5091
5114
|
function p(e) {
|
|
@@ -5238,7 +5261,7 @@ function fc(e) {
|
|
|
5238
5261
|
let s = o, c = s.getAttribute(sc);
|
|
5239
5262
|
if (c) {
|
|
5240
5263
|
let e = pc(s);
|
|
5241
|
-
t +=
|
|
5264
|
+
t += qr({
|
|
5242
5265
|
userId: c,
|
|
5243
5266
|
name: e
|
|
5244
5267
|
}) ?? `@${e}`;
|
|
@@ -5262,7 +5285,7 @@ function mc(e, t, n) {
|
|
|
5262
5285
|
}
|
|
5263
5286
|
function hc(e, t, n) {
|
|
5264
5287
|
let r = e.createDocumentFragment();
|
|
5265
|
-
for (let i of
|
|
5288
|
+
for (let i of Wr(t)) {
|
|
5266
5289
|
if (i.type === "text") {
|
|
5267
5290
|
i.value && r.appendChild(e.createTextNode(i.value));
|
|
5268
5291
|
continue;
|
|
@@ -5312,14 +5335,14 @@ function bc(e, t, n) {
|
|
|
5312
5335
|
i.setStart(t, n), i.collapse(!0), r.removeAllRanges(), r.addRange(i);
|
|
5313
5336
|
}
|
|
5314
5337
|
function xc(e) {
|
|
5315
|
-
let t =
|
|
5338
|
+
let t = Kr(e.node.data, e.offset);
|
|
5316
5339
|
return t ? {
|
|
5317
5340
|
...t,
|
|
5318
5341
|
textNode: e.node
|
|
5319
5342
|
} : null;
|
|
5320
5343
|
}
|
|
5321
5344
|
function Sc(e, t, n, r) {
|
|
5322
|
-
if (
|
|
5345
|
+
if (qr(n) == null) return !1;
|
|
5323
5346
|
let i = t.textNode;
|
|
5324
5347
|
if (!e.contains(i)) return !1;
|
|
5325
5348
|
let a = i.parentNode;
|
|
@@ -5483,10 +5506,10 @@ function Nc(e) {
|
|
|
5483
5506
|
//#endregion
|
|
5484
5507
|
//#region src/runtime/ui/mentions.tsx
|
|
5485
5508
|
function Pc({ body: e, mentions: t, trailing: n }) {
|
|
5486
|
-
let r =
|
|
5509
|
+
let r = nt(() => new Set(t), [t]);
|
|
5487
5510
|
return /* @__PURE__ */ Q("p", {
|
|
5488
5511
|
class: "markup-comment-body",
|
|
5489
|
-
children: [
|
|
5512
|
+
children: [nt(() => Wr(e), [e]).map((e, t) => e.type === "mention" ? r.has(e.userId) ? /* @__PURE__ */ Q("span", {
|
|
5490
5513
|
class: "markup-mention-chip",
|
|
5491
5514
|
children: ["@", e.name]
|
|
5492
5515
|
}, t) : /* @__PURE__ */ Q("span", { children: ["@", e.name] }, t) : Nc(e.value).map((e, n) => e.type === "link" ? /* @__PURE__ */ Q("a", {
|
|
@@ -5499,12 +5522,12 @@ function Pc({ body: e, mentions: t, trailing: n }) {
|
|
|
5499
5522
|
});
|
|
5500
5523
|
}
|
|
5501
5524
|
function Fc(e) {
|
|
5502
|
-
let { members: t, trigger: n, onSelect: r, onClose: i } = e, [a, o] =
|
|
5525
|
+
let { members: t, trigger: n, onSelect: r, onClose: i } = e, [a, o] = V(0), s = nt(() => {
|
|
5503
5526
|
if (!n) return [];
|
|
5504
5527
|
let e = n.query.toLowerCase();
|
|
5505
5528
|
return t.filter((t) => t.name.toLowerCase().includes(e)).slice(0, 6);
|
|
5506
5529
|
}, [n, t]);
|
|
5507
|
-
|
|
5530
|
+
H(() => {
|
|
5508
5531
|
o((e) => e >= s.length ? 0 : e);
|
|
5509
5532
|
}, [s]);
|
|
5510
5533
|
function c(e) {
|
|
@@ -5527,8 +5550,8 @@ function Fc(e) {
|
|
|
5527
5550
|
};
|
|
5528
5551
|
}
|
|
5529
5552
|
function Ic({ items: e, highlight: t, setHighlight: n, onSelect: r, anchor: i }) {
|
|
5530
|
-
let a =
|
|
5531
|
-
return
|
|
5553
|
+
let a = W(null);
|
|
5554
|
+
return U(() => {
|
|
5532
5555
|
let e = null;
|
|
5533
5556
|
function t() {
|
|
5534
5557
|
i.current && a.current && zc(i.current, a.current);
|
|
@@ -5583,12 +5606,12 @@ function zc(e, t) {
|
|
|
5583
5606
|
//#endregion
|
|
5584
5607
|
//#region src/runtime/ui/mention-input.tsx
|
|
5585
5608
|
function Bc({ value: e, onChange: t, onKeyDown: n, members: r, label: i, placeholder: a, disabled: o = !1, autoFocus: s = !1, class: c, handle: l }) {
|
|
5586
|
-
let u =
|
|
5587
|
-
|
|
5588
|
-
|
|
5589
|
-
|
|
5590
|
-
let g =
|
|
5591
|
-
|
|
5609
|
+
let u = W(null), d = W(null), [f, p] = V(null), m = W(t), h = W(r);
|
|
5610
|
+
U(() => {
|
|
5611
|
+
m.current = t, h.current = r;
|
|
5612
|
+
});
|
|
5613
|
+
let g = W(e);
|
|
5614
|
+
U(() => {
|
|
5592
5615
|
let e = u.current;
|
|
5593
5616
|
if (!e) return;
|
|
5594
5617
|
let t = wc(e, {
|
|
@@ -5601,13 +5624,13 @@ function Bc({ value: e, onChange: t, onKeyDown: n, members: r, label: i, placeho
|
|
|
5601
5624
|
return d.current = t, () => {
|
|
5602
5625
|
t.destroy(), d.current = null;
|
|
5603
5626
|
};
|
|
5604
|
-
}, []),
|
|
5627
|
+
}, []), U(() => {
|
|
5605
5628
|
if (l) return l.current = { focus: () => d.current?.focus() }, () => {
|
|
5606
5629
|
l.current = null;
|
|
5607
5630
|
};
|
|
5608
|
-
}, [l]),
|
|
5631
|
+
}, [l]), U(() => {
|
|
5609
5632
|
s && d.current?.focus();
|
|
5610
|
-
}, [s]),
|
|
5633
|
+
}, [s]), U(() => {
|
|
5611
5634
|
let t = d.current;
|
|
5612
5635
|
t && t.getValue() !== e && t.setValue(e);
|
|
5613
5636
|
}, [e]);
|
|
@@ -5645,8 +5668,8 @@ function Bc({ value: e, onChange: t, onKeyDown: n, members: r, label: i, placeho
|
|
|
5645
5668
|
//#region src/runtime/ui/composer.tsx
|
|
5646
5669
|
var Vc = 4e3;
|
|
5647
5670
|
function Hc({ label: e, placeholder: t = "Leave feedback…", submitLabel: n = "Post", initialFocus: r = !0, isPending: i, error: a, onSubmit: o, onDirtyChange: s, members: c }) {
|
|
5648
|
-
let [l, u] =
|
|
5649
|
-
|
|
5671
|
+
let [l, u] = V(""), d = W(null), f = W(!1);
|
|
5672
|
+
H(() => {
|
|
5650
5673
|
f.current && !i && !a && (u(""), s?.(!1), d.current?.focus()), f.current = i;
|
|
5651
5674
|
}, [
|
|
5652
5675
|
i,
|
|
@@ -5734,27 +5757,27 @@ function Hc({ label: e, placeholder: t = "Leave feedback…", submitLabel: n = "
|
|
|
5734
5757
|
}
|
|
5735
5758
|
//#endregion
|
|
5736
5759
|
//#region src/runtime/ui/new-thread-popover.tsx
|
|
5737
|
-
var Uc = "https://markup.pixelmatters.dev/docs/install#9-screenshots-privacy";
|
|
5738
|
-
function
|
|
5739
|
-
let x =
|
|
5760
|
+
var Uc = [], Wc = "https://markup.pixelmatters.dev/docs/install#9-screenshots-privacy";
|
|
5761
|
+
function Gc({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified: i, isIdentityResolving: a, isSigningIn: o, isPending: s, error: c, screenshot: l, isScreenshotCapturing: u, screenshotFailed: d, screenshotRedactedCount: f, screenshotRedactedSelectors: p, members: m = Uc, isLeaving: h = !1, onAuthor: g, onSignIn: _, onSignOut: v, onSubmit: y, onClose: b }) {
|
|
5762
|
+
let x = W(null);
|
|
5740
5763
|
ic(x, !h);
|
|
5741
|
-
let C =
|
|
5764
|
+
let C = W(!1), w = W(!1), [T, E] = V(!1), D = ei(T || null, 120), O = G((e) => {
|
|
5742
5765
|
w.current = e, E(e);
|
|
5743
|
-
}, []), k =
|
|
5766
|
+
}, []), k = G(() => {
|
|
5744
5767
|
w.current || (C.current ? O(!0) : b());
|
|
5745
|
-
}, [b, O]), A =
|
|
5768
|
+
}, [b, O]), A = G(() => {
|
|
5746
5769
|
O(!1), x.current?.querySelector(".markup-mention-input")?.focus();
|
|
5747
|
-
}, [O]), [j,
|
|
5770
|
+
}, [O]), [j, ee] = V(!1), [M, te] = V(!1), N = ac(l), ne = W(null), [P, F] = V(null), { onPointerDown: re, isDragging: ie } = tc({
|
|
5748
5771
|
targetRef: x,
|
|
5749
5772
|
shouldStart: (e) => !e.target?.closest("button, a, input, textarea, select"),
|
|
5750
5773
|
onMove: F
|
|
5751
5774
|
});
|
|
5752
|
-
|
|
5775
|
+
U(() => {
|
|
5753
5776
|
let e = x.current;
|
|
5754
|
-
if (
|
|
5777
|
+
if (e && typeof e.showPopover == "function") try {
|
|
5755
5778
|
h ? e.matches(":popover-open") && e.hidePopover() : e.matches(":popover-open") || e.showPopover();
|
|
5756
5779
|
} catch {}
|
|
5757
|
-
}, [h]),
|
|
5780
|
+
}, [h]), H(() => {
|
|
5758
5781
|
let e = x.current;
|
|
5759
5782
|
if (!e || h) return;
|
|
5760
5783
|
function t(t) {
|
|
@@ -5776,10 +5799,10 @@ function Wc({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified
|
|
|
5776
5799
|
k,
|
|
5777
5800
|
A,
|
|
5778
5801
|
h
|
|
5779
|
-
]),
|
|
5802
|
+
]), H(() => {
|
|
5780
5803
|
T && x.current?.querySelector(".markup-discard-confirm-keep")?.focus();
|
|
5781
5804
|
}, [T]);
|
|
5782
|
-
let ae =
|
|
5805
|
+
let ae = Kc(e - window.scrollX + 16, 12, window.innerWidth - 320 - 12), oe = Kc(t - window.scrollY - 16, 12, window.innerHeight - 220), se = typeof window < "u" ? window.location.href : "", ce = l != null, le = u || ce || d, ue = j && ce;
|
|
5783
5806
|
return /* @__PURE__ */ Q("div", {
|
|
5784
5807
|
ref: x,
|
|
5785
5808
|
class: Z("markup-popover", P && "is-floating", ie && "is-dragging", h && "is-leaving"),
|
|
@@ -5863,15 +5886,15 @@ function Wc({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified
|
|
|
5863
5886
|
type: "checkbox",
|
|
5864
5887
|
class: "markup-screenshot-checkbox",
|
|
5865
5888
|
checked: j,
|
|
5866
|
-
onChange: (e) =>
|
|
5889
|
+
onChange: (e) => ee(e.currentTarget.checked)
|
|
5867
5890
|
}),
|
|
5868
5891
|
/* @__PURE__ */ Q(Ps, { size: 12 }),
|
|
5869
5892
|
/* @__PURE__ */ Q("span", { children: "Attach screenshot" })
|
|
5870
5893
|
]
|
|
5871
5894
|
}),
|
|
5872
|
-
ue &&
|
|
5895
|
+
ue && N ? /* @__PURE__ */ Q("a", {
|
|
5873
5896
|
class: "markup-screenshot-thumb-link",
|
|
5874
|
-
href:
|
|
5897
|
+
href: N,
|
|
5875
5898
|
target: "_blank",
|
|
5876
5899
|
rel: "noopener",
|
|
5877
5900
|
title: "Preview screenshot",
|
|
@@ -5881,19 +5904,19 @@ function Wc({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified
|
|
|
5881
5904
|
},
|
|
5882
5905
|
children: /* @__PURE__ */ Q("img", {
|
|
5883
5906
|
class: "markup-screenshot-thumb",
|
|
5884
|
-
src:
|
|
5907
|
+
src: N,
|
|
5885
5908
|
alt: ""
|
|
5886
5909
|
})
|
|
5887
5910
|
}) : null,
|
|
5888
5911
|
ue && f > 0 ? /* @__PURE__ */ Q("button", {
|
|
5889
5912
|
type: "button",
|
|
5890
5913
|
class: "markup-screenshot-redacted-chip",
|
|
5891
|
-
"aria-expanded":
|
|
5892
|
-
onClick: () =>
|
|
5914
|
+
"aria-expanded": M,
|
|
5915
|
+
onClick: () => te((e) => !e),
|
|
5893
5916
|
children: [
|
|
5894
5917
|
/* @__PURE__ */ Q("em", {
|
|
5895
5918
|
class: "markup-screenshot-redacted-arrow",
|
|
5896
|
-
children:
|
|
5919
|
+
children: M ? "▾" : "▸"
|
|
5897
5920
|
}),
|
|
5898
5921
|
f,
|
|
5899
5922
|
" ",
|
|
@@ -5903,7 +5926,7 @@ function Wc({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified
|
|
|
5903
5926
|
]
|
|
5904
5927
|
}) : null
|
|
5905
5928
|
]
|
|
5906
|
-
}), ue ? /* @__PURE__ */ Q(S, { children: [
|
|
5929
|
+
}), ue ? /* @__PURE__ */ Q(S, { children: [M && f > 0 ? /* @__PURE__ */ Q("div", {
|
|
5907
5930
|
class: "markup-screenshot-redacted-list",
|
|
5908
5931
|
children: p.map((e) => /* @__PURE__ */ Q("code", {
|
|
5909
5932
|
class: "markup-screenshot-redacted-selector",
|
|
@@ -5916,7 +5939,7 @@ function Wc({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified
|
|
|
5916
5939
|
" ",
|
|
5917
5940
|
/* @__PURE__ */ Q("a", {
|
|
5918
5941
|
class: "markup-screenshot-help-link",
|
|
5919
|
-
href:
|
|
5942
|
+
href: Wc,
|
|
5920
5943
|
target: "_blank",
|
|
5921
5944
|
rel: "noopener noreferrer",
|
|
5922
5945
|
children: "More info here."
|
|
@@ -5935,7 +5958,7 @@ function Wc({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified
|
|
|
5935
5958
|
onSignIn: _,
|
|
5936
5959
|
onSignOut: v
|
|
5937
5960
|
}),
|
|
5938
|
-
ue &&
|
|
5961
|
+
ue && N ? /* @__PURE__ */ Q("dialog", {
|
|
5939
5962
|
ref: ne,
|
|
5940
5963
|
class: "markup-lightbox",
|
|
5941
5964
|
onClick: () => ne.current?.close(),
|
|
@@ -5949,7 +5972,7 @@ function Wc({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified
|
|
|
5949
5972
|
children: /* @__PURE__ */ Q(ks, { size: 16 })
|
|
5950
5973
|
}), /* @__PURE__ */ Q("img", {
|
|
5951
5974
|
class: "markup-lightbox-img",
|
|
5952
|
-
src:
|
|
5975
|
+
src: N,
|
|
5953
5976
|
alt: "Screenshot preview",
|
|
5954
5977
|
onClick: (e) => e.stopPropagation()
|
|
5955
5978
|
})]
|
|
@@ -5990,12 +6013,12 @@ function Wc({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified
|
|
|
5990
6013
|
]
|
|
5991
6014
|
});
|
|
5992
6015
|
}
|
|
5993
|
-
function
|
|
6016
|
+
function Kc(e, t, n) {
|
|
5994
6017
|
return Math.max(t, Math.min(n, e));
|
|
5995
6018
|
}
|
|
5996
6019
|
//#endregion
|
|
5997
6020
|
//#region src/runtime/ui/notifications-panel.tsx
|
|
5998
|
-
function
|
|
6021
|
+
function qc({ state: e, onBack: t, onItemClick: n, onMarkAllRead: r, isMarkingAll: i }) {
|
|
5999
6022
|
let a = e.kind === "ready" && e.items.some((e) => e.readAt == null);
|
|
6000
6023
|
return /* @__PURE__ */ Q("div", {
|
|
6001
6024
|
class: "markup-notifications-panel",
|
|
@@ -6076,7 +6099,7 @@ function Kc({ state: e, onBack: t, onItemClick: n, onMarkAllRead: r, isMarkingAl
|
|
|
6076
6099
|
}),
|
|
6077
6100
|
/* @__PURE__ */ Q("span", {
|
|
6078
6101
|
class: "markup-notifications-panel-time",
|
|
6079
|
-
children:
|
|
6102
|
+
children: Jc(e.createdAt)
|
|
6080
6103
|
})
|
|
6081
6104
|
]
|
|
6082
6105
|
}),
|
|
@@ -6108,7 +6131,7 @@ function Kc({ state: e, onBack: t, onItemClick: n, onMarkAllRead: r, isMarkingAl
|
|
|
6108
6131
|
})]
|
|
6109
6132
|
});
|
|
6110
6133
|
}
|
|
6111
|
-
function
|
|
6134
|
+
function Jc(e) {
|
|
6112
6135
|
let t = Date.now() - e, n = Math.floor(t / 1e3);
|
|
6113
6136
|
if (n < 60) return "just now";
|
|
6114
6137
|
let r = Math.floor(n / 60);
|
|
@@ -6120,18 +6143,18 @@ function qc(e) {
|
|
|
6120
6143
|
}
|
|
6121
6144
|
//#endregion
|
|
6122
6145
|
//#region src/runtime/use-theme.ts
|
|
6123
|
-
function
|
|
6124
|
-
let [, e] =
|
|
6125
|
-
return
|
|
6126
|
-
mode:
|
|
6127
|
-
resolved:
|
|
6128
|
-
set:
|
|
6146
|
+
function Yc() {
|
|
6147
|
+
let [, e] = V(0);
|
|
6148
|
+
return H(() => Ve(() => e((e) => e + 1)), []), {
|
|
6149
|
+
mode: Re(),
|
|
6150
|
+
resolved: ze(),
|
|
6151
|
+
set: Be
|
|
6129
6152
|
};
|
|
6130
6153
|
}
|
|
6131
6154
|
//#endregion
|
|
6132
6155
|
//#region src/runtime/ui/privacy-panel.tsx
|
|
6133
|
-
function
|
|
6134
|
-
let [l, u] =
|
|
6156
|
+
function Xc({ identity: e, apiUrl: t, commentAccess: n = "anyone", autoCapture: r, autoCaptureLocked: i, isForgettingMe: a, forgetMeError: o, onForgetMe: s, onBack: c }) {
|
|
6157
|
+
let [l, u] = V(!1), d = aa(e), f = e.kind === "verified", p = f ? e.identity.email : void 0, m = e.kind === "anon";
|
|
6135
6158
|
return /* @__PURE__ */ Q("div", {
|
|
6136
6159
|
class: "markup-panel",
|
|
6137
6160
|
children: [/* @__PURE__ */ Q("header", {
|
|
@@ -6232,7 +6255,7 @@ function Yc({ identity: e, apiUrl: t, commentAccess: n = "anyone", autoCapture:
|
|
|
6232
6255
|
"Only ",
|
|
6233
6256
|
/* @__PURE__ */ Q("span", {
|
|
6234
6257
|
class: "markup-panel-mono",
|
|
6235
|
-
children:
|
|
6258
|
+
children: Zc(t)
|
|
6236
6259
|
}),
|
|
6237
6260
|
". 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."
|
|
6238
6261
|
]
|
|
@@ -6268,7 +6291,7 @@ function Yc({ identity: e, apiUrl: t, commentAccess: n = "anyone", autoCapture:
|
|
|
6268
6291
|
})]
|
|
6269
6292
|
});
|
|
6270
6293
|
}
|
|
6271
|
-
function
|
|
6294
|
+
function Zc(e) {
|
|
6272
6295
|
try {
|
|
6273
6296
|
return new URL(e).host;
|
|
6274
6297
|
} catch {
|
|
@@ -6277,7 +6300,7 @@ function Xc(e) {
|
|
|
6277
6300
|
}
|
|
6278
6301
|
//#endregion
|
|
6279
6302
|
//#region src/runtime/ui/shortcuts-panel.tsx
|
|
6280
|
-
function
|
|
6303
|
+
function Qc({ onBack: e }) {
|
|
6281
6304
|
let { mod: t, enter: n } = Es();
|
|
6282
6305
|
return /* @__PURE__ */ Q("div", {
|
|
6283
6306
|
class: "markup-panel",
|
|
@@ -6374,18 +6397,18 @@ function Zc({ onBack: e }) {
|
|
|
6374
6397
|
}
|
|
6375
6398
|
//#endregion
|
|
6376
6399
|
//#region src/runtime/ui/overflow-menu.tsx
|
|
6377
|
-
var
|
|
6400
|
+
var $c = {
|
|
6378
6401
|
menu: "More options",
|
|
6379
6402
|
privacy: "Privacy and data",
|
|
6380
6403
|
shortcuts: "Keyboard shortcuts"
|
|
6381
6404
|
};
|
|
6382
|
-
function
|
|
6383
|
-
let [g, _] =
|
|
6405
|
+
function el({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked: r = !1, onToggleAutoCapture: i, showResolved: a, onToggleShowResolved: o, onHideForSession: s, identity: c, apiUrl: l, commentAccess: u, isForgettingMe: d, forgetMeError: f, onForgetMe: p, version: m, dashboardUrl: h }) {
|
|
6406
|
+
let [g, _] = V(!1), [v, y] = V("menu"), b = ei(g || null, 140), x = b?.isLeaving ?? !1, S = W(null), C = W(null), w = W(null), T = W(null), E = W("menu"), D = W(null), O = W(v);
|
|
6384
6407
|
O.current = v;
|
|
6385
|
-
let k =
|
|
6386
|
-
|
|
6408
|
+
let k = Yc();
|
|
6409
|
+
H(() => {
|
|
6387
6410
|
g && (y("menu"), E.current = "menu");
|
|
6388
|
-
}, [g]),
|
|
6411
|
+
}, [g]), U(() => {
|
|
6389
6412
|
if (!g) return;
|
|
6390
6413
|
if (v !== "menu") {
|
|
6391
6414
|
C.current?.focus({ preventScroll: !0 });
|
|
@@ -6393,7 +6416,7 @@ function $c({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
|
|
|
6393
6416
|
}
|
|
6394
6417
|
let e = E.current;
|
|
6395
6418
|
e !== "menu" && (E.current = "menu", (e === "privacy" ? w.current : T.current)?.focus({ preventScroll: !0 }));
|
|
6396
|
-
}, [g, v]),
|
|
6419
|
+
}, [g, v]), U(() => {
|
|
6397
6420
|
let e = C.current, t = D.current;
|
|
6398
6421
|
if (D.current = null, !e || t == null || window.matchMedia("(prefers-reduced-motion: reduce)").matches) return;
|
|
6399
6422
|
let n = e.getBoundingClientRect().height;
|
|
@@ -6405,7 +6428,7 @@ function $c({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
|
|
|
6405
6428
|
return e.addEventListener("transitionend", r), () => {
|
|
6406
6429
|
e.removeEventListener("transitionend", r), e.style.height = "";
|
|
6407
6430
|
};
|
|
6408
|
-
}, [v]),
|
|
6431
|
+
}, [v]), H(() => {
|
|
6409
6432
|
if (!g) return;
|
|
6410
6433
|
function e(e) {
|
|
6411
6434
|
let t = S.current;
|
|
@@ -6427,7 +6450,7 @@ function $c({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
|
|
|
6427
6450
|
function A(e) {
|
|
6428
6451
|
D.current = C.current?.getBoundingClientRect().height ?? null, e !== "menu" && (E.current = e), y(e);
|
|
6429
6452
|
}
|
|
6430
|
-
let j = e === "bottom-left" ? "is-anchor-left" : e === "bottom-center" ? "is-anchor-center" : "is-anchor-right", { mod:
|
|
6453
|
+
let j = e === "bottom-left" ? "is-anchor-left" : e === "bottom-center" ? "is-anchor-center" : "is-anchor-right", { mod: ee } = Es();
|
|
6431
6454
|
return /* @__PURE__ */ Q("div", {
|
|
6432
6455
|
ref: S,
|
|
6433
6456
|
style: {
|
|
@@ -6453,10 +6476,10 @@ function $c({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
|
|
|
6453
6476
|
"data-pop": "overflow",
|
|
6454
6477
|
"data-view": v,
|
|
6455
6478
|
role: "dialog",
|
|
6456
|
-
"aria-label":
|
|
6479
|
+
"aria-label": $c[v],
|
|
6457
6480
|
tabIndex: -1,
|
|
6458
6481
|
inert: x || void 0,
|
|
6459
|
-
children: v === "privacy" ? /* @__PURE__ */ Q(
|
|
6482
|
+
children: v === "privacy" ? /* @__PURE__ */ Q(Xc, {
|
|
6460
6483
|
identity: c,
|
|
6461
6484
|
apiUrl: l,
|
|
6462
6485
|
commentAccess: u,
|
|
@@ -6470,7 +6493,7 @@ function $c({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
|
|
|
6470
6493
|
});
|
|
6471
6494
|
},
|
|
6472
6495
|
onBack: () => A("menu")
|
|
6473
|
-
}) : v === "shortcuts" ? /* @__PURE__ */ Q(
|
|
6496
|
+
}) : v === "shortcuts" ? /* @__PURE__ */ Q(Qc, { onBack: () => A("menu") }) : /* @__PURE__ */ Q("div", {
|
|
6474
6497
|
role: "menu",
|
|
6475
6498
|
class: "markup-menu-view",
|
|
6476
6499
|
children: [
|
|
@@ -6535,7 +6558,7 @@ function $c({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
|
|
|
6535
6558
|
title: "Bottom left",
|
|
6536
6559
|
class: Z(e === "bottom-left" && "is-on"),
|
|
6537
6560
|
onClick: () => t("bottom-left"),
|
|
6538
|
-
children: /* @__PURE__ */ Q(
|
|
6561
|
+
children: /* @__PURE__ */ Q(tl, { side: "left" })
|
|
6539
6562
|
}),
|
|
6540
6563
|
/* @__PURE__ */ Q("button", {
|
|
6541
6564
|
type: "button",
|
|
@@ -6545,7 +6568,7 @@ function $c({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
|
|
|
6545
6568
|
title: "Bottom center",
|
|
6546
6569
|
class: Z(e === "bottom-center" && "is-on"),
|
|
6547
6570
|
onClick: () => t("bottom-center"),
|
|
6548
|
-
children: /* @__PURE__ */ Q(
|
|
6571
|
+
children: /* @__PURE__ */ Q(tl, { side: "center" })
|
|
6549
6572
|
}),
|
|
6550
6573
|
/* @__PURE__ */ Q("button", {
|
|
6551
6574
|
type: "button",
|
|
@@ -6555,7 +6578,7 @@ function $c({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
|
|
|
6555
6578
|
title: "Bottom right",
|
|
6556
6579
|
class: Z(e === "bottom-right" && "is-on"),
|
|
6557
6580
|
onClick: () => t("bottom-right"),
|
|
6558
|
-
children: /* @__PURE__ */ Q(
|
|
6581
|
+
children: /* @__PURE__ */ Q(tl, { side: "right" })
|
|
6559
6582
|
})
|
|
6560
6583
|
]
|
|
6561
6584
|
})]
|
|
@@ -6577,7 +6600,7 @@ function $c({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
|
|
|
6577
6600
|
children: [
|
|
6578
6601
|
/* @__PURE__ */ Q("span", {
|
|
6579
6602
|
class: "ic",
|
|
6580
|
-
children: /* @__PURE__ */ Q(
|
|
6603
|
+
children: /* @__PURE__ */ Q(nl, {})
|
|
6581
6604
|
}),
|
|
6582
6605
|
/* @__PURE__ */ Q("span", {
|
|
6583
6606
|
class: "lbl",
|
|
@@ -6674,7 +6697,7 @@ function $c({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
|
|
|
6674
6697
|
children: [
|
|
6675
6698
|
/* @__PURE__ */ Q("span", {
|
|
6676
6699
|
class: "ic",
|
|
6677
|
-
children: /* @__PURE__ */ Q(
|
|
6700
|
+
children: /* @__PURE__ */ Q(rl, {})
|
|
6678
6701
|
}),
|
|
6679
6702
|
/* @__PURE__ */ Q("span", {
|
|
6680
6703
|
class: "lbl",
|
|
@@ -6682,7 +6705,7 @@ function $c({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
|
|
|
6682
6705
|
}),
|
|
6683
6706
|
/* @__PURE__ */ Q("span", {
|
|
6684
6707
|
class: "right",
|
|
6685
|
-
children: [
|
|
6708
|
+
children: [ee, " ."]
|
|
6686
6709
|
})
|
|
6687
6710
|
]
|
|
6688
6711
|
}),
|
|
@@ -6705,7 +6728,7 @@ function $c({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
|
|
|
6705
6728
|
}) : null]
|
|
6706
6729
|
});
|
|
6707
6730
|
}
|
|
6708
|
-
function
|
|
6731
|
+
function tl({ side: e }) {
|
|
6709
6732
|
return /* @__PURE__ */ Q("svg", {
|
|
6710
6733
|
width: 14,
|
|
6711
6734
|
height: 14,
|
|
@@ -6731,7 +6754,7 @@ function el({ side: e }) {
|
|
|
6731
6754
|
})]
|
|
6732
6755
|
});
|
|
6733
6756
|
}
|
|
6734
|
-
function
|
|
6757
|
+
function nl() {
|
|
6735
6758
|
return /* @__PURE__ */ Q("svg", {
|
|
6736
6759
|
width: 16,
|
|
6737
6760
|
height: 16,
|
|
@@ -6749,7 +6772,7 @@ function tl() {
|
|
|
6749
6772
|
})]
|
|
6750
6773
|
});
|
|
6751
6774
|
}
|
|
6752
|
-
function
|
|
6775
|
+
function rl() {
|
|
6753
6776
|
return /* @__PURE__ */ Q("svg", {
|
|
6754
6777
|
width: 16,
|
|
6755
6778
|
height: 16,
|
|
@@ -6770,9 +6793,9 @@ function nl() {
|
|
|
6770
6793
|
}
|
|
6771
6794
|
//#endregion
|
|
6772
6795
|
//#region src/runtime/ui/panel-popover.tsx
|
|
6773
|
-
function
|
|
6774
|
-
let s =
|
|
6775
|
-
return
|
|
6796
|
+
function il({ kind: e, label: t, position: n, ignoreToolbarKind: r, isLeaving: i = !1, onClose: a, children: o }) {
|
|
6797
|
+
let s = W(null);
|
|
6798
|
+
return H(() => {
|
|
6776
6799
|
if (i) return;
|
|
6777
6800
|
function e(e) {
|
|
6778
6801
|
let t = s.current;
|
|
@@ -6806,8 +6829,8 @@ function rl({ kind: e, label: t, position: n, ignoreToolbarKind: r, isLeaving: i
|
|
|
6806
6829
|
}
|
|
6807
6830
|
//#endregion
|
|
6808
6831
|
//#region src/runtime/ui/pin.tsx
|
|
6809
|
-
function
|
|
6810
|
-
let l =
|
|
6832
|
+
function al({ pageX: e, pageY: t, count: n, isActive: r, isUnresolved: i, isClosed: a = !1, isLeaving: o = !1, enterDelayMs: s = 0, onClick: c }) {
|
|
6833
|
+
let l = W(!r), u = t - window.scrollY, d = e - window.scrollX;
|
|
6811
6834
|
return /* @__PURE__ */ Q("button", {
|
|
6812
6835
|
type: "button",
|
|
6813
6836
|
class: Z("markup-pin", l.current && "is-entering", r && "is-active is-anchor", i && "is-unresolved", a && "is-closed", o && "is-leaving"),
|
|
@@ -6829,7 +6852,7 @@ function il({ pageX: e, pageY: t, count: n, isActive: r, isUnresolved: i, isClos
|
|
|
6829
6852
|
})
|
|
6830
6853
|
});
|
|
6831
6854
|
}
|
|
6832
|
-
function
|
|
6855
|
+
function ol({ pageX: e, pageY: t, isLeaving: n = !1 }) {
|
|
6833
6856
|
let r = t - window.scrollY, i = e - window.scrollX;
|
|
6834
6857
|
return /* @__PURE__ */ Q("div", {
|
|
6835
6858
|
class: Z("markup-pin", "markup-pin-ghost", "is-anchor", n && "is-leaving"),
|
|
@@ -6846,9 +6869,9 @@ function al({ pageX: e, pageY: t, isLeaving: n = !1 }) {
|
|
|
6846
6869
|
}
|
|
6847
6870
|
//#endregion
|
|
6848
6871
|
//#region src/runtime/ui/placement-overlay.tsx
|
|
6849
|
-
function
|
|
6850
|
-
let n =
|
|
6851
|
-
return
|
|
6872
|
+
function sl({ onPlace: e, onCancel: t }) {
|
|
6873
|
+
let n = W(null);
|
|
6874
|
+
return U(() => {
|
|
6852
6875
|
let r = n.current?.getRootNode() ?? null, i = (e) => r !== null && e.composedPath().includes(r);
|
|
6853
6876
|
function a(e) {
|
|
6854
6877
|
e.key === "Escape" && t();
|
|
@@ -6857,7 +6880,7 @@ function ol({ onPlace: e, onCancel: t }) {
|
|
|
6857
6880
|
i(e) || (e.preventDefault(), e.stopPropagation());
|
|
6858
6881
|
}
|
|
6859
6882
|
function s(t) {
|
|
6860
|
-
i(t) || (t.preventDefault(), t.stopPropagation(), e(
|
|
6883
|
+
i(t) || (t.preventDefault(), t.stopPropagation(), e(gi(t), t.clientX, t.clientY));
|
|
6861
6884
|
}
|
|
6862
6885
|
let c = { capture: !0 }, l = [
|
|
6863
6886
|
"pointerdown",
|
|
@@ -6871,7 +6894,7 @@ function ol({ onPlace: e, onCancel: t }) {
|
|
|
6871
6894
|
window.addEventListener("keydown", a);
|
|
6872
6895
|
for (let e of l) window.addEventListener(e, o, c);
|
|
6873
6896
|
window.addEventListener("click", s, c);
|
|
6874
|
-
let u =
|
|
6897
|
+
let u = cl();
|
|
6875
6898
|
return () => {
|
|
6876
6899
|
window.removeEventListener("keydown", a);
|
|
6877
6900
|
for (let e of l) window.removeEventListener(e, o, c);
|
|
@@ -6887,7 +6910,7 @@ function ol({ onPlace: e, onCancel: t }) {
|
|
|
6887
6910
|
})
|
|
6888
6911
|
});
|
|
6889
6912
|
}
|
|
6890
|
-
function
|
|
6913
|
+
function cl() {
|
|
6891
6914
|
let e = "html, html * { cursor: crosshair !important; }";
|
|
6892
6915
|
if ("adoptedStyleSheets" in document && "replaceSync" in CSSStyleSheet.prototype) {
|
|
6893
6916
|
let t = new CSSStyleSheet();
|
|
@@ -6900,14 +6923,14 @@ function sl() {
|
|
|
6900
6923
|
}
|
|
6901
6924
|
//#endregion
|
|
6902
6925
|
//#region src/runtime/ui/thread-popover.tsx
|
|
6903
|
-
var
|
|
6926
|
+
var ll = [], ul = [
|
|
6904
6927
|
"👍",
|
|
6905
6928
|
"❤️",
|
|
6906
6929
|
"🎉",
|
|
6907
6930
|
"😮",
|
|
6908
6931
|
"😄",
|
|
6909
6932
|
"❓"
|
|
6910
|
-
],
|
|
6933
|
+
], dl = Vr({
|
|
6911
6934
|
none: {
|
|
6912
6935
|
"toggle-thread-menu": () => ({
|
|
6913
6936
|
kind: "thread-menu",
|
|
@@ -6963,22 +6986,22 @@ var cl = [
|
|
|
6963
6986
|
dismiss: () => ({ kind: "none" })
|
|
6964
6987
|
}
|
|
6965
6988
|
});
|
|
6966
|
-
function
|
|
6967
|
-
let C =
|
|
6989
|
+
function fl({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r, isVerified: i, isIdentityResolving: a, isSigningIn: o, canDelete: s, isPending: c, error: l, isHidden: u = !1, isLeaving: d = !1, members: f = ll, onAuthor: p, onSignIn: m, onSignOut: h, onClose: g, onReply: _, onEditComment: v, onDeleteComment: y, onToggleReaction: b, onResolve: x, onDelete: S }) {
|
|
6990
|
+
let C = W(null), w = W(null), T = W(null), E = W(null), [D, O] = Hr(dl, { kind: "none" }), k = ei(D.kind === "none" || D.kind === "editing" ? null : D, 120), A = k?.value ?? null, j = k?.isLeaving ?? !1, ee = A?.kind === "thread-menu" ? A : null, [M, te] = V(null), { onPointerDown: N, isDragging: ne } = tc({
|
|
6968
6991
|
targetRef: C,
|
|
6969
6992
|
shouldStart: (e) => !e.target?.closest("button, a, input, textarea, select"),
|
|
6970
|
-
onMove:
|
|
6993
|
+
onMove: te
|
|
6971
6994
|
});
|
|
6972
6995
|
ic(C, !d);
|
|
6973
|
-
let P = e.resolvedAt != null, F =
|
|
6974
|
-
|
|
6996
|
+
let P = e.resolvedAt != null, F = nt(() => e.comments.filter((e) => !e.deleted), [e.comments]);
|
|
6997
|
+
H(() => {
|
|
6975
6998
|
if (D.kind === "none" || D.kind === "editing") return;
|
|
6976
6999
|
function e(e) {
|
|
6977
7000
|
let t = E.current;
|
|
6978
7001
|
t && !e.composedPath().includes(t) && O({ type: "dismiss" });
|
|
6979
7002
|
}
|
|
6980
7003
|
return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
|
|
6981
|
-
}, [D.kind, O]),
|
|
7004
|
+
}, [D.kind, O]), H(() => {
|
|
6982
7005
|
if (D.kind !== "editing") return;
|
|
6983
7006
|
let t = e.comments.find((e) => e._id === D.commentId);
|
|
6984
7007
|
(!t || t.deleted) && O({ type: "dismiss" });
|
|
@@ -6987,12 +7010,12 @@ function ul({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
|
|
|
6987
7010
|
D,
|
|
6988
7011
|
O
|
|
6989
7012
|
]);
|
|
6990
|
-
let re =
|
|
6991
|
-
|
|
7013
|
+
let re = W(null);
|
|
7014
|
+
H(() => {
|
|
6992
7015
|
re.current ??= F.at(-1)?.createdAt ?? 0;
|
|
6993
7016
|
}, [F]);
|
|
6994
|
-
let ie =
|
|
6995
|
-
|
|
7017
|
+
let ie = W(!0);
|
|
7018
|
+
H(() => {
|
|
6996
7019
|
let e = w.current;
|
|
6997
7020
|
if (e) {
|
|
6998
7021
|
if (ie.current) {
|
|
@@ -7001,24 +7024,24 @@ function ul({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
|
|
|
7001
7024
|
}
|
|
7002
7025
|
e.scrollHeight - e.scrollTop - e.clientHeight < 80 && (e.scrollTop = e.scrollHeight);
|
|
7003
7026
|
}
|
|
7004
|
-
}, [F.length])
|
|
7027
|
+
}, [F.length]);
|
|
7028
|
+
let ae = W(null);
|
|
7029
|
+
U(() => {
|
|
7005
7030
|
let e = C.current;
|
|
7006
|
-
if (
|
|
7007
|
-
d ? (
|
|
7031
|
+
if (e && typeof e.showPopover == "function") try {
|
|
7032
|
+
d ? (te((e) => e ?? ae.current), e.matches(":popover-open") && e.hidePopover()) : e.matches(":popover-open") || e.showPopover();
|
|
7008
7033
|
} catch {}
|
|
7009
|
-
}, [d])
|
|
7010
|
-
let ae = H(null);
|
|
7011
|
-
V(() => {
|
|
7034
|
+
}, [d]), U(() => {
|
|
7012
7035
|
let e = C.current;
|
|
7013
|
-
if (!e || d ||
|
|
7036
|
+
if (!e || d || M != null || typeof e.matches == "function" && !e.matches(":popover-open")) return;
|
|
7014
7037
|
let t = getComputedStyle(e), n = Number.parseFloat(t.left), r = Number.parseFloat(t.top);
|
|
7015
7038
|
Number.isFinite(n) && Number.isFinite(r) && (ae.current = {
|
|
7016
7039
|
left: n,
|
|
7017
7040
|
top: r
|
|
7018
7041
|
});
|
|
7019
7042
|
});
|
|
7020
|
-
let oe =
|
|
7021
|
-
oe.current = d,
|
|
7043
|
+
let oe = W(d);
|
|
7044
|
+
oe.current = d, U(() => {
|
|
7022
7045
|
let e = C.current;
|
|
7023
7046
|
if (!e) return;
|
|
7024
7047
|
function t(e) {
|
|
@@ -7026,16 +7049,16 @@ function ul({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
|
|
|
7026
7049
|
}
|
|
7027
7050
|
return e.addEventListener("toggle", t), () => e.removeEventListener("toggle", t);
|
|
7028
7051
|
}, [g]);
|
|
7029
|
-
let se =
|
|
7030
|
-
let t =
|
|
7052
|
+
let se = nt(() => {
|
|
7053
|
+
let t = _i({
|
|
7031
7054
|
anchorX: e.anchorX,
|
|
7032
7055
|
anchorY: e.anchorY,
|
|
7033
7056
|
anchorSelector: e.anchorSelector,
|
|
7034
7057
|
anchorText: e.anchorText
|
|
7035
7058
|
});
|
|
7036
7059
|
return {
|
|
7037
|
-
left:
|
|
7038
|
-
top:
|
|
7060
|
+
left: gl(t.pageX - window.scrollX + 16, 12, window.innerWidth - 320 - 12),
|
|
7061
|
+
top: gl(t.pageY - window.scrollY - 16, 12, window.innerHeight - 200)
|
|
7039
7062
|
};
|
|
7040
7063
|
}, [
|
|
7041
7064
|
e.anchorX,
|
|
@@ -7046,11 +7069,11 @@ function ul({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
|
|
|
7046
7069
|
return /* @__PURE__ */ Q("div", {
|
|
7047
7070
|
ref: C,
|
|
7048
7071
|
id: d ? void 0 : "markup-thread-popover",
|
|
7049
|
-
class: Z("markup-popover",
|
|
7072
|
+
class: Z("markup-popover", M && "is-floating", ne && "is-dragging", u && "is-hud-hidden", d && "is-leaving"),
|
|
7050
7073
|
popover: "auto",
|
|
7051
7074
|
style: {
|
|
7052
|
-
"--markup-pop-x": `${
|
|
7053
|
-
"--markup-pop-y": `${
|
|
7075
|
+
"--markup-pop-x": `${M?.left ?? se.left}px`,
|
|
7076
|
+
"--markup-pop-y": `${M?.top ?? se.top}px`
|
|
7054
7077
|
},
|
|
7055
7078
|
role: "dialog",
|
|
7056
7079
|
"aria-label": "Markup thread",
|
|
@@ -7059,7 +7082,7 @@ function ul({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
|
|
|
7059
7082
|
children: [
|
|
7060
7083
|
/* @__PURE__ */ Q("header", {
|
|
7061
7084
|
class: "markup-popover-header",
|
|
7062
|
-
onPointerDown:
|
|
7085
|
+
onPointerDown: N,
|
|
7063
7086
|
children: [/* @__PURE__ */ Q("span", {
|
|
7064
7087
|
class: "markup-popover-title",
|
|
7065
7088
|
title: e.url,
|
|
@@ -7074,11 +7097,11 @@ function ul({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
|
|
|
7074
7097
|
},
|
|
7075
7098
|
children: [/* @__PURE__ */ Q("button", {
|
|
7076
7099
|
type: "button",
|
|
7077
|
-
class: Z("markup-icon-btn",
|
|
7100
|
+
class: Z("markup-icon-btn", ee != null && "is-open"),
|
|
7078
7101
|
title: "More options",
|
|
7079
7102
|
onClick: () => O({ type: "toggle-thread-menu" }),
|
|
7080
7103
|
children: /* @__PURE__ */ Q(Ms, { size: 16 })
|
|
7081
|
-
}),
|
|
7104
|
+
}), ee ? /* @__PURE__ */ Q("div", {
|
|
7082
7105
|
class: Z("markup-thread-menu-list", j && "is-leaving"),
|
|
7083
7106
|
inert: j || void 0,
|
|
7084
7107
|
children: [/* @__PURE__ */ Q("button", {
|
|
@@ -7091,12 +7114,12 @@ function ul({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
|
|
|
7091
7114
|
children: "Copy link"
|
|
7092
7115
|
}), s ? /* @__PURE__ */ Q("button", {
|
|
7093
7116
|
type: "button",
|
|
7094
|
-
class: Z("markup-thread-menu-item",
|
|
7117
|
+
class: Z("markup-thread-menu-item", ee.confirmDelete && "is-danger"),
|
|
7095
7118
|
disabled: c,
|
|
7096
7119
|
onClick: () => {
|
|
7097
7120
|
D.kind === "thread-menu" && (D.confirmDelete ? (O({ type: "dismiss" }), S()) : O({ type: "arm-thread-delete" }));
|
|
7098
7121
|
},
|
|
7099
|
-
children:
|
|
7122
|
+
children: ee.confirmDelete ? "Confirm delete" : "Delete thread…"
|
|
7100
7123
|
}) : null]
|
|
7101
7124
|
}) : null]
|
|
7102
7125
|
}),
|
|
@@ -7126,10 +7149,10 @@ function ul({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
|
|
|
7126
7149
|
return /* @__PURE__ */ Q("li", {
|
|
7127
7150
|
class: Z("markup-comment", re.current != null && t.createdAt > re.current && "is-new"),
|
|
7128
7151
|
children: [
|
|
7129
|
-
/* @__PURE__ */ Q(
|
|
7152
|
+
/* @__PURE__ */ Q(_l, {
|
|
7130
7153
|
name: t.authorName,
|
|
7131
7154
|
image: t.authorImage,
|
|
7132
|
-
tone:
|
|
7155
|
+
tone: yl(t.authorClientId ?? t.authorName)
|
|
7133
7156
|
}),
|
|
7134
7157
|
/* @__PURE__ */ Q("div", {
|
|
7135
7158
|
class: "markup-comment-meta",
|
|
@@ -7148,18 +7171,18 @@ function ul({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
|
|
|
7148
7171
|
/* @__PURE__ */ Q("time", {
|
|
7149
7172
|
class: "markup-comment-time",
|
|
7150
7173
|
datetime: new Date(t.createdAt).toISOString(),
|
|
7151
|
-
title:
|
|
7152
|
-
children:
|
|
7174
|
+
title: xl(t.createdAt),
|
|
7175
|
+
children: bl(t.createdAt)
|
|
7153
7176
|
}),
|
|
7154
7177
|
t.editedAt == null ? null : /* @__PURE__ */ Q("time", {
|
|
7155
7178
|
class: "markup-comment-edited",
|
|
7156
7179
|
datetime: new Date(t.editedAt).toISOString(),
|
|
7157
|
-
title:
|
|
7180
|
+
title: xl(t.editedAt),
|
|
7158
7181
|
children: "edited"
|
|
7159
7182
|
}),
|
|
7160
7183
|
/* @__PURE__ */ Q("div", {
|
|
7161
7184
|
class: "markup-thread-actions",
|
|
7162
|
-
children: [!P && !l ? /* @__PURE__ */ Q(
|
|
7185
|
+
children: [!P && !l ? /* @__PURE__ */ Q(pl, {
|
|
7163
7186
|
comment: t,
|
|
7164
7187
|
pickerOpen: g,
|
|
7165
7188
|
pickerLeaving: g && j,
|
|
@@ -7308,7 +7331,7 @@ function ul({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
|
|
|
7308
7331
|
alt: "Screenshot"
|
|
7309
7332
|
})
|
|
7310
7333
|
}) : null,
|
|
7311
|
-
!l && t.reactions.length > 0 ? /* @__PURE__ */ Q(
|
|
7334
|
+
!l && t.reactions.length > 0 ? /* @__PURE__ */ Q(ml, {
|
|
7312
7335
|
comment: t,
|
|
7313
7336
|
isResolved: P,
|
|
7314
7337
|
onToggle: (e) => b(t._id, e)
|
|
@@ -7374,7 +7397,7 @@ function ul({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
|
|
|
7374
7397
|
]
|
|
7375
7398
|
});
|
|
7376
7399
|
}
|
|
7377
|
-
function
|
|
7400
|
+
function pl({ comment: e, pickerOpen: t, pickerLeaving: n, pickerDirection: r, pickerSide: i, pickerRef: a, onPickerClick: o, onPickerSelect: s }) {
|
|
7378
7401
|
return /* @__PURE__ */ Q("div", {
|
|
7379
7402
|
class: Z("markup-reaction-picker-wrap", t && "is-open", t && r === "up" && "is-up", i && "is-side"),
|
|
7380
7403
|
ref: a,
|
|
@@ -7389,7 +7412,7 @@ function dl({ comment: e, pickerOpen: t, pickerLeaving: n, pickerDirection: r, p
|
|
|
7389
7412
|
class: Z("markup-reaction-picker", n && "is-leaving"),
|
|
7390
7413
|
role: "menu",
|
|
7391
7414
|
inert: n || void 0,
|
|
7392
|
-
children:
|
|
7415
|
+
children: ul.map((t) => /* @__PURE__ */ Q("button", {
|
|
7393
7416
|
type: "button",
|
|
7394
7417
|
role: "menuitem",
|
|
7395
7418
|
class: Z("markup-reaction-picker-item", (e.reactions.find((e) => e.emoji === t)?.mine ?? !1) && "is-mine"),
|
|
@@ -7399,11 +7422,11 @@ function dl({ comment: e, pickerOpen: t, pickerLeaving: n, pickerDirection: r, p
|
|
|
7399
7422
|
}) : null]
|
|
7400
7423
|
});
|
|
7401
7424
|
}
|
|
7402
|
-
function
|
|
7425
|
+
function ml({ comment: e, isResolved: t, onToggle: n }) {
|
|
7403
7426
|
return /* @__PURE__ */ Q("div", {
|
|
7404
7427
|
class: "markup-reactions",
|
|
7405
7428
|
children: e.reactions.map((e) => {
|
|
7406
|
-
let r =
|
|
7429
|
+
let r = hl(e.reactors, e.mine, e.count, e.emoji);
|
|
7407
7430
|
return /* @__PURE__ */ Q("button", {
|
|
7408
7431
|
type: "button",
|
|
7409
7432
|
class: Z("markup-reaction-chip", e.mine && "is-mine"),
|
|
@@ -7424,15 +7447,15 @@ function fl({ comment: e, isResolved: t, onToggle: n }) {
|
|
|
7424
7447
|
})
|
|
7425
7448
|
});
|
|
7426
7449
|
}
|
|
7427
|
-
function
|
|
7450
|
+
function hl(e, t, n, r) {
|
|
7428
7451
|
let i = e.slice(), a = i.length + +!!t, o = Math.max(0, n - a);
|
|
7429
7452
|
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}`;
|
|
7430
7453
|
}
|
|
7431
|
-
function
|
|
7454
|
+
function gl(e, t, n) {
|
|
7432
7455
|
return Math.max(t, Math.min(n, e));
|
|
7433
7456
|
}
|
|
7434
|
-
function
|
|
7435
|
-
let [r, i] =
|
|
7457
|
+
function _l({ name: e, image: t, tone: n }) {
|
|
7458
|
+
let [r, i] = V(null);
|
|
7436
7459
|
return /* @__PURE__ */ Q("span", {
|
|
7437
7460
|
class: "markup-comment-avatar",
|
|
7438
7461
|
"data-tone": n,
|
|
@@ -7447,11 +7470,11 @@ function hl({ name: e, image: t, tone: n }) {
|
|
|
7447
7470
|
onError: () => i(t)
|
|
7448
7471
|
}) : /* @__PURE__ */ Q("span", {
|
|
7449
7472
|
class: "markup-avatar-initials",
|
|
7450
|
-
children:
|
|
7473
|
+
children: vl(e)
|
|
7451
7474
|
})
|
|
7452
7475
|
});
|
|
7453
7476
|
}
|
|
7454
|
-
function
|
|
7477
|
+
function vl(e) {
|
|
7455
7478
|
let t = e.trim();
|
|
7456
7479
|
if (!t) return "??";
|
|
7457
7480
|
let n = t.split(/\s+/).filter(Boolean), r = n[0] ?? "";
|
|
@@ -7459,12 +7482,12 @@ function gl(e) {
|
|
|
7459
7482
|
let i = n[n.length - 1] ?? "";
|
|
7460
7483
|
return ((r[0] ?? "") + (i[0] ?? "")).toUpperCase();
|
|
7461
7484
|
}
|
|
7462
|
-
function
|
|
7485
|
+
function yl(e) {
|
|
7463
7486
|
let t = 0;
|
|
7464
7487
|
for (let n = 0; n < e.length; n++) t = t * 31 + e.charCodeAt(n) | 0;
|
|
7465
7488
|
return Math.abs(t) % 5 + 1;
|
|
7466
7489
|
}
|
|
7467
|
-
function
|
|
7490
|
+
function bl(e) {
|
|
7468
7491
|
let t = Date.now() - e, n = Math.floor(t / 1e3);
|
|
7469
7492
|
if (n < 60) return "just now";
|
|
7470
7493
|
let r = Math.floor(n / 60);
|
|
@@ -7481,7 +7504,7 @@ function vl(e) {
|
|
|
7481
7504
|
year: "numeric"
|
|
7482
7505
|
});
|
|
7483
7506
|
}
|
|
7484
|
-
function
|
|
7507
|
+
function xl(e) {
|
|
7485
7508
|
return new Date(e).toLocaleDateString([], {
|
|
7486
7509
|
month: "long",
|
|
7487
7510
|
day: "numeric",
|
|
@@ -7492,8 +7515,14 @@ function yl(e) {
|
|
|
7492
7515
|
}
|
|
7493
7516
|
//#endregion
|
|
7494
7517
|
//#region src/runtime/ui/toolbar.tsx
|
|
7495
|
-
function
|
|
7496
|
-
|
|
7518
|
+
function Sl(e) {
|
|
7519
|
+
e.stopPropagation();
|
|
7520
|
+
}
|
|
7521
|
+
function Cl(e) {
|
|
7522
|
+
Sl(e), e.target?.closest?.(".markup-tb-btn") && e.preventDefault();
|
|
7523
|
+
}
|
|
7524
|
+
function wl({ 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, isLeaving: f = !1 }) {
|
|
7525
|
+
let p = W(0);
|
|
7497
7526
|
i > 0 && (p.current = i);
|
|
7498
7527
|
let m = r === "bottom-left" ? "markup-toolbar-left" : r === "bottom-center" ? "markup-toolbar-center" : "markup-toolbar-right";
|
|
7499
7528
|
function h(e) {
|
|
@@ -7509,6 +7538,10 @@ function bl({ isActive: e, onToggle: t, onHide: n, position: r = "bottom-right",
|
|
|
7509
7538
|
"aria-label": "Markup feedback toolbar",
|
|
7510
7539
|
"aria-hidden": f,
|
|
7511
7540
|
inert: f ? "" : void 0,
|
|
7541
|
+
onPointerDown: Sl,
|
|
7542
|
+
onMouseDown: Cl,
|
|
7543
|
+
onPointerUp: Sl,
|
|
7544
|
+
onMouseUp: Sl,
|
|
7512
7545
|
children: [
|
|
7513
7546
|
/* @__PURE__ */ Q("button", {
|
|
7514
7547
|
type: "button",
|
|
@@ -7571,8 +7604,8 @@ function bl({ isActive: e, onToggle: t, onHide: n, position: r = "bottom-right",
|
|
|
7571
7604
|
}
|
|
7572
7605
|
//#endregion
|
|
7573
7606
|
//#region src/runtime/ui/app.tsx
|
|
7574
|
-
var
|
|
7575
|
-
function
|
|
7607
|
+
var Tl = [], El = [], Dl = [{ key: "toolbar" }], Ol = [];
|
|
7608
|
+
function kl(e) {
|
|
7576
7609
|
let t = {
|
|
7577
7610
|
clientId: `markup_user_${e.identity.id}`,
|
|
7578
7611
|
name: e.identity.name,
|
|
@@ -7598,14 +7631,14 @@ function Tl(e) {
|
|
|
7598
7631
|
} : {}
|
|
7599
7632
|
};
|
|
7600
7633
|
}
|
|
7601
|
-
function
|
|
7634
|
+
function Al() {
|
|
7602
7635
|
let e = document.activeElement;
|
|
7603
7636
|
for (; e && e.shadowRoot && e.shadowRoot.activeElement;) e = e.shadowRoot.activeElement;
|
|
7604
7637
|
if (!e) return !1;
|
|
7605
7638
|
let t = e.tagName;
|
|
7606
7639
|
return t === "INPUT" || t === "TEXTAREA" || t === "SELECT" || e.isContentEditable;
|
|
7607
7640
|
}
|
|
7608
|
-
var
|
|
7641
|
+
var jl = Vr({
|
|
7609
7642
|
visible: {
|
|
7610
7643
|
"hide-with-toast": () => ({ kind: "hidden-with-toast" }),
|
|
7611
7644
|
toggle: () => ({ kind: "hidden" })
|
|
@@ -7616,26 +7649,26 @@ var Dl = Hr({
|
|
|
7616
7649
|
},
|
|
7617
7650
|
hidden: { toggle: () => ({ kind: "visible" }) }
|
|
7618
7651
|
});
|
|
7619
|
-
function
|
|
7652
|
+
function Ml(e) {
|
|
7620
7653
|
return ra(e), e;
|
|
7621
7654
|
}
|
|
7622
|
-
var
|
|
7655
|
+
var Nl = Vr({
|
|
7623
7656
|
unresolved: {
|
|
7624
|
-
"mint-success": (e, t) =>
|
|
7657
|
+
"mint-success": (e, t) => Ml({
|
|
7625
7658
|
kind: "anon",
|
|
7626
7659
|
identity: t.identity
|
|
7627
7660
|
}),
|
|
7628
|
-
"signed-in": (e, t) =>
|
|
7661
|
+
"signed-in": (e, t) => Ml({
|
|
7629
7662
|
kind: "verified",
|
|
7630
7663
|
identity: t.identity
|
|
7631
7664
|
})
|
|
7632
7665
|
},
|
|
7633
7666
|
anon: {
|
|
7634
|
-
"signed-in": (e, t) =>
|
|
7667
|
+
"signed-in": (e, t) => Ml({
|
|
7635
7668
|
kind: "verified",
|
|
7636
7669
|
identity: t.identity
|
|
7637
7670
|
}),
|
|
7638
|
-
"author-set": (e, t) =>
|
|
7671
|
+
"author-set": (e, t) => Ml({
|
|
7639
7672
|
kind: "anon",
|
|
7640
7673
|
identity: {
|
|
7641
7674
|
...e.identity,
|
|
@@ -7643,36 +7676,36 @@ var kl = Hr({
|
|
|
7643
7676
|
email: t.email
|
|
7644
7677
|
}
|
|
7645
7678
|
}),
|
|
7646
|
-
"forget-me": () =>
|
|
7679
|
+
"forget-me": () => Ml({ kind: "unresolved" })
|
|
7647
7680
|
},
|
|
7648
7681
|
verified: {
|
|
7649
|
-
"signed-in": (e, t) =>
|
|
7682
|
+
"signed-in": (e, t) => Ml({
|
|
7650
7683
|
kind: "verified",
|
|
7651
7684
|
identity: t.identity
|
|
7652
7685
|
}),
|
|
7653
|
-
unauthorized: (e) =>
|
|
7686
|
+
unauthorized: (e) => Ml({
|
|
7654
7687
|
kind: "recovering",
|
|
7655
7688
|
preserved: {
|
|
7656
7689
|
name: e.identity.name,
|
|
7657
7690
|
email: e.identity.email
|
|
7658
7691
|
}
|
|
7659
7692
|
}),
|
|
7660
|
-
"signed-out": () =>
|
|
7693
|
+
"signed-out": () => Ml({ kind: "unresolved" })
|
|
7661
7694
|
},
|
|
7662
7695
|
recovering: {
|
|
7663
|
-
"mint-success": (e, t) =>
|
|
7696
|
+
"mint-success": (e, t) => Ml({
|
|
7664
7697
|
kind: "anon",
|
|
7665
7698
|
identity: t.identity
|
|
7666
7699
|
}),
|
|
7667
|
-
"signed-in": (e, t) =>
|
|
7700
|
+
"signed-in": (e, t) => Ml({
|
|
7668
7701
|
kind: "verified",
|
|
7669
7702
|
identity: t.identity
|
|
7670
7703
|
})
|
|
7671
7704
|
}
|
|
7672
7705
|
});
|
|
7673
|
-
function
|
|
7674
|
-
let [a, o] =
|
|
7675
|
-
|
|
7706
|
+
function Pl({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r, dashboardUrl: i }) {
|
|
7707
|
+
let [a, o] = V(_a), [s, c] = V([]), [l, u] = V(!1), d = nt(() => na(), []), [f, p] = Hr(Nl, d.state), [m, h] = V(null);
|
|
7708
|
+
H(() => {
|
|
7676
7709
|
let n = !1;
|
|
7677
7710
|
return Hi(e, t).then((e) => {
|
|
7678
7711
|
n || h(e);
|
|
@@ -7680,12 +7713,12 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7680
7713
|
n = !0;
|
|
7681
7714
|
};
|
|
7682
7715
|
}, [e, t]);
|
|
7683
|
-
let [g, _] =
|
|
7716
|
+
let [g, _] = V(n), [v, y] = V(!0), [b, x] = V(!0), [C, w] = V(!1), [T, E] = V(null), D = G(() => E(null), []), O = W(f);
|
|
7684
7717
|
O.current = f, Ts(f, e, t, (e) => p({
|
|
7685
7718
|
type: "signed-in",
|
|
7686
7719
|
identity: e
|
|
7687
7720
|
}), () => p({ type: "unauthorized" }));
|
|
7688
|
-
let k =
|
|
7721
|
+
let k = nt(() => Fi({
|
|
7689
7722
|
apiUrl: e,
|
|
7690
7723
|
apiKey: t,
|
|
7691
7724
|
getToken: () => {
|
|
@@ -7710,16 +7743,16 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7710
7743
|
e,
|
|
7711
7744
|
t,
|
|
7712
7745
|
p
|
|
7713
|
-
]), [A, j] =
|
|
7714
|
-
|
|
7746
|
+
]), [A, j] = V({ kind: "idle" }), [ee, M] = V([]);
|
|
7747
|
+
H(() => {
|
|
7715
7748
|
let e = !1;
|
|
7716
7749
|
return k.listMembers().then((t) => {
|
|
7717
|
-
e ||
|
|
7750
|
+
e || M(t.members);
|
|
7718
7751
|
}).catch(() => {}), () => {
|
|
7719
7752
|
e = !0;
|
|
7720
7753
|
};
|
|
7721
7754
|
}, [k]);
|
|
7722
|
-
let [
|
|
7755
|
+
let [te, N] = V(0), [ne, P] = Hr(sa, { kind: "idle" }), [F, re] = V(!1), ie = W(0), ae = G(() => {
|
|
7723
7756
|
let e = ie.current;
|
|
7724
7757
|
P({ type: "fetch" }), k.listNotifications().then((t) => {
|
|
7725
7758
|
ie.current === e && P({
|
|
@@ -7732,29 +7765,29 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7732
7765
|
error: t instanceof Error ? t.message : "Failed to load."
|
|
7733
7766
|
});
|
|
7734
7767
|
});
|
|
7735
|
-
}, [k, P]), oe =
|
|
7768
|
+
}, [k, P]), oe = G((e) => {
|
|
7736
7769
|
ie.current += 1, P({
|
|
7737
7770
|
type: "patch",
|
|
7738
7771
|
update: e
|
|
7739
7772
|
});
|
|
7740
|
-
}, [P]), se =
|
|
7741
|
-
|
|
7773
|
+
}, [P]), se = Yr(), ce = Yr(), le = Yr(), ue = Yr(), de = Yr(), { run: I, reset: fe } = se, { run: pe } = ce, { run: me, reset: he } = le, { run: ge } = ue, { run: _e } = de, ve = de.isPending, be = se.isPending, xe = se.error ?? ce.error ?? le.error, [Se, Ce] = Hr(jl, { kind: "visible" }), we = Se.kind !== "visible", [Te, Ee] = V(0), [De, Oe] = V(0), ke = W(null), Ae = aa(f), L = f.kind === "verified", je = f.kind === "unresolved" || f.kind === "recovering", Me = ia(f), [R, Ne] = V(Li), [Pe, Fe] = V(null);
|
|
7774
|
+
H(() => {
|
|
7742
7775
|
Fe(null), ie.current += 1, P({ type: "reset" });
|
|
7743
7776
|
}, [
|
|
7744
7777
|
f.kind,
|
|
7745
|
-
|
|
7778
|
+
Me,
|
|
7746
7779
|
P
|
|
7747
7780
|
]);
|
|
7748
|
-
let Ie = Ri(
|
|
7749
|
-
access:
|
|
7781
|
+
let Ie = Ri(R, f.kind), Le = zi({
|
|
7782
|
+
access: R,
|
|
7750
7783
|
identityKind: f.kind,
|
|
7751
|
-
hasAuthorName:
|
|
7784
|
+
hasAuthorName: Ae != null,
|
|
7752
7785
|
refusal: Pe
|
|
7753
|
-
}), Re =
|
|
7786
|
+
}), Re = G((e) => {
|
|
7754
7787
|
let t = Bi(e);
|
|
7755
7788
|
throw t && Fe(t), e;
|
|
7756
7789
|
}, []);
|
|
7757
|
-
|
|
7790
|
+
H(() => {
|
|
7758
7791
|
if (f.kind !== "unresolved" && f.kind !== "recovering") return;
|
|
7759
7792
|
let e = f.kind === "recovering" ? f.preserved : d.preserved, t = !1, n = null, r = 1e3;
|
|
7760
7793
|
function i() {
|
|
@@ -7783,21 +7816,21 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7783
7816
|
p,
|
|
7784
7817
|
d
|
|
7785
7818
|
]);
|
|
7786
|
-
let { token: ze, isCurrent: Be } = xs(k, f), [Ve, He] =
|
|
7787
|
-
|
|
7788
|
-
let t = new
|
|
7819
|
+
let { token: ze, isCurrent: Be } = xs(k, f), [Ve, He] = V(null);
|
|
7820
|
+
H(() => {
|
|
7821
|
+
let t = new Br(e.replace(/\.convex\.site(\/.*)?$/, ".convex.cloud"));
|
|
7789
7822
|
return He(t), () => {
|
|
7790
7823
|
t.close(), He((e) => e === t ? null : e);
|
|
7791
7824
|
};
|
|
7792
|
-
}, [e]),
|
|
7825
|
+
}, [e]), H(() => {
|
|
7793
7826
|
c([]), u(!1);
|
|
7794
7827
|
}, [a]);
|
|
7795
|
-
let Ue =
|
|
7796
|
-
|
|
7797
|
-
if (
|
|
7828
|
+
let Ue = W(!1);
|
|
7829
|
+
H(() => {
|
|
7830
|
+
if (Ve && ze) return fe(), he(), Ve.onUpdate(jn("widget/queries:subscribeThreadsForRoute"), {
|
|
7798
7831
|
subscriptionToken: ze,
|
|
7799
7832
|
route: a,
|
|
7800
|
-
viewerClientId:
|
|
7833
|
+
viewerClientId: Me,
|
|
7801
7834
|
includeResolved: C
|
|
7802
7835
|
}, (e) => {
|
|
7803
7836
|
e !== void 0 && (c(e), u(!0));
|
|
@@ -7806,22 +7839,22 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7806
7839
|
Ve,
|
|
7807
7840
|
ze,
|
|
7808
7841
|
a,
|
|
7809
|
-
|
|
7842
|
+
Me,
|
|
7810
7843
|
C,
|
|
7811
|
-
|
|
7812
|
-
|
|
7813
|
-
]),
|
|
7814
|
-
if (
|
|
7844
|
+
fe,
|
|
7845
|
+
he
|
|
7846
|
+
]), H(() => {
|
|
7847
|
+
if (Ve && ze) return Ve.onUpdate(jn("widget/queries:subscribeProjectSettings"), { subscriptionToken: ze }, (e) => {
|
|
7815
7848
|
let t = e?.commentAccess;
|
|
7816
7849
|
Ne(t === "members" ? "members" : Li);
|
|
7817
7850
|
});
|
|
7818
|
-
}, [Ve, ze]),
|
|
7851
|
+
}, [Ve, ze]), H(() => {
|
|
7819
7852
|
if (f.kind !== "verified" || !Be) {
|
|
7820
|
-
|
|
7853
|
+
N(0);
|
|
7821
7854
|
return;
|
|
7822
7855
|
}
|
|
7823
|
-
if (
|
|
7824
|
-
e !== void 0 && (
|
|
7856
|
+
if (Ve && ze) return Ve.onUpdate(jn("widget/queries:subscribeUnreadCountForProject"), { subscriptionToken: ze }, (e) => {
|
|
7857
|
+
e !== void 0 && (N(e.count), ae());
|
|
7825
7858
|
});
|
|
7826
7859
|
}, [
|
|
7827
7860
|
Ve,
|
|
@@ -7829,57 +7862,60 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7829
7862
|
Be,
|
|
7830
7863
|
f.kind,
|
|
7831
7864
|
ae
|
|
7832
|
-
]),
|
|
7865
|
+
]), H(() => {
|
|
7833
7866
|
if (Ue.current || !l) return;
|
|
7834
7867
|
let e = va();
|
|
7835
7868
|
e !== null && (s.find((t) => t._id === e) && j({
|
|
7836
7869
|
kind: "thread",
|
|
7837
7870
|
threadId: e
|
|
7838
7871
|
}), ba()), Ue.current = !0;
|
|
7839
|
-
}, [s, l]),
|
|
7872
|
+
}, [s, l]), H(() => Yi(() => o(_a())), []), H(() => {
|
|
7840
7873
|
function e(e) {
|
|
7841
|
-
e.key === "." && (e.metaKey || e.ctrlKey) && (e.altKey || e.shiftKey || (e.preventDefault(),
|
|
7874
|
+
e.key === "." && (e.metaKey || e.ctrlKey) && (e.altKey || e.shiftKey || (e.preventDefault(), Ce({ type: "toggle" })));
|
|
7842
7875
|
}
|
|
7843
7876
|
return window.addEventListener("keydown", e), () => window.removeEventListener("keydown", e);
|
|
7844
|
-
}, [
|
|
7845
|
-
|
|
7846
|
-
}, [
|
|
7847
|
-
if (
|
|
7848
|
-
let e = window.setTimeout(() =>
|
|
7877
|
+
}, [Ce]), H(() => {
|
|
7878
|
+
we && E(null);
|
|
7879
|
+
}, [we]), H(() => {
|
|
7880
|
+
if (Se.kind !== "hidden-with-toast") return;
|
|
7881
|
+
let e = window.setTimeout(() => Ce({ type: "dismiss-toast" }), 5e3);
|
|
7849
7882
|
return () => window.clearTimeout(e);
|
|
7850
|
-
}, [
|
|
7851
|
-
let e = null;
|
|
7852
|
-
function
|
|
7883
|
+
}, [Se.kind, Ce]), H(() => {
|
|
7884
|
+
let e = null, t = !1;
|
|
7885
|
+
function n() {
|
|
7853
7886
|
e ??= requestAnimationFrame(() => {
|
|
7854
|
-
e = null,
|
|
7887
|
+
e = null, t && (t = !1, Oe((e) => e + 1)), Ee((e) => e + 1);
|
|
7855
7888
|
});
|
|
7856
7889
|
}
|
|
7857
|
-
|
|
7890
|
+
function r() {
|
|
7891
|
+
t = !0, n();
|
|
7892
|
+
}
|
|
7893
|
+
window.addEventListener("scroll", n, {
|
|
7858
7894
|
passive: !0,
|
|
7859
7895
|
capture: !0
|
|
7860
|
-
}), window.addEventListener("resize",
|
|
7861
|
-
let
|
|
7862
|
-
return
|
|
7863
|
-
window.removeEventListener("scroll",
|
|
7896
|
+
}), window.addEventListener("resize", r);
|
|
7897
|
+
let i = new ResizeObserver(r);
|
|
7898
|
+
return i.observe(document.body), () => {
|
|
7899
|
+
window.removeEventListener("scroll", n, { capture: !0 }), window.removeEventListener("resize", r), i.disconnect(), e != null && cancelAnimationFrame(e);
|
|
7864
7900
|
};
|
|
7865
7901
|
}, []);
|
|
7866
|
-
let
|
|
7867
|
-
|
|
7868
|
-
}, [
|
|
7869
|
-
|
|
7902
|
+
let z = G(() => {
|
|
7903
|
+
fe(), he(), ye("comment_started"), j({ kind: "placing" });
|
|
7904
|
+
}, [fe, he]);
|
|
7905
|
+
H(() => {
|
|
7870
7906
|
function e(e) {
|
|
7871
|
-
e.key === "c" && (e.metaKey || e.ctrlKey || e.altKey || e.shiftKey || A.kind === "idle" && (
|
|
7907
|
+
e.key === "c" && (e.metaKey || e.ctrlKey || e.altKey || e.shiftKey || A.kind === "idle" && (we || Al() || (e.preventDefault(), z())));
|
|
7872
7908
|
}
|
|
7873
7909
|
return window.addEventListener("keydown", e), () => window.removeEventListener("keydown", e);
|
|
7874
7910
|
}, [
|
|
7875
7911
|
A.kind,
|
|
7876
|
-
|
|
7877
|
-
|
|
7912
|
+
we,
|
|
7913
|
+
z
|
|
7878
7914
|
]);
|
|
7879
|
-
let
|
|
7880
|
-
j({ kind: "idle" }),
|
|
7881
|
-
}, [
|
|
7882
|
-
let i = t + window.scrollX, a = n + window.scrollY, o = ++
|
|
7915
|
+
let We = G(() => {
|
|
7916
|
+
j({ kind: "idle" }), fe(), he();
|
|
7917
|
+
}, [fe, he]), Ge = W(0), Ke = G((e, t, n) => {
|
|
7918
|
+
let i = t + window.scrollX, a = n + window.scrollY, o = ++Ge.current;
|
|
7883
7919
|
if (r?.enabled === !1 || !b) {
|
|
7884
7920
|
j({
|
|
7885
7921
|
kind: "composing-new",
|
|
@@ -7907,7 +7943,7 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7907
7943
|
screenshotRedactedSelectors: [],
|
|
7908
7944
|
captureToken: o
|
|
7909
7945
|
});
|
|
7910
|
-
let s =
|
|
7946
|
+
let s = ke.current != null && ke.current.getRootNode() instanceof ShadowRoot ? ke.current.getRootNode().host : null, c = {
|
|
7911
7947
|
strictScrub: r?.strictScrub,
|
|
7912
7948
|
redactSelector: r?.redactSelector
|
|
7913
7949
|
};
|
|
@@ -7922,17 +7958,17 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7922
7958
|
screenshotFailed: e == null,
|
|
7923
7959
|
screenshotRedactedCount: e?.redactedCount ?? 0,
|
|
7924
7960
|
screenshotRedactedSelectors: e?.redactedSelectors ?? []
|
|
7925
|
-
}),
|
|
7961
|
+
}), ye("screenshot_captured", { ok: e != null });
|
|
7926
7962
|
});
|
|
7927
|
-
}, [r, b]), qe =
|
|
7963
|
+
}, [r, b]), qe = G((e, t) => {
|
|
7928
7964
|
p({
|
|
7929
7965
|
type: "author-set",
|
|
7930
7966
|
name: e,
|
|
7931
7967
|
email: t
|
|
7932
7968
|
});
|
|
7933
|
-
}, [p]),
|
|
7934
|
-
|
|
7935
|
-
let n =
|
|
7969
|
+
}, [p]), B = ce.isPending, Je = G(async () => {
|
|
7970
|
+
ye("sign_in_started"), await pe(async () => {
|
|
7971
|
+
let n = kl(await fa({
|
|
7936
7972
|
apiUrl: e,
|
|
7937
7973
|
apiKey: t,
|
|
7938
7974
|
useCookies: m === !0
|
|
@@ -7941,18 +7977,18 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7941
7977
|
p({
|
|
7942
7978
|
type: "signed-in",
|
|
7943
7979
|
identity: n
|
|
7944
|
-
}),
|
|
7980
|
+
}), ye("sign_in_completed");
|
|
7945
7981
|
});
|
|
7946
7982
|
}, [
|
|
7947
7983
|
e,
|
|
7948
7984
|
t,
|
|
7949
7985
|
m,
|
|
7950
|
-
|
|
7986
|
+
pe,
|
|
7951
7987
|
p
|
|
7952
|
-
]),
|
|
7988
|
+
]), Ye = G(async (e, t) => {
|
|
7953
7989
|
if (A.kind !== "composing-new") return;
|
|
7954
7990
|
let n = oa(f);
|
|
7955
|
-
n && await
|
|
7991
|
+
n && await I(async () => {
|
|
7956
7992
|
let r;
|
|
7957
7993
|
if (t && A.screenshot) {
|
|
7958
7994
|
let { uploadUrl: e } = await k.getScreenshotUploadUrl().catch(Re), t;
|
|
@@ -7964,13 +8000,13 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7964
8000
|
signal: AbortSignal.timeout(6e4)
|
|
7965
8001
|
});
|
|
7966
8002
|
} catch (e) {
|
|
7967
|
-
throw e instanceof DOMException && e.name === "TimeoutError" ? Error("Screenshot upload took too long, so check your connection") : e;
|
|
8003
|
+
throw e instanceof DOMException && e.name === "TimeoutError" ? Error("Screenshot upload took too long, so check your connection", { cause: e }) : e;
|
|
7968
8004
|
}
|
|
7969
8005
|
if (!t.ok) throw Error(`Screenshot upload failed (${t.status})`);
|
|
7970
8006
|
let { storageId: n } = await t.json();
|
|
7971
8007
|
r = n;
|
|
7972
8008
|
}
|
|
7973
|
-
let i =
|
|
8009
|
+
let i = Gr(e), o = await k.createThread({
|
|
7974
8010
|
url: window.location.href,
|
|
7975
8011
|
route: a,
|
|
7976
8012
|
anchorSelector: A.coords.anchorSelector,
|
|
@@ -7988,7 +8024,7 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7988
8024
|
mentions: i.length > 0 ? i : void 0,
|
|
7989
8025
|
screenshotStorageId: r
|
|
7990
8026
|
}).catch(Re);
|
|
7991
|
-
c((e) => [...e, o.thread]),
|
|
8027
|
+
c((e) => [...e, o.thread]), ye("comment_submitted", {
|
|
7992
8028
|
hasScreenshot: r != null,
|
|
7993
8029
|
hasMentions: i.length > 0
|
|
7994
8030
|
}), j({
|
|
@@ -8002,30 +8038,30 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
8002
8038
|
A,
|
|
8003
8039
|
Re,
|
|
8004
8040
|
a,
|
|
8005
|
-
|
|
8006
|
-
]), Xe =
|
|
8041
|
+
I
|
|
8042
|
+
]), Xe = G(async () => {
|
|
8007
8043
|
if (A.kind !== "thread") return;
|
|
8008
8044
|
let e = A.threadId;
|
|
8009
|
-
await
|
|
8045
|
+
await I(async () => {
|
|
8010
8046
|
await k.deleteThread(e), c((t) => t.filter((t) => t._id !== e)), j({ kind: "idle" });
|
|
8011
8047
|
});
|
|
8012
8048
|
}, [
|
|
8013
8049
|
k,
|
|
8014
8050
|
A,
|
|
8015
|
-
|
|
8016
|
-
]), Ze =
|
|
8051
|
+
I
|
|
8052
|
+
]), Ze = G(async () => {
|
|
8017
8053
|
if (A.kind !== "thread") return;
|
|
8018
8054
|
let e = A.threadId;
|
|
8019
|
-
await
|
|
8020
|
-
await k.resolveThread(e,
|
|
8055
|
+
await I(async () => {
|
|
8056
|
+
await k.resolveThread(e, Me), c((t) => t.filter((t) => t._id !== e)), ye("thread_resolved"), j({ kind: "idle" });
|
|
8021
8057
|
});
|
|
8022
8058
|
}, [
|
|
8023
8059
|
k,
|
|
8024
8060
|
A,
|
|
8025
|
-
|
|
8026
|
-
|
|
8027
|
-
]), Qe =
|
|
8028
|
-
if (e.readAt ?? (
|
|
8061
|
+
Me,
|
|
8062
|
+
I
|
|
8063
|
+
]), Qe = G((e) => {
|
|
8064
|
+
if (e.readAt ?? (N((e) => Math.max(0, e - 1)), oe((t) => t.map((t) => t._id === e._id ? {
|
|
8029
8065
|
...t,
|
|
8030
8066
|
readAt: Date.now()
|
|
8031
8067
|
} : t)), k.markNotificationRead(e._id).catch(() => {})), s.some((t) => t._id === e.threadId)) j({
|
|
@@ -8040,36 +8076,36 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
8040
8076
|
k,
|
|
8041
8077
|
oe,
|
|
8042
8078
|
s
|
|
8043
|
-
]), $e =
|
|
8044
|
-
re(!0),
|
|
8079
|
+
]), $e = G(() => {
|
|
8080
|
+
re(!0), N(0), oe((e) => e.map((e) => e.readAt == null ? {
|
|
8045
8081
|
...e,
|
|
8046
8082
|
readAt: Date.now()
|
|
8047
8083
|
} : e)), k.markAllNotificationsRead().catch(() => {}).finally(() => re(!1));
|
|
8048
|
-
}, [k, oe]), et =
|
|
8084
|
+
}, [k, oe]), et = G(async (e) => {
|
|
8049
8085
|
if (A.kind !== "thread") return;
|
|
8050
8086
|
let t = oa(f);
|
|
8051
8087
|
if (!t) return;
|
|
8052
8088
|
let n = A.threadId;
|
|
8053
|
-
await
|
|
8054
|
-
let r =
|
|
8089
|
+
await I(async () => {
|
|
8090
|
+
let r = Gr(e), i = await k.addComment(n, {
|
|
8055
8091
|
body: e,
|
|
8056
8092
|
authorName: t.name,
|
|
8057
8093
|
authorEmail: t.email,
|
|
8058
8094
|
mentions: r.length > 0 ? r : void 0
|
|
8059
8095
|
}).catch(Re);
|
|
8060
|
-
c((e) => e.map((e) => e._id === n ? i.thread : e)),
|
|
8096
|
+
c((e) => e.map((e) => e._id === n ? i.thread : e)), ye("reply_submitted", { hasMentions: r.length > 0 });
|
|
8061
8097
|
});
|
|
8062
8098
|
}, [
|
|
8063
8099
|
k,
|
|
8064
8100
|
f,
|
|
8065
8101
|
A,
|
|
8066
8102
|
Re,
|
|
8067
|
-
|
|
8068
|
-
]), tt =
|
|
8103
|
+
I
|
|
8104
|
+
]), tt = G(async (e, t) => {
|
|
8069
8105
|
if (A.kind !== "thread" || f.kind !== "anon" && f.kind !== "verified") return;
|
|
8070
8106
|
let n = A.threadId;
|
|
8071
|
-
await
|
|
8072
|
-
let r =
|
|
8107
|
+
await I(async () => {
|
|
8108
|
+
let r = Gr(t), i = await k.editComment(n, e, {
|
|
8073
8109
|
body: t,
|
|
8074
8110
|
mentions: r.length > 0 ? r : void 0
|
|
8075
8111
|
});
|
|
@@ -8079,11 +8115,11 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
8079
8115
|
k,
|
|
8080
8116
|
f,
|
|
8081
8117
|
A,
|
|
8082
|
-
|
|
8083
|
-
]),
|
|
8118
|
+
I
|
|
8119
|
+
]), U = G(async (e) => {
|
|
8084
8120
|
if (A.kind !== "thread" || f.kind !== "anon" && f.kind !== "verified") return;
|
|
8085
8121
|
let t = A.threadId;
|
|
8086
|
-
await
|
|
8122
|
+
await I(async () => {
|
|
8087
8123
|
let n = await k.deleteComment(t, e);
|
|
8088
8124
|
c((e) => e.map((e) => e._id === t ? n.thread : e));
|
|
8089
8125
|
});
|
|
@@ -8091,8 +8127,8 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
8091
8127
|
k,
|
|
8092
8128
|
f,
|
|
8093
8129
|
A,
|
|
8094
|
-
|
|
8095
|
-
]), rt =
|
|
8130
|
+
I
|
|
8131
|
+
]), rt = G(async (e, t) => {
|
|
8096
8132
|
if (A.kind !== "thread") return;
|
|
8097
8133
|
if (!Ie) {
|
|
8098
8134
|
Fe("sign_in_required");
|
|
@@ -8101,12 +8137,12 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
8101
8137
|
let n = oa(f);
|
|
8102
8138
|
if (!n) return;
|
|
8103
8139
|
let r = A.threadId;
|
|
8104
|
-
await
|
|
8140
|
+
await me(async () => {
|
|
8105
8141
|
let i = await k.toggleReaction(e, {
|
|
8106
8142
|
emoji: t,
|
|
8107
8143
|
authorName: n.name
|
|
8108
8144
|
}).catch(Re);
|
|
8109
|
-
c((e) => e.map((e) => e._id === r ? i.thread : e)),
|
|
8145
|
+
c((e) => e.map((e) => e._id === r ? i.thread : e)), ye("reaction_added");
|
|
8110
8146
|
});
|
|
8111
8147
|
}, [
|
|
8112
8148
|
k,
|
|
@@ -8114,32 +8150,32 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
8114
8150
|
f,
|
|
8115
8151
|
A,
|
|
8116
8152
|
Re,
|
|
8117
|
-
|
|
8118
|
-
]), [
|
|
8153
|
+
me
|
|
8154
|
+
]), [it, at] = V(!1), ot = G(async () => await ge(async () => (await k.forgetMe(), j({ kind: "idle" }), p({ type: "forget-me" }), at(!0), !0)) === !0, [
|
|
8119
8155
|
k,
|
|
8120
|
-
|
|
8156
|
+
ge,
|
|
8121
8157
|
p
|
|
8122
8158
|
]);
|
|
8123
|
-
|
|
8124
|
-
if (!
|
|
8159
|
+
H(() => {
|
|
8160
|
+
if (!it) return;
|
|
8125
8161
|
let e = window.setTimeout(() => at(!1), 5e3);
|
|
8126
8162
|
return () => window.clearTimeout(e);
|
|
8127
|
-
}, [
|
|
8128
|
-
let [st, ct] =
|
|
8129
|
-
await
|
|
8163
|
+
}, [it]);
|
|
8164
|
+
let [st, ct] = V(!1), lt = G(async () => {
|
|
8165
|
+
await _e(async () => {
|
|
8130
8166
|
await k.signOut(), j({ kind: "idle" }), p({ type: "signed-out" }), ct(!0);
|
|
8131
8167
|
});
|
|
8132
8168
|
}, [
|
|
8133
8169
|
k,
|
|
8134
|
-
|
|
8170
|
+
_e,
|
|
8135
8171
|
p
|
|
8136
8172
|
]);
|
|
8137
|
-
|
|
8173
|
+
H(() => {
|
|
8138
8174
|
if (!st) return;
|
|
8139
8175
|
let e = window.setTimeout(() => ct(!1), 5e3);
|
|
8140
8176
|
return () => window.clearTimeout(e);
|
|
8141
8177
|
}, [st]);
|
|
8142
|
-
let ut = A.kind === "thread" ? s.find((e) => e._id === A.threadId) ?? null : null, dt =
|
|
8178
|
+
let ut = A.kind === "thread" ? s.find((e) => e._id === A.threadId) ?? null : null, dt = L || Me != null && Me === ut?.authorClientId, ft = W(/* @__PURE__ */ new Map()), pt = nt(() => {
|
|
8143
8179
|
let e = ft.current, t = s.map((t) => {
|
|
8144
8180
|
let { point: n, memory: r } = Ti({
|
|
8145
8181
|
anchorX: t.anchorX,
|
|
@@ -8148,7 +8184,7 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
8148
8184
|
anchorText: t.anchorText,
|
|
8149
8185
|
anchorOffsetX: t.anchorOffsetX,
|
|
8150
8186
|
anchorOffsetY: t.anchorOffsetY
|
|
8151
|
-
}, e.get(t._id));
|
|
8187
|
+
}, e.get(t._id), De);
|
|
8152
8188
|
return e.set(t._id, r), {
|
|
8153
8189
|
thread: t,
|
|
8154
8190
|
point: n
|
|
@@ -8156,18 +8192,22 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
8156
8192
|
});
|
|
8157
8193
|
for (let t of e.keys()) s.some((e) => e._id === t) || e.delete(t);
|
|
8158
8194
|
return t;
|
|
8159
|
-
}, [
|
|
8195
|
+
}, [
|
|
8196
|
+
s,
|
|
8197
|
+
Te,
|
|
8198
|
+
De
|
|
8199
|
+
]), mt = W({
|
|
8160
8200
|
retryable: !1,
|
|
8161
8201
|
elements: []
|
|
8162
8202
|
});
|
|
8163
|
-
|
|
8164
|
-
|
|
8165
|
-
retryable:
|
|
8166
|
-
elements:
|
|
8203
|
+
H(() => {
|
|
8204
|
+
mt.current = {
|
|
8205
|
+
retryable: pt.some((e) => !e.point.resolved && e.thread.anchorSelector != null),
|
|
8206
|
+
elements: pt.flatMap((e) => e.point.element ? [e.point.element] : [])
|
|
8167
8207
|
};
|
|
8168
|
-
}, [
|
|
8169
|
-
let
|
|
8170
|
-
|
|
8208
|
+
}, [pt]);
|
|
8209
|
+
let ht = s.some((e) => e.anchorSelector != null), gt = $r(A.kind !== "placing" && !we && v ? pt : Tl, (e) => e.thread._id, 140), _t = $r(!we || A.kind === "placing" || A.kind === "composing-new" ? Dl : Ol, (e) => e.key, 160), vt = [];
|
|
8210
|
+
Se.kind === "hidden-with-toast" && vt.push({
|
|
8171
8211
|
key: "hud-hidden",
|
|
8172
8212
|
body: /* @__PURE__ */ Q(S, { children: [
|
|
8173
8213
|
"Markup hidden — press ",
|
|
@@ -8181,48 +8221,48 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
8181
8221
|
}),
|
|
8182
8222
|
" or refresh to bring it back."
|
|
8183
8223
|
] })
|
|
8184
|
-
}),
|
|
8224
|
+
}), it && vt.push({
|
|
8185
8225
|
key: "forget-me",
|
|
8186
8226
|
body: "Forgotten on this site — your name and email were cleared."
|
|
8187
|
-
}), st &&
|
|
8227
|
+
}), st && vt.push({
|
|
8188
8228
|
key: "signed-out",
|
|
8189
8229
|
body: "Signed out — commenting anonymously again."
|
|
8190
8230
|
});
|
|
8191
|
-
let
|
|
8192
|
-
return
|
|
8193
|
-
if (!
|
|
8194
|
-
let e = null;
|
|
8195
|
-
function
|
|
8231
|
+
let yt = $r(vt, (e) => e.key, 220), bt = $r(A.kind === "thread" && ut ? [ut] : El, (e) => e._id, 160), K = ei(A.kind === "composing-new" ? A : null, 160), xt = ei(T, 140);
|
|
8232
|
+
return H(() => {
|
|
8233
|
+
if (!ht) return;
|
|
8234
|
+
let e = null, t = !1;
|
|
8235
|
+
function n() {
|
|
8196
8236
|
e ??= requestAnimationFrame(() => {
|
|
8197
|
-
e = null,
|
|
8237
|
+
e = null, t && (t = !1, Oe((e) => e + 1)), Ee((e) => e + 1);
|
|
8198
8238
|
});
|
|
8199
8239
|
}
|
|
8200
|
-
let
|
|
8201
|
-
let { retryable: e, elements:
|
|
8202
|
-
|
|
8240
|
+
let r = new MutationObserver(() => {
|
|
8241
|
+
let { retryable: e, elements: r } = mt.current;
|
|
8242
|
+
(e || !r.every((e) => e.isConnected)) && (t = !0, n());
|
|
8203
8243
|
});
|
|
8204
|
-
return
|
|
8244
|
+
return r.observe(document.body, {
|
|
8205
8245
|
childList: !0,
|
|
8206
8246
|
subtree: !0
|
|
8207
8247
|
}), () => {
|
|
8208
|
-
|
|
8248
|
+
r.disconnect(), e != null && cancelAnimationFrame(e);
|
|
8209
8249
|
};
|
|
8210
|
-
}, [
|
|
8211
|
-
A.kind === "thread" && ut == null &&
|
|
8250
|
+
}, [ht]), H(() => {
|
|
8251
|
+
A.kind === "thread" && ut == null && We();
|
|
8212
8252
|
}, [
|
|
8213
8253
|
A,
|
|
8214
8254
|
ut,
|
|
8215
|
-
|
|
8255
|
+
We
|
|
8216
8256
|
]), /* @__PURE__ */ Q("div", {
|
|
8217
8257
|
class: "markup-root",
|
|
8218
|
-
ref:
|
|
8258
|
+
ref: ke,
|
|
8219
8259
|
style: Qs,
|
|
8220
8260
|
children: [
|
|
8221
8261
|
/* @__PURE__ */ Q("div", {
|
|
8222
8262
|
class: "markup-pins-layer",
|
|
8223
|
-
children: [
|
|
8263
|
+
children: [gt.map(({ key: e, value: { thread: t, point: n }, isLeaving: r, enterDelayMs: i }) => {
|
|
8224
8264
|
let a = !r && A.kind === "thread" && A.threadId === t._id, o = t.comments.reduce((e, t) => e + +!t.deleted, 0);
|
|
8225
|
-
return /* @__PURE__ */ Q(
|
|
8265
|
+
return /* @__PURE__ */ Q(al, {
|
|
8226
8266
|
pageX: n.pageX,
|
|
8227
8267
|
pageY: n.pageY,
|
|
8228
8268
|
count: o,
|
|
@@ -8232,97 +8272,97 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
8232
8272
|
isLeaving: r,
|
|
8233
8273
|
enterDelayMs: i,
|
|
8234
8274
|
onClick: () => {
|
|
8235
|
-
|
|
8275
|
+
ye("thread_opened", { commentCount: o }), j({
|
|
8236
8276
|
kind: "thread",
|
|
8237
8277
|
threadId: t._id
|
|
8238
8278
|
});
|
|
8239
8279
|
}
|
|
8240
8280
|
}, e);
|
|
8241
|
-
}), K ? /* @__PURE__ */ Q(
|
|
8281
|
+
}), K ? /* @__PURE__ */ Q(ol, {
|
|
8242
8282
|
pageX: K.value.pageX,
|
|
8243
8283
|
pageY: K.value.pageY,
|
|
8244
8284
|
isLeaving: K.isLeaving
|
|
8245
8285
|
}) : null]
|
|
8246
8286
|
}),
|
|
8247
|
-
A.kind === "placing" ? /* @__PURE__ */ Q(
|
|
8287
|
+
A.kind === "placing" ? /* @__PURE__ */ Q(sl, {
|
|
8248
8288
|
onPlace: Ke,
|
|
8249
|
-
onCancel:
|
|
8289
|
+
onCancel: We
|
|
8250
8290
|
}) : null,
|
|
8251
|
-
|
|
8291
|
+
bt.map(({ key: e, value: t, isLeaving: n }) => /* @__PURE__ */ Q(fl, {
|
|
8252
8292
|
thread: t,
|
|
8253
8293
|
isLeaving: n,
|
|
8254
|
-
authorName:
|
|
8294
|
+
authorName: Ae,
|
|
8255
8295
|
authorPromptMode: Le,
|
|
8256
|
-
currentClientId:
|
|
8257
|
-
isVerified:
|
|
8296
|
+
currentClientId: Me ?? null,
|
|
8297
|
+
isVerified: L,
|
|
8258
8298
|
isIdentityResolving: je,
|
|
8259
|
-
isSigningIn:
|
|
8299
|
+
isSigningIn: B,
|
|
8260
8300
|
canDelete: dt,
|
|
8261
|
-
isPending:
|
|
8262
|
-
error:
|
|
8263
|
-
isHidden:
|
|
8264
|
-
members:
|
|
8301
|
+
isPending: be,
|
|
8302
|
+
error: xe,
|
|
8303
|
+
isHidden: we,
|
|
8304
|
+
members: ee,
|
|
8265
8305
|
onAuthor: qe,
|
|
8266
|
-
onSignIn:
|
|
8306
|
+
onSignIn: Je,
|
|
8267
8307
|
onSignOut: lt,
|
|
8268
|
-
onClose:
|
|
8308
|
+
onClose: We,
|
|
8269
8309
|
onReply: et,
|
|
8270
8310
|
onEditComment: tt,
|
|
8271
|
-
onDeleteComment:
|
|
8311
|
+
onDeleteComment: U,
|
|
8272
8312
|
onToggleReaction: rt,
|
|
8273
8313
|
onDelete: Xe,
|
|
8274
8314
|
onResolve: Ze
|
|
8275
8315
|
}, e)),
|
|
8276
|
-
K ? /* @__PURE__ */ Q(
|
|
8316
|
+
K ? /* @__PURE__ */ Q(Gc, {
|
|
8277
8317
|
isLeaving: K.isLeaving,
|
|
8278
8318
|
pageX: K.value.pageX,
|
|
8279
8319
|
pageY: K.value.pageY,
|
|
8280
|
-
authorName:
|
|
8320
|
+
authorName: Ae,
|
|
8281
8321
|
authorPromptMode: Le,
|
|
8282
|
-
isVerified:
|
|
8322
|
+
isVerified: L,
|
|
8283
8323
|
isIdentityResolving: je,
|
|
8284
|
-
isSigningIn:
|
|
8285
|
-
isPending:
|
|
8286
|
-
error:
|
|
8324
|
+
isSigningIn: B,
|
|
8325
|
+
isPending: be,
|
|
8326
|
+
error: xe,
|
|
8287
8327
|
screenshot: K.value.screenshot,
|
|
8288
8328
|
isScreenshotCapturing: K.value.isScreenshotCapturing,
|
|
8289
8329
|
screenshotFailed: K.value.screenshotFailed,
|
|
8290
8330
|
screenshotRedactedCount: K.value.screenshotRedactedCount,
|
|
8291
8331
|
screenshotRedactedSelectors: K.value.screenshotRedactedSelectors,
|
|
8292
|
-
members:
|
|
8332
|
+
members: ee,
|
|
8293
8333
|
onAuthor: qe,
|
|
8294
|
-
onSignIn:
|
|
8334
|
+
onSignIn: Je,
|
|
8295
8335
|
onSignOut: lt,
|
|
8296
|
-
onSubmit:
|
|
8297
|
-
onClose:
|
|
8336
|
+
onSubmit: Ye,
|
|
8337
|
+
onClose: We
|
|
8298
8338
|
}) : null,
|
|
8299
|
-
|
|
8339
|
+
_t.map((t) => /* @__PURE__ */ Q(wl, {
|
|
8300
8340
|
isLeaving: t.isLeaving,
|
|
8301
8341
|
isActive: A.kind === "placing",
|
|
8302
|
-
onToggle: () => A.kind === "placing" ?
|
|
8303
|
-
onHide: () =>
|
|
8342
|
+
onToggle: () => A.kind === "placing" ? We() : z(),
|
|
8343
|
+
onHide: () => Ce({ type: "hide-with-toast" }),
|
|
8304
8344
|
position: g,
|
|
8305
|
-
showInbox:
|
|
8306
|
-
unreadCount:
|
|
8345
|
+
showInbox: L,
|
|
8346
|
+
unreadCount: L ? te : 0,
|
|
8307
8347
|
inboxOpen: T === "inbox",
|
|
8308
8348
|
onOpenInbox: () => {
|
|
8309
8349
|
let e = T === "inbox" ? null : "inbox";
|
|
8310
|
-
E(e), e && (
|
|
8350
|
+
E(e), e && (ye("notifications_opened", { unreadCount: te }), ae());
|
|
8311
8351
|
},
|
|
8312
8352
|
pinsVisible: v,
|
|
8313
8353
|
onTogglePins: () => y((e) => !e),
|
|
8314
8354
|
identityButton: /* @__PURE__ */ Q($s, {
|
|
8315
8355
|
identity: f,
|
|
8316
8356
|
position: g,
|
|
8317
|
-
isSigningIn:
|
|
8318
|
-
isSigningOut:
|
|
8357
|
+
isSigningIn: B,
|
|
8358
|
+
isSigningOut: ve,
|
|
8319
8359
|
dashboardUrl: i,
|
|
8320
|
-
commentAccess:
|
|
8321
|
-
onSignIn:
|
|
8360
|
+
commentAccess: R,
|
|
8361
|
+
onSignIn: Je,
|
|
8322
8362
|
onSignOut: lt,
|
|
8323
8363
|
onForgetMe: ot
|
|
8324
8364
|
}),
|
|
8325
|
-
overflowButton: /* @__PURE__ */ Q(
|
|
8365
|
+
overflowButton: /* @__PURE__ */ Q(el, {
|
|
8326
8366
|
position: g,
|
|
8327
8367
|
onSetPosition: _,
|
|
8328
8368
|
autoCapture: b && r?.enabled !== !1,
|
|
@@ -8330,25 +8370,25 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
8330
8370
|
onToggleAutoCapture: () => x((e) => !e),
|
|
8331
8371
|
showResolved: C,
|
|
8332
8372
|
onToggleShowResolved: () => w((e) => !e),
|
|
8333
|
-
onHideForSession: () =>
|
|
8373
|
+
onHideForSession: () => Ce({ type: "hide-with-toast" }),
|
|
8334
8374
|
identity: f,
|
|
8335
8375
|
apiUrl: e,
|
|
8336
|
-
commentAccess:
|
|
8376
|
+
commentAccess: R,
|
|
8337
8377
|
isForgettingMe: ue.isPending,
|
|
8338
8378
|
forgetMeError: ue.error,
|
|
8339
8379
|
onForgetMe: ot,
|
|
8340
|
-
version: "1.25.
|
|
8380
|
+
version: "1.25.2",
|
|
8341
8381
|
dashboardUrl: i
|
|
8342
8382
|
})
|
|
8343
8383
|
}, t.key)),
|
|
8344
|
-
|
|
8384
|
+
xt?.value === "inbox" && L ? /* @__PURE__ */ Q(il, {
|
|
8345
8385
|
kind: "inbox",
|
|
8346
8386
|
label: "Inbox",
|
|
8347
8387
|
position: g,
|
|
8348
8388
|
ignoreToolbarKind: "inbox",
|
|
8349
|
-
isLeaving:
|
|
8389
|
+
isLeaving: xt.isLeaving,
|
|
8350
8390
|
onClose: D,
|
|
8351
|
-
children: /* @__PURE__ */ Q(
|
|
8391
|
+
children: /* @__PURE__ */ Q(qc, {
|
|
8352
8392
|
state: ne,
|
|
8353
8393
|
isMarkingAll: F,
|
|
8354
8394
|
onBack: D,
|
|
@@ -8358,7 +8398,7 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
8358
8398
|
onMarkAllRead: $e
|
|
8359
8399
|
})
|
|
8360
8400
|
}) : null,
|
|
8361
|
-
|
|
8401
|
+
yt.map((e) => /* @__PURE__ */ Q(Fl, {
|
|
8362
8402
|
position: g,
|
|
8363
8403
|
isLeaving: e.isLeaving,
|
|
8364
8404
|
children: e.value.body
|
|
@@ -8366,7 +8406,7 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
8366
8406
|
]
|
|
8367
8407
|
});
|
|
8368
8408
|
}
|
|
8369
|
-
function
|
|
8409
|
+
function Fl({ position: e, isLeaving: t, children: n }) {
|
|
8370
8410
|
return /* @__PURE__ */ Q("div", {
|
|
8371
8411
|
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", t && "is-leaving"),
|
|
8372
8412
|
role: "status",
|
|
@@ -8377,52 +8417,52 @@ function jl({ position: e, isLeaving: t, children: n }) {
|
|
|
8377
8417
|
}
|
|
8378
8418
|
//#endregion
|
|
8379
8419
|
//#region src/runtime/mount.tsx
|
|
8380
|
-
function
|
|
8381
|
-
e.style.position = "fixed", e.style.inset = "0", e.style.zIndex = "2147483647", e.style.pointerEvents = "none",
|
|
8382
|
-
let n =
|
|
8420
|
+
function Il(e, t) {
|
|
8421
|
+
e.style.position = "fixed", e.style.inset = "0", e.style.zIndex = "2147483647", e.style.pointerEvents = "none", Le(e, t.theme ?? "auto");
|
|
8422
|
+
let n = He(), r = e.attachShadow({ mode: "open" }), i = document.createElement("style");
|
|
8383
8423
|
i.textContent = le, r.appendChild(i);
|
|
8384
8424
|
let a = document.createElement("div");
|
|
8385
|
-
a.className = "markup-shadow-root", r.appendChild(a),
|
|
8425
|
+
a.className = "markup-shadow-root", r.appendChild(a), Ae({
|
|
8386
8426
|
apiUrl: t.apiUrl,
|
|
8387
8427
|
apiKey: t.apiKey,
|
|
8388
|
-
widgetVersion: "1.25.
|
|
8389
|
-
}),
|
|
8428
|
+
widgetVersion: "1.25.2"
|
|
8429
|
+
}), ve(t.analytics === !1 ? null : {
|
|
8390
8430
|
apiUrl: t.apiUrl,
|
|
8391
8431
|
apiKey: t.apiKey,
|
|
8392
|
-
widgetVersion: "1.25.
|
|
8393
|
-
}),
|
|
8432
|
+
widgetVersion: "1.25.2"
|
|
8433
|
+
}), ye("widget_loaded");
|
|
8394
8434
|
let { theme: o, analytics: s, ...c } = t;
|
|
8395
|
-
return ce(/* @__PURE__ */ Q(
|
|
8396
|
-
onError: (e) =>
|
|
8397
|
-
children: /* @__PURE__ */ Q(
|
|
8435
|
+
return ce(/* @__PURE__ */ Q(Se, {
|
|
8436
|
+
onError: (e) => L(e, { context: "render" }),
|
|
8437
|
+
children: /* @__PURE__ */ Q(Pl, { ...c })
|
|
8398
8438
|
}), a), () => {
|
|
8399
|
-
n(),
|
|
8439
|
+
n(), Ae(null), ve(null), ce(null, a);
|
|
8400
8440
|
};
|
|
8401
8441
|
}
|
|
8402
8442
|
//#endregion
|
|
8403
8443
|
//#region src/widget.ts
|
|
8404
|
-
var
|
|
8405
|
-
function
|
|
8444
|
+
var Ll = null, Rl = null, zl = null, Bl = !1;
|
|
8445
|
+
function Vl(e) {
|
|
8406
8446
|
if (!e.apiUrl || !e.apiKey) return console.warn("[markup] init() requires both apiUrl and apiKey, so the widget was not mounted"), () => {};
|
|
8407
|
-
e.fab != null && !
|
|
8447
|
+
e.fab != null && !Bl && (Bl = !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.")), Hl();
|
|
8408
8448
|
let t = () => {
|
|
8409
|
-
if (
|
|
8449
|
+
if (zl = null, !document.body) return;
|
|
8410
8450
|
let t = document.createElement("div");
|
|
8411
|
-
t.id = "markup-widget", document.body.appendChild(t),
|
|
8451
|
+
t.id = "markup-widget", document.body.appendChild(t), Rl = t, Ll = Il(t, e);
|
|
8412
8452
|
};
|
|
8413
8453
|
if (document.readyState === "loading" || !document.body) {
|
|
8414
8454
|
let e = () => t();
|
|
8415
|
-
|
|
8455
|
+
zl = () => document.removeEventListener("DOMContentLoaded", e), document.addEventListener("DOMContentLoaded", e, { once: !0 });
|
|
8416
8456
|
} else t();
|
|
8417
|
-
return
|
|
8457
|
+
return Hl;
|
|
8418
8458
|
}
|
|
8419
|
-
function
|
|
8420
|
-
|
|
8459
|
+
function Hl() {
|
|
8460
|
+
zl &&= (zl(), null), Ll &&= (Ll(), null), Rl?.parentNode && Rl.parentNode.removeChild(Rl), Rl = null;
|
|
8421
8461
|
}
|
|
8422
8462
|
if (typeof document < "u") {
|
|
8423
8463
|
let e = document.currentScript ?? document.querySelector("script[data-markup-widget=\"true\"]"), t = e?.dataset.apiUrl, n = e?.dataset.apiKey;
|
|
8424
8464
|
if (t && n) {
|
|
8425
|
-
let r = e?.dataset.position, i = e?.dataset.theme, a = e?.dataset.fab, o = e?.dataset.dashboardUrl, s = e?.dataset.analytics !== "false", c = () =>
|
|
8465
|
+
let r = e?.dataset.position, i = e?.dataset.theme, a = e?.dataset.fab, o = e?.dataset.dashboardUrl, s = e?.dataset.analytics !== "false", c = () => Vl({
|
|
8426
8466
|
apiUrl: t,
|
|
8427
8467
|
apiKey: n,
|
|
8428
8468
|
position: r,
|
|
@@ -8435,6 +8475,6 @@ if (typeof document < "u") {
|
|
|
8435
8475
|
}
|
|
8436
8476
|
}
|
|
8437
8477
|
//#endregion
|
|
8438
|
-
export {
|
|
8478
|
+
export { Hl as destroy, Vl as init };
|
|
8439
8479
|
|
|
8440
8480
|
//# sourceMappingURL=widget.js.map
|