@pixelmatters/markup 1.3.1 → 1.3.3
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 +307 -297
- package/package.json +1 -1
package/dist/widget.js
CHANGED
|
@@ -45,7 +45,7 @@ function w(e, t) {
|
|
|
45
45
|
function T(e) {
|
|
46
46
|
if (e.__P && e.__d) {
|
|
47
47
|
var n = e.__v, r = n.__e, i = [], a = [], o = v({}, n);
|
|
48
|
-
o.__v = n.__v + 1, t.vnode && t.vnode(o),
|
|
48
|
+
o.__v = n.__v + 1, t.vnode && t.vnode(o), ne(e.__P, o, n, e.__n, e.__P.namespaceURI, 32 & n.__u ? [r] : null, i, r ?? w(n), !!(32 & n.__u), a), o.__v = n.__v, o.__.__k[o.__i] = o, F(i, o, a), n.__e = n.__ = null, o.__e != r && E(o);
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
function E(e) {
|
|
@@ -65,13 +65,13 @@ function O() {
|
|
|
65
65
|
}
|
|
66
66
|
function ee(e, t, n, r, i, a, o, s, c, l, u) {
|
|
67
67
|
var d, f, p, g, _, v, y, b = r && r.__k || h, x = t.length;
|
|
68
|
-
for (c = k(n, t, b, c, x), d = 0; d < x; d++) (p = n.__k[d]) != null && (f = p.__i != -1 && b[p.__i] || m, p.__i = d, v =
|
|
68
|
+
for (c = k(n, t, b, c, x), d = 0; d < x; d++) (p = n.__k[d]) != null && (f = p.__i != -1 && b[p.__i] || m, p.__i = d, v = ne(e, p, f, i, a, o, s, c, l, u), g = p.__e, p.ref && f.ref != p.ref && (f.ref && ae(f.ref, null, p), u.push(p.ref, p.__c || g, p)), _ == null && g != null && (_ = g), (y = !!(4 & p.__u)) || f.__k === p.__k ? (c = A(p, c, e, y), y && f.__e && (f.__e = null)) : typeof p.type == "function" && v !== void 0 ? c = v : g && (c = g.nextSibling), p.__u &= -7);
|
|
69
69
|
return n.__e = _, c;
|
|
70
70
|
}
|
|
71
71
|
function k(e, t, n, r, i) {
|
|
72
72
|
var a, o, s, c, l, u = n.length, d = u, f = 0;
|
|
73
|
-
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 =
|
|
74
|
-
if (d) for (a = 0; a < u; a++) (s = n[a]) != null && !(2 & s.__u) && (s.__e == r && (r = w(s)),
|
|
73
|
+
for (e.__k = Array(i), a = 0; a < i; a++) (o = t[a]) != null && typeof o != "boolean" && typeof o != "function" ? (typeof o == "string" || typeof o == "number" || typeof o == "bigint" || o.constructor == String ? o = e.__k[a] = x(null, o, null, null, null) : _(o) ? o = e.__k[a] = x(S, { children: o }, null, null, null) : o.constructor === void 0 && o.__b > 0 ? o = e.__k[a] = x(o.type, o.props, o.key, o.ref ? o.ref : null, o.__v) : e.__k[a] = o, c = a + f, o.__ = e, o.__b = e.__b + 1, s = null, (l = o.__i = j(o, n, c, d)) != -1 && (d--, (s = n[l]) && (s.__u |= 2)), s == null || s.__v == null ? (l == -1 && (i > u ? f-- : i < u && f++), typeof o.type != "function" && (o.__u |= 4)) : l != c && (l == c - 1 ? f-- : l == c + 1 ? f++ : (l > c ? f-- : f++, o.__u |= 4))) : e.__k[a] = null;
|
|
74
|
+
if (d) for (a = 0; a < u; a++) (s = n[a]) != null && !(2 & s.__u) && (s.__e == r && (r = w(s)), oe(s, s));
|
|
75
75
|
return r;
|
|
76
76
|
}
|
|
77
77
|
function A(e, t, n, r) {
|
|
@@ -86,7 +86,7 @@ function A(e, t, n, r) {
|
|
|
86
86
|
while (t != null && t.nodeType == 8);
|
|
87
87
|
return t;
|
|
88
88
|
}
|
|
89
|
-
function
|
|
89
|
+
function j(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) == 0;
|
|
91
91
|
if (l === null && s == null || u && s == l.key && c == l.type) return n;
|
|
92
92
|
if (r > +!!u) {
|
|
@@ -94,15 +94,15 @@ function te(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
102
|
n: if (t == "style") if (typeof n == "string") e.style.cssText = n;
|
|
103
103
|
else {
|
|
104
|
-
if (typeof r == "string" && (e.style.cssText = r = ""), r) for (t in r) n && t in n ||
|
|
105
|
-
if (n) for (t in n) r && n[t] == r[t] ||
|
|
104
|
+
if (typeof r == "string" && (e.style.cssText = r = ""), r) for (t in r) n && t in n || M(e.style, t, "");
|
|
105
|
+
if (n) for (t in n) r && n[t] == r[t] || M(e.style, t, n[t]);
|
|
106
106
|
}
|
|
107
107
|
else if (t[0] == "o" && t[1] == "n") a = t != (t = t.replace(u, "$1")), o = t.toLowerCase(), t = o in e || t == "onFocusOut" || t == "onFocusIn" ? o.slice(2) : t.slice(2), e.l ||= {}, e.l[t + a] = n, n ? r ? n[l] = r[l] : (n[l] = d, e.addEventListener(t, a ? p : f, a)) : e.removeEventListener(t, a ? p : f, a);
|
|
108
108
|
else {
|
|
@@ -114,7 +114,7 @@ function ne(e, t, n, r, i) {
|
|
|
114
114
|
typeof n == "function" || (n == null || !1 === n && t[4] != "-" ? e.removeAttribute(t) : e.setAttribute(t, t == "popover" && n == 1 ? "" : n));
|
|
115
115
|
}
|
|
116
116
|
}
|
|
117
|
-
function
|
|
117
|
+
function N(e) {
|
|
118
118
|
return function(n) {
|
|
119
119
|
if (this.l) {
|
|
120
120
|
var r = this.l[n.type + e];
|
|
@@ -124,14 +124,14 @@ function M(e) {
|
|
|
124
124
|
}
|
|
125
125
|
};
|
|
126
126
|
}
|
|
127
|
-
function
|
|
128
|
-
var d, f, p, m, g, b, x, w, T, E, D, O, k, A,
|
|
127
|
+
function ne(e, n, r, i, a, o, s, c, l, u) {
|
|
128
|
+
var d, f, p, m, g, b, x, w, T, E, D, O, k, A, j, M = n.type;
|
|
129
129
|
if (n.constructor !== void 0) return null;
|
|
130
130
|
128 & r.__u && (l = !!(32 & r.__u), o = [c = n.__e = r.__e]), (d = t.__b) && d(n);
|
|
131
|
-
n: if (typeof
|
|
132
|
-
if (w = n.props, T =
|
|
131
|
+
n: if (typeof M == "function") try {
|
|
132
|
+
if (w = n.props, T = M.prototype && M.prototype.render, E = (d = M.contextType) && i[d.__c], D = d ? E ? E.props.value : d.__ : i, r.__c ? x = (f = n.__c = r.__c).__ = f.__E : (T ? n.__c = f = new M(w, D) : (n.__c = f = new C(w, D), f.constructor = M, f.render = se), E && E.sub(f), f.state ||= {}, f.__n = i, p = f.__d = !0, f.__h = [], f._sb = []), T && f.__s == null && (f.__s = f.state), T && M.getDerivedStateFromProps != null && (f.__s == f.state && (f.__s = v({}, f.__s)), v(f.__s, M.getDerivedStateFromProps(w, f.__s))), m = f.props, g = f.state, f.__v = n, p) T && M.getDerivedStateFromProps == null && f.componentWillMount != null && f.componentWillMount(), T && f.componentDidMount != null && f.__h.push(f.componentDidMount);
|
|
133
133
|
else {
|
|
134
|
-
if (T &&
|
|
134
|
+
if (T && M.getDerivedStateFromProps == null && w !== m && f.componentWillReceiveProps != null && f.componentWillReceiveProps(w, D), n.__v == r.__v || !f.__e && f.shouldComponentUpdate != null && !1 === f.shouldComponentUpdate(w, f.__s, D)) {
|
|
135
135
|
n.__v != r.__v && (f.props = w, f.state = f.__s, f.__d = !1), n.__e = r.__e, n.__k = r.__k, n.__k.some(function(e) {
|
|
136
136
|
e && (e.__ = n);
|
|
137
137
|
}), h.push.apply(f.__h, f._sb), f._sb = [], f.__h.length && s.push(f);
|
|
@@ -145,26 +145,26 @@ function N(e, n, r, i, a, o, s, c, l, u) {
|
|
|
145
145
|
else do
|
|
146
146
|
f.__d = !1, O && O(n), d = f.render(f.props, f.state, f.context), f.state = f.__s;
|
|
147
147
|
while (f.__d && ++k < 25);
|
|
148
|
-
f.state = f.__s, f.getChildContext != null && (i = v(v({}, i), f.getChildContext())), T && !p && f.getSnapshotBeforeUpdate != null && (b = f.getSnapshotBeforeUpdate(m, g)), A = d != null && d.type === S && d.key == null ?
|
|
148
|
+
f.state = f.__s, f.getChildContext != null && (i = v(v({}, i), f.getChildContext())), T && !p && f.getSnapshotBeforeUpdate != null && (b = f.getSnapshotBeforeUpdate(m, g)), A = d != null && d.type === S && d.key == null ? re(d.props.children) : d, c = ee(e, _(A) ? A : [A], n, r, i, a, o, s, c, l, u), f.base = n.__e, n.__u &= -161, f.__h.length && s.push(f), x && (f.__E = f.__ = null);
|
|
149
149
|
} catch (e) {
|
|
150
150
|
if (n.__v = null, l || o != null) if (e.then) {
|
|
151
151
|
for (n.__u |= l ? 160 : 128; c && c.nodeType == 8 && c.nextSibling;) c = c.nextSibling;
|
|
152
152
|
o[o.indexOf(c)] = null, n.__e = c;
|
|
153
153
|
} else {
|
|
154
|
-
for (
|
|
154
|
+
for (j = o.length; j--;) y(o[j]);
|
|
155
155
|
P(n);
|
|
156
156
|
}
|
|
157
157
|
else n.__e = r.__e, n.__k = r.__k, e.then || P(n);
|
|
158
158
|
t.__e(e, n, r);
|
|
159
159
|
}
|
|
160
|
-
else o == null && n.__v == r.__v ? (n.__k = r.__k, n.__e = r.__e) : c = n.__e =
|
|
160
|
+
else o == null && n.__v == r.__v ? (n.__k = r.__k, n.__e = r.__e) : c = n.__e = ie(r.__e, n, r, i, a, o, s, l, u);
|
|
161
161
|
return (d = t.diffed) && d(n), 128 & n.__u ? void 0 : c;
|
|
162
162
|
}
|
|
163
163
|
function P(e) {
|
|
164
164
|
e && (e.__c && (e.__c.__e = !0), e.__k && e.__k.some(P));
|
|
165
165
|
}
|
|
166
|
-
function
|
|
167
|
-
for (var i = 0; i < r.length; i++)
|
|
166
|
+
function F(e, n, r) {
|
|
167
|
+
for (var i = 0; i < r.length; i++) ae(r[i], r[++i], r[++i]);
|
|
168
168
|
t.__c && t.__c(n, e), e.some(function(n) {
|
|
169
169
|
try {
|
|
170
170
|
e = n.__h, n.__h = [], e.some(function(e) {
|
|
@@ -175,10 +175,10 @@ function re(e, n, r) {
|
|
|
175
175
|
}
|
|
176
176
|
});
|
|
177
177
|
}
|
|
178
|
-
function
|
|
179
|
-
return typeof e != "object" || !e || e.__b > 0 ? e : _(e) ? e.map(
|
|
178
|
+
function re(e) {
|
|
179
|
+
return typeof e != "object" || !e || e.__b > 0 ? e : _(e) ? e.map(re) : v({}, e);
|
|
180
180
|
}
|
|
181
|
-
function
|
|
181
|
+
function ie(n, r, i, a, o, s, c, l, u) {
|
|
182
182
|
var d, f, p, h, g, v, b, x = i.props || m, S = r.props, C = r.type;
|
|
183
183
|
if (C == "svg" ? o = "http://www.w3.org/2000/svg" : C == "math" ? o = "http://www.w3.org/1998/Math/MathML" : o ||= "http://www.w3.org/1999/xhtml", s != null) {
|
|
184
184
|
for (d = 0; d < s.length; d++) if ((g = s[d]) && "setAttribute" in g == !!C && (C ? g.localName == C : g.nodeType == 3)) {
|
|
@@ -193,15 +193,15 @@ function ae(n, r, i, a, o, s, c, l, u) {
|
|
|
193
193
|
if (C == null) x === S || l && n.data == S || (n.data = S);
|
|
194
194
|
else {
|
|
195
195
|
if (s &&= e.call(n.childNodes), !l && s != null) for (x = {}, d = 0; d < n.attributes.length; d++) x[(g = n.attributes[d]).name] = g.value;
|
|
196
|
-
for (d in x) g = x[d], d == "dangerouslySetInnerHTML" ? p = g : d == "children" || d in S || d == "value" && "defaultValue" in S || d == "checked" && "defaultChecked" in S ||
|
|
197
|
-
for (d in S) g = S[d], d == "children" ? h = g : d == "dangerouslySetInnerHTML" ? f = g : d == "value" ? v = g : d == "checked" ? b = g : l && typeof g != "function" || x[d] === g ||
|
|
196
|
+
for (d in x) g = x[d], d == "dangerouslySetInnerHTML" ? p = g : d == "children" || d in S || d == "value" && "defaultValue" in S || d == "checked" && "defaultChecked" in S || te(n, d, null, g, o);
|
|
197
|
+
for (d in S) g = S[d], d == "children" ? h = g : d == "dangerouslySetInnerHTML" ? f = g : d == "value" ? v = g : d == "checked" ? b = g : l && typeof g != "function" || x[d] === g || te(n, d, g, x[d], o);
|
|
198
198
|
if (f) l || p && (f.__html == p.__html || f.__html == n.innerHTML) || (n.innerHTML = f.__html), r.__k = [];
|
|
199
199
|
else if (p && (n.innerHTML = ""), ee(r.type == "template" ? n.content : n, _(h) ? h : [h], r, i, a, C == "foreignObject" ? "http://www.w3.org/1999/xhtml" : o, s, c, s ? s[0] : i.__k && w(i, 0), l, u), s != null) for (d = s.length; d--;) y(s[d]);
|
|
200
|
-
l || (d = "value", C == "progress" && v == null ? n.removeAttribute("value") : v != null && (v !== n[d] || C == "progress" && !v || C == "option" && v != x[d]) &&
|
|
200
|
+
l || (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
201
|
}
|
|
202
202
|
return n;
|
|
203
203
|
}
|
|
204
|
-
function
|
|
204
|
+
function ae(e, n, r) {
|
|
205
205
|
try {
|
|
206
206
|
if (typeof e == "function") {
|
|
207
207
|
var i = typeof e.__u == "function";
|
|
@@ -211,9 +211,9 @@ function oe(e, n, r) {
|
|
|
211
211
|
t.__e(e, r);
|
|
212
212
|
}
|
|
213
213
|
}
|
|
214
|
-
function
|
|
214
|
+
function oe(e, n, r) {
|
|
215
215
|
var i, a;
|
|
216
|
-
if (t.unmount && t.unmount(e), (i = e.ref) && (i.current && i.current != e.__e ||
|
|
216
|
+
if (t.unmount && t.unmount(e), (i = e.ref) && (i.current && i.current != e.__e || ae(i, null, n)), (i = e.__c) != null) {
|
|
217
217
|
if (i.componentWillUnmount) try {
|
|
218
218
|
i.componentWillUnmount();
|
|
219
219
|
} catch (e) {
|
|
@@ -221,15 +221,15 @@ function se(e, n, r) {
|
|
|
221
221
|
}
|
|
222
222
|
i.base = i.__P = null;
|
|
223
223
|
}
|
|
224
|
-
if (i = e.__k) for (a = 0; a < i.length; a++) i[a] &&
|
|
224
|
+
if (i = e.__k) for (a = 0; a < i.length; a++) i[a] && oe(i[a], n, r || typeof e.type != "function");
|
|
225
225
|
r || y(e.__e), e.__c = e.__ = e.__e = void 0;
|
|
226
226
|
}
|
|
227
|
-
function
|
|
227
|
+
function se(e, t, n) {
|
|
228
228
|
return this.constructor(e, n);
|
|
229
229
|
}
|
|
230
|
-
function
|
|
230
|
+
function ce(n, r, i) {
|
|
231
231
|
var a, o, s, c;
|
|
232
|
-
r == document && (r = document.documentElement), t.__ && t.__(n, r), o = (a = typeof i == "function") ? null : i && i.__k || r.__k, s = [], c = [],
|
|
232
|
+
r == document && (r = document.documentElement), t.__ && t.__(n, r), o = (a = typeof i == "function") ? null : i && i.__k || r.__k, s = [], c = [], ne(r, n = (!a && i || r).__k = b(S, null, [n]), o || m, m, r.namespaceURI, !a && i ? [i] : o ? null : r.firstChild ? e.call(r.childNodes) : null, s, !a && i ? i : o ? o.__e : r.firstChild, a, c), F(s, n, c);
|
|
233
233
|
}
|
|
234
234
|
e = h.slice, t = { __e: function(e, t, n, r) {
|
|
235
235
|
for (var i, a, o; t = t.__;) if ((i = t.__c) && !i.__) try {
|
|
@@ -245,27 +245,27 @@ e = h.slice, t = { __e: function(e, t, n, r) {
|
|
|
245
245
|
this.__v && (this.__e = !0, e && this.__h.push(e), D(this));
|
|
246
246
|
}, C.prototype.render = S, r = [], a = typeof Promise == "function" ? Promise.prototype.then.bind(Promise.resolve()) : setTimeout, o = function(e, t) {
|
|
247
247
|
return e.__v.__b - t.__v.__b;
|
|
248
|
-
}, O.__r = 0, s = Math.random().toString(8), c = "__d" + s, l = "__a" + s, u = /(PointerCapture)$|Capture$/i, d = 0, f =
|
|
248
|
+
}, O.__r = 0, s = Math.random().toString(8), c = "__d" + s, l = "__a" + s, u = /(PointerCapture)$|Capture$/i, d = 0, f = N(!1), p = N(!0);
|
|
249
249
|
//#endregion
|
|
250
250
|
//#region src/styles.css?inline
|
|
251
|
-
var ue = ":host{--markup-paper:#fdfcfa;--markup-ink:#1a1614;--markup-muted:#6b6661;--markup-border:#1a16141a;--markup-border-strong:#1a16142e;--markup-brand:#e35d2a;--markup-brand-hover:#c84d20;--markup-team:#2a4ac8;--markup-shadow:0 1px 2px #1a16140f, 0 8px 28px #1a16141f;--markup-overlay-tint:#1a16140a;--markup-danger:#dc2626;--markup-radius:6px;--markup-radius-sm:4px;--markup-font:\"Geist Variable\", \"Geist\", ui-sans-serif, -apple-system, BlinkMacSystemFont, \"Segoe UI\", system-ui, sans-serif;--markup-font-mono:\"Geist Mono Variable\", \"Geist Mono\", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;all:initial;font-family:var(--markup-font);color:var(--markup-ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.5}:host([data-theme=dark]){--markup-paper:#1a1614;--markup-ink:#fdfcfa;--markup-muted:#a8a39e;--markup-border:#fdfcfa1f;--markup-border-strong:#fdfcfa38;--markup-team:#7b99f0;--markup-shadow:0 1px 2px #00000059, 0 12px 40px #00000073;--markup-overlay-tint:#fdfcfa0d;--markup-danger:#f87171}@media (prefers-color-scheme:dark){:host(:not([data-theme=light])){--markup-paper:#1a1614;--markup-ink:#fdfcfa;--markup-muted:#a8a39e;--markup-border:#fdfcfa1f;--markup-border-strong:#fdfcfa38;--markup-team:#7b99f0;--markup-shadow:0 1px 2px #00000059, 0 12px 40px #00000073;--markup-overlay-tint:#fdfcfa0d;--markup-danger:#f87171}}.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-fab{z-index:10;background:var(--markup-ink);color:var(--markup-paper);cursor:pointer;touch-action:none;letter-spacing:-.01em;pointer-events:auto;box-shadow:0 0 0 1px color-mix(in srgb, var(--markup-brand) 35%, transparent), var(--markup-shadow);border:none;border-radius:999px;align-items:center;gap:8px;padding:9px 14px;font-size:13px;font-weight:500;transition:background .15s,box-shadow .15s,transform .15s;display:inline-flex;position:fixed;bottom:24px}.markup-fab:hover{background:var(--markup-brand);box-shadow:0 0 0 1px color-mix(in srgb, var(--markup-brand) 0%, transparent), var(--markup-shadow)}.markup-fab:active{transform:translateY(1px)}.markup-fab.is-active{background:var(--markup-brand);box-shadow:var(--markup-shadow)}.markup-fab.is-active:hover{background:var(--markup-brand-hover)}.markup-fab .markup-fab-icon{color:var(--markup-brand);transition:color .15s}.markup-fab:hover .markup-fab-icon,.markup-fab.is-active .markup-fab-icon{color:var(--markup-paper)}.markup-fab-right{right:24px}.markup-fab-left{left:24px}.markup-fab.is-floating{inset:0 auto auto 0}.markup-fab.is-dragging{cursor:grabbing;transition:none}.markup-fab-icon{align-items:center;display:inline-flex}.markup-fab-label{font-family:var(--markup-font)}.markup-hud-hidden-toast{z-index:10;background:var(--markup-ink);color:var(--markup-paper);letter-spacing:-.01em;box-shadow:var(--markup-shadow);pointer-events:none;border-radius:999px;align-items:center;gap:6px;padding:8px 14px;font-size:12px;font-weight:500;animation:.22s ease-out markup-hud-hidden-in,.32s ease-in 4.6s forwards markup-hud-hidden-out;display:inline-flex;position:fixed;bottom:24px}.markup-hud-hidden-toast-right{right:24px}.markup-hud-hidden-toast-left{left:24px}.markup-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}@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{background:var(--markup-ink);width:28px;height:28px;color:var(--markup-brand);cursor:pointer;pointer-events:auto;box-shadow:0 0 0 2px var(--markup-paper), 0 0 0 3px color-mix(in srgb, var(--markup-brand) 35%, transparent), var(--markup-shadow);border:none;border-radius:50% 50% 50% 4px;justify-content:center;align-items:center;margin-top:-28px;padding:0;transition:transform .15s,background .15s,color .15s;display:inline-flex;position:absolute}.markup-pin:hover,.markup-pin.is-active{background:var(--markup-brand);color:var(--markup-paper)}.markup-pin.is-anchor{anchor-name:--markup-active-anchor}.markup-pin-ghost{background:var(--markup-brand);color:var(--markup-paper);cursor:default;pointer-events:none;animation:1.2s ease-in-out infinite markup-ghost-pulse}.markup-pin-dot{background:currentColor;border-radius:50%;width:6px;height:6px;display:inline-block}.markup-pin-count{background:var(--markup-brand);min-width:16px;height:16px;color:var(--markup-paper);font-family:var(--markup-font-mono);text-align:center;box-shadow:0 0 0 2px var(--markup-paper);border-radius:999px;padding:0 4px;font-size:9px;font-weight:600;line-height:16px;position:absolute;top:-4px;left:50%;transform:translate(-50%,-50%)}@keyframes markup-ghost-pulse{0%,to{box-shadow:0 0 0 2px var(--markup-paper), 0 0 0 0 #e35d2a66}50%{box-shadow:0 0 0 2px var(--markup-paper), 0 0 0 10px #e35d2a00}}.markup-placement-overlay{background:var(--markup-overlay-tint);cursor:crosshair;pointer-events:auto;z-index:1;animation:.18s ease-out markup-overlay-in;position:fixed;inset:0}.markup-placement-cursor-help{background:var(--markup-ink);color:var(--markup-paper);letter-spacing:-.01em;box-shadow:var(--markup-shadow);pointer-events:none;border-radius:999px;padding:10px 16px;font-size:12px;font-weight:500;animation:.22s ease-out 60ms backwards markup-help-in;position:fixed;top:24px;left:50%;transform:translate(-50%)}@keyframes markup-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes markup-help-in{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}.markup-popover{width:320px;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}}@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-thread-menu{display:flex;position:relative}.markup-thread-menu-list{z-index:10;background:var(--markup-paper);border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius);min-width:160px;box-shadow:var(--markup-shadow);padding:4px;animation:.12s ease-out markup-menu-in;position:absolute;top:calc(100% + 6px);right:0}.markup-thread-menu-item{border-radius:var(--markup-radius-sm);width:100%;color:var(--markup-ink);text-align:left;cursor:pointer;background:0 0;border:none;padding:7px 10px;font-size:13px;transition:background .1s,color .1s;display:block}.markup-thread-menu-item:hover{background:var(--markup-border)}.markup-thread-menu-item.is-danger{color:var(--markup-danger,#dc2626)}.markup-thread-menu-item.is-danger:hover{background:color-mix(in srgb, var(--markup-danger,#dc2626) 10%, transparent)}.markup-thread-menu-item:disabled{opacity:.5;cursor:default}@keyframes markup-menu-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.markup-popover-body{padding:12px}.markup-popover-byline{color:var(--markup-muted);align-items:center;gap:4px;margin:0 0 8px;font-size:12px;display:flex}.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;display:inline-flex}.markup-icon-btn:hover,.markup-icon-btn.is-open{background:var(--markup-border);color:var(--markup-ink)}.markup-comments{border-bottom:1px solid var(--markup-border);background:linear-gradient(var(--markup-paper), transparent) top / 100% 20px no-repeat local, linear-gradient(transparent, var(--markup-paper)) bottom / 100% 20px no-repeat local, radial-gradient(farthest-side at 50% 0%, #1a16141a, transparent) top / 100% 10px no-repeat scroll, radial-gradient(farthest-side at 50% 100%, #1a16141a, transparent) bottom / 100% 10px no-repeat scroll;flex-direction:column;gap:12px;max-height:280px;margin:0;padding:8px 12px 4px;list-style:none;display:flex;overflow-y:auto}.markup-comment{flex-direction:column;gap:4px;display:flex}.markup-comment-meta{align-items:center;gap:6px;font-size:11px;display:flex}.markup-comment-author{color:var(--markup-ink);font-weight:600}.markup-comment.is-team .markup-comment-author{color:var(--markup-team)}.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-time{color:var(--markup-muted);font-family:var(--markup-font-mono);letter-spacing:.04em;font-size:10px}.markup-comment-body{white-space:pre-wrap;word-break:break-word;margin:0;font-size:13px;line-height:1.5}.markup-comment-edited{color:var(--markup-muted);font-size:11px}.markup-thread-actions{align-items:center;gap:4px;display:flex}.markup-comment-meta .markup-reaction-picker-wrap,.markup-thread-actions{margin-left:auto}.markup-comment-meta .markup-reaction-add{width:22px;height:22px;margin-top:-4px;margin-bottom:-4px}.markup-reaction-picker-wrap>.markup-icon-btn,.markup-comment-menu>.markup-icon-btn{margin-top:-4px;margin-bottom:-4px}.markup-comment-menu.is-up .markup-thread-menu-list{animation-name:markup-menu-in-up;top:auto;bottom:calc(100% + 6px)}@keyframes markup-menu-in-up{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.markup-comment{position:relative}.markup-reactions{flex-wrap:wrap;align-items:center;gap:4px;margin-top:2px;display:flex}.markup-reaction-chip{border:1px solid var(--markup-border);height:22px;color:var(--markup-ink);font:inherit;cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:4px;padding:0 7px 0 6px;font-size:11px;line-height:1;transition:background .12s,border-color .12s;display:inline-flex}.markup-reaction-chip:hover:not(:disabled){background:color-mix(in srgb, var(--markup-ink) 5%, transparent)}.markup-reaction-chip.is-mine{border-color:color-mix(in srgb, var(--markup-brand) 45%, transparent);background:color-mix(in srgb, var(--markup-brand) 10%, transparent)}.markup-reaction-chip.is-mine:hover:not(:disabled){background:color-mix(in srgb, var(--markup-brand) 16%, 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:10px}.markup-reaction-chip.is-mine .markup-reaction-count{color:var(--markup-brand)}.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{border:1px dashed var(--markup-border-strong);width:22px;height:22px;color:var(--markup-muted);font:inherit;cursor:pointer;background:0 0;border-radius:999px;justify-content:center;align-items:center;font-size:13px;line-height:1;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.markup-reaction-add:hover,.markup-reaction-add.is-open{background:color-mix(in srgb, var(--markup-ink) 5%, transparent);color:var(--markup-ink);border-style:solid}.markup-reaction-picker{z-index:1;border:1px solid var(--markup-border-strong);background:var(--markup-paper);border-radius:8px;gap:2px;padding:4px;animation:.12s markup-menu-in;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 1px 2px #1a16140f,0 8px 28px #1a16141a}.markup-reaction-picker-wrap.is-up .markup-reaction-picker{animation-name:markup-menu-in-up;top:auto;bottom:calc(100% + 6px)}.markup-reaction-picker-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-form .markup-textarea{border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius-sm);background:var(--markup-paper);width:100%;color:var(--markup-ink);resize:vertical;font:inherit;outline:none;padding:8px 10px;font-size:13px;line-height:1.5}.markup-comment-edit-form .markup-textarea:focus-visible{border-color:var(--markup-brand);box-shadow:0 0 0 3px #e35d2a2e}.markup-comment-edit-actions{justify-content:flex-end;gap:6px;display:flex}.markup-composer{flex-direction:column;display:flex;position:relative}.markup-composer-input{border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius-sm);background:var(--markup-paper);width:100%;min-height:36px;max-height:96px;color:var(--markup-ink);resize:none;font-family:var(--markup-font);outline:none;padding:8px 10px;font-size:13px;line-height:1.5;transition:border-color .12s,box-shadow .12s,border-bottom-left-radius .15s,border-bottom-right-radius .15s}.markup-composer-input:focus-visible{border-color:var(--markup-brand);box-shadow:0 0 0 3px #e35d2a2e}.markup-composer-input:disabled{opacity:.6}.markup-composer-input::placeholder{color:var(--markup-muted)}.markup-composer.is-filled .markup-composer-input{border-bottom-right-radius:0;border-bottom-left-radius:0}.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{border:1px solid var(--markup-border-strong);border-radius:0 0 var(--markup-radius-sm) var(--markup-radius-sm);opacity:0;border-top:none;justify-content:space-between;align-items:center;gap:8px;padding:2px 2px 2px 10px;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:.06em;color:var(--markup-muted);font-size:10px}.markup-composer-error{color:var(--markup-brand)}.markup-composer-actions{align-items:center;gap:6px;display:flex}.markup-composer-actions-empty{transition:opacity .12s;position:absolute;top:3px;right:3px}.markup-composer.is-filled .markup-composer-actions-empty{opacity:0;pointer-events:none}.markup-author-prompt{flex-direction:column;gap:10px;padding:12px;display:flex}.markup-author-status{color:var(--markup-muted);margin:0;font-size:12px}.markup-input{border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius-sm);background:var(--markup-paper);width:100%;height:36px;color:var(--markup-ink);outline:none;padding:0 10px;font-size:14px;transition:border-color .12s,box-shadow .12s}.markup-input:focus-visible{border-color:var(--markup-brand);box-shadow:0 0 0 3px #e35d2a2e}.markup-btn{border-radius:var(--markup-radius-sm);height:30px;color:var(--markup-ink);cursor:pointer;letter-spacing:-.01em;white-space:nowrap;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:0 8px;font-size:12px;font-weight:500;transition:background .12s,border-color .12s,color .12s,opacity .12s;display:inline-flex}.markup-btn:disabled{opacity:.5;cursor:not-allowed}.markup-btn-primary{background:var(--markup-ink);color:var(--markup-paper)}.markup-btn-primary:hover:not(:disabled){background:var(--markup-brand)}.markup-btn-ghost{color:var(--markup-muted)}.markup-btn-ghost:hover:not(:disabled){background:var(--markup-border);color:var(--markup-ink)}.markup-screenshot-row{border-top:1px solid var(--markup-border);margin-top:8px;padding-top:8px}.markup-screenshot-status{color:var(--markup-muted);font-family:var(--markup-font-mono);letter-spacing:.06em;align-items:center;gap:5px;font-size:10px;display:flex}.markup-screenshot-toggle{cursor:pointer;color:var(--markup-muted);font-family:var(--markup-font-mono);letter-spacing:.06em;align-items:center;gap:5px;font-size:10px;transition:color .12s;display:flex}.markup-screenshot-toggle:hover{color:var(--markup-ink)}.markup-screenshot-checkbox{width:12px;height:12px;accent-color:var(--markup-brand);cursor:pointer;margin:0}.markup-screenshot-thumb{border:1px solid var(--markup-border-strong);object-fit:cover;border-radius:3px;flex-shrink:0;width:auto;height:25px;margin:-5px 0 -5px auto;display:block}.markup-comment-screenshot{border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius-sm);cursor:pointer;background:0 0;margin-top:8px;padding:0;transition:border-color .12s,opacity .12s;display:block;overflow:hidden}.markup-comment-screenshot:hover{border-color:var(--markup-brand);opacity:.9}.markup-comment-screenshot img{object-fit:cover;object-position:top;width:100%;height:auto;max-height:120px;display:block}.markup-lightbox{background:#1a1614e0;border:none;width:100%;max-width:100%;height:100%;max-height:100%;margin:0;padding:24px;position:fixed;inset:0}.markup-lightbox[open]{justify-content:center;align-items:center;display:flex}.markup-lightbox::backdrop{display:none}.markup-lightbox-img{border-radius:var(--markup-radius);object-fit:contain;max-width:100%;max-height:100%;box-shadow:var(--markup-shadow);animation:.16s ease-out markup-lightbox-in}.markup-lightbox-close{color:#fdfcfa;background:#1a161499;position:absolute;top:16px;right:16px}.markup-lightbox-close:hover{color:#fdfcfa;background:#1a1614d9}@keyframes markup-lightbox-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.markup-fab,.markup-pin,.markup-icon-btn,.markup-btn,.markup-popover,.markup-pin-ghost,.markup-placement-overlay,.markup-placement-cursor-help,.markup-lightbox-img{transition:none;animation:none}}", F, I, de, fe, pe = 0, me = [], L = t, he = L.__b, ge = L.__r, _e = L.diffed, ve = L.__c, ye = L.unmount, be = L.__;
|
|
252
|
-
function
|
|
253
|
-
|
|
254
|
-
var n =
|
|
251
|
+
var le = ":host{--markup-paper:#fdfcfa;--markup-ink:#1a1614;--markup-muted:#6b6661;--markup-border:#1a16141a;--markup-border-strong:#1a16142e;--markup-brand:#e35d2a;--markup-brand-hover:#c84d20;--markup-team:#2a4ac8;--markup-shadow:0 1px 2px #1a16140f, 0 8px 28px #1a16141f;--markup-overlay-tint:#1a16140a;--markup-danger:#dc2626;--markup-radius:6px;--markup-radius-sm:4px;--markup-font:\"Geist Variable\", \"Geist\", ui-sans-serif, -apple-system, BlinkMacSystemFont, \"Segoe UI\", system-ui, sans-serif;--markup-font-mono:\"Geist Mono Variable\", \"Geist Mono\", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;all:initial;font-family:var(--markup-font);color:var(--markup-ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.5}:host([data-theme=dark]){--markup-paper:#1a1614;--markup-ink:#fdfcfa;--markup-muted:#a8a39e;--markup-border:#fdfcfa1f;--markup-border-strong:#fdfcfa38;--markup-team:#7b99f0;--markup-shadow:0 1px 2px #00000059, 0 12px 40px #00000073;--markup-overlay-tint:#fdfcfa0d;--markup-danger:#f87171}@media (prefers-color-scheme:dark){:host(:not([data-theme=light])){--markup-paper:#1a1614;--markup-ink:#fdfcfa;--markup-muted:#a8a39e;--markup-border:#fdfcfa1f;--markup-border-strong:#fdfcfa38;--markup-team:#7b99f0;--markup-shadow:0 1px 2px #00000059, 0 12px 40px #00000073;--markup-overlay-tint:#fdfcfa0d;--markup-danger:#f87171}}.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-fab{z-index:10;background:var(--markup-ink);color:var(--markup-paper);cursor:pointer;touch-action:none;letter-spacing:-.01em;pointer-events:auto;box-shadow:0 0 0 1px color-mix(in srgb, var(--markup-brand) 35%, transparent), var(--markup-shadow);border:none;border-radius:999px;align-items:center;gap:8px;padding:9px 14px;font-size:13px;font-weight:500;transition:background .15s,box-shadow .15s,transform .15s;display:inline-flex;position:fixed;bottom:24px}.markup-fab:hover{background:var(--markup-brand);box-shadow:0 0 0 1px color-mix(in srgb, var(--markup-brand) 0%, transparent), var(--markup-shadow)}.markup-fab:active{transform:translateY(1px)}.markup-fab.is-active{background:var(--markup-brand);box-shadow:var(--markup-shadow)}.markup-fab.is-active:hover{background:var(--markup-brand-hover)}.markup-fab .markup-fab-icon{color:var(--markup-brand);transition:color .15s}.markup-fab:hover .markup-fab-icon,.markup-fab.is-active .markup-fab-icon{color:var(--markup-paper)}.markup-fab-right{right:24px}.markup-fab-left{left:24px}.markup-fab.is-floating{inset:0 auto auto 0}.markup-fab.is-dragging{cursor:grabbing;transition:none}.markup-fab-icon{align-items:center;display:inline-flex}.markup-fab-label{font-family:var(--markup-font)}.markup-hud-hidden-toast{z-index:10;background:var(--markup-ink);color:var(--markup-paper);letter-spacing:-.01em;box-shadow:var(--markup-shadow);pointer-events:none;border-radius:999px;align-items:center;gap:6px;padding:8px 14px;font-size:12px;font-weight:500;animation:.22s ease-out markup-hud-hidden-in,.32s ease-in 4.6s forwards markup-hud-hidden-out;display:inline-flex;position:fixed;bottom:24px}.markup-hud-hidden-toast-right{right:24px}.markup-hud-hidden-toast-left{left:24px}.markup-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}@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{background:var(--markup-ink);width:28px;height:28px;color:var(--markup-brand);cursor:pointer;pointer-events:auto;box-shadow:0 0 0 2px var(--markup-paper), 0 0 0 3px color-mix(in srgb, var(--markup-brand) 35%, transparent), var(--markup-shadow);border:none;border-radius:50% 50% 50% 4px;justify-content:center;align-items:center;margin-top:-28px;padding:0;transition:transform .15s,background .15s,color .15s;display:inline-flex;position:absolute}.markup-pin:hover,.markup-pin.is-active{background:var(--markup-brand);color:var(--markup-paper)}.markup-pin.is-anchor{anchor-name:--markup-active-anchor}.markup-pin-ghost{background:var(--markup-brand);color:var(--markup-paper);cursor:default;pointer-events:none;animation:1.2s ease-in-out infinite markup-ghost-pulse}.markup-pin-dot{background:currentColor;border-radius:50%;width:6px;height:6px;display:inline-block}.markup-pin-count{background:var(--markup-brand);min-width:16px;height:16px;color:var(--markup-paper);font-family:var(--markup-font-mono);text-align:center;box-shadow:0 0 0 2px var(--markup-paper);border-radius:999px;padding:0 4px;font-size:9px;font-weight:600;line-height:16px;position:absolute;top:-4px;left:50%;transform:translate(-50%,-50%)}@keyframes markup-ghost-pulse{0%,to{box-shadow:0 0 0 2px var(--markup-paper), 0 0 0 0 #e35d2a66}50%{box-shadow:0 0 0 2px var(--markup-paper), 0 0 0 10px #e35d2a00}}.markup-placement-overlay{background:var(--markup-overlay-tint);cursor:crosshair;pointer-events:auto;z-index:1;animation:.18s ease-out markup-overlay-in;position:fixed;inset:0}.markup-placement-cursor-help{background:var(--markup-ink);color:var(--markup-paper);letter-spacing:-.01em;box-shadow:var(--markup-shadow);pointer-events:none;border-radius:999px;padding:10px 16px;font-size:12px;font-weight:500;animation:.22s ease-out 60ms backwards markup-help-in;position:fixed;top:24px;left:50%;transform:translate(-50%)}@keyframes markup-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes markup-help-in{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}.markup-popover{width:320px;max-width:calc(100vw - 24px);height:auto;max-height:calc(100dvh - 24px);inset:auto;left:var(--markup-pop-x,0);top:var(--markup-pop-y,0);background:var(--markup-paper);color:var(--markup-ink);border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius);box-shadow:var(--markup-shadow);pointer-events:auto;flex-direction:column;gap:0;margin:0;padding:0;animation:.16s ease-out markup-popover-in;display:flex;position:fixed;overflow:hidden}@supports (anchor-name:--x){.markup-popover{position-anchor:--markup-active-anchor;left:calc(anchor(right) + 8px);top:calc(anchor(top) - 9px);position-try-fallbacks:flip-block, flip-inline, flip-block flip-inline;position-try-order:most-block-size}.markup-popover.is-floating{left:var(--markup-pop-x,0);top:var(--markup-pop-y,0);position-try-fallbacks:none}}.markup-popover.is-hud-hidden{display:none}@keyframes markup-popover-in{0%{opacity:0;transform:translateY(-4px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.markup-popover-header{border-bottom:1px solid var(--markup-border);cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.markup-popover.is-dragging .markup-popover-header{cursor:grabbing}.markup-popover-header-actions{align-items:center;gap:4px;display:flex}.markup-thread-menu{display:flex;position:relative}.markup-thread-menu-list{z-index:10;background:var(--markup-paper);border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius);min-width:160px;box-shadow:var(--markup-shadow);padding:4px;animation:.12s ease-out markup-menu-in;position:absolute;top:calc(100% + 6px);right:0}.markup-thread-menu-item{border-radius:var(--markup-radius-sm);width:100%;color:var(--markup-ink);text-align:left;cursor:pointer;background:0 0;border:none;padding:7px 10px;font-size:13px;transition:background .1s,color .1s;display:block}.markup-thread-menu-item:hover{background:var(--markup-border)}.markup-thread-menu-item.is-danger{color:var(--markup-danger,#dc2626)}.markup-thread-menu-item.is-danger:hover{background:color-mix(in srgb, var(--markup-danger,#dc2626) 10%, transparent)}.markup-thread-menu-item:disabled{opacity:.5;cursor:default}@keyframes markup-menu-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.markup-popover-body{padding:12px}.markup-popover-byline{color:var(--markup-muted);align-items:center;gap:4px;margin:0 0 8px;font-size:12px;display:flex}.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;display:inline-flex}.markup-icon-btn:hover,.markup-icon-btn.is-open{background:var(--markup-border);color:var(--markup-ink)}.markup-comments{border-bottom:1px solid var(--markup-border);background:linear-gradient(var(--markup-paper), transparent) top / 100% 20px no-repeat local, linear-gradient(transparent, var(--markup-paper)) bottom / 100% 20px no-repeat local, radial-gradient(farthest-side at 50% 0%, #1a16141a, transparent) top / 100% 10px no-repeat scroll, radial-gradient(farthest-side at 50% 100%, #1a16141a, transparent) bottom / 100% 10px no-repeat scroll;flex-direction:column;gap:12px;max-height:280px;margin:0;padding:8px 12px 4px;list-style:none;display:flex;overflow-y:auto}.markup-comment{flex-direction:column;gap:4px;display:flex}.markup-comment-meta{align-items:center;gap:6px;font-size:11px;display:flex}.markup-comment-author{color:var(--markup-ink);font-weight:600}.markup-comment.is-team .markup-comment-author{color:var(--markup-team)}.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-time{color:var(--markup-muted);font-family:var(--markup-font-mono);letter-spacing:.04em;font-size:10px}.markup-comment-body{white-space:pre-wrap;word-break:break-word;margin:0;font-size:13px;line-height:1.5}.markup-comment-edited{color:var(--markup-muted);font-size:11px}.markup-thread-actions{align-items:center;gap:4px;display:flex}.markup-comment-meta .markup-reaction-picker-wrap,.markup-thread-actions{margin-left:auto}.markup-comment-meta .markup-reaction-add{width:22px;height:22px;margin-top:-4px;margin-bottom:-4px}.markup-reaction-picker-wrap>.markup-icon-btn,.markup-comment-menu>.markup-icon-btn{margin-top:-4px;margin-bottom:-4px}.markup-comment-menu.is-up .markup-thread-menu-list{animation-name:markup-menu-in-up;top:auto;bottom:calc(100% + 6px)}@keyframes markup-menu-in-up{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.markup-comment{position:relative}.markup-reactions{flex-wrap:wrap;align-items:center;gap:4px;margin-top:2px;display:flex}.markup-reaction-chip{border:1px solid var(--markup-border);height:22px;color:var(--markup-ink);font:inherit;cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:4px;padding:0 7px 0 6px;font-size:11px;line-height:1;transition:background .12s,border-color .12s;display:inline-flex}.markup-reaction-chip:hover:not(:disabled){background:color-mix(in srgb, var(--markup-ink) 5%, transparent)}.markup-reaction-chip.is-mine{border-color:color-mix(in srgb, var(--markup-brand) 45%, transparent);background:color-mix(in srgb, var(--markup-brand) 10%, transparent)}.markup-reaction-chip.is-mine:hover:not(:disabled){background:color-mix(in srgb, var(--markup-brand) 16%, 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:10px}.markup-reaction-chip.is-mine .markup-reaction-count{color:var(--markup-brand)}.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{border:1px dashed var(--markup-border-strong);width:22px;height:22px;color:var(--markup-muted);font:inherit;cursor:pointer;background:0 0;border-radius:999px;justify-content:center;align-items:center;font-size:13px;line-height:1;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.markup-reaction-add:hover,.markup-reaction-add.is-open{background:color-mix(in srgb, var(--markup-ink) 5%, transparent);color:var(--markup-ink);border-style:solid}.markup-reaction-picker{z-index:1;border:1px solid var(--markup-border-strong);background:var(--markup-paper);border-radius:8px;gap:2px;padding:4px;animation:.12s markup-menu-in;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 1px 2px #1a16140f,0 8px 28px #1a16141a}.markup-reaction-picker-wrap.is-up .markup-reaction-picker{animation-name:markup-menu-in-up;top:auto;bottom:calc(100% + 6px)}.markup-reaction-picker-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-form .markup-textarea{border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius-sm);background:var(--markup-paper);width:100%;color:var(--markup-ink);resize:vertical;font:inherit;outline:none;padding:8px 10px;font-size:13px;line-height:1.5}.markup-comment-edit-form .markup-textarea:focus-visible{border-color:var(--markup-brand);box-shadow:0 0 0 3px #e35d2a2e}.markup-comment-edit-actions{justify-content:flex-end;gap:6px;display:flex}.markup-composer{flex-direction:column;display:flex;position:relative}.markup-composer-input{border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius-sm);background:var(--markup-paper);width:100%;min-height:36px;max-height:96px;color:var(--markup-ink);resize:none;font-family:var(--markup-font);outline:none;padding:8px 10px;font-size:13px;line-height:1.5;transition:border-color .12s,box-shadow .12s,border-bottom-left-radius .15s,border-bottom-right-radius .15s}.markup-composer-input:focus-visible{border-color:var(--markup-brand);box-shadow:0 0 0 3px #e35d2a2e}.markup-composer-input:disabled{opacity:.6}.markup-composer-input::placeholder{color:var(--markup-muted)}.markup-composer.is-filled .markup-composer-input{border-bottom-right-radius:0;border-bottom-left-radius:0}.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{border:1px solid var(--markup-border-strong);border-radius:0 0 var(--markup-radius-sm) var(--markup-radius-sm);opacity:0;border-top:none;justify-content:space-between;align-items:center;gap:8px;padding:2px 2px 2px 10px;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:.06em;color:var(--markup-muted);font-size:10px}.markup-composer-error{color:var(--markup-brand)}.markup-composer-actions{align-items:center;gap:6px;display:flex}.markup-composer-actions-empty{transition:opacity .12s;position:absolute;top:3px;right:3px}.markup-composer.is-filled .markup-composer-actions-empty{opacity:0;pointer-events:none}.markup-author-prompt{flex-direction:column;gap:10px;padding:12px;display:flex}.markup-author-status{color:var(--markup-muted);margin:0;font-size:12px}.markup-input{border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius-sm);background:var(--markup-paper);width:100%;height:36px;color:var(--markup-ink);outline:none;padding:0 10px;font-size:14px;transition:border-color .12s,box-shadow .12s}.markup-input:focus-visible{border-color:var(--markup-brand);box-shadow:0 0 0 3px #e35d2a2e}.markup-btn{border-radius:var(--markup-radius-sm);height:30px;color:var(--markup-ink);cursor:pointer;letter-spacing:-.01em;white-space:nowrap;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:0 8px;font-size:12px;font-weight:500;transition:background .12s,border-color .12s,color .12s,opacity .12s;display:inline-flex}.markup-btn:disabled{opacity:.5;cursor:not-allowed}.markup-btn-primary{background:var(--markup-ink);color:var(--markup-paper)}.markup-btn-primary:hover:not(:disabled){background:var(--markup-brand)}.markup-btn-ghost{color:var(--markup-muted)}.markup-btn-ghost:hover:not(:disabled){background:var(--markup-border);color:var(--markup-ink)}.markup-screenshot-row{border-top:1px solid var(--markup-border);margin-top:8px;padding-top:8px}.markup-screenshot-status{color:var(--markup-muted);font-family:var(--markup-font-mono);letter-spacing:.06em;align-items:center;gap:5px;font-size:10px;display:flex}.markup-screenshot-toggle{cursor:pointer;color:var(--markup-muted);font-family:var(--markup-font-mono);letter-spacing:.06em;align-items:center;gap:5px;font-size:10px;transition:color .12s;display:flex}.markup-screenshot-toggle:hover{color:var(--markup-ink)}.markup-screenshot-checkbox{width:12px;height:12px;accent-color:var(--markup-brand);cursor:pointer;margin:0}.markup-screenshot-thumb{border:1px solid var(--markup-border-strong);object-fit:cover;border-radius:3px;flex-shrink:0;width:auto;height:25px;margin:-5px 0 -5px auto;display:block}.markup-comment-screenshot{border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius-sm);cursor:pointer;background:0 0;margin-top:8px;padding:0;transition:border-color .12s,opacity .12s;display:block;overflow:hidden}.markup-comment-screenshot:hover{border-color:var(--markup-brand);opacity:.9}.markup-comment-screenshot img{object-fit:cover;object-position:top;width:100%;height:auto;max-height:120px;display:block}.markup-lightbox{background:#1a1614e0;border:none;width:100%;max-width:100%;height:100%;max-height:100%;margin:0;padding:24px;position:fixed;inset:0}.markup-lightbox[open]{justify-content:center;align-items:center;display:flex}.markup-lightbox::backdrop{display:none}.markup-lightbox-img{border-radius:var(--markup-radius);object-fit:contain;max-width:100%;max-height:100%;box-shadow:var(--markup-shadow);animation:.16s ease-out markup-lightbox-in}.markup-lightbox-close{color:#fdfcfa;background:#1a161499;position:absolute;top:16px;right:16px}.markup-lightbox-close:hover{color:#fdfcfa;background:#1a1614d9}@keyframes markup-lightbox-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.markup-fab,.markup-pin,.markup-icon-btn,.markup-btn,.markup-popover,.markup-pin-ghost,.markup-placement-overlay,.markup-placement-cursor-help,.markup-lightbox-img{transition:none;animation:none}}", I, L, ue, de, fe = 0, pe = [], R = t, me = R.__b, he = R.__r, ge = R.diffed, _e = R.__c, ve = R.unmount, ye = R.__;
|
|
252
|
+
function be(e, t) {
|
|
253
|
+
R.__h && R.__h(L, e, fe || t), fe = 0;
|
|
254
|
+
var n = L.__H ||= {
|
|
255
255
|
__: [],
|
|
256
256
|
__h: []
|
|
257
257
|
};
|
|
258
258
|
return e >= n.__.length && n.__.push({}), n.__[e];
|
|
259
259
|
}
|
|
260
|
-
function
|
|
261
|
-
return
|
|
260
|
+
function z(e) {
|
|
261
|
+
return fe = 1, xe(ke, e);
|
|
262
262
|
}
|
|
263
|
-
function
|
|
264
|
-
var r =
|
|
265
|
-
if (r.t = e, !r.__c && (r.__ = [n ? n(t) :
|
|
263
|
+
function xe(e, t, n) {
|
|
264
|
+
var r = be(I++, 2);
|
|
265
|
+
if (r.t = e, !r.__c && (r.__ = [n ? n(t) : ke(void 0, t), function(e) {
|
|
266
266
|
var t = r.__N ? r.__N[0] : r.__[0], n = r.t(t, e);
|
|
267
267
|
t !== n && (r.__N = [n, r.__[1]], r.__c.setState({}));
|
|
268
|
-
}], r.__c =
|
|
268
|
+
}], r.__c = L, !L.__f)) {
|
|
269
269
|
var i = function(e, t, n) {
|
|
270
270
|
if (!r.__c.__H) return !0;
|
|
271
271
|
var i = r.__c.__H.__.filter(function(e) {
|
|
@@ -282,111 +282,111 @@ function Se(e, t, n) {
|
|
|
282
282
|
}
|
|
283
283
|
}), a && a.call(this, e, t, n) || o;
|
|
284
284
|
};
|
|
285
|
-
|
|
286
|
-
var a =
|
|
287
|
-
|
|
285
|
+
L.__f = !0;
|
|
286
|
+
var a = L.shouldComponentUpdate, o = L.componentWillUpdate;
|
|
287
|
+
L.componentWillUpdate = function(e, t, n) {
|
|
288
288
|
if (this.__e) {
|
|
289
289
|
var r = a;
|
|
290
290
|
a = void 0, i(e, t, n), a = r;
|
|
291
291
|
}
|
|
292
292
|
o && o.call(this, e, t, n);
|
|
293
|
-
},
|
|
293
|
+
}, L.shouldComponentUpdate = i;
|
|
294
294
|
}
|
|
295
295
|
return r.__N || r.__;
|
|
296
296
|
}
|
|
297
|
-
function
|
|
298
|
-
var n =
|
|
299
|
-
!
|
|
297
|
+
function B(e, t) {
|
|
298
|
+
var n = be(I++, 3);
|
|
299
|
+
!R.__s && Oe(n.__H, t) && (n.__ = e, n.u = t, L.__H.__h.push(n));
|
|
300
300
|
}
|
|
301
|
-
function
|
|
302
|
-
return
|
|
301
|
+
function V(e) {
|
|
302
|
+
return fe = 5, Se(function() {
|
|
303
303
|
return { current: e };
|
|
304
304
|
}, []);
|
|
305
305
|
}
|
|
306
|
-
function
|
|
307
|
-
var n =
|
|
308
|
-
return
|
|
306
|
+
function Se(e, t) {
|
|
307
|
+
var n = be(I++, 7);
|
|
308
|
+
return Oe(n.__H, t) && (n.__ = e(), n.__H = t, n.__h = e), n.__;
|
|
309
309
|
}
|
|
310
|
-
function
|
|
311
|
-
return
|
|
310
|
+
function H(e, t) {
|
|
311
|
+
return fe = 8, Se(function() {
|
|
312
312
|
return e;
|
|
313
313
|
}, t);
|
|
314
314
|
}
|
|
315
|
-
function
|
|
316
|
-
for (var e; e =
|
|
315
|
+
function Ce() {
|
|
316
|
+
for (var e; e = pe.shift();) {
|
|
317
317
|
var t = e.__H;
|
|
318
318
|
if (e.__P && t) try {
|
|
319
|
-
t.__h.some(
|
|
319
|
+
t.__h.some(Ee), t.__h.some(De), t.__h = [];
|
|
320
320
|
} catch (n) {
|
|
321
|
-
t.__h = [],
|
|
321
|
+
t.__h = [], R.__e(n, e.__v);
|
|
322
322
|
}
|
|
323
323
|
}
|
|
324
324
|
}
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
},
|
|
328
|
-
e && t.__k && t.__k.__m && (e.__m = t.__k.__m),
|
|
329
|
-
},
|
|
330
|
-
|
|
331
|
-
var t = (
|
|
332
|
-
t && (
|
|
325
|
+
R.__b = function(e) {
|
|
326
|
+
L = null, me && me(e);
|
|
327
|
+
}, R.__ = function(e, t) {
|
|
328
|
+
e && t.__k && t.__k.__m && (e.__m = t.__k.__m), ye && ye(e, t);
|
|
329
|
+
}, R.__r = function(e) {
|
|
330
|
+
he && he(e), I = 0;
|
|
331
|
+
var t = (L = e.__c).__H;
|
|
332
|
+
t && (ue === L ? (t.__h = [], L.__h = [], t.__.some(function(e) {
|
|
333
333
|
e.__N && (e.__ = e.__N), e.u = e.__N = void 0;
|
|
334
|
-
})) : (t.__h.some(
|
|
335
|
-
},
|
|
336
|
-
|
|
334
|
+
})) : (t.__h.some(Ee), t.__h.some(De), t.__h = [], I = 0)), ue = L;
|
|
335
|
+
}, R.diffed = function(e) {
|
|
336
|
+
ge && ge(e);
|
|
337
337
|
var t = e.__c;
|
|
338
|
-
t && t.__H && (t.__H.__h.length && (
|
|
338
|
+
t && t.__H && (t.__H.__h.length && (pe.push(t) !== 1 && de === R.requestAnimationFrame || ((de = R.requestAnimationFrame) || Te)(Ce)), t.__H.__.some(function(e) {
|
|
339
339
|
e.u && (e.__H = e.u), e.u = void 0;
|
|
340
|
-
})),
|
|
341
|
-
},
|
|
340
|
+
})), ue = L = null;
|
|
341
|
+
}, R.__c = function(e, t) {
|
|
342
342
|
t.some(function(e) {
|
|
343
343
|
try {
|
|
344
|
-
e.__h.some(
|
|
345
|
-
return !e.__ ||
|
|
344
|
+
e.__h.some(Ee), e.__h = e.__h.filter(function(e) {
|
|
345
|
+
return !e.__ || De(e);
|
|
346
346
|
});
|
|
347
347
|
} catch (n) {
|
|
348
348
|
t.some(function(e) {
|
|
349
349
|
e.__h &&= [];
|
|
350
|
-
}), t = [],
|
|
350
|
+
}), t = [], R.__e(n, e.__v);
|
|
351
351
|
}
|
|
352
|
-
}),
|
|
353
|
-
},
|
|
354
|
-
|
|
352
|
+
}), _e && _e(e, t);
|
|
353
|
+
}, R.unmount = function(e) {
|
|
354
|
+
ve && ve(e);
|
|
355
355
|
var t, n = e.__c;
|
|
356
356
|
n && n.__H && (n.__H.__.some(function(e) {
|
|
357
357
|
try {
|
|
358
|
-
|
|
358
|
+
Ee(e);
|
|
359
359
|
} catch (e) {
|
|
360
360
|
t = e;
|
|
361
361
|
}
|
|
362
|
-
}), n.__H = void 0, t &&
|
|
362
|
+
}), n.__H = void 0, t && R.__e(t, n.__v));
|
|
363
363
|
};
|
|
364
|
-
var
|
|
365
|
-
function
|
|
364
|
+
var we = typeof requestAnimationFrame == "function";
|
|
365
|
+
function Te(e) {
|
|
366
366
|
var t, n = function() {
|
|
367
|
-
clearTimeout(r),
|
|
367
|
+
clearTimeout(r), we && cancelAnimationFrame(t), setTimeout(e);
|
|
368
368
|
}, r = setTimeout(n, 35);
|
|
369
|
-
|
|
369
|
+
we && (t = requestAnimationFrame(n));
|
|
370
370
|
}
|
|
371
|
-
function
|
|
372
|
-
var t =
|
|
373
|
-
typeof n == "function" && (e.__c = void 0, n()),
|
|
371
|
+
function Ee(e) {
|
|
372
|
+
var t = L, n = e.__c;
|
|
373
|
+
typeof n == "function" && (e.__c = void 0, n()), L = t;
|
|
374
374
|
}
|
|
375
|
-
function
|
|
376
|
-
var t =
|
|
377
|
-
e.__c = e.__(),
|
|
375
|
+
function De(e) {
|
|
376
|
+
var t = L;
|
|
377
|
+
e.__c = e.__(), L = t;
|
|
378
378
|
}
|
|
379
|
-
function
|
|
379
|
+
function Oe(e, t) {
|
|
380
380
|
return !e || e.length !== t.length || t.some(function(t, n) {
|
|
381
381
|
return t !== e[n];
|
|
382
382
|
});
|
|
383
383
|
}
|
|
384
|
-
function
|
|
384
|
+
function ke(e, t) {
|
|
385
385
|
return typeof t == "function" ? t(e) : t;
|
|
386
386
|
}
|
|
387
|
-
for (var
|
|
388
|
-
|
|
389
|
-
function
|
|
387
|
+
for (var Ae = "1.37.0", U = [], W = [], je = Uint8Array, Me = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", Ne = 0, Pe = Me.length; Ne < Pe; ++Ne) U[Ne] = Me[Ne], W[Me.charCodeAt(Ne)] = Ne;
|
|
388
|
+
W[45] = 62, W[95] = 63;
|
|
389
|
+
function Fe(e) {
|
|
390
390
|
var t = e.length;
|
|
391
391
|
if (t % 4 > 0) throw Error("Invalid string. Length must be a multiple of 4");
|
|
392
392
|
var n = e.indexOf("=");
|
|
@@ -394,28 +394,28 @@ function Ie(e) {
|
|
|
394
394
|
var r = n === t ? 0 : 4 - n % 4;
|
|
395
395
|
return [n, r];
|
|
396
396
|
}
|
|
397
|
-
function
|
|
397
|
+
function Ie(e, t, n) {
|
|
398
398
|
return (t + n) * 3 / 4 - n;
|
|
399
399
|
}
|
|
400
|
-
function
|
|
401
|
-
var t, n =
|
|
402
|
-
for (c = 0; c < s; c += 4) t =
|
|
403
|
-
return i === 2 && (t =
|
|
400
|
+
function Le(e) {
|
|
401
|
+
var t, n = Fe(e), r = n[0], i = n[1], a = new je(Ie(e, r, i)), o = 0, s = i > 0 ? r - 4 : r, c;
|
|
402
|
+
for (c = 0; c < s; c += 4) t = W[e.charCodeAt(c)] << 18 | W[e.charCodeAt(c + 1)] << 12 | W[e.charCodeAt(c + 2)] << 6 | W[e.charCodeAt(c + 3)], a[o++] = t >> 16 & 255, a[o++] = t >> 8 & 255, a[o++] = t & 255;
|
|
403
|
+
return i === 2 && (t = W[e.charCodeAt(c)] << 2 | W[e.charCodeAt(c + 1)] >> 4, a[o++] = t & 255), i === 1 && (t = W[e.charCodeAt(c)] << 10 | W[e.charCodeAt(c + 1)] << 4 | W[e.charCodeAt(c + 2)] >> 2, a[o++] = t >> 8 & 255, a[o++] = t & 255), a;
|
|
404
404
|
}
|
|
405
|
-
function
|
|
406
|
-
return
|
|
405
|
+
function Re(e) {
|
|
406
|
+
return U[e >> 18 & 63] + U[e >> 12 & 63] + U[e >> 6 & 63] + U[e & 63];
|
|
407
407
|
}
|
|
408
|
-
function
|
|
409
|
-
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(
|
|
408
|
+
function ze(e, t, n) {
|
|
409
|
+
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(Re(r));
|
|
410
410
|
return i.join("");
|
|
411
411
|
}
|
|
412
|
-
function
|
|
413
|
-
for (var t, n = e.length, r = n % 3, i = [], a = 16383, o = 0, s = n - r; o < s; o += a) i.push(
|
|
414
|
-
return r === 1 ? (t = e[n - 1], i.push(
|
|
412
|
+
function Be(e) {
|
|
413
|
+
for (var t, n = e.length, r = n % 3, i = [], a = 16383, o = 0, s = n - r; o < s; o += a) i.push(ze(e, o, o + a > s ? s : o + a));
|
|
414
|
+
return r === 1 ? (t = e[n - 1], i.push(U[t >> 2] + U[t << 4 & 63] + "==")) : r === 2 && (t = (e[n - 2] << 8) + e[n - 1], i.push(U[t >> 10] + U[t >> 4 & 63] + U[t << 2 & 63] + "=")), i.join("");
|
|
415
415
|
}
|
|
416
416
|
//#endregion
|
|
417
417
|
//#region ../../node_modules/.pnpm/convex@1.37.0_react@19.2.6/node_modules/convex/dist/esm/common/index.js
|
|
418
|
-
function
|
|
418
|
+
function Ve(e) {
|
|
419
419
|
if (e === void 0) return {};
|
|
420
420
|
if (!Ue(e)) throw Error(`The arguments to a Convex function must be an object. Received: ${e}`);
|
|
421
421
|
return e;
|
|
@@ -447,10 +447,10 @@ function Ze(e) {
|
|
|
447
447
|
t.length % 2 == 1 && (t = "0" + t);
|
|
448
448
|
let n = new Uint8Array(/* @__PURE__ */ new ArrayBuffer(8)), r = 0;
|
|
449
449
|
for (let i of t.match(/.{2}/g).reverse()) n.set([parseInt(i, 16)], r++), e >>= Je;
|
|
450
|
-
return
|
|
450
|
+
return Be(n);
|
|
451
451
|
}
|
|
452
452
|
function Qe(e) {
|
|
453
|
-
let t =
|
|
453
|
+
let t = Le(e);
|
|
454
454
|
if (t.byteLength !== 8) throw Error(`Received ${t.byteLength} bytes, expected 8 for $integer`);
|
|
455
455
|
let n = qe, r = qe;
|
|
456
456
|
for (let e of t) n += BigInt(e) * Ye ** r, r++;
|
|
@@ -459,10 +459,10 @@ function Qe(e) {
|
|
|
459
459
|
function $e(e) {
|
|
460
460
|
if (e < Ge || Ke < e) throw Error(`BigInt ${e} does not fit into a 64-bit signed integer.`);
|
|
461
461
|
let t = /* @__PURE__ */ new ArrayBuffer(8);
|
|
462
|
-
return new DataView(t).setBigInt64(0, e, !0),
|
|
462
|
+
return new DataView(t).setBigInt64(0, e, !0), Be(new Uint8Array(t));
|
|
463
463
|
}
|
|
464
464
|
function et(e) {
|
|
465
|
-
let t =
|
|
465
|
+
let t = Le(e);
|
|
466
466
|
if (t.byteLength !== 8) throw Error(`Received ${t.byteLength} bytes, expected 8 for $integer`);
|
|
467
467
|
return new DataView(t.buffer).getBigInt64(0, !0);
|
|
468
468
|
}
|
|
@@ -484,7 +484,7 @@ function at(e) {
|
|
|
484
484
|
let n = t[0][0];
|
|
485
485
|
if (n === "$bytes") {
|
|
486
486
|
if (typeof e.$bytes != "string") throw Error(`Malformed $bytes field on ${e}`);
|
|
487
|
-
return
|
|
487
|
+
return Le(e.$bytes).buffer;
|
|
488
488
|
}
|
|
489
489
|
if (n === "$integer") {
|
|
490
490
|
if (typeof e.$integer != "string") throw Error(`Malformed $integer field on ${e}`);
|
|
@@ -492,7 +492,7 @@ function at(e) {
|
|
|
492
492
|
}
|
|
493
493
|
if (n === "$float") {
|
|
494
494
|
if (typeof e.$float != "string") throw Error(`Malformed $float field on ${e}`);
|
|
495
|
-
let t =
|
|
495
|
+
let t = Le(e.$float);
|
|
496
496
|
if (t.byteLength !== 8) throw Error(`Received ${t.byteLength} bytes, expected 8 for $float`);
|
|
497
497
|
let n = new DataView(t.buffer).getFloat64(0, We);
|
|
498
498
|
if (!Xe(n)) throw Error(`Float ${n} should be encoded as a number`);
|
|
@@ -526,10 +526,10 @@ function ct(e, t, n, r) {
|
|
|
526
526
|
}
|
|
527
527
|
if (typeof e == "number") if (Xe(e)) {
|
|
528
528
|
let t = /* @__PURE__ */ new ArrayBuffer(8);
|
|
529
|
-
return new DataView(t).setFloat64(0, e, We), { $float:
|
|
529
|
+
return new DataView(t).setFloat64(0, e, We), { $float: Be(new Uint8Array(t)) };
|
|
530
530
|
} else return e;
|
|
531
531
|
if (typeof e == "boolean" || typeof e == "string") return e;
|
|
532
|
-
if (e instanceof ArrayBuffer) return { $bytes:
|
|
532
|
+
if (e instanceof ArrayBuffer) return { $bytes: Be(new Uint8Array(e)) };
|
|
533
533
|
if (Array.isArray(e)) return e.map((e, r) => ct(e, t, n + `[${r}]`, !1));
|
|
534
534
|
if (e instanceof Set) throw Error(lt(n, "Set", [...e], t));
|
|
535
535
|
if (e instanceof Map) throw Error(lt(n, "Map", [...e], t));
|
|
@@ -1047,7 +1047,7 @@ var Yt = Object.defineProperty, Xt = (e, t, n) => t in e ? Yt(e, t, {
|
|
|
1047
1047
|
Zt(this, "queryResults"), Zt(this, "modifiedQueries"), this.queryResults = e, this.modifiedQueries = [];
|
|
1048
1048
|
}
|
|
1049
1049
|
getQuery(t, ...n) {
|
|
1050
|
-
let r =
|
|
1050
|
+
let r = Ve(n[0]), i = K(t), a = this.queryResults.get(Mt(i, r));
|
|
1051
1051
|
if (a !== void 0) return e.queryValue(a.result);
|
|
1052
1052
|
}
|
|
1053
1053
|
getAllQueries(t) {
|
|
@@ -1059,7 +1059,7 @@ var Yt = Object.defineProperty, Xt = (e, t, n) => t in e ? Yt(e, t, {
|
|
|
1059
1059
|
return n;
|
|
1060
1060
|
}
|
|
1061
1061
|
setQuery(e, t, n) {
|
|
1062
|
-
let r =
|
|
1062
|
+
let r = Ve(t), i = K(e), a = Mt(i, r), o;
|
|
1063
1063
|
o = n === void 0 ? void 0 : {
|
|
1064
1064
|
success: !0,
|
|
1065
1065
|
value: n,
|
|
@@ -1225,11 +1225,11 @@ var Yt = Object.defineProperty, Xt = (e, t, n) => t in e ? Yt(e, t, {
|
|
|
1225
1225
|
//#endregion
|
|
1226
1226
|
//#region ../../node_modules/.pnpm/convex@1.37.0_react@19.2.6/node_modules/convex/dist/esm/browser/sync/protocol.js
|
|
1227
1227
|
function mn(e) {
|
|
1228
|
-
let t =
|
|
1228
|
+
let t = Le(e);
|
|
1229
1229
|
return rn.fromBytesLE(Array.from(t));
|
|
1230
1230
|
}
|
|
1231
1231
|
function hn(e) {
|
|
1232
|
-
return
|
|
1232
|
+
return Be(new Uint8Array(e.toBytesLE()));
|
|
1233
1233
|
}
|
|
1234
1234
|
function gn(e) {
|
|
1235
1235
|
switch (e.type) {
|
|
@@ -1868,7 +1868,7 @@ var Gn = Object.defineProperty, Kn = (e, t, n) => t in e ? Gn(e, t, {
|
|
|
1868
1868
|
if (s === "http") c = "ws";
|
|
1869
1869
|
else if (s === "https") c = "wss";
|
|
1870
1870
|
else throw Error(`Unknown parent protocol ${s}`);
|
|
1871
|
-
let l = `${c}://${o}/api/${
|
|
1871
|
+
let l = `${c}://${o}/api/${Ae}/sync`;
|
|
1872
1872
|
this.state = new Lt(), this.remoteQuerySet = new pn((e) => this.state.queryPath(e), this.logger), this.requestManager = new Vt(this.logger, this.markConnectionStateDirty);
|
|
1873
1873
|
let u = () => {
|
|
1874
1874
|
this.webSocketManager.pause(), this.state.pause();
|
|
@@ -2022,7 +2022,7 @@ var Gn = Object.defineProperty, Kn = (e, t, n) => t in e ? Gn(e, t, {
|
|
|
2022
2022
|
this.webSocketManager.sendMessage(e);
|
|
2023
2023
|
}
|
|
2024
2024
|
subscribe(e, t, n) {
|
|
2025
|
-
let r =
|
|
2025
|
+
let r = Ve(t), { modification: i, queryToken: a, unsubscribe: o } = this.state.subscribe(e, r, n?.journal, n?.componentPath);
|
|
2026
2026
|
return i !== null && this.webSocketManager.sendMessage(i), {
|
|
2027
2027
|
queryToken: a,
|
|
2028
2028
|
unsubscribe: () => {
|
|
@@ -2032,7 +2032,7 @@ var Gn = Object.defineProperty, Kn = (e, t, n) => t in e ? Gn(e, t, {
|
|
|
2032
2032
|
};
|
|
2033
2033
|
}
|
|
2034
2034
|
localQueryResult(e, t) {
|
|
2035
|
-
let n = Mt(e,
|
|
2035
|
+
let n = Mt(e, Ve(t));
|
|
2036
2036
|
return this.optimisticQueryResults.queryResult(n);
|
|
2037
2037
|
}
|
|
2038
2038
|
localQueryResultByToken(e) {
|
|
@@ -2042,11 +2042,11 @@ var Gn = Object.defineProperty, Kn = (e, t, n) => t in e ? Gn(e, t, {
|
|
|
2042
2042
|
return this.optimisticQueryResults.hasQueryResult(e);
|
|
2043
2043
|
}
|
|
2044
2044
|
localQueryLogs(e, t) {
|
|
2045
|
-
let n = Mt(e,
|
|
2045
|
+
let n = Mt(e, Ve(t));
|
|
2046
2046
|
return this.optimisticQueryResults.queryLogs(n);
|
|
2047
2047
|
}
|
|
2048
2048
|
queryJournal(e, t) {
|
|
2049
|
-
let n = Mt(e,
|
|
2049
|
+
let n = Mt(e, Ve(t));
|
|
2050
2050
|
return this.state.queryJournal(n);
|
|
2051
2051
|
}
|
|
2052
2052
|
connectionState() {
|
|
@@ -2078,7 +2078,7 @@ var Gn = Object.defineProperty, Kn = (e, t, n) => t in e ? Gn(e, t, {
|
|
|
2078
2078
|
return i;
|
|
2079
2079
|
}
|
|
2080
2080
|
enqueueMutation(e, t, n, r) {
|
|
2081
|
-
let i =
|
|
2081
|
+
let i = Ve(t);
|
|
2082
2082
|
this.tryReportLongDisconnect();
|
|
2083
2083
|
let a = this.nextRequestId;
|
|
2084
2084
|
if (this._nextRequestId++, n !== void 0) {
|
|
@@ -2125,7 +2125,7 @@ var Gn = Object.defineProperty, Kn = (e, t, n) => t in e ? Gn(e, t, {
|
|
|
2125
2125
|
return n.value;
|
|
2126
2126
|
}
|
|
2127
2127
|
async actionInternal(e, t, n) {
|
|
2128
|
-
let r =
|
|
2128
|
+
let r = Ve(t), i = this.nextRequestId;
|
|
2129
2129
|
this._nextRequestId++, this.tryReportLongDisconnect();
|
|
2130
2130
|
let a = {
|
|
2131
2131
|
type: "Action",
|
|
@@ -2167,7 +2167,7 @@ var Gn = Object.defineProperty, Kn = (e, t, n) => t in e ? Gn(e, t, {
|
|
|
2167
2167
|
method: "POST",
|
|
2168
2168
|
headers: {
|
|
2169
2169
|
"Content-Type": "application/json",
|
|
2170
|
-
"Convex-Client": `npm-${
|
|
2170
|
+
"Convex-Client": `npm-${Ae}`
|
|
2171
2171
|
},
|
|
2172
2172
|
body: JSON.stringify({ event: "LongWebsocketDisconnect" })
|
|
2173
2173
|
}).then((e) => {
|
|
@@ -3490,7 +3490,7 @@ function la({ size: e = 16 }) {
|
|
|
3490
3490
|
//#endregion
|
|
3491
3491
|
//#region src/runtime/ui/fab.tsx
|
|
3492
3492
|
function ua({ active: e, onToggle: t, onHide: n, position: r = "bottom-right", onPositionChange: i }) {
|
|
3493
|
-
let a = r === "bottom-left" ? "markup-fab-left" : "markup-fab-right", o =
|
|
3493
|
+
let a = r === "bottom-left" ? "markup-fab-left" : "markup-fab-right", o = V(null), [s, c] = z(null), [l, u] = z(!1), d = V(!1);
|
|
3494
3494
|
function f(e) {
|
|
3495
3495
|
if (e.stopPropagation(), e.button !== 0) return;
|
|
3496
3496
|
let t = o.current;
|
|
@@ -3570,7 +3570,7 @@ var fa = [
|
|
|
3570
3570
|
"[tabindex]:not([tabindex=\"-1\"])"
|
|
3571
3571
|
].join(",");
|
|
3572
3572
|
function pa(e, t) {
|
|
3573
|
-
|
|
3573
|
+
B(() => {
|
|
3574
3574
|
if (!t) return;
|
|
3575
3575
|
let n = e.current;
|
|
3576
3576
|
if (!n) return;
|
|
@@ -3587,8 +3587,8 @@ function pa(e, t) {
|
|
|
3587
3587
|
//#endregion
|
|
3588
3588
|
//#region src/runtime/ui/author-prompt.tsx
|
|
3589
3589
|
function ma({ pending: e, connecting: t = !1, onSubmit: n, onCancel: r, onSignIn: i }) {
|
|
3590
|
-
let [a, o] =
|
|
3591
|
-
|
|
3590
|
+
let [a, o] = z(""), [s, c] = z(""), l = V(null);
|
|
3591
|
+
B(() => {
|
|
3592
3592
|
l.current?.focus();
|
|
3593
3593
|
}, []);
|
|
3594
3594
|
function u(r) {
|
|
@@ -3667,29 +3667,30 @@ function ma({ pending: e, connecting: t = !1, onSubmit: n, onCancel: r, onSignIn
|
|
|
3667
3667
|
//#region src/runtime/ui/composer.tsx
|
|
3668
3668
|
var ha = 4e3;
|
|
3669
3669
|
function ga({ label: e, placeholder: t = "Leave feedback…", submitLabel: n = "Post", initialFocus: r = !0, pending: i, error: a, onSubmit: o }) {
|
|
3670
|
-
let [s, c] =
|
|
3671
|
-
|
|
3670
|
+
let [s, c] = z(""), l = V(null), u = V(!1);
|
|
3671
|
+
B(() => {
|
|
3672
3672
|
r && l.current?.focus();
|
|
3673
|
-
}, [r]),
|
|
3673
|
+
}, [r]), B(() => {
|
|
3674
3674
|
let e = l.current;
|
|
3675
3675
|
e && (e.style.height = "auto", e.style.height = `${Math.min(e.scrollHeight, 160)}px`);
|
|
3676
|
-
}, [s]),
|
|
3676
|
+
}, [s]), B(() => {
|
|
3677
3677
|
u.current && !i && !a && (c(""), l.current?.focus()), u.current = i;
|
|
3678
3678
|
}, [i, a]);
|
|
3679
|
-
|
|
3679
|
+
let d = ha - s.length, f = d < 0;
|
|
3680
|
+
function p(e) {
|
|
3680
3681
|
e?.preventDefault();
|
|
3681
3682
|
let t = s.trim();
|
|
3682
|
-
!t || i || o(t);
|
|
3683
|
+
!t || i || f || o(t);
|
|
3683
3684
|
}
|
|
3684
|
-
function
|
|
3685
|
-
(e.metaKey || e.ctrlKey) && e.key === "Enter" &&
|
|
3685
|
+
function m(e) {
|
|
3686
|
+
(e.metaKey || e.ctrlKey) && e.key === "Enter" && p(e);
|
|
3686
3687
|
}
|
|
3687
|
-
let
|
|
3688
|
+
let h = s.length > 0;
|
|
3688
3689
|
function g(e) {
|
|
3689
3690
|
return /* @__PURE__ */ $("button", {
|
|
3690
3691
|
type: "submit",
|
|
3691
3692
|
class: "markup-btn markup-btn-primary",
|
|
3692
|
-
disabled: i || !s.trim() ||
|
|
3693
|
+
disabled: i || !s.trim() || f,
|
|
3693
3694
|
"aria-label": i ? "Sending…" : n,
|
|
3694
3695
|
title: i ? "Sending…" : n,
|
|
3695
3696
|
tabIndex: e,
|
|
@@ -3698,7 +3699,7 @@ function ga({ label: e, placeholder: t = "Leave feedback…", submitLabel: n = "
|
|
|
3698
3699
|
}
|
|
3699
3700
|
return /* @__PURE__ */ $("form", {
|
|
3700
3701
|
class: Q("markup-composer", h && "is-filled"),
|
|
3701
|
-
onSubmit:
|
|
3702
|
+
onSubmit: p,
|
|
3702
3703
|
children: [
|
|
3703
3704
|
/* @__PURE__ */ $("textarea", {
|
|
3704
3705
|
ref: l,
|
|
@@ -3709,7 +3710,7 @@ function ga({ label: e, placeholder: t = "Leave feedback…", submitLabel: n = "
|
|
|
3709
3710
|
maxLength: ha + 100,
|
|
3710
3711
|
value: s,
|
|
3711
3712
|
onInput: (e) => c(e.currentTarget.value),
|
|
3712
|
-
onKeyDown:
|
|
3713
|
+
onKeyDown: m,
|
|
3713
3714
|
disabled: i,
|
|
3714
3715
|
"aria-label": e
|
|
3715
3716
|
}),
|
|
@@ -3722,9 +3723,9 @@ function ga({ label: e, placeholder: t = "Leave feedback…", submitLabel: n = "
|
|
|
3722
3723
|
children: a ? /* @__PURE__ */ $("span", {
|
|
3723
3724
|
class: "markup-composer-error",
|
|
3724
3725
|
children: a
|
|
3725
|
-
}) :
|
|
3726
|
+
}) : f ? /* @__PURE__ */ $("span", {
|
|
3726
3727
|
class: "markup-composer-error",
|
|
3727
|
-
children: [Math.abs(
|
|
3728
|
+
children: [Math.abs(d), " too long"]
|
|
3728
3729
|
}) : /* @__PURE__ */ $("span", { children: "⌘↵ to send" })
|
|
3729
3730
|
}), /* @__PURE__ */ $("div", {
|
|
3730
3731
|
class: "markup-composer-actions",
|
|
@@ -3743,14 +3744,14 @@ function ga({ label: e, placeholder: t = "Leave feedback…", submitLabel: n = "
|
|
|
3743
3744
|
//#endregion
|
|
3744
3745
|
//#region src/runtime/ui/new-thread-popover.tsx
|
|
3745
3746
|
function _a({ pageX: e, pageY: t, authorName: n, isVerified: r, identityResolving: i, pending: a, error: o, screenshot: s, screenshotCapturing: c, onAuthor: l, onSignIn: u, onSubmit: d, onClose: f }) {
|
|
3746
|
-
let p =
|
|
3747
|
+
let p = V(null);
|
|
3747
3748
|
pa(p, !0);
|
|
3748
|
-
let [m, h] =
|
|
3749
|
-
|
|
3749
|
+
let [m, h] = z(!1), [g, _] = z(null), [v, y] = z(null), [b, x] = z(!1);
|
|
3750
|
+
B(() => {
|
|
3750
3751
|
if (!s) return;
|
|
3751
3752
|
let e = URL.createObjectURL(s);
|
|
3752
3753
|
return _(e), () => URL.revokeObjectURL(e);
|
|
3753
|
-
}, [s]),
|
|
3754
|
+
}, [s]), B(() => {
|
|
3754
3755
|
let e = p.current;
|
|
3755
3756
|
if (!e) return;
|
|
3756
3757
|
if (typeof e.showPopover == "function" && !e.matches(":popover-open")) try {
|
|
@@ -3925,7 +3926,7 @@ function ba({ pageX: e, pageY: t }) {
|
|
|
3925
3926
|
//#endregion
|
|
3926
3927
|
//#region src/runtime/ui/placement-overlay.tsx
|
|
3927
3928
|
function xa({ onPlace: e, onCancel: t }) {
|
|
3928
|
-
|
|
3929
|
+
B(() => {
|
|
3929
3930
|
function e(e) {
|
|
3930
3931
|
e.key === "Escape" && t();
|
|
3931
3932
|
}
|
|
@@ -3958,24 +3959,24 @@ var Sa = [
|
|
|
3958
3959
|
"😄",
|
|
3959
3960
|
"❓"
|
|
3960
3961
|
];
|
|
3961
|
-
function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, identityResolving: i, canDelete: a, pending: o, error: s,
|
|
3962
|
-
let
|
|
3963
|
-
pa(
|
|
3964
|
-
let
|
|
3965
|
-
function
|
|
3966
|
-
|
|
3962
|
+
function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, identityResolving: i, canDelete: a, pending: o, error: s, hidden: c = !1, onAuthor: l, onSignIn: u, onClose: d, onReply: f, onEditComment: p, onDeleteComment: m, onToggleReaction: h, onResolve: g, onDelete: _ }) {
|
|
3963
|
+
let v = V(null), y = V(null), b = V(null), x = V(null), S = V(null), [C, w] = z(!1), [T, E] = z(!1), [D, O] = z(null), [ee, k] = z(""), [A, j] = z(null), [M, te] = z("down"), [N, ne] = z(null), [P, F] = z(null), [re, ie] = z("down"), ae = V(null), [oe, se] = z(null), [ce, le] = z(!1);
|
|
3964
|
+
pa(v, !0);
|
|
3965
|
+
let I = e.resolvedAt != null, L = Se(() => e.comments.filter((e) => !e.deleted), [e.comments]);
|
|
3966
|
+
function ue(e, t) {
|
|
3967
|
+
O(e), k(t);
|
|
3967
3968
|
}
|
|
3968
3969
|
function de() {
|
|
3969
|
-
|
|
3970
|
+
O(null), k("");
|
|
3970
3971
|
}
|
|
3971
|
-
|
|
3972
|
-
if (!
|
|
3973
|
-
let t = e.comments.find((e) => e._id ===
|
|
3972
|
+
B(() => {
|
|
3973
|
+
if (!D) return;
|
|
3974
|
+
let t = e.comments.find((e) => e._id === D);
|
|
3974
3975
|
(!t || t.deleted) && de();
|
|
3975
|
-
}, [e.comments,
|
|
3976
|
-
let fe =
|
|
3977
|
-
|
|
3978
|
-
let e =
|
|
3976
|
+
}, [e.comments, D]);
|
|
3977
|
+
let fe = V(!0);
|
|
3978
|
+
B(() => {
|
|
3979
|
+
let e = x.current;
|
|
3979
3980
|
if (e) {
|
|
3980
3981
|
if (fe.current) {
|
|
3981
3982
|
fe.current = !1, e.scrollTop = e.scrollHeight;
|
|
@@ -3983,44 +3984,44 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, ident
|
|
|
3983
3984
|
}
|
|
3984
3985
|
e.scrollHeight - e.scrollTop - e.clientHeight < 80 && (e.scrollTop = e.scrollHeight);
|
|
3985
3986
|
}
|
|
3986
|
-
}, [
|
|
3987
|
-
if (!
|
|
3988
|
-
|
|
3987
|
+
}, [L.length]), B(() => {
|
|
3988
|
+
if (!C) {
|
|
3989
|
+
E(!1);
|
|
3989
3990
|
return;
|
|
3990
3991
|
}
|
|
3991
3992
|
function e(e) {
|
|
3992
|
-
|
|
3993
|
+
y.current && !e.composedPath().includes(y.current) && w(!1);
|
|
3993
3994
|
}
|
|
3994
3995
|
return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
|
|
3995
|
-
}, [
|
|
3996
|
-
if (!
|
|
3997
|
-
|
|
3996
|
+
}, [C]), B(() => {
|
|
3997
|
+
if (!A) {
|
|
3998
|
+
ne(null);
|
|
3998
3999
|
return;
|
|
3999
4000
|
}
|
|
4000
4001
|
function e(e) {
|
|
4001
|
-
|
|
4002
|
+
b.current && !e.composedPath().includes(b.current) && j(null);
|
|
4002
4003
|
}
|
|
4003
4004
|
return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
|
|
4004
|
-
}, [
|
|
4005
|
-
if (!
|
|
4005
|
+
}, [A]), B(() => {
|
|
4006
|
+
if (!P) return;
|
|
4006
4007
|
function e(e) {
|
|
4007
|
-
ae.current && !e.composedPath().includes(ae.current) &&
|
|
4008
|
+
ae.current && !e.composedPath().includes(ae.current) && F(null);
|
|
4008
4009
|
}
|
|
4009
4010
|
return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
|
|
4010
|
-
}, [
|
|
4011
|
-
let e =
|
|
4011
|
+
}, [P]), B(() => {
|
|
4012
|
+
let e = v.current;
|
|
4012
4013
|
if (!e) return;
|
|
4013
4014
|
if (typeof e.showPopover == "function" && !e.matches(":popover-open")) try {
|
|
4014
4015
|
e.showPopover();
|
|
4015
4016
|
} catch {}
|
|
4016
4017
|
function t(e) {
|
|
4017
|
-
e.newState === "closed" &&
|
|
4018
|
+
e.newState === "closed" && d();
|
|
4018
4019
|
}
|
|
4019
4020
|
return e.addEventListener("toggle", t), () => e.removeEventListener("toggle", t);
|
|
4020
|
-
}, [
|
|
4021
|
+
}, [d]);
|
|
4021
4022
|
function pe(e) {
|
|
4022
4023
|
if (e.button !== 0 || e.target?.closest("button, a, input, textarea, select")) return;
|
|
4023
|
-
let t =
|
|
4024
|
+
let t = v.current;
|
|
4024
4025
|
if (!t) return;
|
|
4025
4026
|
let n = t.getBoundingClientRect(), r = e.clientX, i = e.clientY, a = n.left, o = n.top, s = n.width, c = n.height, l = e.currentTarget, u = !1;
|
|
4026
4027
|
try {
|
|
@@ -4046,7 +4047,7 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, ident
|
|
|
4046
4047
|
}
|
|
4047
4048
|
l.addEventListener("pointermove", d), l.addEventListener("pointerup", f), l.addEventListener("pointercancel", f);
|
|
4048
4049
|
}
|
|
4049
|
-
let
|
|
4050
|
+
let R = Se(() => {
|
|
4050
4051
|
let t = Tr({
|
|
4051
4052
|
anchorX: e.anchorX,
|
|
4052
4053
|
anchorY: e.anchorY,
|
|
@@ -4062,16 +4063,17 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, ident
|
|
|
4062
4063
|
e.anchorSelector
|
|
4063
4064
|
]);
|
|
4064
4065
|
return /* @__PURE__ */ $("div", {
|
|
4065
|
-
ref:
|
|
4066
|
+
ref: v,
|
|
4066
4067
|
id: "markup-thread-popover",
|
|
4067
|
-
class: Q("markup-popover", oe && "is-floating", ce && "is-dragging"),
|
|
4068
|
+
class: Q("markup-popover", oe && "is-floating", ce && "is-dragging", c && "is-hud-hidden"),
|
|
4068
4069
|
popover: "auto",
|
|
4069
4070
|
style: {
|
|
4070
|
-
"--markup-pop-x": `${oe?.left ??
|
|
4071
|
-
"--markup-pop-y": `${oe?.top ??
|
|
4071
|
+
"--markup-pop-x": `${oe?.left ?? R.left}px`,
|
|
4072
|
+
"--markup-pop-y": `${oe?.top ?? R.top}px`
|
|
4072
4073
|
},
|
|
4073
4074
|
role: "dialog",
|
|
4074
4075
|
"aria-label": "Markup thread",
|
|
4076
|
+
"aria-hidden": c || void 0,
|
|
4075
4077
|
children: [
|
|
4076
4078
|
/* @__PURE__ */ $("header", {
|
|
4077
4079
|
class: "markup-popover-header",
|
|
@@ -4080,40 +4082,40 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, ident
|
|
|
4080
4082
|
class: "markup-eyebrow",
|
|
4081
4083
|
children: [
|
|
4082
4084
|
"thread · ",
|
|
4083
|
-
|
|
4085
|
+
L.length,
|
|
4084
4086
|
" ",
|
|
4085
|
-
|
|
4087
|
+
L.length === 1 ? "comment" : "comments"
|
|
4086
4088
|
]
|
|
4087
4089
|
}), /* @__PURE__ */ $("div", {
|
|
4088
4090
|
class: "markup-popover-header-actions",
|
|
4089
4091
|
children: [
|
|
4090
4092
|
/* @__PURE__ */ $("div", {
|
|
4091
4093
|
class: "markup-thread-menu",
|
|
4092
|
-
ref:
|
|
4094
|
+
ref: y,
|
|
4093
4095
|
children: [/* @__PURE__ */ $("button", {
|
|
4094
4096
|
type: "button",
|
|
4095
|
-
class: Q("markup-icon-btn",
|
|
4097
|
+
class: Q("markup-icon-btn", C && "is-open"),
|
|
4096
4098
|
title: "More options",
|
|
4097
|
-
onClick: () =>
|
|
4099
|
+
onClick: () => w((e) => !e),
|
|
4098
4100
|
children: /* @__PURE__ */ $(aa, { size: 16 })
|
|
4099
|
-
}),
|
|
4101
|
+
}), C ? /* @__PURE__ */ $("div", {
|
|
4100
4102
|
class: "markup-thread-menu-list",
|
|
4101
4103
|
children: [/* @__PURE__ */ $("button", {
|
|
4102
4104
|
type: "button",
|
|
4103
4105
|
class: "markup-thread-menu-item",
|
|
4104
4106
|
onClick: () => {
|
|
4105
4107
|
let t = new URL(e.url);
|
|
4106
|
-
t.hash = `markup-thread=${e._id}`, navigator.clipboard.writeText(t.toString()).catch(() => {}),
|
|
4108
|
+
t.hash = `markup-thread=${e._id}`, navigator.clipboard.writeText(t.toString()).catch(() => {}), w(!1);
|
|
4107
4109
|
},
|
|
4108
4110
|
children: "Copy link"
|
|
4109
4111
|
}), a ? /* @__PURE__ */ $("button", {
|
|
4110
4112
|
type: "button",
|
|
4111
|
-
class: Q("markup-thread-menu-item",
|
|
4113
|
+
class: Q("markup-thread-menu-item", T && "is-danger"),
|
|
4112
4114
|
disabled: o,
|
|
4113
4115
|
onClick: () => {
|
|
4114
|
-
|
|
4116
|
+
T ? (w(!1), _()) : E(!0);
|
|
4115
4117
|
},
|
|
4116
|
-
children:
|
|
4118
|
+
children: T ? "Confirm delete" : "Delete thread…"
|
|
4117
4119
|
}) : null]
|
|
4118
4120
|
}) : null]
|
|
4119
4121
|
}),
|
|
@@ -4122,24 +4124,24 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, ident
|
|
|
4122
4124
|
class: "markup-icon-btn",
|
|
4123
4125
|
title: "Mark as resolved",
|
|
4124
4126
|
disabled: o,
|
|
4125
|
-
onClick:
|
|
4127
|
+
onClick: g,
|
|
4126
4128
|
children: /* @__PURE__ */ $(oa, { size: 16 })
|
|
4127
4129
|
}) : null,
|
|
4128
4130
|
/* @__PURE__ */ $("button", {
|
|
4129
4131
|
type: "button",
|
|
4130
4132
|
class: "markup-icon-btn",
|
|
4131
4133
|
title: "Close thread",
|
|
4132
|
-
onClick:
|
|
4134
|
+
onClick: d,
|
|
4133
4135
|
children: /* @__PURE__ */ $(ia, { size: 16 })
|
|
4134
4136
|
})
|
|
4135
4137
|
]
|
|
4136
4138
|
})]
|
|
4137
4139
|
}),
|
|
4138
4140
|
/* @__PURE__ */ $("ol", {
|
|
4139
|
-
ref:
|
|
4141
|
+
ref: x,
|
|
4140
4142
|
class: "markup-comments",
|
|
4141
|
-
children:
|
|
4142
|
-
let i = !t.fromDashboard && n != null && t.authorClientId === n, a = r === 0, s = i && !
|
|
4143
|
+
children: L.map((t, r) => {
|
|
4144
|
+
let i = !t.fromDashboard && n != null && t.authorClientId === n, a = r === 0, s = i && !I && !t.deleted, c = i && !I && !t.deleted && !a, l = D === t._id, u = (s || c) && !l && !t.deleted, d = A === t._id, f = N === t._id;
|
|
4143
4145
|
return /* @__PURE__ */ $("li", {
|
|
4144
4146
|
class: Q("markup-comment", t.fromDashboard && "is-team"),
|
|
4145
4147
|
children: [
|
|
@@ -4162,40 +4164,40 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, ident
|
|
|
4162
4164
|
}),
|
|
4163
4165
|
/* @__PURE__ */ $("div", {
|
|
4164
4166
|
class: "markup-thread-actions",
|
|
4165
|
-
children: [!
|
|
4167
|
+
children: [!I && !l ? /* @__PURE__ */ $(wa, {
|
|
4166
4168
|
comment: t,
|
|
4167
|
-
pickerOpen:
|
|
4169
|
+
pickerOpen: P === t._id,
|
|
4168
4170
|
pickerDirection: re,
|
|
4169
4171
|
pickerRef: (e) => {
|
|
4170
|
-
|
|
4172
|
+
P === t._id && (ae.current = e);
|
|
4171
4173
|
},
|
|
4172
4174
|
onPickerClick: (e) => {
|
|
4173
|
-
if (
|
|
4174
|
-
|
|
4175
|
+
if (P === t._id) {
|
|
4176
|
+
F(null);
|
|
4175
4177
|
return;
|
|
4176
4178
|
}
|
|
4177
|
-
let n = e.currentTarget.getBoundingClientRect(), r =
|
|
4178
|
-
ie((r ? r.bottom - n.bottom : Infinity) < 44 ? "up" : "down"),
|
|
4179
|
+
let n = e.currentTarget.getBoundingClientRect(), r = x.current?.getBoundingClientRect();
|
|
4180
|
+
ie((r ? r.bottom - n.bottom : Infinity) < 44 ? "up" : "down"), F(t._id);
|
|
4179
4181
|
},
|
|
4180
4182
|
onPickerSelect: (e) => {
|
|
4181
|
-
|
|
4183
|
+
F(null), h(t._id, e);
|
|
4182
4184
|
}
|
|
4183
4185
|
}) : null, u ? /* @__PURE__ */ $("div", {
|
|
4184
|
-
class: Q("markup-thread-menu markup-comment-menu", d && "is-open", d &&
|
|
4186
|
+
class: Q("markup-thread-menu markup-comment-menu", d && "is-open", d && M === "up" && "is-up"),
|
|
4185
4187
|
ref: (e) => {
|
|
4186
|
-
d && (
|
|
4188
|
+
d && (b.current = e);
|
|
4187
4189
|
},
|
|
4188
4190
|
children: [/* @__PURE__ */ $("button", {
|
|
4189
4191
|
type: "button",
|
|
4190
4192
|
class: Q("markup-icon-btn", d && "is-open"),
|
|
4191
4193
|
title: "More options",
|
|
4192
4194
|
onClick: (e) => {
|
|
4193
|
-
if (
|
|
4194
|
-
|
|
4195
|
+
if (A === t._id) {
|
|
4196
|
+
j(null);
|
|
4195
4197
|
return;
|
|
4196
4198
|
}
|
|
4197
|
-
let n = e.currentTarget.getBoundingClientRect(), r =
|
|
4198
|
-
|
|
4199
|
+
let n = e.currentTarget.getBoundingClientRect(), r = x.current?.getBoundingClientRect(), i = (+!!s + +!!c) * 32 + 8 + 6;
|
|
4200
|
+
te((r ? r.bottom - n.bottom : Infinity) < i ? "up" : "down"), j(t._id);
|
|
4199
4201
|
},
|
|
4200
4202
|
children: /* @__PURE__ */ $(aa, { size: 16 })
|
|
4201
4203
|
}), d ? /* @__PURE__ */ $("div", {
|
|
@@ -4204,16 +4206,16 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, ident
|
|
|
4204
4206
|
type: "button",
|
|
4205
4207
|
class: "markup-thread-menu-item",
|
|
4206
4208
|
onClick: () => {
|
|
4207
|
-
|
|
4209
|
+
j(null), ue(t._id, t.body);
|
|
4208
4210
|
},
|
|
4209
4211
|
children: "Edit"
|
|
4210
4212
|
}) : null, c ? /* @__PURE__ */ $("button", {
|
|
4211
4213
|
type: "button",
|
|
4212
|
-
class: Q("markup-thread-menu-item",
|
|
4214
|
+
class: Q("markup-thread-menu-item", f && "is-danger"),
|
|
4213
4215
|
onClick: () => {
|
|
4214
|
-
|
|
4216
|
+
f ? (j(null), m(t._id)) : ne(t._id);
|
|
4215
4217
|
},
|
|
4216
|
-
children:
|
|
4218
|
+
children: f ? "Confirm delete" : "Delete…"
|
|
4217
4219
|
}) : null]
|
|
4218
4220
|
}) : null]
|
|
4219
4221
|
}) : null]
|
|
@@ -4224,19 +4226,19 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, ident
|
|
|
4224
4226
|
class: "markup-comment-edit-form",
|
|
4225
4227
|
onSubmit: async (e) => {
|
|
4226
4228
|
e.preventDefault();
|
|
4227
|
-
let n =
|
|
4229
|
+
let n = ee.trim();
|
|
4228
4230
|
if (!n || n === t.body) {
|
|
4229
4231
|
de();
|
|
4230
4232
|
return;
|
|
4231
4233
|
}
|
|
4232
4234
|
try {
|
|
4233
|
-
await
|
|
4235
|
+
await p(t._id, n), de();
|
|
4234
4236
|
} catch {}
|
|
4235
4237
|
},
|
|
4236
4238
|
children: [/* @__PURE__ */ $("textarea", {
|
|
4237
4239
|
class: "markup-textarea",
|
|
4238
|
-
value:
|
|
4239
|
-
onInput: (e) =>
|
|
4240
|
+
value: ee,
|
|
4241
|
+
onInput: (e) => k(e.currentTarget.value),
|
|
4240
4242
|
rows: 3,
|
|
4241
4243
|
autoFocus: !0,
|
|
4242
4244
|
disabled: o
|
|
@@ -4251,7 +4253,7 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, ident
|
|
|
4251
4253
|
}), /* @__PURE__ */ $("button", {
|
|
4252
4254
|
type: "submit",
|
|
4253
4255
|
class: "markup-btn markup-btn-primary",
|
|
4254
|
-
disabled: o ||
|
|
4256
|
+
disabled: o || ee.trim().length === 0,
|
|
4255
4257
|
children: "Save"
|
|
4256
4258
|
})]
|
|
4257
4259
|
})]
|
|
@@ -4266,13 +4268,13 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, ident
|
|
|
4266
4268
|
}),
|
|
4267
4269
|
!l && t.reactions.length > 0 ? /* @__PURE__ */ $(Ta, {
|
|
4268
4270
|
comment: t,
|
|
4269
|
-
isResolved:
|
|
4270
|
-
onToggle: (e) =>
|
|
4271
|
+
isResolved: I,
|
|
4272
|
+
onToggle: (e) => h(t._id, e)
|
|
4271
4273
|
}) : null,
|
|
4272
4274
|
r === 0 && e.screenshotUrl ? /* @__PURE__ */ $("button", {
|
|
4273
4275
|
type: "button",
|
|
4274
4276
|
class: "markup-comment-screenshot",
|
|
4275
|
-
onClick: () =>
|
|
4277
|
+
onClick: () => S.current?.showModal(),
|
|
4276
4278
|
children: /* @__PURE__ */ $("img", {
|
|
4277
4279
|
src: e.screenshotUrl,
|
|
4278
4280
|
alt: "Screenshot"
|
|
@@ -4283,15 +4285,15 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, ident
|
|
|
4283
4285
|
})
|
|
4284
4286
|
}),
|
|
4285
4287
|
e.screenshotUrl ? /* @__PURE__ */ $("dialog", {
|
|
4286
|
-
ref:
|
|
4288
|
+
ref: S,
|
|
4287
4289
|
class: "markup-lightbox",
|
|
4288
|
-
onClick: () =>
|
|
4290
|
+
onClick: () => S.current?.close(),
|
|
4289
4291
|
children: [/* @__PURE__ */ $("button", {
|
|
4290
4292
|
type: "button",
|
|
4291
4293
|
class: "markup-lightbox-close markup-icon-btn",
|
|
4292
4294
|
"aria-label": "Close screenshot",
|
|
4293
4295
|
onClick: (e) => {
|
|
4294
|
-
e.stopPropagation(),
|
|
4296
|
+
e.stopPropagation(), S.current?.close();
|
|
4295
4297
|
},
|
|
4296
4298
|
children: /* @__PURE__ */ $(ia, { size: 16 })
|
|
4297
4299
|
}), /* @__PURE__ */ $("img", {
|
|
@@ -4304,9 +4306,9 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, ident
|
|
|
4304
4306
|
t == null ? /* @__PURE__ */ $(ma, {
|
|
4305
4307
|
pending: o,
|
|
4306
4308
|
connecting: i,
|
|
4307
|
-
onSubmit:
|
|
4308
|
-
onCancel:
|
|
4309
|
-
onSignIn:
|
|
4309
|
+
onSubmit: l,
|
|
4310
|
+
onCancel: d,
|
|
4311
|
+
onSignIn: u
|
|
4310
4312
|
}) : /* @__PURE__ */ $("div", {
|
|
4311
4313
|
class: "markup-popover-body",
|
|
4312
4314
|
children: [/* @__PURE__ */ $("p", {
|
|
@@ -4329,7 +4331,7 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, ident
|
|
|
4329
4331
|
initialFocus: !1,
|
|
4330
4332
|
pending: o,
|
|
4331
4333
|
error: s,
|
|
4332
|
-
onSubmit:
|
|
4334
|
+
onSubmit: f
|
|
4333
4335
|
})]
|
|
4334
4336
|
})
|
|
4335
4337
|
]
|
|
@@ -4430,9 +4432,9 @@ function Aa(e) {
|
|
|
4430
4432
|
};
|
|
4431
4433
|
}
|
|
4432
4434
|
function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
|
|
4433
|
-
let [r, i] =
|
|
4435
|
+
let [r, i] = z(() => window.location.pathname), [a, o] = z([]), [s, c] = z(null), [l, u] = z(n), d = V(null);
|
|
4434
4436
|
d.current = s;
|
|
4435
|
-
let [f, p] =
|
|
4437
|
+
let [f, p] = z(0), m = Se(() => Or({
|
|
4436
4438
|
apiUrl: e,
|
|
4437
4439
|
apiKey: t,
|
|
4438
4440
|
getToken: () => {
|
|
@@ -4456,8 +4458,8 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
|
|
|
4456
4458
|
};
|
|
4457
4459
|
d.current = t, c(t), Mr(t), p((e) => e + 1);
|
|
4458
4460
|
}
|
|
4459
|
-
}), [e, t]), [h, g] =
|
|
4460
|
-
|
|
4461
|
+
}), [e, t]), [h, g] = z({ kind: "idle" }), [_, v] = z(!1), [y, b] = z(null), [x, S] = z(!1), [C, w] = z(!1), [, T] = z(0), E = V(null), D = s?.name ?? null, O = s?.isVerified ?? !1, ee = s == null;
|
|
4462
|
+
B(() => {
|
|
4461
4463
|
let e = jr();
|
|
4462
4464
|
if (e?.anonToken || e?.isVerified) {
|
|
4463
4465
|
c(e);
|
|
@@ -4482,8 +4484,8 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
|
|
|
4482
4484
|
t = !0, n && clearTimeout(n);
|
|
4483
4485
|
};
|
|
4484
4486
|
}, [m, f]);
|
|
4485
|
-
let [k, A] =
|
|
4486
|
-
|
|
4487
|
+
let [k, A] = z(null);
|
|
4488
|
+
B(() => {
|
|
4487
4489
|
let e = !1, t = null;
|
|
4488
4490
|
async function n() {
|
|
4489
4491
|
try {
|
|
@@ -4501,17 +4503,17 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
|
|
|
4501
4503
|
e = !0, t && clearTimeout(t);
|
|
4502
4504
|
};
|
|
4503
4505
|
}, [m]);
|
|
4504
|
-
let
|
|
4505
|
-
|
|
4506
|
+
let j = V(null);
|
|
4507
|
+
B(() => {
|
|
4506
4508
|
let t = new rr(e.replace(/\.convex\.site(\/.*)?$/, ".convex.cloud"));
|
|
4507
|
-
return
|
|
4508
|
-
t.close(),
|
|
4509
|
+
return j.current = t, () => {
|
|
4510
|
+
t.close(), j.current = null;
|
|
4509
4511
|
};
|
|
4510
4512
|
}, [e]);
|
|
4511
|
-
let
|
|
4512
|
-
|
|
4513
|
-
let e =
|
|
4514
|
-
if (!(!e || !k)) return
|
|
4513
|
+
let M = V(!1);
|
|
4514
|
+
B(() => {
|
|
4515
|
+
let e = j.current;
|
|
4516
|
+
if (!(!e || !k)) return M.current = !1, b(null), e.onUpdate(qt("widget/queries:subscribeThreadsForRoute"), {
|
|
4515
4517
|
subscriptionToken: k,
|
|
4516
4518
|
route: r,
|
|
4517
4519
|
viewerClientId: s?.clientId ?? void 0
|
|
@@ -4522,19 +4524,19 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
|
|
|
4522
4524
|
k,
|
|
4523
4525
|
r,
|
|
4524
4526
|
s?.clientId
|
|
4525
|
-
]),
|
|
4526
|
-
if (
|
|
4527
|
+
]), B(() => {
|
|
4528
|
+
if (M.current) return;
|
|
4527
4529
|
let e = window.location.hash.match(/^#markup-thread=(.+)$/);
|
|
4528
4530
|
if (!e) {
|
|
4529
|
-
|
|
4531
|
+
M.current = !0;
|
|
4530
4532
|
return;
|
|
4531
4533
|
}
|
|
4532
4534
|
let t = decodeURIComponent(e[1] ?? "");
|
|
4533
|
-
a.find((e) => e._id === t) && (
|
|
4535
|
+
a.find((e) => e._id === t) && (M.current = !0, g({
|
|
4534
4536
|
kind: "thread",
|
|
4535
4537
|
threadId: t
|
|
4536
4538
|
}), history.replaceState(null, "", window.location.pathname + window.location.search));
|
|
4537
|
-
}, [a]),
|
|
4539
|
+
}, [a]), B(() => {
|
|
4538
4540
|
function e() {
|
|
4539
4541
|
i(window.location.pathname);
|
|
4540
4542
|
}
|
|
@@ -4547,12 +4549,12 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
|
|
|
4547
4549
|
}, () => {
|
|
4548
4550
|
window.removeEventListener("popstate", e), history.pushState = t, history.replaceState = n;
|
|
4549
4551
|
};
|
|
4550
|
-
}, []),
|
|
4552
|
+
}, []), B(() => {
|
|
4551
4553
|
function e(e) {
|
|
4552
4554
|
e.key === "." && (e.metaKey || e.ctrlKey) && (e.altKey || e.shiftKey || (e.preventDefault(), S((e) => !e)));
|
|
4553
4555
|
}
|
|
4554
4556
|
return window.addEventListener("keydown", e), () => window.removeEventListener("keydown", e);
|
|
4555
|
-
}, []),
|
|
4557
|
+
}, []), B(() => {
|
|
4556
4558
|
if (!C) return;
|
|
4557
4559
|
if (!x) {
|
|
4558
4560
|
w(!1);
|
|
@@ -4560,7 +4562,7 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
|
|
|
4560
4562
|
}
|
|
4561
4563
|
let e = window.setTimeout(() => w(!1), 5e3);
|
|
4562
4564
|
return () => window.clearTimeout(e);
|
|
4563
|
-
}, [C, x]),
|
|
4565
|
+
}, [C, x]), B(() => {
|
|
4564
4566
|
function e() {
|
|
4565
4567
|
T((e) => e + 1);
|
|
4566
4568
|
}
|
|
@@ -4570,29 +4572,31 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
|
|
|
4570
4572
|
window.removeEventListener("scroll", e), window.removeEventListener("resize", e), t.disconnect();
|
|
4571
4573
|
};
|
|
4572
4574
|
}, []);
|
|
4573
|
-
let
|
|
4575
|
+
let te = H(() => {
|
|
4574
4576
|
b(null), g({ kind: "placing" });
|
|
4575
|
-
}, []),
|
|
4577
|
+
}, []), N = H(() => {
|
|
4576
4578
|
g({ kind: "idle" }), b(null);
|
|
4577
|
-
}, []),
|
|
4579
|
+
}, []), ne = V(0), P = H((e, t, n) => {
|
|
4580
|
+
let r = t + window.scrollX, i = n + window.scrollY, a = ++ne.current;
|
|
4578
4581
|
g({
|
|
4579
4582
|
kind: "composing-new",
|
|
4580
4583
|
coords: e,
|
|
4581
|
-
pageX:
|
|
4582
|
-
pageY:
|
|
4584
|
+
pageX: r,
|
|
4585
|
+
pageY: i,
|
|
4583
4586
|
screenshot: null,
|
|
4584
|
-
screenshotCapturing: !0
|
|
4587
|
+
screenshotCapturing: !0,
|
|
4588
|
+
captureToken: a
|
|
4585
4589
|
}), $i(E.current != null && E.current.getRootNode() instanceof ShadowRoot ? E.current.getRootNode().host : null, {
|
|
4586
4590
|
x: t,
|
|
4587
4591
|
y: n
|
|
4588
4592
|
}).then((e) => {
|
|
4589
|
-
g((t) => t.kind
|
|
4593
|
+
g((t) => t.kind !== "composing-new" || t.captureToken !== a ? t : {
|
|
4590
4594
|
...t,
|
|
4591
4595
|
screenshot: e,
|
|
4592
4596
|
screenshotCapturing: !1
|
|
4593
|
-
}
|
|
4597
|
+
});
|
|
4594
4598
|
});
|
|
4595
|
-
}, []),
|
|
4599
|
+
}, []), F = H((e, t) => {
|
|
4596
4600
|
if (!s) return;
|
|
4597
4601
|
let n = {
|
|
4598
4602
|
...s,
|
|
@@ -4600,7 +4604,7 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
|
|
|
4600
4604
|
email: t
|
|
4601
4605
|
};
|
|
4602
4606
|
Mr(n), c(n);
|
|
4603
|
-
}, [s]), re =
|
|
4607
|
+
}, [s]), re = H(async () => {
|
|
4604
4608
|
b(null);
|
|
4605
4609
|
try {
|
|
4606
4610
|
let n = Aa(await Nr(e, t));
|
|
@@ -4608,7 +4612,7 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
|
|
|
4608
4612
|
} catch (e) {
|
|
4609
4613
|
b(e instanceof Error ? e.message : "Sign-in failed");
|
|
4610
4614
|
}
|
|
4611
|
-
}, [e, t]), ie =
|
|
4615
|
+
}, [e, t]), ie = H(async (e, t) => {
|
|
4612
4616
|
if (!(h.kind !== "composing-new" || !s?.name)) {
|
|
4613
4617
|
v(!0), b(null);
|
|
4614
4618
|
try {
|
|
@@ -4619,10 +4623,9 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
|
|
|
4619
4623
|
headers: { "Content-Type": h.screenshot.type || "image/png" },
|
|
4620
4624
|
body: h.screenshot
|
|
4621
4625
|
});
|
|
4622
|
-
if (t.ok) {
|
|
4623
|
-
|
|
4624
|
-
|
|
4625
|
-
}
|
|
4626
|
+
if (!t.ok) throw Error(`Screenshot upload failed (${t.status})`);
|
|
4627
|
+
let { storageId: r } = await t.json();
|
|
4628
|
+
n = r;
|
|
4626
4629
|
}
|
|
4627
4630
|
let i = await m.createThread({
|
|
4628
4631
|
url: window.location.href,
|
|
@@ -4655,7 +4658,7 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
|
|
|
4655
4658
|
s,
|
|
4656
4659
|
h,
|
|
4657
4660
|
r
|
|
4658
|
-
]), ae =
|
|
4661
|
+
]), ae = H(async () => {
|
|
4659
4662
|
if (h.kind !== "thread") return;
|
|
4660
4663
|
let e = h.threadId;
|
|
4661
4664
|
v(!0), b(null);
|
|
@@ -4666,7 +4669,7 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
|
|
|
4666
4669
|
} finally {
|
|
4667
4670
|
v(!1);
|
|
4668
4671
|
}
|
|
4669
|
-
}, [m, h]), oe =
|
|
4672
|
+
}, [m, h]), oe = H(async () => {
|
|
4670
4673
|
if (h.kind !== "thread") return;
|
|
4671
4674
|
let e = h.threadId;
|
|
4672
4675
|
v(!0), b(null);
|
|
@@ -4681,7 +4684,7 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
|
|
|
4681
4684
|
m,
|
|
4682
4685
|
h,
|
|
4683
4686
|
s?.clientId
|
|
4684
|
-
]), se =
|
|
4687
|
+
]), se = H(async (e) => {
|
|
4685
4688
|
if (h.kind !== "thread" || !s?.name) return;
|
|
4686
4689
|
let t = h.threadId;
|
|
4687
4690
|
v(!0), b(null);
|
|
@@ -4701,7 +4704,7 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
|
|
|
4701
4704
|
m,
|
|
4702
4705
|
s,
|
|
4703
4706
|
h
|
|
4704
|
-
]), ce =
|
|
4707
|
+
]), ce = H(async (e, t) => {
|
|
4705
4708
|
if (h.kind !== "thread" || !s) return;
|
|
4706
4709
|
let n = h.threadId;
|
|
4707
4710
|
v(!0), b(null);
|
|
@@ -4717,7 +4720,7 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
|
|
|
4717
4720
|
m,
|
|
4718
4721
|
s,
|
|
4719
4722
|
h
|
|
4720
|
-
]), le =
|
|
4723
|
+
]), le = H(async (e) => {
|
|
4721
4724
|
if (h.kind !== "thread" || !s) return;
|
|
4722
4725
|
let t = h.threadId;
|
|
4723
4726
|
v(!0), b(null);
|
|
@@ -4733,7 +4736,7 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
|
|
|
4733
4736
|
m,
|
|
4734
4737
|
s,
|
|
4735
4738
|
h
|
|
4736
|
-
]),
|
|
4739
|
+
]), I = H(async (e, t) => {
|
|
4737
4740
|
if (h.kind !== "thread" || !s) return;
|
|
4738
4741
|
let n = h.threadId;
|
|
4739
4742
|
b(null);
|
|
@@ -4750,8 +4753,14 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
|
|
|
4750
4753
|
m,
|
|
4751
4754
|
s,
|
|
4752
4755
|
h
|
|
4753
|
-
]),
|
|
4754
|
-
return
|
|
4756
|
+
]), L = h.kind === "thread" ? a.find((e) => e._id === h.threadId) ?? null : null, ue = O || s?.clientId != null && s.clientId === L?.authorClientId;
|
|
4757
|
+
return B(() => {
|
|
4758
|
+
h.kind === "thread" && L == null && N();
|
|
4759
|
+
}, [
|
|
4760
|
+
h,
|
|
4761
|
+
L,
|
|
4762
|
+
N
|
|
4763
|
+
]), /* @__PURE__ */ $("div", {
|
|
4755
4764
|
class: "markup-root",
|
|
4756
4765
|
ref: E,
|
|
4757
4766
|
children: [
|
|
@@ -4781,28 +4790,29 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
|
|
|
4781
4790
|
}) : null]
|
|
4782
4791
|
}),
|
|
4783
4792
|
h.kind === "placing" ? /* @__PURE__ */ $(xa, {
|
|
4784
|
-
onPlace:
|
|
4785
|
-
onCancel:
|
|
4793
|
+
onPlace: P,
|
|
4794
|
+
onCancel: N
|
|
4786
4795
|
}) : null,
|
|
4787
|
-
h.kind === "thread" &&
|
|
4788
|
-
thread:
|
|
4796
|
+
h.kind === "thread" && L ? /* @__PURE__ */ $(Ca, {
|
|
4797
|
+
thread: L,
|
|
4789
4798
|
authorName: D,
|
|
4790
4799
|
currentClientId: s?.clientId ?? null,
|
|
4791
4800
|
isVerified: O,
|
|
4792
4801
|
identityResolving: ee,
|
|
4793
|
-
canDelete:
|
|
4802
|
+
canDelete: ue,
|
|
4794
4803
|
pending: _,
|
|
4795
4804
|
error: y,
|
|
4796
|
-
|
|
4805
|
+
hidden: x,
|
|
4806
|
+
onAuthor: F,
|
|
4797
4807
|
onSignIn: re,
|
|
4798
|
-
onClose:
|
|
4808
|
+
onClose: N,
|
|
4799
4809
|
onReply: se,
|
|
4800
4810
|
onEditComment: ce,
|
|
4801
4811
|
onDeleteComment: le,
|
|
4802
|
-
onToggleReaction:
|
|
4812
|
+
onToggleReaction: I,
|
|
4803
4813
|
onDelete: ae,
|
|
4804
4814
|
onResolve: oe
|
|
4805
|
-
}) : null,
|
|
4815
|
+
}, L._id) : null,
|
|
4806
4816
|
h.kind === "composing-new" ? /* @__PURE__ */ $(_a, {
|
|
4807
4817
|
pageX: h.pageX,
|
|
4808
4818
|
pageY: h.pageY,
|
|
@@ -4813,14 +4823,14 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
|
|
|
4813
4823
|
error: y,
|
|
4814
4824
|
screenshot: h.screenshot,
|
|
4815
4825
|
screenshotCapturing: h.screenshotCapturing,
|
|
4816
|
-
onAuthor:
|
|
4826
|
+
onAuthor: F,
|
|
4817
4827
|
onSignIn: re,
|
|
4818
4828
|
onSubmit: ie,
|
|
4819
|
-
onClose:
|
|
4829
|
+
onClose: N
|
|
4820
4830
|
}) : null,
|
|
4821
4831
|
!x || h.kind === "placing" || h.kind === "composing-new" ? /* @__PURE__ */ $(ua, {
|
|
4822
4832
|
active: h.kind === "placing",
|
|
4823
|
-
onToggle: () => h.kind === "placing" ?
|
|
4833
|
+
onToggle: () => h.kind === "placing" ? N() : te(),
|
|
4824
4834
|
onHide: () => {
|
|
4825
4835
|
S(!0), w(!0);
|
|
4826
4836
|
},
|
|
@@ -4858,11 +4868,11 @@ function Na(e, t) {
|
|
|
4858
4868
|
let n = t.theme ?? "auto";
|
|
4859
4869
|
n !== "auto" && (e.dataset.theme = n);
|
|
4860
4870
|
let r = e.attachShadow({ mode: "open" }), i = document.createElement("style");
|
|
4861
|
-
i.textContent =
|
|
4871
|
+
i.textContent = le, r.appendChild(i);
|
|
4862
4872
|
let a = document.createElement("div");
|
|
4863
4873
|
a.className = "markup-shadow-root", r.appendChild(a);
|
|
4864
4874
|
let { theme: o, ...s } = t;
|
|
4865
|
-
return
|
|
4875
|
+
return ce(/* @__PURE__ */ $(ja, { ...s }), a), () => ce(null, a);
|
|
4866
4876
|
}
|
|
4867
4877
|
//#endregion
|
|
4868
4878
|
//#region src/widget.ts
|