@pixelmatters/markup 1.0.2 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -15
- package/dist/react.js +570 -429
- package/dist/widget.js +1028 -887
- 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), F(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, ne(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 k(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 = A(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 = F(e, p, f, i, a, o, s, c, l, u), g = p.__e, p.ref && f.ref != p.ref && (f.ref && ae(f.ref, null, p), u.push(p.ref, p.__c || g, p)), _ == null && g != null && (_ = g), (y = !!(4 & p.__u)) || f.__k === p.__k ? (c = j(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 A(e, t, n, r, i) {
|
|
72
72
|
var a, o, s, c, l, u = n.length, d = u, f = 0;
|
|
73
|
-
for (e.__k = Array(i), a = 0; a < i; a++) (o = t[a]) != null && typeof o != "boolean" && typeof o != "function" ? (typeof o == "string" || typeof o == "number" || typeof o == "bigint" || o.constructor == String ? o = e.__k[a] = x(null, o, null, null, null) : _(o) ? o = e.__k[a] = x(S, { children: o }, null, null, null) : o.constructor === void 0 && o.__b > 0 ? o = e.__k[a] = x(o.type, o.props, o.key, o.ref ? o.ref : null, o.__v) : e.__k[a] = o, c = a + f, o.__ = e, o.__b = e.__b + 1, s = null, (l = o.__i =
|
|
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 = M(o, n, c, d)) != -1 && (d--, (s = n[l]) && (s.__u |= 2)), s == null || s.__v == null ? (l == -1 && (i > u ? f-- : i < u && f++), typeof o.type != "function" && (o.__u |= 4)) : l != c && (l == c - 1 ? f-- : l == c + 1 ? f++ : (l > c ? f-- : f++, o.__u |= 4))) : e.__k[a] = null;
|
|
74
|
+
if (d) for (a = 0; a < u; a++) (s = n[a]) != null && !(2 & s.__u) && (s.__e == r && (r = w(s)), oe(s, s));
|
|
75
75
|
return r;
|
|
76
76
|
}
|
|
77
|
-
function
|
|
77
|
+
function j(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 = j(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 A(e, t, n, r) {
|
|
|
86
86
|
while (t != null && t.nodeType == 8);
|
|
87
87
|
return t;
|
|
88
88
|
}
|
|
89
|
-
function
|
|
89
|
+
function M(e, t, n, r) {
|
|
90
90
|
var i, a, o, s = e.key, c = e.type, l = t[n], u = l != null && (2 & l.__u) == 0;
|
|
91
91
|
if (l === null && s == null || u && s == l.key && c == l.type) return n;
|
|
92
92
|
if (r > +!!u) {
|
|
@@ -94,15 +94,15 @@ function te(e, t, n, r) {
|
|
|
94
94
|
}
|
|
95
95
|
return -1;
|
|
96
96
|
}
|
|
97
|
-
function
|
|
97
|
+
function N(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 ee(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 || N(e.style, t, "");
|
|
105
|
+
if (n) for (t in n) r && n[t] == r[t] || N(e.style, t, n[t]);
|
|
106
106
|
}
|
|
107
107
|
else if (t[0] == "o" && t[1] == "n") a = t != (t = t.replace(u, "$1")), o = t.toLowerCase(), t = o in e || t == "onFocusOut" || t == "onFocusIn" ? o.slice(2) : t.slice(2), e.l ||= {}, e.l[t + a] = n, n ? r ? n[l] = r[l] : (n[l] = d, e.addEventListener(t, a ? p : f, a)) : e.removeEventListener(t, a ? p : f, a);
|
|
108
108
|
else {
|
|
@@ -114,7 +114,7 @@ function ne(e, t, n, r, i) {
|
|
|
114
114
|
typeof n == "function" || (n == null || !1 === n && t[4] != "-" ? e.removeAttribute(t) : e.setAttribute(t, t == "popover" && n == 1 ? "" : n));
|
|
115
115
|
}
|
|
116
116
|
}
|
|
117
|
-
function
|
|
117
|
+
function P(e) {
|
|
118
118
|
return function(n) {
|
|
119
119
|
if (this.l) {
|
|
120
120
|
var r = this.l[n.type + e];
|
|
@@ -124,14 +124,14 @@ function M(e) {
|
|
|
124
124
|
}
|
|
125
125
|
};
|
|
126
126
|
}
|
|
127
|
-
function
|
|
128
|
-
var d, f, p, m, g, b, x, w, T, E, D, O,
|
|
127
|
+
function F(e, n, r, i, a, o, s, c, l, u) {
|
|
128
|
+
var d, f, p, m, g, b, x, w, T, E, D, O, A, j, M, N = n.type;
|
|
129
129
|
if (n.constructor !== void 0) return null;
|
|
130
130
|
128 & r.__u && (l = !!(32 & r.__u), o = [c = n.__e = r.__e]), (d = t.__b) && d(n);
|
|
131
|
-
n: if (typeof
|
|
132
|
-
if (w = n.props, T =
|
|
131
|
+
n: if (typeof N == "function") try {
|
|
132
|
+
if (w = n.props, T = N.prototype && N.prototype.render, E = (d = N.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 N(w, D) : (n.__c = f = new C(w, D), f.constructor = N, f.render = se), E && E.sub(f), f.state ||= {}, f.__n = i, p = f.__d = !0, f.__h = [], f._sb = []), T && f.__s == null && (f.__s = f.state), T && N.getDerivedStateFromProps != null && (f.__s == f.state && (f.__s = v({}, f.__s)), v(f.__s, N.getDerivedStateFromProps(w, f.__s))), m = f.props, g = f.state, f.__v = n, p) T && N.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 && N.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 N(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, A = 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 && ++A < 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)), j = d != null && d.type === S && d.key == null ? re(d.props.children) : d, c = k(e, _(j) ? j : [j], 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 (M = o.length; M--;) y(o[M]);
|
|
155
|
+
te(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 || te(n);
|
|
158
158
|
t.__e(e, n, r);
|
|
159
159
|
}
|
|
160
|
-
else o == null && n.__v == r.__v ? (n.__k = r.__k, n.__e = r.__e) : c = n.__e =
|
|
160
|
+
else o == null && n.__v == r.__v ? (n.__k = r.__k, n.__e = r.__e) : c = n.__e = ie(r.__e, n, r, i, a, o, s, l, u);
|
|
161
161
|
return (d = t.diffed) && d(n), 128 & n.__u ? void 0 : c;
|
|
162
162
|
}
|
|
163
|
-
function
|
|
164
|
-
e && (e.__c && (e.__c.__e = !0), e.__k && e.__k.some(
|
|
163
|
+
function te(e) {
|
|
164
|
+
e && (e.__c && (e.__c.__e = !0), e.__k && e.__k.some(te));
|
|
165
165
|
}
|
|
166
|
-
function
|
|
167
|
-
for (var i = 0; i < r.length; i++)
|
|
166
|
+
function ne(e, n, r) {
|
|
167
|
+
for (var i = 0; i < r.length; i++) ae(r[i], r[++i], r[++i]);
|
|
168
168
|
t.__c && t.__c(n, e), e.some(function(n) {
|
|
169
169
|
try {
|
|
170
170
|
e = n.__h, n.__h = [], e.some(function(e) {
|
|
@@ -175,10 +175,10 @@ function ie(e, n, r) {
|
|
|
175
175
|
}
|
|
176
176
|
});
|
|
177
177
|
}
|
|
178
|
-
function
|
|
179
|
-
return typeof e != "object" || !e || e.__b > 0 ? e : _(e) ? e.map(
|
|
178
|
+
function re(e) {
|
|
179
|
+
return typeof e != "object" || !e || e.__b > 0 ? e : _(e) ? e.map(re) : v({}, e);
|
|
180
180
|
}
|
|
181
|
-
function
|
|
181
|
+
function ie(n, r, i, a, o, s, c, l, u) {
|
|
182
182
|
var d, f, p, h, g, v, b, x = i.props || m, S = r.props, C = r.type;
|
|
183
183
|
if (C == "svg" ? o = "http://www.w3.org/2000/svg" : C == "math" ? o = "http://www.w3.org/1998/Math/MathML" : o ||= "http://www.w3.org/1999/xhtml", s != null) {
|
|
184
184
|
for (d = 0; d < s.length; d++) if ((g = s[d]) && "setAttribute" in g == !!C && (C ? g.localName == C : g.nodeType == 3)) {
|
|
@@ -193,15 +193,15 @@ function oe(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 || ee(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 || ee(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 = ""), k(r.type == "template" ? n.content : n, _(h) ? h : [h], r, i, a, C == "foreignObject" ? "http://www.w3.org/1999/xhtml" : o, s, c, s ? s[0] : i.__k && w(i, 0), l, u), s != null) for (d = s.length; d--;) y(s[d]);
|
|
200
|
+
l || (d = "value", C == "progress" && v == null ? n.removeAttribute("value") : v != null && (v !== n[d] || C == "progress" && !v || C == "option" && v != x[d]) && ee(n, d, v, x[d], o), d = "checked", b != null && b != n[d] && ee(n, d, b, x[d], o));
|
|
201
201
|
}
|
|
202
202
|
return n;
|
|
203
203
|
}
|
|
204
|
-
function
|
|
204
|
+
function ae(e, n, r) {
|
|
205
205
|
try {
|
|
206
206
|
if (typeof e == "function") {
|
|
207
207
|
var i = typeof e.__u == "function";
|
|
@@ -211,9 +211,9 @@ function P(e, n, r) {
|
|
|
211
211
|
t.__e(e, r);
|
|
212
212
|
}
|
|
213
213
|
}
|
|
214
|
-
function
|
|
214
|
+
function oe(e, n, r) {
|
|
215
215
|
var i, a;
|
|
216
|
-
if (t.unmount && t.unmount(e), (i = e.ref) && (i.current && i.current != e.__e ||
|
|
216
|
+
if (t.unmount && t.unmount(e), (i = e.ref) && (i.current && i.current != e.__e || ae(i, null, n)), (i = e.__c) != null) {
|
|
217
217
|
if (i.componentWillUnmount) try {
|
|
218
218
|
i.componentWillUnmount();
|
|
219
219
|
} catch (e) {
|
|
@@ -221,15 +221,15 @@ function se(e, n, r) {
|
|
|
221
221
|
}
|
|
222
222
|
i.base = i.__P = null;
|
|
223
223
|
}
|
|
224
|
-
if (i = e.__k) for (a = 0; a < i.length; a++) i[a] &&
|
|
224
|
+
if (i = e.__k) for (a = 0; a < i.length; a++) i[a] && oe(i[a], n, r || typeof e.type != "function");
|
|
225
225
|
r || y(e.__e), e.__c = e.__ = e.__e = void 0;
|
|
226
226
|
}
|
|
227
|
-
function
|
|
227
|
+
function se(e, t, n) {
|
|
228
228
|
return this.constructor(e, n);
|
|
229
229
|
}
|
|
230
|
-
function
|
|
230
|
+
function ce(n, r, i) {
|
|
231
231
|
var a, o, s, c;
|
|
232
|
-
r == document && (r = document.documentElement), t.__ && t.__(n, r), o = (a = typeof i == "function") ? null : i && i.__k || r.__k, s = [], c = [],
|
|
232
|
+
r == document && (r = document.documentElement), t.__ && t.__(n, r), o = (a = typeof i == "function") ? null : i && i.__k || r.__k, s = [], c = [], F(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), ne(s, n, c);
|
|
233
233
|
}
|
|
234
234
|
e = h.slice, t = { __e: function(e, t, n, r) {
|
|
235
235
|
for (var i, a, o; t = t.__;) if ((i = t.__c) && !i.__) try {
|
|
@@ -245,27 +245,27 @@ e = h.slice, t = { __e: function(e, t, n, r) {
|
|
|
245
245
|
this.__v && (this.__e = !0, e && this.__h.push(e), D(this));
|
|
246
246
|
}, C.prototype.render = S, r = [], a = typeof Promise == "function" ? Promise.prototype.then.bind(Promise.resolve()) : setTimeout, o = function(e, t) {
|
|
247
247
|
return e.__v.__b - t.__v.__b;
|
|
248
|
-
}, O.__r = 0, s = Math.random().toString(8), c = "__d" + s, l = "__a" + s, u = /(PointerCapture)$|Capture$/i, d = 0, f =
|
|
248
|
+
}, O.__r = 0, s = Math.random().toString(8), c = "__d" + s, l = "__a" + s, u = /(PointerCapture)$|Capture$/i, d = 0, f = P(!1), p = P(!0);
|
|
249
249
|
//#endregion
|
|
250
250
|
//#region src/styles.css?inline
|
|
251
|
-
var ue = ":host{--markup-paper:#fdfcfa;--markup-ink:#1a1614;--markup-muted:#6b6661;--markup-border:#1a16141a;--markup-border-strong:#1a16142e;--markup-brand:#e35d2a;--markup-brand-hover:#c84d20;--markup-team:#2a4ac8;--markup-shadow:0 1px 2px #1a16140f, 0 8px 28px #1a16141f;--markup-overlay-tint:#1a16140a;--markup-danger:#dc2626;--markup-radius:6px;--markup-radius-sm:4px;--markup-font:\"Geist Variable\", \"Geist\", ui-sans-serif, -apple-system, BlinkMacSystemFont, \"Segoe UI\", system-ui, sans-serif;--markup-font-mono:\"Geist Mono Variable\", \"Geist Mono\", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;all:initial;font-family:var(--markup-font);color:var(--markup-ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.5}:host([data-theme=dark]){--markup-paper:#1a1614;--markup-ink:#fdfcfa;--markup-muted:#a8a39e;--markup-border:#fdfcfa1f;--markup-border-strong:#fdfcfa38;--markup-team:#7b99f0;--markup-shadow:0 1px 2px #00000059, 0 12px 40px #00000073;--markup-overlay-tint:#fdfcfa0d;--markup-danger:#f87171}@media (prefers-color-scheme:dark){:host(:not([data-theme=light])){--markup-paper:#1a1614;--markup-ink:#fdfcfa;--markup-muted:#a8a39e;--markup-border:#fdfcfa1f;--markup-border-strong:#fdfcfa38;--markup-team:#7b99f0;--markup-shadow:0 1px 2px #00000059, 0 12px 40px #00000073;--markup-overlay-tint:#fdfcfa0d;--markup-danger:#f87171}}.markup-shadow-root{font-family:var(--markup-font)}.markup-shadow-root *,.markup-shadow-root :before,.markup-shadow-root :after{box-sizing:border-box}:where(.markup-shadow-root button,.markup-shadow-root input,.markup-shadow-root textarea){font:inherit;color:inherit}.markup-eyebrow{font-family:var(--markup-font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--markup-muted);font-size:10px;font-weight:500}.markup-fab{z-index:10;background:var(--markup-ink);color:var(--markup-paper);cursor:pointer;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-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}}@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);justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.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}}", de, F, fe, pe, me = 0, he = [], I = t, ge = I.__b, _e = I.__r, ve = I.diffed, ye = I.__c, be = I.unmount, xe = I.__;
|
|
252
|
-
function
|
|
253
|
-
|
|
254
|
-
var n =
|
|
251
|
+
var le = ":host{--markup-paper:#fdfcfa;--markup-ink:#1a1614;--markup-muted:#6b6661;--markup-border:#1a16141a;--markup-border-strong:#1a16142e;--markup-brand:#e35d2a;--markup-brand-hover:#c84d20;--markup-team:#2a4ac8;--markup-shadow:0 1px 2px #1a16140f, 0 8px 28px #1a16141f;--markup-overlay-tint:#1a16140a;--markup-danger:#dc2626;--markup-radius:6px;--markup-radius-sm:4px;--markup-font:\"Geist Variable\", \"Geist\", ui-sans-serif, -apple-system, BlinkMacSystemFont, \"Segoe UI\", system-ui, sans-serif;--markup-font-mono:\"Geist Mono Variable\", \"Geist Mono\", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;all:initial;font-family:var(--markup-font);color:var(--markup-ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.5}:host([data-theme=dark]){--markup-paper:#1a1614;--markup-ink:#fdfcfa;--markup-muted:#a8a39e;--markup-border:#fdfcfa1f;--markup-border-strong:#fdfcfa38;--markup-team:#7b99f0;--markup-shadow:0 1px 2px #00000059, 0 12px 40px #00000073;--markup-overlay-tint:#fdfcfa0d;--markup-danger:#f87171}@media (prefers-color-scheme:dark){:host(:not([data-theme=light])){--markup-paper:#1a1614;--markup-ink:#fdfcfa;--markup-muted:#a8a39e;--markup-border:#fdfcfa1f;--markup-border-strong:#fdfcfa38;--markup-team:#7b99f0;--markup-shadow:0 1px 2px #00000059, 0 12px 40px #00000073;--markup-overlay-tint:#fdfcfa0d;--markup-danger:#f87171}}.markup-shadow-root{font-family:var(--markup-font)}.markup-shadow-root *,.markup-shadow-root :before,.markup-shadow-root :after{box-sizing:border-box}:where(.markup-shadow-root button,.markup-shadow-root input,.markup-shadow-root textarea){font:inherit;color:inherit}.markup-eyebrow{font-family:var(--markup-font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--markup-muted);font-size:10px;font-weight:500}.markup-fab{z-index:10;background:var(--markup-ink);color:var(--markup-paper);cursor:pointer;touch-action:none;letter-spacing:-.01em;pointer-events:auto;box-shadow:0 0 0 1px color-mix(in srgb, var(--markup-brand) 35%, transparent), var(--markup-shadow);border:none;border-radius:999px;align-items:center;gap:8px;padding:9px 14px;font-size:13px;font-weight:500;transition:background .15s,box-shadow .15s,transform .15s;display:inline-flex;position:fixed;bottom:24px}.markup-fab:hover{background:var(--markup-brand);box-shadow:0 0 0 1px color-mix(in srgb, var(--markup-brand) 0%, transparent), var(--markup-shadow)}.markup-fab:active{transform:translateY(1px)}.markup-fab.is-active{background:var(--markup-brand);box-shadow:var(--markup-shadow)}.markup-fab.is-active:hover{background:var(--markup-brand-hover)}.markup-fab .markup-fab-icon{color:var(--markup-brand);transition:color .15s}.markup-fab:hover .markup-fab-icon,.markup-fab.is-active .markup-fab-icon{color:var(--markup-paper)}.markup-fab-right{right:24px}.markup-fab-left{left:24px}.markup-fab.is-floating{inset:0 auto auto 0}.markup-fab.is-dragging{cursor:grabbing;transition:none}.markup-fab-icon{align-items:center;display:inline-flex}.markup-fab-label{font-family:var(--markup-font)}.markup-hud-hidden-toast{z-index:10;background:var(--markup-ink);color:var(--markup-paper);letter-spacing:-.01em;box-shadow:var(--markup-shadow);pointer-events:none;border-radius:999px;align-items:center;gap:6px;padding:8px 14px;font-size:12px;font-weight:500;animation:.22s ease-out markup-hud-hidden-in,.32s ease-in 4.6s forwards markup-hud-hidden-out;display:inline-flex;position:fixed;bottom:24px}.markup-hud-hidden-toast-right{right:24px}.markup-hud-hidden-toast-left{left:24px}.markup-kbd{background:color-mix(in srgb, var(--markup-paper) 14%, transparent);min-width:18px;height:18px;color:var(--markup-paper);font-family:var(--markup-font);border-radius:4px;justify-content:center;align-items:center;padding:0 5px;font-size:10px;font-weight:600;line-height:1;display:inline-flex}@keyframes markup-hud-hidden-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes markup-hud-hidden-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(4px)}}.markup-pins-layer{pointer-events:none;position:fixed;inset:0}.markup-pin{background:var(--markup-ink);width:28px;height:28px;color:var(--markup-brand);cursor:pointer;pointer-events:auto;box-shadow:0 0 0 2px var(--markup-paper), 0 0 0 3px color-mix(in srgb, var(--markup-brand) 35%, transparent), var(--markup-shadow);border:none;border-radius:50% 50% 50% 4px;justify-content:center;align-items:center;margin-top:-28px;padding:0;transition:transform .15s,background .15s,color .15s;display:inline-flex;position:absolute}.markup-pin:hover,.markup-pin.is-active{background:var(--markup-brand);color:var(--markup-paper)}.markup-pin.is-anchor{anchor-name:--markup-active-anchor}.markup-pin-ghost{background:var(--markup-brand);color:var(--markup-paper);cursor:default;pointer-events:none;animation:1.2s ease-in-out infinite markup-ghost-pulse}.markup-pin-dot{background:currentColor;border-radius:50%;width:6px;height:6px;display:inline-block}.markup-pin-count{background:var(--markup-brand);min-width:16px;height:16px;color:var(--markup-paper);font-family:var(--markup-font-mono);text-align:center;box-shadow:0 0 0 2px var(--markup-paper);border-radius:999px;padding:0 4px;font-size:9px;font-weight:600;line-height:16px;position:absolute;top:-4px;left:50%;transform:translate(-50%,-50%)}@keyframes markup-ghost-pulse{0%,to{box-shadow:0 0 0 2px var(--markup-paper), 0 0 0 0 #e35d2a66}50%{box-shadow:0 0 0 2px var(--markup-paper), 0 0 0 10px #e35d2a00}}.markup-placement-overlay{background:var(--markup-overlay-tint);cursor:crosshair;pointer-events:auto;z-index:1;animation:.18s ease-out markup-overlay-in;position:fixed;inset:0}.markup-placement-cursor-help{background:var(--markup-ink);color:var(--markup-paper);letter-spacing:-.01em;box-shadow:var(--markup-shadow);pointer-events:none;border-radius:999px;padding:10px 16px;font-size:12px;font-weight:500;animation:.22s ease-out 60ms backwards markup-help-in;position:fixed;top:24px;left:50%;transform:translate(-50%)}@keyframes markup-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes markup-help-in{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}.markup-popover{width:320px;max-width:calc(100vw - 24px);height:auto;max-height:calc(100dvh - 24px);inset:auto;left:var(--markup-pop-x,0);top:var(--markup-pop-y,0);background:var(--markup-paper);color:var(--markup-ink);border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius);box-shadow:var(--markup-shadow);pointer-events:auto;flex-direction:column;gap:0;margin:0;padding:0;animation:.16s ease-out markup-popover-in;display:flex;position:fixed;overflow:hidden}@supports (anchor-name:--x){.markup-popover{position-anchor:--markup-active-anchor;left:calc(anchor(right) + 8px);top:calc(anchor(top) - 9px);position-try-fallbacks:flip-block, flip-inline, flip-block flip-inline;position-try-order:most-block-size}.markup-popover.is-floating{left:var(--markup-pop-x,0);top:var(--markup-pop-y,0);position-try-fallbacks:none}}@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 xe(e, t) {
|
|
253
|
+
L.__h && L.__h(I, e, pe || t), pe = 0;
|
|
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 R(e) {
|
|
261
|
+
return pe = 1, Se(Ae, e);
|
|
262
262
|
}
|
|
263
|
-
function
|
|
264
|
-
var r =
|
|
265
|
-
if (r.t = e, !r.__c && (r.__ = [n ? n(t) :
|
|
263
|
+
function Se(e, t, n) {
|
|
264
|
+
var r = xe(ue++, 2);
|
|
265
|
+
if (r.t = e, !r.__c && (r.__ = [n ? n(t) : Ae(void 0, t), function(e) {
|
|
266
266
|
var t = r.__N ? r.__N[0] : r.__[0], n = r.t(t, e);
|
|
267
267
|
t !== n && (r.__N = [n, r.__[1]], r.__c.setState({}));
|
|
268
|
-
}], r.__c =
|
|
268
|
+
}], r.__c = I, !I.__f)) {
|
|
269
269
|
var i = function(e, t, n) {
|
|
270
270
|
if (!r.__c.__H) return !0;
|
|
271
271
|
var i = r.__c.__H.__.filter(function(e) {
|
|
@@ -282,111 +282,111 @@ function Ce(e, t, n) {
|
|
|
282
282
|
}
|
|
283
283
|
}), a && a.call(this, e, t, n) || o;
|
|
284
284
|
};
|
|
285
|
-
|
|
286
|
-
var a =
|
|
287
|
-
|
|
285
|
+
I.__f = !0;
|
|
286
|
+
var a = I.shouldComponentUpdate, o = I.componentWillUpdate;
|
|
287
|
+
I.componentWillUpdate = function(e, t, n) {
|
|
288
288
|
if (this.__e) {
|
|
289
289
|
var r = a;
|
|
290
290
|
a = void 0, i(e, t, n), a = r;
|
|
291
291
|
}
|
|
292
292
|
o && o.call(this, e, t, n);
|
|
293
|
-
},
|
|
293
|
+
}, I.shouldComponentUpdate = i;
|
|
294
294
|
}
|
|
295
295
|
return r.__N || r.__;
|
|
296
296
|
}
|
|
297
|
-
function
|
|
298
|
-
var n =
|
|
299
|
-
!
|
|
297
|
+
function z(e, t) {
|
|
298
|
+
var n = xe(ue++, 3);
|
|
299
|
+
!L.__s && ke(n.__H, t) && (n.__ = e, n.u = t, I.__H.__h.push(n));
|
|
300
300
|
}
|
|
301
|
-
function
|
|
302
|
-
return
|
|
301
|
+
function B(e) {
|
|
302
|
+
return pe = 5, Ce(function() {
|
|
303
303
|
return { current: e };
|
|
304
304
|
}, []);
|
|
305
305
|
}
|
|
306
|
-
function
|
|
307
|
-
var n =
|
|
308
|
-
return
|
|
306
|
+
function Ce(e, t) {
|
|
307
|
+
var n = xe(ue++, 7);
|
|
308
|
+
return ke(n.__H, t) && (n.__ = e(), n.__H = t, n.__h = e), n.__;
|
|
309
309
|
}
|
|
310
|
-
function
|
|
311
|
-
return
|
|
310
|
+
function V(e, t) {
|
|
311
|
+
return pe = 8, Ce(function() {
|
|
312
312
|
return e;
|
|
313
313
|
}, t);
|
|
314
314
|
}
|
|
315
|
-
function
|
|
316
|
-
for (var e; e =
|
|
315
|
+
function we() {
|
|
316
|
+
for (var e; e = me.shift();) {
|
|
317
317
|
var t = e.__H;
|
|
318
318
|
if (e.__P && t) try {
|
|
319
|
-
t.__h.some(
|
|
319
|
+
t.__h.some(De), t.__h.some(Oe), t.__h = [];
|
|
320
320
|
} catch (n) {
|
|
321
|
-
t.__h = [],
|
|
321
|
+
t.__h = [], L.__e(n, e.__v);
|
|
322
322
|
}
|
|
323
323
|
}
|
|
324
324
|
}
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
},
|
|
328
|
-
e && t.__k && t.__k.__m && (e.__m = t.__k.__m),
|
|
329
|
-
},
|
|
330
|
-
|
|
331
|
-
var t = (
|
|
332
|
-
t && (
|
|
325
|
+
L.__b = function(e) {
|
|
326
|
+
I = null, he && he(e);
|
|
327
|
+
}, L.__ = function(e, t) {
|
|
328
|
+
e && t.__k && t.__k.__m && (e.__m = t.__k.__m), be && be(e, t);
|
|
329
|
+
}, L.__r = function(e) {
|
|
330
|
+
ge && ge(e), ue = 0;
|
|
331
|
+
var t = (I = e.__c).__H;
|
|
332
|
+
t && (de === 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(De), t.__h.some(Oe), t.__h = [], ue = 0)), de = I;
|
|
335
|
+
}, L.diffed = function(e) {
|
|
336
|
+
_e && _e(e);
|
|
337
337
|
var t = e.__c;
|
|
338
|
-
t && t.__H && (t.__H.__h.length && (
|
|
338
|
+
t && t.__H && (t.__H.__h.length && (me.push(t) !== 1 && fe === L.requestAnimationFrame || ((fe = L.requestAnimationFrame) || Ee)(we)), t.__H.__.some(function(e) {
|
|
339
339
|
e.u && (e.__H = e.u), e.u = void 0;
|
|
340
|
-
})),
|
|
341
|
-
},
|
|
340
|
+
})), de = I = null;
|
|
341
|
+
}, L.__c = function(e, t) {
|
|
342
342
|
t.some(function(e) {
|
|
343
343
|
try {
|
|
344
|
-
e.__h.some(
|
|
345
|
-
return !e.__ ||
|
|
344
|
+
e.__h.some(De), e.__h = e.__h.filter(function(e) {
|
|
345
|
+
return !e.__ || Oe(e);
|
|
346
346
|
});
|
|
347
347
|
} catch (n) {
|
|
348
348
|
t.some(function(e) {
|
|
349
349
|
e.__h &&= [];
|
|
350
|
-
}), t = [],
|
|
350
|
+
}), t = [], L.__e(n, e.__v);
|
|
351
351
|
}
|
|
352
|
-
}),
|
|
353
|
-
},
|
|
354
|
-
|
|
352
|
+
}), ve && ve(e, t);
|
|
353
|
+
}, L.unmount = function(e) {
|
|
354
|
+
ye && ye(e);
|
|
355
355
|
var t, n = e.__c;
|
|
356
356
|
n && n.__H && (n.__H.__.some(function(e) {
|
|
357
357
|
try {
|
|
358
|
-
|
|
358
|
+
De(e);
|
|
359
359
|
} catch (e) {
|
|
360
360
|
t = e;
|
|
361
361
|
}
|
|
362
|
-
}), n.__H = void 0, t &&
|
|
362
|
+
}), n.__H = void 0, t && L.__e(t, n.__v));
|
|
363
363
|
};
|
|
364
|
-
var
|
|
365
|
-
function
|
|
364
|
+
var Te = typeof requestAnimationFrame == "function";
|
|
365
|
+
function Ee(e) {
|
|
366
366
|
var t, n = function() {
|
|
367
|
-
clearTimeout(r),
|
|
367
|
+
clearTimeout(r), Te && cancelAnimationFrame(t), setTimeout(e);
|
|
368
368
|
}, r = setTimeout(n, 35);
|
|
369
|
-
|
|
369
|
+
Te && (t = requestAnimationFrame(n));
|
|
370
370
|
}
|
|
371
|
-
function
|
|
372
|
-
var t =
|
|
373
|
-
typeof n == "function" && (e.__c = void 0, n()),
|
|
371
|
+
function De(e) {
|
|
372
|
+
var t = I, n = e.__c;
|
|
373
|
+
typeof n == "function" && (e.__c = void 0, n()), I = t;
|
|
374
374
|
}
|
|
375
|
-
function
|
|
376
|
-
var t =
|
|
377
|
-
e.__c = e.__(),
|
|
375
|
+
function Oe(e) {
|
|
376
|
+
var t = I;
|
|
377
|
+
e.__c = e.__(), I = t;
|
|
378
378
|
}
|
|
379
|
-
function
|
|
379
|
+
function ke(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 Ae(e, t) {
|
|
385
385
|
return typeof t == "function" ? t(e) : t;
|
|
386
386
|
}
|
|
387
|
-
for (var
|
|
388
|
-
|
|
389
|
-
function
|
|
387
|
+
for (var je = "1.37.0", H = [], U = [], Me = Uint8Array, Ne = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", Pe = 0, Fe = Ne.length; Pe < Fe; ++Pe) H[Pe] = Ne[Pe], U[Ne.charCodeAt(Pe)] = Pe;
|
|
388
|
+
U[45] = 62, U[95] = 63;
|
|
389
|
+
function Ie(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,33 +394,33 @@ function Le(e) {
|
|
|
394
394
|
var r = n === t ? 0 : 4 - n % 4;
|
|
395
395
|
return [n, r];
|
|
396
396
|
}
|
|
397
|
-
function
|
|
397
|
+
function Le(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 Re(e) {
|
|
401
|
+
var t, n = Ie(e), r = n[0], i = n[1], a = new Me(Le(e, r, i)), o = 0, s = i > 0 ? r - 4 : r, c;
|
|
402
|
+
for (c = 0; c < s; c += 4) t = U[e.charCodeAt(c)] << 18 | U[e.charCodeAt(c + 1)] << 12 | U[e.charCodeAt(c + 2)] << 6 | U[e.charCodeAt(c + 3)], a[o++] = t >> 16 & 255, a[o++] = t >> 8 & 255, a[o++] = t & 255;
|
|
403
|
+
return i === 2 && (t = U[e.charCodeAt(c)] << 2 | U[e.charCodeAt(c + 1)] >> 4, a[o++] = t & 255), i === 1 && (t = U[e.charCodeAt(c)] << 10 | U[e.charCodeAt(c + 1)] << 4 | U[e.charCodeAt(c + 2)] >> 2, a[o++] = t >> 8 & 255, a[o++] = t & 255), a;
|
|
404
404
|
}
|
|
405
|
-
function
|
|
406
|
-
return
|
|
405
|
+
function ze(e) {
|
|
406
|
+
return H[e >> 18 & 63] + H[e >> 12 & 63] + H[e >> 6 & 63] + H[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 Be(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(ze(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 Ve(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(Be(e, o, o + a > s ? s : o + a));
|
|
414
|
+
return r === 1 ? (t = e[n - 1], i.push(H[t >> 2] + H[t << 4 & 63] + "==")) : r === 2 && (t = (e[n - 2] << 8) + e[n - 1], i.push(H[t >> 10] + H[t >> 4 & 63] + H[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 W(e) {
|
|
419
419
|
if (e === void 0) return {};
|
|
420
|
-
if (!
|
|
420
|
+
if (!Ue(e)) throw Error(`The arguments to a Convex function must be an object. Received: ${e}`);
|
|
421
421
|
return e;
|
|
422
422
|
}
|
|
423
|
-
function
|
|
423
|
+
function He(e) {
|
|
424
424
|
if (e === void 0) throw Error("Client created with undefined deployment address. If you used an environment variable, check that it's set.");
|
|
425
425
|
if (typeof e != "string") throw Error(`Invalid deployment address: found ${e}".`);
|
|
426
426
|
if (!(e.startsWith("http:") || e.startsWith("https:"))) throw Error(`Invalid deployment address: Must start with "https://" or "http://". Found "${e}".`);
|
|
@@ -431,146 +431,146 @@ function Ue(e) {
|
|
|
431
431
|
}
|
|
432
432
|
if (e.endsWith(".convex.site")) throw Error(`Invalid deployment address: "${e}" ends with .convex.site, which is used for HTTP Actions. Convex deployment URLs typically end with .convex.cloud? If you believe this URL is correct, use the \`skipConvexDeploymentUrlCheck\` option to bypass this.`);
|
|
433
433
|
}
|
|
434
|
-
function
|
|
434
|
+
function Ue(e) {
|
|
435
435
|
let t = typeof e == "object", n = Object.getPrototypeOf(e), r = n === null || n === Object.prototype || n?.constructor?.name === "Object";
|
|
436
436
|
return t && r;
|
|
437
437
|
}
|
|
438
438
|
//#endregion
|
|
439
439
|
//#region ../../node_modules/.pnpm/convex@1.37.0_react@19.2.6/node_modules/convex/dist/esm/values/value.js
|
|
440
|
-
var
|
|
441
|
-
function
|
|
440
|
+
var We = !0, Ge = BigInt("-9223372036854775808"), Ke = BigInt("9223372036854775807"), qe = BigInt("0"), Je = BigInt("8"), Ye = BigInt("256");
|
|
441
|
+
function Xe(e) {
|
|
442
442
|
return Number.isNaN(e) || !Number.isFinite(e) || Object.is(e, -0);
|
|
443
443
|
}
|
|
444
|
-
function
|
|
445
|
-
e <
|
|
444
|
+
function Ze(e) {
|
|
445
|
+
e < qe && (e -= Ge + Ge);
|
|
446
446
|
let t = e.toString(16);
|
|
447
447
|
t.length % 2 == 1 && (t = "0" + t);
|
|
448
448
|
let n = new Uint8Array(/* @__PURE__ */ new ArrayBuffer(8)), r = 0;
|
|
449
|
-
for (let i of t.match(/.{2}/g).reverse()) n.set([parseInt(i, 16)], r++), e >>=
|
|
450
|
-
return
|
|
449
|
+
for (let i of t.match(/.{2}/g).reverse()) n.set([parseInt(i, 16)], r++), e >>= Je;
|
|
450
|
+
return Ve(n);
|
|
451
451
|
}
|
|
452
|
-
function
|
|
453
|
-
let t =
|
|
452
|
+
function Qe(e) {
|
|
453
|
+
let t = Re(e);
|
|
454
454
|
if (t.byteLength !== 8) throw Error(`Received ${t.byteLength} bytes, expected 8 for $integer`);
|
|
455
|
-
let n =
|
|
456
|
-
for (let e of t) n += BigInt(e) *
|
|
457
|
-
return n >
|
|
455
|
+
let n = qe, r = qe;
|
|
456
|
+
for (let e of t) n += BigInt(e) * Ye ** r, r++;
|
|
457
|
+
return n > Ke && (n += Ge + Ge), n;
|
|
458
458
|
}
|
|
459
|
-
function
|
|
460
|
-
if (e <
|
|
459
|
+
function $e(e) {
|
|
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), Ve(new Uint8Array(t));
|
|
463
463
|
}
|
|
464
|
-
function
|
|
465
|
-
let t =
|
|
464
|
+
function et(e) {
|
|
465
|
+
let t = Re(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
|
}
|
|
469
|
-
var
|
|
470
|
-
function
|
|
471
|
-
if (e.length >
|
|
469
|
+
var tt = DataView.prototype.setBigInt64 ? $e : Ze, nt = DataView.prototype.getBigInt64 ? et : Qe, rt = 1024;
|
|
470
|
+
function it(e) {
|
|
471
|
+
if (e.length > rt) throw Error(`Field name ${e} exceeds maximum field name length ${rt}.`);
|
|
472
472
|
if (e.startsWith("$")) throw Error(`Field name ${e} starts with a '$', which is reserved.`);
|
|
473
473
|
for (let t = 0; t < e.length; t += 1) {
|
|
474
474
|
let n = e.charCodeAt(t);
|
|
475
475
|
if (n < 32 || n >= 127) throw Error(`Field name ${e} has invalid character '${e[t]}': Field names can only contain non-control ASCII characters`);
|
|
476
476
|
}
|
|
477
477
|
}
|
|
478
|
-
function
|
|
478
|
+
function at(e) {
|
|
479
479
|
if (e === null || typeof e == "boolean" || typeof e == "number" || typeof e == "string") return e;
|
|
480
|
-
if (Array.isArray(e)) return e.map((e) =>
|
|
480
|
+
if (Array.isArray(e)) return e.map((e) => at(e));
|
|
481
481
|
if (typeof e != "object") throw Error(`Unexpected type of ${e}`);
|
|
482
482
|
let t = Object.entries(e);
|
|
483
483
|
if (t.length === 1) {
|
|
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 Re(e.$bytes).buffer;
|
|
488
488
|
}
|
|
489
489
|
if (n === "$integer") {
|
|
490
490
|
if (typeof e.$integer != "string") throw Error(`Malformed $integer field on ${e}`);
|
|
491
|
-
return
|
|
491
|
+
return nt(e.$integer);
|
|
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 = Re(e.$float);
|
|
496
496
|
if (t.byteLength !== 8) throw Error(`Received ${t.byteLength} bytes, expected 8 for $float`);
|
|
497
|
-
let n = new DataView(t.buffer).getFloat64(0,
|
|
498
|
-
if (!
|
|
497
|
+
let n = new DataView(t.buffer).getFloat64(0, We);
|
|
498
|
+
if (!Xe(n)) throw Error(`Float ${n} should be encoded as a number`);
|
|
499
499
|
return n;
|
|
500
500
|
}
|
|
501
501
|
if (n === "$set") throw Error("Received a Set which is no longer supported as a Convex type.");
|
|
502
502
|
if (n === "$map") throw Error("Received a Map which is no longer supported as a Convex type.");
|
|
503
503
|
}
|
|
504
504
|
let n = {};
|
|
505
|
-
for (let [t, r] of Object.entries(e))
|
|
505
|
+
for (let [t, r] of Object.entries(e)) it(t), n[t] = at(r);
|
|
506
506
|
return n;
|
|
507
507
|
}
|
|
508
|
-
var
|
|
509
|
-
function
|
|
508
|
+
var ot = 16384;
|
|
509
|
+
function st(e) {
|
|
510
510
|
let t = JSON.stringify(e, (e, t) => t === void 0 ? "undefined" : typeof t == "bigint" ? `${t.toString()}n` : t);
|
|
511
|
-
if (t.length >
|
|
512
|
-
let e =
|
|
511
|
+
if (t.length > ot) {
|
|
512
|
+
let e = ot - 14, n = t.codePointAt(e - 1);
|
|
513
513
|
return n !== void 0 && n > 65535 && --e, t.substring(0, e) + "[...truncated]";
|
|
514
514
|
}
|
|
515
515
|
return t;
|
|
516
516
|
}
|
|
517
|
-
function
|
|
517
|
+
function ct(e, t, n, r) {
|
|
518
518
|
if (e === void 0) {
|
|
519
|
-
let e = n && ` (present at path ${n} in original object ${
|
|
519
|
+
let e = n && ` (present at path ${n} in original object ${st(t)})`;
|
|
520
520
|
throw Error(`undefined is not a valid Convex value${e}. To learn about Convex's supported types, see https://docs.convex.dev/using/types.`);
|
|
521
521
|
}
|
|
522
522
|
if (e === null) return e;
|
|
523
523
|
if (typeof e == "bigint") {
|
|
524
|
-
if (e <
|
|
525
|
-
return { $integer:
|
|
524
|
+
if (e < Ge || Ke < e) throw Error(`BigInt ${e} does not fit into a 64-bit signed integer.`);
|
|
525
|
+
return { $integer: tt(e) };
|
|
526
526
|
}
|
|
527
|
-
if (typeof e == "number") if (
|
|
527
|
+
if (typeof e == "number") if (Xe(e)) {
|
|
528
528
|
let t = /* @__PURE__ */ new ArrayBuffer(8);
|
|
529
|
-
return new DataView(t).setFloat64(0, e,
|
|
529
|
+
return new DataView(t).setFloat64(0, e, We), { $float: Ve(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:
|
|
533
|
-
if (Array.isArray(e)) return e.map((e, r) =>
|
|
534
|
-
if (e instanceof Set) throw Error(
|
|
535
|
-
if (e instanceof Map) throw Error(
|
|
536
|
-
if (!
|
|
532
|
+
if (e instanceof ArrayBuffer) return { $bytes: Ve(new Uint8Array(e)) };
|
|
533
|
+
if (Array.isArray(e)) return e.map((e, r) => ct(e, t, n + `[${r}]`, !1));
|
|
534
|
+
if (e instanceof Set) throw Error(lt(n, "Set", [...e], t));
|
|
535
|
+
if (e instanceof Map) throw Error(lt(n, "Map", [...e], t));
|
|
536
|
+
if (!Ue(e)) {
|
|
537
537
|
let r = e?.constructor?.name, i = r ? `${r} ` : "";
|
|
538
|
-
throw Error(
|
|
538
|
+
throw Error(lt(n, i, e, t));
|
|
539
539
|
}
|
|
540
540
|
let i = {}, a = Object.entries(e);
|
|
541
541
|
a.sort(([e, t], [n, r]) => e === n ? 0 : e < n ? -1 : 1);
|
|
542
|
-
for (let [e, o] of a) o === void 0 ? r && (
|
|
542
|
+
for (let [e, o] of a) o === void 0 ? r && (it(e), i[e] = ut(o, t, n + `.${e}`)) : (it(e), i[e] = ct(o, t, n + `.${e}`, !1));
|
|
543
543
|
return i;
|
|
544
544
|
}
|
|
545
|
-
function
|
|
546
|
-
return e ? `${t}${
|
|
545
|
+
function lt(e, t, n, r) {
|
|
546
|
+
return e ? `${t}${st(n)} is not a supported Convex type (present at path ${e} in original object ${st(r)}). To learn about Convex's supported types, see https://docs.convex.dev/using/types.` : `${t}${st(n)} is not a supported Convex type.`;
|
|
547
547
|
}
|
|
548
|
-
function
|
|
548
|
+
function ut(e, t, n) {
|
|
549
549
|
if (e === void 0) return { $undefined: null };
|
|
550
|
-
if (t === void 0) throw Error(`Programming error. Current value is ${
|
|
551
|
-
return
|
|
550
|
+
if (t === void 0) throw Error(`Programming error. Current value is ${st(e)} but original value is undefined`);
|
|
551
|
+
return ct(e, t, n, !1);
|
|
552
552
|
}
|
|
553
|
-
function
|
|
554
|
-
return
|
|
553
|
+
function dt(e) {
|
|
554
|
+
return ct(e, e, "", !1);
|
|
555
555
|
}
|
|
556
556
|
//#endregion
|
|
557
557
|
//#region ../../node_modules/.pnpm/convex@1.37.0_react@19.2.6/node_modules/convex/dist/esm/values/errors.js
|
|
558
|
-
var
|
|
558
|
+
var ft = Object.defineProperty, pt = (e, t, n) => t in e ? ft(e, t, {
|
|
559
559
|
enumerable: !0,
|
|
560
560
|
configurable: !0,
|
|
561
561
|
writable: !0,
|
|
562
562
|
value: n
|
|
563
|
-
}) : e[t] = n,
|
|
563
|
+
}) : e[t] = n, mt = (e, t, n) => pt(e, typeof t == "symbol" ? t : t + "", n), ht, gt, _t = Symbol.for("ConvexError"), vt = class extends (gt = Error, ht = _t, gt) {
|
|
564
564
|
constructor(e) {
|
|
565
|
-
super(typeof e == "string" ? e :
|
|
565
|
+
super(typeof e == "string" ? e : st(e)), mt(this, "name", "ConvexError"), mt(this, "data"), mt(this, ht, !0), this.data = e;
|
|
566
566
|
}
|
|
567
|
-
},
|
|
567
|
+
}, yt = Object.defineProperty, bt = (e, t, n) => t in e ? yt(e, t, {
|
|
568
568
|
enumerable: !0,
|
|
569
569
|
configurable: !0,
|
|
570
570
|
writable: !0,
|
|
571
571
|
value: n
|
|
572
|
-
}) : e[t] = n,
|
|
573
|
-
function
|
|
572
|
+
}) : e[t] = n, xt = (e, t, n) => bt(e, typeof t == "symbol" ? t : t + "", n), St = "color:rgb(0, 145, 255)";
|
|
573
|
+
function Ct(e) {
|
|
574
574
|
switch (e) {
|
|
575
575
|
case "query": return "Q";
|
|
576
576
|
case "mutation": return "M";
|
|
@@ -578,9 +578,9 @@ function wt(e) {
|
|
|
578
578
|
case "any": return "?";
|
|
579
579
|
}
|
|
580
580
|
}
|
|
581
|
-
var
|
|
581
|
+
var wt = class {
|
|
582
582
|
constructor(e) {
|
|
583
|
-
|
|
583
|
+
xt(this, "_onLogLineFuncs"), xt(this, "_verbose"), this._onLogLineFuncs = {}, this._verbose = e.verbose;
|
|
584
584
|
}
|
|
585
585
|
addLogLineListener(e) {
|
|
586
586
|
let t = Math.random().toString(36).substring(2, 15);
|
|
@@ -602,8 +602,8 @@ var Tt = class {
|
|
|
602
602
|
for (let t of Object.values(this._onLogLineFuncs)) t("error", ...e);
|
|
603
603
|
}
|
|
604
604
|
};
|
|
605
|
-
function
|
|
606
|
-
let t = new
|
|
605
|
+
function Tt(e) {
|
|
606
|
+
let t = new wt(e);
|
|
607
607
|
return t.addLogLineListener((e, ...t) => {
|
|
608
608
|
switch (e) {
|
|
609
609
|
case "debug":
|
|
@@ -622,11 +622,11 @@ function Et(e) {
|
|
|
622
622
|
}
|
|
623
623
|
}), t;
|
|
624
624
|
}
|
|
625
|
-
function
|
|
626
|
-
return new
|
|
625
|
+
function Et(e) {
|
|
626
|
+
return new wt(e);
|
|
627
627
|
}
|
|
628
|
-
function
|
|
629
|
-
let a =
|
|
628
|
+
function Dt(e, t, n, r, i) {
|
|
629
|
+
let a = Ct(n);
|
|
630
630
|
if (typeof i == "object" && (i = `ConvexError ${JSON.stringify(i.errorData, null, 2)}`), t === "info") {
|
|
631
631
|
let t = i.match(/^\[.*?\] /);
|
|
632
632
|
if (t === null) {
|
|
@@ -634,57 +634,57 @@ function Ot(e, t, n, r, i) {
|
|
|
634
634
|
return;
|
|
635
635
|
}
|
|
636
636
|
let n = i.slice(1, t[0].length - 2), o = i.slice(t[0].length);
|
|
637
|
-
e.log(`%c[CONVEX ${a}(${r})] [${n}]`,
|
|
637
|
+
e.log(`%c[CONVEX ${a}(${r})] [${n}]`, St, o);
|
|
638
638
|
} else e.error(`[CONVEX ${a}(${r})] ${i}`);
|
|
639
639
|
}
|
|
640
|
-
function
|
|
640
|
+
function Ot(e, t) {
|
|
641
641
|
let n = `[CONVEX FATAL ERROR] ${t}`;
|
|
642
642
|
return e.error(n), Error(n);
|
|
643
643
|
}
|
|
644
|
-
function
|
|
645
|
-
return `[CONVEX ${
|
|
644
|
+
function kt(e, t, n) {
|
|
645
|
+
return `[CONVEX ${Ct(e)}(${t})] ${n.errorMessage}
|
|
646
646
|
Called by client`;
|
|
647
647
|
}
|
|
648
|
-
function
|
|
648
|
+
function At(e, t) {
|
|
649
649
|
return t.data = e.errorData, t;
|
|
650
650
|
}
|
|
651
651
|
//#endregion
|
|
652
652
|
//#region ../../node_modules/.pnpm/convex@1.37.0_react@19.2.6/node_modules/convex/dist/esm/browser/sync/udf_path_utils.js
|
|
653
|
-
function
|
|
653
|
+
function jt(e) {
|
|
654
654
|
let t = e.split(":"), n, r;
|
|
655
655
|
return t.length === 1 ? (n = t[0], r = "default") : (n = t.slice(0, t.length - 1).join(":"), r = t[t.length - 1]), n.endsWith(".js") && (n = n.slice(0, -3)), `${n}:${r}`;
|
|
656
656
|
}
|
|
657
|
-
function
|
|
657
|
+
function Mt(e, t) {
|
|
658
658
|
return JSON.stringify({
|
|
659
|
-
udfPath:
|
|
660
|
-
args:
|
|
659
|
+
udfPath: jt(e),
|
|
660
|
+
args: dt(t)
|
|
661
661
|
});
|
|
662
662
|
}
|
|
663
|
-
function
|
|
663
|
+
function Nt(e, t, n) {
|
|
664
664
|
let { initialNumItems: r, id: i } = n;
|
|
665
665
|
return JSON.stringify({
|
|
666
666
|
type: "paginated",
|
|
667
|
-
udfPath:
|
|
668
|
-
args:
|
|
669
|
-
options:
|
|
667
|
+
udfPath: jt(e),
|
|
668
|
+
args: dt(t),
|
|
669
|
+
options: dt({
|
|
670
670
|
initialNumItems: r,
|
|
671
671
|
id: i
|
|
672
672
|
})
|
|
673
673
|
});
|
|
674
674
|
}
|
|
675
|
-
function
|
|
675
|
+
function Pt(e) {
|
|
676
676
|
return JSON.parse(e).type === "paginated";
|
|
677
677
|
}
|
|
678
678
|
//#endregion
|
|
679
679
|
//#region ../../node_modules/.pnpm/convex@1.37.0_react@19.2.6/node_modules/convex/dist/esm/browser/sync/local_state.js
|
|
680
|
-
var
|
|
680
|
+
var Ft = Object.defineProperty, It = (e, t, n) => t in e ? Ft(e, t, {
|
|
681
681
|
enumerable: !0,
|
|
682
682
|
configurable: !0,
|
|
683
683
|
writable: !0,
|
|
684
684
|
value: n
|
|
685
|
-
}) : e[t] = n,
|
|
685
|
+
}) : e[t] = n, G = (e, t, n) => It(e, typeof t == "symbol" ? t : t + "", n), Lt = class {
|
|
686
686
|
constructor() {
|
|
687
|
-
|
|
687
|
+
G(this, "nextQueryId"), G(this, "querySetVersion"), G(this, "querySet"), G(this, "queryIdToToken"), G(this, "identityVersion"), G(this, "auth"), G(this, "outstandingQueriesOlderThanRestart"), G(this, "outstandingAuthOlderThanRestart"), G(this, "paused"), G(this, "pendingQuerySetModifications"), this.nextQueryId = 0, this.querySetVersion = 0, this.identityVersion = 0, this.querySet = /* @__PURE__ */ new Map(), this.queryIdToToken = /* @__PURE__ */ new Map(), this.outstandingQueriesOlderThanRestart = /* @__PURE__ */ new Set(), this.outstandingAuthOlderThanRestart = !1, this.paused = !1, this.pendingQuerySetModifications = /* @__PURE__ */ new Map();
|
|
688
688
|
}
|
|
689
689
|
hasSyncedPastLastReconnect() {
|
|
690
690
|
return this.outstandingQueriesOlderThanRestart.size === 0 && !this.outstandingAuthOlderThanRestart;
|
|
@@ -693,7 +693,7 @@ var It = Object.defineProperty, Lt = (e, t, n) => t in e ? It(e, t, {
|
|
|
693
693
|
this.outstandingAuthOlderThanRestart = !1;
|
|
694
694
|
}
|
|
695
695
|
subscribe(e, t, n, r) {
|
|
696
|
-
let i =
|
|
696
|
+
let i = jt(e), a = Mt(i, t), o = this.querySet.get(a);
|
|
697
697
|
if (o !== void 0) return o.numSubscribers += 1, {
|
|
698
698
|
queryToken: a,
|
|
699
699
|
modification: null,
|
|
@@ -713,7 +713,7 @@ var It = Object.defineProperty, Lt = (e, t, n) => t in e ? It(e, t, {
|
|
|
713
713
|
type: "Add",
|
|
714
714
|
queryId: e,
|
|
715
715
|
udfPath: i,
|
|
716
|
-
args: [
|
|
716
|
+
args: [dt(t)],
|
|
717
717
|
journal: n,
|
|
718
718
|
componentPath: r
|
|
719
719
|
};
|
|
@@ -748,7 +748,7 @@ var It = Object.defineProperty, Lt = (e, t, n) => t in e ? It(e, t, {
|
|
|
748
748
|
}
|
|
749
749
|
}
|
|
750
750
|
queryId(e, t) {
|
|
751
|
-
let n =
|
|
751
|
+
let n = Mt(jt(e), t), r = this.querySet.get(n);
|
|
752
752
|
return r === void 0 ? null : r.id;
|
|
753
753
|
}
|
|
754
754
|
isCurrentOrNewerAuthVersion(e) {
|
|
@@ -820,7 +820,7 @@ var It = Object.defineProperty, Lt = (e, t, n) => t in e ? It(e, t, {
|
|
|
820
820
|
type: "Add",
|
|
821
821
|
queryId: t.id,
|
|
822
822
|
udfPath: t.canonicalizedUdfPath,
|
|
823
|
-
args: [
|
|
823
|
+
args: [dt(t.args)],
|
|
824
824
|
journal: t.journal,
|
|
825
825
|
componentPath: t.componentPath
|
|
826
826
|
};
|
|
@@ -878,14 +878,14 @@ var It = Object.defineProperty, Lt = (e, t, n) => t in e ? It(e, t, {
|
|
|
878
878
|
};
|
|
879
879
|
}
|
|
880
880
|
}
|
|
881
|
-
},
|
|
881
|
+
}, Rt = Object.defineProperty, zt = (e, t, n) => t in e ? Rt(e, t, {
|
|
882
882
|
enumerable: !0,
|
|
883
883
|
configurable: !0,
|
|
884
884
|
writable: !0,
|
|
885
885
|
value: n
|
|
886
|
-
}) : e[t] = n,
|
|
886
|
+
}) : e[t] = n, Bt = (e, t, n) => zt(e, typeof t == "symbol" ? t : t + "", n), Vt = class {
|
|
887
887
|
constructor(e, t) {
|
|
888
|
-
this.logger = e, this.markConnectionStateDirty = t,
|
|
888
|
+
this.logger = e, this.markConnectionStateDirty = t, Bt(this, "inflightRequests"), Bt(this, "requestsOlderThanRestart"), Bt(this, "inflightMutationsCount", 0), Bt(this, "inflightActionsCount", 0), this.inflightRequests = /* @__PURE__ */ new Map(), this.requestsOlderThanRestart = /* @__PURE__ */ new Set();
|
|
889
889
|
}
|
|
890
890
|
request(e, t) {
|
|
891
891
|
let n = new Promise((n) => {
|
|
@@ -905,19 +905,19 @@ var It = Object.defineProperty, Lt = (e, t, n) => t in e ? It(e, t, {
|
|
|
905
905
|
let t = this.inflightRequests.get(e.requestId);
|
|
906
906
|
if (t === void 0 || t.status.status === "Completed") return null;
|
|
907
907
|
let n = t.message.type === "Mutation" ? "mutation" : "action", r = t.message.udfPath;
|
|
908
|
-
for (let t of e.logLines)
|
|
908
|
+
for (let t of e.logLines) Dt(this.logger, "info", n, r, t);
|
|
909
909
|
let i = t.status, a, o;
|
|
910
910
|
if (e.success) a = {
|
|
911
911
|
success: !0,
|
|
912
912
|
logLines: e.logLines,
|
|
913
|
-
value:
|
|
913
|
+
value: at(e.result)
|
|
914
914
|
}, o = () => i.onResult(a);
|
|
915
915
|
else {
|
|
916
916
|
let t = e.result, { errorData: s } = e;
|
|
917
|
-
|
|
917
|
+
Dt(this.logger, "error", n, r, t), a = {
|
|
918
918
|
success: !1,
|
|
919
919
|
errorMessage: t,
|
|
920
|
-
errorData: s === void 0 ? void 0 :
|
|
920
|
+
errorData: s === void 0 ? void 0 : at(s),
|
|
921
921
|
logLines: e.logLines
|
|
922
922
|
}, o = () => i.onResult(a);
|
|
923
923
|
}
|
|
@@ -989,19 +989,19 @@ var It = Object.defineProperty, Lt = (e, t, n) => t in e ? It(e, t, {
|
|
|
989
989
|
inflightActions() {
|
|
990
990
|
return this.inflightActionsCount;
|
|
991
991
|
}
|
|
992
|
-
},
|
|
993
|
-
function
|
|
994
|
-
return e[
|
|
992
|
+
}, Ht = Symbol.for("functionName"), Ut = Symbol.for("toReferencePath");
|
|
993
|
+
function Wt(e) {
|
|
994
|
+
return e[Ut] ?? null;
|
|
995
995
|
}
|
|
996
|
-
function
|
|
996
|
+
function Gt(e) {
|
|
997
997
|
return e.startsWith("function://");
|
|
998
998
|
}
|
|
999
|
-
function
|
|
999
|
+
function Kt(e) {
|
|
1000
1000
|
let t;
|
|
1001
|
-
if (typeof e == "string") t =
|
|
1002
|
-
else if (e[
|
|
1001
|
+
if (typeof e == "string") t = Gt(e) ? { functionHandle: e } : { name: e };
|
|
1002
|
+
else if (e[Ht]) t = { name: e[Ht] };
|
|
1003
1003
|
else {
|
|
1004
|
-
let n =
|
|
1004
|
+
let n = Wt(e);
|
|
1005
1005
|
if (!n) throw Error(`${e} is not a functionReference`);
|
|
1006
1006
|
t = { reference: n };
|
|
1007
1007
|
}
|
|
@@ -1009,21 +1009,21 @@ function qt(e) {
|
|
|
1009
1009
|
}
|
|
1010
1010
|
//#endregion
|
|
1011
1011
|
//#region ../../node_modules/.pnpm/convex@1.37.0_react@19.2.6/node_modules/convex/dist/esm/server/api.js
|
|
1012
|
-
function
|
|
1013
|
-
let t =
|
|
1012
|
+
function K(e) {
|
|
1013
|
+
let t = Kt(e);
|
|
1014
1014
|
if (t.name === void 0) throw t.functionHandle === void 0 ? t.reference === void 0 ? Error(`Expected function reference like "api.file.func" or "internal.file.func", but received ${JSON.stringify(t)}`) : Error(`Expected function reference in the current component like "api.file.func" or "internal.file.func", but received reference ${t.reference}`) : Error(`Expected function reference like "api.file.func" or "internal.file.func", but received function handle ${t.functionHandle}`);
|
|
1015
1015
|
if (typeof e == "string") return e;
|
|
1016
|
-
let n = e[
|
|
1016
|
+
let n = e[Ht];
|
|
1017
1017
|
if (!n) throw Error(`${e} is not a functionReference`);
|
|
1018
1018
|
return n;
|
|
1019
1019
|
}
|
|
1020
|
-
function
|
|
1021
|
-
return { [
|
|
1020
|
+
function qt(e) {
|
|
1021
|
+
return { [Ht]: e };
|
|
1022
1022
|
}
|
|
1023
|
-
function
|
|
1023
|
+
function Jt(e = []) {
|
|
1024
1024
|
return new Proxy({}, { get(t, n) {
|
|
1025
|
-
if (typeof n == "string") return
|
|
1026
|
-
if (n ===
|
|
1025
|
+
if (typeof n == "string") return Jt([...e, n]);
|
|
1026
|
+
if (n === Ht) {
|
|
1027
1027
|
if (e.length < 2) {
|
|
1028
1028
|
let t = ["api", ...e].join(".");
|
|
1029
1029
|
throw Error(`API path is expected to be of the form \`api.moduleName.functionName\`. Found: \`${t}\``);
|
|
@@ -1034,32 +1034,32 @@ function Yt(e = []) {
|
|
|
1034
1034
|
else return;
|
|
1035
1035
|
} });
|
|
1036
1036
|
}
|
|
1037
|
-
|
|
1037
|
+
Jt();
|
|
1038
1038
|
//#endregion
|
|
1039
1039
|
//#region ../../node_modules/.pnpm/convex@1.37.0_react@19.2.6/node_modules/convex/dist/esm/browser/sync/optimistic_updates_impl.js
|
|
1040
|
-
var
|
|
1040
|
+
var Yt = Object.defineProperty, Xt = (e, t, n) => t in e ? Yt(e, t, {
|
|
1041
1041
|
enumerable: !0,
|
|
1042
1042
|
configurable: !0,
|
|
1043
1043
|
writable: !0,
|
|
1044
1044
|
value: n
|
|
1045
|
-
}) : e[t] = n,
|
|
1045
|
+
}) : e[t] = n, Zt = (e, t, n) => Xt(e, typeof t == "symbol" ? t : t + "", n), Qt = class e {
|
|
1046
1046
|
constructor(e) {
|
|
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 = W(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) {
|
|
1054
|
-
let n = [], r =
|
|
1055
|
-
for (let t of this.queryResults.values()) t.udfPath ===
|
|
1054
|
+
let n = [], r = K(t);
|
|
1055
|
+
for (let t of this.queryResults.values()) t.udfPath === jt(r) && n.push({
|
|
1056
1056
|
args: t.args,
|
|
1057
1057
|
value: e.queryValue(t.result)
|
|
1058
1058
|
});
|
|
1059
1059
|
return n;
|
|
1060
1060
|
}
|
|
1061
1061
|
setQuery(e, t, n) {
|
|
1062
|
-
let r =
|
|
1062
|
+
let r = W(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,
|
|
@@ -1075,15 +1075,15 @@ var Xt = Object.defineProperty, Zt = (e, t, n) => t in e ? Xt(e, t, {
|
|
|
1075
1075
|
static queryValue(e) {
|
|
1076
1076
|
if (e !== void 0 && e.success) return e.value;
|
|
1077
1077
|
}
|
|
1078
|
-
},
|
|
1078
|
+
}, $t = class {
|
|
1079
1079
|
constructor() {
|
|
1080
|
-
|
|
1080
|
+
Zt(this, "queryResults"), Zt(this, "optimisticUpdates"), this.queryResults = /* @__PURE__ */ new Map(), this.optimisticUpdates = [];
|
|
1081
1081
|
}
|
|
1082
1082
|
ingestQueryResultsFromServer(e, t) {
|
|
1083
1083
|
this.optimisticUpdates = this.optimisticUpdates.filter((e) => !t.has(e.mutationId));
|
|
1084
1084
|
let n = this.queryResults;
|
|
1085
1085
|
this.queryResults = new Map(e);
|
|
1086
|
-
let r = new
|
|
1086
|
+
let r = new Qt(this.queryResults);
|
|
1087
1087
|
for (let e of this.optimisticUpdates) e.update(r);
|
|
1088
1088
|
let i = [];
|
|
1089
1089
|
for (let [e, t] of this.queryResults) {
|
|
@@ -1097,7 +1097,7 @@ var Xt = Object.defineProperty, Zt = (e, t, n) => t in e ? Xt(e, t, {
|
|
|
1097
1097
|
update: e,
|
|
1098
1098
|
mutationId: t
|
|
1099
1099
|
});
|
|
1100
|
-
let n = new
|
|
1100
|
+
let n = new Qt(this.queryResults);
|
|
1101
1101
|
return e(n), n.modifiedQueries;
|
|
1102
1102
|
}
|
|
1103
1103
|
rawQueryResult(e) {
|
|
@@ -1110,7 +1110,7 @@ var Xt = Object.defineProperty, Zt = (e, t, n) => t in e ? Xt(e, t, {
|
|
|
1110
1110
|
let n = t.result;
|
|
1111
1111
|
if (n !== void 0) {
|
|
1112
1112
|
if (n.success) return n.value;
|
|
1113
|
-
throw n.errorData === void 0 ? Error(
|
|
1113
|
+
throw n.errorData === void 0 ? Error(kt("query", t.udfPath, n)) : At(n, new vt(kt("query", t.udfPath, n)));
|
|
1114
1114
|
}
|
|
1115
1115
|
}
|
|
1116
1116
|
hasQueryResult(e) {
|
|
@@ -1119,14 +1119,14 @@ var Xt = Object.defineProperty, Zt = (e, t, n) => t in e ? Xt(e, t, {
|
|
|
1119
1119
|
queryLogs(e) {
|
|
1120
1120
|
return this.queryResults.get(e)?.result?.logLines;
|
|
1121
1121
|
}
|
|
1122
|
-
},
|
|
1122
|
+
}, en = Object.defineProperty, tn = (e, t, n) => t in e ? en(e, t, {
|
|
1123
1123
|
enumerable: !0,
|
|
1124
1124
|
configurable: !0,
|
|
1125
1125
|
writable: !0,
|
|
1126
1126
|
value: n
|
|
1127
|
-
}) : e[t] = n,
|
|
1127
|
+
}) : e[t] = n, nn = (e, t, n) => tn(e, typeof t == "symbol" ? t : t + "", n), rn = class e {
|
|
1128
1128
|
constructor(e, t) {
|
|
1129
|
-
|
|
1129
|
+
nn(this, "low"), nn(this, "high"), nn(this, "__isUnsignedLong__"), this.low = e | 0, this.high = t | 0, this.__isUnsignedLong__ = !0;
|
|
1130
1130
|
}
|
|
1131
1131
|
static isLong(e) {
|
|
1132
1132
|
return (e && e.__isUnsignedLong__) === !0;
|
|
@@ -1148,10 +1148,10 @@ var Xt = Object.defineProperty, Zt = (e, t, n) => t in e ? Xt(e, t, {
|
|
|
1148
1148
|
];
|
|
1149
1149
|
}
|
|
1150
1150
|
static fromNumber(t) {
|
|
1151
|
-
return isNaN(t) || t < 0 ?
|
|
1151
|
+
return isNaN(t) || t < 0 ? an : t >= cn ? ln : new e(t % sn | 0, t / sn | 0);
|
|
1152
1152
|
}
|
|
1153
1153
|
toString() {
|
|
1154
|
-
return (BigInt(this.high) * BigInt(
|
|
1154
|
+
return (BigInt(this.high) * BigInt(sn) + BigInt(this.low)).toString();
|
|
1155
1155
|
}
|
|
1156
1156
|
equals(t) {
|
|
1157
1157
|
return e.isLong(t) || (t = e.fromValue(t)), this.high >>> 31 == 1 && t.high >>> 31 == 1 ? !1 : this.high === t.high && this.low === t.low;
|
|
@@ -1168,16 +1168,16 @@ var Xt = Object.defineProperty, Zt = (e, t, n) => t in e ? Xt(e, t, {
|
|
|
1168
1168
|
static fromValue(t) {
|
|
1169
1169
|
return typeof t == "number" ? e.fromNumber(t) : new e(t.low, t.high);
|
|
1170
1170
|
}
|
|
1171
|
-
},
|
|
1171
|
+
}, an = new rn(0, 0), on = 65536, sn = on * on, cn = sn * sn, ln = new rn(-1, -1), un = Object.defineProperty, dn = (e, t, n) => t in e ? un(e, t, {
|
|
1172
1172
|
enumerable: !0,
|
|
1173
1173
|
configurable: !0,
|
|
1174
1174
|
writable: !0,
|
|
1175
1175
|
value: n
|
|
1176
|
-
}) : e[t] = n,
|
|
1176
|
+
}) : e[t] = n, fn = (e, t, n) => dn(e, typeof t == "symbol" ? t : t + "", n), pn = class {
|
|
1177
1177
|
constructor(e, t) {
|
|
1178
|
-
|
|
1178
|
+
fn(this, "version"), fn(this, "remoteQuerySet"), fn(this, "queryPath"), fn(this, "logger"), this.version = {
|
|
1179
1179
|
querySet: 0,
|
|
1180
|
-
ts:
|
|
1180
|
+
ts: rn.fromNumber(0),
|
|
1181
1181
|
identity: 0
|
|
1182
1182
|
}, this.remoteQuerySet = /* @__PURE__ */ new Map(), this.queryPath = e, this.logger = t;
|
|
1183
1183
|
}
|
|
@@ -1187,8 +1187,8 @@ var Xt = Object.defineProperty, Zt = (e, t, n) => t in e ? Xt(e, t, {
|
|
|
1187
1187
|
for (let t of e.modifications) switch (t.type) {
|
|
1188
1188
|
case "QueryUpdated": {
|
|
1189
1189
|
let e = this.queryPath(t.queryId);
|
|
1190
|
-
if (e) for (let n of t.logLines)
|
|
1191
|
-
let n =
|
|
1190
|
+
if (e) for (let n of t.logLines) Dt(this.logger, "info", "query", e, n);
|
|
1191
|
+
let n = at(t.value ?? null);
|
|
1192
1192
|
this.remoteQuerySet.set(t.queryId, {
|
|
1193
1193
|
success: !0,
|
|
1194
1194
|
value: n,
|
|
@@ -1198,12 +1198,12 @@ var Xt = Object.defineProperty, Zt = (e, t, n) => t in e ? Xt(e, t, {
|
|
|
1198
1198
|
}
|
|
1199
1199
|
case "QueryFailed": {
|
|
1200
1200
|
let e = this.queryPath(t.queryId);
|
|
1201
|
-
if (e) for (let n of t.logLines)
|
|
1201
|
+
if (e) for (let n of t.logLines) Dt(this.logger, "info", "query", e, n);
|
|
1202
1202
|
let { errorData: n } = t;
|
|
1203
1203
|
this.remoteQuerySet.set(t.queryId, {
|
|
1204
1204
|
success: !1,
|
|
1205
1205
|
errorMessage: t.errorMessage,
|
|
1206
|
-
errorData: n === void 0 ? void 0 :
|
|
1206
|
+
errorData: n === void 0 ? void 0 : at(n),
|
|
1207
1207
|
logLines: t.logLines
|
|
1208
1208
|
});
|
|
1209
1209
|
break;
|
|
@@ -1224,14 +1224,14 @@ var Xt = Object.defineProperty, Zt = (e, t, n) => t in e ? Xt(e, t, {
|
|
|
1224
1224
|
};
|
|
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
|
+
function mn(e) {
|
|
1228
|
+
let t = Re(e);
|
|
1229
|
+
return rn.fromBytesLE(Array.from(t));
|
|
1230
|
+
}
|
|
1227
1231
|
function hn(e) {
|
|
1228
|
-
|
|
1229
|
-
return an.fromBytesLE(Array.from(t));
|
|
1232
|
+
return Ve(new Uint8Array(e.toBytesLE()));
|
|
1230
1233
|
}
|
|
1231
1234
|
function gn(e) {
|
|
1232
|
-
return He(new Uint8Array(e.toBytesLE()));
|
|
1233
|
-
}
|
|
1234
|
-
function _n(e) {
|
|
1235
1235
|
switch (e.type) {
|
|
1236
1236
|
case "FatalError":
|
|
1237
1237
|
case "AuthError":
|
|
@@ -1240,23 +1240,23 @@ function _n(e) {
|
|
|
1240
1240
|
case "Ping": return { ...e };
|
|
1241
1241
|
case "MutationResponse": return e.success ? {
|
|
1242
1242
|
...e,
|
|
1243
|
-
ts:
|
|
1243
|
+
ts: mn(e.ts)
|
|
1244
1244
|
} : { ...e };
|
|
1245
1245
|
case "Transition": return {
|
|
1246
1246
|
...e,
|
|
1247
1247
|
startVersion: {
|
|
1248
1248
|
...e.startVersion,
|
|
1249
|
-
ts:
|
|
1249
|
+
ts: mn(e.startVersion.ts)
|
|
1250
1250
|
},
|
|
1251
1251
|
endVersion: {
|
|
1252
1252
|
...e.endVersion,
|
|
1253
|
-
ts:
|
|
1253
|
+
ts: mn(e.endVersion.ts)
|
|
1254
1254
|
}
|
|
1255
1255
|
};
|
|
1256
1256
|
default:
|
|
1257
1257
|
}
|
|
1258
1258
|
}
|
|
1259
|
-
function
|
|
1259
|
+
function _n(e) {
|
|
1260
1260
|
switch (e.type) {
|
|
1261
1261
|
case "Authenticate":
|
|
1262
1262
|
case "ModifyQuerySet":
|
|
@@ -1268,26 +1268,26 @@ function vn(e) {
|
|
|
1268
1268
|
maxObservedTimestamp: void 0
|
|
1269
1269
|
} : {
|
|
1270
1270
|
...e,
|
|
1271
|
-
maxObservedTimestamp:
|
|
1271
|
+
maxObservedTimestamp: hn(e.maxObservedTimestamp)
|
|
1272
1272
|
};
|
|
1273
1273
|
default:
|
|
1274
1274
|
}
|
|
1275
1275
|
}
|
|
1276
1276
|
//#endregion
|
|
1277
1277
|
//#region ../../node_modules/.pnpm/convex@1.37.0_react@19.2.6/node_modules/convex/dist/esm/browser/sync/web_socket_manager.js
|
|
1278
|
-
var
|
|
1278
|
+
var vn = Object.defineProperty, yn = (e, t, n) => t in e ? vn(e, t, {
|
|
1279
1279
|
enumerable: !0,
|
|
1280
1280
|
configurable: !0,
|
|
1281
1281
|
writable: !0,
|
|
1282
1282
|
value: n
|
|
1283
|
-
}) : e[t] = n,
|
|
1284
|
-
function
|
|
1285
|
-
return
|
|
1283
|
+
}) : e[t] = n, q = (e, t, n) => yn(e, typeof t == "symbol" ? t : t + "", n), bn = 1e3, xn = 1001, Sn = 1005, Cn = 4040, wn;
|
|
1284
|
+
function Tn() {
|
|
1285
|
+
return wn === void 0 && (wn = Date.now()), typeof performance > "u" || !performance.now ? Date.now() : Math.round(wn + performance.now());
|
|
1286
1286
|
}
|
|
1287
|
-
function
|
|
1288
|
-
return `t=${Math.round((
|
|
1287
|
+
function En() {
|
|
1288
|
+
return `t=${Math.round((Tn() - wn) / 100) / 10}s`;
|
|
1289
1289
|
}
|
|
1290
|
-
var
|
|
1290
|
+
var Dn = {
|
|
1291
1291
|
InternalServerError: { timeout: 1e3 },
|
|
1292
1292
|
SubscriptionsWorkerFullError: { timeout: 3e3 },
|
|
1293
1293
|
TooManyConcurrentRequests: { timeout: 3e3 },
|
|
@@ -1303,14 +1303,14 @@ var On = {
|
|
|
1303
1303
|
SearchIndexTooLarge: { timeout: 3e3 },
|
|
1304
1304
|
TooManyWritesInTimePeriod: { timeout: 3e3 }
|
|
1305
1305
|
};
|
|
1306
|
-
function
|
|
1306
|
+
function On(e) {
|
|
1307
1307
|
if (e === void 0) return "Unknown";
|
|
1308
|
-
for (let t of Object.keys(
|
|
1308
|
+
for (let t of Object.keys(Dn)) if (e.startsWith(t)) return t;
|
|
1309
1309
|
return "Unknown";
|
|
1310
1310
|
}
|
|
1311
|
-
var
|
|
1311
|
+
var kn = class {
|
|
1312
1312
|
constructor(e, t, n, r, i, a) {
|
|
1313
|
-
this.markConnectionStateDirty = i, this.debug = a,
|
|
1313
|
+
this.markConnectionStateDirty = i, this.debug = a, q(this, "socket"), q(this, "connectionCount"), q(this, "_hasEverConnected", !1), q(this, "lastCloseReason"), q(this, "transitionChunkBuffer", null), q(this, "defaultInitialBackoff"), q(this, "maxBackoff"), q(this, "retries"), q(this, "serverInactivityThreshold"), q(this, "reconnectDueToServerInactivityTimeout"), q(this, "scheduledReconnect", null), q(this, "networkOnlineHandler", null), q(this, "pendingNetworkRecoveryInfo", null), q(this, "uri"), q(this, "onOpen"), q(this, "onResume"), q(this, "onMessage"), q(this, "webSocketConstructor"), q(this, "logger"), q(this, "onServerDisconnectError"), this.webSocketConstructor = n, this.socket = { state: "disconnected" }, this.connectionCount = 0, this.lastCloseReason = "InitialConnect", this.defaultInitialBackoff = 1e3, this.maxBackoff = 16e3, this.retries = 0, this.serverInactivityThreshold = 6e4, this.reconnectDueToServerInactivityTimeout = null, this.uri = e, this.onOpen = t.onOpen, this.onResume = t.onResume, this.onMessage = t.onMessage, this.onServerDisconnectError = t.onServerDisconnectError, this.logger = r, this.setupNetworkListener(), this.connect();
|
|
1314
1314
|
}
|
|
1315
1315
|
setSocketState(e) {
|
|
1316
1316
|
this.socket = e, this._logVerbose(`socket state changed: ${this.socket.state}, paused: ${"paused" in this.socket ? this.socket.paused : void 0}`), this.markConnectionStateDirty();
|
|
@@ -1336,7 +1336,7 @@ var An = class {
|
|
|
1336
1336
|
if (this.transitionChunkBuffer.chunks.push(e.chunk), this.transitionChunkBuffer.chunks.length === e.totalParts) {
|
|
1337
1337
|
let e = this.transitionChunkBuffer.chunks.join("");
|
|
1338
1338
|
this.transitionChunkBuffer = null;
|
|
1339
|
-
let t =
|
|
1339
|
+
let t = gn(JSON.parse(e));
|
|
1340
1340
|
if (t.type !== "Transition") throw Error(`Expected Transition, got ${t.type} after assembling chunks`);
|
|
1341
1341
|
return t;
|
|
1342
1342
|
}
|
|
@@ -1359,8 +1359,8 @@ var An = class {
|
|
|
1359
1359
|
}), this.resetServerInactivityTimeout(), this.socket.paused === "no" && (this._hasEverConnected = !0, this.onOpen({
|
|
1360
1360
|
connectionCount: this.connectionCount,
|
|
1361
1361
|
lastCloseReason: this.lastCloseReason,
|
|
1362
|
-
clientTs:
|
|
1363
|
-
})), this.lastCloseReason !== "InitialConnect" && (this.lastCloseReason ? this.logger.log("WebSocket reconnected at",
|
|
1362
|
+
clientTs: Tn()
|
|
1363
|
+
})), this.lastCloseReason !== "InitialConnect" && (this.lastCloseReason ? this.logger.log("WebSocket reconnected at", En(), "after disconnect due to", this.lastCloseReason) : this.logger.log("WebSocket reconnected at", En())), this.connectionCount += 1, this.lastCloseReason = null, this.pendingNetworkRecoveryInfo !== null) {
|
|
1364
1364
|
let { timeSavedMs: e } = this.pendingNetworkRecoveryInfo;
|
|
1365
1365
|
this.pendingNetworkRecoveryInfo = null, this.sendMessage({
|
|
1366
1366
|
type: "Event",
|
|
@@ -1374,7 +1374,7 @@ var An = class {
|
|
|
1374
1374
|
t && this.logger.log(`WebSocket error message: ${t}`);
|
|
1375
1375
|
}, e.onmessage = (e) => {
|
|
1376
1376
|
this.resetServerInactivityTimeout();
|
|
1377
|
-
let t = e.data.length, n =
|
|
1377
|
+
let t = e.data.length, n = gn(JSON.parse(e.data));
|
|
1378
1378
|
if (this._logVerbose(`received ws message with type ${n.type}`), n.type !== "Ping") {
|
|
1379
1379
|
if (n.type === "TransitionChunk") {
|
|
1380
1380
|
let e = this.assembleTransition(n);
|
|
@@ -1387,11 +1387,11 @@ var An = class {
|
|
|
1387
1387
|
}), this.onMessage(n).hasSyncedPastLastReconnect && (this.retries = 0, this.markConnectionStateDirty());
|
|
1388
1388
|
}
|
|
1389
1389
|
}, e.onclose = (e) => {
|
|
1390
|
-
if (this._logVerbose("begin ws.onclose"), this.transitionChunkBuffer = null, this.lastCloseReason === null && (this.lastCloseReason = e.reason || `closed with code ${e.code}`), e.code !==
|
|
1390
|
+
if (this._logVerbose("begin ws.onclose"), this.transitionChunkBuffer = null, this.lastCloseReason === null && (this.lastCloseReason = e.reason || `closed with code ${e.code}`), e.code !== bn && e.code !== xn && e.code !== Sn && e.code !== Cn) {
|
|
1391
1391
|
let t = `WebSocket closed with code ${e.code}`;
|
|
1392
1392
|
e.reason && (t += `: ${e.reason}`), this.logger.log(t), this.onServerDisconnectError && e.reason && this.onServerDisconnectError(t);
|
|
1393
1393
|
}
|
|
1394
|
-
let t =
|
|
1394
|
+
let t = On(e.reason);
|
|
1395
1395
|
this.scheduleReconnect(t);
|
|
1396
1396
|
};
|
|
1397
1397
|
}
|
|
@@ -1404,7 +1404,7 @@ var An = class {
|
|
|
1404
1404
|
...e.type === "Authenticate" && e.tokenType === "User" ? { value: `...${e.value.slice(-7)}` } : {}
|
|
1405
1405
|
};
|
|
1406
1406
|
if (this.socket.state === "ready" && this.socket.paused === "no") {
|
|
1407
|
-
let n =
|
|
1407
|
+
let n = _n(e), r = JSON.stringify(n), i = !1;
|
|
1408
1408
|
try {
|
|
1409
1409
|
this.socket.ws.send(r), i = !0;
|
|
1410
1410
|
} catch (e) {
|
|
@@ -1423,7 +1423,7 @@ var An = class {
|
|
|
1423
1423
|
this.scheduledReconnect &&= (clearTimeout(this.scheduledReconnect.timeout), null), this.socket = { state: "disconnected" };
|
|
1424
1424
|
let t = this.nextBackoff(e);
|
|
1425
1425
|
this.markConnectionStateDirty(), this.logger.log(`Attempting reconnect in ${Math.round(t)}ms`);
|
|
1426
|
-
let n =
|
|
1426
|
+
let n = Tn(), r = setTimeout(() => {
|
|
1427
1427
|
this.scheduledReconnect?.timeout === r && (this.scheduledReconnect = null, this.connect());
|
|
1428
1428
|
}, t);
|
|
1429
1429
|
this.scheduledReconnect = {
|
|
@@ -1541,7 +1541,7 @@ var An = class {
|
|
|
1541
1541
|
}
|
|
1542
1542
|
let e = null;
|
|
1543
1543
|
if (this.scheduledReconnect) {
|
|
1544
|
-
let t =
|
|
1544
|
+
let t = Tn() - this.scheduledReconnect.scheduledAt;
|
|
1545
1545
|
e = Math.max(0, this.scheduledReconnect.backoffMs - t), this._logVerbose(`would have waited ${Math.round(e)}ms more (backoff was ${Math.round(this.scheduledReconnect.backoffMs)}ms, elapsed ${Math.round(t)}ms)`), clearTimeout(this.scheduledReconnect.timeout), this.scheduledReconnect = null, this._logVerbose("canceled scheduled reconnect");
|
|
1546
1546
|
}
|
|
1547
1547
|
this.logger.log("Network recovery detected, reconnecting immediately"), this.pendingNetworkRecoveryInfo = e === null ? null : { timeSavedMs: e }, this.connect();
|
|
@@ -1561,7 +1561,7 @@ var An = class {
|
|
|
1561
1561
|
}, this._hasEverConnected = !0, this.onOpen({
|
|
1562
1562
|
connectionCount: this.connectionCount,
|
|
1563
1563
|
lastCloseReason: this.lastCloseReason,
|
|
1564
|
-
clientTs:
|
|
1564
|
+
clientTs: Tn()
|
|
1565
1565
|
})) : this.socket.paused === "yes" && (this.socket = {
|
|
1566
1566
|
...this.socket,
|
|
1567
1567
|
paused: "no"
|
|
@@ -1586,14 +1586,14 @@ var An = class {
|
|
|
1586
1586
|
this.logger.logVerbose(e);
|
|
1587
1587
|
}
|
|
1588
1588
|
nextBackoff(e) {
|
|
1589
|
-
let t = (e === "client" ? 100 : e === "Unknown" ? this.defaultInitialBackoff :
|
|
1589
|
+
let t = (e === "client" ? 100 : e === "Unknown" ? this.defaultInitialBackoff : Dn[e].timeout) * 2 ** this.retries;
|
|
1590
1590
|
this.retries += 1;
|
|
1591
1591
|
let n = Math.min(t, this.maxBackoff);
|
|
1592
1592
|
return n + n * (Math.random() - .5);
|
|
1593
1593
|
}
|
|
1594
1594
|
reportLargeTransition({ transition: e, messageLength: t }) {
|
|
1595
1595
|
if (e.clientClockSkew === void 0 || e.serverTs === void 0) return;
|
|
1596
|
-
let n =
|
|
1596
|
+
let n = Tn() - e.clientClockSkew - e.serverTs / 1e6, r = `${Math.round(n)}ms`, i = `${Math.round(t / 1e4) / 100}MB`, a = t / (n / 1e3), o = `${Math.round(a / 1e4) / 100}MB per second`;
|
|
1597
1597
|
this._logVerbose(`received ${i} transition in ${r} at ${o}`), t > 2e7 ? this.logger.log(`received query results totaling more that 20MB (${i}) which will take a long time to download on slower connections`) : n > 2e4 && this.logger.log(`received query results totaling ${i} which took more than 20s to arrive (${r})`), this.debug && this.sendMessage({
|
|
1598
1598
|
type: "Event",
|
|
1599
1599
|
eventType: "ClientReceivedTransition",
|
|
@@ -1606,10 +1606,10 @@ var An = class {
|
|
|
1606
1606
|
};
|
|
1607
1607
|
//#endregion
|
|
1608
1608
|
//#region ../../node_modules/.pnpm/convex@1.37.0_react@19.2.6/node_modules/convex/dist/esm/browser/sync/session.js
|
|
1609
|
-
function
|
|
1610
|
-
return
|
|
1609
|
+
function An() {
|
|
1610
|
+
return jn();
|
|
1611
1611
|
}
|
|
1612
|
-
function
|
|
1612
|
+
function jn() {
|
|
1613
1613
|
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (e) => {
|
|
1614
1614
|
let t = Math.random() * 16 | 0;
|
|
1615
1615
|
return (e === "x" ? t : t & 3 | 8).toString(16);
|
|
@@ -1617,15 +1617,15 @@ function Mn() {
|
|
|
1617
1617
|
}
|
|
1618
1618
|
//#endregion
|
|
1619
1619
|
//#region ../../node_modules/.pnpm/convex@1.37.0_react@19.2.6/node_modules/convex/dist/esm/vendor/jwt-decode/index.js
|
|
1620
|
-
var
|
|
1621
|
-
|
|
1622
|
-
function
|
|
1620
|
+
var Mn = class extends Error {};
|
|
1621
|
+
Mn.prototype.name = "InvalidTokenError";
|
|
1622
|
+
function Nn(e) {
|
|
1623
1623
|
return decodeURIComponent(atob(e).replace(/(.)/g, (e, t) => {
|
|
1624
1624
|
let n = t.charCodeAt(0).toString(16).toUpperCase();
|
|
1625
1625
|
return n.length < 2 && (n = "0" + n), "%" + n;
|
|
1626
1626
|
}));
|
|
1627
1627
|
}
|
|
1628
|
-
function
|
|
1628
|
+
function Pn(e) {
|
|
1629
1629
|
let t = e.replace(/-/g, "+").replace(/_/g, "/");
|
|
1630
1630
|
switch (t.length % 4) {
|
|
1631
1631
|
case 0: break;
|
|
@@ -1638,38 +1638,38 @@ function Fn(e) {
|
|
|
1638
1638
|
default: throw Error("base64 string is not of the correct length");
|
|
1639
1639
|
}
|
|
1640
1640
|
try {
|
|
1641
|
-
return
|
|
1641
|
+
return Nn(t);
|
|
1642
1642
|
} catch {
|
|
1643
1643
|
return atob(t);
|
|
1644
1644
|
}
|
|
1645
1645
|
}
|
|
1646
|
-
function
|
|
1647
|
-
if (typeof e != "string") throw new
|
|
1646
|
+
function Fn(e, t) {
|
|
1647
|
+
if (typeof e != "string") throw new Mn("Invalid token specified: must be a string");
|
|
1648
1648
|
t ||= {};
|
|
1649
1649
|
let n = t.header === !0 ? 0 : 1, r = e.split(".")[n];
|
|
1650
|
-
if (typeof r != "string") throw new
|
|
1650
|
+
if (typeof r != "string") throw new Mn(`Invalid token specified: missing part #${n + 1}`);
|
|
1651
1651
|
let i;
|
|
1652
1652
|
try {
|
|
1653
|
-
i =
|
|
1653
|
+
i = Pn(r);
|
|
1654
1654
|
} catch (e) {
|
|
1655
|
-
throw new
|
|
1655
|
+
throw new Mn(`Invalid token specified: invalid base64 for part #${n + 1} (${e.message})`);
|
|
1656
1656
|
}
|
|
1657
1657
|
try {
|
|
1658
1658
|
return JSON.parse(i);
|
|
1659
1659
|
} catch (e) {
|
|
1660
|
-
throw new
|
|
1660
|
+
throw new Mn(`Invalid token specified: invalid json for part #${n + 1} (${e.message})`);
|
|
1661
1661
|
}
|
|
1662
1662
|
}
|
|
1663
1663
|
//#endregion
|
|
1664
1664
|
//#region ../../node_modules/.pnpm/convex@1.37.0_react@19.2.6/node_modules/convex/dist/esm/browser/sync/authentication_manager.js
|
|
1665
|
-
var
|
|
1665
|
+
var In = Object.defineProperty, Ln = (e, t, n) => t in e ? In(e, t, {
|
|
1666
1666
|
enumerable: !0,
|
|
1667
1667
|
configurable: !0,
|
|
1668
1668
|
writable: !0,
|
|
1669
1669
|
value: n
|
|
1670
|
-
}) : e[t] = n,
|
|
1670
|
+
}) : e[t] = n, J = (e, t, n) => Ln(e, typeof t == "symbol" ? t : t + "", n), Rn = 480 * 60 * 60 * 1e3, zn = 2, Bn = class {
|
|
1671
1671
|
constructor(e, t, n) {
|
|
1672
|
-
|
|
1672
|
+
J(this, "authState", { state: "noAuth" }), J(this, "configVersion", 0), J(this, "syncState"), J(this, "authenticate"), J(this, "stopSocket"), J(this, "tryRestartSocket"), J(this, "pauseSocket"), J(this, "resumeSocket"), J(this, "clearAuth"), J(this, "logger"), J(this, "refreshTokenLeewaySeconds"), J(this, "tokenConfirmationAttempts", 0), this.syncState = e, this.authenticate = t.authenticate, this.stopSocket = t.stopSocket, this.tryRestartSocket = t.tryRestartSocket, this.pauseSocket = t.pauseSocket, this.resumeSocket = t.resumeSocket, this.clearAuth = t.clearAuth, this.logger = n.logger, this.refreshTokenLeewaySeconds = n.refreshTokenLeewaySeconds;
|
|
1673
1673
|
}
|
|
1674
1674
|
async setConfig(e, t) {
|
|
1675
1675
|
this.resetAuthState(), this._logVerbose("pausing WS for auth token fetch"), this.pauseSocket();
|
|
@@ -1711,11 +1711,11 @@ var Ln = Object.defineProperty, Rn = (e, t, n) => t in e ? Ln(e, t, {
|
|
|
1711
1711
|
this.tryToReauthenticate(e);
|
|
1712
1712
|
}
|
|
1713
1713
|
async tryToReauthenticate(e) {
|
|
1714
|
-
if (this._logVerbose(`attempting to reauthenticate: ${e.error}`), this.authState.state === "noAuth" || this.authState.state === "waitingForServerConfirmationOfFreshToken" && this.tokenConfirmationAttempts >=
|
|
1714
|
+
if (this._logVerbose(`attempting to reauthenticate: ${e.error}`), this.authState.state === "noAuth" || this.authState.state === "waitingForServerConfirmationOfFreshToken" && this.tokenConfirmationAttempts >= zn) {
|
|
1715
1715
|
this.logger.error(`Failed to authenticate: "${e.error}", check your server auth config`), this.syncState.hasAuth() && this.syncState.clearAuth(), this.authState.state !== "noAuth" && this.setAndReportAuthFailed(this.authState.config.onAuthChange);
|
|
1716
1716
|
return;
|
|
1717
1717
|
}
|
|
1718
|
-
this.authState.state === "waitingForServerConfirmationOfFreshToken" && (this.tokenConfirmationAttempts++, this._logVerbose(`retrying reauthentication, ${
|
|
1718
|
+
this.authState.state === "waitingForServerConfirmationOfFreshToken" && (this.tokenConfirmationAttempts++, this._logVerbose(`retrying reauthentication, ${zn - this.tokenConfirmationAttempts} attempts remaining`)), await this.stopSocket();
|
|
1719
1719
|
let t = await this.fetchTokenAndGuardAgainstRace(this.authState.config.fetchToken, { forceRefreshToken: !0 });
|
|
1720
1720
|
t.isFromOutdatedConfig || (t.value && this.syncState.isNewAuth(t.value) ? (this.authenticate(t.value), this.setAuthState({
|
|
1721
1721
|
state: "waitingForServerConfirmationOfFreshToken",
|
|
@@ -1755,7 +1755,7 @@ var Ln = Object.defineProperty, Rn = (e, t, n) => t in e ? Ln(e, t, {
|
|
|
1755
1755
|
this.logger.error("Auth token does not live long enough, cannot refetch the token");
|
|
1756
1756
|
return;
|
|
1757
1757
|
}
|
|
1758
|
-
let a = Math.min(
|
|
1758
|
+
let a = Math.min(Rn, (i - this.refreshTokenLeewaySeconds) * 1e3);
|
|
1759
1759
|
a <= 0 && (this.logger.warn(`Refetching auth token immediately, configured leeway ${this.refreshTokenLeewaySeconds}s is larger than the token's lifetime ${i}s`), a = 0);
|
|
1760
1760
|
let o = setTimeout(() => {
|
|
1761
1761
|
this._logVerbose("running scheduled token refetch"), this.refetchToken();
|
|
@@ -1805,7 +1805,7 @@ var Ln = Object.defineProperty, Rn = (e, t, n) => t in e ? Ln(e, t, {
|
|
|
1805
1805
|
}
|
|
1806
1806
|
decodeToken(e) {
|
|
1807
1807
|
try {
|
|
1808
|
-
return
|
|
1808
|
+
return Fn(e);
|
|
1809
1809
|
} catch (e) {
|
|
1810
1810
|
return this._logVerbose(`Error decoding token: ${e instanceof Error ? e.message : "Unknown error"}`), null;
|
|
1811
1811
|
}
|
|
@@ -1813,41 +1813,41 @@ var Ln = Object.defineProperty, Rn = (e, t, n) => t in e ? Ln(e, t, {
|
|
|
1813
1813
|
_logVerbose(e) {
|
|
1814
1814
|
this.logger.logVerbose(`${e} [v${this.configVersion}]`);
|
|
1815
1815
|
}
|
|
1816
|
-
},
|
|
1816
|
+
}, Vn = [
|
|
1817
1817
|
"convexClientConstructed",
|
|
1818
1818
|
"convexWebSocketOpen",
|
|
1819
1819
|
"convexFirstMessageReceived"
|
|
1820
1820
|
];
|
|
1821
|
-
function
|
|
1821
|
+
function Hn(e, t) {
|
|
1822
1822
|
let n = { sessionId: t };
|
|
1823
1823
|
typeof performance > "u" || !performance.mark || performance.mark(e, { detail: n });
|
|
1824
1824
|
}
|
|
1825
|
-
function
|
|
1825
|
+
function Un(e) {
|
|
1826
1826
|
let t = e.name.slice(6);
|
|
1827
1827
|
return t = t.charAt(0).toLowerCase() + t.slice(1), {
|
|
1828
1828
|
name: t,
|
|
1829
1829
|
startTime: e.startTime
|
|
1830
1830
|
};
|
|
1831
1831
|
}
|
|
1832
|
-
function
|
|
1832
|
+
function Wn(e) {
|
|
1833
1833
|
if (typeof performance > "u" || !performance.getEntriesByName) return [];
|
|
1834
1834
|
let t = [];
|
|
1835
|
-
for (let n of
|
|
1835
|
+
for (let n of Vn) {
|
|
1836
1836
|
let r = performance.getEntriesByName(n).filter((e) => e.entryType === "mark").filter((t) => t.detail.sessionId === e);
|
|
1837
1837
|
t.push(...r);
|
|
1838
1838
|
}
|
|
1839
|
-
return t.map(
|
|
1839
|
+
return t.map(Un);
|
|
1840
1840
|
}
|
|
1841
1841
|
//#endregion
|
|
1842
1842
|
//#region ../../node_modules/.pnpm/convex@1.37.0_react@19.2.6/node_modules/convex/dist/esm/browser/sync/client.js
|
|
1843
|
-
var
|
|
1843
|
+
var Gn = Object.defineProperty, Kn = (e, t, n) => t in e ? Gn(e, t, {
|
|
1844
1844
|
enumerable: !0,
|
|
1845
1845
|
configurable: !0,
|
|
1846
1846
|
writable: !0,
|
|
1847
1847
|
value: n
|
|
1848
|
-
}) : e[t] = n,
|
|
1848
|
+
}) : e[t] = n, Y = (e, t, n) => Kn(e, typeof t == "symbol" ? t : t + "", n), qn = class {
|
|
1849
1849
|
constructor(e, t, n) {
|
|
1850
|
-
if (
|
|
1850
|
+
if (Y(this, "address"), Y(this, "state"), Y(this, "requestManager"), Y(this, "webSocketManager"), Y(this, "authenticationManager"), Y(this, "remoteQuerySet"), Y(this, "optimisticQueryResults"), Y(this, "_transitionHandlerCounter", 0), Y(this, "_nextRequestId"), Y(this, "_onTransitionFns", /* @__PURE__ */ new Map()), Y(this, "_sessionId"), Y(this, "firstMessageReceived", !1), Y(this, "debug"), Y(this, "logger"), Y(this, "maxObservedTimestamp"), Y(this, "connectionStateSubscribers", /* @__PURE__ */ new Map()), Y(this, "nextConnectionStateSubscriberId", 0), Y(this, "_lastPublishedConnectionState"), Y(this, "markConnectionStateDirty", () => {
|
|
1851
1851
|
Promise.resolve().then(() => {
|
|
1852
1852
|
let e = this.connectionState();
|
|
1853
1853
|
if (JSON.stringify(e) !== JSON.stringify(this._lastPublishedConnectionState)) {
|
|
@@ -1855,25 +1855,25 @@ var Kn = Object.defineProperty, qn = (e, t, n) => t in e ? Kn(e, t, {
|
|
|
1855
1855
|
for (let t of this.connectionStateSubscribers.values()) t(e);
|
|
1856
1856
|
}
|
|
1857
1857
|
});
|
|
1858
|
-
}),
|
|
1859
|
-
this.debug &&
|
|
1858
|
+
}), Y(this, "mark", (e) => {
|
|
1859
|
+
this.debug && Hn(e, this.sessionId);
|
|
1860
1860
|
}), typeof e == "object") throw Error("Passing a ClientConfig object is no longer supported. Pass the URL of the Convex deployment as a string directly.");
|
|
1861
|
-
n?.skipConvexDeploymentUrlCheck !== !0 &&
|
|
1861
|
+
n?.skipConvexDeploymentUrlCheck !== !0 && He(e), n = { ...n };
|
|
1862
1862
|
let r = n.authRefreshTokenLeewaySeconds ?? 10, i = n.webSocketConstructor;
|
|
1863
1863
|
if (!i && typeof WebSocket > "u") throw Error("No WebSocket global variable defined! To use Convex in an environment without WebSocket try the HTTP client: https://docs.convex.dev/api/classes/browser.ConvexHttpClient");
|
|
1864
|
-
i ||= WebSocket, this.debug = n.reportDebugInfoToConvex ?? !1, this.address = e, this.logger = n.logger === !1 ?
|
|
1864
|
+
i ||= WebSocket, this.debug = n.reportDebugInfoToConvex ?? !1, this.address = e, this.logger = n.logger === !1 ? Et({ verbose: n.verbose ?? !1 }) : n.logger !== !0 && n.logger ? n.logger : Tt({ verbose: n.verbose ?? !1 });
|
|
1865
1865
|
let a = e.search("://");
|
|
1866
1866
|
if (a === -1) throw Error("Provided address was not an absolute URL.");
|
|
1867
1867
|
let o = e.substring(a + 3), s = e.substring(0, a), c;
|
|
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/${
|
|
1872
|
-
this.state = new
|
|
1871
|
+
let l = `${c}://${o}/api/${je}/sync`;
|
|
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();
|
|
1875
1875
|
};
|
|
1876
|
-
this.authenticationManager = new
|
|
1876
|
+
this.authenticationManager = new Bn(this.state, {
|
|
1877
1877
|
authenticate: (e) => {
|
|
1878
1878
|
let t = this.state.setAuth(e);
|
|
1879
1879
|
return this.webSocketManager.sendMessage(t), t.baseVersion;
|
|
@@ -1888,9 +1888,9 @@ var Kn = Object.defineProperty, qn = (e, t, n) => t in e ? Kn(e, t, {
|
|
|
1888
1888
|
}, {
|
|
1889
1889
|
logger: this.logger,
|
|
1890
1890
|
refreshTokenLeewaySeconds: r
|
|
1891
|
-
}), this.optimisticQueryResults = new
|
|
1891
|
+
}), this.optimisticQueryResults = new $t(), this.addOnTransitionHandler((e) => {
|
|
1892
1892
|
t(e.queries.map((e) => e.token));
|
|
1893
|
-
}), this._nextRequestId = 0, this._sessionId =
|
|
1893
|
+
}), this._nextRequestId = 0, this._sessionId = An();
|
|
1894
1894
|
let { unsavedChangesWarning: d } = n;
|
|
1895
1895
|
if (typeof window > "u" || window.addEventListener === void 0) {
|
|
1896
1896
|
if (d === !0) throw Error("unsavedChangesWarning requested, but window.addEventListener not found! Remove {unsavedChangesWarning: true} from Convex client options.");
|
|
@@ -1901,14 +1901,14 @@ var Kn = Object.defineProperty, qn = (e, t, n) => t in e ? Kn(e, t, {
|
|
|
1901
1901
|
return (e || window.event).returnValue = t, t;
|
|
1902
1902
|
}
|
|
1903
1903
|
});
|
|
1904
|
-
this.webSocketManager = new
|
|
1904
|
+
this.webSocketManager = new kn(l, {
|
|
1905
1905
|
onOpen: (e) => {
|
|
1906
1906
|
this.mark("convexWebSocketOpen"), this.webSocketManager.sendMessage({
|
|
1907
1907
|
...e,
|
|
1908
1908
|
type: "Connect",
|
|
1909
1909
|
sessionId: this._sessionId,
|
|
1910
1910
|
maxObservedTimestamp: this.maxObservedTimestamp
|
|
1911
|
-
}), this.remoteQuerySet = new
|
|
1911
|
+
}), this.remoteQuerySet = new pn((e) => this.state.queryPath(e), this.logger);
|
|
1912
1912
|
let [t, n] = this.state.restart();
|
|
1913
1913
|
n && this.webSocketManager.sendMessage(n), this.webSocketManager.sendMessage(t);
|
|
1914
1914
|
for (let e of this.requestManager.restart()) this.webSocketManager.sendMessage(e);
|
|
@@ -1939,7 +1939,7 @@ var Kn = Object.defineProperty, qn = (e, t, n) => t in e ? Kn(e, t, {
|
|
|
1939
1939
|
this.authenticationManager.onAuthError(e);
|
|
1940
1940
|
break;
|
|
1941
1941
|
case "FatalError": {
|
|
1942
|
-
let t =
|
|
1942
|
+
let t = Ot(this.logger, e.error);
|
|
1943
1943
|
throw this.webSocketManager.terminate(), t;
|
|
1944
1944
|
}
|
|
1945
1945
|
default:
|
|
@@ -1997,7 +1997,7 @@ var Kn = Object.defineProperty, qn = (e, t, n) => t in e ? Kn(e, t, {
|
|
|
1997
1997
|
getCurrentAuthClaims() {
|
|
1998
1998
|
let e = this.state.getAuth(), t = {};
|
|
1999
1999
|
if (e && e.tokenType === "User") try {
|
|
2000
|
-
t = e ?
|
|
2000
|
+
t = e ? Fn(e.value) : {};
|
|
2001
2001
|
} catch {
|
|
2002
2002
|
t = {};
|
|
2003
2003
|
}
|
|
@@ -2022,7 +2022,7 @@ var Kn = Object.defineProperty, qn = (e, t, n) => t in e ? Kn(e, t, {
|
|
|
2022
2022
|
this.webSocketManager.sendMessage(e);
|
|
2023
2023
|
}
|
|
2024
2024
|
subscribe(e, t, n) {
|
|
2025
|
-
let r =
|
|
2025
|
+
let r = W(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 Kn = Object.defineProperty, qn = (e, t, n) => t in e ? Kn(e, t, {
|
|
|
2032
2032
|
};
|
|
2033
2033
|
}
|
|
2034
2034
|
localQueryResult(e, t) {
|
|
2035
|
-
let n =
|
|
2035
|
+
let n = Mt(e, W(t));
|
|
2036
2036
|
return this.optimisticQueryResults.queryResult(n);
|
|
2037
2037
|
}
|
|
2038
2038
|
localQueryResultByToken(e) {
|
|
@@ -2042,11 +2042,11 @@ var Kn = Object.defineProperty, qn = (e, t, n) => t in e ? Kn(e, t, {
|
|
|
2042
2042
|
return this.optimisticQueryResults.hasQueryResult(e);
|
|
2043
2043
|
}
|
|
2044
2044
|
localQueryLogs(e, t) {
|
|
2045
|
-
let n =
|
|
2045
|
+
let n = Mt(e, W(t));
|
|
2046
2046
|
return this.optimisticQueryResults.queryLogs(n);
|
|
2047
2047
|
}
|
|
2048
2048
|
queryJournal(e, t) {
|
|
2049
|
-
let n =
|
|
2049
|
+
let n = Mt(e, W(t));
|
|
2050
2050
|
return this.state.queryJournal(n);
|
|
2051
2051
|
}
|
|
2052
2052
|
connectionState() {
|
|
@@ -2070,7 +2070,7 @@ var Kn = Object.defineProperty, qn = (e, t, n) => t in e ? Kn(e, t, {
|
|
|
2070
2070
|
}
|
|
2071
2071
|
async mutation(e, t, n) {
|
|
2072
2072
|
let r = await this.mutationInternal(e, t, n);
|
|
2073
|
-
if (!r.success) throw r.errorData === void 0 ? Error(
|
|
2073
|
+
if (!r.success) throw r.errorData === void 0 ? Error(kt("mutation", e, r)) : At(r, new vt(kt("mutation", e, r)));
|
|
2074
2074
|
return r.value;
|
|
2075
2075
|
}
|
|
2076
2076
|
async mutationInternal(e, t, n, r) {
|
|
@@ -2078,7 +2078,7 @@ var Kn = Object.defineProperty, qn = (e, t, n) => t in e ? Kn(e, t, {
|
|
|
2078
2078
|
return i;
|
|
2079
2079
|
}
|
|
2080
2080
|
enqueueMutation(e, t, n, r) {
|
|
2081
|
-
let i =
|
|
2081
|
+
let i = W(t);
|
|
2082
2082
|
this.tryReportLongDisconnect();
|
|
2083
2083
|
let a = this.nextRequestId;
|
|
2084
2084
|
if (this._nextRequestId++, n !== void 0) {
|
|
@@ -2112,7 +2112,7 @@ var Kn = Object.defineProperty, qn = (e, t, n) => t in e ? Kn(e, t, {
|
|
|
2112
2112
|
requestId: a,
|
|
2113
2113
|
udfPath: e,
|
|
2114
2114
|
componentPath: r,
|
|
2115
|
-
args: [
|
|
2115
|
+
args: [dt(i)]
|
|
2116
2116
|
}, s = this.webSocketManager.sendMessage(o);
|
|
2117
2117
|
return {
|
|
2118
2118
|
requestId: a,
|
|
@@ -2121,18 +2121,18 @@ var Kn = Object.defineProperty, qn = (e, t, n) => t in e ? Kn(e, t, {
|
|
|
2121
2121
|
}
|
|
2122
2122
|
async action(e, t) {
|
|
2123
2123
|
let n = await this.actionInternal(e, t);
|
|
2124
|
-
if (!n.success) throw n.errorData === void 0 ? Error(
|
|
2124
|
+
if (!n.success) throw n.errorData === void 0 ? Error(kt("action", e, n)) : At(n, new vt(kt("action", e, n)));
|
|
2125
2125
|
return n.value;
|
|
2126
2126
|
}
|
|
2127
2127
|
async actionInternal(e, t, n) {
|
|
2128
|
-
let r =
|
|
2128
|
+
let r = W(t), i = this.nextRequestId;
|
|
2129
2129
|
this._nextRequestId++, this.tryReportLongDisconnect();
|
|
2130
2130
|
let a = {
|
|
2131
2131
|
type: "Action",
|
|
2132
2132
|
requestId: i,
|
|
2133
2133
|
udfPath: e,
|
|
2134
2134
|
componentPath: n,
|
|
2135
|
-
args: [
|
|
2135
|
+
args: [dt(r)]
|
|
2136
2136
|
}, o = this.webSocketManager.sendMessage(a);
|
|
2137
2137
|
return this.requestManager.request(a, o);
|
|
2138
2138
|
}
|
|
@@ -2150,7 +2150,7 @@ var Kn = Object.defineProperty, qn = (e, t, n) => t in e ? Kn(e, t, {
|
|
|
2150
2150
|
}
|
|
2151
2151
|
reportMarks() {
|
|
2152
2152
|
if (this.debug) {
|
|
2153
|
-
let e =
|
|
2153
|
+
let e = Wn(this.sessionId);
|
|
2154
2154
|
this.webSocketManager.sendMessage({
|
|
2155
2155
|
type: "Event",
|
|
2156
2156
|
eventType: "ClientConnect",
|
|
@@ -2167,7 +2167,7 @@ var Kn = Object.defineProperty, qn = (e, t, n) => t in e ? Kn(e, t, {
|
|
|
2167
2167
|
method: "POST",
|
|
2168
2168
|
headers: {
|
|
2169
2169
|
"Content-Type": "application/json",
|
|
2170
|
-
"Convex-Client": `npm-${
|
|
2170
|
+
"Convex-Client": `npm-${je}`
|
|
2171
2171
|
},
|
|
2172
2172
|
body: JSON.stringify({ event: "LongWebsocketDisconnect" })
|
|
2173
2173
|
}).then((e) => {
|
|
@@ -2179,23 +2179,23 @@ var Kn = Object.defineProperty, qn = (e, t, n) => t in e ? Kn(e, t, {
|
|
|
2179
2179
|
};
|
|
2180
2180
|
//#endregion
|
|
2181
2181
|
//#region ../../node_modules/.pnpm/convex@1.37.0_react@19.2.6/node_modules/convex/dist/esm/browser/sync/pagination.js
|
|
2182
|
-
function
|
|
2182
|
+
function Jn(e) {
|
|
2183
2183
|
if (typeof e != "object" || !e || !Array.isArray(e.page) || typeof e.isDone != "boolean" || typeof e.continueCursor != "string") throw Error(`Not a valid paginated query result: ${e?.toString()}`);
|
|
2184
2184
|
return e;
|
|
2185
2185
|
}
|
|
2186
2186
|
//#endregion
|
|
2187
2187
|
//#region ../../node_modules/.pnpm/convex@1.37.0_react@19.2.6/node_modules/convex/dist/esm/browser/sync/paginated_query_client.js
|
|
2188
|
-
var
|
|
2188
|
+
var Yn = Object.defineProperty, Xn = (e, t, n) => t in e ? Yn(e, t, {
|
|
2189
2189
|
enumerable: !0,
|
|
2190
2190
|
configurable: !0,
|
|
2191
2191
|
writable: !0,
|
|
2192
2192
|
value: n
|
|
2193
|
-
}) : e[t] = n,
|
|
2193
|
+
}) : e[t] = n, Zn = (e, t, n) => Xn(e, typeof t == "symbol" ? t : t + "", n), Qn = class {
|
|
2194
2194
|
constructor(e, t) {
|
|
2195
|
-
this.client = e, this.onTransition = t,
|
|
2195
|
+
this.client = e, this.onTransition = t, Zn(this, "paginatedQuerySet", /* @__PURE__ */ new Map()), Zn(this, "lastTransitionTs"), this.lastTransitionTs = rn.fromNumber(0), this.client.addOnTransitionHandler((e) => this.onBaseTransition(e));
|
|
2196
2196
|
}
|
|
2197
2197
|
subscribe(e, t, n) {
|
|
2198
|
-
let r =
|
|
2198
|
+
let r = jt(e), i = Nt(r, t, n), a = () => this.removePaginatedQuerySubscriber(i), o = this.paginatedQuerySet.get(i);
|
|
2199
2199
|
return o ? (o.numSubscribers += 1, {
|
|
2200
2200
|
paginatedQueryToken: i,
|
|
2201
2201
|
unsubscribe: a
|
|
@@ -2217,7 +2217,7 @@ var Xn = Object.defineProperty, Zn = (e, t, n) => t in e ? Xn(e, t, {
|
|
|
2217
2217
|
});
|
|
2218
2218
|
}
|
|
2219
2219
|
localQueryResult(e, t, n) {
|
|
2220
|
-
let r =
|
|
2220
|
+
let r = Nt(jt(e), t, n);
|
|
2221
2221
|
return this.localQueryResultByToken(r);
|
|
2222
2222
|
}
|
|
2223
2223
|
localQueryResultByToken(e) {
|
|
@@ -2236,7 +2236,7 @@ var Xn = Object.defineProperty, Zn = (e, t, n) => t in e ? Xn(e, t, {
|
|
|
2236
2236
|
i = !0, a = !1;
|
|
2237
2237
|
continue;
|
|
2238
2238
|
}
|
|
2239
|
-
let n =
|
|
2239
|
+
let n = Jn(t);
|
|
2240
2240
|
r = r.concat(n.page), a = !!n.isDone;
|
|
2241
2241
|
}
|
|
2242
2242
|
let o;
|
|
@@ -2265,7 +2265,7 @@ var Xn = Object.defineProperty, Zn = (e, t, n) => t in e ? Xn(e, t, {
|
|
|
2265
2265
|
this.mustGetPaginatedQuery(e);
|
|
2266
2266
|
let n = this.queryTokenForLastPageOfPaginatedQuery(e), r = this.client.localQueryResultByToken(n);
|
|
2267
2267
|
if (!r) return !1;
|
|
2268
|
-
let i =
|
|
2268
|
+
let i = Jn(r);
|
|
2269
2269
|
if (i.isDone) return !1;
|
|
2270
2270
|
this.addPageToPaginatedQuery(e, i.continueCursor, t);
|
|
2271
2271
|
let a = {
|
|
@@ -2299,7 +2299,7 @@ var Xn = Object.defineProperty, Zn = (e, t, n) => t in e ? Xn(e, t, {
|
|
|
2299
2299
|
if (r.has(n)) continue;
|
|
2300
2300
|
let a = i.get(n).queryToken, o = t(a);
|
|
2301
2301
|
if (!o) continue;
|
|
2302
|
-
let s =
|
|
2302
|
+
let s = Jn(o);
|
|
2303
2303
|
s.splitCursor && (s.pageStatus === "SplitRecommended" || s.pageStatus === "SplitRequired" || s.page.length > e.options.initialNumItems * 2) && this.splitPaginatedQueryPage(e, n, s.splitCursor, s.continueCursor);
|
|
2304
2304
|
}
|
|
2305
2305
|
}
|
|
@@ -2368,16 +2368,16 @@ var Xn = Object.defineProperty, Zn = (e, t, n) => t in e ? Xn(e, t, {
|
|
|
2368
2368
|
if (!t) throw Error("paginated query no longer exists for token " + e);
|
|
2369
2369
|
return t;
|
|
2370
2370
|
}
|
|
2371
|
-
},
|
|
2371
|
+
}, $n = Object.defineProperty, er = (e, t, n) => t in e ? $n(e, t, {
|
|
2372
2372
|
enumerable: !0,
|
|
2373
2373
|
configurable: !0,
|
|
2374
2374
|
writable: !0,
|
|
2375
2375
|
value: n
|
|
2376
|
-
}) : e[t] = n,
|
|
2376
|
+
}) : e[t] = n, tr = (e, t, n) => er(e, typeof t == "symbol" ? t : t + "", n), nr, rr = class {
|
|
2377
2377
|
constructor(e, t = {}) {
|
|
2378
|
-
|
|
2378
|
+
tr(this, "listeners"), tr(this, "_client"), tr(this, "_paginatedClient"), tr(this, "callNewListenersWithCurrentValuesTimer"), tr(this, "_closed"), tr(this, "_disabled"), t.skipConvexDeploymentUrlCheck !== !0 && He(e);
|
|
2379
2379
|
let { disabled: n, ...r } = t;
|
|
2380
|
-
this._closed = !1, this._disabled = !!n,
|
|
2380
|
+
this._closed = !1, this._disabled = !!n, nr && !("webSocketConstructor" in r) && typeof WebSocket > "u" && (r.webSocketConstructor = nr), typeof window > "u" && !("unsavedChangesWarning" in r) && (r.unsavedChangesWarning = !1), this.disabled || (this._client = new qn(e, () => {}, r), this._paginatedClient = new Qn(this._client, (e) => this._transition(e))), this.listeners = /* @__PURE__ */ new Set();
|
|
2381
2381
|
}
|
|
2382
2382
|
get closed() {
|
|
2383
2383
|
return this._closed;
|
|
@@ -2395,7 +2395,7 @@ var Xn = Object.defineProperty, Zn = (e, t, n) => t in e ? Xn(e, t, {
|
|
|
2395
2395
|
}
|
|
2396
2396
|
onUpdate(e, t, n, r) {
|
|
2397
2397
|
if (this.disabled) return this.createDisabledUnsubscribe();
|
|
2398
|
-
let { queryToken: i, unsubscribe: a } = this.client.subscribe(
|
|
2398
|
+
let { queryToken: i, unsubscribe: a } = this.client.subscribe(K(e), t), o = {
|
|
2399
2399
|
queryToken: i,
|
|
2400
2400
|
callback: n,
|
|
2401
2401
|
onError: r,
|
|
@@ -2420,7 +2420,7 @@ var Xn = Object.defineProperty, Zn = (e, t, n) => t in e ? Xn(e, t, {
|
|
|
2420
2420
|
let a = {
|
|
2421
2421
|
initialNumItems: n.initialNumItems,
|
|
2422
2422
|
id: -1
|
|
2423
|
-
}, { paginatedQueryToken: o, unsubscribe: s } = this.paginatedClient.subscribe(
|
|
2423
|
+
}, { paginatedQueryToken: o, unsubscribe: s } = this.paginatedClient.subscribe(K(e), t, a), c = {
|
|
2424
2424
|
queryToken: o,
|
|
2425
2425
|
callback: r,
|
|
2426
2426
|
onError: i,
|
|
@@ -2435,7 +2435,7 @@ var Xn = Object.defineProperty, Zn = (e, t, n) => t in e ? Xn(e, t, {
|
|
|
2435
2435
|
unsubscribe: () => {
|
|
2436
2436
|
this.closed || (this.listeners.delete(c), s());
|
|
2437
2437
|
},
|
|
2438
|
-
getCurrentValue: () => this.paginatedClient.localQueryResult(
|
|
2438
|
+
getCurrentValue: () => this.paginatedClient.localQueryResult(K(e), t, a),
|
|
2439
2439
|
getQueryLogs: () => []
|
|
2440
2440
|
}, u = l.unsubscribe;
|
|
2441
2441
|
return Object.assign(u, l), u;
|
|
@@ -2473,7 +2473,7 @@ var Xn = Object.defineProperty, Zn = (e, t, n) => t in e ? Xn(e, t, {
|
|
|
2473
2473
|
_transition({ queries: e, paginatedQueries: t }, n = !1) {
|
|
2474
2474
|
let r = [...e.map((e) => e.token), ...t.map((e) => e.token)];
|
|
2475
2475
|
for (let e of this.listeners) {
|
|
2476
|
-
let { callback: t, queryToken: i, onError: a, hasEverRun: o } = e, s =
|
|
2476
|
+
let { callback: t, queryToken: i, onError: a, hasEverRun: o } = e, s = Pt(i), c = s ? !!this.paginatedClient.localQueryResultByToken(i) : this.client.hasLocalQueryResultByToken(i);
|
|
2477
2477
|
if (r.includes(i) || n && !o && c) {
|
|
2478
2478
|
e.hasEverRun = !0;
|
|
2479
2479
|
let n;
|
|
@@ -2490,15 +2490,15 @@ var Xn = Object.defineProperty, Zn = (e, t, n) => t in e ? Xn(e, t, {
|
|
|
2490
2490
|
}
|
|
2491
2491
|
async mutation(e, t, n) {
|
|
2492
2492
|
if (this.disabled) throw Error("ConvexClient is disabled");
|
|
2493
|
-
return await this.client.mutation(
|
|
2493
|
+
return await this.client.mutation(K(e), t, n);
|
|
2494
2494
|
}
|
|
2495
2495
|
async action(e, t) {
|
|
2496
2496
|
if (this.disabled) throw Error("ConvexClient is disabled");
|
|
2497
|
-
return await this.client.action(
|
|
2497
|
+
return await this.client.action(K(e), t);
|
|
2498
2498
|
}
|
|
2499
2499
|
async query(e, t) {
|
|
2500
2500
|
if (this.disabled) throw Error("ConvexClient is disabled");
|
|
2501
|
-
let n = this.client.localQueryResult(
|
|
2501
|
+
let n = this.client.localQueryResult(K(e), t);
|
|
2502
2502
|
return n === void 0 ? new Promise((n, r) => {
|
|
2503
2503
|
let { unsubscribe: i } = this.onUpdate(e, t, (e) => {
|
|
2504
2504
|
i(), n(e);
|
|
@@ -2514,37 +2514,37 @@ var Xn = Object.defineProperty, Zn = (e, t, n) => t in e ? Xn(e, t, {
|
|
|
2514
2514
|
subscribeToConnectionState(e) {
|
|
2515
2515
|
return this.disabled ? () => {} : this.client.subscribeToConnectionState(e);
|
|
2516
2516
|
}
|
|
2517
|
-
},
|
|
2517
|
+
}, ir = new Set([
|
|
2518
2518
|
"role",
|
|
2519
2519
|
"name",
|
|
2520
2520
|
"aria-label",
|
|
2521
2521
|
"rel",
|
|
2522
2522
|
"href"
|
|
2523
2523
|
]);
|
|
2524
|
-
function
|
|
2525
|
-
let n =
|
|
2526
|
-
n ||= e.startsWith("data-") &&
|
|
2527
|
-
let r =
|
|
2528
|
-
return r ||= t.startsWith("#") &&
|
|
2524
|
+
function ar(e, t) {
|
|
2525
|
+
let n = ir.has(e);
|
|
2526
|
+
n ||= e.startsWith("data-") && dr(e);
|
|
2527
|
+
let r = dr(t) && t.length < 100;
|
|
2528
|
+
return r ||= t.startsWith("#") && dr(t.slice(1)), n && r;
|
|
2529
|
+
}
|
|
2530
|
+
function or(e) {
|
|
2531
|
+
return dr(e);
|
|
2529
2532
|
}
|
|
2530
2533
|
function sr(e) {
|
|
2531
|
-
return
|
|
2534
|
+
return dr(e);
|
|
2532
2535
|
}
|
|
2533
2536
|
function cr(e) {
|
|
2534
|
-
return fr(e);
|
|
2535
|
-
}
|
|
2536
|
-
function lr(e) {
|
|
2537
2537
|
return !0;
|
|
2538
2538
|
}
|
|
2539
|
-
function
|
|
2539
|
+
function lr(e, t) {
|
|
2540
2540
|
if (e.nodeType !== Node.ELEMENT_NODE) throw Error("Can't generate CSS selector for non-element node type.");
|
|
2541
2541
|
if (e.tagName.toLowerCase() === "html") return "html";
|
|
2542
2542
|
let n = {
|
|
2543
2543
|
root: document.body,
|
|
2544
|
-
idName:
|
|
2545
|
-
className:
|
|
2546
|
-
tagName:
|
|
2547
|
-
attr:
|
|
2544
|
+
idName: or,
|
|
2545
|
+
className: sr,
|
|
2546
|
+
tagName: cr,
|
|
2547
|
+
attr: ar,
|
|
2548
2548
|
timeoutMs: 1e3,
|
|
2549
2549
|
seedMinLength: 3,
|
|
2550
2550
|
optimizedMinLength: 2,
|
|
@@ -2552,37 +2552,37 @@ function ur(e, t) {
|
|
|
2552
2552
|
}, r = /* @__PURE__ */ new Date(), i = {
|
|
2553
2553
|
...n,
|
|
2554
2554
|
...t
|
|
2555
|
-
}, a =
|
|
2556
|
-
for (let t of
|
|
2555
|
+
}, a = xr(i.root, n), o, s = 0;
|
|
2556
|
+
for (let t of ur(e, i, a)) {
|
|
2557
2557
|
if ((/* @__PURE__ */ new Date()).getTime() - r.getTime() > i.timeoutMs || s >= i.maxNumberOfPathChecks) {
|
|
2558
|
-
let t =
|
|
2558
|
+
let t = _r(e, a);
|
|
2559
2559
|
if (!t) throw Error(`Timeout: Can't find a unique selector after ${i.timeoutMs}ms`);
|
|
2560
|
-
return
|
|
2560
|
+
return pr(t);
|
|
2561
2561
|
}
|
|
2562
|
-
if (s++,
|
|
2562
|
+
if (s++, Sr(t, a)) {
|
|
2563
2563
|
o = t;
|
|
2564
2564
|
break;
|
|
2565
2565
|
}
|
|
2566
2566
|
}
|
|
2567
2567
|
if (!o) throw Error("Selector was not found.");
|
|
2568
|
-
let c = [...
|
|
2569
|
-
return c.sort(
|
|
2568
|
+
let c = [...Cr(o, e, i, a, r)];
|
|
2569
|
+
return c.sort(hr), c.length > 0 ? pr(c[0]) : pr(o);
|
|
2570
2570
|
}
|
|
2571
|
-
function*
|
|
2571
|
+
function* ur(e, t, n) {
|
|
2572
2572
|
let r = [], i = [], a = e, o = 0;
|
|
2573
2573
|
for (; a && a !== n;) {
|
|
2574
|
-
let e =
|
|
2574
|
+
let e = fr(a, t);
|
|
2575
2575
|
for (let t of e) t.level = o;
|
|
2576
|
-
if (r.push(e), a = a.parentElement, o++, i.push(...
|
|
2577
|
-
i.sort(
|
|
2576
|
+
if (r.push(e), a = a.parentElement, o++, i.push(...br(r)), o >= t.seedMinLength) {
|
|
2577
|
+
i.sort(hr);
|
|
2578
2578
|
for (let e of i) yield e;
|
|
2579
2579
|
i = [];
|
|
2580
2580
|
}
|
|
2581
2581
|
}
|
|
2582
|
-
i.sort(
|
|
2582
|
+
i.sort(hr);
|
|
2583
2583
|
for (let e of i) yield e;
|
|
2584
2584
|
}
|
|
2585
|
-
function
|
|
2585
|
+
function dr(e) {
|
|
2586
2586
|
if (/^[a-z\-]{3,}$/i.test(e)) {
|
|
2587
2587
|
let t = e.split(/-|[A-Z]/);
|
|
2588
2588
|
for (let e of t) if (e.length <= 2 || /[^aeiou]{4,}/i.test(e)) return !1;
|
|
@@ -2590,7 +2590,7 @@ function fr(e) {
|
|
|
2590
2590
|
}
|
|
2591
2591
|
return !1;
|
|
2592
2592
|
}
|
|
2593
|
-
function
|
|
2593
|
+
function fr(e, t) {
|
|
2594
2594
|
let n = [], r = e.getAttribute("id");
|
|
2595
2595
|
r && t.idName(r) && n.push({
|
|
2596
2596
|
name: "#" + CSS.escape(r),
|
|
@@ -2616,19 +2616,19 @@ function pr(e, t) {
|
|
|
2616
2616
|
name: i,
|
|
2617
2617
|
penalty: 5
|
|
2618
2618
|
});
|
|
2619
|
-
let t =
|
|
2619
|
+
let t = gr(e, i);
|
|
2620
2620
|
t !== void 0 && n.push({
|
|
2621
|
-
name:
|
|
2621
|
+
name: yr(i, t),
|
|
2622
2622
|
penalty: 10
|
|
2623
2623
|
});
|
|
2624
2624
|
}
|
|
2625
|
-
let a =
|
|
2625
|
+
let a = gr(e);
|
|
2626
2626
|
return a !== void 0 && n.push({
|
|
2627
|
-
name:
|
|
2627
|
+
name: vr(i, a),
|
|
2628
2628
|
penalty: 50
|
|
2629
2629
|
}), n;
|
|
2630
2630
|
}
|
|
2631
|
-
function
|
|
2631
|
+
function pr(e) {
|
|
2632
2632
|
let t = e[0], n = t.name;
|
|
2633
2633
|
for (let r = 1; r < e.length; r++) {
|
|
2634
2634
|
let i = e[r].level || 0;
|
|
@@ -2636,13 +2636,13 @@ function mr(e) {
|
|
|
2636
2636
|
}
|
|
2637
2637
|
return n;
|
|
2638
2638
|
}
|
|
2639
|
-
function
|
|
2639
|
+
function mr(e) {
|
|
2640
2640
|
return e.map((e) => e.penalty).reduce((e, t) => e + t, 0);
|
|
2641
2641
|
}
|
|
2642
|
-
function
|
|
2643
|
-
return
|
|
2642
|
+
function hr(e, t) {
|
|
2643
|
+
return mr(e) - mr(t);
|
|
2644
2644
|
}
|
|
2645
|
-
function
|
|
2645
|
+
function gr(e, t) {
|
|
2646
2646
|
let n = e.parentNode;
|
|
2647
2647
|
if (!n) return;
|
|
2648
2648
|
let r = n.firstChild;
|
|
@@ -2651,51 +2651,51 @@ function _r(e, t) {
|
|
|
2651
2651
|
for (; r && (r.nodeType === Node.ELEMENT_NODE && (t === void 0 || r.tagName.toLowerCase() === t) && i++, r !== e);) r = r.nextSibling;
|
|
2652
2652
|
return i;
|
|
2653
2653
|
}
|
|
2654
|
-
function
|
|
2654
|
+
function _r(e, t) {
|
|
2655
2655
|
let n = 0, r = e, i = [];
|
|
2656
2656
|
for (; r && r !== t;) {
|
|
2657
|
-
let e = r.tagName.toLowerCase(), t =
|
|
2657
|
+
let e = r.tagName.toLowerCase(), t = gr(r, e);
|
|
2658
2658
|
if (t === void 0) return;
|
|
2659
2659
|
i.push({
|
|
2660
|
-
name:
|
|
2660
|
+
name: yr(e, t),
|
|
2661
2661
|
penalty: NaN,
|
|
2662
2662
|
level: n
|
|
2663
2663
|
}), r = r.parentElement, n++;
|
|
2664
2664
|
}
|
|
2665
|
-
if (
|
|
2665
|
+
if (Sr(i, t)) return i;
|
|
2666
2666
|
}
|
|
2667
|
-
function
|
|
2667
|
+
function vr(e, t) {
|
|
2668
2668
|
return e === "html" ? "html" : `${e}:nth-child(${t})`;
|
|
2669
2669
|
}
|
|
2670
|
-
function
|
|
2670
|
+
function yr(e, t) {
|
|
2671
2671
|
return e === "html" ? "html" : `${e}:nth-of-type(${t})`;
|
|
2672
2672
|
}
|
|
2673
|
-
function*
|
|
2674
|
-
if (e.length > 0) for (let n of e[0]) yield*
|
|
2673
|
+
function* br(e, t = []) {
|
|
2674
|
+
if (e.length > 0) for (let n of e[0]) yield* br(e.slice(1, e.length), t.concat(n));
|
|
2675
2675
|
else yield t;
|
|
2676
2676
|
}
|
|
2677
|
-
function
|
|
2677
|
+
function xr(e, t) {
|
|
2678
2678
|
return e.nodeType === Node.DOCUMENT_NODE ? e : e === t.root ? e.ownerDocument : e;
|
|
2679
2679
|
}
|
|
2680
|
-
function
|
|
2681
|
-
let n =
|
|
2680
|
+
function Sr(e, t) {
|
|
2681
|
+
let n = pr(e);
|
|
2682
2682
|
switch (t.querySelectorAll(n).length) {
|
|
2683
2683
|
case 0: throw Error(`Can't select any node with this selector: ${n}`);
|
|
2684
2684
|
case 1: return !0;
|
|
2685
2685
|
default: return !1;
|
|
2686
2686
|
}
|
|
2687
2687
|
}
|
|
2688
|
-
function*
|
|
2688
|
+
function* Cr(e, t, n, r, i) {
|
|
2689
2689
|
if (e.length > 2 && e.length > n.optimizedMinLength) for (let a = 1; a < e.length - 1; a++) {
|
|
2690
2690
|
if ((/* @__PURE__ */ new Date()).getTime() - i.getTime() > n.timeoutMs) return;
|
|
2691
2691
|
let o = [...e];
|
|
2692
|
-
o.splice(a, 1),
|
|
2692
|
+
o.splice(a, 1), Sr(o, r) && r.querySelector(pr(o)) === t && (yield o, yield* Cr(o, t, n, r, i));
|
|
2693
2693
|
}
|
|
2694
2694
|
}
|
|
2695
2695
|
//#endregion
|
|
2696
2696
|
//#region src/runtime/anchor.ts
|
|
2697
|
-
function
|
|
2698
|
-
let n = document.documentElement, r = Math.max(n.scrollWidth, n.clientWidth), i = Math.max(n.scrollHeight, n.clientHeight), a = e.clientX + window.scrollX, o = e.clientY + window.scrollY, s = t === void 0 ? e.target instanceof Element ? e.target : null : t, c = s ?
|
|
2697
|
+
function wr(e, t) {
|
|
2698
|
+
let n = document.documentElement, r = Math.max(n.scrollWidth, n.clientWidth), i = Math.max(n.scrollHeight, n.clientHeight), a = e.clientX + window.scrollX, o = e.clientY + window.scrollY, s = t === void 0 ? e.target instanceof Element ? e.target : null : t, c = s ? Er(s) : void 0, l, u;
|
|
2699
2699
|
if (s) {
|
|
2700
2700
|
let t = s.getBoundingClientRect();
|
|
2701
2701
|
t.width > 0 && t.height > 0 && (l = Math.max(0, Math.min(1, (e.clientX - t.left) / t.width)), u = Math.max(0, Math.min(1, (e.clientY - t.top) / t.height)));
|
|
@@ -2710,7 +2710,7 @@ function Tr(e, t) {
|
|
|
2710
2710
|
anchorOffsetY: u
|
|
2711
2711
|
};
|
|
2712
2712
|
}
|
|
2713
|
-
function
|
|
2713
|
+
function Tr(e) {
|
|
2714
2714
|
if (e.anchorSelector) try {
|
|
2715
2715
|
let t = document.querySelector(e.anchorSelector);
|
|
2716
2716
|
if (t) {
|
|
@@ -2727,22 +2727,22 @@ function Er(e) {
|
|
|
2727
2727
|
pageY: e.anchorY * r
|
|
2728
2728
|
};
|
|
2729
2729
|
}
|
|
2730
|
-
function
|
|
2730
|
+
function Er(e) {
|
|
2731
2731
|
try {
|
|
2732
|
-
return
|
|
2732
|
+
return lr(e, { timeoutMs: 1e3 });
|
|
2733
2733
|
} catch {
|
|
2734
2734
|
return;
|
|
2735
2735
|
}
|
|
2736
2736
|
}
|
|
2737
2737
|
//#endregion
|
|
2738
2738
|
//#region src/runtime/api.ts
|
|
2739
|
-
var
|
|
2739
|
+
var Dr = class extends Error {
|
|
2740
2740
|
status;
|
|
2741
2741
|
constructor(e, t) {
|
|
2742
2742
|
super(e), this.name = "WidgetApiError", this.status = t;
|
|
2743
2743
|
}
|
|
2744
2744
|
};
|
|
2745
|
-
function
|
|
2745
|
+
function Or(e) {
|
|
2746
2746
|
let t = e.apiUrl.replace(/\/+$/, "");
|
|
2747
2747
|
async function n(n, r = {}) {
|
|
2748
2748
|
let i = {
|
|
@@ -2751,14 +2751,22 @@ function kr(e) {
|
|
|
2751
2751
|
...r.headers ?? {}
|
|
2752
2752
|
}, a = e.getToken?.() ?? null, o = a != null && a.token.length > 0 && a.expiresAt > Date.now();
|
|
2753
2753
|
o && a && (i.authorization = `Bearer ${a.token}`);
|
|
2754
|
-
let s =
|
|
2754
|
+
let s = e.getAnonToken?.() ?? null;
|
|
2755
|
+
s && (i["x-markup-anon-token"] = s);
|
|
2756
|
+
let c = await fetch(`${t}${n}`, {
|
|
2755
2757
|
...r,
|
|
2756
2758
|
headers: i
|
|
2757
|
-
}),
|
|
2758
|
-
if (!
|
|
2759
|
-
return
|
|
2759
|
+
}), l = await c.text(), u = l ? kr(l) : null;
|
|
2760
|
+
if (!c.ok) throw c.status === 401 && o && e.onUnauthorized?.(), new Dr((u && typeof u == "object" && "error" in u && typeof u.error == "string" ? u.error : null) ?? `Request failed with ${c.status}`, c.status);
|
|
2761
|
+
return u;
|
|
2760
2762
|
}
|
|
2761
2763
|
return {
|
|
2764
|
+
mintAnonIdentity() {
|
|
2765
|
+
return n("/widget/anon-identity", { method: "POST" });
|
|
2766
|
+
},
|
|
2767
|
+
getSubscriptionToken() {
|
|
2768
|
+
return n("/widget/subscription-token", { method: "POST" });
|
|
2769
|
+
},
|
|
2762
2770
|
getScreenshotUploadUrl() {
|
|
2763
2771
|
return n("/widget/screenshots/upload-url", { method: "POST" });
|
|
2764
2772
|
},
|
|
@@ -2792,11 +2800,8 @@ function kr(e) {
|
|
|
2792
2800
|
body: JSON.stringify(r)
|
|
2793
2801
|
});
|
|
2794
2802
|
},
|
|
2795
|
-
deleteComment(e, t
|
|
2796
|
-
return n(`/widget/threads/${encodeURIComponent(e)}/comments/${encodeURIComponent(t)}`, {
|
|
2797
|
-
method: "DELETE",
|
|
2798
|
-
body: JSON.stringify(r)
|
|
2799
|
-
});
|
|
2803
|
+
deleteComment(e, t) {
|
|
2804
|
+
return n(`/widget/threads/${encodeURIComponent(e)}/comments/${encodeURIComponent(t)}`, { method: "DELETE" });
|
|
2800
2805
|
},
|
|
2801
2806
|
toggleReaction(e, t) {
|
|
2802
2807
|
return n(`/widget/comments/${encodeURIComponent(e)}/reactions`, {
|
|
@@ -2806,7 +2811,7 @@ function kr(e) {
|
|
|
2806
2811
|
}
|
|
2807
2812
|
};
|
|
2808
2813
|
}
|
|
2809
|
-
function
|
|
2814
|
+
function kr(e) {
|
|
2810
2815
|
try {
|
|
2811
2816
|
return JSON.parse(e);
|
|
2812
2817
|
} catch {
|
|
@@ -2815,10 +2820,10 @@ function Ar(e) {
|
|
|
2815
2820
|
}
|
|
2816
2821
|
//#endregion
|
|
2817
2822
|
//#region src/runtime/identity-store.ts
|
|
2818
|
-
var
|
|
2819
|
-
function
|
|
2823
|
+
var Ar = "markup.identity";
|
|
2824
|
+
function jr() {
|
|
2820
2825
|
try {
|
|
2821
|
-
let e = localStorage.getItem(
|
|
2826
|
+
let e = localStorage.getItem(Ar);
|
|
2822
2827
|
if (!e) return null;
|
|
2823
2828
|
let t = JSON.parse(e);
|
|
2824
2829
|
return typeof t?.clientId == "string" ? t : null;
|
|
@@ -2826,25 +2831,31 @@ function Mr() {
|
|
|
2826
2831
|
return null;
|
|
2827
2832
|
}
|
|
2828
2833
|
}
|
|
2829
|
-
function
|
|
2834
|
+
function Mr(e) {
|
|
2830
2835
|
try {
|
|
2831
|
-
localStorage.setItem(
|
|
2836
|
+
localStorage.setItem(Ar, JSON.stringify(e));
|
|
2832
2837
|
} catch {}
|
|
2833
2838
|
}
|
|
2834
|
-
function Pr() {
|
|
2835
|
-
let e = crypto;
|
|
2836
|
-
if ("randomUUID" in e && typeof e.randomUUID == "function") return e.randomUUID();
|
|
2837
|
-
let t = new Uint8Array(16);
|
|
2838
|
-
e.getRandomValues(t), t[6] = t[6] & 15 | 64, t[8] = t[8] & 63 | 128;
|
|
2839
|
-
let n = Array.from(t, (e) => e.toString(16).padStart(2, "0")).join("");
|
|
2840
|
-
return `${n.slice(0, 8)}-${n.slice(8, 12)}-${n.slice(12, 16)}-${n.slice(16, 20)}-${n.slice(20)}`;
|
|
2841
|
-
}
|
|
2842
2839
|
//#endregion
|
|
2843
2840
|
//#region src/runtime/popup-auth.ts
|
|
2844
|
-
function
|
|
2845
|
-
let n = new URL(e).origin, r
|
|
2846
|
-
|
|
2847
|
-
|
|
2841
|
+
async function Nr(e, t) {
|
|
2842
|
+
let n = new URL(e).origin, r;
|
|
2843
|
+
try {
|
|
2844
|
+
let n = await fetch(`${e.replace(/\/+$/, "")}/widget/popup-exchange`, {
|
|
2845
|
+
method: "POST",
|
|
2846
|
+
headers: {
|
|
2847
|
+
"content-type": "application/json",
|
|
2848
|
+
"x-markup-api-key": t
|
|
2849
|
+
},
|
|
2850
|
+
body: "{}"
|
|
2851
|
+
});
|
|
2852
|
+
if (!n.ok) throw Error(`popup-exchange responded with ${n.status}`);
|
|
2853
|
+
let { code: i } = await n.json(), a = new URL("/widget/auth", e);
|
|
2854
|
+
a.searchParams.set("code", i), r = a.toString();
|
|
2855
|
+
} catch (e) {
|
|
2856
|
+
return Promise.reject(e instanceof Error ? e : /* @__PURE__ */ Error("Failed to start popup exchange"));
|
|
2857
|
+
}
|
|
2858
|
+
let i = Math.max(0, window.screenX + (window.outerWidth - 420) / 2), a = Math.max(0, window.screenY + (window.outerHeight - 560) / 2), o = window.open(r, "markup-auth", `width=420,height=560,left=${i},top=${a}`);
|
|
2848
2859
|
return o ? new Promise((e, t) => {
|
|
2849
2860
|
function r() {
|
|
2850
2861
|
window.removeEventListener("message", i), clearInterval(a);
|
|
@@ -2866,45 +2877,45 @@ function Fr(e, t) {
|
|
|
2866
2877
|
}
|
|
2867
2878
|
//#endregion
|
|
2868
2879
|
//#region ../../node_modules/.pnpm/html-to-image@1.11.13/node_modules/html-to-image/es/util.js
|
|
2869
|
-
function
|
|
2880
|
+
function Pr(e, t) {
|
|
2870
2881
|
if (e.match(/^[a-z]+:\/\//i)) return e;
|
|
2871
2882
|
if (e.match(/^\/\//)) return window.location.protocol + e;
|
|
2872
2883
|
if (e.match(/^[a-z]+:/i)) return e;
|
|
2873
2884
|
let n = document.implementation.createHTMLDocument(), r = n.createElement("base"), i = n.createElement("a");
|
|
2874
2885
|
return n.head.appendChild(r), n.body.appendChild(i), t && (r.href = t), i.href = e, i.href;
|
|
2875
2886
|
}
|
|
2876
|
-
var
|
|
2887
|
+
var Fr = (() => {
|
|
2877
2888
|
let e = 0, t = () => `0000${(Math.random() * 36 ** 4 << 0).toString(36)}`.slice(-4);
|
|
2878
2889
|
return () => (e += 1, `u${t()}${e}`);
|
|
2879
2890
|
})();
|
|
2880
|
-
function
|
|
2891
|
+
function Ir(e) {
|
|
2881
2892
|
let t = [];
|
|
2882
2893
|
for (let n = 0, r = e.length; n < r; n++) t.push(e[n]);
|
|
2883
2894
|
return t;
|
|
2884
2895
|
}
|
|
2885
|
-
var
|
|
2886
|
-
function
|
|
2887
|
-
return
|
|
2896
|
+
var Lr = null;
|
|
2897
|
+
function Rr(e = {}) {
|
|
2898
|
+
return Lr || (e.includeStyleProperties ? (Lr = e.includeStyleProperties, Lr) : (Lr = Ir(window.getComputedStyle(document.documentElement)), Lr));
|
|
2888
2899
|
}
|
|
2889
|
-
function
|
|
2900
|
+
function zr(e, t) {
|
|
2890
2901
|
let n = (e.ownerDocument.defaultView || window).getComputedStyle(e).getPropertyValue(t);
|
|
2891
2902
|
return n ? parseFloat(n.replace("px", "")) : 0;
|
|
2892
2903
|
}
|
|
2893
|
-
function
|
|
2894
|
-
let t =
|
|
2904
|
+
function Br(e) {
|
|
2905
|
+
let t = zr(e, "border-left-width"), n = zr(e, "border-right-width");
|
|
2895
2906
|
return e.clientWidth + t + n;
|
|
2896
2907
|
}
|
|
2897
|
-
function
|
|
2898
|
-
let t =
|
|
2908
|
+
function Vr(e) {
|
|
2909
|
+
let t = zr(e, "border-top-width"), n = zr(e, "border-bottom-width");
|
|
2899
2910
|
return e.clientHeight + t + n;
|
|
2900
2911
|
}
|
|
2901
|
-
function
|
|
2912
|
+
function Hr(e, t = {}) {
|
|
2902
2913
|
return {
|
|
2903
|
-
width: t.width ||
|
|
2904
|
-
height: t.height ||
|
|
2914
|
+
width: t.width || Br(e),
|
|
2915
|
+
height: t.height || Vr(e)
|
|
2905
2916
|
};
|
|
2906
2917
|
}
|
|
2907
|
-
function
|
|
2918
|
+
function Ur() {
|
|
2908
2919
|
let e, t;
|
|
2909
2920
|
try {
|
|
2910
2921
|
t = process;
|
|
@@ -2913,10 +2924,10 @@ function Wr() {
|
|
|
2913
2924
|
return n && (e = parseInt(n, 10), Number.isNaN(e) && (e = 1)), e || window.devicePixelRatio || 1;
|
|
2914
2925
|
}
|
|
2915
2926
|
var X = 16384;
|
|
2916
|
-
function
|
|
2927
|
+
function Wr(e) {
|
|
2917
2928
|
(e.width > X || e.height > X) && (e.width > X && e.height > X ? e.width > e.height ? (e.height *= X / e.width, e.width = X) : (e.width *= X / e.height, e.height = X) : e.width > X ? (e.height *= X / e.width, e.width = X) : (e.width *= X / e.height, e.height = X));
|
|
2918
2929
|
}
|
|
2919
|
-
function
|
|
2930
|
+
function Gr(e) {
|
|
2920
2931
|
return new Promise((t, n) => {
|
|
2921
2932
|
let r = new Image();
|
|
2922
2933
|
r.onload = () => {
|
|
@@ -2926,12 +2937,12 @@ function Kr(e) {
|
|
|
2926
2937
|
}, r.onerror = n, r.crossOrigin = "anonymous", r.decoding = "async", r.src = e;
|
|
2927
2938
|
});
|
|
2928
2939
|
}
|
|
2929
|
-
async function
|
|
2940
|
+
async function Kr(e) {
|
|
2930
2941
|
return Promise.resolve().then(() => new XMLSerializer().serializeToString(e)).then(encodeURIComponent).then((e) => `data:image/svg+xml;charset=utf-8,${e}`);
|
|
2931
2942
|
}
|
|
2932
|
-
async function
|
|
2943
|
+
async function qr(e, t, n) {
|
|
2933
2944
|
let r = "http://www.w3.org/2000/svg", i = document.createElementNS(r, "svg"), a = document.createElementNS(r, "foreignObject");
|
|
2934
|
-
return i.setAttribute("width", `${t}`), i.setAttribute("height", `${n}`), i.setAttribute("viewBox", `0 0 ${t} ${n}`), a.setAttribute("width", "100%"), a.setAttribute("height", "100%"), a.setAttribute("x", "0"), a.setAttribute("y", "0"), a.setAttribute("externalResourcesRequired", "true"), i.appendChild(a), a.appendChild(e),
|
|
2945
|
+
return i.setAttribute("width", `${t}`), i.setAttribute("height", `${n}`), i.setAttribute("viewBox", `0 0 ${t} ${n}`), a.setAttribute("width", "100%"), a.setAttribute("height", "100%"), a.setAttribute("x", "0"), a.setAttribute("y", "0"), a.setAttribute("externalResourcesRequired", "true"), i.appendChild(a), a.appendChild(e), Kr(i);
|
|
2935
2946
|
}
|
|
2936
2947
|
var Z = (e, t) => {
|
|
2937
2948
|
if (e instanceof t) return !0;
|
|
@@ -2940,66 +2951,66 @@ var Z = (e, t) => {
|
|
|
2940
2951
|
};
|
|
2941
2952
|
//#endregion
|
|
2942
2953
|
//#region ../../node_modules/.pnpm/html-to-image@1.11.13/node_modules/html-to-image/es/clone-pseudos.js
|
|
2943
|
-
function
|
|
2954
|
+
function Jr(e) {
|
|
2944
2955
|
let t = e.getPropertyValue("content");
|
|
2945
2956
|
return `${e.cssText} content: '${t.replace(/'|"/g, "")}';`;
|
|
2946
2957
|
}
|
|
2947
|
-
function
|
|
2948
|
-
return
|
|
2958
|
+
function Yr(e, t) {
|
|
2959
|
+
return Rr(t).map((t) => `${t}: ${e.getPropertyValue(t)}${e.getPropertyPriority(t) ? " !important" : ""};`).join(" ");
|
|
2949
2960
|
}
|
|
2950
|
-
function
|
|
2951
|
-
let i = `.${e}:${t}`, a = n.cssText ?
|
|
2961
|
+
function Xr(e, t, n, r) {
|
|
2962
|
+
let i = `.${e}:${t}`, a = n.cssText ? Jr(n) : Yr(n, r);
|
|
2952
2963
|
return document.createTextNode(`${i}{${a}}`);
|
|
2953
2964
|
}
|
|
2954
|
-
function
|
|
2965
|
+
function Zr(e, t, n, r) {
|
|
2955
2966
|
let i = window.getComputedStyle(e, n), a = i.getPropertyValue("content");
|
|
2956
2967
|
if (a === "" || a === "none") return;
|
|
2957
|
-
let o =
|
|
2968
|
+
let o = Fr();
|
|
2958
2969
|
try {
|
|
2959
2970
|
t.className = `${t.className} ${o}`;
|
|
2960
2971
|
} catch {
|
|
2961
2972
|
return;
|
|
2962
2973
|
}
|
|
2963
2974
|
let s = document.createElement("style");
|
|
2964
|
-
s.appendChild(
|
|
2975
|
+
s.appendChild(Xr(o, n, i, r)), t.appendChild(s);
|
|
2965
2976
|
}
|
|
2966
|
-
function
|
|
2967
|
-
|
|
2977
|
+
function Qr(e, t, n) {
|
|
2978
|
+
Zr(e, t, ":before", n), Zr(e, t, ":after", n);
|
|
2968
2979
|
}
|
|
2969
2980
|
//#endregion
|
|
2970
2981
|
//#region ../../node_modules/.pnpm/html-to-image@1.11.13/node_modules/html-to-image/es/mimes.js
|
|
2971
|
-
var
|
|
2972
|
-
woff:
|
|
2973
|
-
woff2:
|
|
2982
|
+
var $r = "application/font-woff", ei = "image/jpeg", ti = {
|
|
2983
|
+
woff: $r,
|
|
2984
|
+
woff2: $r,
|
|
2974
2985
|
ttf: "application/font-truetype",
|
|
2975
2986
|
eot: "application/vnd.ms-fontobject",
|
|
2976
2987
|
png: "image/png",
|
|
2977
|
-
jpg:
|
|
2978
|
-
jpeg:
|
|
2988
|
+
jpg: ei,
|
|
2989
|
+
jpeg: ei,
|
|
2979
2990
|
gif: "image/gif",
|
|
2980
2991
|
tiff: "image/tiff",
|
|
2981
2992
|
svg: "image/svg+xml",
|
|
2982
2993
|
webp: "image/webp"
|
|
2983
2994
|
};
|
|
2984
|
-
function
|
|
2995
|
+
function ni(e) {
|
|
2985
2996
|
let t = /\.([^./]*?)$/g.exec(e);
|
|
2986
2997
|
return t ? t[1] : "";
|
|
2987
2998
|
}
|
|
2988
|
-
function
|
|
2989
|
-
return ni
|
|
2999
|
+
function ri(e) {
|
|
3000
|
+
return ti[ni(e).toLowerCase()] || "";
|
|
2990
3001
|
}
|
|
2991
3002
|
//#endregion
|
|
2992
3003
|
//#region ../../node_modules/.pnpm/html-to-image@1.11.13/node_modules/html-to-image/es/dataurl.js
|
|
2993
|
-
function
|
|
3004
|
+
function ii(e) {
|
|
2994
3005
|
return e.split(/,/)[1];
|
|
2995
3006
|
}
|
|
2996
|
-
function
|
|
3007
|
+
function ai(e) {
|
|
2997
3008
|
return e.search(/^(data:)/) !== -1;
|
|
2998
3009
|
}
|
|
2999
|
-
function
|
|
3010
|
+
function oi(e, t) {
|
|
3000
3011
|
return `data:${t};base64,${e}`;
|
|
3001
3012
|
}
|
|
3002
|
-
async function
|
|
3013
|
+
async function si(e, t, n) {
|
|
3003
3014
|
let r = await fetch(e, t);
|
|
3004
3015
|
if (r.status === 404) throw Error(`Resource "${r.url}" not found`);
|
|
3005
3016
|
let i = await r.blob();
|
|
@@ -3017,78 +3028,78 @@ async function ci(e, t, n) {
|
|
|
3017
3028
|
}, a.readAsDataURL(i);
|
|
3018
3029
|
});
|
|
3019
3030
|
}
|
|
3020
|
-
var
|
|
3021
|
-
function
|
|
3031
|
+
var ci = {};
|
|
3032
|
+
function li(e, t, n) {
|
|
3022
3033
|
let r = e.replace(/\?.*/, "");
|
|
3023
3034
|
return n && (r = e), /ttf|otf|eot|woff2?/i.test(r) && (r = r.replace(/.*\//, "")), t ? `[${t}]${r}` : r;
|
|
3024
3035
|
}
|
|
3025
|
-
async function
|
|
3026
|
-
let r =
|
|
3027
|
-
if (
|
|
3036
|
+
async function ui(e, t, n) {
|
|
3037
|
+
let r = li(e, t, n.includeQueryParams);
|
|
3038
|
+
if (ci[r] != null) return ci[r];
|
|
3028
3039
|
n.cacheBust && (e += (/\?/.test(e) ? "&" : "?") + (/* @__PURE__ */ new Date()).getTime());
|
|
3029
3040
|
let i;
|
|
3030
3041
|
try {
|
|
3031
|
-
i =
|
|
3042
|
+
i = oi(await si(e, n.fetchRequestInit, ({ res: e, result: n }) => (t ||= e.headers.get("Content-Type") || "", ii(n))), t);
|
|
3032
3043
|
} catch (t) {
|
|
3033
3044
|
i = n.imagePlaceholder || "";
|
|
3034
3045
|
let r = `Failed to fetch resource: ${e}`;
|
|
3035
3046
|
t && (r = typeof t == "string" ? t : t.message), r && console.warn(r);
|
|
3036
3047
|
}
|
|
3037
|
-
return
|
|
3048
|
+
return ci[r] = i, i;
|
|
3038
3049
|
}
|
|
3039
3050
|
//#endregion
|
|
3040
3051
|
//#region ../../node_modules/.pnpm/html-to-image@1.11.13/node_modules/html-to-image/es/clone-node.js
|
|
3041
|
-
async function
|
|
3052
|
+
async function di(e) {
|
|
3042
3053
|
let t = e.toDataURL();
|
|
3043
|
-
return t === "data:," ? e.cloneNode(!1) :
|
|
3054
|
+
return t === "data:," ? e.cloneNode(!1) : Gr(t);
|
|
3044
3055
|
}
|
|
3045
|
-
async function
|
|
3056
|
+
async function fi(e, t) {
|
|
3046
3057
|
if (e.currentSrc) {
|
|
3047
3058
|
let t = document.createElement("canvas"), n = t.getContext("2d");
|
|
3048
|
-
return t.width = e.clientWidth, t.height = e.clientHeight, n?.drawImage(e, 0, 0, t.width, t.height),
|
|
3059
|
+
return t.width = e.clientWidth, t.height = e.clientHeight, n?.drawImage(e, 0, 0, t.width, t.height), Gr(t.toDataURL());
|
|
3049
3060
|
}
|
|
3050
3061
|
let n = e.poster;
|
|
3051
|
-
return
|
|
3062
|
+
return Gr(await ui(n, ri(n), t));
|
|
3052
3063
|
}
|
|
3053
|
-
async function
|
|
3064
|
+
async function pi(e, t) {
|
|
3054
3065
|
try {
|
|
3055
|
-
if (e?.contentDocument?.body) return await
|
|
3066
|
+
if (e?.contentDocument?.body) return await Ci(e.contentDocument.body, t, !0);
|
|
3056
3067
|
} catch {}
|
|
3057
3068
|
return e.cloneNode(!1);
|
|
3058
3069
|
}
|
|
3059
|
-
async function
|
|
3060
|
-
return Z(e, HTMLCanvasElement) ?
|
|
3070
|
+
async function mi(e, t) {
|
|
3071
|
+
return Z(e, HTMLCanvasElement) ? di(e) : Z(e, HTMLVideoElement) ? fi(e, t) : Z(e, HTMLIFrameElement) ? pi(e, t) : e.cloneNode(gi(e));
|
|
3061
3072
|
}
|
|
3062
|
-
var
|
|
3063
|
-
async function
|
|
3064
|
-
if (
|
|
3073
|
+
var hi = (e) => e.tagName != null && e.tagName.toUpperCase() === "SLOT", gi = (e) => e.tagName != null && e.tagName.toUpperCase() === "SVG";
|
|
3074
|
+
async function _i(e, t, n) {
|
|
3075
|
+
if (gi(t)) return t;
|
|
3065
3076
|
let r = [];
|
|
3066
|
-
return r =
|
|
3077
|
+
return r = hi(e) && e.assignedNodes ? Ir(e.assignedNodes()) : Z(e, HTMLIFrameElement) && e.contentDocument?.body ? Ir(e.contentDocument.body.childNodes) : Ir((e.shadowRoot ?? e).childNodes), r.length === 0 || Z(e, HTMLVideoElement) || await r.reduce((e, r) => e.then(() => Ci(r, n)).then((e) => {
|
|
3067
3078
|
e && t.appendChild(e);
|
|
3068
3079
|
}), Promise.resolve()), t;
|
|
3069
3080
|
}
|
|
3070
|
-
function
|
|
3081
|
+
function vi(e, t, n) {
|
|
3071
3082
|
let r = t.style;
|
|
3072
3083
|
if (!r) return;
|
|
3073
3084
|
let i = window.getComputedStyle(e);
|
|
3074
|
-
i.cssText ? (r.cssText = i.cssText, r.transformOrigin = i.transformOrigin) :
|
|
3085
|
+
i.cssText ? (r.cssText = i.cssText, r.transformOrigin = i.transformOrigin) : Rr(n).forEach((n) => {
|
|
3075
3086
|
let a = i.getPropertyValue(n);
|
|
3076
3087
|
n === "font-size" && a.endsWith("px") && (a = `${Math.floor(parseFloat(a.substring(0, a.length - 2))) - .1}px`), Z(e, HTMLIFrameElement) && n === "display" && a === "inline" && (a = "block"), n === "d" && t.getAttribute("d") && (a = `path(${t.getAttribute("d")})`), r.setProperty(n, a, i.getPropertyPriority(n));
|
|
3077
3088
|
});
|
|
3078
3089
|
}
|
|
3079
|
-
function
|
|
3090
|
+
function yi(e, t) {
|
|
3080
3091
|
Z(e, HTMLTextAreaElement) && (t.innerHTML = e.value), Z(e, HTMLInputElement) && t.setAttribute("value", e.value);
|
|
3081
3092
|
}
|
|
3082
|
-
function
|
|
3093
|
+
function bi(e, t) {
|
|
3083
3094
|
if (Z(e, HTMLSelectElement)) {
|
|
3084
3095
|
let n = t, r = Array.from(n.children).find((t) => e.value === t.getAttribute("value"));
|
|
3085
3096
|
r && r.setAttribute("selected", "");
|
|
3086
3097
|
}
|
|
3087
3098
|
}
|
|
3088
|
-
function
|
|
3089
|
-
return Z(t, Element) && (
|
|
3099
|
+
function xi(e, t, n) {
|
|
3100
|
+
return Z(t, Element) && (vi(e, t, n), Qr(e, t, n), yi(e, t), bi(e, t)), t;
|
|
3090
3101
|
}
|
|
3091
|
-
async function
|
|
3102
|
+
async function Si(e, t) {
|
|
3092
3103
|
let n = e.querySelectorAll ? e.querySelectorAll("use") : [];
|
|
3093
3104
|
if (n.length === 0) return e;
|
|
3094
3105
|
let r = {};
|
|
@@ -3096,7 +3107,7 @@ async function Ci(e, t) {
|
|
|
3096
3107
|
let a = n[i].getAttribute("xlink:href");
|
|
3097
3108
|
if (a) {
|
|
3098
3109
|
let n = e.querySelector(a), i = document.querySelector(a);
|
|
3099
|
-
!n && i && !r[a] && (r[a] = await
|
|
3110
|
+
!n && i && !r[a] && (r[a] = await Ci(i, t, !0));
|
|
3100
3111
|
}
|
|
3101
3112
|
}
|
|
3102
3113
|
let i = Object.values(r);
|
|
@@ -3110,61 +3121,61 @@ async function Ci(e, t) {
|
|
|
3110
3121
|
}
|
|
3111
3122
|
return e;
|
|
3112
3123
|
}
|
|
3113
|
-
async function
|
|
3114
|
-
return !n && t.filter && !t.filter(e) ? null : Promise.resolve(e).then((e) =>
|
|
3124
|
+
async function Ci(e, t, n) {
|
|
3125
|
+
return !n && t.filter && !t.filter(e) ? null : Promise.resolve(e).then((e) => mi(e, t)).then((n) => _i(e, n, t)).then((n) => xi(e, n, t)).then((e) => Si(e, t));
|
|
3115
3126
|
}
|
|
3116
3127
|
//#endregion
|
|
3117
3128
|
//#region ../../node_modules/.pnpm/html-to-image@1.11.13/node_modules/html-to-image/es/embed-resources.js
|
|
3118
|
-
var
|
|
3119
|
-
function
|
|
3129
|
+
var wi = /url\((['"]?)([^'"]+?)\1\)/g, Ti = /url\([^)]+\)\s*format\((["']?)([^"']+)\1\)/g, Ei = /src:\s*(?:url\([^)]+\)\s*format\([^)]+\)[,;]\s*)+/g;
|
|
3130
|
+
function Di(e) {
|
|
3120
3131
|
let t = e.replace(/([.*+?^${}()|\[\]\/\\])/g, "\\$1");
|
|
3121
3132
|
return RegExp(`(url\\(['"]?)(${t})(['"]?\\))`, "g");
|
|
3122
3133
|
}
|
|
3123
|
-
function
|
|
3134
|
+
function Oi(e) {
|
|
3124
3135
|
let t = [];
|
|
3125
|
-
return e.replace(
|
|
3136
|
+
return e.replace(wi, (e, n, r) => (t.push(r), e)), t.filter((e) => !ai(e));
|
|
3126
3137
|
}
|
|
3127
|
-
async function
|
|
3138
|
+
async function ki(e, t, n, r, i) {
|
|
3128
3139
|
try {
|
|
3129
|
-
let a = n ?
|
|
3130
|
-
return s = i ?
|
|
3140
|
+
let a = n ? Pr(t, n) : t, o = ri(t), s;
|
|
3141
|
+
return s = i ? oi(await i(a), o) : await ui(a, o, r), e.replace(Di(t), `$1${s}$3`);
|
|
3131
3142
|
} catch {}
|
|
3132
3143
|
return e;
|
|
3133
3144
|
}
|
|
3134
|
-
function
|
|
3135
|
-
return t ? e.replace(
|
|
3145
|
+
function Ai(e, { preferredFontFormat: t }) {
|
|
3146
|
+
return t ? e.replace(Ei, (e) => {
|
|
3136
3147
|
for (;;) {
|
|
3137
|
-
let [n, , r] =
|
|
3148
|
+
let [n, , r] = Ti.exec(e) || [];
|
|
3138
3149
|
if (!r) return "";
|
|
3139
3150
|
if (r === t) return `src: ${n};`;
|
|
3140
3151
|
}
|
|
3141
3152
|
}) : e;
|
|
3142
3153
|
}
|
|
3143
|
-
function
|
|
3144
|
-
return e.search(
|
|
3154
|
+
function ji(e) {
|
|
3155
|
+
return e.search(wi) !== -1;
|
|
3145
3156
|
}
|
|
3146
|
-
async function
|
|
3147
|
-
if (!
|
|
3148
|
-
let r =
|
|
3149
|
-
return
|
|
3157
|
+
async function Mi(e, t, n) {
|
|
3158
|
+
if (!ji(e)) return e;
|
|
3159
|
+
let r = Ai(e, n);
|
|
3160
|
+
return Oi(r).reduce((e, r) => e.then((e) => ki(e, r, t, n)), Promise.resolve(r));
|
|
3150
3161
|
}
|
|
3151
3162
|
//#endregion
|
|
3152
3163
|
//#region ../../node_modules/.pnpm/html-to-image@1.11.13/node_modules/html-to-image/es/embed-images.js
|
|
3153
|
-
async function
|
|
3164
|
+
async function Ni(e, t, n) {
|
|
3154
3165
|
let r = t.style?.getPropertyValue(e);
|
|
3155
3166
|
if (r) {
|
|
3156
|
-
let i = await
|
|
3167
|
+
let i = await Mi(r, null, n);
|
|
3157
3168
|
return t.style.setProperty(e, i, t.style.getPropertyPriority(e)), !0;
|
|
3158
3169
|
}
|
|
3159
3170
|
return !1;
|
|
3160
3171
|
}
|
|
3161
|
-
async function
|
|
3162
|
-
await
|
|
3172
|
+
async function Pi(e, t) {
|
|
3173
|
+
await Ni("background", e, t) || await Ni("background-image", e, t), await Ni("mask", e, t) || await Ni("-webkit-mask", e, t) || await Ni("mask-image", e, t) || await Ni("-webkit-mask-image", e, t);
|
|
3163
3174
|
}
|
|
3164
|
-
async function
|
|
3175
|
+
async function Fi(e, t) {
|
|
3165
3176
|
let n = Z(e, HTMLImageElement);
|
|
3166
|
-
if (!(n && !
|
|
3167
|
-
let r = n ? e.src : e.href.baseVal, i = await
|
|
3177
|
+
if (!(n && !ai(e.src)) && !(Z(e, SVGImageElement) && !ai(e.href.baseVal))) return;
|
|
3178
|
+
let r = n ? e.src : e.href.baseVal, i = await ui(r, ri(r), t);
|
|
3168
3179
|
await new Promise((r, a) => {
|
|
3169
3180
|
e.onload = r, e.onerror = t.onImageErrorHandler ? (...e) => {
|
|
3170
3181
|
try {
|
|
@@ -3177,16 +3188,16 @@ async function Ii(e, t) {
|
|
|
3177
3188
|
o.decode &&= r, o.loading === "lazy" && (o.loading = "eager"), n ? (e.srcset = "", e.src = i) : e.href.baseVal = i;
|
|
3178
3189
|
});
|
|
3179
3190
|
}
|
|
3180
|
-
async function
|
|
3181
|
-
let n =
|
|
3191
|
+
async function Ii(e, t) {
|
|
3192
|
+
let n = Ir(e.childNodes).map((e) => Li(e, t));
|
|
3182
3193
|
await Promise.all(n).then(() => e);
|
|
3183
3194
|
}
|
|
3184
|
-
async function
|
|
3185
|
-
Z(e, Element) && (await
|
|
3195
|
+
async function Li(e, t) {
|
|
3196
|
+
Z(e, Element) && (await Pi(e, t), await Fi(e, t), await Ii(e, t));
|
|
3186
3197
|
}
|
|
3187
3198
|
//#endregion
|
|
3188
3199
|
//#region ../../node_modules/.pnpm/html-to-image@1.11.13/node_modules/html-to-image/es/apply-style.js
|
|
3189
|
-
function
|
|
3200
|
+
function Ri(e, t) {
|
|
3190
3201
|
let { style: n } = e;
|
|
3191
3202
|
t.backgroundColor && (n.backgroundColor = t.backgroundColor), t.width && (n.width = `${t.width}px`), t.height && (n.height = `${t.height}px`);
|
|
3192
3203
|
let r = t.style;
|
|
@@ -3196,22 +3207,22 @@ function zi(e, t) {
|
|
|
3196
3207
|
}
|
|
3197
3208
|
//#endregion
|
|
3198
3209
|
//#region ../../node_modules/.pnpm/html-to-image@1.11.13/node_modules/html-to-image/es/embed-webfonts.js
|
|
3199
|
-
var
|
|
3200
|
-
async function
|
|
3201
|
-
let t =
|
|
3210
|
+
var zi = {};
|
|
3211
|
+
async function Bi(e) {
|
|
3212
|
+
let t = zi[e];
|
|
3202
3213
|
return t ?? (t = {
|
|
3203
3214
|
url: e,
|
|
3204
3215
|
cssText: await (await fetch(e)).text()
|
|
3205
|
-
},
|
|
3216
|
+
}, zi[e] = t, t);
|
|
3206
3217
|
}
|
|
3207
|
-
async function
|
|
3218
|
+
async function Vi(e, t) {
|
|
3208
3219
|
let n = e.cssText, r = /url\(["']?([^"')]+)["']?\)/g, i = (n.match(/url\([^)]+\)/g) || []).map(async (i) => {
|
|
3209
3220
|
let a = i.replace(r, "$1");
|
|
3210
|
-
return a.startsWith("https://") || (a = new URL(a, e.url).href),
|
|
3221
|
+
return a.startsWith("https://") || (a = new URL(a, e.url).href), si(a, t.fetchRequestInit, ({ result: e }) => (n = n.replace(i, `url(${e})`), [i, e]));
|
|
3211
3222
|
});
|
|
3212
3223
|
return Promise.all(i).then(() => n);
|
|
3213
3224
|
}
|
|
3214
|
-
function
|
|
3225
|
+
function Hi(e) {
|
|
3215
3226
|
if (e == null) return [];
|
|
3216
3227
|
let t = [], n = e.replace(/(\/\*[\s\S]*?\*\/)/gi, ""), r = /* @__PURE__ */ RegExp("((@.*?keyframes [\\s\\S]*?){([\\s\\S]*?}\\s*?)})", "gi");
|
|
3217
3228
|
for (;;) {
|
|
@@ -3231,13 +3242,13 @@ function Ui(e) {
|
|
|
3231
3242
|
}
|
|
3232
3243
|
return t;
|
|
3233
3244
|
}
|
|
3234
|
-
async function
|
|
3245
|
+
async function Ui(e, t) {
|
|
3235
3246
|
let n = [], r = [];
|
|
3236
3247
|
return e.forEach((n) => {
|
|
3237
3248
|
if ("cssRules" in n) try {
|
|
3238
|
-
|
|
3249
|
+
Ir(n.cssRules || []).forEach((e, i) => {
|
|
3239
3250
|
if (e.type === CSSRule.IMPORT_RULE) {
|
|
3240
|
-
let a = i + 1, o = e.href, s =
|
|
3251
|
+
let a = i + 1, o = e.href, s = Bi(o).then((e) => Vi(e, t)).then((e) => Hi(e).forEach((e) => {
|
|
3241
3252
|
try {
|
|
3242
3253
|
n.insertRule(e, e.startsWith("@import") ? a += 1 : n.cssRules.length);
|
|
3243
3254
|
} catch (t) {
|
|
@@ -3254,7 +3265,7 @@ async function Wi(e, t) {
|
|
|
3254
3265
|
});
|
|
3255
3266
|
} catch (i) {
|
|
3256
3267
|
let a = e.find((e) => e.href == null) || document.styleSheets[0];
|
|
3257
|
-
n.href != null && r.push(
|
|
3268
|
+
n.href != null && r.push(Bi(n.href).then((e) => Vi(e, t)).then((e) => Hi(e).forEach((e) => {
|
|
3258
3269
|
a.insertRule(e, a.cssRules.length);
|
|
3259
3270
|
})).catch((e) => {
|
|
3260
3271
|
console.error("Error loading remote stylesheet", e);
|
|
@@ -3262,7 +3273,7 @@ async function Wi(e, t) {
|
|
|
3262
3273
|
}
|
|
3263
3274
|
}), Promise.all(r).then(() => (e.forEach((e) => {
|
|
3264
3275
|
if ("cssRules" in e) try {
|
|
3265
|
-
|
|
3276
|
+
Ir(e.cssRules || []).forEach((e) => {
|
|
3266
3277
|
n.push(e);
|
|
3267
3278
|
});
|
|
3268
3279
|
} catch (t) {
|
|
@@ -3270,36 +3281,36 @@ async function Wi(e, t) {
|
|
|
3270
3281
|
}
|
|
3271
3282
|
}), n));
|
|
3272
3283
|
}
|
|
3273
|
-
function
|
|
3274
|
-
return e.filter((e) => e.type === CSSRule.FONT_FACE_RULE).filter((e) =>
|
|
3284
|
+
function Wi(e) {
|
|
3285
|
+
return e.filter((e) => e.type === CSSRule.FONT_FACE_RULE).filter((e) => ji(e.style.getPropertyValue("src")));
|
|
3275
3286
|
}
|
|
3276
|
-
async function
|
|
3287
|
+
async function Gi(e, t) {
|
|
3277
3288
|
if (e.ownerDocument == null) throw Error("Provided element is not within a Document");
|
|
3278
|
-
return
|
|
3289
|
+
return Wi(await Ui(Ir(e.ownerDocument.styleSheets), t));
|
|
3279
3290
|
}
|
|
3280
|
-
function
|
|
3291
|
+
function Ki(e) {
|
|
3281
3292
|
return e.trim().replace(/["']/g, "");
|
|
3282
3293
|
}
|
|
3283
|
-
function
|
|
3294
|
+
function qi(e) {
|
|
3284
3295
|
let t = /* @__PURE__ */ new Set();
|
|
3285
3296
|
function n(e) {
|
|
3286
3297
|
(e.style.fontFamily || getComputedStyle(e).fontFamily).split(",").forEach((e) => {
|
|
3287
|
-
t.add(
|
|
3298
|
+
t.add(Ki(e));
|
|
3288
3299
|
}), Array.from(e.children).forEach((e) => {
|
|
3289
3300
|
e instanceof HTMLElement && n(e);
|
|
3290
3301
|
});
|
|
3291
3302
|
}
|
|
3292
3303
|
return n(e), t;
|
|
3293
3304
|
}
|
|
3294
|
-
async function
|
|
3295
|
-
let n = await
|
|
3296
|
-
return (await Promise.all(n.filter((e) => r.has(
|
|
3305
|
+
async function Ji(e, t) {
|
|
3306
|
+
let n = await Gi(e, t), r = qi(e);
|
|
3307
|
+
return (await Promise.all(n.filter((e) => r.has(Ki(e.style.fontFamily))).map((e) => {
|
|
3297
3308
|
let n = e.parentStyleSheet ? e.parentStyleSheet.href : null;
|
|
3298
|
-
return
|
|
3309
|
+
return Mi(e.cssText, n, t);
|
|
3299
3310
|
}))).join("\n");
|
|
3300
3311
|
}
|
|
3301
|
-
async function
|
|
3302
|
-
let n = t.fontEmbedCSS == null ? t.skipFonts ? null : await
|
|
3312
|
+
async function Yi(e, t) {
|
|
3313
|
+
let n = t.fontEmbedCSS == null ? t.skipFonts ? null : await Ji(e, t) : t.fontEmbedCSS;
|
|
3303
3314
|
if (n) {
|
|
3304
3315
|
let t = document.createElement("style"), r = document.createTextNode(n);
|
|
3305
3316
|
t.appendChild(r), e.firstChild ? e.insertBefore(t, e.firstChild) : e.appendChild(t);
|
|
@@ -3307,23 +3318,23 @@ async function Xi(e, t) {
|
|
|
3307
3318
|
}
|
|
3308
3319
|
//#endregion
|
|
3309
3320
|
//#region ../../node_modules/.pnpm/html-to-image@1.11.13/node_modules/html-to-image/es/index.js
|
|
3310
|
-
async function
|
|
3311
|
-
let { width: n, height: r } =
|
|
3312
|
-
return await
|
|
3321
|
+
async function Xi(e, t = {}) {
|
|
3322
|
+
let { width: n, height: r } = Hr(e, t), i = await Ci(e, t, !0);
|
|
3323
|
+
return await Yi(i, t), await Li(i, t), Ri(i, t), await qr(i, n, r);
|
|
3313
3324
|
}
|
|
3314
|
-
async function
|
|
3315
|
-
let { width: n, height: r } =
|
|
3316
|
-
return a.width = c * s, a.height = l * s, t.skipAutoScale ||
|
|
3325
|
+
async function Zi(e, t = {}) {
|
|
3326
|
+
let { width: n, height: r } = Hr(e, t), i = await Gr(await Xi(e, t)), a = document.createElement("canvas"), o = a.getContext("2d"), s = t.pixelRatio || Ur(), c = t.canvasWidth || n, l = t.canvasHeight || r;
|
|
3327
|
+
return a.width = c * s, a.height = l * s, t.skipAutoScale || Wr(a), a.style.width = `${c}`, a.style.height = `${l}`, t.backgroundColor && (o.fillStyle = t.backgroundColor, o.fillRect(0, 0, a.width, a.height)), o.drawImage(i, 0, 0, a.width, a.height), a;
|
|
3317
3328
|
}
|
|
3318
3329
|
//#endregion
|
|
3319
3330
|
//#region src/runtime/screenshot.ts
|
|
3320
|
-
var
|
|
3321
|
-
async function
|
|
3331
|
+
var Qi = 2 * 1024 * 1024;
|
|
3332
|
+
async function $i(e, t) {
|
|
3322
3333
|
try {
|
|
3323
3334
|
function n(t) {
|
|
3324
3335
|
return !(e && (t === e || e.contains(t)));
|
|
3325
3336
|
}
|
|
3326
|
-
let r = window.innerWidth, i = window.innerHeight, a = Math.min(window.devicePixelRatio, 2), o = await
|
|
3337
|
+
let r = window.innerWidth, i = window.innerHeight, a = Math.min(window.devicePixelRatio, 2), o = await Zi(document.documentElement, {
|
|
3327
3338
|
width: r,
|
|
3328
3339
|
height: i,
|
|
3329
3340
|
cacheBust: !0,
|
|
@@ -3337,21 +3348,21 @@ async function ea(e, t) {
|
|
|
3337
3348
|
});
|
|
3338
3349
|
if (t) {
|
|
3339
3350
|
let e = o.getContext("2d");
|
|
3340
|
-
e &&
|
|
3351
|
+
e && ta(e, t.x, t.y, a);
|
|
3341
3352
|
}
|
|
3342
|
-
let s = await
|
|
3353
|
+
let s = await ea(o, .85);
|
|
3343
3354
|
if (!s) return null;
|
|
3344
|
-
if (s.size <=
|
|
3345
|
-
let c = await
|
|
3346
|
-
return !c || c.size >
|
|
3355
|
+
if (s.size <= Qi) return s;
|
|
3356
|
+
let c = await ea(o, .5);
|
|
3357
|
+
return !c || c.size > Qi ? null : c;
|
|
3347
3358
|
} catch {
|
|
3348
3359
|
return null;
|
|
3349
3360
|
}
|
|
3350
3361
|
}
|
|
3351
|
-
function
|
|
3362
|
+
function ea(e, t) {
|
|
3352
3363
|
return new Promise((n) => e.toBlob(n, "image/jpeg", t));
|
|
3353
3364
|
}
|
|
3354
|
-
function
|
|
3365
|
+
function ta(e, t, n, r) {
|
|
3355
3366
|
let i = r, a = 28 * i, o = a / 2, s = t * i, c = n * i;
|
|
3356
3367
|
e.save(), e.translate(s, c), e.rotate(-Math.PI / 4);
|
|
3357
3368
|
let l = 2 * i;
|
|
@@ -3374,7 +3385,7 @@ function Q(...e) {
|
|
|
3374
3385
|
}
|
|
3375
3386
|
//#endregion
|
|
3376
3387
|
//#region ../../node_modules/.pnpm/preact@10.29.1/node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js
|
|
3377
|
-
var
|
|
3388
|
+
var na = 0;
|
|
3378
3389
|
Array.isArray;
|
|
3379
3390
|
function $(e, n, r, i, a, o) {
|
|
3380
3391
|
n ||= {};
|
|
@@ -3391,7 +3402,7 @@ function $(e, n, r, i, a, o) {
|
|
|
3391
3402
|
__e: null,
|
|
3392
3403
|
__c: null,
|
|
3393
3404
|
constructor: void 0,
|
|
3394
|
-
__v: --
|
|
3405
|
+
__v: --na,
|
|
3395
3406
|
__i: -1,
|
|
3396
3407
|
__u: 0,
|
|
3397
3408
|
__source: a,
|
|
@@ -3402,7 +3413,7 @@ function $(e, n, r, i, a, o) {
|
|
|
3402
3413
|
}
|
|
3403
3414
|
//#endregion
|
|
3404
3415
|
//#region src/runtime/ui/icons.tsx
|
|
3405
|
-
function
|
|
3416
|
+
function ra({ size: e = 16 }) {
|
|
3406
3417
|
return /* @__PURE__ */ $("svg", {
|
|
3407
3418
|
width: e,
|
|
3408
3419
|
height: e,
|
|
@@ -3412,7 +3423,7 @@ function ia({ size: e = 16 }) {
|
|
|
3412
3423
|
children: /* @__PURE__ */ $("path", { d: "M63.4561 0.00557731C70.6277 -0.0175584 76.9025 1.04088 83.5898 3.71066C97.7952 9.43043 109.186 20.5001 115.311 34.5359C119.708 44.8002 120.746 54.7869 119.156 65.8171C116.857 82.7956 105.129 98.8382 90.0566 106.846C83.4394 110.362 74.7336 113.029 67.2051 113.271C62.4204 113.425 61.1274 113.32 56.6807 115.204C50.2035 117.858 43.6874 120.417 37.1348 122.879C34.8442 123.763 32.3203 124.902 29.9404 125.51C29.4023 125.648 28.1978 125.009 27.7598 124.646C26.9046 123.951 27.0582 122.505 27.0264 121.484C26.8123 114.646 27.3302 107.458 26.8604 100.656C25.1578 98.6714 22.4026 96.603 20.3086 94.1989C12.1853 84.8731 7.05334 73.9949 6.18164 61.6101C4.95583 46.292 9.97176 31.1285 20.0908 19.5632C29.989 8.13202 44.0369 1.11921 59.1221 0.0788195C60.2694 -0.0356049 62.2637 0.00944821 63.4561 0.00557731ZM92.2676 55.7497C91.5754 39.5314 77.8207 26.9725 61.6064 27.7536C45.5175 28.5287 33.0758 42.1537 33.7627 58.2468C34.4496 74.3398 48.007 86.8553 64.1035 86.2566C80.3254 85.6533 92.9599 71.968 92.2676 55.7497Z" })
|
|
3413
3424
|
});
|
|
3414
3425
|
}
|
|
3415
|
-
function
|
|
3426
|
+
function ia({ size: e = 16 }) {
|
|
3416
3427
|
return /* @__PURE__ */ $("svg", {
|
|
3417
3428
|
width: e,
|
|
3418
3429
|
height: e,
|
|
@@ -3421,7 +3432,7 @@ function aa({ size: e = 16 }) {
|
|
|
3421
3432
|
children: /* @__PURE__ */ $("path", { d: "M6.28 5.22a.75.75 0 0 0-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 1 0 1.06 1.06L10 11.06l3.72 3.72a.75.75 0 1 0 1.06-1.06L11.06 10l3.72-3.72a.75.75 0 0 0-1.06-1.06L10 8.94 6.28 5.22Z" })
|
|
3422
3433
|
});
|
|
3423
3434
|
}
|
|
3424
|
-
function
|
|
3435
|
+
function aa({ size: e = 16 }) {
|
|
3425
3436
|
return /* @__PURE__ */ $("svg", {
|
|
3426
3437
|
width: e,
|
|
3427
3438
|
height: e,
|
|
@@ -3430,7 +3441,7 @@ function oa({ size: e = 16 }) {
|
|
|
3430
3441
|
children: /* @__PURE__ */ $("path", { d: "M3 10a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0ZM8.5 10a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0ZM15.5 8.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3Z" })
|
|
3431
3442
|
});
|
|
3432
3443
|
}
|
|
3433
|
-
function
|
|
3444
|
+
function oa({ size: e = 16 }) {
|
|
3434
3445
|
return /* @__PURE__ */ $("svg", {
|
|
3435
3446
|
width: e,
|
|
3436
3447
|
height: e,
|
|
@@ -3443,7 +3454,7 @@ function sa({ size: e = 16 }) {
|
|
|
3443
3454
|
})
|
|
3444
3455
|
});
|
|
3445
3456
|
}
|
|
3446
|
-
function
|
|
3457
|
+
function sa({ size: e = 16 }) {
|
|
3447
3458
|
return /* @__PURE__ */ $("svg", {
|
|
3448
3459
|
width: e,
|
|
3449
3460
|
height: e,
|
|
@@ -3457,7 +3468,7 @@ function ca({ size: e = 16 }) {
|
|
|
3457
3468
|
})
|
|
3458
3469
|
});
|
|
3459
3470
|
}
|
|
3460
|
-
function
|
|
3471
|
+
function ca({ size: e = 16 }) {
|
|
3461
3472
|
return /* @__PURE__ */ $("svg", {
|
|
3462
3473
|
width: e,
|
|
3463
3474
|
height: e,
|
|
@@ -3466,7 +3477,7 @@ function la({ size: e = 16 }) {
|
|
|
3466
3477
|
children: /* @__PURE__ */ $("path", { d: "M2.87 2.298a.75.75 0 0 0-.812 1.021L3.39 6.624a1 1 0 0 0 .928.626H8.25a.75.75 0 0 1 0 1.5H4.318a1 1 0 0 0-.927.626l-1.333 3.305a.75.75 0 0 0 .811 1.022 24.89 24.89 0 0 0 11.668-5.115.75.75 0 0 0 0-1.175A24.89 24.89 0 0 0 2.869 2.298Z" })
|
|
3467
3478
|
});
|
|
3468
3479
|
}
|
|
3469
|
-
function
|
|
3480
|
+
function la({ size: e = 16 }) {
|
|
3470
3481
|
return /* @__PURE__ */ $("svg", {
|
|
3471
3482
|
width: e,
|
|
3472
3483
|
height: e,
|
|
@@ -3478,31 +3489,76 @@ function ua({ size: e = 16 }) {
|
|
|
3478
3489
|
}
|
|
3479
3490
|
//#endregion
|
|
3480
3491
|
//#region src/runtime/ui/fab.tsx
|
|
3481
|
-
function
|
|
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 = B(null), [s, c] = R(null), [l, u] = R(!1), d = B(!1);
|
|
3494
|
+
function f(e) {
|
|
3495
|
+
if (e.stopPropagation(), e.button !== 0) return;
|
|
3496
|
+
let t = o.current;
|
|
3497
|
+
if (!t) return;
|
|
3498
|
+
let n = t, a = n.getBoundingClientRect(), s = e.clientX, l = e.clientY, f = a.left, p = a.top, m = a.width, h = a.height, g = !1;
|
|
3499
|
+
d.current = !1;
|
|
3500
|
+
try {
|
|
3501
|
+
n.setPointerCapture(e.pointerId);
|
|
3502
|
+
} catch {}
|
|
3503
|
+
function _(e) {
|
|
3504
|
+
let t = e.clientX - s, n = e.clientY - l;
|
|
3505
|
+
if (!g) {
|
|
3506
|
+
if (Math.abs(t) + Math.abs(n) < 4) return;
|
|
3507
|
+
g = !0, d.current = !0, u(!0);
|
|
3508
|
+
}
|
|
3509
|
+
let r = Math.max(8, window.innerWidth - m - 8), i = Math.max(8, window.innerHeight - h - 8);
|
|
3510
|
+
c({
|
|
3511
|
+
left: da(f + t, 8, r),
|
|
3512
|
+
top: da(p + n, 8, i)
|
|
3513
|
+
});
|
|
3514
|
+
}
|
|
3515
|
+
function v(e) {
|
|
3516
|
+
try {
|
|
3517
|
+
n.releasePointerCapture(e.pointerId);
|
|
3518
|
+
} catch {}
|
|
3519
|
+
if (n.removeEventListener("pointermove", _), n.removeEventListener("pointerup", v), n.removeEventListener("pointercancel", v), g) {
|
|
3520
|
+
let t = e.clientX < window.innerWidth / 2 ? "bottom-left" : "bottom-right";
|
|
3521
|
+
t !== r && i?.(t);
|
|
3522
|
+
}
|
|
3523
|
+
c(null), u(!1);
|
|
3524
|
+
}
|
|
3525
|
+
n.addEventListener("pointermove", _), n.addEventListener("pointerup", v), n.addEventListener("pointercancel", v);
|
|
3526
|
+
}
|
|
3527
|
+
function p(e) {
|
|
3528
|
+
if (e.preventDefault(), e.stopPropagation(), d.current) {
|
|
3529
|
+
d.current = !1;
|
|
3530
|
+
return;
|
|
3531
|
+
}
|
|
3532
|
+
if ((e.metaKey || e.ctrlKey) && n) {
|
|
3533
|
+
n();
|
|
3534
|
+
return;
|
|
3535
|
+
}
|
|
3536
|
+
t();
|
|
3537
|
+
}
|
|
3482
3538
|
return /* @__PURE__ */ $("button", {
|
|
3539
|
+
ref: o,
|
|
3483
3540
|
type: "button",
|
|
3484
|
-
class: Q("markup-fab",
|
|
3485
|
-
|
|
3486
|
-
|
|
3487
|
-
|
|
3488
|
-
|
|
3489
|
-
|
|
3490
|
-
|
|
3491
|
-
},
|
|
3492
|
-
onPointerDown: (e) => {
|
|
3493
|
-
e.preventDefault(), e.stopPropagation();
|
|
3494
|
-
},
|
|
3541
|
+
class: Q("markup-fab", !s && a, s && "is-floating", l && "is-dragging", e && "is-active"),
|
|
3542
|
+
style: s ? {
|
|
3543
|
+
left: `${s.left}px`,
|
|
3544
|
+
top: `${s.top}px`
|
|
3545
|
+
} : void 0,
|
|
3546
|
+
onClick: p,
|
|
3547
|
+
onPointerDown: f,
|
|
3495
3548
|
"aria-label": e ? "Cancel placing markup" : "Leave a markup",
|
|
3496
3549
|
"aria-pressed": e,
|
|
3497
3550
|
children: [/* @__PURE__ */ $("span", {
|
|
3498
3551
|
class: "markup-fab-icon",
|
|
3499
|
-
children: $(e ?
|
|
3552
|
+
children: $(e ? ia : ra, { size: 16 })
|
|
3500
3553
|
}), /* @__PURE__ */ $("span", {
|
|
3501
3554
|
class: "markup-fab-label",
|
|
3502
3555
|
children: e ? "Cancel" : "Markup"
|
|
3503
3556
|
})]
|
|
3504
3557
|
});
|
|
3505
3558
|
}
|
|
3559
|
+
function da(e, t, n) {
|
|
3560
|
+
return Math.max(t, Math.min(n, e));
|
|
3561
|
+
}
|
|
3506
3562
|
//#endregion
|
|
3507
3563
|
//#region src/runtime/use-focus-trap.ts
|
|
3508
3564
|
var fa = [
|
|
@@ -3514,7 +3570,7 @@ var fa = [
|
|
|
3514
3570
|
"[tabindex]:not([tabindex=\"-1\"])"
|
|
3515
3571
|
].join(",");
|
|
3516
3572
|
function pa(e, t) {
|
|
3517
|
-
|
|
3573
|
+
z(() => {
|
|
3518
3574
|
if (!t) return;
|
|
3519
3575
|
let n = e.current;
|
|
3520
3576
|
if (!n) return;
|
|
@@ -3531,8 +3587,8 @@ function pa(e, t) {
|
|
|
3531
3587
|
//#endregion
|
|
3532
3588
|
//#region src/runtime/ui/author-prompt.tsx
|
|
3533
3589
|
function ma({ pending: e, onSubmit: t, onCancel: n, onSignIn: r }) {
|
|
3534
|
-
let [i, a] =
|
|
3535
|
-
|
|
3590
|
+
let [i, a] = R(""), [o, s] = R(""), c = B(null);
|
|
3591
|
+
z(() => {
|
|
3536
3592
|
c.current?.focus();
|
|
3537
3593
|
}, []);
|
|
3538
3594
|
function l(n) {
|
|
@@ -3604,13 +3660,13 @@ function ma({ pending: e, onSubmit: t, onCancel: n, onSignIn: r }) {
|
|
|
3604
3660
|
//#region src/runtime/ui/composer.tsx
|
|
3605
3661
|
var ha = 4e3;
|
|
3606
3662
|
function ga({ label: e, placeholder: t = "Leave feedback…", submitLabel: n = "Post", initialFocus: r = !0, pending: i, error: a, onSubmit: o }) {
|
|
3607
|
-
let [s, c] =
|
|
3608
|
-
|
|
3663
|
+
let [s, c] = R(""), l = B(null), u = B(!1);
|
|
3664
|
+
z(() => {
|
|
3609
3665
|
r && l.current?.focus();
|
|
3610
|
-
}, [r]),
|
|
3666
|
+
}, [r]), z(() => {
|
|
3611
3667
|
let e = l.current;
|
|
3612
3668
|
e && (e.style.height = "auto", e.style.height = `${Math.min(e.scrollHeight, 160)}px`);
|
|
3613
|
-
}, [s]),
|
|
3669
|
+
}, [s]), z(() => {
|
|
3614
3670
|
u.current && !i && !a && (c(""), l.current?.focus()), u.current = i;
|
|
3615
3671
|
}, [i, a]);
|
|
3616
3672
|
function d(e) {
|
|
@@ -3630,7 +3686,7 @@ function ga({ label: e, placeholder: t = "Leave feedback…", submitLabel: n = "
|
|
|
3630
3686
|
"aria-label": i ? "Sending…" : n,
|
|
3631
3687
|
title: i ? "Sending…" : n,
|
|
3632
3688
|
tabIndex: e,
|
|
3633
|
-
children: /* @__PURE__ */ $(
|
|
3689
|
+
children: /* @__PURE__ */ $(ca, { size: 14 })
|
|
3634
3690
|
});
|
|
3635
3691
|
}
|
|
3636
3692
|
return /* @__PURE__ */ $("form", {
|
|
@@ -3680,14 +3736,14 @@ function ga({ label: e, placeholder: t = "Leave feedback…", submitLabel: n = "
|
|
|
3680
3736
|
//#endregion
|
|
3681
3737
|
//#region src/runtime/ui/new-thread-popover.tsx
|
|
3682
3738
|
function _a({ pageX: e, pageY: t, authorName: n, isVerified: r, pending: i, error: a, screenshot: o, screenshotCapturing: s, onAuthor: c, onSignIn: l, onSubmit: u, onClose: d }) {
|
|
3683
|
-
let f =
|
|
3739
|
+
let f = B(null);
|
|
3684
3740
|
pa(f, !0);
|
|
3685
|
-
let [p, m] =
|
|
3686
|
-
|
|
3741
|
+
let [p, m] = R(!1), [h, g] = R(null), [_, v] = R(null), [y, b] = R(!1);
|
|
3742
|
+
z(() => {
|
|
3687
3743
|
if (!o) return;
|
|
3688
3744
|
let e = URL.createObjectURL(o);
|
|
3689
3745
|
return g(e), () => URL.revokeObjectURL(e);
|
|
3690
|
-
}, [o]),
|
|
3746
|
+
}, [o]), z(() => {
|
|
3691
3747
|
let e = f.current;
|
|
3692
3748
|
if (!e) return;
|
|
3693
3749
|
if (typeof e.showPopover == "function" && !e.matches(":popover-open")) try {
|
|
@@ -3698,19 +3754,48 @@ function _a({ pageX: e, pageY: t, authorName: n, isVerified: r, pending: i, erro
|
|
|
3698
3754
|
}
|
|
3699
3755
|
return e.addEventListener("toggle", t), () => e.removeEventListener("toggle", t);
|
|
3700
3756
|
}, [d]);
|
|
3701
|
-
let
|
|
3757
|
+
let x = va(e - window.scrollX + 16, 12, window.innerWidth - 320 - 12), S = va(t - window.scrollY - 16, 12, window.innerHeight - 220), C = o != null, w = s || C;
|
|
3758
|
+
function T(e) {
|
|
3759
|
+
if (e.button !== 0 || e.target?.closest("button, a, input, textarea, select")) return;
|
|
3760
|
+
let t = f.current;
|
|
3761
|
+
if (!t) return;
|
|
3762
|
+
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
|
+
try {
|
|
3764
|
+
l.setPointerCapture(e.pointerId);
|
|
3765
|
+
} catch {}
|
|
3766
|
+
function d(e) {
|
|
3767
|
+
let t = e.clientX - r, n = e.clientY - i;
|
|
3768
|
+
if (!u) {
|
|
3769
|
+
if (Math.abs(t) + Math.abs(n) < 4) return;
|
|
3770
|
+
u = !0, b(!0);
|
|
3771
|
+
}
|
|
3772
|
+
let l = Math.max(8, window.innerWidth - s - 8), d = Math.max(8, window.innerHeight - c - 8);
|
|
3773
|
+
v({
|
|
3774
|
+
left: va(a + t, 8, l),
|
|
3775
|
+
top: va(o + n, 8, d)
|
|
3776
|
+
});
|
|
3777
|
+
}
|
|
3778
|
+
function p(e) {
|
|
3779
|
+
try {
|
|
3780
|
+
l.releasePointerCapture(e.pointerId);
|
|
3781
|
+
} catch {}
|
|
3782
|
+
l.removeEventListener("pointermove", d), l.removeEventListener("pointerup", p), l.removeEventListener("pointercancel", p), b(!1);
|
|
3783
|
+
}
|
|
3784
|
+
l.addEventListener("pointermove", d), l.addEventListener("pointerup", p), l.addEventListener("pointercancel", p);
|
|
3785
|
+
}
|
|
3702
3786
|
return /* @__PURE__ */ $("div", {
|
|
3703
3787
|
ref: f,
|
|
3704
|
-
class: "markup-popover",
|
|
3788
|
+
class: Q("markup-popover", _ && "is-floating", y && "is-dragging"),
|
|
3705
3789
|
popover: "auto",
|
|
3706
3790
|
style: {
|
|
3707
|
-
"--markup-pop-x": `${_}px`,
|
|
3708
|
-
"--markup-pop-y": `${
|
|
3791
|
+
"--markup-pop-x": `${_?.left ?? x}px`,
|
|
3792
|
+
"--markup-pop-y": `${_?.top ?? S}px`
|
|
3709
3793
|
},
|
|
3710
3794
|
role: "dialog",
|
|
3711
3795
|
"aria-label": "New markup",
|
|
3712
3796
|
children: [/* @__PURE__ */ $("header", {
|
|
3713
3797
|
class: "markup-popover-header",
|
|
3798
|
+
onPointerDown: T,
|
|
3714
3799
|
children: [/* @__PURE__ */ $("span", {
|
|
3715
3800
|
class: "markup-eyebrow",
|
|
3716
3801
|
children: "new · markup"
|
|
@@ -3719,7 +3804,7 @@ function _a({ pageX: e, pageY: t, authorName: n, isVerified: r, pending: i, erro
|
|
|
3719
3804
|
class: "markup-icon-btn",
|
|
3720
3805
|
"aria-label": "Discard pin",
|
|
3721
3806
|
onClick: d,
|
|
3722
|
-
children: /* @__PURE__ */ $(
|
|
3807
|
+
children: /* @__PURE__ */ $(ia, { size: 16 })
|
|
3723
3808
|
})]
|
|
3724
3809
|
}), n == null ? /* @__PURE__ */ $(ma, {
|
|
3725
3810
|
pending: i,
|
|
@@ -3749,9 +3834,9 @@ function _a({ pageX: e, pageY: t, authorName: n, isVerified: r, pending: i, erro
|
|
|
3749
3834
|
submitLabel: "Post markup",
|
|
3750
3835
|
pending: i,
|
|
3751
3836
|
error: a,
|
|
3752
|
-
onSubmit: (e) => u(e, p &&
|
|
3837
|
+
onSubmit: (e) => u(e, p && C)
|
|
3753
3838
|
}),
|
|
3754
|
-
|
|
3839
|
+
w ? /* @__PURE__ */ $("div", {
|
|
3755
3840
|
class: "markup-screenshot-row",
|
|
3756
3841
|
children: s ? /* @__PURE__ */ $("span", {
|
|
3757
3842
|
class: "markup-screenshot-status",
|
|
@@ -3761,7 +3846,7 @@ function _a({ pageX: e, pageY: t, authorName: n, isVerified: r, pending: i, erro
|
|
|
3761
3846
|
class: "markup-screenshot-checkbox",
|
|
3762
3847
|
disabled: !0
|
|
3763
3848
|
}),
|
|
3764
|
-
/* @__PURE__ */ $(
|
|
3849
|
+
/* @__PURE__ */ $(sa, { size: 12 }),
|
|
3765
3850
|
/* @__PURE__ */ $("span", { children: "Capturing…" })
|
|
3766
3851
|
]
|
|
3767
3852
|
}) : /* @__PURE__ */ $("label", {
|
|
@@ -3773,7 +3858,7 @@ function _a({ pageX: e, pageY: t, authorName: n, isVerified: r, pending: i, erro
|
|
|
3773
3858
|
checked: p,
|
|
3774
3859
|
onChange: (e) => m(e.currentTarget.checked)
|
|
3775
3860
|
}),
|
|
3776
|
-
/* @__PURE__ */ $(
|
|
3861
|
+
/* @__PURE__ */ $(sa, { size: 12 }),
|
|
3777
3862
|
/* @__PURE__ */ $("span", { children: "Attach screenshot" }),
|
|
3778
3863
|
h && p ? /* @__PURE__ */ $("img", {
|
|
3779
3864
|
class: "markup-screenshot-thumb",
|
|
@@ -3832,14 +3917,14 @@ function ba({ pageX: e, pageY: t }) {
|
|
|
3832
3917
|
//#endregion
|
|
3833
3918
|
//#region src/runtime/ui/placement-overlay.tsx
|
|
3834
3919
|
function xa({ onPlace: e, onCancel: t }) {
|
|
3835
|
-
|
|
3920
|
+
z(() => {
|
|
3836
3921
|
function e(e) {
|
|
3837
3922
|
e.key === "Escape" && t();
|
|
3838
3923
|
}
|
|
3839
3924
|
return window.addEventListener("keydown", e), () => window.removeEventListener("keydown", e);
|
|
3840
3925
|
}, [t]);
|
|
3841
3926
|
function n(t) {
|
|
3842
|
-
t.stopPropagation(), t.preventDefault(), e(
|
|
3927
|
+
t.stopPropagation(), t.preventDefault(), e(wr(t, document.elementsFromPoint(t.clientX, t.clientY).find((e) => !e.shadowRoot) ?? null), t.clientX, t.clientY);
|
|
3843
3928
|
}
|
|
3844
3929
|
function r(e) {
|
|
3845
3930
|
e.preventDefault(), e.stopPropagation();
|
|
@@ -3866,31 +3951,31 @@ var Sa = [
|
|
|
3866
3951
|
"❓"
|
|
3867
3952
|
];
|
|
3868
3953
|
function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, canDelete: i, pending: a, error: o, onAuthor: s, onSignIn: c, onClose: l, onReply: u, onEditComment: d, onDeleteComment: f, onToggleReaction: p, onResolve: m, onDelete: h }) {
|
|
3869
|
-
let g =
|
|
3954
|
+
let g = B(null), _ = B(null), v = B(null), y = B(null), b = B(null), [x, S] = R(!1), [C, w] = R(!1), [T, E] = R(null), [D, O] = R(""), [k, A] = R(null), [j, M] = R("down"), [N, ee] = R(null), [P, F] = R(null), [te, ne] = R("down"), re = B(null), [ie, ae] = R(null), [oe, se] = R(!1);
|
|
3870
3955
|
pa(g, !0);
|
|
3871
|
-
let
|
|
3872
|
-
function
|
|
3956
|
+
let ce = e.resolvedAt != null, le = Ce(() => e.comments.filter((e) => !e.deleted), [e.comments]);
|
|
3957
|
+
function ue(e, t) {
|
|
3873
3958
|
E(e), O(t);
|
|
3874
3959
|
}
|
|
3875
|
-
function
|
|
3960
|
+
function I() {
|
|
3876
3961
|
E(null), O("");
|
|
3877
3962
|
}
|
|
3878
|
-
|
|
3963
|
+
z(() => {
|
|
3879
3964
|
if (!T) return;
|
|
3880
3965
|
let t = e.comments.find((e) => e._id === T);
|
|
3881
|
-
(!t || t.deleted) &&
|
|
3966
|
+
(!t || t.deleted) && I();
|
|
3882
3967
|
}, [e.comments, T]);
|
|
3883
|
-
let
|
|
3884
|
-
|
|
3968
|
+
let de = B(!0);
|
|
3969
|
+
z(() => {
|
|
3885
3970
|
let e = y.current;
|
|
3886
3971
|
if (e) {
|
|
3887
|
-
if (
|
|
3888
|
-
|
|
3972
|
+
if (de.current) {
|
|
3973
|
+
de.current = !1, e.scrollTop = e.scrollHeight;
|
|
3889
3974
|
return;
|
|
3890
3975
|
}
|
|
3891
3976
|
e.scrollHeight - e.scrollTop - e.clientHeight < 80 && (e.scrollTop = e.scrollHeight);
|
|
3892
3977
|
}
|
|
3893
|
-
}, [
|
|
3978
|
+
}, [le.length]), z(() => {
|
|
3894
3979
|
if (!x) {
|
|
3895
3980
|
w(!1);
|
|
3896
3981
|
return;
|
|
@@ -3899,22 +3984,22 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, canDe
|
|
|
3899
3984
|
_.current && !e.composedPath().includes(_.current) && S(!1);
|
|
3900
3985
|
}
|
|
3901
3986
|
return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
|
|
3902
|
-
}, [x]),
|
|
3903
|
-
if (!
|
|
3904
|
-
|
|
3987
|
+
}, [x]), z(() => {
|
|
3988
|
+
if (!k) {
|
|
3989
|
+
ee(null);
|
|
3905
3990
|
return;
|
|
3906
3991
|
}
|
|
3907
3992
|
function e(e) {
|
|
3908
|
-
v.current && !e.composedPath().includes(v.current) &&
|
|
3993
|
+
v.current && !e.composedPath().includes(v.current) && A(null);
|
|
3909
3994
|
}
|
|
3910
3995
|
return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
|
|
3911
|
-
}, [
|
|
3912
|
-
if (!
|
|
3996
|
+
}, [k]), z(() => {
|
|
3997
|
+
if (!P) return;
|
|
3913
3998
|
function e(e) {
|
|
3914
|
-
|
|
3999
|
+
re.current && !e.composedPath().includes(re.current) && F(null);
|
|
3915
4000
|
}
|
|
3916
4001
|
return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
|
|
3917
|
-
}, [
|
|
4002
|
+
}, [P]), z(() => {
|
|
3918
4003
|
let e = g.current;
|
|
3919
4004
|
if (!e) return;
|
|
3920
4005
|
if (typeof e.showPopover == "function" && !e.matches(":popover-open")) try {
|
|
@@ -3925,8 +4010,36 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, canDe
|
|
|
3925
4010
|
}
|
|
3926
4011
|
return e.addEventListener("toggle", t), () => e.removeEventListener("toggle", t);
|
|
3927
4012
|
}, [l]);
|
|
3928
|
-
|
|
3929
|
-
|
|
4013
|
+
function fe(e) {
|
|
4014
|
+
if (e.button !== 0 || e.target?.closest("button, a, input, textarea, select")) return;
|
|
4015
|
+
let t = g.current;
|
|
4016
|
+
if (!t) return;
|
|
4017
|
+
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
|
+
try {
|
|
4019
|
+
l.setPointerCapture(e.pointerId);
|
|
4020
|
+
} catch {}
|
|
4021
|
+
function d(e) {
|
|
4022
|
+
let t = e.clientX - r, n = e.clientY - i;
|
|
4023
|
+
if (!u) {
|
|
4024
|
+
if (Math.abs(t) + Math.abs(n) < 4) return;
|
|
4025
|
+
u = !0, se(!0);
|
|
4026
|
+
}
|
|
4027
|
+
let l = Math.max(8, window.innerWidth - s - 8), d = Math.max(8, window.innerHeight - c - 8);
|
|
4028
|
+
ae({
|
|
4029
|
+
left: Da(a + t, 8, l),
|
|
4030
|
+
top: Da(o + n, 8, d)
|
|
4031
|
+
});
|
|
4032
|
+
}
|
|
4033
|
+
function f(e) {
|
|
4034
|
+
try {
|
|
4035
|
+
l.releasePointerCapture(e.pointerId);
|
|
4036
|
+
} catch {}
|
|
4037
|
+
l.removeEventListener("pointermove", d), l.removeEventListener("pointerup", f), l.removeEventListener("pointercancel", f), se(!1);
|
|
4038
|
+
}
|
|
4039
|
+
l.addEventListener("pointermove", d), l.addEventListener("pointerup", f), l.addEventListener("pointercancel", f);
|
|
4040
|
+
}
|
|
4041
|
+
let pe = Ce(() => {
|
|
4042
|
+
let t = Tr({
|
|
3930
4043
|
anchorX: e.anchorX,
|
|
3931
4044
|
anchorY: e.anchorY,
|
|
3932
4045
|
anchorSelector: e.anchorSelector
|
|
@@ -3943,24 +4056,25 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, canDe
|
|
|
3943
4056
|
return /* @__PURE__ */ $("div", {
|
|
3944
4057
|
ref: g,
|
|
3945
4058
|
id: "markup-thread-popover",
|
|
3946
|
-
class: "markup-popover",
|
|
4059
|
+
class: Q("markup-popover", ie && "is-floating", oe && "is-dragging"),
|
|
3947
4060
|
popover: "auto",
|
|
3948
4061
|
style: {
|
|
3949
|
-
"--markup-pop-x": `${
|
|
3950
|
-
"--markup-pop-y": `${
|
|
4062
|
+
"--markup-pop-x": `${ie?.left ?? pe.left}px`,
|
|
4063
|
+
"--markup-pop-y": `${ie?.top ?? pe.top}px`
|
|
3951
4064
|
},
|
|
3952
4065
|
role: "dialog",
|
|
3953
4066
|
"aria-label": "Markup thread",
|
|
3954
4067
|
children: [
|
|
3955
4068
|
/* @__PURE__ */ $("header", {
|
|
3956
4069
|
class: "markup-popover-header",
|
|
4070
|
+
onPointerDown: fe,
|
|
3957
4071
|
children: [/* @__PURE__ */ $("span", {
|
|
3958
4072
|
class: "markup-eyebrow",
|
|
3959
4073
|
children: [
|
|
3960
4074
|
"thread · ",
|
|
3961
|
-
|
|
4075
|
+
le.length,
|
|
3962
4076
|
" ",
|
|
3963
|
-
|
|
4077
|
+
le.length === 1 ? "comment" : "comments"
|
|
3964
4078
|
]
|
|
3965
4079
|
}), /* @__PURE__ */ $("div", {
|
|
3966
4080
|
class: "markup-popover-header-actions",
|
|
@@ -3973,7 +4087,7 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, canDe
|
|
|
3973
4087
|
class: Q("markup-icon-btn", x && "is-open"),
|
|
3974
4088
|
title: "More options",
|
|
3975
4089
|
onClick: () => S((e) => !e),
|
|
3976
|
-
children: /* @__PURE__ */ $(
|
|
4090
|
+
children: /* @__PURE__ */ $(aa, { size: 16 })
|
|
3977
4091
|
}), x ? /* @__PURE__ */ $("div", {
|
|
3978
4092
|
class: "markup-thread-menu-list",
|
|
3979
4093
|
children: [/* @__PURE__ */ $("button", {
|
|
@@ -4001,14 +4115,14 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, canDe
|
|
|
4001
4115
|
title: "Mark as resolved",
|
|
4002
4116
|
disabled: a,
|
|
4003
4117
|
onClick: m,
|
|
4004
|
-
children: /* @__PURE__ */ $(
|
|
4118
|
+
children: /* @__PURE__ */ $(oa, { size: 16 })
|
|
4005
4119
|
}) : null,
|
|
4006
4120
|
/* @__PURE__ */ $("button", {
|
|
4007
4121
|
type: "button",
|
|
4008
4122
|
class: "markup-icon-btn",
|
|
4009
4123
|
title: "Close thread",
|
|
4010
4124
|
onClick: l,
|
|
4011
|
-
children: /* @__PURE__ */ $(
|
|
4125
|
+
children: /* @__PURE__ */ $(ia, { size: 16 })
|
|
4012
4126
|
})
|
|
4013
4127
|
]
|
|
4014
4128
|
})]
|
|
@@ -4016,8 +4130,8 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, canDe
|
|
|
4016
4130
|
/* @__PURE__ */ $("ol", {
|
|
4017
4131
|
ref: y,
|
|
4018
4132
|
class: "markup-comments",
|
|
4019
|
-
children:
|
|
4020
|
-
let i = !t.fromDashboard && n != null && t.authorClientId === n, o = r === 0, s = i && !
|
|
4133
|
+
children: le.map((t, r) => {
|
|
4134
|
+
let i = !t.fromDashboard && n != null && t.authorClientId === n, o = r === 0, s = i && !ce && !t.deleted, c = i && !ce && !t.deleted && !o, l = T === t._id, u = (s || c) && !l && !t.deleted, m = k === t._id, h = N === t._id;
|
|
4021
4135
|
return /* @__PURE__ */ $("li", {
|
|
4022
4136
|
class: Q("markup-comment", t.fromDashboard && "is-team"),
|
|
4023
4137
|
children: [
|
|
@@ -4040,26 +4154,26 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, canDe
|
|
|
4040
4154
|
}),
|
|
4041
4155
|
/* @__PURE__ */ $("div", {
|
|
4042
4156
|
class: "markup-thread-actions",
|
|
4043
|
-
children: [!
|
|
4157
|
+
children: [!ce && !l ? /* @__PURE__ */ $(wa, {
|
|
4044
4158
|
comment: t,
|
|
4045
|
-
pickerOpen:
|
|
4046
|
-
pickerDirection:
|
|
4159
|
+
pickerOpen: P === t._id,
|
|
4160
|
+
pickerDirection: te,
|
|
4047
4161
|
pickerRef: (e) => {
|
|
4048
|
-
|
|
4162
|
+
P === t._id && (re.current = e);
|
|
4049
4163
|
},
|
|
4050
4164
|
onPickerClick: (e) => {
|
|
4051
|
-
if (
|
|
4052
|
-
|
|
4165
|
+
if (P === t._id) {
|
|
4166
|
+
F(null);
|
|
4053
4167
|
return;
|
|
4054
4168
|
}
|
|
4055
4169
|
let n = e.currentTarget.getBoundingClientRect(), r = y.current?.getBoundingClientRect();
|
|
4056
|
-
|
|
4170
|
+
ne((r ? r.bottom - n.bottom : Infinity) < 44 ? "up" : "down"), F(t._id);
|
|
4057
4171
|
},
|
|
4058
4172
|
onPickerSelect: (e) => {
|
|
4059
|
-
|
|
4173
|
+
F(null), p(t._id, e);
|
|
4060
4174
|
}
|
|
4061
4175
|
}) : null, u ? /* @__PURE__ */ $("div", {
|
|
4062
|
-
class: Q("markup-thread-menu markup-comment-menu", m && "is-open", m &&
|
|
4176
|
+
class: Q("markup-thread-menu markup-comment-menu", m && "is-open", m && j === "up" && "is-up"),
|
|
4063
4177
|
ref: (e) => {
|
|
4064
4178
|
m && (v.current = e);
|
|
4065
4179
|
},
|
|
@@ -4068,28 +4182,28 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, canDe
|
|
|
4068
4182
|
class: Q("markup-icon-btn", m && "is-open"),
|
|
4069
4183
|
title: "More options",
|
|
4070
4184
|
onClick: (e) => {
|
|
4071
|
-
if (
|
|
4072
|
-
|
|
4185
|
+
if (k === t._id) {
|
|
4186
|
+
A(null);
|
|
4073
4187
|
return;
|
|
4074
4188
|
}
|
|
4075
4189
|
let n = e.currentTarget.getBoundingClientRect(), r = y.current?.getBoundingClientRect(), i = (+!!s + +!!c) * 32 + 8 + 6;
|
|
4076
|
-
|
|
4190
|
+
M((r ? r.bottom - n.bottom : Infinity) < i ? "up" : "down"), A(t._id);
|
|
4077
4191
|
},
|
|
4078
|
-
children: /* @__PURE__ */ $(
|
|
4192
|
+
children: /* @__PURE__ */ $(aa, { size: 16 })
|
|
4079
4193
|
}), m ? /* @__PURE__ */ $("div", {
|
|
4080
4194
|
class: "markup-thread-menu-list",
|
|
4081
4195
|
children: [s ? /* @__PURE__ */ $("button", {
|
|
4082
4196
|
type: "button",
|
|
4083
4197
|
class: "markup-thread-menu-item",
|
|
4084
4198
|
onClick: () => {
|
|
4085
|
-
|
|
4199
|
+
A(null), ue(t._id, t.body);
|
|
4086
4200
|
},
|
|
4087
4201
|
children: "Edit"
|
|
4088
4202
|
}) : null, c ? /* @__PURE__ */ $("button", {
|
|
4089
4203
|
type: "button",
|
|
4090
4204
|
class: Q("markup-thread-menu-item", h && "is-danger"),
|
|
4091
4205
|
onClick: () => {
|
|
4092
|
-
h ? (
|
|
4206
|
+
h ? (A(null), f(t._id)) : ee(t._id);
|
|
4093
4207
|
},
|
|
4094
4208
|
children: h ? "Confirm delete" : "Delete…"
|
|
4095
4209
|
}) : null]
|
|
@@ -4104,11 +4218,11 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, canDe
|
|
|
4104
4218
|
e.preventDefault();
|
|
4105
4219
|
let n = D.trim();
|
|
4106
4220
|
if (!n || n === t.body) {
|
|
4107
|
-
|
|
4221
|
+
I();
|
|
4108
4222
|
return;
|
|
4109
4223
|
}
|
|
4110
4224
|
try {
|
|
4111
|
-
await d(t._id, n),
|
|
4225
|
+
await d(t._id, n), I();
|
|
4112
4226
|
} catch {}
|
|
4113
4227
|
},
|
|
4114
4228
|
children: [/* @__PURE__ */ $("textarea", {
|
|
@@ -4123,7 +4237,7 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, canDe
|
|
|
4123
4237
|
children: [/* @__PURE__ */ $("button", {
|
|
4124
4238
|
type: "button",
|
|
4125
4239
|
class: "markup-btn markup-btn-ghost",
|
|
4126
|
-
onClick:
|
|
4240
|
+
onClick: I,
|
|
4127
4241
|
disabled: a,
|
|
4128
4242
|
children: "Cancel"
|
|
4129
4243
|
}), /* @__PURE__ */ $("button", {
|
|
@@ -4144,7 +4258,7 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, canDe
|
|
|
4144
4258
|
}),
|
|
4145
4259
|
!l && t.reactions.length > 0 ? /* @__PURE__ */ $(Ta, {
|
|
4146
4260
|
comment: t,
|
|
4147
|
-
isResolved:
|
|
4261
|
+
isResolved: ce,
|
|
4148
4262
|
onToggle: (e) => p(t._id, e)
|
|
4149
4263
|
}) : null,
|
|
4150
4264
|
r === 0 && e.screenshotUrl ? /* @__PURE__ */ $("button", {
|
|
@@ -4171,7 +4285,7 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, canDe
|
|
|
4171
4285
|
onClick: (e) => {
|
|
4172
4286
|
e.stopPropagation(), b.current?.close();
|
|
4173
4287
|
},
|
|
4174
|
-
children: /* @__PURE__ */ $(
|
|
4288
|
+
children: /* @__PURE__ */ $(ia, { size: 16 })
|
|
4175
4289
|
}), /* @__PURE__ */ $("img", {
|
|
4176
4290
|
class: "markup-lightbox-img",
|
|
4177
4291
|
src: e.screenshotUrl,
|
|
@@ -4222,7 +4336,7 @@ function wa({ comment: e, pickerOpen: t, pickerDirection: n, pickerRef: r, onPic
|
|
|
4222
4336
|
title: "Add reaction",
|
|
4223
4337
|
"aria-label": "Add reaction",
|
|
4224
4338
|
onClick: i,
|
|
4225
|
-
children: /* @__PURE__ */ $(
|
|
4339
|
+
children: /* @__PURE__ */ $(la, { size: 16 })
|
|
4226
4340
|
}), t ? /* @__PURE__ */ $("div", {
|
|
4227
4341
|
class: "markup-reaction-picker",
|
|
4228
4342
|
role: "menu",
|
|
@@ -4307,76 +4421,111 @@ function Aa(e) {
|
|
|
4307
4421
|
};
|
|
4308
4422
|
}
|
|
4309
4423
|
function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
|
|
4310
|
-
let [r, i] =
|
|
4311
|
-
|
|
4312
|
-
let
|
|
4424
|
+
let [r, i] = R(() => window.location.pathname), [a, o] = R([]), [s, c] = R(null), [l, u] = R(n), d = B(null);
|
|
4425
|
+
d.current = s;
|
|
4426
|
+
let f = Ce(() => Or({
|
|
4313
4427
|
apiUrl: e,
|
|
4314
4428
|
apiKey: t,
|
|
4315
4429
|
getToken: () => {
|
|
4316
|
-
let e =
|
|
4430
|
+
let e = d.current;
|
|
4317
4431
|
return e?.token && e.tokenExpiresAt ? {
|
|
4318
4432
|
token: e.token,
|
|
4319
4433
|
expiresAt: e.tokenExpiresAt
|
|
4320
4434
|
} : null;
|
|
4321
4435
|
},
|
|
4436
|
+
getAnonToken: () => {
|
|
4437
|
+
let e = d.current;
|
|
4438
|
+
return e?.token && e.tokenExpiresAt ? null : e?.anonToken ?? null;
|
|
4439
|
+
},
|
|
4322
4440
|
onUnauthorized: () => {
|
|
4323
|
-
let e =
|
|
4441
|
+
let e = d.current;
|
|
4324
4442
|
if (!e) return;
|
|
4325
4443
|
let t = {
|
|
4326
4444
|
clientId: e.clientId,
|
|
4327
4445
|
name: e.name,
|
|
4328
|
-
email: e.email
|
|
4446
|
+
email: e.email,
|
|
4447
|
+
anonToken: e.anonToken
|
|
4329
4448
|
};
|
|
4330
|
-
|
|
4449
|
+
d.current = t, c(t), Mr(t);
|
|
4331
4450
|
}
|
|
4332
|
-
}), [e, t]), [
|
|
4333
|
-
|
|
4334
|
-
let e =
|
|
4335
|
-
if (e) {
|
|
4451
|
+
}), [e, t]), [p, m] = R({ kind: "idle" }), [h, g] = R(!1), [_, v] = R(null), [y, b] = R(!1), [x, S] = R(!1), [, C] = R(0), w = B(null), T = s?.name ?? null, E = s?.isVerified ?? !1;
|
|
4452
|
+
z(() => {
|
|
4453
|
+
let e = jr();
|
|
4454
|
+
if (e?.anonToken || e?.isVerified) {
|
|
4336
4455
|
c(e);
|
|
4337
4456
|
return;
|
|
4338
4457
|
}
|
|
4339
|
-
let t =
|
|
4340
|
-
|
|
4341
|
-
|
|
4342
|
-
|
|
4343
|
-
|
|
4344
|
-
|
|
4345
|
-
|
|
4346
|
-
|
|
4347
|
-
|
|
4348
|
-
|
|
4349
|
-
|
|
4350
|
-
|
|
4458
|
+
let t = !1, n = null, r = 1e3;
|
|
4459
|
+
function i() {
|
|
4460
|
+
f.mintAnonIdentity().then(({ clientId: n, token: r }) => {
|
|
4461
|
+
if (t) return;
|
|
4462
|
+
let i = {
|
|
4463
|
+
...e ?? {},
|
|
4464
|
+
clientId: n,
|
|
4465
|
+
anonToken: r
|
|
4466
|
+
};
|
|
4467
|
+
Mr(i), c(i);
|
|
4468
|
+
}).catch(() => {
|
|
4469
|
+
t || (n = setTimeout(i, Math.min(r, 3e4)), r = Math.min(r * 2, 3e4));
|
|
4470
|
+
});
|
|
4471
|
+
}
|
|
4472
|
+
return i(), () => {
|
|
4473
|
+
t = !0, n && clearTimeout(n);
|
|
4474
|
+
};
|
|
4475
|
+
}, [f]);
|
|
4476
|
+
let [D, O] = R(null);
|
|
4477
|
+
z(() => {
|
|
4478
|
+
let e = !1, t = null;
|
|
4479
|
+
async function n() {
|
|
4480
|
+
try {
|
|
4481
|
+
let r = await f.getSubscriptionToken();
|
|
4482
|
+
if (e) return;
|
|
4483
|
+
O(r.token);
|
|
4484
|
+
let i = Math.max(6e4, r.expiresAt - Date.now() - 30 * 6e4);
|
|
4485
|
+
t = setTimeout(n, i);
|
|
4486
|
+
} catch {
|
|
4487
|
+
if (e) return;
|
|
4488
|
+
t = setTimeout(n, 6e4);
|
|
4489
|
+
}
|
|
4490
|
+
}
|
|
4491
|
+
return n(), () => {
|
|
4492
|
+
e = !0, t && clearTimeout(t);
|
|
4493
|
+
};
|
|
4494
|
+
}, [f]);
|
|
4495
|
+
let k = B(null);
|
|
4496
|
+
z(() => {
|
|
4497
|
+
let t = new rr(e.replace(/\.convex\.site(\/.*)?$/, ".convex.cloud"));
|
|
4498
|
+
return k.current = t, () => {
|
|
4499
|
+
t.close(), k.current = null;
|
|
4351
4500
|
};
|
|
4352
4501
|
}, [e]);
|
|
4353
|
-
let
|
|
4354
|
-
|
|
4355
|
-
let e =
|
|
4356
|
-
if (!(!e || !
|
|
4357
|
-
|
|
4502
|
+
let A = B(!1);
|
|
4503
|
+
z(() => {
|
|
4504
|
+
let e = k.current;
|
|
4505
|
+
if (!(!e || !D)) return A.current = !1, v(null), e.onUpdate(qt("widget/queries:subscribeThreadsForRoute"), {
|
|
4506
|
+
subscriptionToken: D,
|
|
4358
4507
|
route: r,
|
|
4359
4508
|
viewerClientId: s?.clientId ?? void 0
|
|
4360
4509
|
}, (e) => {
|
|
4361
4510
|
e !== void 0 && o(e);
|
|
4362
4511
|
});
|
|
4363
4512
|
}, [
|
|
4364
|
-
|
|
4513
|
+
D,
|
|
4365
4514
|
r,
|
|
4366
4515
|
s?.clientId
|
|
4367
|
-
]),
|
|
4368
|
-
if (
|
|
4516
|
+
]), z(() => {
|
|
4517
|
+
if (A.current) return;
|
|
4369
4518
|
let e = window.location.hash.match(/^#markup-thread=(.+)$/);
|
|
4370
4519
|
if (!e) {
|
|
4371
|
-
|
|
4520
|
+
A.current = !0;
|
|
4372
4521
|
return;
|
|
4373
4522
|
}
|
|
4374
4523
|
let t = decodeURIComponent(e[1] ?? "");
|
|
4375
|
-
a.find((e) => e._id === t) && (
|
|
4524
|
+
a.find((e) => e._id === t) && (A.current = !0, m({
|
|
4376
4525
|
kind: "thread",
|
|
4377
4526
|
threadId: t
|
|
4378
4527
|
}), history.replaceState(null, "", window.location.pathname + window.location.search));
|
|
4379
|
-
}, [a]),
|
|
4528
|
+
}, [a]), z(() => {
|
|
4380
4529
|
function e() {
|
|
4381
4530
|
i(window.location.pathname);
|
|
4382
4531
|
}
|
|
@@ -4389,22 +4538,22 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
|
|
|
4389
4538
|
}, () => {
|
|
4390
4539
|
window.removeEventListener("popstate", e), history.pushState = t, history.replaceState = n;
|
|
4391
4540
|
};
|
|
4392
|
-
}, []),
|
|
4541
|
+
}, []), z(() => {
|
|
4393
4542
|
function e(e) {
|
|
4394
|
-
e.key === "." && (e.metaKey || e.ctrlKey) && (e.altKey || e.shiftKey || (e.preventDefault(),
|
|
4543
|
+
e.key === "." && (e.metaKey || e.ctrlKey) && (e.altKey || e.shiftKey || (e.preventDefault(), b((e) => !e)));
|
|
4395
4544
|
}
|
|
4396
4545
|
return window.addEventListener("keydown", e), () => window.removeEventListener("keydown", e);
|
|
4397
|
-
}, []),
|
|
4398
|
-
if (!
|
|
4399
|
-
if (!
|
|
4400
|
-
|
|
4546
|
+
}, []), z(() => {
|
|
4547
|
+
if (!x) return;
|
|
4548
|
+
if (!y) {
|
|
4549
|
+
S(!1);
|
|
4401
4550
|
return;
|
|
4402
4551
|
}
|
|
4403
|
-
let e = window.setTimeout(() =>
|
|
4552
|
+
let e = window.setTimeout(() => S(!1), 5e3);
|
|
4404
4553
|
return () => window.clearTimeout(e);
|
|
4405
|
-
}, [
|
|
4554
|
+
}, [x, y]), z(() => {
|
|
4406
4555
|
function e() {
|
|
4407
|
-
|
|
4556
|
+
C((e) => e + 1);
|
|
4408
4557
|
}
|
|
4409
4558
|
window.addEventListener("scroll", e, { passive: !0 }), window.addEventListener("resize", e);
|
|
4410
4559
|
let t = new ResizeObserver(e);
|
|
@@ -4412,200 +4561,195 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
|
|
|
4412
4561
|
window.removeEventListener("scroll", e), window.removeEventListener("resize", e), t.disconnect();
|
|
4413
4562
|
};
|
|
4414
4563
|
}, []);
|
|
4415
|
-
let
|
|
4416
|
-
|
|
4417
|
-
}, []),
|
|
4418
|
-
|
|
4419
|
-
}, []),
|
|
4420
|
-
|
|
4564
|
+
let j = V(() => {
|
|
4565
|
+
v(null), m({ kind: "placing" });
|
|
4566
|
+
}, []), M = V(() => {
|
|
4567
|
+
m({ kind: "idle" }), v(null);
|
|
4568
|
+
}, []), N = V((e, t, n) => {
|
|
4569
|
+
m({
|
|
4421
4570
|
kind: "composing-new",
|
|
4422
4571
|
coords: e,
|
|
4423
4572
|
pageX: t + window.scrollX,
|
|
4424
4573
|
pageY: n + window.scrollY,
|
|
4425
4574
|
screenshot: null,
|
|
4426
4575
|
screenshotCapturing: !0
|
|
4427
|
-
}),
|
|
4576
|
+
}), $i(w.current != null && w.current.getRootNode() instanceof ShadowRoot ? w.current.getRootNode().host : null, {
|
|
4428
4577
|
x: t,
|
|
4429
4578
|
y: n
|
|
4430
4579
|
}).then((e) => {
|
|
4431
|
-
|
|
4580
|
+
m((t) => t.kind === "composing-new" ? {
|
|
4432
4581
|
...t,
|
|
4433
4582
|
screenshot: e,
|
|
4434
4583
|
screenshotCapturing: !1
|
|
4435
4584
|
} : t);
|
|
4436
4585
|
});
|
|
4437
|
-
}, []),
|
|
4586
|
+
}, []), ee = V((e, t) => {
|
|
4587
|
+
if (!s) return;
|
|
4438
4588
|
let n = {
|
|
4439
|
-
|
|
4589
|
+
...s,
|
|
4440
4590
|
name: e,
|
|
4441
4591
|
email: t
|
|
4442
4592
|
};
|
|
4443
|
-
|
|
4444
|
-
}, [s]),
|
|
4445
|
-
|
|
4593
|
+
Mr(n), c(n);
|
|
4594
|
+
}, [s]), P = V(async () => {
|
|
4595
|
+
v(null);
|
|
4446
4596
|
try {
|
|
4447
|
-
let n = Aa(await
|
|
4448
|
-
|
|
4597
|
+
let n = Aa(await Nr(e, t));
|
|
4598
|
+
Mr(n), c(n);
|
|
4449
4599
|
} catch (e) {
|
|
4450
|
-
|
|
4600
|
+
v(e instanceof Error ? e.message : "Sign-in failed");
|
|
4451
4601
|
}
|
|
4452
|
-
}, [e, t]),
|
|
4453
|
-
if (!(
|
|
4454
|
-
|
|
4602
|
+
}, [e, t]), F = V(async (e, t) => {
|
|
4603
|
+
if (!(p.kind !== "composing-new" || !s?.name)) {
|
|
4604
|
+
g(!0), v(null);
|
|
4455
4605
|
try {
|
|
4456
4606
|
let n;
|
|
4457
|
-
if (t &&
|
|
4458
|
-
let { uploadUrl: e } = await
|
|
4607
|
+
if (t && p.screenshot) {
|
|
4608
|
+
let { uploadUrl: e } = await f.getScreenshotUploadUrl(), t = await fetch(e, {
|
|
4459
4609
|
method: "POST",
|
|
4460
|
-
headers: { "Content-Type":
|
|
4461
|
-
body:
|
|
4610
|
+
headers: { "Content-Type": p.screenshot.type || "image/png" },
|
|
4611
|
+
body: p.screenshot
|
|
4462
4612
|
});
|
|
4463
4613
|
if (t.ok) {
|
|
4464
4614
|
let { storageId: e } = await t.json();
|
|
4465
4615
|
n = e;
|
|
4466
4616
|
}
|
|
4467
4617
|
}
|
|
4468
|
-
let i = await
|
|
4618
|
+
let i = await f.createThread({
|
|
4469
4619
|
url: window.location.href,
|
|
4470
4620
|
route: r,
|
|
4471
|
-
anchorSelector:
|
|
4472
|
-
anchorX:
|
|
4473
|
-
anchorY:
|
|
4474
|
-
anchorOffsetX:
|
|
4475
|
-
anchorOffsetY:
|
|
4476
|
-
viewportW:
|
|
4477
|
-
viewportY:
|
|
4621
|
+
anchorSelector: p.coords.anchorSelector,
|
|
4622
|
+
anchorX: p.coords.anchorX,
|
|
4623
|
+
anchorY: p.coords.anchorY,
|
|
4624
|
+
anchorOffsetX: p.coords.anchorOffsetX,
|
|
4625
|
+
anchorOffsetY: p.coords.anchorOffsetY,
|
|
4626
|
+
viewportW: p.coords.viewportW,
|
|
4627
|
+
viewportY: p.coords.viewportY,
|
|
4478
4628
|
userAgent: navigator.userAgent,
|
|
4479
4629
|
authorName: s.name,
|
|
4480
4630
|
authorEmail: s.email,
|
|
4481
|
-
authorClientId: s.clientId,
|
|
4482
4631
|
body: e,
|
|
4483
4632
|
screenshotStorageId: n
|
|
4484
4633
|
});
|
|
4485
|
-
o((e) => [...e, i.thread]),
|
|
4634
|
+
o((e) => [...e, i.thread]), m({
|
|
4486
4635
|
kind: "thread",
|
|
4487
4636
|
threadId: i.thread._id
|
|
4488
4637
|
});
|
|
4489
4638
|
} catch (e) {
|
|
4490
|
-
|
|
4639
|
+
v(e instanceof Error ? e.message : "Failed to post");
|
|
4491
4640
|
} finally {
|
|
4492
|
-
|
|
4641
|
+
g(!1);
|
|
4493
4642
|
}
|
|
4494
4643
|
}
|
|
4495
4644
|
}, [
|
|
4496
|
-
|
|
4645
|
+
f,
|
|
4497
4646
|
s,
|
|
4498
|
-
|
|
4647
|
+
p,
|
|
4499
4648
|
r
|
|
4500
|
-
]),
|
|
4501
|
-
if (
|
|
4502
|
-
let e =
|
|
4503
|
-
|
|
4649
|
+
]), te = V(async () => {
|
|
4650
|
+
if (p.kind !== "thread") return;
|
|
4651
|
+
let e = p.threadId;
|
|
4652
|
+
g(!0), v(null);
|
|
4504
4653
|
try {
|
|
4505
|
-
await
|
|
4654
|
+
await f.deleteThread(e), o((t) => t.filter((t) => t._id !== e)), m({ kind: "idle" });
|
|
4506
4655
|
} catch (e) {
|
|
4507
|
-
|
|
4656
|
+
v(e instanceof Error ? e.message : "Failed to delete");
|
|
4508
4657
|
} finally {
|
|
4509
|
-
|
|
4658
|
+
g(!1);
|
|
4510
4659
|
}
|
|
4511
|
-
}, [
|
|
4512
|
-
if (
|
|
4513
|
-
let e =
|
|
4514
|
-
|
|
4660
|
+
}, [f, p]), ne = V(async () => {
|
|
4661
|
+
if (p.kind !== "thread") return;
|
|
4662
|
+
let e = p.threadId;
|
|
4663
|
+
g(!0), v(null);
|
|
4515
4664
|
try {
|
|
4516
|
-
await
|
|
4665
|
+
await f.resolveThread(e, s?.clientId), o((t) => t.filter((t) => t._id !== e)), m({ kind: "idle" });
|
|
4517
4666
|
} catch (e) {
|
|
4518
|
-
|
|
4667
|
+
v(e instanceof Error ? e.message : "Failed to resolve");
|
|
4519
4668
|
} finally {
|
|
4520
|
-
|
|
4669
|
+
g(!1);
|
|
4521
4670
|
}
|
|
4522
4671
|
}, [
|
|
4523
|
-
|
|
4524
|
-
|
|
4672
|
+
f,
|
|
4673
|
+
p,
|
|
4525
4674
|
s?.clientId
|
|
4526
|
-
]), re =
|
|
4527
|
-
if (
|
|
4528
|
-
let t =
|
|
4529
|
-
|
|
4675
|
+
]), re = V(async (e) => {
|
|
4676
|
+
if (p.kind !== "thread" || !s?.name) return;
|
|
4677
|
+
let t = p.threadId;
|
|
4678
|
+
g(!0), v(null);
|
|
4530
4679
|
try {
|
|
4531
|
-
let n = await
|
|
4680
|
+
let n = await f.addComment(t, {
|
|
4532
4681
|
body: e,
|
|
4533
4682
|
authorName: s.name,
|
|
4534
|
-
authorEmail: s.email
|
|
4535
|
-
authorClientId: s.clientId
|
|
4683
|
+
authorEmail: s.email
|
|
4536
4684
|
});
|
|
4537
4685
|
o((e) => e.map((e) => e._id === t ? n.thread : e));
|
|
4538
4686
|
} catch (e) {
|
|
4539
|
-
|
|
4687
|
+
v(e instanceof Error ? e.message : "Failed to reply");
|
|
4540
4688
|
} finally {
|
|
4541
|
-
|
|
4689
|
+
g(!1);
|
|
4542
4690
|
}
|
|
4543
4691
|
}, [
|
|
4544
|
-
|
|
4692
|
+
f,
|
|
4545
4693
|
s,
|
|
4546
|
-
|
|
4547
|
-
]), ie =
|
|
4548
|
-
if (
|
|
4549
|
-
let n =
|
|
4550
|
-
|
|
4694
|
+
p
|
|
4695
|
+
]), ie = V(async (e, t) => {
|
|
4696
|
+
if (p.kind !== "thread" || !s) return;
|
|
4697
|
+
let n = p.threadId;
|
|
4698
|
+
g(!0), v(null);
|
|
4551
4699
|
try {
|
|
4552
|
-
let r = await
|
|
4553
|
-
body: t,
|
|
4554
|
-
authorClientId: s.clientId
|
|
4555
|
-
});
|
|
4700
|
+
let r = await f.editComment(n, e, { body: t });
|
|
4556
4701
|
o((e) => e.map((e) => e._id === n ? r.thread : e));
|
|
4557
4702
|
} catch (e) {
|
|
4558
|
-
throw
|
|
4703
|
+
throw v(e instanceof Error ? e.message : "Failed to edit"), e;
|
|
4559
4704
|
} finally {
|
|
4560
|
-
|
|
4705
|
+
g(!1);
|
|
4561
4706
|
}
|
|
4562
4707
|
}, [
|
|
4563
|
-
|
|
4708
|
+
f,
|
|
4564
4709
|
s,
|
|
4565
|
-
|
|
4566
|
-
]), ae =
|
|
4567
|
-
if (
|
|
4568
|
-
let t =
|
|
4569
|
-
|
|
4710
|
+
p
|
|
4711
|
+
]), ae = V(async (e) => {
|
|
4712
|
+
if (p.kind !== "thread" || !s) return;
|
|
4713
|
+
let t = p.threadId;
|
|
4714
|
+
g(!0), v(null);
|
|
4570
4715
|
try {
|
|
4571
|
-
let n = await
|
|
4716
|
+
let n = await f.deleteComment(t, e);
|
|
4572
4717
|
o((e) => e.map((e) => e._id === t ? n.thread : e));
|
|
4573
4718
|
} catch (e) {
|
|
4574
|
-
|
|
4719
|
+
v(e instanceof Error ? e.message : "Failed to delete");
|
|
4575
4720
|
} finally {
|
|
4576
|
-
|
|
4721
|
+
g(!1);
|
|
4577
4722
|
}
|
|
4578
4723
|
}, [
|
|
4579
|
-
|
|
4724
|
+
f,
|
|
4580
4725
|
s,
|
|
4581
|
-
|
|
4582
|
-
]), oe =
|
|
4583
|
-
if (
|
|
4584
|
-
let n =
|
|
4585
|
-
|
|
4726
|
+
p
|
|
4727
|
+
]), oe = V(async (e, t) => {
|
|
4728
|
+
if (p.kind !== "thread" || !s) return;
|
|
4729
|
+
let n = p.threadId;
|
|
4730
|
+
v(null);
|
|
4586
4731
|
try {
|
|
4587
|
-
let r = await
|
|
4732
|
+
let r = await f.toggleReaction(e, {
|
|
4588
4733
|
emoji: t,
|
|
4589
|
-
authorClientId: s.clientId,
|
|
4590
4734
|
authorName: s.name
|
|
4591
4735
|
});
|
|
4592
4736
|
o((e) => e.map((e) => e._id === n ? r.thread : e));
|
|
4593
4737
|
} catch (e) {
|
|
4594
|
-
|
|
4738
|
+
v(e instanceof Error ? e.message : "Failed to react");
|
|
4595
4739
|
}
|
|
4596
4740
|
}, [
|
|
4597
|
-
|
|
4741
|
+
f,
|
|
4598
4742
|
s,
|
|
4599
|
-
|
|
4600
|
-
]),
|
|
4743
|
+
p
|
|
4744
|
+
]), se = p.kind === "thread" ? a.find((e) => e._id === p.threadId) ?? null : null, ce = E || s?.clientId != null && s.clientId === se?.authorClientId;
|
|
4601
4745
|
return /* @__PURE__ */ $("div", {
|
|
4602
4746
|
class: "markup-root",
|
|
4603
|
-
ref:
|
|
4747
|
+
ref: w,
|
|
4604
4748
|
children: [
|
|
4605
|
-
|
|
4749
|
+
p.kind === "placing" ? null : /* @__PURE__ */ $("div", {
|
|
4606
4750
|
class: "markup-pins-layer",
|
|
4607
|
-
children: [
|
|
4608
|
-
let t =
|
|
4751
|
+
children: [y ? null : a.map((e) => {
|
|
4752
|
+
let t = p.kind === "thread" && p.threadId === e._id, n = Tr({
|
|
4609
4753
|
anchorX: e.anchorX,
|
|
4610
4754
|
anchorY: e.anchorY,
|
|
4611
4755
|
anchorSelector: e.anchorSelector,
|
|
@@ -4617,61 +4761,62 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
|
|
|
4617
4761
|
pageY: n.pageY,
|
|
4618
4762
|
count: r,
|
|
4619
4763
|
active: t,
|
|
4620
|
-
onClick: () =>
|
|
4764
|
+
onClick: () => m({
|
|
4621
4765
|
kind: "thread",
|
|
4622
4766
|
threadId: e._id
|
|
4623
4767
|
})
|
|
4624
4768
|
}, e._id);
|
|
4625
|
-
}),
|
|
4626
|
-
pageX:
|
|
4627
|
-
pageY:
|
|
4769
|
+
}), p.kind === "composing-new" ? /* @__PURE__ */ $(ba, {
|
|
4770
|
+
pageX: p.pageX,
|
|
4771
|
+
pageY: p.pageY
|
|
4628
4772
|
}) : null]
|
|
4629
4773
|
}),
|
|
4630
|
-
|
|
4631
|
-
onPlace:
|
|
4632
|
-
onCancel:
|
|
4774
|
+
p.kind === "placing" ? /* @__PURE__ */ $(xa, {
|
|
4775
|
+
onPlace: N,
|
|
4776
|
+
onCancel: M
|
|
4633
4777
|
}) : null,
|
|
4634
|
-
|
|
4635
|
-
thread:
|
|
4636
|
-
authorName:
|
|
4778
|
+
p.kind === "thread" && se && !y ? /* @__PURE__ */ $(Ca, {
|
|
4779
|
+
thread: se,
|
|
4780
|
+
authorName: T,
|
|
4637
4781
|
currentClientId: s?.clientId ?? null,
|
|
4638
|
-
isVerified:
|
|
4639
|
-
canDelete:
|
|
4640
|
-
pending:
|
|
4641
|
-
error:
|
|
4642
|
-
onAuthor:
|
|
4643
|
-
onSignIn:
|
|
4644
|
-
onClose:
|
|
4782
|
+
isVerified: E,
|
|
4783
|
+
canDelete: ce,
|
|
4784
|
+
pending: h,
|
|
4785
|
+
error: _,
|
|
4786
|
+
onAuthor: ee,
|
|
4787
|
+
onSignIn: P,
|
|
4788
|
+
onClose: M,
|
|
4645
4789
|
onReply: re,
|
|
4646
4790
|
onEditComment: ie,
|
|
4647
4791
|
onDeleteComment: ae,
|
|
4648
4792
|
onToggleReaction: oe,
|
|
4649
|
-
onDelete:
|
|
4650
|
-
onResolve:
|
|
4793
|
+
onDelete: te,
|
|
4794
|
+
onResolve: ne
|
|
4651
4795
|
}) : null,
|
|
4652
|
-
|
|
4653
|
-
pageX:
|
|
4654
|
-
pageY:
|
|
4655
|
-
authorName:
|
|
4656
|
-
isVerified:
|
|
4657
|
-
pending:
|
|
4658
|
-
error:
|
|
4659
|
-
screenshot:
|
|
4660
|
-
screenshotCapturing:
|
|
4661
|
-
onAuthor:
|
|
4662
|
-
onSignIn:
|
|
4663
|
-
onSubmit:
|
|
4664
|
-
onClose:
|
|
4796
|
+
p.kind === "composing-new" ? /* @__PURE__ */ $(_a, {
|
|
4797
|
+
pageX: p.pageX,
|
|
4798
|
+
pageY: p.pageY,
|
|
4799
|
+
authorName: T,
|
|
4800
|
+
isVerified: E,
|
|
4801
|
+
pending: h,
|
|
4802
|
+
error: _,
|
|
4803
|
+
screenshot: p.screenshot,
|
|
4804
|
+
screenshotCapturing: p.screenshotCapturing,
|
|
4805
|
+
onAuthor: ee,
|
|
4806
|
+
onSignIn: P,
|
|
4807
|
+
onSubmit: F,
|
|
4808
|
+
onClose: M
|
|
4665
4809
|
}) : null,
|
|
4666
|
-
!
|
|
4667
|
-
active:
|
|
4668
|
-
onToggle: () =>
|
|
4810
|
+
!y || p.kind === "placing" || p.kind === "composing-new" ? /* @__PURE__ */ $(ua, {
|
|
4811
|
+
active: p.kind === "placing",
|
|
4812
|
+
onToggle: () => p.kind === "placing" ? M() : j(),
|
|
4669
4813
|
onHide: () => {
|
|
4670
|
-
|
|
4814
|
+
b(!0), S(!0);
|
|
4671
4815
|
},
|
|
4672
|
-
position:
|
|
4816
|
+
position: l,
|
|
4817
|
+
onPositionChange: u
|
|
4673
4818
|
}) : null,
|
|
4674
|
-
|
|
4819
|
+
y && x ? /* @__PURE__ */ $(Ma, { position: l }) : null
|
|
4675
4820
|
]
|
|
4676
4821
|
});
|
|
4677
4822
|
}
|
|
@@ -4695,38 +4840,34 @@ function Ma({ position: e }) {
|
|
|
4695
4840
|
]
|
|
4696
4841
|
});
|
|
4697
4842
|
}
|
|
4698
|
-
async function Na(e) {
|
|
4699
|
-
let t = new TextEncoder().encode(e), n = await crypto.subtle.digest("SHA-256", t);
|
|
4700
|
-
return Array.from(new Uint8Array(n)).map((e) => e.toString(16).padStart(2, "0")).join("");
|
|
4701
|
-
}
|
|
4702
4843
|
//#endregion
|
|
4703
4844
|
//#region src/runtime/mount.tsx
|
|
4704
|
-
function
|
|
4845
|
+
function Na(e, t) {
|
|
4705
4846
|
e.style.position = "fixed", e.style.inset = "0", e.style.zIndex = "2147483647", e.style.pointerEvents = "none";
|
|
4706
4847
|
let n = t.theme ?? "auto";
|
|
4707
4848
|
n !== "auto" && (e.dataset.theme = n);
|
|
4708
4849
|
let r = e.attachShadow({ mode: "open" }), i = document.createElement("style");
|
|
4709
|
-
i.textContent =
|
|
4850
|
+
i.textContent = le, r.appendChild(i);
|
|
4710
4851
|
let a = document.createElement("div");
|
|
4711
4852
|
a.className = "markup-shadow-root", r.appendChild(a);
|
|
4712
4853
|
let { theme: o, ...s } = t;
|
|
4713
|
-
return
|
|
4854
|
+
return ce(/* @__PURE__ */ $(ja, { ...s }), a), () => ce(null, a);
|
|
4714
4855
|
}
|
|
4715
4856
|
//#endregion
|
|
4716
4857
|
//#region src/widget.ts
|
|
4717
|
-
var
|
|
4718
|
-
function
|
|
4719
|
-
|
|
4858
|
+
var Pa = null, Fa = null;
|
|
4859
|
+
function Ia(e) {
|
|
4860
|
+
La();
|
|
4720
4861
|
let t = document.createElement("div");
|
|
4721
|
-
return t.id = "markup-widget", document.body.appendChild(t),
|
|
4862
|
+
return t.id = "markup-widget", document.body.appendChild(t), Fa = t, Pa = Na(t, e), La;
|
|
4722
4863
|
}
|
|
4723
|
-
function
|
|
4724
|
-
|
|
4864
|
+
function La() {
|
|
4865
|
+
Pa &&= (Pa(), null), Fa?.parentNode && Fa.parentNode.removeChild(Fa), Fa = null;
|
|
4725
4866
|
}
|
|
4726
4867
|
if (typeof document < "u") {
|
|
4727
4868
|
let e = document.currentScript ?? document.querySelector("script[data-markup-widget=\"true\"]"), t = e?.dataset.apiUrl, n = e?.dataset.apiKey;
|
|
4728
4869
|
if (t && n) {
|
|
4729
|
-
let r = e?.dataset.position, i = e?.dataset.theme, a = () =>
|
|
4870
|
+
let r = e?.dataset.position, i = e?.dataset.theme, a = () => Ia({
|
|
4730
4871
|
apiUrl: t,
|
|
4731
4872
|
apiKey: n,
|
|
4732
4873
|
position: r,
|
|
@@ -4736,4 +4877,4 @@ if (typeof document < "u") {
|
|
|
4736
4877
|
}
|
|
4737
4878
|
}
|
|
4738
4879
|
//#endregion
|
|
4739
|
-
export {
|
|
4880
|
+
export { La as destroy, Ia as init };
|