@pixelmatters/markup 1.3.1 → 1.3.3

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