@pixelmatters/markup 1.3.3 → 1.3.5

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 +592 -591
  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), 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);
48
+ o.__v = n.__v + 1, t.vnode && t.vnode(o), P(e.__P, o, n, e.__n, e.__P.namespaceURI, 32 & n.__u ? [r] : null, i, r ?? w(n), !!(32 & n.__u), a), o.__v = n.__v, o.__.__k[o.__i] = o, re(i, o, a), n.__e = n.__ = null, o.__e != r && E(o);
49
49
  }
50
50
  }
51
51
  function E(e) {
@@ -63,21 +63,21 @@ function O() {
63
63
  r.length = O.__r = 0;
64
64
  }
65
65
  }
66
- function ee(e, t, n, r, i, a, o, s, c, l, u) {
66
+ function k(e, t, n, r, i, a, o, s, c, l, u) {
67
67
  var d, f, p, g, _, v, y, b = r && r.__k || h, x = t.length;
68
- for (c = 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);
68
+ for (c = A(n, t, b, c, x), d = 0; d < x; d++) (p = n.__k[d]) != null && (f = p.__i != -1 && b[p.__i] || m, p.__i = d, v = P(e, p, f, i, a, o, s, c, l, u), g = p.__e, p.ref && f.ref != p.ref && (f.ref && oe(f.ref, null, p), u.push(p.ref, p.__c || g, p)), _ == null && g != null && (_ = g), (y = !!(4 & p.__u)) || f.__k === p.__k ? (c = j(p, c, e, y), y && f.__e && (f.__e = null)) : typeof p.type == "function" && v !== void 0 ? c = v : g && (c = g.nextSibling), p.__u &= -7);
69
69
  return n.__e = _, c;
70
70
  }
71
- function k(e, t, n, r, i) {
71
+ function A(e, t, n, r, i) {
72
72
  var a, o, s, c, l, u = n.length, d = u, f = 0;
73
- for (e.__k = Array(i), a = 0; a < i; a++) (o = t[a]) != null && typeof o != "boolean" && typeof o != "function" ? (typeof o == "string" || typeof o == "number" || typeof o == "bigint" || o.constructor == String ? o = e.__k[a] = x(null, o, null, null, null) : _(o) ? o = e.__k[a] = x(S, { children: o }, null, null, null) : o.constructor === void 0 && o.__b > 0 ? o = e.__k[a] = x(o.type, o.props, o.key, o.ref ? o.ref : null, o.__v) : e.__k[a] = o, c = a + f, o.__ = e, o.__b = e.__b + 1, s = null, (l = o.__i = 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));
73
+ for (e.__k = Array(i), a = 0; a < i; a++) (o = t[a]) != null && typeof o != "boolean" && typeof o != "function" ? (typeof o == "string" || typeof o == "number" || typeof o == "bigint" || o.constructor == String ? o = e.__k[a] = x(null, o, null, null, null) : _(o) ? o = e.__k[a] = x(S, { children: o }, null, null, null) : o.constructor === void 0 && o.__b > 0 ? o = e.__k[a] = x(o.type, o.props, o.key, o.ref ? o.ref : null, o.__v) : e.__k[a] = o, c = a + f, o.__ = e, o.__b = e.__b + 1, s = null, (l = o.__i = M(o, n, c, d)) != -1 && (d--, (s = n[l]) && (s.__u |= 2)), s == null || s.__v == null ? (l == -1 && (i > u ? f-- : i < u && f++), typeof o.type != "function" && (o.__u |= 4)) : l != c && (l == c - 1 ? f-- : l == c + 1 ? f++ : (l > c ? f-- : f++, o.__u |= 4))) : e.__k[a] = null;
74
+ if (d) for (a = 0; a < u; a++) (s = n[a]) != null && !(2 & s.__u) && (s.__e == r && (r = w(s)), se(s, s));
75
75
  return r;
76
76
  }
77
- function A(e, t, n, r) {
77
+ function j(e, t, n, r) {
78
78
  var i, a;
79
79
  if (typeof e.type == "function") {
80
- for (i = e.__k, a = 0; i && a < i.length; a++) i[a] && (i[a].__ = e, t = A(i[a], t, n, r));
80
+ for (i = e.__k, a = 0; i && a < i.length; a++) i[a] && (i[a].__ = e, t = j(i[a], t, n, r));
81
81
  return t;
82
82
  }
83
83
  e.__e != t && (r && (t && e.type && !t.parentNode && (t = w(e)), n.insertBefore(e.__e, t || null)), t = e.__e);
@@ -86,7 +86,7 @@ function A(e, t, n, r) {
86
86
  while (t != null && t.nodeType == 8);
87
87
  return t;
88
88
  }
89
- function j(e, t, n, r) {
89
+ function M(e, t, n, r) {
90
90
  var i, a, o, s = e.key, c = e.type, l = t[n], u = l != null && (2 & l.__u) == 0;
91
91
  if (l === null && s == null || u && s == l.key && c == l.type) return n;
92
92
  if (r > +!!u) {
@@ -94,15 +94,15 @@ function j(e, t, n, r) {
94
94
  }
95
95
  return -1;
96
96
  }
97
- function M(e, t, n) {
97
+ function N(e, t, n) {
98
98
  t[0] == "-" ? e.setProperty(t, n ?? "") : e[t] = n == null ? "" : typeof n != "number" || g.test(t) ? n : n + "px";
99
99
  }
100
- function te(e, t, n, r, i) {
100
+ function ee(e, t, n, r, i) {
101
101
  var a, o;
102
102
  n: if (t == "style") if (typeof n == "string") e.style.cssText = n;
103
103
  else {
104
- if (typeof r == "string" && (e.style.cssText = r = ""), r) for (t in r) n && t in n || M(e.style, t, "");
105
- if (n) for (t in n) r && n[t] == r[t] || M(e.style, t, n[t]);
104
+ if (typeof r == "string" && (e.style.cssText = r = ""), r) for (t in r) n && t in n || N(e.style, t, "");
105
+ if (n) for (t in n) r && n[t] == r[t] || N(e.style, t, n[t]);
106
106
  }
107
107
  else if (t[0] == "o" && t[1] == "n") a = t != (t = t.replace(u, "$1")), o = t.toLowerCase(), t = o in e || t == "onFocusOut" || t == "onFocusIn" ? o.slice(2) : t.slice(2), e.l ||= {}, e.l[t + a] = n, n ? r ? n[l] = r[l] : (n[l] = d, e.addEventListener(t, a ? p : f, a)) : e.removeEventListener(t, a ? p : f, a);
108
108
  else {
@@ -114,7 +114,7 @@ function te(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 N(e) {
117
+ function te(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 N(e) {
124
124
  }
125
125
  };
126
126
  }
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;
127
+ function P(e, n, r, i, a, o, s, c, l, u) {
128
+ var d, f, p, m, g, b, x, w, T, E, D, O, A, j, M, N = n.type;
129
129
  if (n.constructor !== void 0) return null;
130
130
  128 & r.__u && (l = !!(32 & r.__u), o = [c = n.__e = r.__e]), (d = t.__b) && d(n);
131
- n: if (typeof 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);
131
+ n: if (typeof N == "function") try {
132
+ if (w = n.props, T = N.prototype && N.prototype.render, E = (d = N.contextType) && i[d.__c], D = d ? E ? E.props.value : d.__ : i, r.__c ? x = (f = n.__c = r.__c).__ = f.__E : (T ? n.__c = f = new N(w, D) : (n.__c = f = new C(w, D), f.constructor = N, f.render = 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 && N.getDerivedStateFromProps != null && (f.__s == f.state && (f.__s = v({}, f.__s)), v(f.__s, N.getDerivedStateFromProps(w, f.__s))), m = f.props, g = f.state, f.__v = n, p) T && N.getDerivedStateFromProps == null && f.componentWillMount != null && f.componentWillMount(), T && f.componentDidMount != null && f.__h.push(f.componentDidMount);
133
133
  else {
134
- if (T && 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)) {
134
+ if (T && N.getDerivedStateFromProps == null && w !== m && f.componentWillReceiveProps != null && f.componentWillReceiveProps(w, D), n.__v == r.__v || !f.__e && f.shouldComponentUpdate != null && !1 === f.shouldComponentUpdate(w, f.__s, D)) {
135
135
  n.__v != r.__v && (f.props = w, f.state = f.__s, f.__d = !1), n.__e = r.__e, n.__k = r.__k, n.__k.some(function(e) {
136
136
  e && (e.__ = n);
137
137
  }), h.push.apply(f.__h, f._sb), f._sb = [], f.__h.length && s.push(f);
@@ -141,30 +141,30 @@ function ne(e, n, r, i, a, o, s, c, l, u) {
141
141
  f.componentDidUpdate(m, g, b);
142
142
  });
143
143
  }
144
- if (f.context = D, f.props = w, f.__P = e, f.__e = !1, O = t.__r, k = 0, T) f.state = f.__s, f.__d = !1, O && O(n), d = f.render(f.props, f.state, f.context), h.push.apply(f.__h, f._sb), f._sb = [];
144
+ if (f.context = D, f.props = w, f.__P = e, f.__e = !1, O = t.__r, A = 0, T) f.state = f.__s, f.__d = !1, O && O(n), d = f.render(f.props, f.state, f.context), h.push.apply(f.__h, f._sb), f._sb = [];
145
145
  else do
146
146
  f.__d = !1, O && O(n), d = f.render(f.props, f.state, f.context), f.state = f.__s;
147
- while (f.__d && ++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 ? 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);
147
+ while (f.__d && ++A < 25);
148
+ f.state = f.__s, f.getChildContext != null && (i = v(v({}, i), f.getChildContext())), T && !p && f.getSnapshotBeforeUpdate != null && (b = f.getSnapshotBeforeUpdate(m, g)), j = d != null && d.type === S && d.key == null ? ie(d.props.children) : d, c = k(e, _(j) ? j : [j], n, r, i, a, o, s, c, l, u), f.base = n.__e, n.__u &= -161, f.__h.length && s.push(f), x && (f.__E = f.__ = null);
149
149
  } catch (e) {
150
150
  if (n.__v = null, l || o != null) if (e.then) {
151
151
  for (n.__u |= l ? 160 : 128; c && c.nodeType == 8 && c.nextSibling;) c = c.nextSibling;
152
152
  o[o.indexOf(c)] = null, n.__e = c;
153
153
  } else {
154
- for (j = o.length; j--;) y(o[j]);
155
- P(n);
154
+ for (M = o.length; M--;) y(o[M]);
155
+ ne(n);
156
156
  }
157
- else n.__e = r.__e, n.__k = r.__k, e.then || P(n);
157
+ else n.__e = r.__e, n.__k = r.__k, e.then || ne(n);
158
158
  t.__e(e, n, r);
159
159
  }
160
- else o == null && n.__v == r.__v ? (n.__k = r.__k, n.__e = r.__e) : c = n.__e = ie(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 = ae(r.__e, n, r, i, a, o, s, l, u);
161
161
  return (d = t.diffed) && d(n), 128 & n.__u ? void 0 : c;
162
162
  }
163
- function P(e) {
164
- e && (e.__c && (e.__c.__e = !0), e.__k && e.__k.some(P));
163
+ function ne(e) {
164
+ e && (e.__c && (e.__c.__e = !0), e.__k && e.__k.some(ne));
165
165
  }
166
- function F(e, n, r) {
167
- for (var i = 0; i < r.length; i++) ae(r[i], r[++i], r[++i]);
166
+ function re(e, n, r) {
167
+ for (var i = 0; i < r.length; i++) oe(r[i], r[++i], r[++i]);
168
168
  t.__c && t.__c(n, e), e.some(function(n) {
169
169
  try {
170
170
  e = n.__h, n.__h = [], e.some(function(e) {
@@ -175,10 +175,10 @@ function F(e, n, r) {
175
175
  }
176
176
  });
177
177
  }
178
- function re(e) {
179
- return typeof e != "object" || !e || e.__b > 0 ? e : _(e) ? e.map(re) : v({}, e);
178
+ function ie(e) {
179
+ return typeof e != "object" || !e || e.__b > 0 ? e : _(e) ? e.map(ie) : v({}, e);
180
180
  }
181
- function ie(n, r, i, a, o, s, c, l, u) {
181
+ function ae(n, r, i, a, o, s, c, l, u) {
182
182
  var d, f, p, h, g, v, b, x = i.props || m, S = r.props, C = r.type;
183
183
  if (C == "svg" ? o = "http://www.w3.org/2000/svg" : C == "math" ? o = "http://www.w3.org/1998/Math/MathML" : o ||= "http://www.w3.org/1999/xhtml", s != null) {
184
184
  for (d = 0; d < s.length; d++) if ((g = s[d]) && "setAttribute" in g == !!C && (C ? g.localName == C : g.nodeType == 3)) {
@@ -193,15 +193,15 @@ function ie(n, r, i, a, o, s, c, l, u) {
193
193
  if (C == null) x === S || l && n.data == S || (n.data = S);
194
194
  else {
195
195
  if (s &&= e.call(n.childNodes), !l && s != null) for (x = {}, d = 0; d < n.attributes.length; d++) x[(g = n.attributes[d]).name] = g.value;
196
- for (d in x) g = x[d], d == "dangerouslySetInnerHTML" ? p = g : d == "children" || d in S || d == "value" && "defaultValue" in S || d == "checked" && "defaultChecked" in S || 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);
196
+ for (d in x) g = x[d], d == "dangerouslySetInnerHTML" ? p = g : d == "children" || d in S || d == "value" && "defaultValue" in S || d == "checked" && "defaultChecked" in S || ee(n, d, null, g, o);
197
+ for (d in S) g = S[d], d == "children" ? h = g : d == "dangerouslySetInnerHTML" ? f = g : d == "value" ? v = g : d == "checked" ? b = g : l && typeof g != "function" || x[d] === g || ee(n, d, g, x[d], o);
198
198
  if (f) l || p && (f.__html == p.__html || f.__html == n.innerHTML) || (n.innerHTML = f.__html), r.__k = [];
199
- else if (p && (n.innerHTML = ""), ee(r.type == "template" ? n.content : n, _(h) ? h : [h], r, i, a, C == "foreignObject" ? "http://www.w3.org/1999/xhtml" : o, s, c, s ? s[0] : i.__k && w(i, 0), l, u), s != null) for (d = s.length; d--;) y(s[d]);
200
- l || (d = "value", C == "progress" && v == null ? n.removeAttribute("value") : v != null && (v !== n[d] || C == "progress" && !v || C == "option" && v != x[d]) && te(n, d, v, x[d], o), d = "checked", b != null && b != n[d] && te(n, d, b, x[d], o));
199
+ else if (p && (n.innerHTML = ""), k(r.type == "template" ? n.content : n, _(h) ? h : [h], r, i, a, C == "foreignObject" ? "http://www.w3.org/1999/xhtml" : o, s, c, s ? s[0] : i.__k && w(i, 0), l, u), s != null) for (d = s.length; d--;) y(s[d]);
200
+ l || (d = "value", C == "progress" && v == null ? n.removeAttribute("value") : v != null && (v !== n[d] || C == "progress" && !v || C == "option" && v != x[d]) && ee(n, d, v, x[d], o), d = "checked", b != null && b != n[d] && ee(n, d, b, x[d], o));
201
201
  }
202
202
  return n;
203
203
  }
204
- function ae(e, n, r) {
204
+ function oe(e, n, r) {
205
205
  try {
206
206
  if (typeof e == "function") {
207
207
  var i = typeof e.__u == "function";
@@ -211,9 +211,9 @@ function ae(e, n, r) {
211
211
  t.__e(e, r);
212
212
  }
213
213
  }
214
- function oe(e, n, r) {
214
+ function se(e, n, r) {
215
215
  var i, a;
216
- if (t.unmount && t.unmount(e), (i = e.ref) && (i.current && i.current != e.__e || ae(i, null, n)), (i = e.__c) != null) {
216
+ if (t.unmount && t.unmount(e), (i = e.ref) && (i.current && i.current != e.__e || oe(i, null, n)), (i = e.__c) != null) {
217
217
  if (i.componentWillUnmount) try {
218
218
  i.componentWillUnmount();
219
219
  } catch (e) {
@@ -221,15 +221,15 @@ function oe(e, n, r) {
221
221
  }
222
222
  i.base = i.__P = null;
223
223
  }
224
- if (i = e.__k) for (a = 0; a < i.length; a++) i[a] && oe(i[a], n, r || typeof e.type != "function");
224
+ if (i = e.__k) for (a = 0; a < i.length; a++) i[a] && se(i[a], n, r || typeof e.type != "function");
225
225
  r || y(e.__e), e.__c = e.__ = e.__e = void 0;
226
226
  }
227
- function se(e, t, n) {
227
+ function ce(e, t, n) {
228
228
  return this.constructor(e, n);
229
229
  }
230
- function ce(n, r, i) {
230
+ function le(n, r, i) {
231
231
  var a, o, s, c;
232
- r == document && (r = document.documentElement), t.__ && t.__(n, r), o = (a = typeof i == "function") ? null : i && i.__k || r.__k, s = [], c = [], 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);
232
+ r == document && (r = document.documentElement), t.__ && t.__(n, r), o = (a = typeof i == "function") ? null : i && i.__k || r.__k, s = [], c = [], P(r, n = (!a && i || r).__k = b(S, null, [n]), o || m, m, r.namespaceURI, !a && i ? [i] : o ? null : r.firstChild ? e.call(r.childNodes) : null, s, !a && i ? i : o ? o.__e : r.firstChild, a, c), re(s, n, c);
233
233
  }
234
234
  e = h.slice, t = { __e: function(e, t, n, r) {
235
235
  for (var i, a, o; t = t.__;) if ((i = t.__c) && !i.__) try {
@@ -245,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 = N(!1), p = N(!0);
248
+ }, O.__r = 0, s = Math.random().toString(8), c = "__d" + s, l = "__a" + s, u = /(PointerCapture)$|Capture$/i, d = 0, f = te(!1), p = te(!0);
249
249
  //#endregion
250
250
  //#region src/styles.css?inline
251
- var le = ":host{--markup-paper:#fdfcfa;--markup-ink:#1a1614;--markup-muted:#6b6661;--markup-border:#1a16141a;--markup-border-strong:#1a16142e;--markup-brand:#e35d2a;--markup-brand-hover:#c84d20;--markup-team:#2a4ac8;--markup-shadow:0 1px 2px #1a16140f, 0 8px 28px #1a16141f;--markup-overlay-tint:#1a16140a;--markup-danger:#dc2626;--markup-radius:6px;--markup-radius-sm:4px;--markup-font:\"Geist Variable\", \"Geist\", ui-sans-serif, -apple-system, BlinkMacSystemFont, \"Segoe UI\", system-ui, sans-serif;--markup-font-mono:\"Geist Mono Variable\", \"Geist Mono\", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;all:initial;font-family:var(--markup-font);color:var(--markup-ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.5}:host([data-theme=dark]){--markup-paper:#1a1614;--markup-ink:#fdfcfa;--markup-muted:#a8a39e;--markup-border:#fdfcfa1f;--markup-border-strong:#fdfcfa38;--markup-team:#7b99f0;--markup-shadow:0 1px 2px #00000059, 0 12px 40px #00000073;--markup-overlay-tint:#fdfcfa0d;--markup-danger:#f87171}@media (prefers-color-scheme:dark){:host(:not([data-theme=light])){--markup-paper:#1a1614;--markup-ink:#fdfcfa;--markup-muted:#a8a39e;--markup-border:#fdfcfa1f;--markup-border-strong:#fdfcfa38;--markup-team:#7b99f0;--markup-shadow:0 1px 2px #00000059, 0 12px 40px #00000073;--markup-overlay-tint:#fdfcfa0d;--markup-danger:#f87171}}.markup-shadow-root{font-family:var(--markup-font)}.markup-shadow-root *,.markup-shadow-root :before,.markup-shadow-root :after{box-sizing:border-box}:where(.markup-shadow-root button,.markup-shadow-root input,.markup-shadow-root textarea){font:inherit;color:inherit}.markup-eyebrow{font-family:var(--markup-font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--markup-muted);font-size:10px;font-weight:500}.markup-fab{z-index:10;background:var(--markup-ink);color:var(--markup-paper);cursor:pointer;touch-action:none;letter-spacing:-.01em;pointer-events:auto;box-shadow:0 0 0 1px color-mix(in srgb, var(--markup-brand) 35%, transparent), var(--markup-shadow);border:none;border-radius:999px;align-items:center;gap:8px;padding:9px 14px;font-size:13px;font-weight:500;transition:background .15s,box-shadow .15s,transform .15s;display:inline-flex;position:fixed;bottom:24px}.markup-fab:hover{background:var(--markup-brand);box-shadow:0 0 0 1px color-mix(in srgb, var(--markup-brand) 0%, transparent), var(--markup-shadow)}.markup-fab:active{transform:translateY(1px)}.markup-fab.is-active{background:var(--markup-brand);box-shadow:var(--markup-shadow)}.markup-fab.is-active:hover{background:var(--markup-brand-hover)}.markup-fab .markup-fab-icon{color:var(--markup-brand);transition:color .15s}.markup-fab:hover .markup-fab-icon,.markup-fab.is-active .markup-fab-icon{color:var(--markup-paper)}.markup-fab-right{right:24px}.markup-fab-left{left:24px}.markup-fab.is-floating{inset:0 auto auto 0}.markup-fab.is-dragging{cursor:grabbing;transition:none}.markup-fab-icon{align-items:center;display:inline-flex}.markup-fab-label{font-family:var(--markup-font)}.markup-hud-hidden-toast{z-index:10;background:var(--markup-ink);color:var(--markup-paper);letter-spacing:-.01em;box-shadow:var(--markup-shadow);pointer-events:none;border-radius:999px;align-items:center;gap:6px;padding:8px 14px;font-size:12px;font-weight:500;animation:.22s ease-out markup-hud-hidden-in,.32s ease-in 4.6s forwards markup-hud-hidden-out;display:inline-flex;position:fixed;bottom:24px}.markup-hud-hidden-toast-right{right:24px}.markup-hud-hidden-toast-left{left:24px}.markup-kbd{background:color-mix(in srgb, var(--markup-paper) 14%, transparent);min-width:18px;height:18px;color:var(--markup-paper);font-family:var(--markup-font);border-radius:4px;justify-content:center;align-items:center;padding:0 5px;font-size:10px;font-weight:600;line-height:1;display:inline-flex}@keyframes markup-hud-hidden-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes markup-hud-hidden-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(4px)}}.markup-pins-layer{pointer-events:none;position:fixed;inset:0}.markup-pin{background:var(--markup-ink);width:28px;height:28px;color:var(--markup-brand);cursor:pointer;pointer-events:auto;box-shadow:0 0 0 2px var(--markup-paper), 0 0 0 3px color-mix(in srgb, var(--markup-brand) 35%, transparent), var(--markup-shadow);border:none;border-radius:50% 50% 50% 4px;justify-content:center;align-items:center;margin-top:-28px;padding:0;transition:transform .15s,background .15s,color .15s;display:inline-flex;position:absolute}.markup-pin:hover,.markup-pin.is-active{background:var(--markup-brand);color:var(--markup-paper)}.markup-pin.is-anchor{anchor-name:--markup-active-anchor}.markup-pin-ghost{background:var(--markup-brand);color:var(--markup-paper);cursor:default;pointer-events:none;animation:1.2s ease-in-out infinite markup-ghost-pulse}.markup-pin-dot{background:currentColor;border-radius:50%;width:6px;height:6px;display:inline-block}.markup-pin-count{background:var(--markup-brand);min-width:16px;height:16px;color:var(--markup-paper);font-family:var(--markup-font-mono);text-align:center;box-shadow:0 0 0 2px var(--markup-paper);border-radius:999px;padding:0 4px;font-size:9px;font-weight:600;line-height:16px;position:absolute;top:-4px;left:50%;transform:translate(-50%,-50%)}@keyframes markup-ghost-pulse{0%,to{box-shadow:0 0 0 2px var(--markup-paper), 0 0 0 0 #e35d2a66}50%{box-shadow:0 0 0 2px var(--markup-paper), 0 0 0 10px #e35d2a00}}.markup-placement-overlay{background:var(--markup-overlay-tint);cursor:crosshair;pointer-events:auto;z-index:1;animation:.18s ease-out markup-overlay-in;position:fixed;inset:0}.markup-placement-cursor-help{background:var(--markup-ink);color:var(--markup-paper);letter-spacing:-.01em;box-shadow:var(--markup-shadow);pointer-events:none;border-radius:999px;padding:10px 16px;font-size:12px;font-weight:500;animation:.22s ease-out 60ms backwards markup-help-in;position:fixed;top:24px;left:50%;transform:translate(-50%)}@keyframes markup-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes markup-help-in{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}.markup-popover{width:320px;max-width:calc(100vw - 24px);height:auto;max-height:calc(100dvh - 24px);inset:auto;left:var(--markup-pop-x,0);top:var(--markup-pop-y,0);background:var(--markup-paper);color:var(--markup-ink);border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius);box-shadow:var(--markup-shadow);pointer-events:auto;flex-direction:column;gap:0;margin:0;padding:0;animation:.16s ease-out markup-popover-in;display:flex;position:fixed;overflow:hidden}@supports (anchor-name:--x){.markup-popover{position-anchor:--markup-active-anchor;left:calc(anchor(right) + 8px);top:calc(anchor(top) - 9px);position-try-fallbacks:flip-block, flip-inline, flip-block flip-inline;position-try-order:most-block-size}.markup-popover.is-floating{left:var(--markup-pop-x,0);top:var(--markup-pop-y,0);position-try-fallbacks:none}}.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 ||= {
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}}.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}}", de, F, fe, pe, I = 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(F, e, I || t), I = 0;
254
+ var n = F.__H ||= {
255
255
  __: [],
256
256
  __h: []
257
257
  };
258
258
  return e >= n.__.length && n.__.push({}), n.__[e];
259
259
  }
260
- function z(e) {
261
- return fe = 1, xe(ke, e);
260
+ function R(e) {
261
+ return I = 1, Se(Ae, e);
262
262
  }
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) {
263
+ function Se(e, t, n) {
264
+ var r = xe(de++, 2);
265
+ if (r.t = e, !r.__c && (r.__ = [n ? n(t) : Ae(void 0, t), function(e) {
266
266
  var t = r.__N ? r.__N[0] : r.__[0], n = r.t(t, e);
267
267
  t !== n && (r.__N = [n, r.__[1]], r.__c.setState({}));
268
- }], r.__c = L, !L.__f)) {
268
+ }], r.__c = F, !F.__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 xe(e, t, n) {
282
282
  }
283
283
  }), a && a.call(this, e, t, n) || o;
284
284
  };
285
- L.__f = !0;
286
- var a = L.shouldComponentUpdate, o = L.componentWillUpdate;
287
- L.componentWillUpdate = function(e, t, n) {
285
+ F.__f = !0;
286
+ var a = F.shouldComponentUpdate, o = F.componentWillUpdate;
287
+ F.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
- }, L.shouldComponentUpdate = i;
293
+ }, F.shouldComponentUpdate = i;
294
294
  }
295
295
  return r.__N || r.__;
296
296
  }
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));
297
+ function z(e, t) {
298
+ var n = xe(de++, 3);
299
+ !L.__s && ke(n.__H, t) && (n.__ = e, n.u = t, F.__H.__h.push(n));
300
300
  }
301
- function V(e) {
302
- return fe = 5, Se(function() {
301
+ function B(e) {
302
+ return I = 5, Ce(function() {
303
303
  return { current: e };
304
304
  }, []);
305
305
  }
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.__;
306
+ function Ce(e, t) {
307
+ var n = xe(de++, 7);
308
+ return ke(n.__H, t) && (n.__ = e(), n.__H = t, n.__h = e), n.__;
309
309
  }
310
- function H(e, t) {
311
- return fe = 8, Se(function() {
310
+ function V(e, t) {
311
+ return I = 8, Ce(function() {
312
312
  return e;
313
313
  }, t);
314
314
  }
315
- function Ce() {
316
- for (var e; e = pe.shift();) {
315
+ function we() {
316
+ for (var e; e = me.shift();) {
317
317
  var t = e.__H;
318
318
  if (e.__P && t) try {
319
- t.__h.some(Ee), t.__h.some(De), t.__h = [];
319
+ t.__h.some(De), t.__h.some(Oe), t.__h = [];
320
320
  } catch (n) {
321
- t.__h = [], R.__e(n, e.__v);
321
+ t.__h = [], L.__e(n, e.__v);
322
322
  }
323
323
  }
324
324
  }
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) {
325
+ L.__b = function(e) {
326
+ F = 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), de = 0;
331
+ var t = (F = e.__c).__H;
332
+ t && (fe === F ? (t.__h = [], F.__h = [], t.__.some(function(e) {
333
333
  e.__N && (e.__ = e.__N), e.u = e.__N = void 0;
334
- })) : (t.__h.some(Ee), t.__h.some(De), t.__h = [], I = 0)), ue = L;
335
- }, R.diffed = function(e) {
336
- ge && ge(e);
334
+ })) : (t.__h.some(De), t.__h.some(Oe), t.__h = [], de = 0)), fe = F;
335
+ }, L.diffed = function(e) {
336
+ _e && _e(e);
337
337
  var t = e.__c;
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) {
338
+ t && t.__H && (t.__H.__h.length && (me.push(t) !== 1 && pe === L.requestAnimationFrame || ((pe = L.requestAnimationFrame) || Ee)(we)), t.__H.__.some(function(e) {
339
339
  e.u && (e.__H = e.u), e.u = void 0;
340
- })), ue = L = null;
341
- }, R.__c = function(e, t) {
340
+ })), fe = F = null;
341
+ }, L.__c = function(e, t) {
342
342
  t.some(function(e) {
343
343
  try {
344
- e.__h.some(Ee), e.__h = e.__h.filter(function(e) {
345
- return !e.__ || De(e);
344
+ e.__h.some(De), e.__h = e.__h.filter(function(e) {
345
+ return !e.__ || Oe(e);
346
346
  });
347
347
  } catch (n) {
348
348
  t.some(function(e) {
349
349
  e.__h &&= [];
350
- }), t = [], R.__e(n, e.__v);
350
+ }), t = [], L.__e(n, e.__v);
351
351
  }
352
- }), _e && _e(e, t);
353
- }, R.unmount = function(e) {
354
- ve && ve(e);
352
+ }), ve && ve(e, t);
353
+ }, L.unmount = function(e) {
354
+ ye && ye(e);
355
355
  var t, n = e.__c;
356
356
  n && n.__H && (n.__H.__.some(function(e) {
357
357
  try {
358
- Ee(e);
358
+ De(e);
359
359
  } catch (e) {
360
360
  t = e;
361
361
  }
362
- }), n.__H = void 0, t && R.__e(t, n.__v));
362
+ }), n.__H = void 0, t && L.__e(t, n.__v));
363
363
  };
364
- var we = typeof requestAnimationFrame == "function";
365
- function Te(e) {
364
+ var Te = typeof requestAnimationFrame == "function";
365
+ function Ee(e) {
366
366
  var t, n = function() {
367
- clearTimeout(r), we && cancelAnimationFrame(t), setTimeout(e);
367
+ clearTimeout(r), Te && cancelAnimationFrame(t), setTimeout(e);
368
368
  }, r = setTimeout(n, 35);
369
- we && (t = requestAnimationFrame(n));
370
- }
371
- function Ee(e) {
372
- var t = L, n = e.__c;
373
- typeof n == "function" && (e.__c = void 0, n()), L = t;
369
+ Te && (t = requestAnimationFrame(n));
374
370
  }
375
371
  function De(e) {
376
- var t = L;
377
- e.__c = e.__(), L = t;
372
+ var t = F, n = e.__c;
373
+ typeof n == "function" && (e.__c = void 0, n()), F = t;
378
374
  }
379
- function Oe(e, t) {
375
+ function Oe(e) {
376
+ var t = F;
377
+ e.__c = e.__(), F = t;
378
+ }
379
+ function ke(e, t) {
380
380
  return !e || e.length !== t.length || t.some(function(t, n) {
381
381
  return t !== e[n];
382
382
  });
383
383
  }
384
- function ke(e, t) {
384
+ function Ae(e, t) {
385
385
  return typeof t == "function" ? t(e) : t;
386
386
  }
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) {
387
+ for (var je = "1.37.0", H = [], U = [], Me = Uint8Array, Ne = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", Pe = 0, Fe = Ne.length; Pe < Fe; ++Pe) H[Pe] = Ne[Pe], U[Ne.charCodeAt(Pe)] = Pe;
388
+ U[45] = 62, U[95] = 63;
389
+ function Ie(e) {
390
390
  var t = e.length;
391
391
  if (t % 4 > 0) throw Error("Invalid string. Length must be a multiple of 4");
392
392
  var n = e.indexOf("=");
@@ -394,28 +394,28 @@ function Fe(e) {
394
394
  var r = n === t ? 0 : 4 - n % 4;
395
395
  return [n, r];
396
396
  }
397
- function Ie(e, t, n) {
397
+ function Le(e, t, n) {
398
398
  return (t + n) * 3 / 4 - n;
399
399
  }
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
- }
405
400
  function Re(e) {
406
- return U[e >> 18 & 63] + U[e >> 12 & 63] + U[e >> 6 & 63] + U[e & 63];
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;
407
404
  }
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));
405
+ function ze(e) {
406
+ return H[e >> 18 & 63] + H[e >> 12 & 63] + H[e >> 6 & 63] + H[e & 63];
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));
410
410
  return i.join("");
411
411
  }
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("");
412
+ function Ve(e) {
413
+ for (var t, n = e.length, r = n % 3, i = [], a = 16383, o = 0, s = n - r; o < s; o += a) i.push(Be(e, o, o + a > s ? s : o + a));
414
+ return r === 1 ? (t = e[n - 1], i.push(H[t >> 2] + H[t << 4 & 63] + "==")) : r === 2 && (t = (e[n - 2] << 8) + e[n - 1], i.push(H[t >> 10] + H[t >> 4 & 63] + H[t << 2 & 63] + "=")), i.join("");
415
415
  }
416
416
  //#endregion
417
417
  //#region ../../node_modules/.pnpm/convex@1.37.0_react@19.2.6/node_modules/convex/dist/esm/common/index.js
418
- function Ve(e) {
418
+ function W(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 Be(n);
450
+ return Ve(n);
451
451
  }
452
452
  function Qe(e) {
453
- let t = Le(e);
453
+ let t = Re(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), Be(new Uint8Array(t));
462
+ return new DataView(t).setBigInt64(0, e, !0), Ve(new Uint8Array(t));
463
463
  }
464
464
  function et(e) {
465
- let t = Le(e);
465
+ let t = Re(e);
466
466
  if (t.byteLength !== 8) throw Error(`Received ${t.byteLength} bytes, expected 8 for $integer`);
467
467
  return new DataView(t.buffer).getBigInt64(0, !0);
468
468
  }
@@ -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 Le(e.$bytes).buffer;
487
+ return Re(e.$bytes).buffer;
488
488
  }
489
489
  if (n === "$integer") {
490
490
  if (typeof e.$integer != "string") throw Error(`Malformed $integer field on ${e}`);
@@ -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 = Le(e.$float);
495
+ let t = Re(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: Be(new Uint8Array(t)) };
529
+ return new DataView(t).setFloat64(0, e, We), { $float: Ve(new Uint8Array(t)) };
530
530
  } else return e;
531
531
  if (typeof e == "boolean" || typeof e == "string") return e;
532
- if (e instanceof ArrayBuffer) return { $bytes: Be(new Uint8Array(e)) };
532
+ if (e instanceof ArrayBuffer) return { $bytes: Ve(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 = Ve(n[0]), i = K(t), a = this.queryResults.get(Mt(i, r));
1050
+ let r = W(n[0]), i = K(t), a = this.queryResults.get(Mt(i, r));
1051
1051
  if (a !== void 0) return e.queryValue(a.result);
1052
1052
  }
1053
1053
  getAllQueries(t) {
@@ -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 = Ve(t), i = K(e), a = Mt(i, r), o;
1062
+ let r = W(t), i = K(e), a = Mt(i, r), o;
1063
1063
  o = n === void 0 ? void 0 : {
1064
1064
  success: !0,
1065
1065
  value: n,
@@ -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 = Le(e);
1228
+ let t = Re(e);
1229
1229
  return rn.fromBytesLE(Array.from(t));
1230
1230
  }
1231
1231
  function hn(e) {
1232
- return Be(new Uint8Array(e.toBytesLE()));
1232
+ return Ve(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/${Ae}/sync`;
1871
+ let l = `${c}://${o}/api/${je}/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 = Ve(t), { modification: i, queryToken: a, unsubscribe: o } = this.state.subscribe(e, r, n?.journal, n?.componentPath);
2025
+ let r = W(t), { modification: i, queryToken: a, unsubscribe: o } = this.state.subscribe(e, r, n?.journal, n?.componentPath);
2026
2026
  return i !== null && this.webSocketManager.sendMessage(i), {
2027
2027
  queryToken: a,
2028
2028
  unsubscribe: () => {
@@ -2032,7 +2032,7 @@ var 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, Ve(t));
2035
+ let n = Mt(e, W(t));
2036
2036
  return this.optimisticQueryResults.queryResult(n);
2037
2037
  }
2038
2038
  localQueryResultByToken(e) {
@@ -2042,11 +2042,11 @@ var 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, Ve(t));
2045
+ let n = Mt(e, W(t));
2046
2046
  return this.optimisticQueryResults.queryLogs(n);
2047
2047
  }
2048
2048
  queryJournal(e, t) {
2049
- let n = Mt(e, Ve(t));
2049
+ let n = Mt(e, W(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 = Ve(t);
2081
+ let i = W(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 = Ve(t), i = this.nextRequestId;
2128
+ let r = W(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-${Ae}`
2170
+ "Convex-Client": `npm-${je}`
2171
2171
  },
2172
2172
  body: JSON.stringify({ event: "LongWebsocketDisconnect" })
2173
2173
  }).then((e) => {
@@ -2858,7 +2858,7 @@ async function Nr(e, t) {
2858
2858
  let i = Math.max(0, window.screenX + (window.outerWidth - 420) / 2), a = Math.max(0, window.screenY + (window.outerHeight - 560) / 2), o = window.open(r, "markup-auth", `width=420,height=560,left=${i},top=${a}`);
2859
2859
  return o ? new Promise((e, t) => {
2860
2860
  function r() {
2861
- window.removeEventListener("message", i), clearInterval(a);
2861
+ window.removeEventListener("message", i), clearInterval(a), clearTimeout(s);
2862
2862
  }
2863
2863
  function i(i) {
2864
2864
  if (i.origin !== n) return;
@@ -2871,7 +2871,9 @@ async function Nr(e, t) {
2871
2871
  }
2872
2872
  let a = window.setInterval(() => {
2873
2873
  o.closed && (r(), t(/* @__PURE__ */ Error("Sign-in cancelled")));
2874
- }, 500);
2874
+ }, 500), s = window.setTimeout(() => {
2875
+ r(), t(/* @__PURE__ */ Error("Sign-in timed out"));
2876
+ }, 3e5);
2875
2877
  window.addEventListener("message", i);
2876
2878
  }) : Promise.reject(/* @__PURE__ */ Error("Popup blocked — allow popups for this site to sign in"));
2877
2879
  }
@@ -3384,8 +3386,59 @@ function Q(...e) {
3384
3386
  return e.filter(Boolean).join(" ");
3385
3387
  }
3386
3388
  //#endregion
3389
+ //#region src/runtime/use-drag.ts
3390
+ function na(e) {
3391
+ let t = B(e);
3392
+ t.current = e;
3393
+ let [n, r] = R(!1), i = B(!1);
3394
+ return {
3395
+ onPointerDown: V((e) => {
3396
+ let n = t.current;
3397
+ if (n.stopPropagation && e.stopPropagation(), e.button !== 0 || n.shouldStart && !n.shouldStart(e)) return;
3398
+ let a = e.currentTarget;
3399
+ if (!a) return;
3400
+ let o = (n.targetRef?.current ?? a).getBoundingClientRect(), s = e.clientX, c = e.clientY, l = o.left, u = o.top, d = o.width, f = o.height, p = n.threshold ?? 4, m = n.margin ?? 8, h = e.pointerId, g = !1, _ = null;
3401
+ i.current = !1;
3402
+ try {
3403
+ a.setPointerCapture(h);
3404
+ } catch {}
3405
+ function v() {
3406
+ try {
3407
+ a?.releasePointerCapture(h);
3408
+ } catch {}
3409
+ a?.removeEventListener("pointermove", y), a?.removeEventListener("pointerup", b), a?.removeEventListener("pointercancel", x), r(!1);
3410
+ }
3411
+ function y(e) {
3412
+ if (e.pointerId !== h) return;
3413
+ let n = e.clientX - s, a = e.clientY - c;
3414
+ if (!g) {
3415
+ if (Math.abs(n) + Math.abs(a) < p) return;
3416
+ g = !0, i.current = !0, r(!0), t.current.onStart?.();
3417
+ }
3418
+ let o = Math.max(m, window.innerWidth - d - m), v = Math.max(m, window.innerHeight - f - m), y = {
3419
+ left: ra(l + n, m, o),
3420
+ top: ra(u + a, m, v)
3421
+ };
3422
+ _ = y, t.current.onMove(y);
3423
+ }
3424
+ function b(e) {
3425
+ e.pointerId === h && (v(), g && _ && t.current.onEnd?.(_, e));
3426
+ }
3427
+ function x(e) {
3428
+ e.pointerId === h && (v(), i.current = !1, t.current.onCancel?.());
3429
+ }
3430
+ a.addEventListener("pointermove", y), a.addEventListener("pointerup", b), a.addEventListener("pointercancel", x);
3431
+ }, []),
3432
+ isDragging: n,
3433
+ consumeClickIfDragged: V(() => i.current ? (i.current = !1, !0) : !1, [])
3434
+ };
3435
+ }
3436
+ function ra(e, t, n) {
3437
+ return Math.max(t, Math.min(n, e));
3438
+ }
3439
+ //#endregion
3387
3440
  //#region ../../node_modules/.pnpm/preact@10.29.1/node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js
3388
- var na = 0;
3441
+ var ia = 0;
3389
3442
  Array.isArray;
3390
3443
  function $(e, n, r, i, a, o) {
3391
3444
  n ||= {};
@@ -3402,7 +3455,7 @@ function $(e, n, r, i, a, o) {
3402
3455
  __e: null,
3403
3456
  __c: null,
3404
3457
  constructor: void 0,
3405
- __v: --na,
3458
+ __v: --ia,
3406
3459
  __i: -1,
3407
3460
  __u: 0,
3408
3461
  __source: a,
@@ -3413,7 +3466,7 @@ function $(e, n, r, i, a, o) {
3413
3466
  }
3414
3467
  //#endregion
3415
3468
  //#region src/runtime/ui/icons.tsx
3416
- function ra({ size: e = 16 }) {
3469
+ function aa({ size: e = 16 }) {
3417
3470
  return /* @__PURE__ */ $("svg", {
3418
3471
  width: e,
3419
3472
  height: e,
@@ -3423,7 +3476,7 @@ function ra({ size: e = 16 }) {
3423
3476
  children: /* @__PURE__ */ $("path", { d: "M63.4561 0.00557731C70.6277 -0.0175584 76.9025 1.04088 83.5898 3.71066C97.7952 9.43043 109.186 20.5001 115.311 34.5359C119.708 44.8002 120.746 54.7869 119.156 65.8171C116.857 82.7956 105.129 98.8382 90.0566 106.846C83.4394 110.362 74.7336 113.029 67.2051 113.271C62.4204 113.425 61.1274 113.32 56.6807 115.204C50.2035 117.858 43.6874 120.417 37.1348 122.879C34.8442 123.763 32.3203 124.902 29.9404 125.51C29.4023 125.648 28.1978 125.009 27.7598 124.646C26.9046 123.951 27.0582 122.505 27.0264 121.484C26.8123 114.646 27.3302 107.458 26.8604 100.656C25.1578 98.6714 22.4026 96.603 20.3086 94.1989C12.1853 84.8731 7.05334 73.9949 6.18164 61.6101C4.95583 46.292 9.97176 31.1285 20.0908 19.5632C29.989 8.13202 44.0369 1.11921 59.1221 0.0788195C60.2694 -0.0356049 62.2637 0.00944821 63.4561 0.00557731ZM92.2676 55.7497C91.5754 39.5314 77.8207 26.9725 61.6064 27.7536C45.5175 28.5287 33.0758 42.1537 33.7627 58.2468C34.4496 74.3398 48.007 86.8553 64.1035 86.2566C80.3254 85.6533 92.9599 71.968 92.2676 55.7497Z" })
3424
3477
  });
3425
3478
  }
3426
- function ia({ size: e = 16 }) {
3479
+ function oa({ size: e = 16 }) {
3427
3480
  return /* @__PURE__ */ $("svg", {
3428
3481
  width: e,
3429
3482
  height: e,
@@ -3432,7 +3485,7 @@ function ia({ size: e = 16 }) {
3432
3485
  children: /* @__PURE__ */ $("path", { d: "M6.28 5.22a.75.75 0 0 0-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 1 0 1.06 1.06L10 11.06l3.72 3.72a.75.75 0 1 0 1.06-1.06L11.06 10l3.72-3.72a.75.75 0 0 0-1.06-1.06L10 8.94 6.28 5.22Z" })
3433
3486
  });
3434
3487
  }
3435
- function aa({ size: e = 16 }) {
3488
+ function sa({ size: e = 16 }) {
3436
3489
  return /* @__PURE__ */ $("svg", {
3437
3490
  width: e,
3438
3491
  height: e,
@@ -3441,7 +3494,7 @@ function aa({ size: e = 16 }) {
3441
3494
  children: /* @__PURE__ */ $("path", { d: "M3 10a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0ZM8.5 10a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0ZM15.5 8.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3Z" })
3442
3495
  });
3443
3496
  }
3444
- function oa({ size: e = 16 }) {
3497
+ function ca({ size: e = 16 }) {
3445
3498
  return /* @__PURE__ */ $("svg", {
3446
3499
  width: e,
3447
3500
  height: e,
@@ -3454,7 +3507,7 @@ function oa({ size: e = 16 }) {
3454
3507
  })
3455
3508
  });
3456
3509
  }
3457
- function sa({ size: e = 16 }) {
3510
+ function la({ size: e = 16 }) {
3458
3511
  return /* @__PURE__ */ $("svg", {
3459
3512
  width: e,
3460
3513
  height: e,
@@ -3468,7 +3521,7 @@ function sa({ size: e = 16 }) {
3468
3521
  })
3469
3522
  });
3470
3523
  }
3471
- function ca({ size: e = 16 }) {
3524
+ function ua({ size: e = 16 }) {
3472
3525
  return /* @__PURE__ */ $("svg", {
3473
3526
  width: e,
3474
3527
  height: e,
@@ -3477,7 +3530,7 @@ function ca({ size: e = 16 }) {
3477
3530
  children: /* @__PURE__ */ $("path", { d: "M2.87 2.298a.75.75 0 0 0-.812 1.021L3.39 6.624a1 1 0 0 0 .928.626H8.25a.75.75 0 0 1 0 1.5H4.318a1 1 0 0 0-.927.626l-1.333 3.305a.75.75 0 0 0 .811 1.022 24.89 24.89 0 0 0 11.668-5.115.75.75 0 0 0 0-1.175A24.89 24.89 0 0 0 2.869 2.298Z" })
3478
3531
  });
3479
3532
  }
3480
- function la({ size: e = 16 }) {
3533
+ function da({ size: e = 16 }) {
3481
3534
  return /* @__PURE__ */ $("svg", {
3482
3535
  width: e,
3483
3536
  height: e,
@@ -3489,79 +3542,48 @@ function la({ size: e = 16 }) {
3489
3542
  }
3490
3543
  //#endregion
3491
3544
  //#region src/runtime/ui/fab.tsx
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 = V(null), [s, c] = z(null), [l, u] = z(!1), d = V(!1);
3494
- function f(e) {
3495
- if (e.stopPropagation(), e.button !== 0) return;
3496
- let t = o.current;
3497
- if (!t) return;
3498
- let n = t, a = n.getBoundingClientRect(), s = e.clientX, l = e.clientY, f = a.left, p = a.top, m = a.width, h = a.height, g = !1;
3499
- d.current = !1;
3500
- try {
3501
- n.setPointerCapture(e.pointerId);
3502
- } catch {}
3503
- function _(e) {
3504
- let t = e.clientX - s, n = e.clientY - l;
3505
- if (!g) {
3506
- if (Math.abs(t) + Math.abs(n) < 4) return;
3507
- g = !0, d.current = !0, u(!0);
3508
- }
3509
- let r = Math.max(8, window.innerWidth - m - 8), i = Math.max(8, window.innerHeight - h - 8);
3510
- c({
3511
- left: da(f + t, 8, r),
3512
- top: da(p + n, 8, i)
3513
- });
3514
- }
3515
- function v(e) {
3516
- try {
3517
- n.releasePointerCapture(e.pointerId);
3518
- } catch {}
3519
- if (n.removeEventListener("pointermove", _), n.removeEventListener("pointerup", v), n.removeEventListener("pointercancel", v), g) {
3520
- let t = e.clientX < window.innerWidth / 2 ? "bottom-left" : "bottom-right";
3521
- t !== r && i?.(t);
3545
+ function fa({ active: e, onToggle: t, onHide: n, position: r = "bottom-right", onPositionChange: i }) {
3546
+ let a = r === "bottom-left" ? "markup-fab-left" : "markup-fab-right", [o, s] = R(null), { onPointerDown: c, isDragging: l, consumeClickIfDragged: u } = na({
3547
+ stopPropagation: !0,
3548
+ onMove: s,
3549
+ onEnd: (e, t) => {
3550
+ let n = t.clientX < window.innerWidth / 2 ? "bottom-left" : "bottom-right";
3551
+ n !== r && i?.(n), s(null);
3552
+ },
3553
+ onCancel: () => s(null)
3554
+ });
3555
+ function d(e) {
3556
+ if (e.preventDefault(), e.stopPropagation(), !u()) {
3557
+ if ((e.metaKey || e.ctrlKey) && n) {
3558
+ n();
3559
+ return;
3522
3560
  }
3523
- c(null), u(!1);
3561
+ t();
3524
3562
  }
3525
- n.addEventListener("pointermove", _), n.addEventListener("pointerup", v), n.addEventListener("pointercancel", v);
3526
- }
3527
- function p(e) {
3528
- if (e.preventDefault(), e.stopPropagation(), d.current) {
3529
- d.current = !1;
3530
- return;
3531
- }
3532
- if ((e.metaKey || e.ctrlKey) && n) {
3533
- n();
3534
- return;
3535
- }
3536
- t();
3537
3563
  }
3538
3564
  return /* @__PURE__ */ $("button", {
3539
- ref: o,
3540
3565
  type: "button",
3541
- class: Q("markup-fab", !s && a, s && "is-floating", l && "is-dragging", e && "is-active"),
3542
- style: s ? {
3543
- left: `${s.left}px`,
3544
- top: `${s.top}px`
3566
+ class: Q("markup-fab", !o && a, o && "is-floating", l && "is-dragging", e && "is-active"),
3567
+ style: o ? {
3568
+ left: `${o.left}px`,
3569
+ top: `${o.top}px`
3545
3570
  } : void 0,
3546
- onClick: p,
3547
- onPointerDown: f,
3571
+ onClick: d,
3572
+ onPointerDown: c,
3548
3573
  "aria-label": e ? "Cancel placing markup" : "Leave a markup",
3549
3574
  "aria-pressed": e,
3550
3575
  children: [/* @__PURE__ */ $("span", {
3551
3576
  class: "markup-fab-icon",
3552
- children: $(e ? ia : ra, { size: 16 })
3577
+ children: $(e ? oa : aa, { size: 16 })
3553
3578
  }), /* @__PURE__ */ $("span", {
3554
3579
  class: "markup-fab-label",
3555
3580
  children: e ? "Cancel" : "Markup"
3556
3581
  })]
3557
3582
  });
3558
3583
  }
3559
- function da(e, t, n) {
3560
- return Math.max(t, Math.min(n, e));
3561
- }
3562
3584
  //#endregion
3563
3585
  //#region src/runtime/use-focus-trap.ts
3564
- var fa = [
3586
+ var pa = [
3565
3587
  "a[href]",
3566
3588
  "button:not([disabled])",
3567
3589
  "input:not([disabled])",
@@ -3569,14 +3591,14 @@ var fa = [
3569
3591
  "textarea:not([disabled])",
3570
3592
  "[tabindex]:not([tabindex=\"-1\"])"
3571
3593
  ].join(",");
3572
- function pa(e, t) {
3573
- B(() => {
3594
+ function ma(e, t) {
3595
+ z(() => {
3574
3596
  if (!t) return;
3575
3597
  let n = e.current;
3576
3598
  if (!n) return;
3577
3599
  function r(e) {
3578
3600
  if (e.key !== "Tab") return;
3579
- let t = Array.from(n.querySelectorAll(fa)), r = t[0], i = t[t.length - 1];
3601
+ let t = Array.from(n.querySelectorAll(pa)), r = t[0], i = t[t.length - 1];
3580
3602
  if (!r || !i) return;
3581
3603
  let a = n.getRootNode(), o = a instanceof ShadowRoot ? a.activeElement : document.activeElement;
3582
3604
  (e.shiftKey ? o === r : o === i) && (e.preventDefault(), (e.shiftKey ? i : r).focus());
@@ -3586,27 +3608,27 @@ function pa(e, t) {
3586
3608
  }
3587
3609
  //#endregion
3588
3610
  //#region src/runtime/ui/author-prompt.tsx
3589
- function ma({ pending: e, connecting: t = !1, onSubmit: n, onCancel: r, onSignIn: i }) {
3590
- let [a, o] = z(""), [s, c] = z(""), l = V(null);
3591
- B(() => {
3592
- l.current?.focus();
3611
+ function ha({ pending: e, connecting: t = !1, signingIn: n = !1, onSubmit: r, onCancel: i, onSignIn: a }) {
3612
+ let [o, s] = R(""), [c, l] = R(""), u = B(null);
3613
+ z(() => {
3614
+ u.current?.focus();
3593
3615
  }, []);
3594
- function u(r) {
3595
- r?.preventDefault();
3596
- let i = a.trim();
3597
- !i || e || t || n(i, s.trim() || void 0);
3616
+ function d(n) {
3617
+ n?.preventDefault();
3618
+ let i = o.trim();
3619
+ !i || e || t || r(i, c.trim() || void 0);
3598
3620
  }
3599
- let d = e || t;
3621
+ let f = e || t;
3600
3622
  return /* @__PURE__ */ $("form", {
3601
3623
  class: "markup-author-prompt",
3602
- onSubmit: u,
3624
+ onSubmit: d,
3603
3625
  children: [
3604
- i ? /* @__PURE__ */ $(S, { children: [/* @__PURE__ */ $("button", {
3626
+ a ? /* @__PURE__ */ $(S, { children: [/* @__PURE__ */ $("button", {
3605
3627
  type: "button",
3606
3628
  class: "markup-btn markup-btn-primary",
3607
- onClick: i,
3608
- disabled: e,
3609
- children: "Sign in with Markup"
3629
+ onClick: a,
3630
+ disabled: e || n,
3631
+ children: n ? "Signing in…" : "Sign in with Markup"
3610
3632
  }), /* @__PURE__ */ $("p", {
3611
3633
  class: "markup-author-divider",
3612
3634
  children: "or continue as a guest"
@@ -3615,16 +3637,16 @@ function ma({ pending: e, connecting: t = !1, onSubmit: n, onCancel: r, onSignIn
3615
3637
  children: "who's leaving feedback?"
3616
3638
  }),
3617
3639
  /* @__PURE__ */ $("input", {
3618
- ref: l,
3640
+ ref: u,
3619
3641
  class: "markup-input",
3620
3642
  type: "text",
3621
3643
  name: "name",
3622
3644
  placeholder: "Your name",
3623
- value: a,
3645
+ value: o,
3624
3646
  maxLength: 80,
3625
3647
  autoComplete: "name",
3626
- onInput: (e) => o(e.currentTarget.value),
3627
- disabled: d,
3648
+ onInput: (e) => s(e.currentTarget.value),
3649
+ disabled: f,
3628
3650
  "data-1p-ignore": !0
3629
3651
  }),
3630
3652
  /* @__PURE__ */ $("input", {
@@ -3632,11 +3654,11 @@ function ma({ pending: e, connecting: t = !1, onSubmit: n, onCancel: r, onSignIn
3632
3654
  type: "email",
3633
3655
  name: "email",
3634
3656
  placeholder: "Email (optional)",
3635
- value: s,
3657
+ value: c,
3636
3658
  maxLength: 254,
3637
3659
  autoComplete: "email",
3638
- onInput: (e) => c(e.currentTarget.value),
3639
- disabled: d,
3660
+ onInput: (e) => l(e.currentTarget.value),
3661
+ disabled: f,
3640
3662
  "data-1p-ignore": !0
3641
3663
  }),
3642
3664
  t ? /* @__PURE__ */ $("p", {
@@ -3650,13 +3672,13 @@ function ma({ pending: e, connecting: t = !1, onSubmit: n, onCancel: r, onSignIn
3650
3672
  children: [/* @__PURE__ */ $("button", {
3651
3673
  type: "button",
3652
3674
  class: "markup-btn markup-btn-ghost",
3653
- onClick: r,
3675
+ onClick: i,
3654
3676
  disabled: e,
3655
3677
  children: "Cancel"
3656
3678
  }), /* @__PURE__ */ $("button", {
3657
3679
  type: "submit",
3658
3680
  class: "markup-btn markup-btn-primary",
3659
- disabled: !a.trim() || d,
3681
+ disabled: !o.trim() || f,
3660
3682
  children: "Continue"
3661
3683
  })]
3662
3684
  })
@@ -3665,18 +3687,18 @@ function ma({ pending: e, connecting: t = !1, onSubmit: n, onCancel: r, onSignIn
3665
3687
  }
3666
3688
  //#endregion
3667
3689
  //#region src/runtime/ui/composer.tsx
3668
- var ha = 4e3;
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] = z(""), l = V(null), u = V(!1);
3671
- B(() => {
3690
+ var ga = 4e3;
3691
+ function _a({ label: e, placeholder: t = "Leave feedback…", submitLabel: n = "Post", initialFocus: r = !0, pending: i, error: a, onSubmit: o }) {
3692
+ let [s, c] = R(""), l = B(null), u = B(!1);
3693
+ z(() => {
3672
3694
  r && l.current?.focus();
3673
- }, [r]), B(() => {
3695
+ }, [r]), z(() => {
3674
3696
  let e = l.current;
3675
3697
  e && (e.style.height = "auto", e.style.height = `${Math.min(e.scrollHeight, 160)}px`);
3676
- }, [s]), B(() => {
3698
+ }, [s]), z(() => {
3677
3699
  u.current && !i && !a && (c(""), l.current?.focus()), u.current = i;
3678
3700
  }, [i, a]);
3679
- let d = ha - s.length, f = d < 0;
3701
+ let d = ga - s.length, f = d < 0;
3680
3702
  function p(e) {
3681
3703
  e?.preventDefault();
3682
3704
  let t = s.trim();
@@ -3694,7 +3716,7 @@ function ga({ label: e, placeholder: t = "Leave feedback…", submitLabel: n = "
3694
3716
  "aria-label": i ? "Sending…" : n,
3695
3717
  title: i ? "Sending…" : n,
3696
3718
  tabIndex: e,
3697
- children: /* @__PURE__ */ $(ca, { size: 14 })
3719
+ children: /* @__PURE__ */ $(ua, { size: 14 })
3698
3720
  });
3699
3721
  }
3700
3722
  return /* @__PURE__ */ $("form", {
@@ -3707,7 +3729,7 @@ function ga({ label: e, placeholder: t = "Leave feedback…", submitLabel: n = "
3707
3729
  class: "markup-composer-input",
3708
3730
  placeholder: t,
3709
3731
  rows: h ? 2 : 1,
3710
- maxLength: ha + 100,
3732
+ maxLength: ga + 100,
3711
3733
  value: s,
3712
3734
  onInput: (e) => c(e.currentTarget.value),
3713
3735
  onKeyDown: m,
@@ -3743,67 +3765,46 @@ function ga({ label: e, placeholder: t = "Leave feedback…", submitLabel: n = "
3743
3765
  }
3744
3766
  //#endregion
3745
3767
  //#region src/runtime/ui/new-thread-popover.tsx
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 }) {
3747
- let p = V(null);
3748
- pa(p, !0);
3749
- let [m, h] = z(!1), [g, _] = z(null), [v, y] = z(null), [b, x] = z(!1);
3750
- B(() => {
3751
- if (!s) return;
3752
- let e = URL.createObjectURL(s);
3753
- return _(e), () => URL.revokeObjectURL(e);
3754
- }, [s]), B(() => {
3755
- let e = p.current;
3768
+ function va({ pageX: e, pageY: t, authorName: n, isVerified: r, identityResolving: i, signingIn: a, pending: o, error: s, screenshot: c, screenshotCapturing: l, onAuthor: u, onSignIn: d, onSubmit: f, onClose: p }) {
3769
+ let m = B(null);
3770
+ ma(m, !0);
3771
+ let [h, g] = R(!1), [_, v] = R(null), [y, b] = R(null), { onPointerDown: x, isDragging: S } = na({
3772
+ targetRef: m,
3773
+ shouldStart: (e) => !e.target?.closest("button, a, input, textarea, select"),
3774
+ onMove: b
3775
+ });
3776
+ z(() => {
3777
+ if (!c) {
3778
+ v(null);
3779
+ return;
3780
+ }
3781
+ let e = URL.createObjectURL(c);
3782
+ return v(e), () => URL.revokeObjectURL(e);
3783
+ }, [c]), z(() => {
3784
+ let e = m.current;
3756
3785
  if (!e) return;
3757
3786
  if (typeof e.showPopover == "function" && !e.matches(":popover-open")) try {
3758
3787
  e.showPopover();
3759
3788
  } catch {}
3760
3789
  function t(e) {
3761
- e.newState === "closed" && f();
3790
+ e.newState === "closed" && p();
3762
3791
  }
3763
3792
  return e.addEventListener("toggle", t), () => e.removeEventListener("toggle", t);
3764
- }, [f]);
3765
- let S = va(e - window.scrollX + 16, 12, window.innerWidth - 320 - 12), C = va(t - window.scrollY - 16, 12, window.innerHeight - 220), w = s != null, T = c || w;
3766
- function E(e) {
3767
- if (e.button !== 0 || e.target?.closest("button, a, input, textarea, select")) return;
3768
- let t = p.current;
3769
- if (!t) return;
3770
- 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;
3771
- try {
3772
- l.setPointerCapture(e.pointerId);
3773
- } catch {}
3774
- function d(e) {
3775
- let t = e.clientX - r, n = e.clientY - i;
3776
- if (!u) {
3777
- if (Math.abs(t) + Math.abs(n) < 4) return;
3778
- u = !0, x(!0);
3779
- }
3780
- let l = Math.max(8, window.innerWidth - s - 8), d = Math.max(8, window.innerHeight - c - 8);
3781
- y({
3782
- left: va(a + t, 8, l),
3783
- top: va(o + n, 8, d)
3784
- });
3785
- }
3786
- function f(e) {
3787
- try {
3788
- l.releasePointerCapture(e.pointerId);
3789
- } catch {}
3790
- l.removeEventListener("pointermove", d), l.removeEventListener("pointerup", f), l.removeEventListener("pointercancel", f), x(!1);
3791
- }
3792
- l.addEventListener("pointermove", d), l.addEventListener("pointerup", f), l.addEventListener("pointercancel", f);
3793
- }
3793
+ }, [p]);
3794
+ let C = ya(e - window.scrollX + 16, 12, window.innerWidth - 320 - 12), w = ya(t - window.scrollY - 16, 12, window.innerHeight - 220), T = c != null, E = l || T;
3794
3795
  return /* @__PURE__ */ $("div", {
3795
- ref: p,
3796
- class: Q("markup-popover", v && "is-floating", b && "is-dragging"),
3796
+ ref: m,
3797
+ class: Q("markup-popover", y && "is-floating", S && "is-dragging"),
3797
3798
  popover: "auto",
3798
3799
  style: {
3799
- "--markup-pop-x": `${v?.left ?? S}px`,
3800
- "--markup-pop-y": `${v?.top ?? C}px`
3800
+ "--markup-pop-x": `${y?.left ?? C}px`,
3801
+ "--markup-pop-y": `${y?.top ?? w}px`
3801
3802
  },
3802
3803
  role: "dialog",
3803
3804
  "aria-label": "New markup",
3804
3805
  children: [/* @__PURE__ */ $("header", {
3805
3806
  class: "markup-popover-header",
3806
- onPointerDown: E,
3807
+ onPointerDown: x,
3807
3808
  children: [/* @__PURE__ */ $("span", {
3808
3809
  class: "markup-eyebrow",
3809
3810
  children: "new · markup"
@@ -3811,15 +3812,16 @@ function _a({ pageX: e, pageY: t, authorName: n, isVerified: r, identityResolvin
3811
3812
  type: "button",
3812
3813
  class: "markup-icon-btn",
3813
3814
  "aria-label": "Discard pin",
3814
- onClick: f,
3815
- children: /* @__PURE__ */ $(ia, { size: 16 })
3815
+ onClick: p,
3816
+ children: /* @__PURE__ */ $(oa, { size: 16 })
3816
3817
  })]
3817
- }), n == null ? /* @__PURE__ */ $(ma, {
3818
- pending: a,
3818
+ }), n == null ? /* @__PURE__ */ $(ha, {
3819
+ pending: o,
3819
3820
  connecting: i,
3820
- onSubmit: l,
3821
- onCancel: f,
3822
- onSignIn: u
3821
+ signingIn: a,
3822
+ onSubmit: u,
3823
+ onCancel: p,
3824
+ onSignIn: d
3823
3825
  }) : /* @__PURE__ */ $("div", {
3824
3826
  class: "markup-popover-body",
3825
3827
  children: [
@@ -3837,17 +3839,17 @@ function _a({ pageX: e, pageY: t, authorName: n, isVerified: r, identityResolvin
3837
3839
  }) : null
3838
3840
  ]
3839
3841
  }),
3840
- /* @__PURE__ */ $(ga, {
3842
+ /* @__PURE__ */ $(_a, {
3841
3843
  label: "Feedback",
3842
3844
  placeholder: "What's wrong, missing, or worth noting?",
3843
3845
  submitLabel: "Post markup",
3844
- pending: a,
3845
- error: o,
3846
- onSubmit: (e) => d(e, m && w)
3846
+ pending: o,
3847
+ error: s,
3848
+ onSubmit: (e) => f(e, h && T)
3847
3849
  }),
3848
- T ? /* @__PURE__ */ $("div", {
3850
+ E ? /* @__PURE__ */ $("div", {
3849
3851
  class: "markup-screenshot-row",
3850
- children: c ? /* @__PURE__ */ $("span", {
3852
+ children: l ? /* @__PURE__ */ $("span", {
3851
3853
  class: "markup-screenshot-status",
3852
3854
  children: [
3853
3855
  /* @__PURE__ */ $("input", {
@@ -3855,7 +3857,7 @@ function _a({ pageX: e, pageY: t, authorName: n, isVerified: r, identityResolvin
3855
3857
  class: "markup-screenshot-checkbox",
3856
3858
  disabled: !0
3857
3859
  }),
3858
- /* @__PURE__ */ $(sa, { size: 12 }),
3860
+ /* @__PURE__ */ $(la, { size: 12 }),
3859
3861
  /* @__PURE__ */ $("span", { children: "Capturing…" })
3860
3862
  ]
3861
3863
  }) : /* @__PURE__ */ $("label", {
@@ -3864,14 +3866,14 @@ function _a({ pageX: e, pageY: t, authorName: n, isVerified: r, identityResolvin
3864
3866
  /* @__PURE__ */ $("input", {
3865
3867
  type: "checkbox",
3866
3868
  class: "markup-screenshot-checkbox",
3867
- checked: m,
3868
- onChange: (e) => h(e.currentTarget.checked)
3869
+ checked: h,
3870
+ onChange: (e) => g(e.currentTarget.checked)
3869
3871
  }),
3870
- /* @__PURE__ */ $(sa, { size: 12 }),
3872
+ /* @__PURE__ */ $(la, { size: 12 }),
3871
3873
  /* @__PURE__ */ $("span", { children: "Attach screenshot" }),
3872
- g && m ? /* @__PURE__ */ $("img", {
3874
+ _ && h ? /* @__PURE__ */ $("img", {
3873
3875
  class: "markup-screenshot-thumb",
3874
- src: g,
3876
+ src: _,
3875
3877
  alt: "Screenshot preview"
3876
3878
  }) : null
3877
3879
  ]
@@ -3881,12 +3883,12 @@ function _a({ pageX: e, pageY: t, authorName: n, isVerified: r, identityResolvin
3881
3883
  })]
3882
3884
  });
3883
3885
  }
3884
- function va(e, t, n) {
3886
+ function ya(e, t, n) {
3885
3887
  return Math.max(t, Math.min(n, e));
3886
3888
  }
3887
3889
  //#endregion
3888
3890
  //#region src/runtime/ui/pin.tsx
3889
- function ya({ pageX: e, pageY: t, count: n, active: r, onClick: i }) {
3891
+ function ba({ pageX: e, pageY: t, count: n, active: r, onClick: i }) {
3890
3892
  let a = t - window.scrollY, o = e - window.scrollX;
3891
3893
  return /* @__PURE__ */ $("button", {
3892
3894
  type: "button",
@@ -3909,7 +3911,7 @@ function ya({ pageX: e, pageY: t, count: n, active: r, onClick: i }) {
3909
3911
  }) : null]
3910
3912
  });
3911
3913
  }
3912
- function ba({ pageX: e, pageY: t }) {
3914
+ function xa({ pageX: e, pageY: t }) {
3913
3915
  let n = t - window.scrollY, r = e - window.scrollX;
3914
3916
  return /* @__PURE__ */ $("div", {
3915
3917
  class: "markup-pin markup-pin-ghost is-anchor",
@@ -3925,8 +3927,8 @@ function ba({ pageX: e, pageY: t }) {
3925
3927
  }
3926
3928
  //#endregion
3927
3929
  //#region src/runtime/ui/placement-overlay.tsx
3928
- function xa({ onPlace: e, onCancel: t }) {
3929
- B(() => {
3930
+ function Sa({ onPlace: e, onCancel: t }) {
3931
+ z(() => {
3930
3932
  function e(e) {
3931
3933
  e.key === "Escape" && t();
3932
3934
  }
@@ -3951,7 +3953,7 @@ function xa({ onPlace: e, onCancel: t }) {
3951
3953
  }
3952
3954
  //#endregion
3953
3955
  //#region src/runtime/ui/thread-popover.tsx
3954
- var Sa = [
3956
+ var Ca = [
3955
3957
  "👍",
3956
3958
  "❤️",
3957
3959
  "🎉",
@@ -3959,103 +3961,56 @@ var Sa = [
3959
3961
  "😄",
3960
3962
  "❓"
3961
3963
  ];
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);
3968
- }
3969
- function de() {
3970
- O(null), k("");
3971
- }
3972
- B(() => {
3973
- if (!D) return;
3974
- let t = e.comments.find((e) => e._id === D);
3975
- (!t || t.deleted) && de();
3976
- }, [e.comments, D]);
3977
- let fe = V(!0);
3978
- B(() => {
3979
- let e = x.current;
3964
+ function wa({ thread: e, authorName: t, currentClientId: n, isVerified: r, identityResolving: i, signingIn: a, canDelete: o, pending: s, error: c, hidden: l = !1, onAuthor: u, onSignIn: d, onClose: f, onReply: p, onEditComment: m, onDeleteComment: h, onToggleReaction: g, onResolve: _, onDelete: v }) {
3965
+ let y = B(null), b = B(null), x = B(null), S = B(null), [C, w] = R({ kind: "none" }), [T, E] = R(null), { onPointerDown: D, isDragging: O } = na({
3966
+ targetRef: y,
3967
+ shouldStart: (e) => !e.target?.closest("button, a, input, textarea, select"),
3968
+ onMove: E
3969
+ });
3970
+ ma(y, !0);
3971
+ let k = e.resolvedAt != null, A = Ce(() => e.comments.filter((e) => !e.deleted), [e.comments]);
3972
+ z(() => {
3973
+ if (C.kind === "none" || C.kind === "editing") return;
3974
+ function e(e) {
3975
+ let t = S.current;
3976
+ t && !e.composedPath().includes(t) && w({ kind: "none" });
3977
+ }
3978
+ return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
3979
+ }, [C.kind]), z(() => {
3980
+ if (C.kind !== "editing") return;
3981
+ let t = e.comments.find((e) => e._id === C.commentId);
3982
+ (!t || t.deleted) && w({ kind: "none" });
3983
+ }, [e.comments, C]);
3984
+ let j = B(!0);
3985
+ z(() => {
3986
+ let e = b.current;
3980
3987
  if (e) {
3981
- if (fe.current) {
3982
- fe.current = !1, e.scrollTop = e.scrollHeight;
3988
+ if (j.current) {
3989
+ j.current = !1, e.scrollTop = e.scrollHeight;
3983
3990
  return;
3984
3991
  }
3985
3992
  e.scrollHeight - e.scrollTop - e.clientHeight < 80 && (e.scrollTop = e.scrollHeight);
3986
3993
  }
3987
- }, [L.length]), B(() => {
3988
- if (!C) {
3989
- E(!1);
3990
- return;
3991
- }
3992
- function e(e) {
3993
- y.current && !e.composedPath().includes(y.current) && w(!1);
3994
- }
3995
- return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
3996
- }, [C]), B(() => {
3997
- if (!A) {
3998
- ne(null);
3999
- return;
4000
- }
4001
- function e(e) {
4002
- b.current && !e.composedPath().includes(b.current) && j(null);
4003
- }
4004
- return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
4005
- }, [A]), B(() => {
4006
- if (!P) return;
4007
- function e(e) {
4008
- ae.current && !e.composedPath().includes(ae.current) && F(null);
4009
- }
4010
- return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
4011
- }, [P]), B(() => {
4012
- let e = v.current;
3994
+ }, [A.length]), z(() => {
3995
+ let e = y.current;
4013
3996
  if (!e) return;
4014
3997
  if (typeof e.showPopover == "function" && !e.matches(":popover-open")) try {
4015
3998
  e.showPopover();
4016
3999
  } catch {}
4017
4000
  function t(e) {
4018
- e.newState === "closed" && d();
4001
+ e.newState === "closed" && f();
4019
4002
  }
4020
4003
  return e.addEventListener("toggle", t), () => e.removeEventListener("toggle", t);
4021
- }, [d]);
4022
- function pe(e) {
4023
- if (e.button !== 0 || e.target?.closest("button, a, input, textarea, select")) return;
4024
- let t = v.current;
4025
- if (!t) return;
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;
4027
- try {
4028
- l.setPointerCapture(e.pointerId);
4029
- } catch {}
4030
- function d(e) {
4031
- let t = e.clientX - r, n = e.clientY - i;
4032
- if (!u) {
4033
- if (Math.abs(t) + Math.abs(n) < 4) return;
4034
- u = !0, le(!0);
4035
- }
4036
- let l = Math.max(8, window.innerWidth - s - 8), d = Math.max(8, window.innerHeight - c - 8);
4037
- se({
4038
- left: Da(a + t, 8, l),
4039
- top: Da(o + n, 8, d)
4040
- });
4041
- }
4042
- function f(e) {
4043
- try {
4044
- l.releasePointerCapture(e.pointerId);
4045
- } catch {}
4046
- l.removeEventListener("pointermove", d), l.removeEventListener("pointerup", f), l.removeEventListener("pointercancel", f), le(!1);
4047
- }
4048
- l.addEventListener("pointermove", d), l.addEventListener("pointerup", f), l.addEventListener("pointercancel", f);
4049
- }
4050
- let R = Se(() => {
4004
+ }, [f]);
4005
+ let M = Ce(() => {
4051
4006
  let t = Tr({
4052
4007
  anchorX: e.anchorX,
4053
4008
  anchorY: e.anchorY,
4054
4009
  anchorSelector: e.anchorSelector
4055
4010
  });
4056
4011
  return {
4057
- left: Da(t.pageX - window.scrollX + 16, 12, window.innerWidth - 320 - 12),
4058
- top: Da(t.pageY - window.scrollY - 16, 12, window.innerHeight - 200)
4012
+ left: Oa(t.pageX - window.scrollX + 16, 12, window.innerWidth - 320 - 12),
4013
+ top: Oa(t.pageY - window.scrollY - 16, 12, window.innerHeight - 200)
4059
4014
  };
4060
4015
  }, [
4061
4016
  e.anchorX,
@@ -4063,59 +4018,69 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, ident
4063
4018
  e.anchorSelector
4064
4019
  ]);
4065
4020
  return /* @__PURE__ */ $("div", {
4066
- ref: v,
4021
+ ref: y,
4067
4022
  id: "markup-thread-popover",
4068
- class: Q("markup-popover", oe && "is-floating", ce && "is-dragging", c && "is-hud-hidden"),
4023
+ class: Q("markup-popover", T && "is-floating", O && "is-dragging", l && "is-hud-hidden"),
4069
4024
  popover: "auto",
4070
4025
  style: {
4071
- "--markup-pop-x": `${oe?.left ?? R.left}px`,
4072
- "--markup-pop-y": `${oe?.top ?? R.top}px`
4026
+ "--markup-pop-x": `${T?.left ?? M.left}px`,
4027
+ "--markup-pop-y": `${T?.top ?? M.top}px`
4073
4028
  },
4074
4029
  role: "dialog",
4075
4030
  "aria-label": "Markup thread",
4076
- "aria-hidden": c || void 0,
4031
+ "aria-hidden": l || void 0,
4077
4032
  children: [
4078
4033
  /* @__PURE__ */ $("header", {
4079
4034
  class: "markup-popover-header",
4080
- onPointerDown: pe,
4035
+ onPointerDown: D,
4081
4036
  children: [/* @__PURE__ */ $("span", {
4082
4037
  class: "markup-eyebrow",
4083
4038
  children: [
4084
4039
  "thread · ",
4085
- L.length,
4040
+ A.length,
4086
4041
  " ",
4087
- L.length === 1 ? "comment" : "comments"
4042
+ A.length === 1 ? "comment" : "comments"
4088
4043
  ]
4089
4044
  }), /* @__PURE__ */ $("div", {
4090
4045
  class: "markup-popover-header-actions",
4091
4046
  children: [
4092
4047
  /* @__PURE__ */ $("div", {
4093
4048
  class: "markup-thread-menu",
4094
- ref: y,
4049
+ ref: (e) => {
4050
+ C.kind === "thread-menu" && (S.current = e);
4051
+ },
4095
4052
  children: [/* @__PURE__ */ $("button", {
4096
4053
  type: "button",
4097
- class: Q("markup-icon-btn", C && "is-open"),
4054
+ class: Q("markup-icon-btn", C.kind === "thread-menu" && "is-open"),
4098
4055
  title: "More options",
4099
- onClick: () => w((e) => !e),
4100
- children: /* @__PURE__ */ $(aa, { size: 16 })
4101
- }), C ? /* @__PURE__ */ $("div", {
4056
+ onClick: () => {
4057
+ w(C.kind === "thread-menu" ? { kind: "none" } : {
4058
+ kind: "thread-menu",
4059
+ confirmDelete: !1
4060
+ });
4061
+ },
4062
+ children: /* @__PURE__ */ $(sa, { size: 16 })
4063
+ }), C.kind === "thread-menu" ? /* @__PURE__ */ $("div", {
4102
4064
  class: "markup-thread-menu-list",
4103
4065
  children: [/* @__PURE__ */ $("button", {
4104
4066
  type: "button",
4105
4067
  class: "markup-thread-menu-item",
4106
4068
  onClick: () => {
4107
4069
  let t = new URL(e.url);
4108
- t.hash = `markup-thread=${e._id}`, navigator.clipboard.writeText(t.toString()).catch(() => {}), w(!1);
4070
+ t.hash = `markup-thread=${e._id}`, navigator.clipboard.writeText(t.toString()).catch(() => {}), w({ kind: "none" });
4109
4071
  },
4110
4072
  children: "Copy link"
4111
- }), a ? /* @__PURE__ */ $("button", {
4073
+ }), o ? /* @__PURE__ */ $("button", {
4112
4074
  type: "button",
4113
- class: Q("markup-thread-menu-item", T && "is-danger"),
4114
- disabled: o,
4075
+ class: Q("markup-thread-menu-item", C.confirmDelete && "is-danger"),
4076
+ disabled: s,
4115
4077
  onClick: () => {
4116
- T ? (w(!1), _()) : E(!0);
4078
+ C.kind === "thread-menu" && (C.confirmDelete ? (w({ kind: "none" }), v()) : w({
4079
+ ...C,
4080
+ confirmDelete: !0
4081
+ }));
4117
4082
  },
4118
- children: T ? "Confirm delete" : "Delete thread…"
4083
+ children: C.confirmDelete ? "Confirm delete" : "Delete thread…"
4119
4084
  }) : null]
4120
4085
  }) : null]
4121
4086
  }),
@@ -4123,25 +4088,25 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, ident
4123
4088
  type: "button",
4124
4089
  class: "markup-icon-btn",
4125
4090
  title: "Mark as resolved",
4126
- disabled: o,
4127
- onClick: g,
4128
- children: /* @__PURE__ */ $(oa, { size: 16 })
4091
+ disabled: s,
4092
+ onClick: _,
4093
+ children: /* @__PURE__ */ $(ca, { size: 16 })
4129
4094
  }) : null,
4130
4095
  /* @__PURE__ */ $("button", {
4131
4096
  type: "button",
4132
4097
  class: "markup-icon-btn",
4133
4098
  title: "Close thread",
4134
- onClick: d,
4135
- children: /* @__PURE__ */ $(ia, { size: 16 })
4099
+ onClick: f,
4100
+ children: /* @__PURE__ */ $(oa, { size: 16 })
4136
4101
  })
4137
4102
  ]
4138
4103
  })]
4139
4104
  }),
4140
4105
  /* @__PURE__ */ $("ol", {
4141
- ref: x,
4106
+ ref: b,
4142
4107
  class: "markup-comments",
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;
4108
+ children: A.map((t, r) => {
4109
+ let i = !t.fromDashboard && n != null && t.authorClientId === n, a = r === 0, o = i && !k && !t.deleted, c = i && !k && !t.deleted && !a, l = C.kind === "editing" && C.commentId === t._id, u = (o || c) && !l && !t.deleted, d = C.kind === "comment-menu" && C.commentId === t._id, f = d && C.confirmDelete, p = C.kind === "reaction-picker" && C.commentId === t._id, _ = p ? C.direction : "down", v = d ? C.direction : "down";
4145
4110
  return /* @__PURE__ */ $("li", {
4146
4111
  class: Q("markup-comment", t.fromDashboard && "is-team"),
4147
4112
  children: [
@@ -4159,61 +4124,77 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, ident
4159
4124
  /* @__PURE__ */ $("time", {
4160
4125
  class: "markup-comment-time",
4161
4126
  datetime: new Date(t.createdAt).toISOString(),
4162
- title: ka(t.createdAt),
4163
- children: Oa(t.createdAt)
4127
+ title: Aa(t.createdAt),
4128
+ children: ka(t.createdAt)
4164
4129
  }),
4165
4130
  /* @__PURE__ */ $("div", {
4166
4131
  class: "markup-thread-actions",
4167
- children: [!I && !l ? /* @__PURE__ */ $(wa, {
4132
+ children: [!k && !l ? /* @__PURE__ */ $(Ta, {
4168
4133
  comment: t,
4169
- pickerOpen: P === t._id,
4170
- pickerDirection: re,
4134
+ pickerOpen: p,
4135
+ pickerDirection: _,
4171
4136
  pickerRef: (e) => {
4172
- P === t._id && (ae.current = e);
4137
+ p && (S.current = e);
4173
4138
  },
4174
4139
  onPickerClick: (e) => {
4175
- if (P === t._id) {
4176
- F(null);
4140
+ if (p) {
4141
+ w({ kind: "none" });
4177
4142
  return;
4178
4143
  }
4179
- let n = e.currentTarget.getBoundingClientRect(), r = x.current?.getBoundingClientRect();
4180
- ie((r ? r.bottom - n.bottom : Infinity) < 44 ? "up" : "down"), F(t._id);
4144
+ let n = e.currentTarget.getBoundingClientRect(), r = b.current?.getBoundingClientRect(), i = r ? r.bottom - n.bottom : Infinity;
4145
+ w({
4146
+ kind: "reaction-picker",
4147
+ commentId: t._id,
4148
+ direction: i < 44 ? "up" : "down"
4149
+ });
4181
4150
  },
4182
4151
  onPickerSelect: (e) => {
4183
- F(null), h(t._id, e);
4152
+ w({ kind: "none" }), g(t._id, e);
4184
4153
  }
4185
4154
  }) : null, u ? /* @__PURE__ */ $("div", {
4186
- class: Q("markup-thread-menu markup-comment-menu", d && "is-open", d && M === "up" && "is-up"),
4155
+ class: Q("markup-thread-menu markup-comment-menu", d && "is-open", d && v === "up" && "is-up"),
4187
4156
  ref: (e) => {
4188
- d && (b.current = e);
4157
+ d && (S.current = e);
4189
4158
  },
4190
4159
  children: [/* @__PURE__ */ $("button", {
4191
4160
  type: "button",
4192
4161
  class: Q("markup-icon-btn", d && "is-open"),
4193
4162
  title: "More options",
4194
4163
  onClick: (e) => {
4195
- if (A === t._id) {
4196
- j(null);
4164
+ if (d) {
4165
+ w({ kind: "none" });
4197
4166
  return;
4198
4167
  }
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);
4168
+ let n = e.currentTarget.getBoundingClientRect(), r = b.current?.getBoundingClientRect(), i = (+!!o + +!!c) * 32 + 8 + 6, a = r ? r.bottom - n.bottom : Infinity;
4169
+ w({
4170
+ kind: "comment-menu",
4171
+ commentId: t._id,
4172
+ direction: a < i ? "up" : "down",
4173
+ confirmDelete: !1
4174
+ });
4201
4175
  },
4202
- children: /* @__PURE__ */ $(aa, { size: 16 })
4176
+ children: /* @__PURE__ */ $(sa, { size: 16 })
4203
4177
  }), d ? /* @__PURE__ */ $("div", {
4204
4178
  class: "markup-thread-menu-list",
4205
- children: [s ? /* @__PURE__ */ $("button", {
4179
+ children: [o ? /* @__PURE__ */ $("button", {
4206
4180
  type: "button",
4207
4181
  class: "markup-thread-menu-item",
4208
4182
  onClick: () => {
4209
- j(null), ue(t._id, t.body);
4183
+ w({
4184
+ kind: "editing",
4185
+ commentId: t._id,
4186
+ draft: t.body
4187
+ });
4210
4188
  },
4211
4189
  children: "Edit"
4212
4190
  }) : null, c ? /* @__PURE__ */ $("button", {
4213
4191
  type: "button",
4214
4192
  class: Q("markup-thread-menu-item", f && "is-danger"),
4215
4193
  onClick: () => {
4216
- f ? (j(null), m(t._id)) : ne(t._id);
4194
+ C.kind === "comment-menu" && (C.confirmDelete ? (w({ kind: "none" }), h(t._id)) : w({
4195
+ ...C,
4196
+ confirmDelete: !0
4197
+ }));
4217
4198
  },
4218
4199
  children: f ? "Confirm delete" : "Delete…"
4219
4200
  }) : null]
@@ -4222,38 +4203,44 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, ident
4222
4203
  })
4223
4204
  ]
4224
4205
  }),
4225
- l ? /* @__PURE__ */ $("form", {
4206
+ l && C.kind === "editing" ? /* @__PURE__ */ $("form", {
4226
4207
  class: "markup-comment-edit-form",
4227
4208
  onSubmit: async (e) => {
4228
- e.preventDefault();
4229
- let n = ee.trim();
4209
+ if (e.preventDefault(), C.kind !== "editing") return;
4210
+ let n = C.draft.trim();
4230
4211
  if (!n || n === t.body) {
4231
- de();
4212
+ w({ kind: "none" });
4232
4213
  return;
4233
4214
  }
4234
4215
  try {
4235
- await p(t._id, n), de();
4216
+ await m(t._id, n), w({ kind: "none" });
4236
4217
  } catch {}
4237
4218
  },
4238
4219
  children: [/* @__PURE__ */ $("textarea", {
4239
4220
  class: "markup-textarea",
4240
- value: ee,
4241
- onInput: (e) => k(e.currentTarget.value),
4221
+ value: C.draft,
4222
+ onInput: (e) => {
4223
+ let t = e.currentTarget.value;
4224
+ w((e) => e.kind === "editing" ? {
4225
+ ...e,
4226
+ draft: t
4227
+ } : e);
4228
+ },
4242
4229
  rows: 3,
4243
4230
  autoFocus: !0,
4244
- disabled: o
4231
+ disabled: s
4245
4232
  }), /* @__PURE__ */ $("div", {
4246
4233
  class: "markup-comment-edit-actions",
4247
4234
  children: [/* @__PURE__ */ $("button", {
4248
4235
  type: "button",
4249
4236
  class: "markup-btn markup-btn-ghost",
4250
- onClick: de,
4251
- disabled: o,
4237
+ onClick: () => w({ kind: "none" }),
4238
+ disabled: s,
4252
4239
  children: "Cancel"
4253
4240
  }), /* @__PURE__ */ $("button", {
4254
4241
  type: "submit",
4255
4242
  class: "markup-btn markup-btn-primary",
4256
- disabled: o || ee.trim().length === 0,
4243
+ disabled: s || C.draft.trim().length === 0,
4257
4244
  children: "Save"
4258
4245
  })]
4259
4246
  })]
@@ -4262,19 +4249,19 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, ident
4262
4249
  children: [t.body, t.editedAt == null ? null : /* @__PURE__ */ $("time", {
4263
4250
  class: "markup-comment-edited",
4264
4251
  datetime: new Date(t.editedAt).toISOString(),
4265
- title: ka(t.editedAt),
4252
+ title: Aa(t.editedAt),
4266
4253
  children: [" ", "(edited)"]
4267
4254
  })]
4268
4255
  }),
4269
- !l && t.reactions.length > 0 ? /* @__PURE__ */ $(Ta, {
4256
+ !l && t.reactions.length > 0 ? /* @__PURE__ */ $(Ea, {
4270
4257
  comment: t,
4271
- isResolved: I,
4272
- onToggle: (e) => h(t._id, e)
4258
+ isResolved: k,
4259
+ onToggle: (e) => g(t._id, e)
4273
4260
  }) : null,
4274
4261
  r === 0 && e.screenshotUrl ? /* @__PURE__ */ $("button", {
4275
4262
  type: "button",
4276
4263
  class: "markup-comment-screenshot",
4277
- onClick: () => S.current?.showModal(),
4264
+ onClick: () => x.current?.showModal(),
4278
4265
  children: /* @__PURE__ */ $("img", {
4279
4266
  src: e.screenshotUrl,
4280
4267
  alt: "Screenshot"
@@ -4285,17 +4272,17 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, ident
4285
4272
  })
4286
4273
  }),
4287
4274
  e.screenshotUrl ? /* @__PURE__ */ $("dialog", {
4288
- ref: S,
4275
+ ref: x,
4289
4276
  class: "markup-lightbox",
4290
- onClick: () => S.current?.close(),
4277
+ onClick: () => x.current?.close(),
4291
4278
  children: [/* @__PURE__ */ $("button", {
4292
4279
  type: "button",
4293
4280
  class: "markup-lightbox-close markup-icon-btn",
4294
4281
  "aria-label": "Close screenshot",
4295
4282
  onClick: (e) => {
4296
- e.stopPropagation(), S.current?.close();
4283
+ e.stopPropagation(), x.current?.close();
4297
4284
  },
4298
- children: /* @__PURE__ */ $(ia, { size: 16 })
4285
+ children: /* @__PURE__ */ $(oa, { size: 16 })
4299
4286
  }), /* @__PURE__ */ $("img", {
4300
4287
  class: "markup-lightbox-img",
4301
4288
  src: e.screenshotUrl,
@@ -4303,12 +4290,13 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, ident
4303
4290
  onClick: (e) => e.stopPropagation()
4304
4291
  })]
4305
4292
  }) : null,
4306
- t == null ? /* @__PURE__ */ $(ma, {
4307
- pending: o,
4293
+ t == null ? /* @__PURE__ */ $(ha, {
4294
+ pending: s,
4308
4295
  connecting: i,
4309
- onSubmit: l,
4310
- onCancel: d,
4311
- onSignIn: u
4296
+ signingIn: a,
4297
+ onSubmit: u,
4298
+ onCancel: f,
4299
+ onSignIn: d
4312
4300
  }) : /* @__PURE__ */ $("div", {
4313
4301
  class: "markup-popover-body",
4314
4302
  children: [/* @__PURE__ */ $("p", {
@@ -4324,20 +4312,20 @@ function Ca({ thread: e, authorName: t, currentClientId: n, isVerified: r, ident
4324
4312
  children: "team"
4325
4313
  }) : null
4326
4314
  ]
4327
- }), /* @__PURE__ */ $(ga, {
4315
+ }), /* @__PURE__ */ $(_a, {
4328
4316
  label: "Reply",
4329
4317
  placeholder: "Write a reply…",
4330
4318
  submitLabel: "Reply",
4331
4319
  initialFocus: !1,
4332
- pending: o,
4333
- error: s,
4334
- onSubmit: f
4320
+ pending: s,
4321
+ error: c,
4322
+ onSubmit: p
4335
4323
  })]
4336
4324
  })
4337
4325
  ]
4338
4326
  });
4339
4327
  }
4340
- function wa({ comment: e, pickerOpen: t, pickerDirection: n, pickerRef: r, onPickerClick: i, onPickerSelect: a }) {
4328
+ function Ta({ comment: e, pickerOpen: t, pickerDirection: n, pickerRef: r, onPickerClick: i, onPickerSelect: a }) {
4341
4329
  return /* @__PURE__ */ $("div", {
4342
4330
  class: Q("markup-reaction-picker-wrap", t && "is-open", t && n === "up" && "is-up"),
4343
4331
  ref: r,
@@ -4347,11 +4335,11 @@ function wa({ comment: e, pickerOpen: t, pickerDirection: n, pickerRef: r, onPic
4347
4335
  title: "Add reaction",
4348
4336
  "aria-label": "Add reaction",
4349
4337
  onClick: i,
4350
- children: /* @__PURE__ */ $(la, { size: 16 })
4338
+ children: /* @__PURE__ */ $(da, { size: 16 })
4351
4339
  }), t ? /* @__PURE__ */ $("div", {
4352
4340
  class: "markup-reaction-picker",
4353
4341
  role: "menu",
4354
- children: Sa.map((t) => /* @__PURE__ */ $("button", {
4342
+ children: Ca.map((t) => /* @__PURE__ */ $("button", {
4355
4343
  type: "button",
4356
4344
  role: "menuitem",
4357
4345
  class: Q("markup-reaction-picker-item", (e.reactions.find((e) => e.emoji === t)?.mine ?? !1) && "is-mine"),
@@ -4361,11 +4349,11 @@ function wa({ comment: e, pickerOpen: t, pickerDirection: n, pickerRef: r, onPic
4361
4349
  }) : null]
4362
4350
  });
4363
4351
  }
4364
- function Ta({ comment: e, isResolved: t, onToggle: n }) {
4352
+ function Ea({ comment: e, isResolved: t, onToggle: n }) {
4365
4353
  return /* @__PURE__ */ $("div", {
4366
4354
  class: "markup-reactions",
4367
4355
  children: e.reactions.map((e) => {
4368
- let r = Ea(e.reactors, e.mine, e.count, e.emoji);
4356
+ let r = Da(e.reactors, e.mine, e.count, e.emoji);
4369
4357
  return /* @__PURE__ */ $("button", {
4370
4358
  type: "button",
4371
4359
  class: Q("markup-reaction-chip", e.mine && "is-mine"),
@@ -4386,14 +4374,14 @@ function Ta({ comment: e, isResolved: t, onToggle: n }) {
4386
4374
  })
4387
4375
  });
4388
4376
  }
4389
- function Ea(e, t, n, r) {
4377
+ function Da(e, t, n, r) {
4390
4378
  let i = e.slice(), a = i.length + +!!t, o = Math.max(0, n - a);
4391
4379
  return o > 0 && i.push(`${o} other${o === 1 ? "" : "s"}`), t && i.push("you"), i.length === 0 ? `${n} reacted with ${r}` : `${i.length === 1 ? i[0] : `${i.slice(0, -1).join(", ")} and ${i[i.length - 1]}`} reacted with ${r}`;
4392
4380
  }
4393
- function Da(e, t, n) {
4381
+ function Oa(e, t, n) {
4394
4382
  return Math.max(t, Math.min(n, e));
4395
4383
  }
4396
- function Oa(e) {
4384
+ function ka(e) {
4397
4385
  let t = Date.now() - e, n = Math.floor(t / 1e3);
4398
4386
  if (n < 60) return "just now";
4399
4387
  let r = Math.floor(n / 60);
@@ -4410,7 +4398,7 @@ function Oa(e) {
4410
4398
  year: "numeric"
4411
4399
  });
4412
4400
  }
4413
- function ka(e) {
4401
+ function Aa(e) {
4414
4402
  return new Date(e).toLocaleDateString([], {
4415
4403
  month: "long",
4416
4404
  day: "numeric",
@@ -4421,7 +4409,7 @@ function ka(e) {
4421
4409
  }
4422
4410
  //#endregion
4423
4411
  //#region src/runtime/ui/app.tsx
4424
- function Aa(e) {
4412
+ function ja(e) {
4425
4413
  return {
4426
4414
  clientId: `markup_user_${e.identity.id}`,
4427
4415
  name: e.identity.name,
@@ -4431,10 +4419,10 @@ function Aa(e) {
4431
4419
  tokenExpiresAt: e.tokenExpiresAt ?? void 0
4432
4420
  };
4433
4421
  }
4434
- function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
4435
- let [r, i] = z(() => window.location.pathname), [a, o] = z([]), [s, c] = z(null), [l, u] = z(n), d = V(null);
4422
+ function Ma({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
4423
+ let [r, i] = R(() => window.location.pathname), [a, o] = R([]), [s, c] = R(null), [l, u] = R(n), d = B(null);
4436
4424
  d.current = s;
4437
- let [f, p] = z(0), m = Se(() => Or({
4425
+ let [f, p] = R(0), m = Ce(() => Or({
4438
4426
  apiUrl: e,
4439
4427
  apiKey: t,
4440
4428
  getToken: () => {
@@ -4458,8 +4446,8 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
4458
4446
  };
4459
4447
  d.current = t, c(t), Mr(t), p((e) => e + 1);
4460
4448
  }
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(() => {
4449
+ }), [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, k = s == null;
4450
+ z(() => {
4463
4451
  let e = jr();
4464
4452
  if (e?.anonToken || e?.isVerified) {
4465
4453
  c(e);
@@ -4484,14 +4472,14 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
4484
4472
  t = !0, n && clearTimeout(n);
4485
4473
  };
4486
4474
  }, [m, f]);
4487
- let [k, A] = z(null);
4488
- B(() => {
4475
+ let [A, j] = R(null);
4476
+ z(() => {
4489
4477
  let e = !1, t = null;
4490
4478
  async function n() {
4491
4479
  try {
4492
4480
  let r = await m.getSubscriptionToken();
4493
4481
  if (e) return;
4494
- A(r.token);
4482
+ j(r.token);
4495
4483
  let i = Math.max(6e4, r.expiresAt - Date.now() - 30 * 6e4);
4496
4484
  t = setTimeout(n, i);
4497
4485
  } catch {
@@ -4503,58 +4491,58 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
4503
4491
  e = !0, t && clearTimeout(t);
4504
4492
  };
4505
4493
  }, [m]);
4506
- let j = V(null);
4507
- B(() => {
4494
+ let [M, N] = R(null);
4495
+ z(() => {
4508
4496
  let t = new rr(e.replace(/\.convex\.site(\/.*)?$/, ".convex.cloud"));
4509
- return j.current = t, () => {
4510
- t.close(), j.current = null;
4497
+ return N(t), () => {
4498
+ t.close(), N((e) => e === t ? null : e);
4511
4499
  };
4512
4500
  }, [e]);
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"), {
4517
- subscriptionToken: k,
4501
+ let ee = B(!1);
4502
+ z(() => {
4503
+ if (!(!M || !A)) return b(null), M.onUpdate(qt("widget/queries:subscribeThreadsForRoute"), {
4504
+ subscriptionToken: A,
4518
4505
  route: r,
4519
4506
  viewerClientId: s?.clientId ?? void 0
4520
4507
  }, (e) => {
4521
4508
  e !== void 0 && o(e);
4522
4509
  });
4523
4510
  }, [
4524
- k,
4511
+ M,
4512
+ A,
4525
4513
  r,
4526
4514
  s?.clientId
4527
- ]), B(() => {
4528
- if (M.current) return;
4515
+ ]), z(() => {
4516
+ if (ee.current) return;
4529
4517
  let e = window.location.hash.match(/^#markup-thread=(.+)$/);
4530
- if (!e) {
4531
- M.current = !0;
4532
- return;
4518
+ if (e) {
4519
+ let t = decodeURIComponent(e[1] ?? "");
4520
+ a.find((e) => e._id === t) && g({
4521
+ kind: "thread",
4522
+ threadId: t
4523
+ }), history.replaceState(null, "", window.location.pathname + window.location.search);
4533
4524
  }
4534
- let t = decodeURIComponent(e[1] ?? "");
4535
- a.find((e) => e._id === t) && (M.current = !0, g({
4536
- kind: "thread",
4537
- threadId: t
4538
- }), history.replaceState(null, "", window.location.pathname + window.location.search));
4539
- }, [a]), B(() => {
4540
- function e() {
4541
- i(window.location.pathname);
4525
+ ee.current = !0;
4526
+ }, [a]), z(() => {
4527
+ let e = !0;
4528
+ function t() {
4529
+ e && i(window.location.pathname);
4542
4530
  }
4543
- window.addEventListener("popstate", e);
4544
- let t = history.pushState, n = history.replaceState;
4545
- return history.pushState = function(...n) {
4546
- t.apply(this, n), e();
4547
- }, history.replaceState = function(...t) {
4548
- n.apply(this, t), e();
4531
+ window.addEventListener("popstate", t);
4532
+ let n = history.pushState, r = history.replaceState;
4533
+ return history.pushState = function(...e) {
4534
+ n.apply(this, e), t();
4535
+ }, history.replaceState = function(...e) {
4536
+ r.apply(this, e), t();
4549
4537
  }, () => {
4550
- window.removeEventListener("popstate", e), history.pushState = t, history.replaceState = n;
4538
+ e = !1, window.removeEventListener("popstate", t);
4551
4539
  };
4552
- }, []), B(() => {
4540
+ }, []), z(() => {
4553
4541
  function e(e) {
4554
4542
  e.key === "." && (e.metaKey || e.ctrlKey) && (e.altKey || e.shiftKey || (e.preventDefault(), S((e) => !e)));
4555
4543
  }
4556
4544
  return window.addEventListener("keydown", e), () => window.removeEventListener("keydown", e);
4557
- }, []), B(() => {
4545
+ }, []), z(() => {
4558
4546
  if (!C) return;
4559
4547
  if (!x) {
4560
4548
  w(!1);
@@ -4562,21 +4550,24 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
4562
4550
  }
4563
4551
  let e = window.setTimeout(() => w(!1), 5e3);
4564
4552
  return () => window.clearTimeout(e);
4565
- }, [C, x]), B(() => {
4566
- function e() {
4567
- T((e) => e + 1);
4553
+ }, [C, x]), z(() => {
4554
+ let e = null;
4555
+ function t() {
4556
+ e ??= requestAnimationFrame(() => {
4557
+ e = null, T((e) => e + 1);
4558
+ });
4568
4559
  }
4569
- window.addEventListener("scroll", e, { passive: !0 }), window.addEventListener("resize", e);
4570
- let t = new ResizeObserver(e);
4571
- return t.observe(document.body), () => {
4572
- window.removeEventListener("scroll", e), window.removeEventListener("resize", e), t.disconnect();
4560
+ window.addEventListener("scroll", t, { passive: !0 }), window.addEventListener("resize", t);
4561
+ let n = new ResizeObserver(t);
4562
+ return n.observe(document.body), () => {
4563
+ window.removeEventListener("scroll", t), window.removeEventListener("resize", t), n.disconnect(), e != null && cancelAnimationFrame(e);
4573
4564
  };
4574
4565
  }, []);
4575
- let te = H(() => {
4566
+ let te = V(() => {
4576
4567
  b(null), g({ kind: "placing" });
4577
- }, []), N = H(() => {
4568
+ }, []), P = V(() => {
4578
4569
  g({ kind: "idle" }), b(null);
4579
- }, []), ne = V(0), P = H((e, t, n) => {
4570
+ }, []), ne = B(0), re = V((e, t, n) => {
4580
4571
  let r = t + window.scrollX, i = n + window.scrollY, a = ++ne.current;
4581
4572
  g({
4582
4573
  kind: "composing-new",
@@ -4596,7 +4587,7 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
4596
4587
  screenshotCapturing: !1
4597
4588
  });
4598
4589
  });
4599
- }, []), F = H((e, t) => {
4590
+ }, []), ie = V((e, t) => {
4600
4591
  if (!s) return;
4601
4592
  let n = {
4602
4593
  ...s,
@@ -4604,15 +4595,23 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
4604
4595
  email: t
4605
4596
  };
4606
4597
  Mr(n), c(n);
4607
- }, [s]), re = H(async () => {
4608
- b(null);
4609
- try {
4610
- let n = Aa(await Nr(e, t));
4611
- Mr(n), c(n);
4612
- } catch (e) {
4613
- b(e instanceof Error ? e.message : "Sign-in failed");
4598
+ }, [s]), [ae, oe] = R(!1), se = V(async () => {
4599
+ if (!ae) {
4600
+ b(null), oe(!0);
4601
+ try {
4602
+ let n = ja(await Nr(e, t));
4603
+ Mr(n), c(n);
4604
+ } catch (e) {
4605
+ b(e instanceof Error ? e.message : "Sign-in failed");
4606
+ } finally {
4607
+ oe(!1);
4608
+ }
4614
4609
  }
4615
- }, [e, t]), ie = H(async (e, t) => {
4610
+ }, [
4611
+ e,
4612
+ t,
4613
+ ae
4614
+ ]), ce = V(async (e, t) => {
4616
4615
  if (!(h.kind !== "composing-new" || !s?.name)) {
4617
4616
  v(!0), b(null);
4618
4617
  try {
@@ -4658,7 +4657,7 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
4658
4657
  s,
4659
4658
  h,
4660
4659
  r
4661
- ]), ae = H(async () => {
4660
+ ]), le = V(async () => {
4662
4661
  if (h.kind !== "thread") return;
4663
4662
  let e = h.threadId;
4664
4663
  v(!0), b(null);
@@ -4669,7 +4668,7 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
4669
4668
  } finally {
4670
4669
  v(!1);
4671
4670
  }
4672
- }, [m, h]), oe = H(async () => {
4671
+ }, [m, h]), ue = V(async () => {
4673
4672
  if (h.kind !== "thread") return;
4674
4673
  let e = h.threadId;
4675
4674
  v(!0), b(null);
@@ -4684,7 +4683,7 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
4684
4683
  m,
4685
4684
  h,
4686
4685
  s?.clientId
4687
- ]), se = H(async (e) => {
4686
+ ]), de = V(async (e) => {
4688
4687
  if (h.kind !== "thread" || !s?.name) return;
4689
4688
  let t = h.threadId;
4690
4689
  v(!0), b(null);
@@ -4704,7 +4703,7 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
4704
4703
  m,
4705
4704
  s,
4706
4705
  h
4707
- ]), ce = H(async (e, t) => {
4706
+ ]), F = V(async (e, t) => {
4708
4707
  if (h.kind !== "thread" || !s) return;
4709
4708
  let n = h.threadId;
4710
4709
  v(!0), b(null);
@@ -4720,7 +4719,7 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
4720
4719
  m,
4721
4720
  s,
4722
4721
  h
4723
- ]), le = H(async (e) => {
4722
+ ]), fe = V(async (e) => {
4724
4723
  if (h.kind !== "thread" || !s) return;
4725
4724
  let t = h.threadId;
4726
4725
  v(!0), b(null);
@@ -4736,7 +4735,7 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
4736
4735
  m,
4737
4736
  s,
4738
4737
  h
4739
- ]), I = H(async (e, t) => {
4738
+ ]), pe = V(async (e, t) => {
4740
4739
  if (h.kind !== "thread" || !s) return;
4741
4740
  let n = h.threadId;
4742
4741
  b(null);
@@ -4753,13 +4752,13 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
4753
4752
  m,
4754
4753
  s,
4755
4754
  h
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();
4755
+ ]), I = h.kind === "thread" ? a.find((e) => e._id === h.threadId) ?? null : null, me = O || s?.clientId != null && s.clientId === I?.authorClientId;
4756
+ return z(() => {
4757
+ h.kind === "thread" && I == null && P();
4759
4758
  }, [
4760
4759
  h,
4761
- L,
4762
- N
4760
+ I,
4761
+ P
4763
4762
  ]), /* @__PURE__ */ $("div", {
4764
4763
  class: "markup-root",
4765
4764
  ref: E,
@@ -4774,7 +4773,7 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
4774
4773
  anchorOffsetX: e.anchorOffsetX,
4775
4774
  anchorOffsetY: e.anchorOffsetY
4776
4775
  }), r = e.comments.reduce((e, t) => e + +!t.deleted, 0);
4777
- return /* @__PURE__ */ $(ya, {
4776
+ return /* @__PURE__ */ $(ba, {
4778
4777
  pageX: n.pageX,
4779
4778
  pageY: n.pageY,
4780
4779
  count: r,
@@ -4784,64 +4783,66 @@ function ja({ apiUrl: e, apiKey: t, position: n = "bottom-right" }) {
4784
4783
  threadId: e._id
4785
4784
  })
4786
4785
  }, e._id);
4787
- }), h.kind === "composing-new" ? /* @__PURE__ */ $(ba, {
4786
+ }), h.kind === "composing-new" ? /* @__PURE__ */ $(xa, {
4788
4787
  pageX: h.pageX,
4789
4788
  pageY: h.pageY
4790
4789
  }) : null]
4791
4790
  }),
4792
- h.kind === "placing" ? /* @__PURE__ */ $(xa, {
4793
- onPlace: P,
4794
- onCancel: N
4791
+ h.kind === "placing" ? /* @__PURE__ */ $(Sa, {
4792
+ onPlace: re,
4793
+ onCancel: P
4795
4794
  }) : null,
4796
- h.kind === "thread" && L ? /* @__PURE__ */ $(Ca, {
4797
- thread: L,
4795
+ h.kind === "thread" && I ? /* @__PURE__ */ $(wa, {
4796
+ thread: I,
4798
4797
  authorName: D,
4799
4798
  currentClientId: s?.clientId ?? null,
4800
4799
  isVerified: O,
4801
- identityResolving: ee,
4802
- canDelete: ue,
4800
+ identityResolving: k,
4801
+ signingIn: ae,
4802
+ canDelete: me,
4803
4803
  pending: _,
4804
4804
  error: y,
4805
4805
  hidden: x,
4806
- onAuthor: F,
4807
- onSignIn: re,
4808
- onClose: N,
4809
- onReply: se,
4810
- onEditComment: ce,
4811
- onDeleteComment: le,
4812
- onToggleReaction: I,
4813
- onDelete: ae,
4814
- onResolve: oe
4815
- }, L._id) : null,
4816
- h.kind === "composing-new" ? /* @__PURE__ */ $(_a, {
4806
+ onAuthor: ie,
4807
+ onSignIn: se,
4808
+ onClose: P,
4809
+ onReply: de,
4810
+ onEditComment: F,
4811
+ onDeleteComment: fe,
4812
+ onToggleReaction: pe,
4813
+ onDelete: le,
4814
+ onResolve: ue
4815
+ }, I._id) : null,
4816
+ h.kind === "composing-new" ? /* @__PURE__ */ $(va, {
4817
4817
  pageX: h.pageX,
4818
4818
  pageY: h.pageY,
4819
4819
  authorName: D,
4820
4820
  isVerified: O,
4821
- identityResolving: ee,
4821
+ identityResolving: k,
4822
+ signingIn: ae,
4822
4823
  pending: _,
4823
4824
  error: y,
4824
4825
  screenshot: h.screenshot,
4825
4826
  screenshotCapturing: h.screenshotCapturing,
4826
- onAuthor: F,
4827
- onSignIn: re,
4828
- onSubmit: ie,
4829
- onClose: N
4827
+ onAuthor: ie,
4828
+ onSignIn: se,
4829
+ onSubmit: ce,
4830
+ onClose: P
4830
4831
  }) : null,
4831
- !x || h.kind === "placing" || h.kind === "composing-new" ? /* @__PURE__ */ $(ua, {
4832
+ !x || h.kind === "placing" || h.kind === "composing-new" ? /* @__PURE__ */ $(fa, {
4832
4833
  active: h.kind === "placing",
4833
- onToggle: () => h.kind === "placing" ? N() : te(),
4834
+ onToggle: () => h.kind === "placing" ? P() : te(),
4834
4835
  onHide: () => {
4835
4836
  S(!0), w(!0);
4836
4837
  },
4837
4838
  position: l,
4838
4839
  onPositionChange: u
4839
4840
  }) : null,
4840
- x && C ? /* @__PURE__ */ $(Ma, { position: l }) : null
4841
+ x && C ? /* @__PURE__ */ $(Na, { position: l }) : null
4841
4842
  ]
4842
4843
  });
4843
4844
  }
4844
- function Ma({ position: e }) {
4845
+ function Na({ position: e }) {
4845
4846
  let t = /Mac|iPhone|iPad/.test(navigator.platform || navigator.userAgent) ? "⌘" : "Ctrl";
4846
4847
  return /* @__PURE__ */ $("div", {
4847
4848
  class: Q("markup-hud-hidden-toast", e === "bottom-left" ? "markup-hud-hidden-toast-left" : "markup-hud-hidden-toast-right"),
@@ -4863,32 +4864,32 @@ function Ma({ position: e }) {
4863
4864
  }
4864
4865
  //#endregion
4865
4866
  //#region src/runtime/mount.tsx
4866
- function Na(e, t) {
4867
+ function Pa(e, t) {
4867
4868
  e.style.position = "fixed", e.style.inset = "0", e.style.zIndex = "2147483647", e.style.pointerEvents = "none";
4868
4869
  let n = t.theme ?? "auto";
4869
4870
  n !== "auto" && (e.dataset.theme = n);
4870
4871
  let r = e.attachShadow({ mode: "open" }), i = document.createElement("style");
4871
- i.textContent = le, r.appendChild(i);
4872
+ i.textContent = ue, r.appendChild(i);
4872
4873
  let a = document.createElement("div");
4873
4874
  a.className = "markup-shadow-root", r.appendChild(a);
4874
4875
  let { theme: o, ...s } = t;
4875
- return ce(/* @__PURE__ */ $(ja, { ...s }), a), () => ce(null, a);
4876
+ return le(/* @__PURE__ */ $(Ma, { ...s }), a), () => le(null, a);
4876
4877
  }
4877
4878
  //#endregion
4878
4879
  //#region src/widget.ts
4879
- var Pa = null, Fa = null;
4880
- function Ia(e) {
4881
- La();
4880
+ var Fa = null, Ia = null;
4881
+ function La(e) {
4882
+ Ra();
4882
4883
  let t = document.createElement("div");
4883
- return t.id = "markup-widget", document.body.appendChild(t), Fa = t, Pa = Na(t, e), La;
4884
+ return t.id = "markup-widget", document.body.appendChild(t), Ia = t, Fa = Pa(t, e), Ra;
4884
4885
  }
4885
- function La() {
4886
- Pa &&= (Pa(), null), Fa?.parentNode && Fa.parentNode.removeChild(Fa), Fa = null;
4886
+ function Ra() {
4887
+ Fa &&= (Fa(), null), Ia?.parentNode && Ia.parentNode.removeChild(Ia), Ia = null;
4887
4888
  }
4888
4889
  if (typeof document < "u") {
4889
4890
  let e = document.currentScript ?? document.querySelector("script[data-markup-widget=\"true\"]"), t = e?.dataset.apiUrl, n = e?.dataset.apiKey;
4890
4891
  if (t && n) {
4891
- let r = e?.dataset.position, i = e?.dataset.theme, a = () => Ia({
4892
+ let r = e?.dataset.position, i = e?.dataset.theme, a = () => La({
4892
4893
  apiUrl: t,
4893
4894
  apiKey: n,
4894
4895
  position: r,
@@ -4898,4 +4899,4 @@ if (typeof document < "u") {
4898
4899
  }
4899
4900
  }
4900
4901
  //#endregion
4901
- export { La as destroy, Ia as init };
4902
+ export { Ra as destroy, La as init };