@pixelmatters/markup 1.3.2 → 1.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -6
- package/dist/widget.js +177 -175
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -35,9 +35,9 @@ CDN drop-in (no build step) — paste this just before `</body>`:
|
|
|
35
35
|
```html
|
|
36
36
|
<script type="module">
|
|
37
37
|
// Pin the exact version — esm.sh resolves it from npm
|
|
38
|
-
import { init } from 'https://esm.sh/@pixelmatters/markup@1.3.
|
|
38
|
+
import { init } from 'https://esm.sh/@pixelmatters/markup@1.3.3'
|
|
39
39
|
// or
|
|
40
|
-
// import { init } from 'https://esm.run/@pixelmatters/markup@1.3.
|
|
40
|
+
// import { init } from 'https://esm.run/@pixelmatters/markup@1.3.3'
|
|
41
41
|
|
|
42
42
|
init({
|
|
43
43
|
apiUrl: 'https://your-deployment.convex.site',
|
|
@@ -48,14 +48,14 @@ CDN drop-in (no build step) — paste this just before `</body>`:
|
|
|
48
48
|
</script>
|
|
49
49
|
```
|
|
50
50
|
|
|
51
|
-
> **Why pin the version?** CDN URLs without a version (`@pixelmatters/markup`) resolve to whatever's `latest` on npm — a future major release will break your page silently. Always pin (`@pixelmatters/markup@1.3.
|
|
51
|
+
> **Why pin the version?** CDN URLs without a version (`@pixelmatters/markup`) resolve to whatever's `latest` on npm — a future major release will break your page silently. Always pin (`@pixelmatters/markup@1.3.3`).
|
|
52
52
|
|
|
53
53
|
If your platform doesn't allow inline JS (some CMS / page-builder editors), use the auto-init form instead — point a `<script src=…>` at the bundle and pass config via `data-*` attributes:
|
|
54
54
|
|
|
55
55
|
```html
|
|
56
56
|
<script
|
|
57
57
|
type="module"
|
|
58
|
-
src="https://esm.sh/@pixelmatters/markup@1.3.
|
|
58
|
+
src="https://esm.sh/@pixelmatters/markup@1.3.3"
|
|
59
59
|
data-markup-widget="true"
|
|
60
60
|
data-api-url="https://your-deployment.convex.site"
|
|
61
61
|
data-api-key="markup_..."
|
|
@@ -231,7 +231,7 @@ For a `<script>` tag drop-in (no bundler), use the inline ESM form and **pin the
|
|
|
231
231
|
|
|
232
232
|
```html
|
|
233
233
|
<script type="module">
|
|
234
|
-
import { init } from 'https://esm.sh/@pixelmatters/markup@1.3.
|
|
234
|
+
import { init } from 'https://esm.sh/@pixelmatters/markup@1.3.3'
|
|
235
235
|
|
|
236
236
|
init({
|
|
237
237
|
apiUrl: '...',
|
|
@@ -247,7 +247,7 @@ If inline JS is disallowed (some CMS / page-builder editors), use the auto-init
|
|
|
247
247
|
```html
|
|
248
248
|
<script
|
|
249
249
|
type="module"
|
|
250
|
-
src="https://esm.sh/@pixelmatters/markup@1.3.
|
|
250
|
+
src="https://esm.sh/@pixelmatters/markup@1.3.3"
|
|
251
251
|
data-markup-widget="true"
|
|
252
252
|
data-api-url="..."
|
|
253
253
|
data-api-key="..."
|
package/dist/widget.js
CHANGED
|
@@ -45,7 +45,7 @@ function w(e, t) {
|
|
|
45
45
|
function T(e) {
|
|
46
46
|
if (e.__P && e.__d) {
|
|
47
47
|
var n = e.__v, r = n.__e, i = [], a = [], o = v({}, n);
|
|
48
|
-
o.__v = n.__v + 1, t.vnode && t.vnode(o),
|
|
48
|
+
o.__v = n.__v + 1, t.vnode && t.vnode(o), ne(e.__P, o, n, e.__n, e.__P.namespaceURI, 32 & n.__u ? [r] : null, i, r ?? w(n), !!(32 & n.__u), a), o.__v = n.__v, o.__.__k[o.__i] = o, F(i, o, a), n.__e = n.__ = null, o.__e != r && E(o);
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
function E(e) {
|
|
@@ -65,13 +65,13 @@ function O() {
|
|
|
65
65
|
}
|
|
66
66
|
function ee(e, t, n, r, i, a, o, s, c, l, u) {
|
|
67
67
|
var d, f, p, g, _, v, y, b = r && r.__k || h, x = t.length;
|
|
68
|
-
for (c = k(n, t, b, c, x), d = 0; d < x; d++) (p = n.__k[d]) != null && (f = p.__i != -1 && b[p.__i] || m, p.__i = d, v =
|
|
68
|
+
for (c = k(n, t, b, c, x), d = 0; d < x; d++) (p = n.__k[d]) != null && (f = p.__i != -1 && b[p.__i] || m, p.__i = d, v = ne(e, p, f, i, a, o, s, c, l, u), g = p.__e, p.ref && f.ref != p.ref && (f.ref && ae(f.ref, null, p), u.push(p.ref, p.__c || g, p)), _ == null && g != null && (_ = g), (y = !!(4 & p.__u)) || f.__k === p.__k ? (c = A(p, c, e, y), y && f.__e && (f.__e = null)) : typeof p.type == "function" && v !== void 0 ? c = v : g && (c = g.nextSibling), p.__u &= -7);
|
|
69
69
|
return n.__e = _, c;
|
|
70
70
|
}
|
|
71
71
|
function k(e, t, n, r, i) {
|
|
72
72
|
var a, o, s, c, l, u = n.length, d = u, f = 0;
|
|
73
73
|
for (e.__k = Array(i), a = 0; a < i; a++) (o = t[a]) != null && typeof o != "boolean" && typeof o != "function" ? (typeof o == "string" || typeof o == "number" || typeof o == "bigint" || o.constructor == String ? o = e.__k[a] = x(null, o, null, null, null) : _(o) ? o = e.__k[a] = x(S, { children: o }, null, null, null) : o.constructor === void 0 && o.__b > 0 ? o = e.__k[a] = x(o.type, o.props, o.key, o.ref ? o.ref : null, o.__v) : e.__k[a] = o, c = a + f, o.__ = e, o.__b = e.__b + 1, s = null, (l = o.__i = j(o, n, c, d)) != -1 && (d--, (s = n[l]) && (s.__u |= 2)), s == null || s.__v == null ? (l == -1 && (i > u ? f-- : i < u && f++), typeof o.type != "function" && (o.__u |= 4)) : l != c && (l == c - 1 ? f-- : l == c + 1 ? f++ : (l > c ? f-- : f++, o.__u |= 4))) : e.__k[a] = null;
|
|
74
|
-
if (d) for (a = 0; a < u; a++) (s = n[a]) != null && !(2 & s.__u) && (s.__e == r && (r = w(s)),
|
|
74
|
+
if (d) for (a = 0; a < u; a++) (s = n[a]) != null && !(2 & s.__u) && (s.__e == r && (r = w(s)), oe(s, s));
|
|
75
75
|
return r;
|
|
76
76
|
}
|
|
77
77
|
function A(e, t, n, r) {
|
|
@@ -124,12 +124,12 @@ function N(e) {
|
|
|
124
124
|
}
|
|
125
125
|
};
|
|
126
126
|
}
|
|
127
|
-
function
|
|
127
|
+
function ne(e, n, r, i, a, o, s, c, l, u) {
|
|
128
128
|
var d, f, p, m, g, b, x, w, T, E, D, O, k, A, j, M = n.type;
|
|
129
129
|
if (n.constructor !== void 0) return null;
|
|
130
130
|
128 & r.__u && (l = !!(32 & r.__u), o = [c = n.__e = r.__e]), (d = t.__b) && d(n);
|
|
131
131
|
n: if (typeof M == "function") try {
|
|
132
|
-
if (w = n.props, T = M.prototype && M.prototype.render, E = (d = M.contextType) && i[d.__c], D = d ? E ? E.props.value : d.__ : i, r.__c ? x = (f = n.__c = r.__c).__ = f.__E : (T ? n.__c = f = new M(w, D) : (n.__c = f = new C(w, D), f.constructor = M, f.render =
|
|
132
|
+
if (w = n.props, T = M.prototype && M.prototype.render, E = (d = M.contextType) && i[d.__c], D = d ? E ? E.props.value : d.__ : i, r.__c ? x = (f = n.__c = r.__c).__ = f.__E : (T ? n.__c = f = new M(w, D) : (n.__c = f = new C(w, D), f.constructor = M, f.render = se), E && E.sub(f), f.state ||= {}, f.__n = i, p = f.__d = !0, f.__h = [], f._sb = []), T && f.__s == null && (f.__s = f.state), T && M.getDerivedStateFromProps != null && (f.__s == f.state && (f.__s = v({}, f.__s)), v(f.__s, M.getDerivedStateFromProps(w, f.__s))), m = f.props, g = f.state, f.__v = n, p) T && M.getDerivedStateFromProps == null && f.componentWillMount != null && f.componentWillMount(), T && f.componentDidMount != null && f.__h.push(f.componentDidMount);
|
|
133
133
|
else {
|
|
134
134
|
if (T && M.getDerivedStateFromProps == null && w !== m && f.componentWillReceiveProps != null && f.componentWillReceiveProps(w, D), n.__v == r.__v || !f.__e && f.shouldComponentUpdate != null && !1 === f.shouldComponentUpdate(w, f.__s, D)) {
|
|
135
135
|
n.__v != r.__v && (f.props = w, f.state = f.__s, f.__d = !1), n.__e = r.__e, n.__k = r.__k, n.__k.some(function(e) {
|
|
@@ -145,26 +145,26 @@ function P(e, n, r, i, a, o, s, c, l, u) {
|
|
|
145
145
|
else do
|
|
146
146
|
f.__d = !1, O && O(n), d = f.render(f.props, f.state, f.context), f.state = f.__s;
|
|
147
147
|
while (f.__d && ++k < 25);
|
|
148
|
-
f.state = f.__s, f.getChildContext != null && (i = v(v({}, i), f.getChildContext())), T && !p && f.getSnapshotBeforeUpdate != null && (b = f.getSnapshotBeforeUpdate(m, g)), A = d != null && d.type === S && d.key == null ?
|
|
148
|
+
f.state = f.__s, f.getChildContext != null && (i = v(v({}, i), f.getChildContext())), T && !p && f.getSnapshotBeforeUpdate != null && (b = f.getSnapshotBeforeUpdate(m, g)), A = d != null && d.type === S && d.key == null ? re(d.props.children) : d, c = ee(e, _(A) ? A : [A], n, r, i, a, o, s, c, l, u), f.base = n.__e, n.__u &= -161, f.__h.length && s.push(f), x && (f.__E = f.__ = null);
|
|
149
149
|
} catch (e) {
|
|
150
150
|
if (n.__v = null, l || o != null) if (e.then) {
|
|
151
151
|
for (n.__u |= l ? 160 : 128; c && c.nodeType == 8 && c.nextSibling;) c = c.nextSibling;
|
|
152
152
|
o[o.indexOf(c)] = null, n.__e = c;
|
|
153
153
|
} else {
|
|
154
154
|
for (j = o.length; j--;) y(o[j]);
|
|
155
|
-
|
|
155
|
+
P(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 || P(n);
|
|
158
158
|
t.__e(e, n, r);
|
|
159
159
|
}
|
|
160
|
-
else o == null && n.__v == r.__v ? (n.__k = r.__k, n.__e = r.__e) : c = n.__e =
|
|
160
|
+
else o == null && n.__v == r.__v ? (n.__k = r.__k, n.__e = r.__e) : c = n.__e = ie(r.__e, n, r, i, a, o, s, l, u);
|
|
161
161
|
return (d = t.diffed) && d(n), 128 & n.__u ? void 0 : c;
|
|
162
162
|
}
|
|
163
|
-
function
|
|
164
|
-
e && (e.__c && (e.__c.__e = !0), e.__k && e.__k.some(
|
|
163
|
+
function P(e) {
|
|
164
|
+
e && (e.__c && (e.__c.__e = !0), e.__k && e.__k.some(P));
|
|
165
165
|
}
|
|
166
|
-
function
|
|
167
|
-
for (var i = 0; i < r.length; i++)
|
|
166
|
+
function F(e, n, r) {
|
|
167
|
+
for (var i = 0; i < r.length; i++) ae(r[i], r[++i], r[++i]);
|
|
168
168
|
t.__c && t.__c(n, e), e.some(function(n) {
|
|
169
169
|
try {
|
|
170
170
|
e = n.__h, n.__h = [], e.some(function(e) {
|
|
@@ -175,10 +175,10 @@ function re(e, n, r) {
|
|
|
175
175
|
}
|
|
176
176
|
});
|
|
177
177
|
}
|
|
178
|
-
function
|
|
179
|
-
return typeof e != "object" || !e || e.__b > 0 ? e : _(e) ? e.map(
|
|
178
|
+
function re(e) {
|
|
179
|
+
return typeof e != "object" || !e || e.__b > 0 ? e : _(e) ? e.map(re) : v({}, e);
|
|
180
180
|
}
|
|
181
|
-
function
|
|
181
|
+
function ie(n, r, i, a, o, s, c, l, u) {
|
|
182
182
|
var d, f, p, h, g, v, b, x = i.props || m, S = r.props, C = r.type;
|
|
183
183
|
if (C == "svg" ? o = "http://www.w3.org/2000/svg" : C == "math" ? o = "http://www.w3.org/1998/Math/MathML" : o ||= "http://www.w3.org/1999/xhtml", s != null) {
|
|
184
184
|
for (d = 0; d < s.length; d++) if ((g = s[d]) && "setAttribute" in g == !!C && (C ? g.localName == C : g.nodeType == 3)) {
|
|
@@ -201,7 +201,7 @@ function ae(n, r, i, a, o, s, c, l, u) {
|
|
|
201
201
|
}
|
|
202
202
|
return n;
|
|
203
203
|
}
|
|
204
|
-
function
|
|
204
|
+
function ae(e, n, r) {
|
|
205
205
|
try {
|
|
206
206
|
if (typeof e == "function") {
|
|
207
207
|
var i = typeof e.__u == "function";
|
|
@@ -211,9 +211,9 @@ function oe(e, n, r) {
|
|
|
211
211
|
t.__e(e, r);
|
|
212
212
|
}
|
|
213
213
|
}
|
|
214
|
-
function
|
|
214
|
+
function oe(e, n, r) {
|
|
215
215
|
var i, a;
|
|
216
|
-
if (t.unmount && t.unmount(e), (i = e.ref) && (i.current && i.current != e.__e ||
|
|
216
|
+
if (t.unmount && t.unmount(e), (i = e.ref) && (i.current && i.current != e.__e || ae(i, null, n)), (i = e.__c) != null) {
|
|
217
217
|
if (i.componentWillUnmount) try {
|
|
218
218
|
i.componentWillUnmount();
|
|
219
219
|
} catch (e) {
|
|
@@ -221,15 +221,15 @@ function se(e, n, r) {
|
|
|
221
221
|
}
|
|
222
222
|
i.base = i.__P = null;
|
|
223
223
|
}
|
|
224
|
-
if (i = e.__k) for (a = 0; a < i.length; a++) i[a] &&
|
|
224
|
+
if (i = e.__k) for (a = 0; a < i.length; a++) i[a] && oe(i[a], n, r || typeof e.type != "function");
|
|
225
225
|
r || y(e.__e), e.__c = e.__ = e.__e = void 0;
|
|
226
226
|
}
|
|
227
|
-
function
|
|
227
|
+
function se(e, t, n) {
|
|
228
228
|
return this.constructor(e, n);
|
|
229
229
|
}
|
|
230
|
-
function
|
|
230
|
+
function ce(n, r, i) {
|
|
231
231
|
var a, o, s, c;
|
|
232
|
-
r == document && (r = document.documentElement), t.__ && t.__(n, r), o = (a = typeof i == "function") ? null : i && i.__k || r.__k, s = [], c = [],
|
|
232
|
+
r == document && (r = document.documentElement), t.__ && t.__(n, r), o = (a = typeof i == "function") ? null : i && i.__k || r.__k, s = [], c = [], ne(r, n = (!a && i || r).__k = b(S, null, [n]), o || m, m, r.namespaceURI, !a && i ? [i] : o ? null : r.firstChild ? e.call(r.childNodes) : null, s, !a && i ? i : o ? o.__e : r.firstChild, a, c), F(s, n, c);
|
|
233
233
|
}
|
|
234
234
|
e = h.slice, t = { __e: function(e, t, n, r) {
|
|
235
235
|
for (var i, a, o; t = t.__;) if ((i = t.__c) && !i.__) try {
|
|
@@ -248,10 +248,10 @@ e = h.slice, t = { __e: function(e, t, n, r) {
|
|
|
248
248
|
}, O.__r = 0, s = Math.random().toString(8), c = "__d" + s, l = "__a" + s, u = /(PointerCapture)$|Capture$/i, d = 0, f = N(!1), p = N(!0);
|
|
249
249
|
//#endregion
|
|
250
250
|
//#region src/styles.css?inline
|
|
251
|
-
var ue = ":host{--markup-paper:#fdfcfa;--markup-ink:#1a1614;--markup-muted:#6b6661;--markup-border:#1a16141a;--markup-border-strong:#1a16142e;--markup-brand:#e35d2a;--markup-brand-hover:#c84d20;--markup-team:#2a4ac8;--markup-shadow:0 1px 2px #1a16140f, 0 8px 28px #1a16141f;--markup-overlay-tint:#1a16140a;--markup-danger:#dc2626;--markup-radius:6px;--markup-radius-sm:4px;--markup-font:\"Geist Variable\", \"Geist\", ui-sans-serif, -apple-system, BlinkMacSystemFont, \"Segoe UI\", system-ui, sans-serif;--markup-font-mono:\"Geist Mono Variable\", \"Geist Mono\", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;all:initial;font-family:var(--markup-font);color:var(--markup-ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.5}:host([data-theme=dark]){--markup-paper:#1a1614;--markup-ink:#fdfcfa;--markup-muted:#a8a39e;--markup-border:#fdfcfa1f;--markup-border-strong:#fdfcfa38;--markup-team:#7b99f0;--markup-shadow:0 1px 2px #00000059, 0 12px 40px #00000073;--markup-overlay-tint:#fdfcfa0d;--markup-danger:#f87171}@media (prefers-color-scheme:dark){:host(:not([data-theme=light])){--markup-paper:#1a1614;--markup-ink:#fdfcfa;--markup-muted:#a8a39e;--markup-border:#fdfcfa1f;--markup-border-strong:#fdfcfa38;--markup-team:#7b99f0;--markup-shadow:0 1px 2px #00000059, 0 12px 40px #00000073;--markup-overlay-tint:#fdfcfa0d;--markup-danger:#f87171}}.markup-shadow-root{font-family:var(--markup-font)}.markup-shadow-root *,.markup-shadow-root :before,.markup-shadow-root :after{box-sizing:border-box}:where(.markup-shadow-root button,.markup-shadow-root input,.markup-shadow-root textarea){font:inherit;color:inherit}.markup-eyebrow{font-family:var(--markup-font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--markup-muted);font-size:10px;font-weight:500}.markup-fab{z-index:10;background:var(--markup-ink);color:var(--markup-paper);cursor:pointer;touch-action:none;letter-spacing:-.01em;pointer-events:auto;box-shadow:0 0 0 1px color-mix(in srgb, var(--markup-brand) 35%, transparent), var(--markup-shadow);border:none;border-radius:999px;align-items:center;gap:8px;padding:9px 14px;font-size:13px;font-weight:500;transition:background .15s,box-shadow .15s,transform .15s;display:inline-flex;position:fixed;bottom:24px}.markup-fab:hover{background:var(--markup-brand);box-shadow:0 0 0 1px color-mix(in srgb, var(--markup-brand) 0%, transparent), var(--markup-shadow)}.markup-fab:active{transform:translateY(1px)}.markup-fab.is-active{background:var(--markup-brand);box-shadow:var(--markup-shadow)}.markup-fab.is-active:hover{background:var(--markup-brand-hover)}.markup-fab .markup-fab-icon{color:var(--markup-brand);transition:color .15s}.markup-fab:hover .markup-fab-icon,.markup-fab.is-active .markup-fab-icon{color:var(--markup-paper)}.markup-fab-right{right:24px}.markup-fab-left{left:24px}.markup-fab.is-floating{inset:0 auto auto 0}.markup-fab.is-dragging{cursor:grabbing;transition:none}.markup-fab-icon{align-items:center;display:inline-flex}.markup-fab-label{font-family:var(--markup-font)}.markup-hud-hidden-toast{z-index:10;background:var(--markup-ink);color:var(--markup-paper);letter-spacing:-.01em;box-shadow:var(--markup-shadow);pointer-events:none;border-radius:999px;align-items:center;gap:6px;padding:8px 14px;font-size:12px;font-weight:500;animation:.22s ease-out markup-hud-hidden-in,.32s ease-in 4.6s forwards markup-hud-hidden-out;display:inline-flex;position:fixed;bottom:24px}.markup-hud-hidden-toast-right{right:24px}.markup-hud-hidden-toast-left{left:24px}.markup-kbd{background:color-mix(in srgb, var(--markup-paper) 14%, transparent);min-width:18px;height:18px;color:var(--markup-paper);font-family:var(--markup-font);border-radius:4px;justify-content:center;align-items:center;padding:0 5px;font-size:10px;font-weight:600;line-height:1;display:inline-flex}@keyframes markup-hud-hidden-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes markup-hud-hidden-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(4px)}}.markup-pins-layer{pointer-events:none;position:fixed;inset:0}.markup-pin{background:var(--markup-ink);width:28px;height:28px;color:var(--markup-brand);cursor:pointer;pointer-events:auto;box-shadow:0 0 0 2px var(--markup-paper), 0 0 0 3px color-mix(in srgb, var(--markup-brand) 35%, transparent), var(--markup-shadow);border:none;border-radius:50% 50% 50% 4px;justify-content:center;align-items:center;margin-top:-28px;padding:0;transition:transform .15s,background .15s,color .15s;display:inline-flex;position:absolute}.markup-pin:hover,.markup-pin.is-active{background:var(--markup-brand);color:var(--markup-paper)}.markup-pin.is-anchor{anchor-name:--markup-active-anchor}.markup-pin-ghost{background:var(--markup-brand);color:var(--markup-paper);cursor:default;pointer-events:none;animation:1.2s ease-in-out infinite markup-ghost-pulse}.markup-pin-dot{background:currentColor;border-radius:50%;width:6px;height:6px;display:inline-block}.markup-pin-count{background:var(--markup-brand);min-width:16px;height:16px;color:var(--markup-paper);font-family:var(--markup-font-mono);text-align:center;box-shadow:0 0 0 2px var(--markup-paper);border-radius:999px;padding:0 4px;font-size:9px;font-weight:600;line-height:16px;position:absolute;top:-4px;left:50%;transform:translate(-50%,-50%)}@keyframes markup-ghost-pulse{0%,to{box-shadow:0 0 0 2px var(--markup-paper), 0 0 0 0 #e35d2a66}50%{box-shadow:0 0 0 2px var(--markup-paper), 0 0 0 10px #e35d2a00}}.markup-placement-overlay{background:var(--markup-overlay-tint);cursor:crosshair;pointer-events:auto;z-index:1;animation:.18s ease-out markup-overlay-in;position:fixed;inset:0}.markup-placement-cursor-help{background:var(--markup-ink);color:var(--markup-paper);letter-spacing:-.01em;box-shadow:var(--markup-shadow);pointer-events:none;border-radius:999px;padding:10px 16px;font-size:12px;font-weight:500;animation:.22s ease-out 60ms backwards markup-help-in;position:fixed;top:24px;left:50%;transform:translate(-50%)}@keyframes markup-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes markup-help-in{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}.markup-popover{width:320px;max-width:calc(100vw - 24px);height:auto;max-height:calc(100dvh - 24px);inset:auto;left:var(--markup-pop-x,0);top:var(--markup-pop-y,0);background:var(--markup-paper);color:var(--markup-ink);border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius);box-shadow:var(--markup-shadow);pointer-events:auto;flex-direction:column;gap:0;margin:0;padding:0;animation:.16s ease-out markup-popover-in;display:flex;position:fixed;overflow:hidden}@supports (anchor-name:--x){.markup-popover{position-anchor:--markup-active-anchor;left:calc(anchor(right) + 8px);top:calc(anchor(top) - 9px);position-try-fallbacks:flip-block, flip-inline, flip-block flip-inline;position-try-order:most-block-size}.markup-popover.is-floating{left:var(--markup-pop-x,0);top:var(--markup-pop-y,0);position-try-fallbacks:none}}@keyframes markup-popover-in{0%{opacity:0;transform:translateY(-4px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.markup-popover-header{border-bottom:1px solid var(--markup-border);cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.markup-popover.is-dragging .markup-popover-header{cursor:grabbing}.markup-popover-header-actions{align-items:center;gap:4px;display:flex}.markup-thread-menu{display:flex;position:relative}.markup-thread-menu-list{z-index:10;background:var(--markup-paper);border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius);min-width:160px;box-shadow:var(--markup-shadow);padding:4px;animation:.12s ease-out markup-menu-in;position:absolute;top:calc(100% + 6px);right:0}.markup-thread-menu-item{border-radius:var(--markup-radius-sm);width:100%;color:var(--markup-ink);text-align:left;cursor:pointer;background:0 0;border:none;padding:7px 10px;font-size:13px;transition:background .1s,color .1s;display:block}.markup-thread-menu-item:hover{background:var(--markup-border)}.markup-thread-menu-item.is-danger{color:var(--markup-danger,#dc2626)}.markup-thread-menu-item.is-danger:hover{background:color-mix(in srgb, var(--markup-danger,#dc2626) 10%, transparent)}.markup-thread-menu-item:disabled{opacity:.5;cursor:default}@keyframes markup-menu-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.markup-popover-body{padding:12px}.markup-popover-byline{color:var(--markup-muted);align-items:center;gap:4px;margin:0 0 8px;font-size:12px;display:flex}.markup-popover-name{color:var(--markup-ink);font-weight:500}.markup-icon-btn{border-radius:var(--markup-radius-sm);width:24px;height:24px;color:var(--markup-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:background .12s,color .12s;display:inline-flex}.markup-icon-btn:hover,.markup-icon-btn.is-open{background:var(--markup-border);color:var(--markup-ink)}.markup-comments{border-bottom:1px solid var(--markup-border);background:linear-gradient(var(--markup-paper), transparent) top / 100% 20px no-repeat local, linear-gradient(transparent, var(--markup-paper)) bottom / 100% 20px no-repeat local, radial-gradient(farthest-side at 50% 0%, #1a16141a, transparent) top / 100% 10px no-repeat scroll, radial-gradient(farthest-side at 50% 100%, #1a16141a, transparent) bottom / 100% 10px no-repeat scroll;flex-direction:column;gap:12px;max-height:280px;margin:0;padding:8px 12px 4px;list-style:none;display:flex;overflow-y:auto}.markup-comment{flex-direction:column;gap:4px;display:flex}.markup-comment-meta{align-items:center;gap:6px;font-size:11px;display:flex}.markup-comment-author{color:var(--markup-ink);font-weight:600}.markup-comment.is-team .markup-comment-author{color:var(--markup-team)}.markup-comment-badge{background:color-mix(in srgb, var(--markup-team) 12%, transparent);height:14px;color:var(--markup-team);font-family:var(--markup-font-mono);letter-spacing:.12em;text-transform:uppercase;border-radius:999px;align-items:center;padding:0 5px;font-size:9px;font-weight:500;line-height:1;display:inline-flex}.markup-comment-time{color:var(--markup-muted);font-family:var(--markup-font-mono);letter-spacing:.04em;font-size:10px}.markup-comment-body{white-space:pre-wrap;word-break:break-word;margin:0;font-size:13px;line-height:1.5}.markup-comment-edited{color:var(--markup-muted);font-size:11px}.markup-thread-actions{align-items:center;gap:4px;display:flex}.markup-comment-meta .markup-reaction-picker-wrap,.markup-thread-actions{margin-left:auto}.markup-comment-meta .markup-reaction-add{width:22px;height:22px;margin-top:-4px;margin-bottom:-4px}.markup-reaction-picker-wrap>.markup-icon-btn,.markup-comment-menu>.markup-icon-btn{margin-top:-4px;margin-bottom:-4px}.markup-comment-menu.is-up .markup-thread-menu-list{animation-name:markup-menu-in-up;top:auto;bottom:calc(100% + 6px)}@keyframes markup-menu-in-up{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.markup-comment{position:relative}.markup-reactions{flex-wrap:wrap;align-items:center;gap:4px;margin-top:2px;display:flex}.markup-reaction-chip{border:1px solid var(--markup-border);height:22px;color:var(--markup-ink);font:inherit;cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:4px;padding:0 7px 0 6px;font-size:11px;line-height:1;transition:background .12s,border-color .12s;display:inline-flex}.markup-reaction-chip:hover:not(:disabled){background:color-mix(in srgb, var(--markup-ink) 5%, transparent)}.markup-reaction-chip.is-mine{border-color:color-mix(in srgb, var(--markup-brand) 45%, transparent);background:color-mix(in srgb, var(--markup-brand) 10%, transparent)}.markup-reaction-chip.is-mine:hover:not(:disabled){background:color-mix(in srgb, var(--markup-brand) 16%, transparent)}.markup-reaction-chip:disabled{cursor:default;opacity:.6}.markup-reaction-emoji{font-size:13px;line-height:1}.markup-reaction-count{font-family:var(--markup-font-mono);letter-spacing:.04em;color:var(--markup-muted);font-size:10px}.markup-reaction-chip.is-mine .markup-reaction-count{color:var(--markup-brand)}.markup-reaction-picker-wrap{opacity:0;flex:none;transition:opacity .12s;display:inline-flex;position:relative}.markup-comment:hover .markup-reaction-picker-wrap,.markup-comment:focus-within .markup-reaction-picker-wrap,.markup-reaction-picker-wrap.is-open{opacity:1}.markup-reaction-add{border:1px dashed var(--markup-border-strong);width:22px;height:22px;color:var(--markup-muted);font:inherit;cursor:pointer;background:0 0;border-radius:999px;justify-content:center;align-items:center;font-size:13px;line-height:1;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.markup-reaction-add:hover,.markup-reaction-add.is-open{background:color-mix(in srgb, var(--markup-ink) 5%, transparent);color:var(--markup-ink);border-style:solid}.markup-reaction-picker{z-index:1;border:1px solid var(--markup-border-strong);background:var(--markup-paper);border-radius:8px;gap:2px;padding:4px;animation:.12s markup-menu-in;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 1px 2px #1a16140f,0 8px 28px #1a16141a}.markup-reaction-picker-wrap.is-up .markup-reaction-picker{animation-name:markup-menu-in-up;top:auto;bottom:calc(100% + 6px)}.markup-reaction-picker-item{cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;font-size:16px;line-height:1;transition:background .12s;display:inline-flex}.markup-reaction-picker-item:hover{background:color-mix(in srgb, var(--markup-ink) 8%, transparent)}.markup-reaction-picker-item.is-mine{background:color-mix(in srgb, var(--markup-brand) 14%, transparent)}.markup-comment-edit-form{flex-direction:column;gap:6px;display:flex}.markup-comment-edit-form .markup-textarea{border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius-sm);background:var(--markup-paper);width:100%;color:var(--markup-ink);resize:vertical;font:inherit;outline:none;padding:8px 10px;font-size:13px;line-height:1.5}.markup-comment-edit-form .markup-textarea:focus-visible{border-color:var(--markup-brand);box-shadow:0 0 0 3px #e35d2a2e}.markup-comment-edit-actions{justify-content:flex-end;gap:6px;display:flex}.markup-composer{flex-direction:column;display:flex;position:relative}.markup-composer-input{border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius-sm);background:var(--markup-paper);width:100%;min-height:36px;max-height:96px;color:var(--markup-ink);resize:none;font-family:var(--markup-font);outline:none;padding:8px 10px;font-size:13px;line-height:1.5;transition:border-color .12s,box-shadow .12s,border-bottom-left-radius .15s,border-bottom-right-radius .15s}.markup-composer-input:focus-visible{border-color:var(--markup-brand);box-shadow:0 0 0 3px #e35d2a2e}.markup-composer-input:disabled{opacity:.6}.markup-composer-input::placeholder{color:var(--markup-muted)}.markup-composer.is-filled .markup-composer-input{border-bottom-right-radius:0;border-bottom-left-radius:0}.markup-composer-footer-wrap{grid-template-rows:0fr;transition:grid-template-rows .15s;display:grid}.markup-composer.is-filled .markup-composer-footer-wrap{grid-template-rows:1fr}.markup-composer-footer{border:1px solid var(--markup-border-strong);border-radius:0 0 var(--markup-radius-sm) var(--markup-radius-sm);opacity:0;border-top:none;justify-content:space-between;align-items:center;gap:8px;padding:2px 2px 2px 10px;transition:opacity .1s;display:flex;overflow:hidden}.markup-composer.is-filled .markup-composer-footer{opacity:1;transition-delay:60ms}.markup-composer-hint{font-family:var(--markup-font-mono);letter-spacing:.06em;color:var(--markup-muted);font-size:10px}.markup-composer-error{color:var(--markup-brand)}.markup-composer-actions{align-items:center;gap:6px;display:flex}.markup-composer-actions-empty{transition:opacity .12s;position:absolute;top:3px;right:3px}.markup-composer.is-filled .markup-composer-actions-empty{opacity:0;pointer-events:none}.markup-author-prompt{flex-direction:column;gap:10px;padding:12px;display:flex}.markup-author-status{color:var(--markup-muted);margin:0;font-size:12px}.markup-input{border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius-sm);background:var(--markup-paper);width:100%;height:36px;color:var(--markup-ink);outline:none;padding:0 10px;font-size:14px;transition:border-color .12s,box-shadow .12s}.markup-input:focus-visible{border-color:var(--markup-brand);box-shadow:0 0 0 3px #e35d2a2e}.markup-btn{border-radius:var(--markup-radius-sm);height:30px;color:var(--markup-ink);cursor:pointer;letter-spacing:-.01em;white-space:nowrap;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:0 8px;font-size:12px;font-weight:500;transition:background .12s,border-color .12s,color .12s,opacity .12s;display:inline-flex}.markup-btn:disabled{opacity:.5;cursor:not-allowed}.markup-btn-primary{background:var(--markup-ink);color:var(--markup-paper)}.markup-btn-primary:hover:not(:disabled){background:var(--markup-brand)}.markup-btn-ghost{color:var(--markup-muted)}.markup-btn-ghost:hover:not(:disabled){background:var(--markup-border);color:var(--markup-ink)}.markup-screenshot-row{border-top:1px solid var(--markup-border);margin-top:8px;padding-top:8px}.markup-screenshot-status{color:var(--markup-muted);font-family:var(--markup-font-mono);letter-spacing:.06em;align-items:center;gap:5px;font-size:10px;display:flex}.markup-screenshot-toggle{cursor:pointer;color:var(--markup-muted);font-family:var(--markup-font-mono);letter-spacing:.06em;align-items:center;gap:5px;font-size:10px;transition:color .12s;display:flex}.markup-screenshot-toggle:hover{color:var(--markup-ink)}.markup-screenshot-checkbox{width:12px;height:12px;accent-color:var(--markup-brand);cursor:pointer;margin:0}.markup-screenshot-thumb{border:1px solid var(--markup-border-strong);object-fit:cover;border-radius:3px;flex-shrink:0;width:auto;height:25px;margin:-5px 0 -5px auto;display:block}.markup-comment-screenshot{border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius-sm);cursor:pointer;background:0 0;margin-top:8px;padding:0;transition:border-color .12s,opacity .12s;display:block;overflow:hidden}.markup-comment-screenshot:hover{border-color:var(--markup-brand);opacity:.9}.markup-comment-screenshot img{object-fit:cover;object-position:top;width:100%;height:auto;max-height:120px;display:block}.markup-lightbox{background:#1a1614e0;border:none;width:100%;max-width:100%;height:100%;max-height:100%;margin:0;padding:24px;position:fixed;inset:0}.markup-lightbox[open]{justify-content:center;align-items:center;display:flex}.markup-lightbox::backdrop{display:none}.markup-lightbox-img{border-radius:var(--markup-radius);object-fit:contain;max-width:100%;max-height:100%;box-shadow:var(--markup-shadow);animation:.16s ease-out markup-lightbox-in}.markup-lightbox-close{color:#fdfcfa;background:#1a161499;position:absolute;top:16px;right:16px}.markup-lightbox-close:hover{color:#fdfcfa;background:#1a1614d9}@keyframes markup-lightbox-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.markup-fab,.markup-pin,.markup-icon-btn,.markup-btn,.markup-popover,.markup-pin-ghost,.markup-placement-overlay,.markup-placement-cursor-help,.markup-lightbox-img{transition:none;animation:none}}", F, I, L, de, fe = 0, pe = [], R = t, me = R.__b, he = R.__r, ge = R.diffed, _e = R.__c, ve = R.unmount, ye = R.__;
|
|
251
|
+
var le = ":host{--markup-paper:#fdfcfa;--markup-ink:#1a1614;--markup-muted:#6b6661;--markup-border:#1a16141a;--markup-border-strong:#1a16142e;--markup-brand:#e35d2a;--markup-brand-hover:#c84d20;--markup-team:#2a4ac8;--markup-shadow:0 1px 2px #1a16140f, 0 8px 28px #1a16141f;--markup-overlay-tint:#1a16140a;--markup-danger:#dc2626;--markup-radius:6px;--markup-radius-sm:4px;--markup-font:\"Geist Variable\", \"Geist\", ui-sans-serif, -apple-system, BlinkMacSystemFont, \"Segoe UI\", system-ui, sans-serif;--markup-font-mono:\"Geist Mono Variable\", \"Geist Mono\", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;all:initial;font-family:var(--markup-font);color:var(--markup-ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.5}:host([data-theme=dark]){--markup-paper:#1a1614;--markup-ink:#fdfcfa;--markup-muted:#a8a39e;--markup-border:#fdfcfa1f;--markup-border-strong:#fdfcfa38;--markup-team:#7b99f0;--markup-shadow:0 1px 2px #00000059, 0 12px 40px #00000073;--markup-overlay-tint:#fdfcfa0d;--markup-danger:#f87171}@media (prefers-color-scheme:dark){:host(:not([data-theme=light])){--markup-paper:#1a1614;--markup-ink:#fdfcfa;--markup-muted:#a8a39e;--markup-border:#fdfcfa1f;--markup-border-strong:#fdfcfa38;--markup-team:#7b99f0;--markup-shadow:0 1px 2px #00000059, 0 12px 40px #00000073;--markup-overlay-tint:#fdfcfa0d;--markup-danger:#f87171}}.markup-shadow-root{font-family:var(--markup-font)}.markup-shadow-root *,.markup-shadow-root :before,.markup-shadow-root :after{box-sizing:border-box}:where(.markup-shadow-root button,.markup-shadow-root input,.markup-shadow-root textarea){font:inherit;color:inherit}.markup-eyebrow{font-family:var(--markup-font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--markup-muted);font-size:10px;font-weight:500}.markup-fab{z-index:10;background:var(--markup-ink);color:var(--markup-paper);cursor:pointer;touch-action:none;letter-spacing:-.01em;pointer-events:auto;box-shadow:0 0 0 1px color-mix(in srgb, var(--markup-brand) 35%, transparent), var(--markup-shadow);border:none;border-radius:999px;align-items:center;gap:8px;padding:9px 14px;font-size:13px;font-weight:500;transition:background .15s,box-shadow .15s,transform .15s;display:inline-flex;position:fixed;bottom:24px}.markup-fab:hover{background:var(--markup-brand);box-shadow:0 0 0 1px color-mix(in srgb, var(--markup-brand) 0%, transparent), var(--markup-shadow)}.markup-fab:active{transform:translateY(1px)}.markup-fab.is-active{background:var(--markup-brand);box-shadow:var(--markup-shadow)}.markup-fab.is-active:hover{background:var(--markup-brand-hover)}.markup-fab .markup-fab-icon{color:var(--markup-brand);transition:color .15s}.markup-fab:hover .markup-fab-icon,.markup-fab.is-active .markup-fab-icon{color:var(--markup-paper)}.markup-fab-right{right:24px}.markup-fab-left{left:24px}.markup-fab.is-floating{inset:0 auto auto 0}.markup-fab.is-dragging{cursor:grabbing;transition:none}.markup-fab-icon{align-items:center;display:inline-flex}.markup-fab-label{font-family:var(--markup-font)}.markup-hud-hidden-toast{z-index:10;background:var(--markup-ink);color:var(--markup-paper);letter-spacing:-.01em;box-shadow:var(--markup-shadow);pointer-events:none;border-radius:999px;align-items:center;gap:6px;padding:8px 14px;font-size:12px;font-weight:500;animation:.22s ease-out markup-hud-hidden-in,.32s ease-in 4.6s forwards markup-hud-hidden-out;display:inline-flex;position:fixed;bottom:24px}.markup-hud-hidden-toast-right{right:24px}.markup-hud-hidden-toast-left{left:24px}.markup-kbd{background:color-mix(in srgb, var(--markup-paper) 14%, transparent);min-width:18px;height:18px;color:var(--markup-paper);font-family:var(--markup-font);border-radius:4px;justify-content:center;align-items:center;padding:0 5px;font-size:10px;font-weight:600;line-height:1;display:inline-flex}@keyframes markup-hud-hidden-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes markup-hud-hidden-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(4px)}}.markup-pins-layer{pointer-events:none;position:fixed;inset:0}.markup-pin{background:var(--markup-ink);width:28px;height:28px;color:var(--markup-brand);cursor:pointer;pointer-events:auto;box-shadow:0 0 0 2px var(--markup-paper), 0 0 0 3px color-mix(in srgb, var(--markup-brand) 35%, transparent), var(--markup-shadow);border:none;border-radius:50% 50% 50% 4px;justify-content:center;align-items:center;margin-top:-28px;padding:0;transition:transform .15s,background .15s,color .15s;display:inline-flex;position:absolute}.markup-pin:hover,.markup-pin.is-active{background:var(--markup-brand);color:var(--markup-paper)}.markup-pin.is-anchor{anchor-name:--markup-active-anchor}.markup-pin-ghost{background:var(--markup-brand);color:var(--markup-paper);cursor:default;pointer-events:none;animation:1.2s ease-in-out infinite markup-ghost-pulse}.markup-pin-dot{background:currentColor;border-radius:50%;width:6px;height:6px;display:inline-block}.markup-pin-count{background:var(--markup-brand);min-width:16px;height:16px;color:var(--markup-paper);font-family:var(--markup-font-mono);text-align:center;box-shadow:0 0 0 2px var(--markup-paper);border-radius:999px;padding:0 4px;font-size:9px;font-weight:600;line-height:16px;position:absolute;top:-4px;left:50%;transform:translate(-50%,-50%)}@keyframes markup-ghost-pulse{0%,to{box-shadow:0 0 0 2px var(--markup-paper), 0 0 0 0 #e35d2a66}50%{box-shadow:0 0 0 2px var(--markup-paper), 0 0 0 10px #e35d2a00}}.markup-placement-overlay{background:var(--markup-overlay-tint);cursor:crosshair;pointer-events:auto;z-index:1;animation:.18s ease-out markup-overlay-in;position:fixed;inset:0}.markup-placement-cursor-help{background:var(--markup-ink);color:var(--markup-paper);letter-spacing:-.01em;box-shadow:var(--markup-shadow);pointer-events:none;border-radius:999px;padding:10px 16px;font-size:12px;font-weight:500;animation:.22s ease-out 60ms backwards markup-help-in;position:fixed;top:24px;left:50%;transform:translate(-50%)}@keyframes markup-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes markup-help-in{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}.markup-popover{width:320px;max-width:calc(100vw - 24px);height:auto;max-height:calc(100dvh - 24px);inset:auto;left:var(--markup-pop-x,0);top:var(--markup-pop-y,0);background:var(--markup-paper);color:var(--markup-ink);border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius);box-shadow:var(--markup-shadow);pointer-events:auto;flex-direction:column;gap:0;margin:0;padding:0;animation:.16s ease-out markup-popover-in;display:flex;position:fixed;overflow:hidden}@supports (anchor-name:--x){.markup-popover{position-anchor:--markup-active-anchor;left:calc(anchor(right) + 8px);top:calc(anchor(top) - 9px);position-try-fallbacks:flip-block, flip-inline, flip-block flip-inline;position-try-order:most-block-size}.markup-popover.is-floating{left:var(--markup-pop-x,0);top:var(--markup-pop-y,0);position-try-fallbacks:none}}.markup-popover.is-hud-hidden{display:none}@keyframes markup-popover-in{0%{opacity:0;transform:translateY(-4px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.markup-popover-header{border-bottom:1px solid var(--markup-border);cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.markup-popover.is-dragging .markup-popover-header{cursor:grabbing}.markup-popover-header-actions{align-items:center;gap:4px;display:flex}.markup-thread-menu{display:flex;position:relative}.markup-thread-menu-list{z-index:10;background:var(--markup-paper);border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius);min-width:160px;box-shadow:var(--markup-shadow);padding:4px;animation:.12s ease-out markup-menu-in;position:absolute;top:calc(100% + 6px);right:0}.markup-thread-menu-item{border-radius:var(--markup-radius-sm);width:100%;color:var(--markup-ink);text-align:left;cursor:pointer;background:0 0;border:none;padding:7px 10px;font-size:13px;transition:background .1s,color .1s;display:block}.markup-thread-menu-item:hover{background:var(--markup-border)}.markup-thread-menu-item.is-danger{color:var(--markup-danger,#dc2626)}.markup-thread-menu-item.is-danger:hover{background:color-mix(in srgb, var(--markup-danger,#dc2626) 10%, transparent)}.markup-thread-menu-item:disabled{opacity:.5;cursor:default}@keyframes markup-menu-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.markup-popover-body{padding:12px}.markup-popover-byline{color:var(--markup-muted);align-items:center;gap:4px;margin:0 0 8px;font-size:12px;display:flex}.markup-popover-name{color:var(--markup-ink);font-weight:500}.markup-icon-btn{border-radius:var(--markup-radius-sm);width:24px;height:24px;color:var(--markup-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:background .12s,color .12s;display:inline-flex}.markup-icon-btn:hover,.markup-icon-btn.is-open{background:var(--markup-border);color:var(--markup-ink)}.markup-comments{border-bottom:1px solid var(--markup-border);background:linear-gradient(var(--markup-paper), transparent) top / 100% 20px no-repeat local, linear-gradient(transparent, var(--markup-paper)) bottom / 100% 20px no-repeat local, radial-gradient(farthest-side at 50% 0%, #1a16141a, transparent) top / 100% 10px no-repeat scroll, radial-gradient(farthest-side at 50% 100%, #1a16141a, transparent) bottom / 100% 10px no-repeat scroll;flex-direction:column;gap:12px;max-height:280px;margin:0;padding:8px 12px 4px;list-style:none;display:flex;overflow-y:auto}.markup-comment{flex-direction:column;gap:4px;display:flex}.markup-comment-meta{align-items:center;gap:6px;font-size:11px;display:flex}.markup-comment-author{color:var(--markup-ink);font-weight:600}.markup-comment.is-team .markup-comment-author{color:var(--markup-team)}.markup-comment-badge{background:color-mix(in srgb, var(--markup-team) 12%, transparent);height:14px;color:var(--markup-team);font-family:var(--markup-font-mono);letter-spacing:.12em;text-transform:uppercase;border-radius:999px;align-items:center;padding:0 5px;font-size:9px;font-weight:500;line-height:1;display:inline-flex}.markup-comment-time{color:var(--markup-muted);font-family:var(--markup-font-mono);letter-spacing:.04em;font-size:10px}.markup-comment-body{white-space:pre-wrap;word-break:break-word;margin:0;font-size:13px;line-height:1.5}.markup-comment-edited{color:var(--markup-muted);font-size:11px}.markup-thread-actions{align-items:center;gap:4px;display:flex}.markup-comment-meta .markup-reaction-picker-wrap,.markup-thread-actions{margin-left:auto}.markup-comment-meta .markup-reaction-add{width:22px;height:22px;margin-top:-4px;margin-bottom:-4px}.markup-reaction-picker-wrap>.markup-icon-btn,.markup-comment-menu>.markup-icon-btn{margin-top:-4px;margin-bottom:-4px}.markup-comment-menu.is-up .markup-thread-menu-list{animation-name:markup-menu-in-up;top:auto;bottom:calc(100% + 6px)}@keyframes markup-menu-in-up{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.markup-comment{position:relative}.markup-reactions{flex-wrap:wrap;align-items:center;gap:4px;margin-top:2px;display:flex}.markup-reaction-chip{border:1px solid var(--markup-border);height:22px;color:var(--markup-ink);font:inherit;cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:4px;padding:0 7px 0 6px;font-size:11px;line-height:1;transition:background .12s,border-color .12s;display:inline-flex}.markup-reaction-chip:hover:not(:disabled){background:color-mix(in srgb, var(--markup-ink) 5%, transparent)}.markup-reaction-chip.is-mine{border-color:color-mix(in srgb, var(--markup-brand) 45%, transparent);background:color-mix(in srgb, var(--markup-brand) 10%, transparent)}.markup-reaction-chip.is-mine:hover:not(:disabled){background:color-mix(in srgb, var(--markup-brand) 16%, transparent)}.markup-reaction-chip:disabled{cursor:default;opacity:.6}.markup-reaction-emoji{font-size:13px;line-height:1}.markup-reaction-count{font-family:var(--markup-font-mono);letter-spacing:.04em;color:var(--markup-muted);font-size:10px}.markup-reaction-chip.is-mine .markup-reaction-count{color:var(--markup-brand)}.markup-reaction-picker-wrap{opacity:0;flex:none;transition:opacity .12s;display:inline-flex;position:relative}.markup-comment:hover .markup-reaction-picker-wrap,.markup-comment:focus-within .markup-reaction-picker-wrap,.markup-reaction-picker-wrap.is-open{opacity:1}.markup-reaction-add{border:1px dashed var(--markup-border-strong);width:22px;height:22px;color:var(--markup-muted);font:inherit;cursor:pointer;background:0 0;border-radius:999px;justify-content:center;align-items:center;font-size:13px;line-height:1;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.markup-reaction-add:hover,.markup-reaction-add.is-open{background:color-mix(in srgb, var(--markup-ink) 5%, transparent);color:var(--markup-ink);border-style:solid}.markup-reaction-picker{z-index:1;border:1px solid var(--markup-border-strong);background:var(--markup-paper);border-radius:8px;gap:2px;padding:4px;animation:.12s markup-menu-in;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 1px 2px #1a16140f,0 8px 28px #1a16141a}.markup-reaction-picker-wrap.is-up .markup-reaction-picker{animation-name:markup-menu-in-up;top:auto;bottom:calc(100% + 6px)}.markup-reaction-picker-item{cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;font-size:16px;line-height:1;transition:background .12s;display:inline-flex}.markup-reaction-picker-item:hover{background:color-mix(in srgb, var(--markup-ink) 8%, transparent)}.markup-reaction-picker-item.is-mine{background:color-mix(in srgb, var(--markup-brand) 14%, transparent)}.markup-comment-edit-form{flex-direction:column;gap:6px;display:flex}.markup-comment-edit-form .markup-textarea{border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius-sm);background:var(--markup-paper);width:100%;color:var(--markup-ink);resize:vertical;font:inherit;outline:none;padding:8px 10px;font-size:13px;line-height:1.5}.markup-comment-edit-form .markup-textarea:focus-visible{border-color:var(--markup-brand);box-shadow:0 0 0 3px #e35d2a2e}.markup-comment-edit-actions{justify-content:flex-end;gap:6px;display:flex}.markup-composer{flex-direction:column;display:flex;position:relative}.markup-composer-input{border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius-sm);background:var(--markup-paper);width:100%;min-height:36px;max-height:96px;color:var(--markup-ink);resize:none;font-family:var(--markup-font);outline:none;padding:8px 10px;font-size:13px;line-height:1.5;transition:border-color .12s,box-shadow .12s,border-bottom-left-radius .15s,border-bottom-right-radius .15s}.markup-composer-input:focus-visible{border-color:var(--markup-brand);box-shadow:0 0 0 3px #e35d2a2e}.markup-composer-input:disabled{opacity:.6}.markup-composer-input::placeholder{color:var(--markup-muted)}.markup-composer.is-filled .markup-composer-input{border-bottom-right-radius:0;border-bottom-left-radius:0}.markup-composer-footer-wrap{grid-template-rows:0fr;transition:grid-template-rows .15s;display:grid}.markup-composer.is-filled .markup-composer-footer-wrap{grid-template-rows:1fr}.markup-composer-footer{border:1px solid var(--markup-border-strong);border-radius:0 0 var(--markup-radius-sm) var(--markup-radius-sm);opacity:0;border-top:none;justify-content:space-between;align-items:center;gap:8px;padding:2px 2px 2px 10px;transition:opacity .1s;display:flex;overflow:hidden}.markup-composer.is-filled .markup-composer-footer{opacity:1;transition-delay:60ms}.markup-composer-hint{font-family:var(--markup-font-mono);letter-spacing:.06em;color:var(--markup-muted);font-size:10px}.markup-composer-error{color:var(--markup-brand)}.markup-composer-actions{align-items:center;gap:6px;display:flex}.markup-composer-actions-empty{transition:opacity .12s;position:absolute;top:3px;right:3px}.markup-composer.is-filled .markup-composer-actions-empty{opacity:0;pointer-events:none}.markup-author-prompt{flex-direction:column;gap:10px;padding:12px;display:flex}.markup-author-status{color:var(--markup-muted);margin:0;font-size:12px}.markup-input{border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius-sm);background:var(--markup-paper);width:100%;height:36px;color:var(--markup-ink);outline:none;padding:0 10px;font-size:14px;transition:border-color .12s,box-shadow .12s}.markup-input:focus-visible{border-color:var(--markup-brand);box-shadow:0 0 0 3px #e35d2a2e}.markup-btn{border-radius:var(--markup-radius-sm);height:30px;color:var(--markup-ink);cursor:pointer;letter-spacing:-.01em;white-space:nowrap;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:0 8px;font-size:12px;font-weight:500;transition:background .12s,border-color .12s,color .12s,opacity .12s;display:inline-flex}.markup-btn:disabled{opacity:.5;cursor:not-allowed}.markup-btn-primary{background:var(--markup-ink);color:var(--markup-paper)}.markup-btn-primary:hover:not(:disabled){background:var(--markup-brand)}.markup-btn-ghost{color:var(--markup-muted)}.markup-btn-ghost:hover:not(:disabled){background:var(--markup-border);color:var(--markup-ink)}.markup-screenshot-row{border-top:1px solid var(--markup-border);margin-top:8px;padding-top:8px}.markup-screenshot-status{color:var(--markup-muted);font-family:var(--markup-font-mono);letter-spacing:.06em;align-items:center;gap:5px;font-size:10px;display:flex}.markup-screenshot-toggle{cursor:pointer;color:var(--markup-muted);font-family:var(--markup-font-mono);letter-spacing:.06em;align-items:center;gap:5px;font-size:10px;transition:color .12s;display:flex}.markup-screenshot-toggle:hover{color:var(--markup-ink)}.markup-screenshot-checkbox{width:12px;height:12px;accent-color:var(--markup-brand);cursor:pointer;margin:0}.markup-screenshot-thumb{border:1px solid var(--markup-border-strong);object-fit:cover;border-radius:3px;flex-shrink:0;width:auto;height:25px;margin:-5px 0 -5px auto;display:block}.markup-comment-screenshot{border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius-sm);cursor:pointer;background:0 0;margin-top:8px;padding:0;transition:border-color .12s,opacity .12s;display:block;overflow:hidden}.markup-comment-screenshot:hover{border-color:var(--markup-brand);opacity:.9}.markup-comment-screenshot img{object-fit:cover;object-position:top;width:100%;height:auto;max-height:120px;display:block}.markup-lightbox{background:#1a1614e0;border:none;width:100%;max-width:100%;height:100%;max-height:100%;margin:0;padding:24px;position:fixed;inset:0}.markup-lightbox[open]{justify-content:center;align-items:center;display:flex}.markup-lightbox::backdrop{display:none}.markup-lightbox-img{border-radius:var(--markup-radius);object-fit:contain;max-width:100%;max-height:100%;box-shadow:var(--markup-shadow);animation:.16s ease-out markup-lightbox-in}.markup-lightbox-close{color:#fdfcfa;background:#1a161499;position:absolute;top:16px;right:16px}.markup-lightbox-close:hover{color:#fdfcfa;background:#1a1614d9}@keyframes markup-lightbox-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.markup-fab,.markup-pin,.markup-icon-btn,.markup-btn,.markup-popover,.markup-pin-ghost,.markup-placement-overlay,.markup-placement-cursor-help,.markup-lightbox-img{transition:none;animation:none}}", I, L, ue, de, fe = 0, pe = [], R = t, me = R.__b, he = R.__r, ge = R.diffed, _e = R.__c, ve = R.unmount, ye = R.__;
|
|
252
252
|
function be(e, t) {
|
|
253
|
-
R.__h && R.__h(
|
|
254
|
-
var n =
|
|
253
|
+
R.__h && R.__h(L, e, fe || t), fe = 0;
|
|
254
|
+
var n = L.__H ||= {
|
|
255
255
|
__: [],
|
|
256
256
|
__h: []
|
|
257
257
|
};
|
|
@@ -261,11 +261,11 @@ function z(e) {
|
|
|
261
261
|
return fe = 1, xe(ke, e);
|
|
262
262
|
}
|
|
263
263
|
function xe(e, t, n) {
|
|
264
|
-
var r = be(
|
|
264
|
+
var r = be(I++, 2);
|
|
265
265
|
if (r.t = e, !r.__c && (r.__ = [n ? n(t) : ke(void 0, t), function(e) {
|
|
266
266
|
var t = r.__N ? r.__N[0] : r.__[0], n = r.t(t, e);
|
|
267
267
|
t !== n && (r.__N = [n, r.__[1]], r.__c.setState({}));
|
|
268
|
-
}], r.__c =
|
|
268
|
+
}], r.__c = L, !L.__f)) {
|
|
269
269
|
var i = function(e, t, n) {
|
|
270
270
|
if (!r.__c.__H) return !0;
|
|
271
271
|
var i = r.__c.__H.__.filter(function(e) {
|
|
@@ -282,21 +282,21 @@ function xe(e, t, n) {
|
|
|
282
282
|
}
|
|
283
283
|
}), a && a.call(this, e, t, n) || o;
|
|
284
284
|
};
|
|
285
|
-
|
|
286
|
-
var a =
|
|
287
|
-
|
|
285
|
+
L.__f = !0;
|
|
286
|
+
var a = L.shouldComponentUpdate, o = L.componentWillUpdate;
|
|
287
|
+
L.componentWillUpdate = function(e, t, n) {
|
|
288
288
|
if (this.__e) {
|
|
289
289
|
var r = a;
|
|
290
290
|
a = void 0, i(e, t, n), a = r;
|
|
291
291
|
}
|
|
292
292
|
o && o.call(this, e, t, n);
|
|
293
|
-
},
|
|
293
|
+
}, L.shouldComponentUpdate = i;
|
|
294
294
|
}
|
|
295
295
|
return r.__N || r.__;
|
|
296
296
|
}
|
|
297
297
|
function B(e, t) {
|
|
298
|
-
var n = be(
|
|
299
|
-
!R.__s && Oe(n.__H, t) && (n.__ = e, n.u = t,
|
|
298
|
+
var n = be(I++, 3);
|
|
299
|
+
!R.__s && Oe(n.__H, t) && (n.__ = e, n.u = t, L.__H.__h.push(n));
|
|
300
300
|
}
|
|
301
301
|
function V(e) {
|
|
302
302
|
return fe = 5, Se(function() {
|
|
@@ -304,7 +304,7 @@ function V(e) {
|
|
|
304
304
|
}, []);
|
|
305
305
|
}
|
|
306
306
|
function Se(e, t) {
|
|
307
|
-
var n = be(
|
|
307
|
+
var n = be(I++, 7);
|
|
308
308
|
return Oe(n.__H, t) && (n.__ = e(), n.__H = t, n.__h = e), n.__;
|
|
309
309
|
}
|
|
310
310
|
function H(e, t) {
|
|
@@ -323,21 +323,21 @@ function Ce() {
|
|
|
323
323
|
}
|
|
324
324
|
}
|
|
325
325
|
R.__b = function(e) {
|
|
326
|
-
|
|
326
|
+
L = null, me && me(e);
|
|
327
327
|
}, R.__ = function(e, t) {
|
|
328
328
|
e && t.__k && t.__k.__m && (e.__m = t.__k.__m), ye && ye(e, t);
|
|
329
329
|
}, R.__r = function(e) {
|
|
330
|
-
he && he(e),
|
|
331
|
-
var t = (
|
|
332
|
-
t && (
|
|
330
|
+
he && he(e), I = 0;
|
|
331
|
+
var t = (L = e.__c).__H;
|
|
332
|
+
t && (ue === L ? (t.__h = [], L.__h = [], t.__.some(function(e) {
|
|
333
333
|
e.__N && (e.__ = e.__N), e.u = e.__N = void 0;
|
|
334
|
-
})) : (t.__h.some(Ee), t.__h.some(De), t.__h = [],
|
|
334
|
+
})) : (t.__h.some(Ee), t.__h.some(De), t.__h = [], I = 0)), ue = L;
|
|
335
335
|
}, R.diffed = function(e) {
|
|
336
336
|
ge && ge(e);
|
|
337
337
|
var t = e.__c;
|
|
338
338
|
t && t.__H && (t.__H.__h.length && (pe.push(t) !== 1 && de === R.requestAnimationFrame || ((de = R.requestAnimationFrame) || Te)(Ce)), t.__H.__.some(function(e) {
|
|
339
339
|
e.u && (e.__H = e.u), e.u = void 0;
|
|
340
|
-
})),
|
|
340
|
+
})), ue = L = null;
|
|
341
341
|
}, R.__c = function(e, t) {
|
|
342
342
|
t.some(function(e) {
|
|
343
343
|
try {
|
|
@@ -369,12 +369,12 @@ function Te(e) {
|
|
|
369
369
|
we && (t = requestAnimationFrame(n));
|
|
370
370
|
}
|
|
371
371
|
function Ee(e) {
|
|
372
|
-
var t =
|
|
373
|
-
typeof n == "function" && (e.__c = void 0, n()),
|
|
372
|
+
var t = L, n = e.__c;
|
|
373
|
+
typeof n == "function" && (e.__c = void 0, n()), L = t;
|
|
374
374
|
}
|
|
375
375
|
function De(e) {
|
|
376
|
-
var t =
|
|
377
|
-
e.__c = e.__(),
|
|
376
|
+
var t = L;
|
|
377
|
+
e.__c = e.__(), L = t;
|
|
378
378
|
}
|
|
379
379
|
function Oe(e, t) {
|
|
380
380
|
return !e || e.length !== t.length || t.some(function(t, n) {
|
|
@@ -3676,20 +3676,21 @@ function ga({ label: e, placeholder: t = "Leave feedback…", submitLabel: n = "
|
|
|
3676
3676
|
}, [s]), B(() => {
|
|
3677
3677
|
u.current && !i && !a && (c(""), l.current?.focus()), u.current = i;
|
|
3678
3678
|
}, [i, a]);
|
|
3679
|
-
|
|
3679
|
+
let d = ha - s.length, f = d < 0;
|
|
3680
|
+
function p(e) {
|
|
3680
3681
|
e?.preventDefault();
|
|
3681
3682
|
let t = s.trim();
|
|
3682
|
-
!t || i || o(t);
|
|
3683
|
+
!t || i || f || o(t);
|
|
3683
3684
|
}
|
|
3684
|
-
function
|
|
3685
|
-
(e.metaKey || e.ctrlKey) && e.key === "Enter" &&
|
|
3685
|
+
function m(e) {
|
|
3686
|
+
(e.metaKey || e.ctrlKey) && e.key === "Enter" && p(e);
|
|
3686
3687
|
}
|
|
3687
|
-
let
|
|
3688
|
+
let h = s.length > 0;
|
|
3688
3689
|
function g(e) {
|
|
3689
3690
|
return /* @__PURE__ */ $("button", {
|
|
3690
3691
|
type: "submit",
|
|
3691
3692
|
class: "markup-btn markup-btn-primary",
|
|
3692
|
-
disabled: i || !s.trim() ||
|
|
3693
|
+
disabled: i || !s.trim() || f,
|
|
3693
3694
|
"aria-label": i ? "Sending…" : n,
|
|
3694
3695
|
title: i ? "Sending…" : n,
|
|
3695
3696
|
tabIndex: e,
|
|
@@ -3698,7 +3699,7 @@ function ga({ label: e, placeholder: t = "Leave feedback…", submitLabel: n = "
|
|
|
3698
3699
|
}
|
|
3699
3700
|
return /* @__PURE__ */ $("form", {
|
|
3700
3701
|
class: Q("markup-composer", h && "is-filled"),
|
|
3701
|
-
onSubmit:
|
|
3702
|
+
onSubmit: p,
|
|
3702
3703
|
children: [
|
|
3703
3704
|
/* @__PURE__ */ $("textarea", {
|
|
3704
3705
|
ref: l,
|
|
@@ -3709,7 +3710,7 @@ function ga({ label: e, placeholder: t = "Leave feedback…", submitLabel: n = "
|
|
|
3709
3710
|
maxLength: ha + 100,
|
|
3710
3711
|
value: s,
|
|
3711
3712
|
onInput: (e) => c(e.currentTarget.value),
|
|
3712
|
-
onKeyDown:
|
|
3713
|
+
onKeyDown: m,
|
|
3713
3714
|
disabled: i,
|
|
3714
3715
|
"aria-label": e
|
|
3715
3716
|
}),
|
|
@@ -3722,9 +3723,9 @@ function ga({ label: e, placeholder: t = "Leave feedback…", submitLabel: n = "
|
|
|
3722
3723
|
children: a ? /* @__PURE__ */ $("span", {
|
|
3723
3724
|
class: "markup-composer-error",
|
|
3724
3725
|
children: a
|
|
3725
|
-
}) :
|
|
3726
|
+
}) : f ? /* @__PURE__ */ $("span", {
|
|
3726
3727
|
class: "markup-composer-error",
|
|
3727
|
-
children: [Math.abs(
|
|
3728
|
+
children: [Math.abs(d), " too long"]
|
|
3728
3729
|
}) : /* @__PURE__ */ $("span", { children: "⌘↵ to send" })
|
|
3729
3730
|
}), /* @__PURE__ */ $("div", {
|
|
3730
3731
|
class: "markup-composer-actions",
|
|
@@ -3958,69 +3959,69 @@ var Sa = [
|
|
|
3958
3959
|
"😄",
|
|
3959
3960
|
"❓"
|
|
3960
3961
|
];
|
|
3961
|
-
function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, identityResolving: i, canDelete: a, pending: o, error: s,
|
|
3962
|
-
let
|
|
3963
|
-
pa(
|
|
3964
|
-
let
|
|
3965
|
-
function
|
|
3966
|
-
|
|
3962
|
+
function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, identityResolving: i, canDelete: a, pending: o, error: s, hidden: c = !1, onAuthor: l, onSignIn: u, onClose: d, onReply: f, onEditComment: p, onDeleteComment: m, onToggleReaction: h, onResolve: g, onDelete: _ }) {
|
|
3963
|
+
let v = V(null), y = V(null), b = V(null), x = V(null), S = V(null), [C, w] = z(!1), [T, E] = z(!1), [D, O] = z(null), [ee, k] = z(""), [A, j] = z(null), [M, te] = z("down"), [N, ne] = z(null), [P, F] = z(null), [re, ie] = z("down"), ae = V(null), [oe, se] = z(null), [ce, le] = z(!1);
|
|
3964
|
+
pa(v, !0);
|
|
3965
|
+
let I = e.resolvedAt != null, L = Se(() => e.comments.filter((e) => !e.deleted), [e.comments]);
|
|
3966
|
+
function ue(e, t) {
|
|
3967
|
+
O(e), k(t);
|
|
3967
3968
|
}
|
|
3968
|
-
function
|
|
3969
|
-
|
|
3969
|
+
function de() {
|
|
3970
|
+
O(null), k("");
|
|
3970
3971
|
}
|
|
3971
3972
|
B(() => {
|
|
3972
|
-
if (!
|
|
3973
|
-
let t = e.comments.find((e) => e._id ===
|
|
3974
|
-
(!t || t.deleted) &&
|
|
3975
|
-
}, [e.comments,
|
|
3976
|
-
let
|
|
3973
|
+
if (!D) return;
|
|
3974
|
+
let t = e.comments.find((e) => e._id === D);
|
|
3975
|
+
(!t || t.deleted) && de();
|
|
3976
|
+
}, [e.comments, D]);
|
|
3977
|
+
let fe = V(!0);
|
|
3977
3978
|
B(() => {
|
|
3978
|
-
let e =
|
|
3979
|
+
let e = x.current;
|
|
3979
3980
|
if (e) {
|
|
3980
|
-
if (
|
|
3981
|
-
|
|
3981
|
+
if (fe.current) {
|
|
3982
|
+
fe.current = !1, e.scrollTop = e.scrollHeight;
|
|
3982
3983
|
return;
|
|
3983
3984
|
}
|
|
3984
3985
|
e.scrollHeight - e.scrollTop - e.clientHeight < 80 && (e.scrollTop = e.scrollHeight);
|
|
3985
3986
|
}
|
|
3986
|
-
}, [
|
|
3987
|
-
if (!
|
|
3988
|
-
|
|
3987
|
+
}, [L.length]), B(() => {
|
|
3988
|
+
if (!C) {
|
|
3989
|
+
E(!1);
|
|
3989
3990
|
return;
|
|
3990
3991
|
}
|
|
3991
3992
|
function e(e) {
|
|
3992
|
-
|
|
3993
|
+
y.current && !e.composedPath().includes(y.current) && w(!1);
|
|
3993
3994
|
}
|
|
3994
3995
|
return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
|
|
3995
|
-
}, [
|
|
3996
|
-
if (!
|
|
3997
|
-
|
|
3996
|
+
}, [C]), B(() => {
|
|
3997
|
+
if (!A) {
|
|
3998
|
+
ne(null);
|
|
3998
3999
|
return;
|
|
3999
4000
|
}
|
|
4000
4001
|
function e(e) {
|
|
4001
|
-
|
|
4002
|
+
b.current && !e.composedPath().includes(b.current) && j(null);
|
|
4002
4003
|
}
|
|
4003
4004
|
return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
|
|
4004
|
-
}, [
|
|
4005
|
+
}, [A]), B(() => {
|
|
4005
4006
|
if (!P) return;
|
|
4006
4007
|
function e(e) {
|
|
4007
|
-
ae.current && !e.composedPath().includes(ae.current) &&
|
|
4008
|
+
ae.current && !e.composedPath().includes(ae.current) && F(null);
|
|
4008
4009
|
}
|
|
4009
4010
|
return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
|
|
4010
4011
|
}, [P]), B(() => {
|
|
4011
|
-
let e =
|
|
4012
|
+
let e = v.current;
|
|
4012
4013
|
if (!e) return;
|
|
4013
4014
|
if (typeof e.showPopover == "function" && !e.matches(":popover-open")) try {
|
|
4014
4015
|
e.showPopover();
|
|
4015
4016
|
} catch {}
|
|
4016
4017
|
function t(e) {
|
|
4017
|
-
e.newState === "closed" &&
|
|
4018
|
+
e.newState === "closed" && d();
|
|
4018
4019
|
}
|
|
4019
4020
|
return e.addEventListener("toggle", t), () => e.removeEventListener("toggle", t);
|
|
4020
|
-
}, [
|
|
4021
|
-
function
|
|
4021
|
+
}, [d]);
|
|
4022
|
+
function pe(e) {
|
|
4022
4023
|
if (e.button !== 0 || e.target?.closest("button, a, input, textarea, select")) return;
|
|
4023
|
-
let t =
|
|
4024
|
+
let t = v.current;
|
|
4024
4025
|
if (!t) return;
|
|
4025
4026
|
let n = t.getBoundingClientRect(), r = e.clientX, i = e.clientY, a = n.left, o = n.top, s = n.width, c = n.height, l = e.currentTarget, u = !1;
|
|
4026
4027
|
try {
|
|
@@ -4046,7 +4047,7 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, ident
|
|
|
4046
4047
|
}
|
|
4047
4048
|
l.addEventListener("pointermove", d), l.addEventListener("pointerup", f), l.addEventListener("pointercancel", f);
|
|
4048
4049
|
}
|
|
4049
|
-
let
|
|
4050
|
+
let R = Se(() => {
|
|
4050
4051
|
let t = Tr({
|
|
4051
4052
|
anchorX: e.anchorX,
|
|
4052
4053
|
anchorY: e.anchorY,
|
|
@@ -4062,58 +4063,59 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, ident
|
|
|
4062
4063
|
e.anchorSelector
|
|
4063
4064
|
]);
|
|
4064
4065
|
return /* @__PURE__ */ $("div", {
|
|
4065
|
-
ref:
|
|
4066
|
+
ref: v,
|
|
4066
4067
|
id: "markup-thread-popover",
|
|
4067
|
-
class: Q("markup-popover", oe && "is-floating", ce && "is-dragging"),
|
|
4068
|
+
class: Q("markup-popover", oe && "is-floating", ce && "is-dragging", c && "is-hud-hidden"),
|
|
4068
4069
|
popover: "auto",
|
|
4069
4070
|
style: {
|
|
4070
|
-
"--markup-pop-x": `${oe?.left ??
|
|
4071
|
-
"--markup-pop-y": `${oe?.top ??
|
|
4071
|
+
"--markup-pop-x": `${oe?.left ?? R.left}px`,
|
|
4072
|
+
"--markup-pop-y": `${oe?.top ?? R.top}px`
|
|
4072
4073
|
},
|
|
4073
4074
|
role: "dialog",
|
|
4074
4075
|
"aria-label": "Markup thread",
|
|
4076
|
+
"aria-hidden": c || void 0,
|
|
4075
4077
|
children: [
|
|
4076
4078
|
/* @__PURE__ */ $("header", {
|
|
4077
4079
|
class: "markup-popover-header",
|
|
4078
|
-
onPointerDown:
|
|
4080
|
+
onPointerDown: pe,
|
|
4079
4081
|
children: [/* @__PURE__ */ $("span", {
|
|
4080
4082
|
class: "markup-eyebrow",
|
|
4081
4083
|
children: [
|
|
4082
4084
|
"thread · ",
|
|
4083
|
-
|
|
4085
|
+
L.length,
|
|
4084
4086
|
" ",
|
|
4085
|
-
|
|
4087
|
+
L.length === 1 ? "comment" : "comments"
|
|
4086
4088
|
]
|
|
4087
4089
|
}), /* @__PURE__ */ $("div", {
|
|
4088
4090
|
class: "markup-popover-header-actions",
|
|
4089
4091
|
children: [
|
|
4090
4092
|
/* @__PURE__ */ $("div", {
|
|
4091
4093
|
class: "markup-thread-menu",
|
|
4092
|
-
ref:
|
|
4094
|
+
ref: y,
|
|
4093
4095
|
children: [/* @__PURE__ */ $("button", {
|
|
4094
4096
|
type: "button",
|
|
4095
|
-
class: Q("markup-icon-btn",
|
|
4097
|
+
class: Q("markup-icon-btn", C && "is-open"),
|
|
4096
4098
|
title: "More options",
|
|
4097
|
-
onClick: () =>
|
|
4099
|
+
onClick: () => w((e) => !e),
|
|
4098
4100
|
children: /* @__PURE__ */ $(aa, { size: 16 })
|
|
4099
|
-
}),
|
|
4101
|
+
}), C ? /* @__PURE__ */ $("div", {
|
|
4100
4102
|
class: "markup-thread-menu-list",
|
|
4101
4103
|
children: [/* @__PURE__ */ $("button", {
|
|
4102
4104
|
type: "button",
|
|
4103
4105
|
class: "markup-thread-menu-item",
|
|
4104
4106
|
onClick: () => {
|
|
4105
4107
|
let t = new URL(e.url);
|
|
4106
|
-
t.hash = `markup-thread=${e._id}`, navigator.clipboard.writeText(t.toString()).catch(() => {}),
|
|
4108
|
+
t.hash = `markup-thread=${e._id}`, navigator.clipboard.writeText(t.toString()).catch(() => {}), w(!1);
|
|
4107
4109
|
},
|
|
4108
4110
|
children: "Copy link"
|
|
4109
4111
|
}), a ? /* @__PURE__ */ $("button", {
|
|
4110
4112
|
type: "button",
|
|
4111
|
-
class: Q("markup-thread-menu-item",
|
|
4113
|
+
class: Q("markup-thread-menu-item", T && "is-danger"),
|
|
4112
4114
|
disabled: o,
|
|
4113
4115
|
onClick: () => {
|
|
4114
|
-
|
|
4116
|
+
T ? (w(!1), _()) : E(!0);
|
|
4115
4117
|
},
|
|
4116
|
-
children:
|
|
4118
|
+
children: T ? "Confirm delete" : "Delete thread…"
|
|
4117
4119
|
}) : null]
|
|
4118
4120
|
}) : null]
|
|
4119
4121
|
}),
|
|
@@ -4122,24 +4124,24 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, ident
|
|
|
4122
4124
|
class: "markup-icon-btn",
|
|
4123
4125
|
title: "Mark as resolved",
|
|
4124
4126
|
disabled: o,
|
|
4125
|
-
onClick:
|
|
4127
|
+
onClick: g,
|
|
4126
4128
|
children: /* @__PURE__ */ $(oa, { size: 16 })
|
|
4127
4129
|
}) : null,
|
|
4128
4130
|
/* @__PURE__ */ $("button", {
|
|
4129
4131
|
type: "button",
|
|
4130
4132
|
class: "markup-icon-btn",
|
|
4131
4133
|
title: "Close thread",
|
|
4132
|
-
onClick:
|
|
4134
|
+
onClick: d,
|
|
4133
4135
|
children: /* @__PURE__ */ $(ia, { size: 16 })
|
|
4134
4136
|
})
|
|
4135
4137
|
]
|
|
4136
4138
|
})]
|
|
4137
4139
|
}),
|
|
4138
4140
|
/* @__PURE__ */ $("ol", {
|
|
4139
|
-
ref:
|
|
4141
|
+
ref: x,
|
|
4140
4142
|
class: "markup-comments",
|
|
4141
|
-
children:
|
|
4142
|
-
let i = !t.fromDashboard && n != null && t.authorClientId === n, a = r === 0, s = i && !
|
|
4143
|
+
children: L.map((t, r) => {
|
|
4144
|
+
let i = !t.fromDashboard && n != null && t.authorClientId === n, a = r === 0, s = i && !I && !t.deleted, c = i && !I && !t.deleted && !a, l = D === t._id, u = (s || c) && !l && !t.deleted, d = A === t._id, f = N === t._id;
|
|
4143
4145
|
return /* @__PURE__ */ $("li", {
|
|
4144
4146
|
class: Q("markup-comment", t.fromDashboard && "is-team"),
|
|
4145
4147
|
children: [
|
|
@@ -4162,7 +4164,7 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, ident
|
|
|
4162
4164
|
}),
|
|
4163
4165
|
/* @__PURE__ */ $("div", {
|
|
4164
4166
|
class: "markup-thread-actions",
|
|
4165
|
-
children: [!
|
|
4167
|
+
children: [!I && !l ? /* @__PURE__ */ $(wa, {
|
|
4166
4168
|
comment: t,
|
|
4167
4169
|
pickerOpen: P === t._id,
|
|
4168
4170
|
pickerDirection: re,
|
|
@@ -4171,31 +4173,31 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, ident
|
|
|
4171
4173
|
},
|
|
4172
4174
|
onPickerClick: (e) => {
|
|
4173
4175
|
if (P === t._id) {
|
|
4174
|
-
|
|
4176
|
+
F(null);
|
|
4175
4177
|
return;
|
|
4176
4178
|
}
|
|
4177
|
-
let n = e.currentTarget.getBoundingClientRect(), r =
|
|
4178
|
-
ie((r ? r.bottom - n.bottom : Infinity) < 44 ? "up" : "down"),
|
|
4179
|
+
let n = e.currentTarget.getBoundingClientRect(), r = x.current?.getBoundingClientRect();
|
|
4180
|
+
ie((r ? r.bottom - n.bottom : Infinity) < 44 ? "up" : "down"), F(t._id);
|
|
4179
4181
|
},
|
|
4180
4182
|
onPickerSelect: (e) => {
|
|
4181
|
-
|
|
4183
|
+
F(null), h(t._id, e);
|
|
4182
4184
|
}
|
|
4183
4185
|
}) : null, u ? /* @__PURE__ */ $("div", {
|
|
4184
|
-
class: Q("markup-thread-menu markup-comment-menu", d && "is-open", d &&
|
|
4186
|
+
class: Q("markup-thread-menu markup-comment-menu", d && "is-open", d && M === "up" && "is-up"),
|
|
4185
4187
|
ref: (e) => {
|
|
4186
|
-
d && (
|
|
4188
|
+
d && (b.current = e);
|
|
4187
4189
|
},
|
|
4188
4190
|
children: [/* @__PURE__ */ $("button", {
|
|
4189
4191
|
type: "button",
|
|
4190
4192
|
class: Q("markup-icon-btn", d && "is-open"),
|
|
4191
4193
|
title: "More options",
|
|
4192
4194
|
onClick: (e) => {
|
|
4193
|
-
if (
|
|
4194
|
-
|
|
4195
|
+
if (A === t._id) {
|
|
4196
|
+
j(null);
|
|
4195
4197
|
return;
|
|
4196
4198
|
}
|
|
4197
|
-
let n = e.currentTarget.getBoundingClientRect(), r =
|
|
4198
|
-
|
|
4199
|
+
let n = e.currentTarget.getBoundingClientRect(), r = x.current?.getBoundingClientRect(), i = (+!!s + +!!c) * 32 + 8 + 6;
|
|
4200
|
+
te((r ? r.bottom - n.bottom : Infinity) < i ? "up" : "down"), j(t._id);
|
|
4199
4201
|
},
|
|
4200
4202
|
children: /* @__PURE__ */ $(aa, { size: 16 })
|
|
4201
4203
|
}), d ? /* @__PURE__ */ $("div", {
|
|
@@ -4204,16 +4206,16 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, ident
|
|
|
4204
4206
|
type: "button",
|
|
4205
4207
|
class: "markup-thread-menu-item",
|
|
4206
4208
|
onClick: () => {
|
|
4207
|
-
|
|
4209
|
+
j(null), ue(t._id, t.body);
|
|
4208
4210
|
},
|
|
4209
4211
|
children: "Edit"
|
|
4210
4212
|
}) : null, c ? /* @__PURE__ */ $("button", {
|
|
4211
4213
|
type: "button",
|
|
4212
|
-
class: Q("markup-thread-menu-item",
|
|
4214
|
+
class: Q("markup-thread-menu-item", f && "is-danger"),
|
|
4213
4215
|
onClick: () => {
|
|
4214
|
-
|
|
4216
|
+
f ? (j(null), m(t._id)) : ne(t._id);
|
|
4215
4217
|
},
|
|
4216
|
-
children:
|
|
4218
|
+
children: f ? "Confirm delete" : "Delete…"
|
|
4217
4219
|
}) : null]
|
|
4218
4220
|
}) : null]
|
|
4219
4221
|
}) : null]
|
|
@@ -4224,19 +4226,19 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, ident
|
|
|
4224
4226
|
class: "markup-comment-edit-form",
|
|
4225
4227
|
onSubmit: async (e) => {
|
|
4226
4228
|
e.preventDefault();
|
|
4227
|
-
let n =
|
|
4229
|
+
let n = ee.trim();
|
|
4228
4230
|
if (!n || n === t.body) {
|
|
4229
|
-
|
|
4231
|
+
de();
|
|
4230
4232
|
return;
|
|
4231
4233
|
}
|
|
4232
4234
|
try {
|
|
4233
|
-
await
|
|
4235
|
+
await p(t._id, n), de();
|
|
4234
4236
|
} catch {}
|
|
4235
4237
|
},
|
|
4236
4238
|
children: [/* @__PURE__ */ $("textarea", {
|
|
4237
4239
|
class: "markup-textarea",
|
|
4238
|
-
value:
|
|
4239
|
-
onInput: (e) =>
|
|
4240
|
+
value: ee,
|
|
4241
|
+
onInput: (e) => k(e.currentTarget.value),
|
|
4240
4242
|
rows: 3,
|
|
4241
4243
|
autoFocus: !0,
|
|
4242
4244
|
disabled: o
|
|
@@ -4245,13 +4247,13 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, ident
|
|
|
4245
4247
|
children: [/* @__PURE__ */ $("button", {
|
|
4246
4248
|
type: "button",
|
|
4247
4249
|
class: "markup-btn markup-btn-ghost",
|
|
4248
|
-
onClick:
|
|
4250
|
+
onClick: de,
|
|
4249
4251
|
disabled: o,
|
|
4250
4252
|
children: "Cancel"
|
|
4251
4253
|
}), /* @__PURE__ */ $("button", {
|
|
4252
4254
|
type: "submit",
|
|
4253
4255
|
class: "markup-btn markup-btn-primary",
|
|
4254
|
-
disabled: o ||
|
|
4256
|
+
disabled: o || ee.trim().length === 0,
|
|
4255
4257
|
children: "Save"
|
|
4256
4258
|
})]
|
|
4257
4259
|
})]
|
|
@@ -4266,13 +4268,13 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, ident
|
|
|
4266
4268
|
}),
|
|
4267
4269
|
!l && t.reactions.length > 0 ? /* @__PURE__ */ $(Ta, {
|
|
4268
4270
|
comment: t,
|
|
4269
|
-
isResolved:
|
|
4270
|
-
onToggle: (e) =>
|
|
4271
|
+
isResolved: I,
|
|
4272
|
+
onToggle: (e) => h(t._id, e)
|
|
4271
4273
|
}) : null,
|
|
4272
4274
|
r === 0 && e.screenshotUrl ? /* @__PURE__ */ $("button", {
|
|
4273
4275
|
type: "button",
|
|
4274
4276
|
class: "markup-comment-screenshot",
|
|
4275
|
-
onClick: () =>
|
|
4277
|
+
onClick: () => S.current?.showModal(),
|
|
4276
4278
|
children: /* @__PURE__ */ $("img", {
|
|
4277
4279
|
src: e.screenshotUrl,
|
|
4278
4280
|
alt: "Screenshot"
|
|
@@ -4283,15 +4285,15 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, ident
|
|
|
4283
4285
|
})
|
|
4284
4286
|
}),
|
|
4285
4287
|
e.screenshotUrl ? /* @__PURE__ */ $("dialog", {
|
|
4286
|
-
ref:
|
|
4288
|
+
ref: S,
|
|
4287
4289
|
class: "markup-lightbox",
|
|
4288
|
-
onClick: () =>
|
|
4290
|
+
onClick: () => S.current?.close(),
|
|
4289
4291
|
children: [/* @__PURE__ */ $("button", {
|
|
4290
4292
|
type: "button",
|
|
4291
4293
|
class: "markup-lightbox-close markup-icon-btn",
|
|
4292
4294
|
"aria-label": "Close screenshot",
|
|
4293
4295
|
onClick: (e) => {
|
|
4294
|
-
e.stopPropagation(),
|
|
4296
|
+
e.stopPropagation(), S.current?.close();
|
|
4295
4297
|
},
|
|
4296
4298
|
children: /* @__PURE__ */ $(ia, { size: 16 })
|
|
4297
4299
|
}), /* @__PURE__ */ $("img", {
|
|
@@ -4304,9 +4306,9 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, ident
|
|
|
4304
4306
|
t == null ? /* @__PURE__ */ $(ma, {
|
|
4305
4307
|
pending: o,
|
|
4306
4308
|
connecting: i,
|
|
4307
|
-
onSubmit:
|
|
4308
|
-
onCancel:
|
|
4309
|
-
onSignIn:
|
|
4309
|
+
onSubmit: l,
|
|
4310
|
+
onCancel: d,
|
|
4311
|
+
onSignIn: u
|
|
4310
4312
|
}) : /* @__PURE__ */ $("div", {
|
|
4311
4313
|
class: "markup-popover-body",
|
|
4312
4314
|
children: [/* @__PURE__ */ $("p", {
|
|
@@ -4329,7 +4331,7 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, ident
|
|
|
4329
4331
|
initialFocus: !1,
|
|
4330
4332
|
pending: o,
|
|
4331
4333
|
error: s,
|
|
4332
|
-
onSubmit:
|
|
4334
|
+
onSubmit: f
|
|
4333
4335
|
})]
|
|
4334
4336
|
})
|
|
4335
4337
|
]
|
|
@@ -4574,8 +4576,8 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
|
|
|
4574
4576
|
b(null), g({ kind: "placing" });
|
|
4575
4577
|
}, []), N = H(() => {
|
|
4576
4578
|
g({ kind: "idle" }), b(null);
|
|
4577
|
-
}, []),
|
|
4578
|
-
let r = t + window.scrollX, i = n + window.scrollY, a = ++
|
|
4579
|
+
}, []), ne = V(0), P = H((e, t, n) => {
|
|
4580
|
+
let r = t + window.scrollX, i = n + window.scrollY, a = ++ne.current;
|
|
4579
4581
|
g({
|
|
4580
4582
|
kind: "composing-new",
|
|
4581
4583
|
coords: e,
|
|
@@ -4594,7 +4596,7 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
|
|
|
4594
4596
|
screenshotCapturing: !1
|
|
4595
4597
|
});
|
|
4596
4598
|
});
|
|
4597
|
-
}, []),
|
|
4599
|
+
}, []), F = H((e, t) => {
|
|
4598
4600
|
if (!s) return;
|
|
4599
4601
|
let n = {
|
|
4600
4602
|
...s,
|
|
@@ -4602,7 +4604,7 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
|
|
|
4602
4604
|
email: t
|
|
4603
4605
|
};
|
|
4604
4606
|
Mr(n), c(n);
|
|
4605
|
-
}, [s]),
|
|
4607
|
+
}, [s]), re = H(async () => {
|
|
4606
4608
|
b(null);
|
|
4607
4609
|
try {
|
|
4608
4610
|
let n = Aa(await Nr(e, t));
|
|
@@ -4610,7 +4612,7 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
|
|
|
4610
4612
|
} catch (e) {
|
|
4611
4613
|
b(e instanceof Error ? e.message : "Sign-in failed");
|
|
4612
4614
|
}
|
|
4613
|
-
}, [e, t]),
|
|
4615
|
+
}, [e, t]), ie = H(async (e, t) => {
|
|
4614
4616
|
if (!(h.kind !== "composing-new" || !s?.name)) {
|
|
4615
4617
|
v(!0), b(null);
|
|
4616
4618
|
try {
|
|
@@ -4621,10 +4623,9 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
|
|
|
4621
4623
|
headers: { "Content-Type": h.screenshot.type || "image/png" },
|
|
4622
4624
|
body: h.screenshot
|
|
4623
4625
|
});
|
|
4624
|
-
if (t.ok) {
|
|
4625
|
-
|
|
4626
|
-
|
|
4627
|
-
}
|
|
4626
|
+
if (!t.ok) throw Error(`Screenshot upload failed (${t.status})`);
|
|
4627
|
+
let { storageId: r } = await t.json();
|
|
4628
|
+
n = r;
|
|
4628
4629
|
}
|
|
4629
4630
|
let i = await m.createThread({
|
|
4630
4631
|
url: window.location.href,
|
|
@@ -4657,7 +4658,7 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
|
|
|
4657
4658
|
s,
|
|
4658
4659
|
h,
|
|
4659
4660
|
r
|
|
4660
|
-
]),
|
|
4661
|
+
]), ae = H(async () => {
|
|
4661
4662
|
if (h.kind !== "thread") return;
|
|
4662
4663
|
let e = h.threadId;
|
|
4663
4664
|
v(!0), b(null);
|
|
@@ -4668,7 +4669,7 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
|
|
|
4668
4669
|
} finally {
|
|
4669
4670
|
v(!1);
|
|
4670
4671
|
}
|
|
4671
|
-
}, [m, h]),
|
|
4672
|
+
}, [m, h]), oe = H(async () => {
|
|
4672
4673
|
if (h.kind !== "thread") return;
|
|
4673
4674
|
let e = h.threadId;
|
|
4674
4675
|
v(!0), b(null);
|
|
@@ -4683,7 +4684,7 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
|
|
|
4683
4684
|
m,
|
|
4684
4685
|
h,
|
|
4685
4686
|
s?.clientId
|
|
4686
|
-
]),
|
|
4687
|
+
]), se = H(async (e) => {
|
|
4687
4688
|
if (h.kind !== "thread" || !s?.name) return;
|
|
4688
4689
|
let t = h.threadId;
|
|
4689
4690
|
v(!0), b(null);
|
|
@@ -4703,7 +4704,7 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
|
|
|
4703
4704
|
m,
|
|
4704
4705
|
s,
|
|
4705
4706
|
h
|
|
4706
|
-
]),
|
|
4707
|
+
]), ce = H(async (e, t) => {
|
|
4707
4708
|
if (h.kind !== "thread" || !s) return;
|
|
4708
4709
|
let n = h.threadId;
|
|
4709
4710
|
v(!0), b(null);
|
|
@@ -4719,7 +4720,7 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
|
|
|
4719
4720
|
m,
|
|
4720
4721
|
s,
|
|
4721
4722
|
h
|
|
4722
|
-
]),
|
|
4723
|
+
]), le = H(async (e) => {
|
|
4723
4724
|
if (h.kind !== "thread" || !s) return;
|
|
4724
4725
|
let t = h.threadId;
|
|
4725
4726
|
v(!0), b(null);
|
|
@@ -4735,7 +4736,7 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
|
|
|
4735
4736
|
m,
|
|
4736
4737
|
s,
|
|
4737
4738
|
h
|
|
4738
|
-
]),
|
|
4739
|
+
]), I = H(async (e, t) => {
|
|
4739
4740
|
if (h.kind !== "thread" || !s) return;
|
|
4740
4741
|
let n = h.threadId;
|
|
4741
4742
|
b(null);
|
|
@@ -4752,12 +4753,12 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
|
|
|
4752
4753
|
m,
|
|
4753
4754
|
s,
|
|
4754
4755
|
h
|
|
4755
|
-
]),
|
|
4756
|
+
]), L = h.kind === "thread" ? a.find((e) => e._id === h.threadId) ?? null : null, ue = O || s?.clientId != null && s.clientId === L?.authorClientId;
|
|
4756
4757
|
return B(() => {
|
|
4757
|
-
h.kind === "thread" &&
|
|
4758
|
+
h.kind === "thread" && L == null && N();
|
|
4758
4759
|
}, [
|
|
4759
4760
|
h,
|
|
4760
|
-
|
|
4761
|
+
L,
|
|
4761
4762
|
N
|
|
4762
4763
|
]), /* @__PURE__ */ $("div", {
|
|
4763
4764
|
class: "markup-root",
|
|
@@ -4789,28 +4790,29 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
|
|
|
4789
4790
|
}) : null]
|
|
4790
4791
|
}),
|
|
4791
4792
|
h.kind === "placing" ? /* @__PURE__ */ $(xa, {
|
|
4792
|
-
onPlace:
|
|
4793
|
+
onPlace: P,
|
|
4793
4794
|
onCancel: N
|
|
4794
4795
|
}) : null,
|
|
4795
|
-
h.kind === "thread" &&
|
|
4796
|
-
thread:
|
|
4796
|
+
h.kind === "thread" && L ? /* @__PURE__ */ $(Ca, {
|
|
4797
|
+
thread: L,
|
|
4797
4798
|
authorName: D,
|
|
4798
4799
|
currentClientId: s?.clientId ?? null,
|
|
4799
4800
|
isVerified: O,
|
|
4800
4801
|
identityResolving: ee,
|
|
4801
|
-
canDelete:
|
|
4802
|
+
canDelete: ue,
|
|
4802
4803
|
pending: _,
|
|
4803
4804
|
error: y,
|
|
4804
|
-
|
|
4805
|
-
|
|
4805
|
+
hidden: x,
|
|
4806
|
+
onAuthor: F,
|
|
4807
|
+
onSignIn: re,
|
|
4806
4808
|
onClose: N,
|
|
4807
|
-
onReply:
|
|
4808
|
-
onEditComment:
|
|
4809
|
-
onDeleteComment:
|
|
4810
|
-
onToggleReaction:
|
|
4811
|
-
onDelete:
|
|
4812
|
-
onResolve:
|
|
4813
|
-
},
|
|
4809
|
+
onReply: se,
|
|
4810
|
+
onEditComment: ce,
|
|
4811
|
+
onDeleteComment: le,
|
|
4812
|
+
onToggleReaction: I,
|
|
4813
|
+
onDelete: ae,
|
|
4814
|
+
onResolve: oe
|
|
4815
|
+
}, L._id) : null,
|
|
4814
4816
|
h.kind === "composing-new" ? /* @__PURE__ */ $(_a, {
|
|
4815
4817
|
pageX: h.pageX,
|
|
4816
4818
|
pageY: h.pageY,
|
|
@@ -4821,9 +4823,9 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
|
|
|
4821
4823
|
error: y,
|
|
4822
4824
|
screenshot: h.screenshot,
|
|
4823
4825
|
screenshotCapturing: h.screenshotCapturing,
|
|
4824
|
-
onAuthor:
|
|
4825
|
-
onSignIn:
|
|
4826
|
-
onSubmit:
|
|
4826
|
+
onAuthor: F,
|
|
4827
|
+
onSignIn: re,
|
|
4828
|
+
onSubmit: ie,
|
|
4827
4829
|
onClose: N
|
|
4828
4830
|
}) : null,
|
|
4829
4831
|
!x || h.kind === "placing" || h.kind === "composing-new" ? /* @__PURE__ */ $(ua, {
|
|
@@ -4866,11 +4868,11 @@ function Na(e, t) {
|
|
|
4866
4868
|
let n = t.theme ?? "auto";
|
|
4867
4869
|
n !== "auto" && (e.dataset.theme = n);
|
|
4868
4870
|
let r = e.attachShadow({ mode: "open" }), i = document.createElement("style");
|
|
4869
|
-
i.textContent =
|
|
4871
|
+
i.textContent = le, r.appendChild(i);
|
|
4870
4872
|
let a = document.createElement("div");
|
|
4871
4873
|
a.className = "markup-shadow-root", r.appendChild(a);
|
|
4872
4874
|
let { theme: o, ...s } = t;
|
|
4873
|
-
return
|
|
4875
|
+
return ce(/* @__PURE__ */ $(ja, { ...s }), a), () => ce(null, a);
|
|
4874
4876
|
}
|
|
4875
4877
|
//#endregion
|
|
4876
4878
|
//#region src/widget.ts
|