@pixelmatters/markup 1.3.0 → 1.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -6
- package/dist/widget.js +489 -470
- 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), P(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, re(i, o, a), n.__e = n.__ = null, o.__e != r && E(o);
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
function E(e) {
|
|
@@ -63,21 +63,21 @@ function O() {
|
|
|
63
63
|
r.length = O.__r = 0;
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
|
-
function
|
|
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 =
|
|
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 = P(e, p, f, i, a, o, s, c, l, u), g = p.__e, p.ref && f.ref != p.ref && (f.ref && oe(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
|
-
function
|
|
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)), se(s, s));
|
|
75
75
|
return r;
|
|
76
76
|
}
|
|
77
|
-
function
|
|
77
|
+
function A(e, t, n, r) {
|
|
78
78
|
var i, a;
|
|
79
79
|
if (typeof e.type == "function") {
|
|
80
|
-
for (i = e.__k, a = 0; i && a < i.length; a++) i[a] && (i[a].__ = e, t =
|
|
80
|
+
for (i = e.__k, a = 0; i && a < i.length; a++) i[a] && (i[a].__ = e, t = A(i[a], t, n, r));
|
|
81
81
|
return t;
|
|
82
82
|
}
|
|
83
83
|
e.__e != t && (r && (t && e.type && !t.parentNode && (t = w(e)), n.insertBefore(e.__e, t || null)), t = e.__e);
|
|
@@ -86,7 +86,7 @@ function j(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 M(e, t, n, r) {
|
|
|
94
94
|
}
|
|
95
95
|
return -1;
|
|
96
96
|
}
|
|
97
|
-
function
|
|
97
|
+
function M(e, t, n) {
|
|
98
98
|
t[0] == "-" ? e.setProperty(t, n ?? "") : e[t] = n == null ? "" : typeof n != "number" || g.test(t) ? n : n + "px";
|
|
99
99
|
}
|
|
100
|
-
function
|
|
100
|
+
function te(e, t, n, r, i) {
|
|
101
101
|
var a, o;
|
|
102
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 ee(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 P(e) {
|
|
|
124
124
|
}
|
|
125
125
|
};
|
|
126
126
|
}
|
|
127
|
-
function
|
|
128
|
-
var d, f, p, m, g, b, x, w, T, E, D, O, A, j, M
|
|
127
|
+
function P(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 = ce), 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);
|
|
@@ -141,30 +141,30 @@ function F(e, n, r, i, a, o, s, c, l, u) {
|
|
|
141
141
|
f.componentDidUpdate(m, g, b);
|
|
142
142
|
});
|
|
143
143
|
}
|
|
144
|
-
if (f.context = D, f.props = w, f.__P = e, f.__e = !1, O = t.__r,
|
|
144
|
+
if (f.context = D, f.props = w, f.__P = e, f.__e = !1, O = t.__r, k = 0, T) f.state = f.__s, f.__d = !1, O && O(n), d = f.render(f.props, f.state, f.context), h.push.apply(f.__h, f._sb), f._sb = [];
|
|
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
|
-
while (f.__d && ++
|
|
148
|
-
f.state = f.__s, f.getChildContext != null && (i = v(v({}, i), f.getChildContext())), T && !p && f.getSnapshotBeforeUpdate != null && (b = f.getSnapshotBeforeUpdate(m, g)),
|
|
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 ? ie(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 (
|
|
155
|
-
|
|
154
|
+
for (j = o.length; j--;) y(o[j]);
|
|
155
|
+
ne(n);
|
|
156
156
|
}
|
|
157
|
-
else n.__e = r.__e, n.__k = r.__k, e.then ||
|
|
157
|
+
else n.__e = r.__e, n.__k = r.__k, e.then || ne(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 = ae(r.__e, n, r, i, a, o, s, l, u);
|
|
161
161
|
return (d = t.diffed) && d(n), 128 & n.__u ? void 0 : c;
|
|
162
162
|
}
|
|
163
|
-
function
|
|
164
|
-
e && (e.__c && (e.__c.__e = !0), e.__k && e.__k.some(
|
|
163
|
+
function ne(e) {
|
|
164
|
+
e && (e.__c && (e.__c.__e = !0), e.__k && e.__k.some(ne));
|
|
165
165
|
}
|
|
166
|
-
function
|
|
167
|
-
for (var i = 0; i < r.length; i++)
|
|
166
|
+
function re(e, n, r) {
|
|
167
|
+
for (var i = 0; i < r.length; i++) oe(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 ne(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 ie(e) {
|
|
179
|
+
return typeof e != "object" || !e || e.__b > 0 ? e : _(e) ? e.map(ie) : v({}, e);
|
|
180
180
|
}
|
|
181
|
-
function
|
|
181
|
+
function ae(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 ie(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
|
-
else if (p && (n.innerHTML = ""),
|
|
200
|
-
l || (d = "value", C == "progress" && v == null ? n.removeAttribute("value") : v != null && (v !== n[d] || C == "progress" && !v || C == "option" && v != x[d]) &&
|
|
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]) && 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 oe(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 ae(e, n, r) {
|
|
|
211
211
|
t.__e(e, r);
|
|
212
212
|
}
|
|
213
213
|
}
|
|
214
|
-
function
|
|
214
|
+
function se(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 || oe(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 oe(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] && se(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 ce(e, t, n) {
|
|
228
228
|
return this.constructor(e, n);
|
|
229
229
|
}
|
|
230
|
-
function
|
|
230
|
+
function le(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 = [], P(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), re(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,24 +245,24 @@ 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 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}}@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-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}}", ue, 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
|
-
|
|
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, L, 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(I, e, fe || t), fe = 0;
|
|
254
254
|
var n = I.__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(F++, 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
268
|
}], r.__c = I, !I.__f)) {
|
|
@@ -294,99 +294,99 @@ function Se(e, t, n) {
|
|
|
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(F++, 3);
|
|
299
|
+
!R.__s && Oe(n.__H, t) && (n.__ = e, n.u = t, I.__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(F++, 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
|
-
I = null,
|
|
327
|
-
},
|
|
328
|
-
e && t.__k && t.__k.__m && (e.__m = t.__k.__m),
|
|
329
|
-
},
|
|
330
|
-
|
|
325
|
+
R.__b = function(e) {
|
|
326
|
+
I = 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), F = 0;
|
|
331
331
|
var t = (I = e.__c).__H;
|
|
332
|
-
t && (
|
|
332
|
+
t && (L === I ? (t.__h = [], I.__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 = [], F = 0)), L = I;
|
|
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
|
+
})), L = I = 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
|
|
371
|
+
function Ee(e) {
|
|
372
372
|
var t = I, n = e.__c;
|
|
373
373
|
typeof n == "function" && (e.__c = void 0, n()), I = t;
|
|
374
374
|
}
|
|
375
|
-
function
|
|
375
|
+
function De(e) {
|
|
376
376
|
var t = I;
|
|
377
377
|
e.__c = e.__(), I = 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;
|
|
@@ -3586,24 +3586,25 @@ function pa(e, t) {
|
|
|
3586
3586
|
}
|
|
3587
3587
|
//#endregion
|
|
3588
3588
|
//#region src/runtime/ui/author-prompt.tsx
|
|
3589
|
-
function ma({ pending: e,
|
|
3590
|
-
let [
|
|
3591
|
-
|
|
3592
|
-
|
|
3589
|
+
function ma({ pending: e, connecting: t = !1, onSubmit: n, onCancel: r, onSignIn: i }) {
|
|
3590
|
+
let [a, o] = z(""), [s, c] = z(""), l = V(null);
|
|
3591
|
+
B(() => {
|
|
3592
|
+
l.current?.focus();
|
|
3593
3593
|
}, []);
|
|
3594
|
-
function
|
|
3595
|
-
|
|
3596
|
-
let
|
|
3597
|
-
!
|
|
3594
|
+
function u(r) {
|
|
3595
|
+
r?.preventDefault();
|
|
3596
|
+
let i = a.trim();
|
|
3597
|
+
!i || e || t || n(i, s.trim() || void 0);
|
|
3598
3598
|
}
|
|
3599
|
+
let d = e || t;
|
|
3599
3600
|
return /* @__PURE__ */ $("form", {
|
|
3600
3601
|
class: "markup-author-prompt",
|
|
3601
|
-
onSubmit:
|
|
3602
|
+
onSubmit: u,
|
|
3602
3603
|
children: [
|
|
3603
|
-
|
|
3604
|
+
i ? /* @__PURE__ */ $(S, { children: [/* @__PURE__ */ $("button", {
|
|
3604
3605
|
type: "button",
|
|
3605
3606
|
class: "markup-btn markup-btn-primary",
|
|
3606
|
-
onClick:
|
|
3607
|
+
onClick: i,
|
|
3607
3608
|
disabled: e,
|
|
3608
3609
|
children: "Sign in with Markup"
|
|
3609
3610
|
}), /* @__PURE__ */ $("p", {
|
|
@@ -3614,16 +3615,16 @@ function ma({ pending: e, onSubmit: t, onCancel: n, onSignIn: r }) {
|
|
|
3614
3615
|
children: "who's leaving feedback?"
|
|
3615
3616
|
}),
|
|
3616
3617
|
/* @__PURE__ */ $("input", {
|
|
3617
|
-
ref:
|
|
3618
|
+
ref: l,
|
|
3618
3619
|
class: "markup-input",
|
|
3619
3620
|
type: "text",
|
|
3620
3621
|
name: "name",
|
|
3621
3622
|
placeholder: "Your name",
|
|
3622
|
-
value:
|
|
3623
|
+
value: a,
|
|
3623
3624
|
maxLength: 80,
|
|
3624
3625
|
autoComplete: "name",
|
|
3625
|
-
onInput: (e) =>
|
|
3626
|
-
disabled:
|
|
3626
|
+
onInput: (e) => o(e.currentTarget.value),
|
|
3627
|
+
disabled: d,
|
|
3627
3628
|
"data-1p-ignore": !0
|
|
3628
3629
|
}),
|
|
3629
3630
|
/* @__PURE__ */ $("input", {
|
|
@@ -3631,25 +3632,31 @@ function ma({ pending: e, onSubmit: t, onCancel: n, onSignIn: r }) {
|
|
|
3631
3632
|
type: "email",
|
|
3632
3633
|
name: "email",
|
|
3633
3634
|
placeholder: "Email (optional)",
|
|
3634
|
-
value:
|
|
3635
|
+
value: s,
|
|
3635
3636
|
maxLength: 254,
|
|
3636
3637
|
autoComplete: "email",
|
|
3637
|
-
onInput: (e) =>
|
|
3638
|
-
disabled:
|
|
3638
|
+
onInput: (e) => c(e.currentTarget.value),
|
|
3639
|
+
disabled: d,
|
|
3639
3640
|
"data-1p-ignore": !0
|
|
3640
3641
|
}),
|
|
3642
|
+
t ? /* @__PURE__ */ $("p", {
|
|
3643
|
+
class: "markup-author-status",
|
|
3644
|
+
role: "status",
|
|
3645
|
+
"aria-live": "polite",
|
|
3646
|
+
children: "Connecting…"
|
|
3647
|
+
}) : null,
|
|
3641
3648
|
/* @__PURE__ */ $("div", {
|
|
3642
3649
|
class: "markup-composer-actions",
|
|
3643
3650
|
children: [/* @__PURE__ */ $("button", {
|
|
3644
3651
|
type: "button",
|
|
3645
3652
|
class: "markup-btn markup-btn-ghost",
|
|
3646
|
-
onClick:
|
|
3653
|
+
onClick: r,
|
|
3647
3654
|
disabled: e,
|
|
3648
3655
|
children: "Cancel"
|
|
3649
3656
|
}), /* @__PURE__ */ $("button", {
|
|
3650
3657
|
type: "submit",
|
|
3651
3658
|
class: "markup-btn markup-btn-primary",
|
|
3652
|
-
disabled: !
|
|
3659
|
+
disabled: !a.trim() || d,
|
|
3653
3660
|
children: "Continue"
|
|
3654
3661
|
})]
|
|
3655
3662
|
})
|
|
@@ -3660,13 +3667,13 @@ function ma({ pending: e, onSubmit: t, onCancel: n, onSignIn: r }) {
|
|
|
3660
3667
|
//#region src/runtime/ui/composer.tsx
|
|
3661
3668
|
var ha = 4e3;
|
|
3662
3669
|
function ga({ label: e, placeholder: t = "Leave feedback…", submitLabel: n = "Post", initialFocus: r = !0, pending: i, error: a, onSubmit: o }) {
|
|
3663
|
-
let [s, c] =
|
|
3664
|
-
|
|
3670
|
+
let [s, c] = z(""), l = V(null), u = V(!1);
|
|
3671
|
+
B(() => {
|
|
3665
3672
|
r && l.current?.focus();
|
|
3666
|
-
}, [r]),
|
|
3673
|
+
}, [r]), B(() => {
|
|
3667
3674
|
let e = l.current;
|
|
3668
3675
|
e && (e.style.height = "auto", e.style.height = `${Math.min(e.scrollHeight, 160)}px`);
|
|
3669
|
-
}, [s]),
|
|
3676
|
+
}, [s]), B(() => {
|
|
3670
3677
|
u.current && !i && !a && (c(""), l.current?.focus()), u.current = i;
|
|
3671
3678
|
}, [i, a]);
|
|
3672
3679
|
function d(e) {
|
|
@@ -3735,29 +3742,29 @@ function ga({ label: e, placeholder: t = "Leave feedback…", submitLabel: n = "
|
|
|
3735
3742
|
}
|
|
3736
3743
|
//#endregion
|
|
3737
3744
|
//#region src/runtime/ui/new-thread-popover.tsx
|
|
3738
|
-
function _a({ pageX: e, pageY: t, authorName: n, isVerified: r,
|
|
3739
|
-
let
|
|
3740
|
-
pa(
|
|
3741
|
-
let [
|
|
3742
|
-
|
|
3743
|
-
if (!
|
|
3744
|
-
let e = URL.createObjectURL(
|
|
3745
|
-
return
|
|
3746
|
-
}, [
|
|
3747
|
-
let e =
|
|
3745
|
+
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 = V(null);
|
|
3747
|
+
pa(p, !0);
|
|
3748
|
+
let [m, h] = z(!1), [g, _] = z(null), [v, y] = z(null), [b, x] = z(!1);
|
|
3749
|
+
B(() => {
|
|
3750
|
+
if (!s) return;
|
|
3751
|
+
let e = URL.createObjectURL(s);
|
|
3752
|
+
return _(e), () => URL.revokeObjectURL(e);
|
|
3753
|
+
}, [s]), B(() => {
|
|
3754
|
+
let e = p.current;
|
|
3748
3755
|
if (!e) return;
|
|
3749
3756
|
if (typeof e.showPopover == "function" && !e.matches(":popover-open")) try {
|
|
3750
3757
|
e.showPopover();
|
|
3751
3758
|
} catch {}
|
|
3752
3759
|
function t(e) {
|
|
3753
|
-
e.newState === "closed" &&
|
|
3760
|
+
e.newState === "closed" && f();
|
|
3754
3761
|
}
|
|
3755
3762
|
return e.addEventListener("toggle", t), () => e.removeEventListener("toggle", t);
|
|
3756
|
-
}, [
|
|
3757
|
-
let
|
|
3758
|
-
function
|
|
3763
|
+
}, [f]);
|
|
3764
|
+
let S = va(e - window.scrollX + 16, 12, window.innerWidth - 320 - 12), C = va(t - window.scrollY - 16, 12, window.innerHeight - 220), w = s != null, T = c || w;
|
|
3765
|
+
function E(e) {
|
|
3759
3766
|
if (e.button !== 0 || e.target?.closest("button, a, input, textarea, select")) return;
|
|
3760
|
-
let t =
|
|
3767
|
+
let t = p.current;
|
|
3761
3768
|
if (!t) return;
|
|
3762
3769
|
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;
|
|
3763
3770
|
try {
|
|
@@ -3767,35 +3774,35 @@ function _a({ pageX: e, pageY: t, authorName: n, isVerified: r, pending: i, erro
|
|
|
3767
3774
|
let t = e.clientX - r, n = e.clientY - i;
|
|
3768
3775
|
if (!u) {
|
|
3769
3776
|
if (Math.abs(t) + Math.abs(n) < 4) return;
|
|
3770
|
-
u = !0,
|
|
3777
|
+
u = !0, x(!0);
|
|
3771
3778
|
}
|
|
3772
3779
|
let l = Math.max(8, window.innerWidth - s - 8), d = Math.max(8, window.innerHeight - c - 8);
|
|
3773
|
-
|
|
3780
|
+
y({
|
|
3774
3781
|
left: va(a + t, 8, l),
|
|
3775
3782
|
top: va(o + n, 8, d)
|
|
3776
3783
|
});
|
|
3777
3784
|
}
|
|
3778
|
-
function
|
|
3785
|
+
function f(e) {
|
|
3779
3786
|
try {
|
|
3780
3787
|
l.releasePointerCapture(e.pointerId);
|
|
3781
3788
|
} catch {}
|
|
3782
|
-
l.removeEventListener("pointermove", d), l.removeEventListener("pointerup",
|
|
3789
|
+
l.removeEventListener("pointermove", d), l.removeEventListener("pointerup", f), l.removeEventListener("pointercancel", f), x(!1);
|
|
3783
3790
|
}
|
|
3784
|
-
l.addEventListener("pointermove", d), l.addEventListener("pointerup",
|
|
3791
|
+
l.addEventListener("pointermove", d), l.addEventListener("pointerup", f), l.addEventListener("pointercancel", f);
|
|
3785
3792
|
}
|
|
3786
3793
|
return /* @__PURE__ */ $("div", {
|
|
3787
|
-
ref:
|
|
3788
|
-
class: Q("markup-popover",
|
|
3794
|
+
ref: p,
|
|
3795
|
+
class: Q("markup-popover", v && "is-floating", b && "is-dragging"),
|
|
3789
3796
|
popover: "auto",
|
|
3790
3797
|
style: {
|
|
3791
|
-
"--markup-pop-x": `${
|
|
3792
|
-
"--markup-pop-y": `${
|
|
3798
|
+
"--markup-pop-x": `${v?.left ?? S}px`,
|
|
3799
|
+
"--markup-pop-y": `${v?.top ?? C}px`
|
|
3793
3800
|
},
|
|
3794
3801
|
role: "dialog",
|
|
3795
3802
|
"aria-label": "New markup",
|
|
3796
3803
|
children: [/* @__PURE__ */ $("header", {
|
|
3797
3804
|
class: "markup-popover-header",
|
|
3798
|
-
onPointerDown:
|
|
3805
|
+
onPointerDown: E,
|
|
3799
3806
|
children: [/* @__PURE__ */ $("span", {
|
|
3800
3807
|
class: "markup-eyebrow",
|
|
3801
3808
|
children: "new · markup"
|
|
@@ -3803,14 +3810,15 @@ function _a({ pageX: e, pageY: t, authorName: n, isVerified: r, pending: i, erro
|
|
|
3803
3810
|
type: "button",
|
|
3804
3811
|
class: "markup-icon-btn",
|
|
3805
3812
|
"aria-label": "Discard pin",
|
|
3806
|
-
onClick:
|
|
3813
|
+
onClick: f,
|
|
3807
3814
|
children: /* @__PURE__ */ $(ia, { size: 16 })
|
|
3808
3815
|
})]
|
|
3809
3816
|
}), n == null ? /* @__PURE__ */ $(ma, {
|
|
3810
|
-
pending:
|
|
3811
|
-
|
|
3812
|
-
|
|
3813
|
-
|
|
3817
|
+
pending: a,
|
|
3818
|
+
connecting: i,
|
|
3819
|
+
onSubmit: l,
|
|
3820
|
+
onCancel: f,
|
|
3821
|
+
onSignIn: u
|
|
3814
3822
|
}) : /* @__PURE__ */ $("div", {
|
|
3815
3823
|
class: "markup-popover-body",
|
|
3816
3824
|
children: [
|
|
@@ -3832,13 +3840,13 @@ function _a({ pageX: e, pageY: t, authorName: n, isVerified: r, pending: i, erro
|
|
|
3832
3840
|
label: "Feedback",
|
|
3833
3841
|
placeholder: "What's wrong, missing, or worth noting?",
|
|
3834
3842
|
submitLabel: "Post markup",
|
|
3835
|
-
pending:
|
|
3836
|
-
error:
|
|
3837
|
-
onSubmit: (e) =>
|
|
3843
|
+
pending: a,
|
|
3844
|
+
error: o,
|
|
3845
|
+
onSubmit: (e) => d(e, m && w)
|
|
3838
3846
|
}),
|
|
3839
|
-
|
|
3847
|
+
T ? /* @__PURE__ */ $("div", {
|
|
3840
3848
|
class: "markup-screenshot-row",
|
|
3841
|
-
children:
|
|
3849
|
+
children: c ? /* @__PURE__ */ $("span", {
|
|
3842
3850
|
class: "markup-screenshot-status",
|
|
3843
3851
|
children: [
|
|
3844
3852
|
/* @__PURE__ */ $("input", {
|
|
@@ -3855,14 +3863,14 @@ function _a({ pageX: e, pageY: t, authorName: n, isVerified: r, pending: i, erro
|
|
|
3855
3863
|
/* @__PURE__ */ $("input", {
|
|
3856
3864
|
type: "checkbox",
|
|
3857
3865
|
class: "markup-screenshot-checkbox",
|
|
3858
|
-
checked:
|
|
3859
|
-
onChange: (e) =>
|
|
3866
|
+
checked: m,
|
|
3867
|
+
onChange: (e) => h(e.currentTarget.checked)
|
|
3860
3868
|
}),
|
|
3861
3869
|
/* @__PURE__ */ $(sa, { size: 12 }),
|
|
3862
3870
|
/* @__PURE__ */ $("span", { children: "Attach screenshot" }),
|
|
3863
|
-
|
|
3871
|
+
g && m ? /* @__PURE__ */ $("img", {
|
|
3864
3872
|
class: "markup-screenshot-thumb",
|
|
3865
|
-
src:
|
|
3873
|
+
src: g,
|
|
3866
3874
|
alt: "Screenshot preview"
|
|
3867
3875
|
}) : null
|
|
3868
3876
|
]
|
|
@@ -3917,7 +3925,7 @@ function ba({ pageX: e, pageY: t }) {
|
|
|
3917
3925
|
//#endregion
|
|
3918
3926
|
//#region src/runtime/ui/placement-overlay.tsx
|
|
3919
3927
|
function xa({ onPlace: e, onCancel: t }) {
|
|
3920
|
-
|
|
3928
|
+
B(() => {
|
|
3921
3929
|
function e(e) {
|
|
3922
3930
|
e.key === "Escape" && t();
|
|
3923
3931
|
}
|
|
@@ -3950,24 +3958,24 @@ var Sa = [
|
|
|
3950
3958
|
"😄",
|
|
3951
3959
|
"❓"
|
|
3952
3960
|
];
|
|
3953
|
-
function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r,
|
|
3954
|
-
let
|
|
3955
|
-
pa(
|
|
3956
|
-
let
|
|
3957
|
-
function
|
|
3958
|
-
|
|
3959
|
-
}
|
|
3960
|
-
function
|
|
3961
|
-
|
|
3962
|
-
}
|
|
3963
|
-
|
|
3964
|
-
if (!
|
|
3965
|
-
let t = e.comments.find((e) => e._id ===
|
|
3966
|
-
(!t || t.deleted) &&
|
|
3967
|
-
}, [e.comments,
|
|
3968
|
-
let de =
|
|
3969
|
-
|
|
3970
|
-
let e =
|
|
3961
|
+
function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, identityResolving: i, canDelete: a, pending: o, error: s, onAuthor: c, onSignIn: l, onClose: u, onReply: d, onEditComment: f, onDeleteComment: p, onToggleReaction: m, onResolve: h, onDelete: g }) {
|
|
3962
|
+
let _ = V(null), v = V(null), y = V(null), b = V(null), x = V(null), [S, C] = z(!1), [w, T] = z(!1), [E, D] = z(null), [O, ee] = z(""), [k, A] = z(null), [j, M] = z("down"), [te, N] = z(null), [P, ne] = z(null), [re, ie] = z("down"), ae = V(null), [oe, se] = z(null), [ce, le] = z(!1);
|
|
3963
|
+
pa(_, !0);
|
|
3964
|
+
let ue = e.resolvedAt != null, F = Se(() => e.comments.filter((e) => !e.deleted), [e.comments]);
|
|
3965
|
+
function I(e, t) {
|
|
3966
|
+
D(e), ee(t);
|
|
3967
|
+
}
|
|
3968
|
+
function L() {
|
|
3969
|
+
D(null), ee("");
|
|
3970
|
+
}
|
|
3971
|
+
B(() => {
|
|
3972
|
+
if (!E) return;
|
|
3973
|
+
let t = e.comments.find((e) => e._id === E);
|
|
3974
|
+
(!t || t.deleted) && L();
|
|
3975
|
+
}, [e.comments, E]);
|
|
3976
|
+
let de = V(!0);
|
|
3977
|
+
B(() => {
|
|
3978
|
+
let e = b.current;
|
|
3971
3979
|
if (e) {
|
|
3972
3980
|
if (de.current) {
|
|
3973
3981
|
de.current = !1, e.scrollTop = e.scrollHeight;
|
|
@@ -3975,44 +3983,44 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, canDe
|
|
|
3975
3983
|
}
|
|
3976
3984
|
e.scrollHeight - e.scrollTop - e.clientHeight < 80 && (e.scrollTop = e.scrollHeight);
|
|
3977
3985
|
}
|
|
3978
|
-
}, [
|
|
3979
|
-
if (!
|
|
3980
|
-
|
|
3986
|
+
}, [F.length]), B(() => {
|
|
3987
|
+
if (!S) {
|
|
3988
|
+
T(!1);
|
|
3981
3989
|
return;
|
|
3982
3990
|
}
|
|
3983
3991
|
function e(e) {
|
|
3984
|
-
|
|
3992
|
+
v.current && !e.composedPath().includes(v.current) && C(!1);
|
|
3985
3993
|
}
|
|
3986
3994
|
return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
|
|
3987
|
-
}, [
|
|
3995
|
+
}, [S]), B(() => {
|
|
3988
3996
|
if (!k) {
|
|
3989
|
-
|
|
3997
|
+
N(null);
|
|
3990
3998
|
return;
|
|
3991
3999
|
}
|
|
3992
4000
|
function e(e) {
|
|
3993
|
-
|
|
4001
|
+
y.current && !e.composedPath().includes(y.current) && A(null);
|
|
3994
4002
|
}
|
|
3995
4003
|
return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
|
|
3996
|
-
}, [k]),
|
|
4004
|
+
}, [k]), B(() => {
|
|
3997
4005
|
if (!P) return;
|
|
3998
4006
|
function e(e) {
|
|
3999
|
-
|
|
4007
|
+
ae.current && !e.composedPath().includes(ae.current) && ne(null);
|
|
4000
4008
|
}
|
|
4001
4009
|
return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
|
|
4002
|
-
}, [P]),
|
|
4003
|
-
let e =
|
|
4010
|
+
}, [P]), B(() => {
|
|
4011
|
+
let e = _.current;
|
|
4004
4012
|
if (!e) return;
|
|
4005
4013
|
if (typeof e.showPopover == "function" && !e.matches(":popover-open")) try {
|
|
4006
4014
|
e.showPopover();
|
|
4007
4015
|
} catch {}
|
|
4008
4016
|
function t(e) {
|
|
4009
|
-
e.newState === "closed" &&
|
|
4017
|
+
e.newState === "closed" && u();
|
|
4010
4018
|
}
|
|
4011
4019
|
return e.addEventListener("toggle", t), () => e.removeEventListener("toggle", t);
|
|
4012
|
-
}, [
|
|
4020
|
+
}, [u]);
|
|
4013
4021
|
function fe(e) {
|
|
4014
4022
|
if (e.button !== 0 || e.target?.closest("button, a, input, textarea, select")) return;
|
|
4015
|
-
let t =
|
|
4023
|
+
let t = _.current;
|
|
4016
4024
|
if (!t) return;
|
|
4017
4025
|
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;
|
|
4018
4026
|
try {
|
|
@@ -4022,10 +4030,10 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, canDe
|
|
|
4022
4030
|
let t = e.clientX - r, n = e.clientY - i;
|
|
4023
4031
|
if (!u) {
|
|
4024
4032
|
if (Math.abs(t) + Math.abs(n) < 4) return;
|
|
4025
|
-
u = !0,
|
|
4033
|
+
u = !0, le(!0);
|
|
4026
4034
|
}
|
|
4027
4035
|
let l = Math.max(8, window.innerWidth - s - 8), d = Math.max(8, window.innerHeight - c - 8);
|
|
4028
|
-
|
|
4036
|
+
se({
|
|
4029
4037
|
left: Da(a + t, 8, l),
|
|
4030
4038
|
top: Da(o + n, 8, d)
|
|
4031
4039
|
});
|
|
@@ -4034,11 +4042,11 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, canDe
|
|
|
4034
4042
|
try {
|
|
4035
4043
|
l.releasePointerCapture(e.pointerId);
|
|
4036
4044
|
} catch {}
|
|
4037
|
-
l.removeEventListener("pointermove", d), l.removeEventListener("pointerup", f), l.removeEventListener("pointercancel", f),
|
|
4045
|
+
l.removeEventListener("pointermove", d), l.removeEventListener("pointerup", f), l.removeEventListener("pointercancel", f), le(!1);
|
|
4038
4046
|
}
|
|
4039
4047
|
l.addEventListener("pointermove", d), l.addEventListener("pointerup", f), l.addEventListener("pointercancel", f);
|
|
4040
4048
|
}
|
|
4041
|
-
let pe =
|
|
4049
|
+
let pe = Se(() => {
|
|
4042
4050
|
let t = Tr({
|
|
4043
4051
|
anchorX: e.anchorX,
|
|
4044
4052
|
anchorY: e.anchorY,
|
|
@@ -4054,13 +4062,13 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, canDe
|
|
|
4054
4062
|
e.anchorSelector
|
|
4055
4063
|
]);
|
|
4056
4064
|
return /* @__PURE__ */ $("div", {
|
|
4057
|
-
ref:
|
|
4065
|
+
ref: _,
|
|
4058
4066
|
id: "markup-thread-popover",
|
|
4059
|
-
class: Q("markup-popover",
|
|
4067
|
+
class: Q("markup-popover", oe && "is-floating", ce && "is-dragging"),
|
|
4060
4068
|
popover: "auto",
|
|
4061
4069
|
style: {
|
|
4062
|
-
"--markup-pop-x": `${
|
|
4063
|
-
"--markup-pop-y": `${
|
|
4070
|
+
"--markup-pop-x": `${oe?.left ?? pe.left}px`,
|
|
4071
|
+
"--markup-pop-y": `${oe?.top ?? pe.top}px`
|
|
4064
4072
|
},
|
|
4065
4073
|
role: "dialog",
|
|
4066
4074
|
"aria-label": "Markup thread",
|
|
@@ -4072,40 +4080,40 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, canDe
|
|
|
4072
4080
|
class: "markup-eyebrow",
|
|
4073
4081
|
children: [
|
|
4074
4082
|
"thread · ",
|
|
4075
|
-
|
|
4083
|
+
F.length,
|
|
4076
4084
|
" ",
|
|
4077
|
-
|
|
4085
|
+
F.length === 1 ? "comment" : "comments"
|
|
4078
4086
|
]
|
|
4079
4087
|
}), /* @__PURE__ */ $("div", {
|
|
4080
4088
|
class: "markup-popover-header-actions",
|
|
4081
4089
|
children: [
|
|
4082
4090
|
/* @__PURE__ */ $("div", {
|
|
4083
4091
|
class: "markup-thread-menu",
|
|
4084
|
-
ref:
|
|
4092
|
+
ref: v,
|
|
4085
4093
|
children: [/* @__PURE__ */ $("button", {
|
|
4086
4094
|
type: "button",
|
|
4087
|
-
class: Q("markup-icon-btn",
|
|
4095
|
+
class: Q("markup-icon-btn", S && "is-open"),
|
|
4088
4096
|
title: "More options",
|
|
4089
|
-
onClick: () =>
|
|
4097
|
+
onClick: () => C((e) => !e),
|
|
4090
4098
|
children: /* @__PURE__ */ $(aa, { size: 16 })
|
|
4091
|
-
}),
|
|
4099
|
+
}), S ? /* @__PURE__ */ $("div", {
|
|
4092
4100
|
class: "markup-thread-menu-list",
|
|
4093
4101
|
children: [/* @__PURE__ */ $("button", {
|
|
4094
4102
|
type: "button",
|
|
4095
4103
|
class: "markup-thread-menu-item",
|
|
4096
4104
|
onClick: () => {
|
|
4097
4105
|
let t = new URL(e.url);
|
|
4098
|
-
t.hash = `markup-thread=${e._id}`, navigator.clipboard.writeText(t.toString()).catch(() => {}),
|
|
4106
|
+
t.hash = `markup-thread=${e._id}`, navigator.clipboard.writeText(t.toString()).catch(() => {}), C(!1);
|
|
4099
4107
|
},
|
|
4100
4108
|
children: "Copy link"
|
|
4101
|
-
}),
|
|
4109
|
+
}), a ? /* @__PURE__ */ $("button", {
|
|
4102
4110
|
type: "button",
|
|
4103
|
-
class: Q("markup-thread-menu-item",
|
|
4104
|
-
disabled:
|
|
4111
|
+
class: Q("markup-thread-menu-item", w && "is-danger"),
|
|
4112
|
+
disabled: o,
|
|
4105
4113
|
onClick: () => {
|
|
4106
|
-
|
|
4114
|
+
w ? (C(!1), g()) : T(!0);
|
|
4107
4115
|
},
|
|
4108
|
-
children:
|
|
4116
|
+
children: w ? "Confirm delete" : "Delete thread…"
|
|
4109
4117
|
}) : null]
|
|
4110
4118
|
}) : null]
|
|
4111
4119
|
}),
|
|
@@ -4113,25 +4121,25 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, canDe
|
|
|
4113
4121
|
type: "button",
|
|
4114
4122
|
class: "markup-icon-btn",
|
|
4115
4123
|
title: "Mark as resolved",
|
|
4116
|
-
disabled:
|
|
4117
|
-
onClick:
|
|
4124
|
+
disabled: o,
|
|
4125
|
+
onClick: h,
|
|
4118
4126
|
children: /* @__PURE__ */ $(oa, { size: 16 })
|
|
4119
4127
|
}) : null,
|
|
4120
4128
|
/* @__PURE__ */ $("button", {
|
|
4121
4129
|
type: "button",
|
|
4122
4130
|
class: "markup-icon-btn",
|
|
4123
4131
|
title: "Close thread",
|
|
4124
|
-
onClick:
|
|
4132
|
+
onClick: u,
|
|
4125
4133
|
children: /* @__PURE__ */ $(ia, { size: 16 })
|
|
4126
4134
|
})
|
|
4127
4135
|
]
|
|
4128
4136
|
})]
|
|
4129
4137
|
}),
|
|
4130
4138
|
/* @__PURE__ */ $("ol", {
|
|
4131
|
-
ref:
|
|
4139
|
+
ref: b,
|
|
4132
4140
|
class: "markup-comments",
|
|
4133
|
-
children:
|
|
4134
|
-
let i = !t.fromDashboard && n != null && t.authorClientId === n,
|
|
4141
|
+
children: F.map((t, r) => {
|
|
4142
|
+
let i = !t.fromDashboard && n != null && t.authorClientId === n, a = r === 0, s = i && !ue && !t.deleted, c = i && !ue && !t.deleted && !a, l = E === t._id, u = (s || c) && !l && !t.deleted, d = k === t._id, h = te === t._id;
|
|
4135
4143
|
return /* @__PURE__ */ $("li", {
|
|
4136
4144
|
class: Q("markup-comment", t.fromDashboard && "is-team"),
|
|
4137
4145
|
children: [
|
|
@@ -4154,56 +4162,56 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, canDe
|
|
|
4154
4162
|
}),
|
|
4155
4163
|
/* @__PURE__ */ $("div", {
|
|
4156
4164
|
class: "markup-thread-actions",
|
|
4157
|
-
children: [!
|
|
4165
|
+
children: [!ue && !l ? /* @__PURE__ */ $(wa, {
|
|
4158
4166
|
comment: t,
|
|
4159
4167
|
pickerOpen: P === t._id,
|
|
4160
|
-
pickerDirection:
|
|
4168
|
+
pickerDirection: re,
|
|
4161
4169
|
pickerRef: (e) => {
|
|
4162
|
-
P === t._id && (
|
|
4170
|
+
P === t._id && (ae.current = e);
|
|
4163
4171
|
},
|
|
4164
4172
|
onPickerClick: (e) => {
|
|
4165
4173
|
if (P === t._id) {
|
|
4166
|
-
|
|
4174
|
+
ne(null);
|
|
4167
4175
|
return;
|
|
4168
4176
|
}
|
|
4169
|
-
let n = e.currentTarget.getBoundingClientRect(), r =
|
|
4170
|
-
|
|
4177
|
+
let n = e.currentTarget.getBoundingClientRect(), r = b.current?.getBoundingClientRect();
|
|
4178
|
+
ie((r ? r.bottom - n.bottom : Infinity) < 44 ? "up" : "down"), ne(t._id);
|
|
4171
4179
|
},
|
|
4172
4180
|
onPickerSelect: (e) => {
|
|
4173
|
-
|
|
4181
|
+
ne(null), m(t._id, e);
|
|
4174
4182
|
}
|
|
4175
4183
|
}) : null, u ? /* @__PURE__ */ $("div", {
|
|
4176
|
-
class: Q("markup-thread-menu markup-comment-menu",
|
|
4184
|
+
class: Q("markup-thread-menu markup-comment-menu", d && "is-open", d && j === "up" && "is-up"),
|
|
4177
4185
|
ref: (e) => {
|
|
4178
|
-
|
|
4186
|
+
d && (y.current = e);
|
|
4179
4187
|
},
|
|
4180
4188
|
children: [/* @__PURE__ */ $("button", {
|
|
4181
4189
|
type: "button",
|
|
4182
|
-
class: Q("markup-icon-btn",
|
|
4190
|
+
class: Q("markup-icon-btn", d && "is-open"),
|
|
4183
4191
|
title: "More options",
|
|
4184
4192
|
onClick: (e) => {
|
|
4185
4193
|
if (k === t._id) {
|
|
4186
4194
|
A(null);
|
|
4187
4195
|
return;
|
|
4188
4196
|
}
|
|
4189
|
-
let n = e.currentTarget.getBoundingClientRect(), r =
|
|
4197
|
+
let n = e.currentTarget.getBoundingClientRect(), r = b.current?.getBoundingClientRect(), i = (+!!s + +!!c) * 32 + 8 + 6;
|
|
4190
4198
|
M((r ? r.bottom - n.bottom : Infinity) < i ? "up" : "down"), A(t._id);
|
|
4191
4199
|
},
|
|
4192
4200
|
children: /* @__PURE__ */ $(aa, { size: 16 })
|
|
4193
|
-
}),
|
|
4201
|
+
}), d ? /* @__PURE__ */ $("div", {
|
|
4194
4202
|
class: "markup-thread-menu-list",
|
|
4195
4203
|
children: [s ? /* @__PURE__ */ $("button", {
|
|
4196
4204
|
type: "button",
|
|
4197
4205
|
class: "markup-thread-menu-item",
|
|
4198
4206
|
onClick: () => {
|
|
4199
|
-
A(null),
|
|
4207
|
+
A(null), I(t._id, t.body);
|
|
4200
4208
|
},
|
|
4201
4209
|
children: "Edit"
|
|
4202
4210
|
}) : null, c ? /* @__PURE__ */ $("button", {
|
|
4203
4211
|
type: "button",
|
|
4204
4212
|
class: Q("markup-thread-menu-item", h && "is-danger"),
|
|
4205
4213
|
onClick: () => {
|
|
4206
|
-
h ? (A(null),
|
|
4214
|
+
h ? (A(null), p(t._id)) : N(t._id);
|
|
4207
4215
|
},
|
|
4208
4216
|
children: h ? "Confirm delete" : "Delete…"
|
|
4209
4217
|
}) : null]
|
|
@@ -4216,34 +4224,34 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, canDe
|
|
|
4216
4224
|
class: "markup-comment-edit-form",
|
|
4217
4225
|
onSubmit: async (e) => {
|
|
4218
4226
|
e.preventDefault();
|
|
4219
|
-
let n =
|
|
4227
|
+
let n = O.trim();
|
|
4220
4228
|
if (!n || n === t.body) {
|
|
4221
|
-
|
|
4229
|
+
L();
|
|
4222
4230
|
return;
|
|
4223
4231
|
}
|
|
4224
4232
|
try {
|
|
4225
|
-
await
|
|
4233
|
+
await f(t._id, n), L();
|
|
4226
4234
|
} catch {}
|
|
4227
4235
|
},
|
|
4228
4236
|
children: [/* @__PURE__ */ $("textarea", {
|
|
4229
4237
|
class: "markup-textarea",
|
|
4230
|
-
value:
|
|
4231
|
-
onInput: (e) =>
|
|
4238
|
+
value: O,
|
|
4239
|
+
onInput: (e) => ee(e.currentTarget.value),
|
|
4232
4240
|
rows: 3,
|
|
4233
4241
|
autoFocus: !0,
|
|
4234
|
-
disabled:
|
|
4242
|
+
disabled: o
|
|
4235
4243
|
}), /* @__PURE__ */ $("div", {
|
|
4236
4244
|
class: "markup-comment-edit-actions",
|
|
4237
4245
|
children: [/* @__PURE__ */ $("button", {
|
|
4238
4246
|
type: "button",
|
|
4239
4247
|
class: "markup-btn markup-btn-ghost",
|
|
4240
|
-
onClick:
|
|
4241
|
-
disabled:
|
|
4248
|
+
onClick: L,
|
|
4249
|
+
disabled: o,
|
|
4242
4250
|
children: "Cancel"
|
|
4243
4251
|
}), /* @__PURE__ */ $("button", {
|
|
4244
4252
|
type: "submit",
|
|
4245
4253
|
class: "markup-btn markup-btn-primary",
|
|
4246
|
-
disabled:
|
|
4254
|
+
disabled: o || O.trim().length === 0,
|
|
4247
4255
|
children: "Save"
|
|
4248
4256
|
})]
|
|
4249
4257
|
})]
|
|
@@ -4258,13 +4266,13 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, canDe
|
|
|
4258
4266
|
}),
|
|
4259
4267
|
!l && t.reactions.length > 0 ? /* @__PURE__ */ $(Ta, {
|
|
4260
4268
|
comment: t,
|
|
4261
|
-
isResolved:
|
|
4262
|
-
onToggle: (e) =>
|
|
4269
|
+
isResolved: ue,
|
|
4270
|
+
onToggle: (e) => m(t._id, e)
|
|
4263
4271
|
}) : null,
|
|
4264
4272
|
r === 0 && e.screenshotUrl ? /* @__PURE__ */ $("button", {
|
|
4265
4273
|
type: "button",
|
|
4266
4274
|
class: "markup-comment-screenshot",
|
|
4267
|
-
onClick: () =>
|
|
4275
|
+
onClick: () => x.current?.showModal(),
|
|
4268
4276
|
children: /* @__PURE__ */ $("img", {
|
|
4269
4277
|
src: e.screenshotUrl,
|
|
4270
4278
|
alt: "Screenshot"
|
|
@@ -4275,15 +4283,15 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, canDe
|
|
|
4275
4283
|
})
|
|
4276
4284
|
}),
|
|
4277
4285
|
e.screenshotUrl ? /* @__PURE__ */ $("dialog", {
|
|
4278
|
-
ref:
|
|
4286
|
+
ref: x,
|
|
4279
4287
|
class: "markup-lightbox",
|
|
4280
|
-
onClick: () =>
|
|
4288
|
+
onClick: () => x.current?.close(),
|
|
4281
4289
|
children: [/* @__PURE__ */ $("button", {
|
|
4282
4290
|
type: "button",
|
|
4283
4291
|
class: "markup-lightbox-close markup-icon-btn",
|
|
4284
4292
|
"aria-label": "Close screenshot",
|
|
4285
4293
|
onClick: (e) => {
|
|
4286
|
-
e.stopPropagation(),
|
|
4294
|
+
e.stopPropagation(), x.current?.close();
|
|
4287
4295
|
},
|
|
4288
4296
|
children: /* @__PURE__ */ $(ia, { size: 16 })
|
|
4289
4297
|
}), /* @__PURE__ */ $("img", {
|
|
@@ -4294,10 +4302,11 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, canDe
|
|
|
4294
4302
|
})]
|
|
4295
4303
|
}) : null,
|
|
4296
4304
|
t == null ? /* @__PURE__ */ $(ma, {
|
|
4297
|
-
pending:
|
|
4298
|
-
|
|
4299
|
-
|
|
4300
|
-
|
|
4305
|
+
pending: o,
|
|
4306
|
+
connecting: i,
|
|
4307
|
+
onSubmit: c,
|
|
4308
|
+
onCancel: u,
|
|
4309
|
+
onSignIn: l
|
|
4301
4310
|
}) : /* @__PURE__ */ $("div", {
|
|
4302
4311
|
class: "markup-popover-body",
|
|
4303
4312
|
children: [/* @__PURE__ */ $("p", {
|
|
@@ -4318,9 +4327,9 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, canDe
|
|
|
4318
4327
|
placeholder: "Write a reply…",
|
|
4319
4328
|
submitLabel: "Reply",
|
|
4320
4329
|
initialFocus: !1,
|
|
4321
|
-
pending:
|
|
4322
|
-
error:
|
|
4323
|
-
onSubmit:
|
|
4330
|
+
pending: o,
|
|
4331
|
+
error: s,
|
|
4332
|
+
onSubmit: d
|
|
4324
4333
|
})]
|
|
4325
4334
|
})
|
|
4326
4335
|
]
|
|
@@ -4421,9 +4430,9 @@ function Aa(e) {
|
|
|
4421
4430
|
};
|
|
4422
4431
|
}
|
|
4423
4432
|
function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
|
|
4424
|
-
let [r, i] =
|
|
4433
|
+
let [r, i] = z(() => window.location.pathname), [a, o] = z([]), [s, c] = z(null), [l, u] = z(n), d = V(null);
|
|
4425
4434
|
d.current = s;
|
|
4426
|
-
let f =
|
|
4435
|
+
let [f, p] = z(0), m = Se(() => Or({
|
|
4427
4436
|
apiUrl: e,
|
|
4428
4437
|
apiKey: t,
|
|
4429
4438
|
getToken: () => {
|
|
@@ -4439,17 +4448,16 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
|
|
|
4439
4448
|
},
|
|
4440
4449
|
onUnauthorized: () => {
|
|
4441
4450
|
let e = d.current;
|
|
4442
|
-
if (!e) return;
|
|
4451
|
+
if (!e || !e.token) return;
|
|
4443
4452
|
let t = {
|
|
4444
4453
|
clientId: e.clientId,
|
|
4445
4454
|
name: e.name,
|
|
4446
|
-
email: e.email
|
|
4447
|
-
anonToken: e.anonToken
|
|
4455
|
+
email: e.email
|
|
4448
4456
|
};
|
|
4449
|
-
d.current = t, c(t), Mr(t);
|
|
4457
|
+
d.current = t, c(t), Mr(t), p((e) => e + 1);
|
|
4450
4458
|
}
|
|
4451
|
-
}), [e, t]), [
|
|
4452
|
-
|
|
4459
|
+
}), [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;
|
|
4460
|
+
B(() => {
|
|
4453
4461
|
let e = jr();
|
|
4454
4462
|
if (e?.anonToken || e?.isVerified) {
|
|
4455
4463
|
c(e);
|
|
@@ -4457,12 +4465,13 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
|
|
|
4457
4465
|
}
|
|
4458
4466
|
let t = !1, n = null, r = 1e3;
|
|
4459
4467
|
function i() {
|
|
4460
|
-
|
|
4468
|
+
m.mintAnonIdentity().then(({ clientId: n, token: r }) => {
|
|
4461
4469
|
if (t) return;
|
|
4462
4470
|
let i = {
|
|
4463
|
-
...e ?? {},
|
|
4464
4471
|
clientId: n,
|
|
4465
|
-
anonToken: r
|
|
4472
|
+
anonToken: r,
|
|
4473
|
+
name: e?.name,
|
|
4474
|
+
email: e?.email
|
|
4466
4475
|
};
|
|
4467
4476
|
Mr(i), c(i);
|
|
4468
4477
|
}).catch(() => {
|
|
@@ -4472,15 +4481,15 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
|
|
|
4472
4481
|
return i(), () => {
|
|
4473
4482
|
t = !0, n && clearTimeout(n);
|
|
4474
4483
|
};
|
|
4475
|
-
}, [f]);
|
|
4476
|
-
let [
|
|
4477
|
-
|
|
4484
|
+
}, [m, f]);
|
|
4485
|
+
let [k, A] = z(null);
|
|
4486
|
+
B(() => {
|
|
4478
4487
|
let e = !1, t = null;
|
|
4479
4488
|
async function n() {
|
|
4480
4489
|
try {
|
|
4481
|
-
let r = await
|
|
4490
|
+
let r = await m.getSubscriptionToken();
|
|
4482
4491
|
if (e) return;
|
|
4483
|
-
|
|
4492
|
+
A(r.token);
|
|
4484
4493
|
let i = Math.max(6e4, r.expiresAt - Date.now() - 30 * 6e4);
|
|
4485
4494
|
t = setTimeout(n, i);
|
|
4486
4495
|
} catch {
|
|
@@ -4491,41 +4500,41 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
|
|
|
4491
4500
|
return n(), () => {
|
|
4492
4501
|
e = !0, t && clearTimeout(t);
|
|
4493
4502
|
};
|
|
4494
|
-
}, [
|
|
4495
|
-
let
|
|
4496
|
-
|
|
4503
|
+
}, [m]);
|
|
4504
|
+
let j = V(null);
|
|
4505
|
+
B(() => {
|
|
4497
4506
|
let t = new rr(e.replace(/\.convex\.site(\/.*)?$/, ".convex.cloud"));
|
|
4498
|
-
return
|
|
4499
|
-
t.close(),
|
|
4507
|
+
return j.current = t, () => {
|
|
4508
|
+
t.close(), j.current = null;
|
|
4500
4509
|
};
|
|
4501
4510
|
}, [e]);
|
|
4502
|
-
let
|
|
4503
|
-
|
|
4504
|
-
let e =
|
|
4505
|
-
if (!(!e || !
|
|
4506
|
-
subscriptionToken:
|
|
4511
|
+
let M = V(!1);
|
|
4512
|
+
B(() => {
|
|
4513
|
+
let e = j.current;
|
|
4514
|
+
if (!(!e || !k)) return M.current = !1, b(null), e.onUpdate(qt("widget/queries:subscribeThreadsForRoute"), {
|
|
4515
|
+
subscriptionToken: k,
|
|
4507
4516
|
route: r,
|
|
4508
4517
|
viewerClientId: s?.clientId ?? void 0
|
|
4509
4518
|
}, (e) => {
|
|
4510
4519
|
e !== void 0 && o(e);
|
|
4511
4520
|
});
|
|
4512
4521
|
}, [
|
|
4513
|
-
|
|
4522
|
+
k,
|
|
4514
4523
|
r,
|
|
4515
4524
|
s?.clientId
|
|
4516
|
-
]),
|
|
4517
|
-
if (
|
|
4525
|
+
]), B(() => {
|
|
4526
|
+
if (M.current) return;
|
|
4518
4527
|
let e = window.location.hash.match(/^#markup-thread=(.+)$/);
|
|
4519
4528
|
if (!e) {
|
|
4520
|
-
|
|
4529
|
+
M.current = !0;
|
|
4521
4530
|
return;
|
|
4522
4531
|
}
|
|
4523
4532
|
let t = decodeURIComponent(e[1] ?? "");
|
|
4524
|
-
a.find((e) => e._id === t) && (
|
|
4533
|
+
a.find((e) => e._id === t) && (M.current = !0, g({
|
|
4525
4534
|
kind: "thread",
|
|
4526
4535
|
threadId: t
|
|
4527
4536
|
}), history.replaceState(null, "", window.location.pathname + window.location.search));
|
|
4528
|
-
}, [a]),
|
|
4537
|
+
}, [a]), B(() => {
|
|
4529
4538
|
function e() {
|
|
4530
4539
|
i(window.location.pathname);
|
|
4531
4540
|
}
|
|
@@ -4538,22 +4547,22 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
|
|
|
4538
4547
|
}, () => {
|
|
4539
4548
|
window.removeEventListener("popstate", e), history.pushState = t, history.replaceState = n;
|
|
4540
4549
|
};
|
|
4541
|
-
}, []),
|
|
4550
|
+
}, []), B(() => {
|
|
4542
4551
|
function e(e) {
|
|
4543
|
-
e.key === "." && (e.metaKey || e.ctrlKey) && (e.altKey || e.shiftKey || (e.preventDefault(),
|
|
4552
|
+
e.key === "." && (e.metaKey || e.ctrlKey) && (e.altKey || e.shiftKey || (e.preventDefault(), S((e) => !e)));
|
|
4544
4553
|
}
|
|
4545
4554
|
return window.addEventListener("keydown", e), () => window.removeEventListener("keydown", e);
|
|
4546
|
-
}, []),
|
|
4547
|
-
if (!
|
|
4548
|
-
if (!
|
|
4549
|
-
|
|
4555
|
+
}, []), B(() => {
|
|
4556
|
+
if (!C) return;
|
|
4557
|
+
if (!x) {
|
|
4558
|
+
w(!1);
|
|
4550
4559
|
return;
|
|
4551
4560
|
}
|
|
4552
|
-
let e = window.setTimeout(() =>
|
|
4561
|
+
let e = window.setTimeout(() => w(!1), 5e3);
|
|
4553
4562
|
return () => window.clearTimeout(e);
|
|
4554
|
-
}, [
|
|
4563
|
+
}, [C, x]), B(() => {
|
|
4555
4564
|
function e() {
|
|
4556
|
-
|
|
4565
|
+
T((e) => e + 1);
|
|
4557
4566
|
}
|
|
4558
4567
|
window.addEventListener("scroll", e, { passive: !0 }), window.addEventListener("resize", e);
|
|
4559
4568
|
let t = new ResizeObserver(e);
|
|
@@ -4561,29 +4570,31 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
|
|
|
4561
4570
|
window.removeEventListener("scroll", e), window.removeEventListener("resize", e), t.disconnect();
|
|
4562
4571
|
};
|
|
4563
4572
|
}, []);
|
|
4564
|
-
let
|
|
4565
|
-
|
|
4566
|
-
}, []),
|
|
4567
|
-
|
|
4568
|
-
}, []),
|
|
4569
|
-
|
|
4573
|
+
let te = H(() => {
|
|
4574
|
+
b(null), g({ kind: "placing" });
|
|
4575
|
+
}, []), N = H(() => {
|
|
4576
|
+
g({ kind: "idle" }), b(null);
|
|
4577
|
+
}, []), P = V(0), ne = H((e, t, n) => {
|
|
4578
|
+
let r = t + window.scrollX, i = n + window.scrollY, a = ++P.current;
|
|
4579
|
+
g({
|
|
4570
4580
|
kind: "composing-new",
|
|
4571
4581
|
coords: e,
|
|
4572
|
-
pageX:
|
|
4573
|
-
pageY:
|
|
4582
|
+
pageX: r,
|
|
4583
|
+
pageY: i,
|
|
4574
4584
|
screenshot: null,
|
|
4575
|
-
screenshotCapturing: !0
|
|
4576
|
-
|
|
4585
|
+
screenshotCapturing: !0,
|
|
4586
|
+
captureToken: a
|
|
4587
|
+
}), $i(E.current != null && E.current.getRootNode() instanceof ShadowRoot ? E.current.getRootNode().host : null, {
|
|
4577
4588
|
x: t,
|
|
4578
4589
|
y: n
|
|
4579
4590
|
}).then((e) => {
|
|
4580
|
-
|
|
4591
|
+
g((t) => t.kind !== "composing-new" || t.captureToken !== a ? t : {
|
|
4581
4592
|
...t,
|
|
4582
4593
|
screenshot: e,
|
|
4583
4594
|
screenshotCapturing: !1
|
|
4584
|
-
}
|
|
4595
|
+
});
|
|
4585
4596
|
});
|
|
4586
|
-
}, []),
|
|
4597
|
+
}, []), re = H((e, t) => {
|
|
4587
4598
|
if (!s) return;
|
|
4588
4599
|
let n = {
|
|
4589
4600
|
...s,
|
|
@@ -4591,165 +4602,171 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
|
|
|
4591
4602
|
email: t
|
|
4592
4603
|
};
|
|
4593
4604
|
Mr(n), c(n);
|
|
4594
|
-
}, [s]),
|
|
4595
|
-
|
|
4605
|
+
}, [s]), ie = H(async () => {
|
|
4606
|
+
b(null);
|
|
4596
4607
|
try {
|
|
4597
4608
|
let n = Aa(await Nr(e, t));
|
|
4598
4609
|
Mr(n), c(n);
|
|
4599
4610
|
} catch (e) {
|
|
4600
|
-
|
|
4611
|
+
b(e instanceof Error ? e.message : "Sign-in failed");
|
|
4601
4612
|
}
|
|
4602
|
-
}, [e, t]),
|
|
4603
|
-
if (!(
|
|
4604
|
-
|
|
4613
|
+
}, [e, t]), ae = H(async (e, t) => {
|
|
4614
|
+
if (!(h.kind !== "composing-new" || !s?.name)) {
|
|
4615
|
+
v(!0), b(null);
|
|
4605
4616
|
try {
|
|
4606
4617
|
let n;
|
|
4607
|
-
if (t &&
|
|
4608
|
-
let { uploadUrl: e } = await
|
|
4618
|
+
if (t && h.screenshot) {
|
|
4619
|
+
let { uploadUrl: e } = await m.getScreenshotUploadUrl(), t = await fetch(e, {
|
|
4609
4620
|
method: "POST",
|
|
4610
|
-
headers: { "Content-Type":
|
|
4611
|
-
body:
|
|
4621
|
+
headers: { "Content-Type": h.screenshot.type || "image/png" },
|
|
4622
|
+
body: h.screenshot
|
|
4612
4623
|
});
|
|
4613
4624
|
if (t.ok) {
|
|
4614
4625
|
let { storageId: e } = await t.json();
|
|
4615
4626
|
n = e;
|
|
4616
4627
|
}
|
|
4617
4628
|
}
|
|
4618
|
-
let i = await
|
|
4629
|
+
let i = await m.createThread({
|
|
4619
4630
|
url: window.location.href,
|
|
4620
4631
|
route: r,
|
|
4621
|
-
anchorSelector:
|
|
4622
|
-
anchorX:
|
|
4623
|
-
anchorY:
|
|
4624
|
-
anchorOffsetX:
|
|
4625
|
-
anchorOffsetY:
|
|
4626
|
-
viewportW:
|
|
4627
|
-
viewportY:
|
|
4632
|
+
anchorSelector: h.coords.anchorSelector,
|
|
4633
|
+
anchorX: h.coords.anchorX,
|
|
4634
|
+
anchorY: h.coords.anchorY,
|
|
4635
|
+
anchorOffsetX: h.coords.anchorOffsetX,
|
|
4636
|
+
anchorOffsetY: h.coords.anchorOffsetY,
|
|
4637
|
+
viewportW: h.coords.viewportW,
|
|
4638
|
+
viewportY: h.coords.viewportY,
|
|
4628
4639
|
userAgent: navigator.userAgent,
|
|
4629
4640
|
authorName: s.name,
|
|
4630
4641
|
authorEmail: s.email,
|
|
4631
4642
|
body: e,
|
|
4632
4643
|
screenshotStorageId: n
|
|
4633
4644
|
});
|
|
4634
|
-
o((e) => [...e, i.thread]),
|
|
4645
|
+
o((e) => [...e, i.thread]), g({
|
|
4635
4646
|
kind: "thread",
|
|
4636
4647
|
threadId: i.thread._id
|
|
4637
4648
|
});
|
|
4638
4649
|
} catch (e) {
|
|
4639
|
-
|
|
4650
|
+
b(e instanceof Error ? e.message : "Failed to post");
|
|
4640
4651
|
} finally {
|
|
4641
|
-
|
|
4652
|
+
v(!1);
|
|
4642
4653
|
}
|
|
4643
4654
|
}
|
|
4644
4655
|
}, [
|
|
4645
|
-
|
|
4656
|
+
m,
|
|
4646
4657
|
s,
|
|
4647
|
-
|
|
4658
|
+
h,
|
|
4648
4659
|
r
|
|
4649
|
-
]),
|
|
4650
|
-
if (
|
|
4651
|
-
let e =
|
|
4652
|
-
|
|
4660
|
+
]), oe = H(async () => {
|
|
4661
|
+
if (h.kind !== "thread") return;
|
|
4662
|
+
let e = h.threadId;
|
|
4663
|
+
v(!0), b(null);
|
|
4653
4664
|
try {
|
|
4654
|
-
await
|
|
4665
|
+
await m.deleteThread(e), o((t) => t.filter((t) => t._id !== e)), g({ kind: "idle" });
|
|
4655
4666
|
} catch (e) {
|
|
4656
|
-
|
|
4667
|
+
b(e instanceof Error ? e.message : "Failed to delete");
|
|
4657
4668
|
} finally {
|
|
4658
|
-
|
|
4669
|
+
v(!1);
|
|
4659
4670
|
}
|
|
4660
|
-
}, [
|
|
4661
|
-
if (
|
|
4662
|
-
let e =
|
|
4663
|
-
|
|
4671
|
+
}, [m, h]), se = H(async () => {
|
|
4672
|
+
if (h.kind !== "thread") return;
|
|
4673
|
+
let e = h.threadId;
|
|
4674
|
+
v(!0), b(null);
|
|
4664
4675
|
try {
|
|
4665
|
-
await
|
|
4676
|
+
await m.resolveThread(e, s?.clientId), o((t) => t.filter((t) => t._id !== e)), g({ kind: "idle" });
|
|
4666
4677
|
} catch (e) {
|
|
4667
|
-
|
|
4678
|
+
b(e instanceof Error ? e.message : "Failed to resolve");
|
|
4668
4679
|
} finally {
|
|
4669
|
-
|
|
4680
|
+
v(!1);
|
|
4670
4681
|
}
|
|
4671
4682
|
}, [
|
|
4672
|
-
|
|
4673
|
-
|
|
4683
|
+
m,
|
|
4684
|
+
h,
|
|
4674
4685
|
s?.clientId
|
|
4675
|
-
]),
|
|
4676
|
-
if (
|
|
4677
|
-
let t =
|
|
4678
|
-
|
|
4686
|
+
]), ce = H(async (e) => {
|
|
4687
|
+
if (h.kind !== "thread" || !s?.name) return;
|
|
4688
|
+
let t = h.threadId;
|
|
4689
|
+
v(!0), b(null);
|
|
4679
4690
|
try {
|
|
4680
|
-
let n = await
|
|
4691
|
+
let n = await m.addComment(t, {
|
|
4681
4692
|
body: e,
|
|
4682
4693
|
authorName: s.name,
|
|
4683
4694
|
authorEmail: s.email
|
|
4684
4695
|
});
|
|
4685
4696
|
o((e) => e.map((e) => e._id === t ? n.thread : e));
|
|
4686
4697
|
} catch (e) {
|
|
4687
|
-
|
|
4698
|
+
b(e instanceof Error ? e.message : "Failed to reply");
|
|
4688
4699
|
} finally {
|
|
4689
|
-
|
|
4700
|
+
v(!1);
|
|
4690
4701
|
}
|
|
4691
4702
|
}, [
|
|
4692
|
-
|
|
4703
|
+
m,
|
|
4693
4704
|
s,
|
|
4694
|
-
|
|
4695
|
-
]),
|
|
4696
|
-
if (
|
|
4697
|
-
let n =
|
|
4698
|
-
|
|
4705
|
+
h
|
|
4706
|
+
]), le = H(async (e, t) => {
|
|
4707
|
+
if (h.kind !== "thread" || !s) return;
|
|
4708
|
+
let n = h.threadId;
|
|
4709
|
+
v(!0), b(null);
|
|
4699
4710
|
try {
|
|
4700
|
-
let r = await
|
|
4711
|
+
let r = await m.editComment(n, e, { body: t });
|
|
4701
4712
|
o((e) => e.map((e) => e._id === n ? r.thread : e));
|
|
4702
4713
|
} catch (e) {
|
|
4703
|
-
throw
|
|
4714
|
+
throw b(e instanceof Error ? e.message : "Failed to edit"), e;
|
|
4704
4715
|
} finally {
|
|
4705
|
-
|
|
4716
|
+
v(!1);
|
|
4706
4717
|
}
|
|
4707
4718
|
}, [
|
|
4708
|
-
|
|
4719
|
+
m,
|
|
4709
4720
|
s,
|
|
4710
|
-
|
|
4711
|
-
]),
|
|
4712
|
-
if (
|
|
4713
|
-
let t =
|
|
4714
|
-
|
|
4721
|
+
h
|
|
4722
|
+
]), ue = H(async (e) => {
|
|
4723
|
+
if (h.kind !== "thread" || !s) return;
|
|
4724
|
+
let t = h.threadId;
|
|
4725
|
+
v(!0), b(null);
|
|
4715
4726
|
try {
|
|
4716
|
-
let n = await
|
|
4727
|
+
let n = await m.deleteComment(t, e);
|
|
4717
4728
|
o((e) => e.map((e) => e._id === t ? n.thread : e));
|
|
4718
4729
|
} catch (e) {
|
|
4719
|
-
|
|
4730
|
+
b(e instanceof Error ? e.message : "Failed to delete");
|
|
4720
4731
|
} finally {
|
|
4721
|
-
|
|
4732
|
+
v(!1);
|
|
4722
4733
|
}
|
|
4723
4734
|
}, [
|
|
4724
|
-
|
|
4735
|
+
m,
|
|
4725
4736
|
s,
|
|
4726
|
-
|
|
4727
|
-
]),
|
|
4728
|
-
if (
|
|
4729
|
-
let n =
|
|
4730
|
-
|
|
4737
|
+
h
|
|
4738
|
+
]), F = H(async (e, t) => {
|
|
4739
|
+
if (h.kind !== "thread" || !s) return;
|
|
4740
|
+
let n = h.threadId;
|
|
4741
|
+
b(null);
|
|
4731
4742
|
try {
|
|
4732
|
-
let r = await
|
|
4743
|
+
let r = await m.toggleReaction(e, {
|
|
4733
4744
|
emoji: t,
|
|
4734
4745
|
authorName: s.name
|
|
4735
4746
|
});
|
|
4736
4747
|
o((e) => e.map((e) => e._id === n ? r.thread : e));
|
|
4737
4748
|
} catch (e) {
|
|
4738
|
-
|
|
4749
|
+
b(e instanceof Error ? e.message : "Failed to react");
|
|
4739
4750
|
}
|
|
4740
4751
|
}, [
|
|
4741
|
-
|
|
4752
|
+
m,
|
|
4742
4753
|
s,
|
|
4743
|
-
|
|
4744
|
-
]),
|
|
4745
|
-
return
|
|
4754
|
+
h
|
|
4755
|
+
]), I = h.kind === "thread" ? a.find((e) => e._id === h.threadId) ?? null : null, L = O || s?.clientId != null && s.clientId === I?.authorClientId;
|
|
4756
|
+
return B(() => {
|
|
4757
|
+
h.kind === "thread" && I == null && N();
|
|
4758
|
+
}, [
|
|
4759
|
+
h,
|
|
4760
|
+
I,
|
|
4761
|
+
N
|
|
4762
|
+
]), /* @__PURE__ */ $("div", {
|
|
4746
4763
|
class: "markup-root",
|
|
4747
|
-
ref:
|
|
4764
|
+
ref: E,
|
|
4748
4765
|
children: [
|
|
4749
|
-
|
|
4766
|
+
h.kind === "placing" ? null : /* @__PURE__ */ $("div", {
|
|
4750
4767
|
class: "markup-pins-layer",
|
|
4751
|
-
children: [
|
|
4752
|
-
let t =
|
|
4768
|
+
children: [x ? null : a.map((e) => {
|
|
4769
|
+
let t = h.kind === "thread" && h.threadId === e._id, n = Tr({
|
|
4753
4770
|
anchorX: e.anchorX,
|
|
4754
4771
|
anchorY: e.anchorY,
|
|
4755
4772
|
anchorSelector: e.anchorSelector,
|
|
@@ -4761,62 +4778,64 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
|
|
|
4761
4778
|
pageY: n.pageY,
|
|
4762
4779
|
count: r,
|
|
4763
4780
|
active: t,
|
|
4764
|
-
onClick: () =>
|
|
4781
|
+
onClick: () => g({
|
|
4765
4782
|
kind: "thread",
|
|
4766
4783
|
threadId: e._id
|
|
4767
4784
|
})
|
|
4768
4785
|
}, e._id);
|
|
4769
|
-
}),
|
|
4770
|
-
pageX:
|
|
4771
|
-
pageY:
|
|
4786
|
+
}), h.kind === "composing-new" ? /* @__PURE__ */ $(ba, {
|
|
4787
|
+
pageX: h.pageX,
|
|
4788
|
+
pageY: h.pageY
|
|
4772
4789
|
}) : null]
|
|
4773
4790
|
}),
|
|
4774
|
-
|
|
4775
|
-
onPlace:
|
|
4776
|
-
onCancel:
|
|
4791
|
+
h.kind === "placing" ? /* @__PURE__ */ $(xa, {
|
|
4792
|
+
onPlace: ne,
|
|
4793
|
+
onCancel: N
|
|
4777
4794
|
}) : null,
|
|
4778
|
-
|
|
4779
|
-
thread:
|
|
4780
|
-
authorName:
|
|
4795
|
+
h.kind === "thread" && I && !x ? /* @__PURE__ */ $(Ca, {
|
|
4796
|
+
thread: I,
|
|
4797
|
+
authorName: D,
|
|
4781
4798
|
currentClientId: s?.clientId ?? null,
|
|
4782
|
-
isVerified:
|
|
4783
|
-
|
|
4784
|
-
|
|
4785
|
-
|
|
4786
|
-
|
|
4787
|
-
|
|
4788
|
-
|
|
4789
|
-
|
|
4790
|
-
|
|
4791
|
-
|
|
4792
|
-
|
|
4793
|
-
|
|
4794
|
-
|
|
4795
|
-
|
|
4796
|
-
|
|
4797
|
-
|
|
4798
|
-
|
|
4799
|
-
|
|
4800
|
-
|
|
4801
|
-
|
|
4802
|
-
|
|
4803
|
-
|
|
4804
|
-
|
|
4805
|
-
|
|
4806
|
-
|
|
4807
|
-
|
|
4808
|
-
|
|
4799
|
+
isVerified: O,
|
|
4800
|
+
identityResolving: ee,
|
|
4801
|
+
canDelete: L,
|
|
4802
|
+
pending: _,
|
|
4803
|
+
error: y,
|
|
4804
|
+
onAuthor: re,
|
|
4805
|
+
onSignIn: ie,
|
|
4806
|
+
onClose: N,
|
|
4807
|
+
onReply: ce,
|
|
4808
|
+
onEditComment: le,
|
|
4809
|
+
onDeleteComment: ue,
|
|
4810
|
+
onToggleReaction: F,
|
|
4811
|
+
onDelete: oe,
|
|
4812
|
+
onResolve: se
|
|
4813
|
+
}, I._id) : null,
|
|
4814
|
+
h.kind === "composing-new" ? /* @__PURE__ */ $(_a, {
|
|
4815
|
+
pageX: h.pageX,
|
|
4816
|
+
pageY: h.pageY,
|
|
4817
|
+
authorName: D,
|
|
4818
|
+
isVerified: O,
|
|
4819
|
+
identityResolving: ee,
|
|
4820
|
+
pending: _,
|
|
4821
|
+
error: y,
|
|
4822
|
+
screenshot: h.screenshot,
|
|
4823
|
+
screenshotCapturing: h.screenshotCapturing,
|
|
4824
|
+
onAuthor: re,
|
|
4825
|
+
onSignIn: ie,
|
|
4826
|
+
onSubmit: ae,
|
|
4827
|
+
onClose: N
|
|
4809
4828
|
}) : null,
|
|
4810
|
-
!
|
|
4811
|
-
active:
|
|
4812
|
-
onToggle: () =>
|
|
4829
|
+
!x || h.kind === "placing" || h.kind === "composing-new" ? /* @__PURE__ */ $(ua, {
|
|
4830
|
+
active: h.kind === "placing",
|
|
4831
|
+
onToggle: () => h.kind === "placing" ? N() : te(),
|
|
4813
4832
|
onHide: () => {
|
|
4814
|
-
|
|
4833
|
+
S(!0), w(!0);
|
|
4815
4834
|
},
|
|
4816
4835
|
position: l,
|
|
4817
4836
|
onPositionChange: u
|
|
4818
4837
|
}) : null,
|
|
4819
|
-
|
|
4838
|
+
x && C ? /* @__PURE__ */ $(Ma, { position: l }) : null
|
|
4820
4839
|
]
|
|
4821
4840
|
});
|
|
4822
4841
|
}
|
|
@@ -4847,11 +4866,11 @@ function Na(e, t) {
|
|
|
4847
4866
|
let n = t.theme ?? "auto";
|
|
4848
4867
|
n !== "auto" && (e.dataset.theme = n);
|
|
4849
4868
|
let r = e.attachShadow({ mode: "open" }), i = document.createElement("style");
|
|
4850
|
-
i.textContent =
|
|
4869
|
+
i.textContent = ue, r.appendChild(i);
|
|
4851
4870
|
let a = document.createElement("div");
|
|
4852
4871
|
a.className = "markup-shadow-root", r.appendChild(a);
|
|
4853
4872
|
let { theme: o, ...s } = t;
|
|
4854
|
-
return
|
|
4873
|
+
return le(/* @__PURE__ */ $(ja, { ...s }), a), () => le(null, a);
|
|
4855
4874
|
}
|
|
4856
4875
|
//#endregion
|
|
4857
4876
|
//#region src/widget.ts
|