@pixelmatters/markup 1.27.1 → 1.27.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/widget.js CHANGED
@@ -42,42 +42,42 @@ function w(e, t) {
42
42
  for (var n; t < e.__k.length; t++) if ((n = e.__k[t]) != null && n.__e != null) return n.__e;
43
43
  return typeof e.type == "function" ? w(e) : null;
44
44
  }
45
- function ee(e) {
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), 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, F(i, o, a), n.__e = n.__ = null, o.__e != r && T(o);
48
+ o.__v = n.__v + 1, t.vnode && t.vnode(o), F(e.__P, o, n, e.__n, e.__P.namespaceURI, 32 & n.__u ? [r] : null, i, r ?? w(n), !!(32 & n.__u), a), o.__v = n.__v, o.__.__k[o.__i] = o, ne(i, o, a), n.__e = n.__ = null, o.__e != r && E(o);
49
49
  }
50
50
  }
51
- function T(e) {
51
+ function E(e) {
52
52
  if ((e = e.__) != null && e.__c != null) return e.__e = e.__c.base = null, e.__k.some(function(t) {
53
53
  if (t != null && t.__e != null) return e.__e = e.__c.base = t.__e;
54
- }), T(e);
54
+ }), E(e);
55
55
  }
56
- function E(e) {
57
- (!e.__d && (e.__d = !0) && r.push(e) && !D.__r++ || i != t.debounceRendering) && ((i = t.debounceRendering) || a)(D);
56
+ function D(e) {
57
+ (!e.__d && (e.__d = !0) && r.push(e) && !O.__r++ || i != t.debounceRendering) && ((i = t.debounceRendering) || a)(O);
58
58
  }
59
- function D() {
59
+ function O() {
60
60
  try {
61
- for (var e, t = 1; r.length;) r.length > t && r.sort(o), e = r.shift(), t = r.length, ee(e);
61
+ for (var e, t = 1; r.length;) r.length > t && r.sort(o), e = r.shift(), t = r.length, T(e);
62
62
  } finally {
63
- r.length = D.__r = 0;
63
+ r.length = O.__r = 0;
64
64
  }
65
65
  }
66
- function te(e, t, n, r, i, a, o, s, c, l, u) {
66
+ function ee(e, t, n, r, i, a, o, s, c, l, u) {
67
67
  var d, f, p, g, _, v, y = r && r.__k || h, b = t.length;
68
- for (c = O(n, t, y, c, b), d = 0; d < b; d++) (p = n.__k[d]) != null && (f = p.__i != -1 && y[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 && ae(f.ref, null, p), u.push(p.ref, p.__c || g, p)), _ == null && g != null && (_ = g), 4 & p.__u ? (c = k(p, c, e), f.__e && (f.__e = null)) : typeof p.type == "function" && v !== void 0 ? c = v : g && (c = g.nextSibling), p.__u &= -7);
68
+ for (c = k(n, t, y, c, b), d = 0; d < b; d++) (p = n.__k[d]) != null && (f = p.__i != -1 && y[p.__i] || m, p.__i = d, v = F(e, p, f, i, a, o, s, c, l, u), g = p.__e, p.ref && f.ref != p.ref && (f.ref && ae(f.ref, null, p), u.push(p.ref, p.__c || g, p)), _ == null && g != null && (_ = g), 4 & p.__u ? (c = A(p, c, e), 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 O(e, t, n, r, i) {
71
+ function k(e, t, n, r, i) {
72
72
  var a, o, s, c, l, u = n.length, d = u, f = 0;
73
- for (e.__k = Array(i), a = 0; a < i; a++) (o = t[a]) != null && typeof o != "boolean" && typeof o != "function" ? (typeof o == "string" || typeof o == "number" || typeof o == "bigint" || o.constructor == String ? o = e.__k[a] = x(null, o, null, null, null) : _(o) ? o = e.__k[a] = x(S, { children: o }, null, null, null) : o.constructor === void 0 && o.__b > 0 ? o = e.__k[a] = x(o.type, o.props, o.key, o.ref ? o.ref : null, o.__v) : e.__k[a] = o, c = a + f, o.__ = e, o.__b = e.__b + 1, s = null, (l = o.__i = A(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;
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
74
  if (d) for (a = 0; a < u; a++) (s = n[a]) != null && !(2 & s.__u) && (s.__e == r && (r = w(s)), oe(s, s));
75
75
  return r;
76
76
  }
77
- function k(e, t, n) {
77
+ function A(e, t, n) {
78
78
  var r, i;
79
79
  if (typeof e.type == "function") {
80
- for (r = e.__k, i = 0; r && i < r.length; i++) r[i] && (r[i].__ = e, t = k(r[i], t, n));
80
+ for (r = e.__k, i = 0; r && i < r.length; i++) r[i] && (r[i].__ = e, t = A(r[i], t, n));
81
81
  return t;
82
82
  }
83
83
  e.__e != t && (t && e.type && !t.parentNode && (t = w(e)), t = n.insertBefore(e.__e, t || null));
@@ -86,7 +86,7 @@ function k(e, t, n) {
86
86
  while (t != null && t.nodeType == 8);
87
87
  return t;
88
88
  }
89
- function A(e, t, n, r) {
89
+ function j(e, t, n, r) {
90
90
  var i, a, o, s = e.key, c = e.type, l = t[n], u = l != null && !(2 & l.__u);
91
91
  if (l === null && s == null || u && s == l.key && c == l.type) return n;
92
92
  if (r > +!!u) {
@@ -94,16 +94,16 @@ function A(e, t, n, r) {
94
94
  }
95
95
  return -1;
96
96
  }
97
- function j(e, t, n) {
97
+ function M(e, t, n) {
98
98
  t[0] == "-" ? e.setProperty(t, n ?? "") : e[t] = n == null ? "" : typeof n != "number" || g.test(t) ? n : n + "px";
99
99
  }
100
- function M(e, t, n, r, i) {
100
+ function N(e, t, n, r, i) {
101
101
  var a, o;
102
102
  n: if (t == "style") {
103
103
  if (typeof n == "string") e.style.cssText = n;
104
104
  else {
105
- if (typeof r == "string" && (e.style.cssText = r = ""), r) for (t in r) n && t in n || j(e.style, t, "");
106
- if (n) for (t in n) r && n[t] == r[t] || j(e.style, t, n[t]);
105
+ if (typeof r == "string" && (e.style.cssText = r = ""), r) for (t in r) n && t in n || M(e.style, t, "");
106
+ if (n) for (t in n) r && n[t] == r[t] || M(e.style, t, n[t]);
107
107
  }
108
108
  } 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);
109
109
  else {
@@ -115,7 +115,7 @@ function M(e, t, n, r, i) {
115
115
  typeof n == "function" || (n == null || !1 === n && t[4] != "-" ? e.removeAttribute(t) : e.setAttribute(t, t == "popover" && n == 1 ? "" : n));
116
116
  }
117
117
  }
118
- function N(e) {
118
+ function P(e) {
119
119
  return function(n) {
120
120
  if (this.l) {
121
121
  var r = this.l[n.type + e];
@@ -125,46 +125,46 @@ function N(e) {
125
125
  }
126
126
  };
127
127
  }
128
- function P(e, n, r, i, a, o, s, c, l, u) {
129
- var d, f, p, m, g, b, x, ee, T, E, D, O, k, A, j, M, N = n.type;
128
+ function F(e, n, r, i, a, o, s, c, l, u) {
129
+ var d, f, p, m, g, b, x, T, E, D, O, k, A, j, M, N, P = n.type;
130
130
  if (n.constructor !== void 0) return null;
131
131
  128 & r.__u && (l = !!(32 & r.__u), o = [c = n.__e = r.__e]), (d = t.__b) && d(n);
132
- n: if (typeof N == "function") {
132
+ n: if (typeof P == "function") {
133
133
  f = s.length;
134
134
  try {
135
- if (T = n.props, E = N.prototype && N.prototype.render, D = (d = N.contextType) && i[d.__c], O = d ? D ? D.props.value : d.__ : i, r.__c ? ee = (p = n.__c = r.__c).__ = p.__E : (E ? n.__c = p = new N(T, O) : (n.__c = p = new C(T, O), p.constructor = N, p.render = se), D && D.sub(p), p.state || (p.state = {}), p.__n = i, m = p.__d = !0, p.__h = [], p._sb = []), E && p.__s == null && (p.__s = p.state), E && N.getDerivedStateFromProps != null && (p.__s == p.state && (p.__s = v({}, p.__s)), v(p.__s, N.getDerivedStateFromProps(T, p.__s))), g = p.props, b = p.state, p.__v = n, m) E && N.getDerivedStateFromProps == null && p.componentWillMount != null && p.componentWillMount(), E && p.componentDidMount != null && p.__h.push(p.componentDidMount);
135
+ if (E = n.props, D = P.prototype && P.prototype.render, O = (d = P.contextType) && i[d.__c], k = d ? O ? O.props.value : d.__ : i, r.__c ? T = (p = n.__c = r.__c).__ = p.__E : (D ? n.__c = p = new P(E, k) : (n.__c = p = new C(E, k), p.constructor = P, p.render = se), O && O.sub(p), p.state || (p.state = {}), p.__n = i, m = p.__d = !0, p.__h = [], p._sb = []), D && p.__s == null && (p.__s = p.state), D && P.getDerivedStateFromProps != null && (p.__s == p.state && (p.__s = v({}, p.__s)), v(p.__s, P.getDerivedStateFromProps(E, p.__s))), g = p.props, b = p.state, p.__v = n, m) D && P.getDerivedStateFromProps == null && p.componentWillMount != null && p.componentWillMount(), D && p.componentDidMount != null && p.__h.push(p.componentDidMount);
136
136
  else {
137
- if (E && N.getDerivedStateFromProps == null && T !== g && p.componentWillReceiveProps != null && p.componentWillReceiveProps(T, O), n.__v == r.__v || !p.__e && p.shouldComponentUpdate != null && !1 === p.shouldComponentUpdate(T, p.__s, O)) {
138
- n.__v != r.__v && (p.props = T, p.state = p.__s, p.__d = !1), n.__e = r.__e, n.__k = r.__k, n.__k.some(function(e) {
137
+ if (D && P.getDerivedStateFromProps == null && E !== g && p.componentWillReceiveProps != null && p.componentWillReceiveProps(E, k), n.__v == r.__v || !p.__e && p.shouldComponentUpdate != null && !1 === p.shouldComponentUpdate(E, p.__s, k)) {
138
+ n.__v != r.__v && (p.props = E, p.state = p.__s, p.__d = !1), n.__e = r.__e, n.__k = r.__k, n.__k.some(function(e) {
139
139
  e && (e.__ = n);
140
140
  }), h.push.apply(p.__h, p._sb), p._sb = [], p.__h.length && s.push(p), c = w(r);
141
141
  break n;
142
142
  }
143
- p.componentWillUpdate != null && p.componentWillUpdate(T, p.__s, O), E && p.componentDidUpdate != null && p.__h.push(function() {
143
+ p.componentWillUpdate != null && p.componentWillUpdate(E, p.__s, k), D && p.componentDidUpdate != null && p.__h.push(function() {
144
144
  p.componentDidUpdate(g, b, x);
145
145
  });
146
146
  }
147
- if (p.context = O, p.props = T, p.__P = e, p.__e = !1, k = t.__r, A = 0, E) p.state = p.__s, p.__d = !1, k && k(n), d = p.render(p.props, p.state, p.context), h.push.apply(p.__h, p._sb), p._sb = [];
147
+ if (p.context = k, p.props = E, p.__P = e, p.__e = !1, A = t.__r, j = 0, D) p.state = p.__s, p.__d = !1, A && A(n), d = p.render(p.props, p.state, p.context), h.push.apply(p.__h, p._sb), p._sb = [];
148
148
  else do
149
- p.__d = !1, k && k(n), d = p.render(p.props, p.state, p.context), p.state = p.__s;
150
- while (p.__d && ++A < 25);
151
- p.state = p.__s, p.getChildContext != null && (i = v(v({}, i), p.getChildContext())), E && !m && p.getSnapshotBeforeUpdate != null && (x = p.getSnapshotBeforeUpdate(g, b)), j = d != null && d.type === S && d.key == null ? re(d.props.children) : d, c = te(e, _(j) ? j : [j], n, r, i, a, o, s, c, l, u), p.base = n.__e, n.__u &= -161, p.__h.length && s.push(p), ee && (p.__E = p.__ = null);
149
+ p.__d = !1, A && A(n), d = p.render(p.props, p.state, p.context), p.state = p.__s;
150
+ while (p.__d && ++j < 25);
151
+ p.state = p.__s, p.getChildContext != null && (i = v(v({}, i), p.getChildContext())), D && !m && p.getSnapshotBeforeUpdate != null && (x = p.getSnapshotBeforeUpdate(g, b)), M = d != null && d.type === S && d.key == null ? re(d.props.children) : d, c = ee(e, _(M) ? M : [M], n, r, i, a, o, s, c, l, u), p.base = n.__e, n.__u &= -161, p.__h.length && s.push(p), T && (p.__E = p.__ = null);
152
152
  } catch (e) {
153
153
  if (s.length = f, n.__v = null, l || o != null) {
154
154
  if (e.then) {
155
155
  for (n.__u |= l ? 160 : 128; c && c.nodeType == 8 && c.nextSibling;) c = c.nextSibling;
156
156
  o != null && (o[o.indexOf(c)] = null), n.__e = c;
157
- } else if (o != null) for (M = o.length; M--;) y(o[M]);
157
+ } else if (o != null) for (N = o.length; N--;) y(o[N]);
158
158
  } else n.__e = r.__e;
159
- n.__k ??= r.__k || [], e.then || ne(n), t.__e(e, n, r);
159
+ n.__k ??= r.__k || [], e.then || te(n), t.__e(e, n, r);
160
160
  }
161
161
  } 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);
162
162
  return (d = t.diffed) && d(n), 128 & n.__u ? void 0 : c;
163
163
  }
164
- function ne(e) {
165
- e && (e.__c && (e.__c.__e = !0), e.__k && e.__k.some(ne));
164
+ function te(e) {
165
+ e && (e.__c && (e.__c.__e = !0), e.__k && e.__k.some(te));
166
166
  }
167
- function F(e, n, r) {
167
+ function ne(e, n, r) {
168
168
  for (var i = 0; i < r.length; i++) ae(r[i], r[++i], r[++i]);
169
169
  t.__c && t.__c(n, e), e.some(function(n) {
170
170
  try {
@@ -194,11 +194,11 @@ function ie(n, r, i, a, o, s, c, l, u) {
194
194
  if (C == null) x === S || l && n.data == S || (n.data = S);
195
195
  else {
196
196
  if (s = C == "textarea" && S.defaultValue != null ? null : 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;
197
- 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 || M(n, d, null, g, o);
198
- 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 || M(n, d, g, x[d], o);
197
+ 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 || N(n, d, null, g, o);
198
+ 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 || N(n, d, g, x[d], o);
199
199
  if (f) l || p && (f.__html == p.__html || f.__html == n.innerHTML) || (n.innerHTML = f.__html), r.__k = [];
200
- else if (p && (n.innerHTML = ""), te(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]);
201
- l && C != "textarea" || (d = "value", C == "progress" && v == null ? n.removeAttribute("value") : v != null && (v !== n[d] || C == "progress" && !v || C == "option" && v != x[d]) && M(n, d, v, x[d], o), d = "checked", b != null && b != n[d] && M(n, d, b, x[d], o));
200
+ 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]);
201
+ l && C != "textarea" || (d = "value", C == "progress" && v == null ? n.removeAttribute("value") : v != null && (v !== n[d] || C == "progress" && !v || C == "option" && v != x[d]) && N(n, d, v, x[d], o), d = "checked", b != null && b != n[d] && N(n, d, b, x[d], o));
202
202
  }
203
203
  return n;
204
204
  }
@@ -230,7 +230,7 @@ function se(e, t, n) {
230
230
  }
231
231
  function ce(n, r, i) {
232
232
  var a, o, s, c;
233
- 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), F(s, n, c), n.props.children = null;
233
+ r == document && (r = document.documentElement), t.__ && t.__(n, r), o = (a = typeof i == "function") ? null : i && i.__k || r.__k, s = [], c = [], F(r, n = (!a && i || r).__k = b(S, null, [n]), o || m, m, r.namespaceURI, !a && i ? [i] : o ? null : r.firstChild ? e.call(r.childNodes) : null, s, !a && i ? i : o ? o.__e : r.firstChild, a, c), ne(s, n, c), n.props.children = null;
234
234
  }
235
235
  e = h.slice, t = { __e: function(e, t, n, r) {
236
236
  for (var i, a, o; t = t.__;) if ((i = t.__c) && !i.__) try {
@@ -241,15 +241,15 @@ e = h.slice, t = { __e: function(e, t, n, r) {
241
241
  throw e;
242
242
  } }, n = 0, C.prototype.setState = function(e, t) {
243
243
  var n = this.__s != null && this.__s != this.state ? this.__s : this.__s = v({}, this.state);
244
- typeof e == "function" && (e = e(v({}, n), this.props)), e && v(n, e), e != null && this.__v && (t && this._sb.push(t), E(this));
244
+ typeof e == "function" && (e = e(v({}, n), this.props)), e && v(n, e), e != null && this.__v && (t && this._sb.push(t), D(this));
245
245
  }, C.prototype.forceUpdate = function(e) {
246
- this.__v && (this.__e = !0, e && this.__h.push(e), E(this));
246
+ this.__v && (this.__e = !0, e && this.__h.push(e), D(this));
247
247
  }, C.prototype.render = S, r = [], a = typeof Promise == "function" ? Promise.prototype.then.bind(Promise.resolve()) : setTimeout, o = function(e, t) {
248
248
  return e.__v.__b - t.__v.__b;
249
- }, D.__r = 0, s = Math.random().toString(8), c = "__d" + s, l = "__a" + s, u = /(PointerCapture)$|Capture$/i, d = 0, f = N(!1), p = N(!0);
249
+ }, O.__r = 0, s = Math.random().toString(8), c = "__d" + s, l = "__a" + s, u = /(PointerCapture)$|Capture$/i, d = 0, f = P(!1), p = P(!0);
250
250
  //#endregion
251
251
  //#region src/styles.css?inline
252
- var le = ":host{--markup-paper:#fdfcfa;--markup-surface:#fff;--markup-surface-2:oklch(98.5% .002 250);--markup-surface-3:oklch(95% .003 250);--markup-hover:oklch(95% .003 250);--markup-ink:#1a1614;--markup-ink-soft:oklch(32% .005 250);--markup-muted:#6b6661;--markup-border:#1a16141a;--markup-border-strong:#1a16142e;--markup-brand:#e35d2a;--markup-brand-hover:#c84d20;--markup-accent-soft:oklch(95% .04 60);--markup-accent-ink:oklch(45% .14 38);--markup-accent-glow:color-mix(in srgb, var(--markup-brand) 28%, transparent);--markup-team:#2a4ac8;--markup-shadow:0 1px 2px #1a16140f, 0 8px 28px #1a16141f;--markup-shadow-toolbar:0 1px 1px #0000000a, 0 4px 10px -2px #0f14281a, 0 18px 36px -12px #0f14282e;--markup-shadow-pop:0 1px 1px #0000000a, 0 8px 24px -6px #0f14281f, 0 28px 60px -18px #0f142838;--markup-overlay-tint:#1a16140a;--markup-danger:#dc2626;--markup-success:oklch(62% .16 150);--markup-radius:6px;--markup-radius-sm:4px;--markup-popover-w:360px;--markup-pin-enter:.18s;--markup-menu-in:.12s;--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-surface:oklch(16% .005 250);--markup-surface-2:oklch(20% .005 250);--markup-surface-3:oklch(24% .005 250);--markup-hover:oklch(24% .005 250);--markup-ink:#fdfcfa;--markup-ink-soft:oklch(80% .005 250);--markup-muted:#a8a39e;--markup-border:#fdfcfa1f;--markup-border-strong:#fdfcfa38;--markup-team:#7b99f0;--markup-accent-soft:color-mix(in srgb, var(--markup-brand) 22%, transparent);--markup-accent-ink:oklch(86% .13 55);--markup-shadow:0 1px 2px #00000059, 0 12px 40px #00000073;--markup-shadow-toolbar:0 1px 0 #ffffff0a inset, 0 1px 2px #0006, 0 12px 30px -10px #0000008c, 0 28px 60px -20px #00000080;--markup-shadow-pop:0 1px 0 #ffffff0a inset, 0 8px 24px -6px #00000073, 0 28px 60px -18px #0000008c;--markup-overlay-tint:#fdfcfa0d;--markup-danger:#f87171}@media (prefers-color-scheme:dark){:host(:not([data-theme])){--markup-paper:#1a1614;--markup-surface:oklch(16% .005 250);--markup-surface-2:oklch(20% .005 250);--markup-surface-3:oklch(24% .005 250);--markup-hover:oklch(24% .005 250);--markup-ink:#fdfcfa;--markup-ink-soft:oklch(80% .005 250);--markup-muted:#a8a39e;--markup-border:#fdfcfa1f;--markup-border-strong:#fdfcfa38;--markup-team:#7b99f0;--markup-accent-soft:color-mix(in srgb, var(--markup-brand) 22%, transparent);--markup-accent-ink:oklch(86% .13 55);--markup-shadow:0 1px 2px #00000059, 0 12px 40px #00000073;--markup-shadow-toolbar:0 1px 0 #ffffff0a inset, 0 1px 2px #0006, 0 12px 30px -10px #0000008c, 0 28px 60px -20px #00000080;--markup-shadow-pop:0 1px 0 #ffffff0a inset, 0 8px 24px -6px #00000073, 0 28px 60px -18px #0000008c;--markup-overlay-tint:#fdfcfa0d;--markup-danger:#f87171}}.markup-sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.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-toolbar{z-index:10;background:var(--markup-surface);border:1px solid var(--markup-border);pointer-events:none;height:44px;box-shadow:var(--markup-shadow-toolbar);transform-origin:50% 100%;border-radius:9999px;align-items:center;gap:2px;padding:4px;transition:box-shadow .15s,left .22s cubic-bezier(.2,.7,.2,1),transform .22s cubic-bezier(.2,.7,.2,1);animation:.22s cubic-bezier(.2,.7,.2,1) backwards markup-toolbar-in;display:inline-flex;position:fixed;bottom:22px;left:100%;transform:translate(calc(-100% - 22px))}.markup-toolbar.is-leaving,.markup-toolbar.is-leaving>*{pointer-events:none}.markup-toolbar.is-leaving{animation-name:markup-toolbar-out;animation-duration:var(--markup-toolbar-leave);animation-timing-function:ease-in;animation-fill-mode:forwards}@keyframes markup-toolbar-in{0%{opacity:0;translate:0 10px;scale:.96}to{opacity:1;translate:0;scale:1}}@keyframes markup-toolbar-out{0%{opacity:1;translate:0;scale:1}to{opacity:0;translate:0 6px;scale:.97}}.markup-toolbar>*{pointer-events:auto}.markup-tb-btn{width:36px;height:36px;color:var(--markup-ink-soft);cursor:pointer;touch-action:none;font-family:var(--markup-font);background:0 0;border:1px solid #0000;border-radius:9999px;justify-content:center;align-items:center;gap:6px;padding:0;font-size:13px;font-weight:500;transition:background .12s,color .12s,transform .12s cubic-bezier(.2,.7,.2,1);display:inline-flex;position:relative}.markup-tb-btn:hover{background:var(--markup-hover);color:var(--markup-ink)}.markup-tb-btn:active{transform:scale(.97)}.markup-tb-btn:focus-visible{box-shadow:0 0 0 2px var(--markup-surface), 0 0 0 4px var(--markup-accent-glow);outline:none}.markup-tb-btn[data-on=true]{background:var(--markup-ink);color:var(--markup-paper)}@media (prefers-color-scheme:dark){:host(:not([data-theme])) .markup-tb-btn[data-on=true]{background:var(--markup-surface-3);color:var(--markup-ink)}}:host([data-theme=dark]) .markup-tb-btn[data-on=true]{background:var(--markup-surface-3);color:var(--markup-ink)}.markup-tb-btn[data-armed=true]{background:var(--markup-brand);color:#fff}.markup-tb-btn[data-armed=true]:hover{background:var(--markup-brand-hover);color:#fff}.markup-tb-btn[disabled]{color:color-mix(in srgb, var(--markup-muted) 60%, transparent);cursor:default}.markup-tb-btn[disabled]:hover{color:color-mix(in srgb, var(--markup-muted) 60%, transparent);background:0 0}.markup-tb-btn[data-kind=identity]{gap:6px;width:auto;padding:0 4px}.markup-tb-avatar{background:var(--markup-surface-3);width:28px;height:28px;font-family:var(--markup-font-mono);color:var(--markup-ink);border:1px solid var(--markup-border);border-radius:9999px;flex-shrink:0;justify-content:center;align-items:center;font-size:10.5px;font-weight:600;display:inline-flex;overflow:hidden}.markup-tb-avatar.is-anon{color:var(--markup-muted);background:var(--markup-surface-2)}.markup-tb-sep{background:var(--markup-border);flex-shrink:0;width:1px;height:20px;margin:0 4px}.markup-tb-badge{background:var(--markup-brand);color:#fff;min-width:16px;height:16px;font-family:var(--markup-font-mono);box-shadow:0 0 0 2px var(--markup-surface);pointer-events:none;border-radius:9999px;justify-content:center;align-items:center;padding:0 4px;font-size:9.5px;font-weight:600;line-height:1;transition:transform .15s cubic-bezier(.2,.7,.2,1),opacity .15s cubic-bezier(.2,.7,.2,1);display:inline-flex;position:absolute;top:0;right:0}.markup-tb-badge[data-unread=false]{opacity:0;transform:scale(.5)}.markup-toolbar-left{left:0;transform:translate(22px)}.markup-toolbar-center{left:50%;transform:translate(-50%)}.markup-toolbar-right{left:100%;transform:translate(calc(-100% - 22px))}.markup-pop{background:var(--markup-surface);border:1px solid var(--markup-border);box-shadow:var(--markup-shadow-pop);color:var(--markup-ink);z-index:11;border-radius:12px;font-size:13px;animation:.14s cubic-bezier(.2,.7,.2,1) markup-pop-in;position:absolute;bottom:calc(100% + 8px);overflow:hidden}.markup-pop[data-pop=overflow]{--markup-view-w:260px;--markup-view-fit:min(var(--markup-view-w), calc(100vw - 24px));width:var(--markup-view-fit);align-items:flex-end;transition:width .16s cubic-bezier(.2,.7,.2,1),height .16s cubic-bezier(.2,.7,.2,1);display:flex}.markup-pop[data-pop=overflow]>*{width:var(--markup-view-fit);flex:none}.markup-pop[data-pop=overflow].is-anchor-right{justify-content:flex-end}.markup-pop[data-pop=overflow].is-anchor-center{justify-content:center}.markup-pop[data-pop=overflow]:focus{outline:none}.markup-pop[data-pop=overflow][data-view=privacy]{--markup-view-w:340px}.markup-pop[data-pop=overflow][data-view=shortcuts]{--markup-view-w:320px}.markup-menu-view{padding:6px;display:block}.markup-pop[data-pop=identity]{width:240px;padding:6px}.markup-pop[data-pop=inbox]{width:var(--markup-popover-w);padding:0}.markup-pop.is-anchor-right{right:0}.markup-pop.is-anchor-left{left:0}.markup-pop.is-anchor-center{left:50%;transform:translate(-50%)}@keyframes markup-pop-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.markup-pop.is-anchor-center{animation-name:markup-pop-in-center}@keyframes markup-pop-in-center{0%{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%)}}.markup-pop.is-leaving{pointer-events:none;animation-name:markup-pop-out;animation-duration:var(--markup-pop-leave);animation-timing-function:ease-in;animation-fill-mode:forwards}.markup-pop.is-anchor-center.is-leaving{animation-name:markup-pop-out-center}@keyframes markup-pop-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(6px)}}@keyframes markup-pop-out-center{0%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,6px)}}.markup-pop-group-label{font-family:var(--markup-font-mono);letter-spacing:.06em;color:var(--markup-muted);text-transform:lowercase;padding:8px 10px 4px;font-size:10px}.markup-segmented-row{border-radius:6px;align-items:center;gap:10px;padding:7px 8px;display:flex}.markup-segmented-row .lbl{min-width:0;color:var(--markup-ink);flex:1;font-size:13px}.markup-segmented{background:var(--markup-surface-3);border-radius:7px;gap:2px;padding:2px;display:inline-flex}.markup-segmented button{font:inherit;width:28px;height:24px;color:var(--markup-muted);cursor:pointer;background:0 0;border:none;border-radius:5px;justify-content:center;align-items:center;padding:0;transition:background .1s,color .1s;display:inline-flex}.markup-segmented button:hover{color:var(--markup-ink)}.markup-segmented button.is-on{background:var(--markup-surface);color:var(--markup-ink);box-shadow:0 1px 2px #0000000d}.markup-menu-row{cursor:pointer;width:100%;color:inherit;text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;gap:10px;padding:7px 8px;font-family:inherit;font-size:13px;display:flex}.markup-menu-row.no-underline{text-decoration:none}.markup-menu-row:hover{background:var(--markup-hover)}.markup-menu-row:disabled{opacity:.5;cursor:default}.markup-menu-row:disabled:hover{background:0 0}.markup-menu-row .ic{width:16px;height:16px;color:var(--markup-muted);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.markup-menu-row .lbl{flex-direction:column;flex:1;min-width:0;display:flex}.markup-menu-row .lbl .sub{color:var(--markup-muted);margin-top:1px;font-size:11px}.markup-menu-row .right{font-family:var(--markup-font-mono);color:var(--markup-muted);align-items:center;margin-left:auto;font-size:10.5px;display:inline-flex}.markup-menu-row.is-danger,.markup-menu-row.is-danger .ic{color:var(--markup-danger)}.markup-menu-row.is-danger:hover{background:color-mix(in srgb, var(--markup-danger) 10%, transparent)}.markup-menu-row .switch{background:var(--markup-border-strong);border-radius:9999px;flex-shrink:0;width:26px;height:16px;transition:background .12s;position:relative}.markup-menu-row .switch:after{content:\"\";background:var(--markup-surface);border-radius:9999px;width:12px;height:12px;transition:left .12s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000026}.markup-menu-row[data-on=true] .switch{background:var(--markup-brand)}.markup-menu-row[data-on=true] .switch:after{left:12px}.markup-menu-divider{background:var(--markup-border);height:1px;margin:4px 0}.markup-brand-line{font-family:var(--markup-font-mono);color:var(--markup-muted);border-top:1px solid var(--markup-border);align-items:center;gap:10px;margin-top:6px;padding:14px 10px 8px;font-size:11px;text-decoration:none;display:flex}.markup-brand-line:hover{color:var(--markup-ink)}.markup-brand-line svg{color:var(--markup-brand)}.markup-brand-line .ver{margin-left:auto}.markup-id-who{border-bottom:1px solid var(--markup-border);flex-direction:column;gap:2px;margin-bottom:4px;padding:10px 8px 12px;display:flex}.markup-id-who .nm{color:var(--markup-ink);font-size:13.5px;font-weight:600}.markup-id-who .em{font-family:var(--markup-font-mono);color:var(--markup-muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.markup-id-anon{text-align:left;flex-direction:column;gap:10px;padding:14px 10px;display:flex}.markup-id-anon .h{letter-spacing:-.005em;color:var(--markup-ink);font-size:14px;font-weight:600}.markup-id-anon .sub{color:var(--markup-muted);font-size:12.5px;line-height:18px}.markup-id-anon button:not(.markup-menu-row){background:var(--markup-ink);width:100%;color:var(--markup-paper);height:32px;font:inherit;cursor:pointer;border:none;border-radius:7px;justify-content:center;align-items:center;gap:6px;font-size:13px;font-weight:500;display:inline-flex}.markup-id-anon button:disabled{opacity:.7;cursor:default}.markup-id-anon button:not(.markup-menu-row):hover:not(:disabled){background:color-mix(in srgb, var(--markup-ink) 88%, var(--markup-surface))}.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;display:inline-flex;position:fixed;bottom:24px}.markup-hud-hidden-toast.is-leaving{animation-name:markup-hud-hidden-out;animation-duration:var(--markup-toast-leave);animation-timing-function:ease-in;animation-fill-mode:forwards}.markup-hud-hidden-toast-right{right:24px}.markup-hud-hidden-toast-left{left:24px}.markup-hud-hidden-toast-center{width:max-content;margin-inline:auto;left:0;right:0}.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}.markup-kbd.is-inline{background:color-mix(in srgb, var(--markup-ink) 8%, transparent);min-width:14px;height:14px;color:var(--markup-muted);border-radius:3px;padding:0 3px;font-size:9.5px}@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{border:2px solid var(--markup-paper);background:var(--markup-brand);color:#fff;width:28px;height:28px;font-family:var(--markup-font-mono);cursor:pointer;pointer-events:auto;opacity:var(--markup-pin-opacity,1);transform-origin:0 100%;box-shadow:0 4px 14px -4px #00000059, 0 0 0 1px color-mix(in srgb, var(--markup-brand) 50%, transparent);border-radius:999px 999px 999px 4px;justify-content:center;align-items:center;margin:0;padding:0;font-size:11.5px;font-weight:600;line-height:1;transition:background .15s,color .15s,opacity .15s,top .2s,left .2s;display:inline-flex;position:absolute;transform:translate(-50%,-100%)}.markup-pin.is-entering{animation:markup-pin-in var(--markup-pin-enter) cubic-bezier(.2, .7, .2, 1) backwards}.markup-pin:hover{background:color-mix(in oklab, var(--markup-brand) 92%, black)}:host([data-theme=dark]) .markup-pin:hover{background:color-mix(in oklab, var(--markup-brand) 88%, var(--markup-paper))}@media (prefers-color-scheme:dark){:host(:not([data-theme])) .markup-pin:hover{background:color-mix(in oklab, var(--markup-brand) 88%, var(--markup-paper))}}.markup-pin.is-active{background:var(--markup-brand);color:#fff;border-color:var(--markup-paper)}.markup-pin.is-anchor{anchor-name:--markup-active-anchor}.markup-pin.is-leaving{pointer-events:none;animation-name:markup-pin-out;animation-duration:var(--markup-pin-leave);animation-timing-function:ease-in;animation-iteration-count:1;animation-fill-mode:forwards}.markup-pin-ghost.is-leaving{animation-duration:var(--markup-popover-leave)}@keyframes markup-pin-in{0%{opacity:0;transform:translate(-50%,-100%)scale(.5)}to{opacity:var(--markup-pin-opacity,1);transform:translate(-50%,-100%)scale(1)}}@keyframes markup-pin-out{0%{opacity:var(--markup-pin-opacity,1);transform:translate(-50%,-100%)scale(1)}to{opacity:0;transform:translate(-50%,-100%)scale(.7)}}.markup-pin.is-unresolved{--markup-pin-opacity:.6}.markup-pin.is-closed,.markup-pin.is-closed.is-active{background:var(--markup-paper);color:var(--markup-muted);border-color:var(--markup-muted);box-shadow:0 4px 14px -4px #00000040}.markup-pin.is-closed:hover{background:var(--markup-paper);color:var(--markup-ink)}.markup-pin-ghost{background:var(--markup-brand);color:#fff;cursor:default;pointer-events:none;animation:1.2s ease-in-out infinite markup-ghost-pulse}.markup-pin-num{pointer-events:none;justify-content:center;align-items:center;display:inline-flex}.markup-pin-count{background:var(--markup-ink);min-width:16px;height:16px;color:var(--markup-paper);font-family:var(--markup-font-mono);text-align:center;border:2px solid var(--markup-paper);pointer-events:none;border-radius:999px;padding:0 4px;font-size:9.5px;font-weight:600;line-height:12px;position:absolute;top:-6px;right:-8px}@keyframes markup-ghost-pulse{0%,to{box-shadow:0 4px 14px -4px #00000059,0 0 #e35d2a66}50%{box-shadow:0 4px 14px -4px #00000059,0 0 0 10px #e35d2a00}}.markup-placement-overlay{background:var(--markup-overlay-tint);pointer-events:none;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:var(--markup-popover-w);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}}@supports (transition-behavior:allow-discrete) and selector(:popover-open){.markup-popover{opacity:0;transition:opacity var(--markup-popover-leave) ease, transform var(--markup-popover-leave) ease, overlay var(--markup-popover-leave) allow-discrete, display var(--markup-popover-leave) allow-discrete;animation:none;display:none;transform:translateY(-4px)scale(.98)}.markup-popover:popover-open{opacity:1;display:flex;transform:none}@starting-style{.markup-popover:popover-open{opacity:0;transform:translateY(-4px)scale(.98)}}.markup-popover:not(:popover-open){pointer-events:none}}.markup-popover.is-leaving{pointer-events:none}.markup-popover.is-hud-hidden{transition-property:none;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-popover-title{min-width:0;font-family:var(--markup-font-mono);letter-spacing:.02em;color:var(--markup-muted);white-space:nowrap;text-overflow:ellipsis;flex:auto;font-size:11px;line-height:1;overflow:hidden}.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);animation:markup-menu-in var(--markup-menu-in) ease-out;padding:4px;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:translate(var(--markup-menu-from-x,0), var(--markup-menu-from-y,-4px))}to{opacity:1;transform:translate(0)}}@keyframes markup-menu-out{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(var(--markup-menu-from-x,0), var(--markup-menu-from-y,-4px))}}.markup-popover-body{border-top:1px solid var(--markup-border);background:var(--markup-paper);flex-direction:column;gap:6px;padding:10px 12px 8px;display:flex}.markup-popover-header+.markup-popover-body{border-top:none}.markup-popover-byline{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.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,transform .12s cubic-bezier(.2,.7,.2,1);display:inline-flex}.markup-icon-btn:hover,.markup-icon-btn.is-open{background:var(--markup-border);color:var(--markup-ink)}.markup-icon-btn:active{transform:scale(.97)}.markup-comments{flex-direction:column;max-height:420px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.markup-comment{border-bottom:1px solid var(--markup-border);grid-template-columns:26px 1fr;align-items:start;gap:0 10px;padding:12px;display:grid}.markup-comment:last-child{border-bottom:none}.markup-comment>:not(.markup-comment-avatar){grid-column:2}.markup-comment.is-new{animation:.2s cubic-bezier(.2,.7,.2,1) markup-comment-in}@keyframes markup-comment-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.markup-comment-avatar{background:var(--markup-border);width:26px;height:26px;color:var(--markup-ink);font-family:var(--markup-font-mono);letter-spacing:.02em;text-transform:uppercase;-webkit-user-select:none;user-select:none;border-radius:999px;grid-area:1/1/span 4;justify-content:center;align-items:center;margin-top:-3px;font-size:10.5px;font-weight:600;display:inline-flex;overflow:hidden}.markup-avatar-initials{text-box-trim:trim-both;text-box-edge:cap alphabetic;line-height:1}.markup-avatar-img{object-fit:cover;width:100%;height:100%;display:block}.markup-comment-avatar[data-tone=\"1\"]{color:oklch(25% .07 230);background:oklch(85% .07 200)}.markup-comment-avatar[data-tone=\"2\"]{color:oklch(30% .1 150);background:oklch(88% .07 130)}.markup-comment-avatar[data-tone=\"3\"]{color:oklch(35% .1 40);background:oklch(90% .05 50)}.markup-comment-avatar[data-tone=\"4\"]{color:oklch(30% .1 320);background:oklch(87% .07 320)}.markup-comment-avatar[data-tone=\"5\"]{color:oklch(32% .09 70);background:oklch(88% .06 80)}.markup-comment-meta{align-items:center;gap:8px;min-width:0;margin-bottom:4px;font-size:13px;display:flex}.markup-comment-author{color:var(--markup-ink);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:13px;font-weight:600;overflow:hidden}.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-badge.is-agent{background:color-mix(in srgb, var(--markup-brand) 14%, transparent);color:var(--markup-brand);letter-spacing:normal;justify-content:center;width:14px;padding:0}.markup-comment-time{color:var(--markup-muted);font-family:var(--markup-font-mono);letter-spacing:.04em;white-space:nowrap;flex-shrink:0;font-size:10.5px}.markup-comment-body{color:var(--markup-ink);white-space:pre-wrap;word-break:break-word;margin:0;font-size:13.5px;line-height:19px}.markup-comment-link{color:var(--markup-brand);text-underline-offset:2px;text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--markup-brand) 40%, transparent);text-decoration-color:color-mix(in srgb, var(--markup-brand) 40%, transparent)}.markup-comment-link:hover{-webkit-text-decoration-color:var(--markup-brand);text-decoration-color:var(--markup-brand)}.markup-comment-edited{color:var(--markup-muted);font-family:var(--markup-font-mono);margin-left:2px;font-size:10.5px}.markup-comment-edited:before{content:\" · \"}.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{--markup-menu-from-y:4px;top:auto;bottom:calc(100% + 6px)}.markup-comment-menu.is-side .markup-thread-menu-list{--markup-menu-from-x:4px;--markup-menu-from-y:0;top:-4px;right:calc(100% + 2px)}.markup-comment{position:relative}.markup-reactions{flex-wrap:wrap;align-items:center;gap:4px;margin-top:6px;display:flex}.markup-reaction-chip{border:1px solid var(--markup-border);background:var(--markup-surface-3);color:var(--markup-ink);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:4px;padding:2px 7px;font-size:11.5px;line-height:1.2;transition:background .12s,border-color .12s;display:inline-flex}.markup-reaction-chip:hover:not(:disabled){background:var(--markup-hover)}.markup-reaction-chip.is-mine{background:var(--markup-accent-soft);border-color:color-mix(in srgb, var(--markup-brand) 50%, transparent);color:var(--markup-accent-ink)}.markup-reaction-chip.is-mine:hover:not(:disabled){background:color-mix(in srgb, var(--markup-brand) 18%, 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:10.5px}.markup-reaction-chip.is-mine .markup-reaction-count{color:var(--markup-accent-ink)}.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{width:22px;height:22px;color:var(--markup-muted);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;font-size:13px;line-height:1;transition:background .12s,color .12s;display:inline-flex}.markup-reaction-add:hover,.markup-reaction-add.is-open{background:var(--markup-hover);color:var(--markup-ink)}.markup-reaction-picker{z-index:1;border:1px solid var(--markup-border-strong);background:var(--markup-paper);animation:markup-menu-in var(--markup-menu-in) ease;border-radius:8px;gap:2px;padding:4px;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{--markup-menu-from-y:4px;top:auto;bottom:calc(100% + 6px)}.markup-reaction-picker-wrap.is-side .markup-reaction-picker{--markup-menu-from-x:4px;--markup-menu-from-y:0;top:-4px;right:calc(100% + 2px)}.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-actions{justify-content:flex-end;gap:6px;display:flex}.markup-composer{flex-direction:column;display:flex;position:relative}.markup-composer-input{width:100%;min-height:38px;max-height:120px;color:var(--markup-ink);font-family:var(--markup-font);background:0 0;border:none;border-radius:0;padding:2px 0;font-size:13.5px;line-height:19px;transition:none;overflow-y:auto}.markup-composer-input:focus-visible{box-shadow:none;outline:none}.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{opacity:0;background:0 0;border:none;border-radius:0;justify-content:space-between;align-items:center;gap:8px;padding:0;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:.04em;color:var(--markup-muted);align-items:center;gap:3px;font-size:10.5px;display:inline-flex}.markup-composer-hint-label{margin-left:2px}.markup-composer-error{color:var(--markup-brand)}.markup-composer-actions{align-items:center;gap:6px;display:flex}.markup-composer .markup-btn-primary{background:var(--markup-ink);height:26px;color:var(--markup-paper);border-radius:6px;padding:0 10px}.markup-composer .markup-btn-primary:hover:not(:disabled){background:color-mix(in srgb, var(--markup-ink) 88%, var(--markup-paper))}.markup-composer-actions-empty{transition:opacity .12s;position:absolute;bottom:0;right:0}.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-author-copy{color:var(--markup-fg);margin:0;font-size:13px;line-height:1.5}.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,transform .12s cubic-bezier(.2,.7,.2,1);display:inline-flex}.markup-btn:disabled{opacity:.5;cursor:not-allowed}.markup-btn:active:not(:disabled){transform:scale(.97)}.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-btn-danger{color:var(--markup-danger)}.markup-btn-danger:hover:not(:disabled){background:color-mix(in srgb, var(--markup-danger) 10%, transparent)}.markup-discard-confirm{background:color-mix(in srgb, var(--markup-paper) 92%, transparent);-webkit-backdrop-filter:blur(6px);animation:markup-menu-in var(--markup-menu-in) ease-out;flex-direction:column;justify-content:center;gap:4px;padding:16px;display:flex;position:absolute;inset:0}.markup-thread-menu-list.is-leaving,.markup-reaction-picker.is-leaving,.markup-discard-confirm.is-leaving{pointer-events:none;animation-name:markup-menu-out;animation-duration:var(--markup-menu-leave);animation-timing-function:ease-in;animation-fill-mode:forwards}.markup-discard-confirm-title{color:var(--markup-ink);margin:0;font-size:13px;font-weight:600}.markup-discard-confirm-desc{color:var(--markup-muted);margin:0;font-size:12px}.markup-discard-confirm-actions{gap:6px;margin-top:10px;display:flex}.markup-screenshot-row{border:1px dashed var(--markup-border-strong);color:var(--markup-muted);border-radius:6px;flex-direction:column;gap:8px;margin-top:0;padding:6px 8px;font-size:11.5px;display:flex}.markup-screenshot-row.is-attached{border-style:solid;border-color:var(--markup-border);padding:8px}.markup-screenshot-row-head{justify-content:space-between;align-items:center;gap:8px;min-height:16px;display:flex}.markup-screenshot-status{color:var(--markup-muted);font-family:var(--markup-font-mono);letter-spacing:.04em;align-items:center;gap:5px;font-size:11px;display:flex}.markup-screenshot-row.is-failed{opacity:.85;border-style:dotted}.markup-screenshot-toggle{cursor:pointer;color:var(--markup-muted);font-family:var(--markup-font-mono);letter-spacing:.04em;align-items:center;gap:5px;font-size:11px;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-link{border:1px solid var(--markup-border-strong);cursor:zoom-in;background:0 0;border-radius:3px;margin:-4px auto -4px -4px;padding:0;transition:border-color .12s;display:block;overflow:hidden}.markup-screenshot-thumb-link:hover,.markup-screenshot-thumb-link:focus-visible{border-color:var(--markup-brand)}.markup-screenshot-thumb{object-fit:cover;object-position:top;width:auto;height:22px;display:block}.markup-screenshot-redacted-chip{background:color-mix(in srgb, var(--markup-success,oklch(62% .16 150)) 16%, transparent);color:var(--markup-success,oklch(62% .16 150));font-family:var(--markup-font-mono);white-space:nowrap;cursor:pointer;border:none;border-radius:999px;align-items:center;gap:3px;padding:1px 7px;font-size:10px;display:inline-flex}.markup-screenshot-redacted-chip:hover{filter:brightness(1.05)}.markup-screenshot-redacted-arrow{font-style:normal}.markup-screenshot-redacted-list{flex-direction:column;gap:2px;display:flex}.markup-screenshot-redacted-selector{font-family:var(--markup-font-mono);color:var(--markup-muted);font-size:9px;display:block}.markup-screenshot-help{font-family:var(--markup-font-mono);color:var(--markup-muted);margin:0;font-size:10px;line-height:1.5}.markup-screenshot-help-link{color:var(--markup-ink);text-underline-offset:2px;text-decoration:underline}.markup-screenshot-help-link:hover{color:var(--markup-brand)}.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}@supports (transition-behavior:allow-discrete){.markup-lightbox{opacity:0;transition:opacity var(--markup-lightbox-leave) ease, overlay var(--markup-lightbox-leave) allow-discrete, display var(--markup-lightbox-leave) allow-discrete}.markup-lightbox[open]{opacity:1}@starting-style{.markup-lightbox[open]{opacity:0}}}.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-toolbar,.markup-toolbar.is-leaving,.markup-hud-hidden-toast,.markup-hud-hidden-toast.is-leaving,.markup-tb-btn,.markup-tb-badge,.markup-comment,.markup-pin,.markup-pin.is-entering,.markup-pin.is-leaving,.markup-pop,.markup-pop.is-leaving,.markup-pop[data-pop=overflow],.markup-pop.is-anchor-center,.markup-pop.is-anchor-center.is-leaving,.markup-thread-menu-list,.markup-thread-menu-list.is-leaving,.markup-reaction-picker,.markup-reaction-picker.is-leaving,.markup-discard-confirm,.markup-discard-confirm.is-leaving,.markup-icon-btn,.markup-btn,.markup-popover,.markup-pin-ghost,.markup-placement-overlay,.markup-placement-cursor-help,.markup-lightbox,.markup-lightbox-img{transition:none;animation:none}}.markup-mention-chip{background:var(--markup-accent-soft);color:var(--markup-accent-ink);border-radius:3px;padding:0 2px;font-weight:500;display:inline-block}.markup-mention-input{white-space:pre-wrap;overflow-wrap:anywhere;cursor:text;outline:none;position:relative}.markup-mention-input[aria-disabled=true]{opacity:.6;cursor:default}.markup-mention-input[data-empty]:before{content:attr(data-placeholder);color:var(--markup-muted);pointer-events:none;position:absolute;inset:0 auto auto 0}.markup-mention-input .markup-mention-chip{white-space:nowrap;padding:0 3px}.markup-comment-edit-input{border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius-sm);background:var(--markup-paper);width:100%;min-height:58px;max-height:200px;color:var(--markup-ink);font:inherit;padding:8px 10px;font-size:13px;line-height:1.5;overflow-y:auto}.markup-comment-edit-input:focus-visible{border-color:var(--markup-brand);box-shadow:0 0 0 3px #e35d2a2e}.markup-comment-edit-input[data-empty]:before{inset:8px auto auto 10px}.markup-mention-picker{z-index:10;box-sizing:border-box;background:var(--markup-paper);border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius-sm);max-height:180px;box-shadow:var(--markup-shadow);margin:0;padding:4px;list-style:none;position:fixed;overflow-y:auto}.markup-mention-picker-item{border-radius:var(--markup-radius-sm);cursor:pointer;color:var(--markup-ink);justify-content:space-between;align-items:center;gap:8px;padding:6px 8px;font-size:13px;display:flex}.markup-mention-picker-item.is-active{background:color-mix(in srgb, var(--markup-brand) 12%, transparent)}.markup-mention-picker-name{font-weight:500}.markup-mention-picker-trigger{color:var(--markup-muted);font-family:var(--markup-font-mono);font-size:10px}.markup-notifications-panel{max-height:min(60vh,420px);color:var(--markup-ink);flex-direction:column;display:flex}.markup-notifications-panel-header{border-bottom:1px solid var(--markup-border);align-items:center;gap:8px;padding:8px 10px;display:flex}.markup-notifications-panel-header .markup-eyebrow{flex:1}.markup-notifications-panel-actions{align-items:center;gap:8px;display:flex}.markup-notifications-panel-mark-all{color:var(--markup-muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:11px}.markup-notifications-panel-mark-all:hover{color:var(--markup-ink)}.markup-notifications-panel-body{flex:1;overflow-y:auto}.markup-notifications-panel-empty,.markup-notifications-panel-error{text-align:center;color:var(--markup-muted);padding:24px 12px;font-size:12px}.markup-notifications-panel-empty-title{color:var(--markup-ink);margin:0 0 4px;font-weight:500}.markup-notifications-panel-empty-sub{color:var(--markup-muted);margin:0;line-height:1.4}.markup-notifications-panel-error{color:var(--markup-danger,#b91c1c)}.markup-notifications-panel-list{margin:0;padding:4px;list-style:none}.markup-notifications-panel-row{border-radius:var(--markup-radius-sm);text-align:start;cursor:pointer;width:100%;font:inherit;color:inherit;background:0 0;border:none;flex-direction:column;gap:4px;padding:8px 10px;display:flex}.markup-notifications-panel-row:hover{background:color-mix(in srgb, var(--markup-brand) 8%, transparent)}.markup-notifications-panel-row.is-unread{background:color-mix(in srgb, var(--markup-brand) 5%, transparent)}.markup-notifications-panel-meta{align-items:center;gap:6px;font-size:11px;display:flex}.markup-notifications-panel-dot{background:var(--markup-brand);border-radius:999px;flex-shrink:0;width:6px;height:6px}.markup-notifications-panel-actor{font-weight:600}.markup-notifications-panel-sep{color:var(--markup-muted)}.markup-notifications-panel-time{color:var(--markup-muted);font-family:var(--markup-font-mono);font-size:10px}.markup-notifications-panel-thread{color:var(--markup-muted);margin:0;font-size:12px}.markup-notifications-panel-thread-title{color:var(--markup-ink)}.markup-notifications-panel-excerpt{color:color-mix(in srgb, var(--markup-ink) 80%, transparent);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:12px;font-style:italic;display:-webkit-box;overflow:hidden}.markup-panel-pop{z-index:11;pointer-events:auto;width:var(--markup-popover-w);max-width:calc(100vw - 24px);position:fixed;bottom:76px}.markup-panel-pop-right{right:22px}.markup-panel-pop-left{left:22px}.markup-panel-pop-center{left:50%;transform:translate(-50%)}.markup-panel-pop .markup-pop{width:100%;position:static}.markup-panel-pop .markup-notifications-panel{max-height:min(60vh,480px)}.markup-panel-pop .markup-notifications-panel-header{padding:12px 14px}.markup-panel-pop .markup-notifications-panel-header .markup-icon-btn{display:none}.markup-panel{max-height:min(70vh,520px);color:var(--markup-ink);flex-direction:column;display:flex}.markup-panel-header{border-bottom:1px solid var(--markup-border);align-items:center;gap:8px;padding:12px 14px;display:flex}.markup-panel-header .markup-eyebrow{flex:1}.markup-panel-back{color:var(--markup-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;align-items:center;gap:2px;margin-left:-4px;padding:3px 6px 3px 4px;font-family:inherit;font-size:12px;display:inline-flex}.markup-panel-back:hover{background:var(--markup-hover);color:var(--markup-ink)}.markup-panel-body{flex:1;padding:4px 14px 14px;overflow-y:auto}.markup-panel-body:focus{outline:none}.markup-panel-body:focus-visible{box-shadow:inset 0 0 0 2px var(--markup-accent-glow);outline:none}.markup-panel-section{border-bottom:1px solid var(--markup-border);padding:10px 0}.markup-panel-section:last-child{border-bottom:none;padding-bottom:2px}.markup-panel-section-title{font-family:var(--markup-font-mono);letter-spacing:.06em;text-transform:lowercase;color:var(--markup-muted);margin:0 0 6px;font-size:10px;font-weight:400}.markup-panel-text{color:var(--markup-ink-soft);margin:0;font-size:12.5px;line-height:1.5}.markup-panel-text strong{color:var(--markup-ink);font-weight:600}.markup-panel-mono{font-family:var(--markup-font-mono);color:var(--markup-ink);word-break:break-all;font-size:11.5px}.markup-panel-list{color:var(--markup-ink-soft);margin:0;padding-left:16px;font-size:12.5px;line-height:1.5}.markup-panel-list li{margin-bottom:3px}.markup-panel-list li::marker{color:var(--markup-muted)}.markup-panel-note{color:var(--markup-muted);margin:8px 0 0;font-size:11.5px;line-height:1.45}.markup-panel-error{color:var(--markup-danger);margin:8px 0 0;font-size:11.5px;line-height:1.45}.markup-panel-action{border:1px solid var(--markup-border-strong);width:100%;height:30px;color:var(--markup-ink);font:inherit;cursor:pointer;background:0 0;border-radius:7px;margin-top:10px;padding:0 10px;font-size:12.5px;transition:background .12s,border-color .12s,color .12s}.markup-panel-action:hover:not(:disabled){background:var(--markup-hover)}.markup-panel-action:disabled{opacity:.6;cursor:default}.markup-panel-action.is-danger{border-color:color-mix(in srgb, var(--markup-danger) 45%, transparent);color:var(--markup-danger)}.markup-panel-action.is-danger:hover:not(:disabled){background:color-mix(in srgb, var(--markup-danger) 10%, transparent)}.markup-shortcut-list{margin:0;padding:0;list-style:none}.markup-shortcut-row{align-items:center;gap:10px;min-height:24px;padding:2px 0;display:flex}.markup-shortcut-label{min-width:0;color:var(--markup-ink-soft);flex:1;font-size:12.5px;line-height:1.4}.markup-shortcut-keys{flex-shrink:0;align-items:center;gap:4px;display:inline-flex}.markup-shortcut-chord{align-items:center;gap:3px;display:inline-flex}.markup-shortcut-or{color:var(--markup-muted);margin-right:1px;font-size:10px}", ue = 1e4, de = 20, fe = 60, pe = null, me = [], he = null, ge = !1, _e = ve();
252
+ var le = ":host{--markup-paper:#fdfcfa;--markup-surface:#fff;--markup-surface-2:oklch(98.5% .002 250);--markup-surface-3:oklch(95% .003 250);--markup-hover:oklch(95% .003 250);--markup-ink:#1a1614;--markup-ink-soft:oklch(32% .005 250);--markup-muted:#6b6661;--markup-border:#1a16141a;--markup-border-strong:#1a16142e;--markup-brand:#e35d2a;--markup-brand-hover:#c84d20;--markup-accent-soft:oklch(95% .04 60);--markup-accent-ink:oklch(45% .14 38);--markup-brand-fill:var(--markup-brand-hover);--markup-accent-glow:color-mix(in srgb, var(--markup-brand) 28%, transparent);--markup-team:#2a4ac8;--markup-shadow:0 1px 2px #1a16140f, 0 8px 28px #1a16141f;--markup-shadow-toolbar:0 1px 1px #0000000a, 0 4px 10px -2px #0f14281a, 0 18px 36px -12px #0f14282e;--markup-shadow-pop:0 1px 1px #0000000a, 0 8px 24px -6px #0f14281f, 0 28px 60px -18px #0f142838;--markup-overlay-tint:#1a16140a;--markup-danger:#b91c1c;--markup-success:oklch(62% .16 150);--markup-success-ink:oklch(45% .13 150);--markup-radius:6px;--markup-radius-sm:4px;--markup-popover-w:360px;--markup-pin-enter:.18s;--markup-menu-in:.12s;--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-surface:oklch(16% .005 250);--markup-surface-2:oklch(20% .005 250);--markup-surface-3:oklch(24% .005 250);--markup-hover:oklch(24% .005 250);--markup-ink:#fdfcfa;--markup-ink-soft:oklch(80% .005 250);--markup-muted:#a8a39e;--markup-border:#fdfcfa1f;--markup-border-strong:#fdfcfa38;--markup-team:#7b99f0;--markup-accent-soft:color-mix(in srgb, var(--markup-brand) 22%, transparent);--markup-accent-ink:oklch(86% .13 55);--markup-brand-fill:var(--markup-brand);--markup-success-ink:oklch(80% .15 150);--markup-shadow:0 1px 2px #00000059, 0 12px 40px #00000073;--markup-shadow-toolbar:0 1px 0 #ffffff0a inset, 0 1px 2px #0006, 0 12px 30px -10px #0000008c, 0 28px 60px -20px #00000080;--markup-shadow-pop:0 1px 0 #ffffff0a inset, 0 8px 24px -6px #00000073, 0 28px 60px -18px #0000008c;--markup-overlay-tint:#fdfcfa0d;--markup-danger:#f87171}@media (prefers-color-scheme:dark){:host(:not([data-theme])){--markup-paper:#1a1614;--markup-surface:oklch(16% .005 250);--markup-surface-2:oklch(20% .005 250);--markup-surface-3:oklch(24% .005 250);--markup-hover:oklch(24% .005 250);--markup-ink:#fdfcfa;--markup-ink-soft:oklch(80% .005 250);--markup-muted:#a8a39e;--markup-border:#fdfcfa1f;--markup-border-strong:#fdfcfa38;--markup-team:#7b99f0;--markup-accent-soft:color-mix(in srgb, var(--markup-brand) 22%, transparent);--markup-accent-ink:oklch(86% .13 55);--markup-brand-fill:var(--markup-brand);--markup-success-ink:oklch(80% .15 150);--markup-shadow:0 1px 2px #00000059, 0 12px 40px #00000073;--markup-shadow-toolbar:0 1px 0 #ffffff0a inset, 0 1px 2px #0006, 0 12px 30px -10px #0000008c, 0 28px 60px -20px #00000080;--markup-shadow-pop:0 1px 0 #ffffff0a inset, 0 8px 24px -6px #00000073, 0 28px 60px -18px #0000008c;--markup-overlay-tint:#fdfcfa0d;--markup-danger:#f87171}}.markup-sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.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-toolbar{z-index:10;background:var(--markup-surface);border:1px solid var(--markup-border);pointer-events:none;height:44px;box-shadow:var(--markup-shadow-toolbar);transform-origin:50% 100%;border-radius:9999px;align-items:center;gap:2px;padding:4px;transition:box-shadow .15s,left .22s cubic-bezier(.2,.7,.2,1),transform .22s cubic-bezier(.2,.7,.2,1);animation:.22s cubic-bezier(.2,.7,.2,1) backwards markup-toolbar-in;display:inline-flex;position:fixed;bottom:22px;left:100%;transform:translate(calc(-100% - 22px))}.markup-toolbar.is-leaving,.markup-toolbar.is-leaving>*{pointer-events:none}.markup-toolbar.is-leaving{animation-name:markup-toolbar-out;animation-duration:var(--markup-toolbar-leave);animation-timing-function:ease-in;animation-fill-mode:forwards}@keyframes markup-toolbar-in{0%{opacity:0;translate:0 10px;scale:.96}to{opacity:1;translate:0;scale:1}}@keyframes markup-toolbar-out{0%{opacity:1;translate:0;scale:1}to{opacity:0;translate:0 6px;scale:.97}}.markup-toolbar>*{pointer-events:auto}.markup-tb-btn{width:36px;height:36px;color:var(--markup-ink-soft);cursor:pointer;touch-action:none;font-family:var(--markup-font);background:0 0;border:1px solid #0000;border-radius:9999px;justify-content:center;align-items:center;gap:6px;padding:0;font-size:13px;font-weight:500;transition:background .12s,color .12s,transform .12s cubic-bezier(.2,.7,.2,1);display:inline-flex;position:relative}.markup-tb-btn:hover{background:var(--markup-hover);color:var(--markup-ink)}.markup-tb-btn:active{transform:scale(.97)}.markup-tb-btn:focus-visible{box-shadow:0 0 0 2px var(--markup-surface), 0 0 0 4px var(--markup-brand);outline:none}.markup-tb-btn[data-on=true]{background:var(--markup-ink);color:var(--markup-paper)}@media (prefers-color-scheme:dark){:host(:not([data-theme])) .markup-tb-btn[data-on=true]{background:var(--markup-surface-3);color:var(--markup-ink)}}:host([data-theme=dark]) .markup-tb-btn[data-on=true]{background:var(--markup-surface-3);color:var(--markup-ink)}.markup-tb-btn[data-armed=true]{background:var(--markup-brand);color:#fff}.markup-tb-btn[data-armed=true]:hover{background:var(--markup-brand-hover);color:#fff}.markup-tb-btn[disabled]{color:color-mix(in srgb, var(--markup-muted) 60%, transparent);cursor:default}.markup-tb-btn[disabled]:hover{color:color-mix(in srgb, var(--markup-muted) 60%, transparent);background:0 0}.markup-tb-btn[data-kind=identity]{gap:6px;width:auto;padding:0 4px}.markup-tb-avatar{background:var(--markup-surface-3);width:28px;height:28px;font-family:var(--markup-font-mono);color:var(--markup-ink);border:1px solid var(--markup-border);border-radius:9999px;flex-shrink:0;justify-content:center;align-items:center;font-size:10.5px;font-weight:600;display:inline-flex;overflow:hidden}.markup-tb-avatar.is-anon{color:var(--markup-muted);background:var(--markup-surface-2)}.markup-tb-sep{background:var(--markup-border);flex-shrink:0;width:1px;height:20px;margin:0 4px}.markup-tb-badge{background:var(--markup-brand);color:#fff;min-width:16px;height:16px;font-family:var(--markup-font-mono);box-shadow:0 0 0 2px var(--markup-surface);pointer-events:none;border-radius:9999px;justify-content:center;align-items:center;padding:0 4px;font-size:9.5px;font-weight:600;line-height:1;transition:transform .15s cubic-bezier(.2,.7,.2,1),opacity .15s cubic-bezier(.2,.7,.2,1);display:inline-flex;position:absolute;top:0;right:0}.markup-tb-badge[data-unread=false]{opacity:0;transform:scale(.5)}.markup-toolbar-left{left:0;transform:translate(22px)}.markup-toolbar-center{left:50%;transform:translate(-50%)}.markup-toolbar-right{left:100%;transform:translate(calc(-100% - 22px))}.markup-pop{background:var(--markup-surface);border:1px solid var(--markup-border);box-shadow:var(--markup-shadow-pop);color:var(--markup-ink);z-index:11;border-radius:12px;font-size:13px;animation:.14s cubic-bezier(.2,.7,.2,1) markup-pop-in;position:absolute;bottom:calc(100% + 8px);overflow:hidden}.markup-pop[data-pop=overflow]{--markup-view-w:260px;--markup-view-fit:min(var(--markup-view-w), calc(100vw - 24px));width:var(--markup-view-fit);align-items:flex-end;transition:width .16s cubic-bezier(.2,.7,.2,1),height .16s cubic-bezier(.2,.7,.2,1);display:flex}.markup-pop[data-pop=overflow]>*{width:var(--markup-view-fit);flex:none}.markup-pop[data-pop=overflow].is-anchor-right{justify-content:flex-end}.markup-pop[data-pop=overflow].is-anchor-center{justify-content:center}.markup-pop[data-pop=overflow]:focus{outline:none}.markup-pop[data-pop=overflow][data-view=privacy]{--markup-view-w:340px}.markup-pop[data-pop=overflow][data-view=shortcuts]{--markup-view-w:320px}.markup-menu-view{padding:6px;display:block}.markup-pop[data-pop=identity]{width:240px;padding:6px}.markup-pop[data-pop=inbox]{width:var(--markup-popover-w);padding:0}.markup-pop.is-anchor-right{right:0}.markup-pop.is-anchor-left{left:0}.markup-pop.is-anchor-center{left:50%;transform:translate(-50%)}@keyframes markup-pop-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.markup-pop.is-anchor-center{animation-name:markup-pop-in-center}@keyframes markup-pop-in-center{0%{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%)}}.markup-pop.is-leaving{pointer-events:none;animation-name:markup-pop-out;animation-duration:var(--markup-pop-leave);animation-timing-function:ease-in;animation-fill-mode:forwards}.markup-pop.is-anchor-center.is-leaving{animation-name:markup-pop-out-center}@keyframes markup-pop-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(6px)}}@keyframes markup-pop-out-center{0%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,6px)}}.markup-pop-group-label{font-family:var(--markup-font-mono);letter-spacing:.06em;color:var(--markup-muted);text-transform:lowercase;padding:8px 10px 4px;font-size:10px}.markup-segmented-row{border-radius:6px;align-items:center;gap:10px;padding:7px 8px;display:flex}.markup-segmented-row .lbl{min-width:0;color:var(--markup-ink);flex:1;font-size:13px}.markup-segmented{background:var(--markup-surface-3);border-radius:7px;gap:2px;padding:2px;display:inline-flex}.markup-segmented button{font:inherit;width:28px;height:24px;color:var(--markup-muted);cursor:pointer;background:0 0;border:none;border-radius:5px;justify-content:center;align-items:center;padding:0;transition:background .1s,color .1s;display:inline-flex}.markup-segmented button:hover{color:var(--markup-ink)}.markup-segmented button.is-on{background:var(--markup-surface);color:var(--markup-ink);box-shadow:0 1px 2px #0000000d}.markup-menu-row{cursor:pointer;width:100%;color:inherit;text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;gap:10px;padding:7px 8px;font-family:inherit;font-size:13px;display:flex}.markup-menu-row.no-underline{text-decoration:none}.markup-menu-row:hover{background:var(--markup-hover)}.markup-menu-row:disabled{opacity:.5;cursor:default}.markup-menu-row:disabled:hover{background:0 0}.markup-menu-row .ic{width:16px;height:16px;color:var(--markup-muted);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.markup-menu-row .lbl{flex-direction:column;flex:1;min-width:0;display:flex}.markup-menu-row .lbl .sub{color:var(--markup-muted);margin-top:1px;font-size:11px}.markup-menu-row .right{font-family:var(--markup-font-mono);color:var(--markup-muted);align-items:center;margin-left:auto;font-size:10.5px;display:inline-flex}.markup-menu-row.is-danger,.markup-menu-row.is-danger .ic{color:var(--markup-danger)}.markup-menu-row.is-danger:hover{background:color-mix(in srgb, var(--markup-danger) 10%, transparent)}.markup-menu-row .switch{background:var(--markup-border-strong);border-radius:9999px;flex-shrink:0;width:26px;height:16px;transition:background .12s;position:relative}.markup-menu-row .switch:after{content:\"\";background:var(--markup-surface);border-radius:9999px;width:12px;height:12px;transition:left .12s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000026}.markup-menu-row[data-on=true] .switch{background:var(--markup-brand)}.markup-menu-row[data-on=true] .switch:after{left:12px}.markup-menu-divider{background:var(--markup-border);height:1px;margin:4px 0}.markup-brand-line{font-family:var(--markup-font-mono);color:var(--markup-muted);border-top:1px solid var(--markup-border);align-items:center;gap:10px;margin-top:6px;padding:14px 10px 8px;font-size:11px;text-decoration:none;display:flex}.markup-brand-line:hover{color:var(--markup-ink)}.markup-brand-line svg{color:var(--markup-brand)}.markup-brand-line .ver{margin-left:auto}.markup-id-who{border-bottom:1px solid var(--markup-border);flex-direction:column;gap:2px;margin-bottom:4px;padding:10px 8px 12px;display:flex}.markup-id-who .nm{color:var(--markup-ink);font-size:13.5px;font-weight:600}.markup-id-who .em{font-family:var(--markup-font-mono);color:var(--markup-muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.markup-id-anon{text-align:left;flex-direction:column;gap:10px;padding:14px 10px;display:flex}.markup-id-anon .h{letter-spacing:-.005em;color:var(--markup-ink);font-size:14px;font-weight:600}.markup-id-anon .sub{color:var(--markup-muted);font-size:12.5px;line-height:18px}.markup-id-anon button:not(.markup-menu-row){background:var(--markup-ink);width:100%;color:var(--markup-paper);height:32px;font:inherit;cursor:pointer;border:none;border-radius:7px;justify-content:center;align-items:center;gap:6px;font-size:13px;font-weight:500;display:inline-flex}.markup-id-anon button:disabled{opacity:.7;cursor:default}.markup-id-anon button:not(.markup-menu-row):hover:not(:disabled){background:color-mix(in srgb, var(--markup-ink) 88%, var(--markup-surface))}.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;display:inline-flex;position:fixed;bottom:24px}.markup-hud-hidden-toast.is-leaving{animation-name:markup-hud-hidden-out;animation-duration:var(--markup-toast-leave);animation-timing-function:ease-in;animation-fill-mode:forwards}.markup-hud-hidden-toast-right{right:24px}.markup-hud-hidden-toast-left{left:24px}.markup-hud-hidden-toast-center{width:max-content;margin-inline:auto;left:0;right:0}.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}.markup-kbd.is-inline{background:color-mix(in srgb, var(--markup-ink) 8%, transparent);min-width:14px;height:14px;color:var(--markup-muted);border-radius:3px;padding:0 3px;font-size:9.5px}@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{border:2px solid var(--markup-paper);background:var(--markup-brand);color:#fff;width:28px;height:28px;font-family:var(--markup-font-mono);cursor:pointer;pointer-events:auto;opacity:var(--markup-pin-opacity,1);transform-origin:0 100%;box-shadow:0 4px 14px -4px #00000059, 0 0 0 1px color-mix(in srgb, var(--markup-brand) 50%, transparent);border-radius:999px 999px 999px 4px;justify-content:center;align-items:center;margin:0;padding:0;font-size:11.5px;font-weight:600;line-height:1;transition:background .15s,color .15s,opacity .15s,top .2s,left .2s;display:inline-flex;position:absolute;transform:translate(-50%,-100%)}.markup-pin.is-entering{animation:markup-pin-in var(--markup-pin-enter) cubic-bezier(.2, .7, .2, 1) backwards}.markup-pin:hover{background:color-mix(in oklab, var(--markup-brand) 92%, black)}:host([data-theme=dark]) .markup-pin:hover{background:color-mix(in oklab, var(--markup-brand) 88%, var(--markup-paper))}@media (prefers-color-scheme:dark){:host(:not([data-theme])) .markup-pin:hover{background:color-mix(in oklab, var(--markup-brand) 88%, var(--markup-paper))}}.markup-pin.is-active{background:var(--markup-brand);color:#fff;border-color:var(--markup-paper)}.markup-pin.is-anchor{anchor-name:--markup-active-anchor}.markup-pin.is-leaving{pointer-events:none;animation-name:markup-pin-out;animation-duration:var(--markup-pin-leave);animation-timing-function:ease-in;animation-iteration-count:1;animation-fill-mode:forwards}.markup-pin-ghost.is-leaving{animation-duration:var(--markup-popover-leave)}@keyframes markup-pin-in{0%{opacity:0;transform:translate(-50%,-100%)scale(.5)}to{opacity:var(--markup-pin-opacity,1);transform:translate(-50%,-100%)scale(1)}}@keyframes markup-pin-out{0%{opacity:var(--markup-pin-opacity,1);transform:translate(-50%,-100%)scale(1)}to{opacity:0;transform:translate(-50%,-100%)scale(.7)}}.markup-pin.is-unresolved{--markup-pin-opacity:.6}.markup-pin.is-closed,.markup-pin.is-closed.is-active{background:var(--markup-paper);color:var(--markup-muted);border-color:var(--markup-muted);box-shadow:0 4px 14px -4px #00000040}.markup-pin.is-closed:hover{background:var(--markup-paper);color:var(--markup-ink)}.markup-pin-ghost{background:var(--markup-brand);color:#fff;cursor:default;pointer-events:none;animation:1.2s ease-in-out infinite markup-ghost-pulse}.markup-pin-num{pointer-events:none;justify-content:center;align-items:center;display:inline-flex}.markup-pin-count{background:var(--markup-ink);min-width:16px;height:16px;color:var(--markup-paper);font-family:var(--markup-font-mono);text-align:center;border:2px solid var(--markup-paper);pointer-events:none;border-radius:999px;padding:0 4px;font-size:9.5px;font-weight:600;line-height:12px;position:absolute;top:-6px;right:-8px}@keyframes markup-ghost-pulse{0%,to{box-shadow:0 4px 14px -4px #00000059,0 0 #e35d2a66}50%{box-shadow:0 4px 14px -4px #00000059,0 0 0 10px #e35d2a00}}.markup-placement-overlay{background:var(--markup-overlay-tint);pointer-events:none;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:var(--markup-popover-w);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}}@supports (transition-behavior:allow-discrete) and selector(:popover-open){.markup-popover{opacity:0;transition:opacity var(--markup-popover-leave) ease, transform var(--markup-popover-leave) ease, overlay var(--markup-popover-leave) allow-discrete, display var(--markup-popover-leave) allow-discrete;animation:none;display:none;transform:translateY(-4px)scale(.98)}.markup-popover:popover-open{opacity:1;display:flex;transform:none}@starting-style{.markup-popover:popover-open{opacity:0;transform:translateY(-4px)scale(.98)}}.markup-popover:not(:popover-open){pointer-events:none}}.markup-popover.is-leaving{pointer-events:none}.markup-popover.is-hud-hidden{transition-property:none;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-popover-title{min-width:0;font-family:var(--markup-font-mono);letter-spacing:.02em;color:var(--markup-muted);white-space:nowrap;text-overflow:ellipsis;flex:auto;font-size:11px;line-height:1;overflow:hidden}.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);animation:markup-menu-in var(--markup-menu-in) ease-out;padding:4px;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)}.markup-thread-menu-item.is-danger:hover{background:color-mix(in srgb, var(--markup-danger) 10%, transparent)}.markup-thread-menu-item:disabled{opacity:.5;cursor:default}@keyframes markup-menu-in{0%{opacity:0;transform:translate(var(--markup-menu-from-x,0), var(--markup-menu-from-y,-4px))}to{opacity:1;transform:translate(0)}}@keyframes markup-menu-out{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(var(--markup-menu-from-x,0), var(--markup-menu-from-y,-4px))}}.markup-popover-body{border-top:1px solid var(--markup-border);background:var(--markup-paper);flex-direction:column;gap:6px;padding:10px 12px 8px;display:flex}.markup-popover-header+.markup-popover-body{border-top:none}.markup-popover-byline{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.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,transform .12s cubic-bezier(.2,.7,.2,1);display:inline-flex}.markup-icon-btn:hover,.markup-icon-btn.is-open{background:var(--markup-border);color:var(--markup-ink)}.markup-icon-btn:active{transform:scale(.97)}.markup-comments{flex-direction:column;max-height:420px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.markup-comment{border-bottom:1px solid var(--markup-border);grid-template-columns:26px 1fr;align-items:start;gap:0 10px;padding:12px;display:grid}.markup-comment:last-child{border-bottom:none}.markup-comment>:not(.markup-comment-avatar){grid-column:2}.markup-comment.is-new{animation:.2s cubic-bezier(.2,.7,.2,1) markup-comment-in}@keyframes markup-comment-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.markup-comment-avatar{background:var(--markup-border);width:26px;height:26px;color:var(--markup-ink);font-family:var(--markup-font-mono);letter-spacing:.02em;text-transform:uppercase;-webkit-user-select:none;user-select:none;border-radius:999px;grid-area:1/1/span 4;justify-content:center;align-items:center;margin-top:-3px;font-size:10.5px;font-weight:600;display:inline-flex;overflow:hidden}.markup-avatar-initials{text-box-trim:trim-both;text-box-edge:cap alphabetic;line-height:1}.markup-avatar-img{object-fit:cover;width:100%;height:100%;display:block}.markup-comment-avatar[data-tone=\"1\"]{color:oklch(25% .07 230);background:oklch(85% .07 200)}.markup-comment-avatar[data-tone=\"2\"]{color:oklch(30% .1 150);background:oklch(88% .07 130)}.markup-comment-avatar[data-tone=\"3\"]{color:oklch(35% .1 40);background:oklch(90% .05 50)}.markup-comment-avatar[data-tone=\"4\"]{color:oklch(30% .1 320);background:oklch(87% .07 320)}.markup-comment-avatar[data-tone=\"5\"]{color:oklch(32% .09 70);background:oklch(88% .06 80)}.markup-comment-meta{align-items:center;gap:8px;min-width:0;margin-bottom:4px;font-size:13px;display:flex}.markup-comment-author{color:var(--markup-ink);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:13px;font-weight:600;overflow:hidden}.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-badge.is-agent{background:color-mix(in srgb, var(--markup-brand) 14%, transparent);color:var(--markup-accent-ink);letter-spacing:normal;justify-content:center;width:14px;padding:0}.markup-comment-time{color:var(--markup-muted);font-family:var(--markup-font-mono);letter-spacing:.04em;white-space:nowrap;flex-shrink:0;font-size:10.5px}.markup-comment-body{color:var(--markup-ink);white-space:pre-wrap;word-break:break-word;margin:0;font-size:13.5px;line-height:19px}.markup-comment-link{color:var(--markup-accent-ink);text-underline-offset:2px;text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--markup-accent-ink) 60%, transparent);text-decoration-color:color-mix(in srgb, var(--markup-accent-ink) 60%, transparent)}.markup-comment-link:hover{-webkit-text-decoration-color:var(--markup-accent-ink);text-decoration-color:var(--markup-accent-ink)}.markup-comment-edited{color:var(--markup-muted);font-family:var(--markup-font-mono);margin-left:2px;font-size:10.5px}.markup-comment-edited:before{content:\" · \"}.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{--markup-menu-from-y:4px;top:auto;bottom:calc(100% + 6px)}.markup-comment-menu.is-side .markup-thread-menu-list{--markup-menu-from-x:4px;--markup-menu-from-y:0;top:-4px;right:calc(100% + 2px)}.markup-comment{position:relative}.markup-reactions{flex-wrap:wrap;align-items:center;gap:4px;margin-top:6px;display:flex}.markup-reaction-chip{border:1px solid var(--markup-border);background:var(--markup-surface-3);color:var(--markup-ink);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:4px;padding:2px 7px;font-size:11.5px;line-height:1.2;transition:background .12s,border-color .12s;display:inline-flex}.markup-reaction-chip:hover:not(:disabled){background:var(--markup-hover)}.markup-reaction-chip.is-mine{background:var(--markup-accent-soft);border-color:color-mix(in srgb, var(--markup-brand) 50%, transparent);color:var(--markup-accent-ink)}.markup-reaction-chip.is-mine:hover:not(:disabled){background:color-mix(in srgb, var(--markup-brand) 18%, 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:10.5px}.markup-reaction-chip.is-mine .markup-reaction-count{color:var(--markup-accent-ink)}.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{width:22px;height:22px;color:var(--markup-muted);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;font-size:13px;line-height:1;transition:background .12s,color .12s;display:inline-flex}.markup-reaction-add:hover,.markup-reaction-add.is-open{background:var(--markup-hover);color:var(--markup-ink)}.markup-reaction-picker{z-index:1;border:1px solid var(--markup-border-strong);background:var(--markup-paper);animation:markup-menu-in var(--markup-menu-in) ease;border-radius:8px;gap:2px;padding:4px;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{--markup-menu-from-y:4px;top:auto;bottom:calc(100% + 6px)}.markup-reaction-picker-wrap.is-side .markup-reaction-picker{--markup-menu-from-x:4px;--markup-menu-from-y:0;top:-4px;right:calc(100% + 2px)}.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-actions{justify-content:flex-end;gap:6px;display:flex}.markup-composer{flex-direction:column;display:flex;position:relative}.markup-composer-input{width:100%;min-height:38px;max-height:120px;color:var(--markup-ink);font-family:var(--markup-font);background:0 0;border:none;border-radius:0;padding:2px 0;font-size:13.5px;line-height:19px;transition:none;overflow-y:auto}.markup-composer-input:focus-visible{box-shadow:none;outline:none}.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{opacity:0;background:0 0;border:none;border-radius:0;justify-content:space-between;align-items:center;gap:8px;padding:0;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:.04em;color:var(--markup-muted);align-items:center;gap:3px;font-size:10.5px;display:inline-flex}.markup-composer-hint-label{margin-left:2px}.markup-composer-error{color:var(--markup-accent-ink)}.markup-composer-actions{align-items:center;gap:6px;display:flex}.markup-composer .markup-btn-primary{background:var(--markup-ink);height:26px;color:var(--markup-paper);border-radius:6px;padding:0 10px}.markup-composer .markup-btn-primary:hover:not(:disabled){background:color-mix(in srgb, var(--markup-ink) 88%, var(--markup-paper))}.markup-composer-actions-empty{transition:opacity .12s;position:absolute;bottom:0;right:0}.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-author-copy{color:var(--markup-ink);margin:0;font-size:13px;line-height:1.5}.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,transform .12s cubic-bezier(.2,.7,.2,1);display:inline-flex}.markup-btn:disabled{opacity:.5;cursor:not-allowed}.markup-btn:active:not(:disabled){transform:scale(.97)}.markup-btn-primary{background:var(--markup-ink);color:var(--markup-paper)}.markup-btn-primary:hover:not(:disabled){background:var(--markup-brand-fill)}.markup-btn-ghost{color:var(--markup-muted)}.markup-btn-ghost:hover:not(:disabled){background:var(--markup-border);color:var(--markup-ink)}.markup-btn-danger{color:var(--markup-danger)}.markup-btn-danger:hover:not(:disabled){background:color-mix(in srgb, var(--markup-danger) 10%, transparent)}.markup-discard-confirm{background:color-mix(in srgb, var(--markup-paper) 92%, transparent);-webkit-backdrop-filter:blur(6px);animation:markup-menu-in var(--markup-menu-in) ease-out;flex-direction:column;justify-content:center;gap:4px;padding:16px;display:flex;position:absolute;inset:0}.markup-thread-menu-list.is-leaving,.markup-reaction-picker.is-leaving,.markup-discard-confirm.is-leaving{pointer-events:none;animation-name:markup-menu-out;animation-duration:var(--markup-menu-leave);animation-timing-function:ease-in;animation-fill-mode:forwards}.markup-discard-confirm-title{color:var(--markup-ink);margin:0;font-size:13px;font-weight:600}.markup-discard-confirm-desc{color:var(--markup-muted);margin:0;font-size:12px}.markup-discard-confirm-actions{gap:6px;margin-top:10px;display:flex}.markup-screenshot-row{border:1px dashed var(--markup-border-strong);color:var(--markup-muted);border-radius:6px;flex-direction:column;gap:8px;margin-top:0;padding:6px 8px;font-size:11.5px;display:flex}.markup-screenshot-row.is-attached{border-style:solid;border-color:var(--markup-border);padding:8px}.markup-screenshot-row-head{justify-content:space-between;align-items:center;gap:8px;min-height:16px;display:flex}.markup-screenshot-status{color:var(--markup-muted);font-family:var(--markup-font-mono);letter-spacing:.04em;align-items:center;gap:5px;font-size:11px;display:flex}.markup-screenshot-row.is-failed{opacity:.85;border-style:dotted}.markup-screenshot-toggle{cursor:pointer;color:var(--markup-muted);font-family:var(--markup-font-mono);letter-spacing:.04em;align-items:center;gap:5px;font-size:11px;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-link{border:1px solid var(--markup-border-strong);cursor:zoom-in;background:0 0;border-radius:3px;margin:-4px auto -4px -4px;padding:0;transition:border-color .12s;display:block;overflow:hidden}.markup-screenshot-thumb-link:hover,.markup-screenshot-thumb-link:focus-visible{border-color:var(--markup-brand)}.markup-screenshot-thumb{object-fit:cover;object-position:top;width:auto;height:22px;display:block}.markup-screenshot-redacted-chip{background:color-mix(in srgb, var(--markup-success,oklch(62% .16 150)) 16%, transparent);color:var(--markup-success-ink);font-family:var(--markup-font-mono);white-space:nowrap;cursor:pointer;border:none;border-radius:999px;align-items:center;gap:3px;padding:1px 7px;font-size:10px;display:inline-flex}.markup-screenshot-redacted-chip:hover{filter:brightness(1.05)}.markup-screenshot-redacted-arrow{font-style:normal}.markup-screenshot-redacted-list{flex-direction:column;gap:2px;display:flex}.markup-screenshot-redacted-selector{font-family:var(--markup-font-mono);color:var(--markup-muted);font-size:9px;display:block}.markup-screenshot-help{font-family:var(--markup-font-mono);color:var(--markup-muted);margin:0;font-size:10px;line-height:1.5}.markup-screenshot-help-link{color:var(--markup-ink);text-underline-offset:2px;text-decoration:underline}.markup-screenshot-help-link:hover{color:var(--markup-accent-ink)}.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}@supports (transition-behavior:allow-discrete){.markup-lightbox{opacity:0;transition:opacity var(--markup-lightbox-leave) ease, overlay var(--markup-lightbox-leave) allow-discrete, display var(--markup-lightbox-leave) allow-discrete}.markup-lightbox[open]{opacity:1}@starting-style{.markup-lightbox[open]{opacity:0}}}.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-toolbar,.markup-toolbar.is-leaving,.markup-hud-hidden-toast,.markup-hud-hidden-toast.is-leaving,.markup-tb-btn,.markup-tb-badge,.markup-comment,.markup-pin,.markup-pin.is-entering,.markup-pin.is-leaving,.markup-pop,.markup-pop.is-leaving,.markup-pop[data-pop=overflow],.markup-pop.is-anchor-center,.markup-pop.is-anchor-center.is-leaving,.markup-thread-menu-list,.markup-thread-menu-list.is-leaving,.markup-reaction-picker,.markup-reaction-picker.is-leaving,.markup-discard-confirm,.markup-discard-confirm.is-leaving,.markup-icon-btn,.markup-btn,.markup-popover,.markup-pin-ghost,.markup-placement-overlay,.markup-placement-cursor-help,.markup-lightbox,.markup-lightbox-img{transition:none;animation:none}}.markup-mention-chip{background:var(--markup-accent-soft);color:var(--markup-accent-ink);border-radius:3px;padding:0 2px;font-weight:500;display:inline-block}.markup-mention-input{white-space:pre-wrap;overflow-wrap:anywhere;cursor:text;outline:none;position:relative}.markup-mention-input[aria-disabled=true]{opacity:.6;cursor:default}.markup-mention-input[data-empty]:before{content:attr(data-placeholder);color:var(--markup-muted);pointer-events:none;position:absolute;inset:0 auto auto 0}.markup-mention-input .markup-mention-chip{white-space:nowrap;padding:0 3px}.markup-comment-edit-input{border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius-sm);background:var(--markup-paper);width:100%;min-height:58px;max-height:200px;color:var(--markup-ink);font:inherit;padding:8px 10px;font-size:13px;line-height:1.5;overflow-y:auto}.markup-comment-edit-input:focus-visible{border-color:var(--markup-brand);box-shadow:0 0 0 3px #e35d2a2e}.markup-comment-edit-input[data-empty]:before{inset:8px auto auto 10px}.markup-mention-picker{z-index:10;box-sizing:border-box;background:var(--markup-paper);border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius-sm);max-height:180px;box-shadow:var(--markup-shadow);margin:0;padding:4px;list-style:none;position:fixed;overflow-y:auto}.markup-mention-picker-item{border-radius:var(--markup-radius-sm);cursor:pointer;color:var(--markup-ink);justify-content:space-between;align-items:center;gap:8px;padding:6px 8px;font-size:13px;display:flex}.markup-mention-picker-item.is-active{background:color-mix(in srgb, var(--markup-brand) 12%, transparent)}.markup-mention-picker-name{font-weight:500}.markup-mention-picker-trigger{color:var(--markup-muted);font-family:var(--markup-font-mono);font-size:10px}.markup-notifications-panel{max-height:min(60vh,420px);color:var(--markup-ink);flex-direction:column;display:flex}.markup-notifications-panel-header{border-bottom:1px solid var(--markup-border);align-items:center;gap:8px;padding:8px 10px;display:flex}.markup-notifications-panel-header .markup-eyebrow{flex:1}.markup-notifications-panel-actions{align-items:center;gap:8px;display:flex}.markup-notifications-panel-mark-all{color:var(--markup-muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:11px}.markup-notifications-panel-mark-all:hover{color:var(--markup-ink)}.markup-notifications-panel-body{flex:1;overflow-y:auto}.markup-notifications-panel-empty,.markup-notifications-panel-error{text-align:center;color:var(--markup-muted);padding:24px 12px;font-size:12px}.markup-notifications-panel-empty-title{color:var(--markup-ink);margin:0 0 4px;font-weight:500}.markup-notifications-panel-empty-sub{color:var(--markup-muted);margin:0;line-height:1.4}.markup-notifications-panel-error{color:var(--markup-danger,#b91c1c)}.markup-notifications-panel-list{margin:0;padding:4px;list-style:none}.markup-notifications-panel-row{border-radius:var(--markup-radius-sm);text-align:start;cursor:pointer;width:100%;font:inherit;color:inherit;background:0 0;border:none;flex-direction:column;gap:4px;padding:8px 10px;display:flex}.markup-notifications-panel-row:hover{background:color-mix(in srgb, var(--markup-brand) 8%, transparent)}.markup-notifications-panel-row.is-unread{background:color-mix(in srgb, var(--markup-brand) 5%, transparent)}.markup-notifications-panel-meta{align-items:center;gap:6px;font-size:11px;display:flex}.markup-notifications-panel-dot{background:var(--markup-brand);border-radius:999px;flex-shrink:0;width:6px;height:6px}.markup-notifications-panel-actor{font-weight:600}.markup-notifications-panel-sep{color:var(--markup-muted)}.markup-notifications-panel-time{color:var(--markup-muted);font-family:var(--markup-font-mono);font-size:10px}.markup-notifications-panel-thread{color:var(--markup-muted);margin:0;font-size:12px}.markup-notifications-panel-thread-title{color:var(--markup-ink)}.markup-notifications-panel-excerpt{color:color-mix(in srgb, var(--markup-ink) 80%, transparent);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:12px;font-style:italic;display:-webkit-box;overflow:hidden}.markup-panel-pop{z-index:11;pointer-events:auto;width:var(--markup-popover-w);max-width:calc(100vw - 24px);position:fixed;bottom:76px}.markup-panel-pop-right{right:22px}.markup-panel-pop-left{left:22px}.markup-panel-pop-center{left:50%;transform:translate(-50%)}.markup-panel-pop .markup-pop{width:100%;position:static}.markup-panel-pop .markup-notifications-panel{max-height:min(60vh,480px)}.markup-panel-pop .markup-notifications-panel-header{padding:12px 14px}.markup-panel-pop .markup-notifications-panel-header .markup-icon-btn{display:none}.markup-panel{max-height:min(70vh,520px);color:var(--markup-ink);flex-direction:column;display:flex}.markup-panel-header{border-bottom:1px solid var(--markup-border);align-items:center;gap:8px;padding:12px 14px;display:flex}.markup-panel-header .markup-eyebrow{flex:1}.markup-panel-back{color:var(--markup-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;align-items:center;gap:2px;margin-left:-4px;padding:3px 6px 3px 4px;font-family:inherit;font-size:12px;display:inline-flex}.markup-panel-back:hover{background:var(--markup-hover);color:var(--markup-ink)}.markup-panel-body{flex:1;padding:4px 14px 14px;overflow-y:auto}.markup-panel-body:focus{outline:none}.markup-panel-body:focus-visible{box-shadow:inset 0 0 0 2px var(--markup-accent-glow);outline:none}.markup-panel-section{border-bottom:1px solid var(--markup-border);padding:10px 0}.markup-panel-section:last-child{border-bottom:none;padding-bottom:2px}.markup-panel-section-title{font-family:var(--markup-font-mono);letter-spacing:.06em;text-transform:lowercase;color:var(--markup-muted);margin:0 0 6px;font-size:10px;font-weight:400}.markup-panel-text{color:var(--markup-ink-soft);margin:0;font-size:12.5px;line-height:1.5}.markup-panel-text strong{color:var(--markup-ink);font-weight:600}.markup-panel-mono{font-family:var(--markup-font-mono);color:var(--markup-ink);word-break:break-all;font-size:11.5px}.markup-panel-list{color:var(--markup-ink-soft);margin:0;padding-left:16px;font-size:12.5px;line-height:1.5}.markup-panel-list li{margin-bottom:3px}.markup-panel-list li::marker{color:var(--markup-muted)}.markup-panel-note{color:var(--markup-muted);margin:8px 0 0;font-size:11.5px;line-height:1.45}.markup-panel-error{color:var(--markup-danger);margin:8px 0 0;font-size:11.5px;line-height:1.45}.markup-panel-action{border:1px solid var(--markup-border-strong);width:100%;height:30px;color:var(--markup-ink);font:inherit;cursor:pointer;background:0 0;border-radius:7px;margin-top:10px;padding:0 10px;font-size:12.5px;transition:background .12s,border-color .12s,color .12s}.markup-panel-action:hover:not(:disabled){background:var(--markup-hover)}.markup-panel-action:disabled{opacity:.6;cursor:default}.markup-panel-action.is-danger{border-color:color-mix(in srgb, var(--markup-danger) 45%, transparent);color:var(--markup-danger)}.markup-panel-action.is-danger:hover:not(:disabled){background:color-mix(in srgb, var(--markup-danger) 10%, transparent)}.markup-shortcut-list{margin:0;padding:0;list-style:none}.markup-shortcut-row{align-items:center;gap:10px;min-height:24px;padding:2px 0;display:flex}.markup-shortcut-label{min-width:0;color:var(--markup-ink-soft);flex:1;font-size:12.5px;line-height:1.4}.markup-shortcut-keys{flex-shrink:0;align-items:center;gap:4px;display:inline-flex}.markup-shortcut-chord{align-items:center;gap:3px;display:inline-flex}.markup-shortcut-or{color:var(--markup-muted);margin-right:1px;font-size:10px}", ue = 1e4, de = 20, fe = 60, pe = null, me = [], he = null, ge = !1, _e = ve();
253
253
  function ve() {
254
254
  return typeof crypto < "u" && typeof crypto.randomUUID == "function" ? crypto.randomUUID() : `s-${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 10)}`;
255
255
  }
@@ -4941,29 +4941,85 @@ var pc = {
4941
4941
  "--markup-pop-leave": "140ms",
4942
4942
  "--markup-menu-leave": "120ms",
4943
4943
  "--markup-lightbox-leave": "160ms"
4944
- };
4944
+ }, mc = /* @__PURE__ */ new Set([
4945
+ "pointerdown",
4946
+ "mousedown",
4947
+ "touchstart"
4948
+ ]), hc = /* @__PURE__ */ new Set([
4949
+ "pointerup",
4950
+ "mouseup",
4951
+ "touchend"
4952
+ ]), gc = [
4953
+ ...mc,
4954
+ ...hc,
4955
+ "click"
4956
+ ], _c = ".markup-tb-btn", vc = /* @__PURE__ */ new WeakSet();
4957
+ function yc(e) {
4958
+ let t = !1;
4959
+ function n(n) {
4960
+ let r = n.composedPath()[0], i = r instanceof Element ? r.closest(_c) : null, a = i !== null && e.contains(i);
4961
+ if (mc.has(n.type) && (t = a), !(!a || hc.has(n.type) && !t) && (n.stopPropagation(), n.type === "mousedown" && n.preventDefault(), n.type === "click" && n instanceof MouseEvent)) {
4962
+ let e = xc(n);
4963
+ vc.add(e), r?.dispatchEvent(e);
4964
+ }
4965
+ }
4966
+ let r = { capture: !0 };
4967
+ for (let e of gc) window.addEventListener(e, n, r);
4968
+ return () => {
4969
+ for (let e of gc) window.removeEventListener(e, n, r);
4970
+ };
4971
+ }
4972
+ function bc(e, t) {
4973
+ let n = e.getRootNode(), r = (e) => {
4974
+ vc.has(e) && t(e);
4975
+ };
4976
+ return document.addEventListener("click", t, !0), n instanceof ShadowRoot && n.addEventListener("click", r, !0), () => {
4977
+ document.removeEventListener("click", t, !0), n instanceof ShadowRoot && n.removeEventListener("click", r, !0);
4978
+ };
4979
+ }
4980
+ function xc(e) {
4981
+ return new MouseEvent(e.type, {
4982
+ bubbles: !0,
4983
+ cancelable: !0,
4984
+ composed: !1,
4985
+ view: e.view,
4986
+ detail: e.detail,
4987
+ screenX: e.screenX,
4988
+ screenY: e.screenY,
4989
+ clientX: e.clientX,
4990
+ clientY: e.clientY,
4991
+ ctrlKey: e.ctrlKey,
4992
+ shiftKey: e.shiftKey,
4993
+ altKey: e.altKey,
4994
+ metaKey: e.metaKey,
4995
+ button: e.button,
4996
+ buttons: e.buttons
4997
+ });
4998
+ }
4945
4999
  //#endregion
4946
5000
  //#region src/runtime/ui/identity-menu.tsx
4947
- function mc({ identity: e, position: t, isSigningIn: n, isSigningOut: r, dashboardUrl: i, commentAccess: a = "anyone", onSignIn: o, onSignOut: s, onForgetMe: c }) {
5001
+ function Sc({ identity: e, position: t, isSigningIn: n, isSigningOut: r, dashboardUrl: i, commentAccess: a = "anyone", onSignIn: o, onSignOut: s, onForgetMe: c }) {
4948
5002
  let [l, u] = B(!1), d = ei(l || null, 140), f = d?.isLeaving ?? !1, [p, m] = B(!1), [h, g] = B(!1), _ = U(null);
4949
5003
  V(() => {
4950
5004
  if (!l) return;
4951
- function e(e) {
4952
- let t = _.current;
4953
- t && (e.composedPath().includes(t) || u(!1));
4954
- }
4955
- function t(e) {
5005
+ let e = _.current;
5006
+ if (!e) return;
5007
+ let t = (t) => {
5008
+ t.composedPath().includes(e) || u(!1);
5009
+ };
5010
+ function n(e) {
4956
5011
  e.key === "Escape" && u(!1);
4957
5012
  }
4958
- return document.addEventListener("click", e, !0), document.addEventListener("keydown", t), () => {
4959
- document.removeEventListener("click", e, !0), document.removeEventListener("keydown", t);
5013
+ let r = bc(e, t);
5014
+ return document.addEventListener("keydown", n), () => {
5015
+ r(), document.removeEventListener("keydown", n);
4960
5016
  };
4961
5017
  }, [l]);
4962
5018
  let v = d != null;
4963
5019
  V(() => {
4964
5020
  v || (m(!1), g(!1));
4965
5021
  }, [v]);
4966
- let y = aa(e), b = hc(y), x = e.kind === "verified", C = e.kind === "verified" ? e.identity.image : void 0, [w, ee] = B(null), T = x && C != null && w !== C, E = x ? e.identity.email : null, D = t === "bottom-left" ? "is-anchor-left" : t === "bottom-center" ? "is-anchor-center" : "is-anchor-right";
5022
+ let y = aa(e), b = Cc(y), x = e.kind === "verified", C = e.kind === "verified" ? e.identity.image : void 0, [w, T] = B(null), E = x && C != null && w !== C, D = x ? e.identity.email : null, O = t === "bottom-left" ? "is-anchor-left" : t === "bottom-center" ? "is-anchor-center" : "is-anchor-right";
4967
5023
  return /* @__PURE__ */ Q("div", {
4968
5024
  ref: _,
4969
5025
  style: {
@@ -4986,13 +5042,13 @@ function mc({ identity: e, position: t, isSigningIn: n, isSigningOut: r, dashboa
4986
5042
  children: [/* @__PURE__ */ Q("span", {
4987
5043
  class: Z("markup-tb-avatar", !x && "is-anon"),
4988
5044
  "aria-hidden": "true",
4989
- children: T ? /* @__PURE__ */ Q("img", {
5045
+ children: E ? /* @__PURE__ */ Q("img", {
4990
5046
  class: "markup-avatar-img",
4991
5047
  src: C,
4992
5048
  alt: "",
4993
5049
  decoding: "async",
4994
5050
  referrerpolicy: "no-referrer",
4995
- onError: () => ee(C)
5051
+ onError: () => T(C)
4996
5052
  }) : x && b ? /* @__PURE__ */ Q("span", {
4997
5053
  class: "markup-avatar-initials",
4998
5054
  children: b
@@ -5002,7 +5058,7 @@ function mc({ identity: e, position: t, isSigningIn: n, isSigningOut: r, dashboa
5002
5058
  children: y
5003
5059
  }) : null]
5004
5060
  }), d ? /* @__PURE__ */ Q("div", {
5005
- class: Z("markup-pop", D, f && "is-leaving"),
5061
+ class: Z("markup-pop", O, f && "is-leaving"),
5006
5062
  "data-pop": "identity",
5007
5063
  role: "menu",
5008
5064
  inert: f || void 0,
@@ -5012,9 +5068,9 @@ function mc({ identity: e, position: t, isSigningIn: n, isSigningOut: r, dashboa
5012
5068
  children: [/* @__PURE__ */ Q("span", {
5013
5069
  class: "nm",
5014
5070
  children: y ?? "Account"
5015
- }), E ? /* @__PURE__ */ Q("span", {
5071
+ }), D ? /* @__PURE__ */ Q("span", {
5016
5072
  class: "em",
5017
- children: E
5073
+ children: D
5018
5074
  }) : null]
5019
5075
  }),
5020
5076
  /* @__PURE__ */ Q("a", {
@@ -5084,12 +5140,12 @@ function mc({ identity: e, position: t, isSigningIn: n, isSigningOut: r, dashboa
5084
5140
  }) : null]
5085
5141
  });
5086
5142
  }
5087
- function hc(e) {
5143
+ function Cc(e) {
5088
5144
  return e && e.trim().split(/\s+/).slice(0, 2).map((e) => e[0]?.toUpperCase() ?? "").join("") || null;
5089
5145
  }
5090
5146
  //#endregion
5091
5147
  //#region src/runtime/use-drag.ts
5092
- function gc(e) {
5148
+ function wc(e) {
5093
5149
  let t = U(e);
5094
5150
  H(() => {
5095
5151
  t.current = e;
@@ -5119,8 +5175,8 @@ function gc(e) {
5119
5175
  h = !0, r(!0), t.current.onStart?.();
5120
5176
  }
5121
5177
  let a = Math.max(p, window.innerWidth - u - p), _ = Math.max(p, window.innerHeight - d - p), v = {
5122
- left: _c(c + n, p, a),
5123
- top: _c(l + i, p, _)
5178
+ left: Tc(c + n, p, a),
5179
+ top: Tc(l + i, p, _)
5124
5180
  };
5125
5181
  g = v, t.current.onMove(v);
5126
5182
  }
@@ -5135,12 +5191,12 @@ function gc(e) {
5135
5191
  isDragging: n
5136
5192
  };
5137
5193
  }
5138
- function _c(e, t, n) {
5194
+ function Tc(e, t, n) {
5139
5195
  return Math.max(t, Math.min(n, e));
5140
5196
  }
5141
5197
  //#endregion
5142
5198
  //#region src/runtime/use-focus-trap.ts
5143
- var vc = [
5199
+ var Ec = [
5144
5200
  "a[href]",
5145
5201
  "button:not([disabled])",
5146
5202
  "input:not([disabled])",
@@ -5148,14 +5204,14 @@ var vc = [
5148
5204
  "textarea:not([disabled])",
5149
5205
  "[tabindex]:not([tabindex=\"-1\"])"
5150
5206
  ].join(",");
5151
- function yc(e, t) {
5207
+ function Dc(e, t) {
5152
5208
  V(() => {
5153
5209
  if (!t) return;
5154
5210
  let n = e.current;
5155
5211
  if (!n) return;
5156
5212
  function r(e) {
5157
5213
  if (e.key !== "Tab") return;
5158
- let t = Array.from(n.querySelectorAll(vc)), r = t[0], i = t[t.length - 1];
5214
+ let t = Array.from(n.querySelectorAll(Ec)), r = t[0], i = t[t.length - 1];
5159
5215
  if (!r || !i) return;
5160
5216
  let a = n.getRootNode(), o = a instanceof ShadowRoot ? a.activeElement : document.activeElement;
5161
5217
  (e.shiftKey ? o === r : o === i) && (e.preventDefault(), (e.shiftKey ? i : r).focus());
@@ -5165,7 +5221,7 @@ function yc(e, t) {
5165
5221
  }
5166
5222
  //#endregion
5167
5223
  //#region src/runtime/use-object-url.ts
5168
- function bc(e) {
5224
+ function Oc(e) {
5169
5225
  let [t, n] = B(null);
5170
5226
  return V(() => {
5171
5227
  if (!e) {
@@ -5178,7 +5234,7 @@ function bc(e) {
5178
5234
  }
5179
5235
  //#endregion
5180
5236
  //#region src/runtime/ui/author-prompt.tsx
5181
- function xc({ mode: e = "guest-or-sign-in", isPending: t, isConnecting: n = !1, isSigningIn: r = !1, onSubmit: i, onCancel: a, onSignIn: o, onSignOut: s }) {
5237
+ function kc({ mode: e = "guest-or-sign-in", isPending: t, isConnecting: n = !1, isSigningIn: r = !1, onSubmit: i, onCancel: a, onSignIn: o, onSignOut: s }) {
5182
5238
  let [c, l] = B(""), [u, d] = B(""), f = U(null);
5183
5239
  V(() => {
5184
5240
  f.current?.focus();
@@ -5312,27 +5368,27 @@ function xc({ mode: e = "guest-or-sign-in", isPending: t, isConnecting: n = !1,
5312
5368
  }
5313
5369
  //#endregion
5314
5370
  //#region src/runtime/mention-input.ts
5315
- var Sc = "data-markup-mention", Cc = "data-markup-mention-name", wc = /* @__PURE__ */ new Set([
5371
+ var Ac = "data-markup-mention", jc = "data-markup-mention-name", Mc = /* @__PURE__ */ new Set([
5316
5372
  "DIV",
5317
5373
  "P",
5318
5374
  "LI",
5319
5375
  "BLOCKQUOTE",
5320
5376
  "PRE"
5321
- ]), Tc = 3, Ec = 1;
5322
- function Dc(e) {
5377
+ ]), Nc = 3, Pc = 1;
5378
+ function Fc(e) {
5323
5379
  let t = "", n = (r) => {
5324
5380
  let i = r.childNodes;
5325
5381
  for (let a = 0; a < i.length; a++) {
5326
5382
  let o = i[a];
5327
5383
  if (!o) continue;
5328
- if (o.nodeType === Tc) {
5384
+ if (o.nodeType === Nc) {
5329
5385
  t += o.data;
5330
5386
  continue;
5331
5387
  }
5332
- if (o.nodeType !== Ec) continue;
5333
- let s = o, c = s.getAttribute(Sc);
5388
+ if (o.nodeType !== Pc) continue;
5389
+ let s = o, c = s.getAttribute(Ac);
5334
5390
  if (c) {
5335
- let e = Oc(s);
5391
+ let e = Ic(s);
5336
5392
  t += qr({
5337
5393
  userId: c,
5338
5394
  name: e
@@ -5343,77 +5399,77 @@ function Dc(e) {
5343
5399
  (r !== e || a !== i.length - 1) && (t += "\n");
5344
5400
  continue;
5345
5401
  }
5346
- wc.has(s.tagName) && t !== "" && !t.endsWith("\n") && (t += "\n"), n(s);
5402
+ Mc.has(s.tagName) && t !== "" && !t.endsWith("\n") && (t += "\n"), n(s);
5347
5403
  }
5348
5404
  };
5349
5405
  return n(e), t;
5350
5406
  }
5351
- function Oc(e) {
5352
- return e.getAttribute(Cc) || (e.textContent ?? "").replace(/^@/, "");
5407
+ function Ic(e) {
5408
+ return e.getAttribute(jc) || (e.textContent ?? "").replace(/^@/, "");
5353
5409
  }
5354
- function kc(e, t, n) {
5410
+ function Lc(e, t, n) {
5355
5411
  let r = e.createElement("span");
5356
- return r.className = n, r.setAttribute("contenteditable", "false"), r.setAttribute(Sc, t.userId), r.setAttribute(Cc, t.name), r.textContent = `@${t.name}`, r;
5412
+ return r.className = n, r.setAttribute("contenteditable", "false"), r.setAttribute(Ac, t.userId), r.setAttribute(jc, t.name), r.textContent = `@${t.name}`, r;
5357
5413
  }
5358
- function Ac(e, t, n) {
5414
+ function Rc(e, t, n) {
5359
5415
  let r = e.createDocumentFragment();
5360
5416
  for (let i of Wr(t)) {
5361
5417
  if (i.type === "text") {
5362
5418
  i.value && r.appendChild(e.createTextNode(i.value));
5363
5419
  continue;
5364
5420
  }
5365
- r.appendChild(kc(e, {
5421
+ r.appendChild(Lc(e, {
5366
5422
  userId: i.userId,
5367
5423
  name: i.name
5368
5424
  }, n));
5369
5425
  }
5370
5426
  return r;
5371
5427
  }
5372
- function jc(e) {
5428
+ function zc(e) {
5373
5429
  let t = e.getRootNode();
5374
5430
  return typeof t.getSelection == "function" ? t.getSelection() : e.ownerDocument.getSelection();
5375
5431
  }
5376
- function Mc(e) {
5377
- let t = jc(e);
5432
+ function Bc(e) {
5433
+ let t = zc(e);
5378
5434
  if (!t || t.rangeCount === 0 || !t.isCollapsed) return null;
5379
5435
  let n = t.focusNode;
5380
- return !n || n.nodeType !== Tc || !e.contains(n) || Nc(n, e) ? null : {
5436
+ return !n || n.nodeType !== Nc || !e.contains(n) || Vc(n, e) ? null : {
5381
5437
  node: n,
5382
5438
  offset: t.focusOffset
5383
5439
  };
5384
5440
  }
5385
- function Nc(e, t) {
5441
+ function Vc(e, t) {
5386
5442
  let n = e;
5387
5443
  for (; n && n !== t;) {
5388
- if (n.nodeType === Ec && n.hasAttribute("data-markup-mention")) return n;
5444
+ if (n.nodeType === Pc && n.hasAttribute("data-markup-mention")) return n;
5389
5445
  n = n.parentNode;
5390
5446
  }
5391
5447
  return null;
5392
5448
  }
5393
- function Pc(e) {
5394
- let t = jc(e);
5449
+ function Hc(e) {
5450
+ let t = zc(e);
5395
5451
  if (!t || t.rangeCount === 0 || !t.isCollapsed) return;
5396
5452
  let n = t.focusNode;
5397
5453
  if (!n || !e.contains(n)) return;
5398
- let r = Nc(n, e);
5454
+ let r = Vc(n, e);
5399
5455
  if (!r) return;
5400
5456
  let i = r.nextSibling;
5401
- (!i || i.nodeType !== Tc) && (i = e.ownerDocument.createTextNode(""), r.parentNode?.insertBefore(i, r.nextSibling)), Fc(e, i, 0);
5457
+ (!i || i.nodeType !== Nc) && (i = e.ownerDocument.createTextNode(""), r.parentNode?.insertBefore(i, r.nextSibling)), Uc(e, i, 0);
5402
5458
  }
5403
- function Fc(e, t, n) {
5404
- let r = jc(e);
5459
+ function Uc(e, t, n) {
5460
+ let r = zc(e);
5405
5461
  if (!r) return;
5406
5462
  let i = e.ownerDocument.createRange();
5407
5463
  i.setStart(t, n), i.collapse(!0), r.removeAllRanges(), r.addRange(i);
5408
5464
  }
5409
- function Ic(e) {
5465
+ function Wc(e) {
5410
5466
  let t = Kr(e.node.data, e.offset);
5411
5467
  return t ? {
5412
5468
  ...t,
5413
5469
  textNode: e.node
5414
5470
  } : null;
5415
5471
  }
5416
- function Lc(e, t, n, r) {
5472
+ function Gc(e, t, n, r) {
5417
5473
  if (qr(n) == null) return !1;
5418
5474
  let i = t.textNode;
5419
5475
  if (!e.contains(i)) return !1;
@@ -5421,31 +5477,31 @@ function Lc(e, t, n, r) {
5421
5477
  if (!a || t.caret > i.data.length) return !1;
5422
5478
  i.deleteData(t.at, t.caret - t.at);
5423
5479
  let o = i.splitText(t.at);
5424
- return a.insertBefore(kc(e.ownerDocument, n, r), o), o.data.startsWith(" ") || o.insertData(0, " "), Fc(e, o, 1), !0;
5480
+ return a.insertBefore(Lc(e.ownerDocument, n, r), o), o.data.startsWith(" ") || o.insertData(0, " "), Uc(e, o, 1), !0;
5425
5481
  }
5426
- function Rc(e, t) {
5427
- let n = jc(e);
5482
+ function Kc(e, t) {
5483
+ let n = zc(e);
5428
5484
  if (!n || n.rangeCount === 0) return;
5429
5485
  let r = n.getRangeAt(0);
5430
5486
  if (!e.contains(r.commonAncestorContainer)) return;
5431
5487
  r.deleteContents();
5432
5488
  let { startContainer: i, startOffset: a } = r;
5433
- if (i.nodeType === Tc) {
5489
+ if (i.nodeType === Nc) {
5434
5490
  let n = i;
5435
- n.insertData(a, t), Fc(e, n, a + t.length);
5491
+ n.insertData(a, t), Uc(e, n, a + t.length);
5436
5492
  return;
5437
5493
  }
5438
5494
  let o = e.ownerDocument.createTextNode(t);
5439
- r.insertNode(o), Fc(e, o, o.data.length);
5495
+ r.insertNode(o), Uc(e, o, o.data.length);
5440
5496
  }
5441
- function zc(e, t) {
5497
+ function qc(e, t) {
5442
5498
  let n = e.ownerDocument, r = null, i = null, a = !0;
5443
5499
  function o(t) {
5444
5500
  let n = t.length === 0;
5445
5501
  (n !== a || e.hasAttribute("data-empty") !== n) && (a = n, e.toggleAttribute("data-empty", n));
5446
5502
  }
5447
5503
  function s() {
5448
- let n = Dc(e);
5504
+ let n = Fc(e);
5449
5505
  o(n), t.onChange(n);
5450
5506
  }
5451
5507
  function c(e) {
@@ -5461,7 +5517,7 @@ function zc(e, t) {
5461
5517
  c(null);
5462
5518
  return;
5463
5519
  }
5464
- let n = Mc(e), r = n ? Ic(n) : null;
5520
+ let n = Bc(e), r = n ? Wc(n) : null;
5465
5521
  if (r && i && r.textNode === i.node && r.at === i.at) {
5466
5522
  c(null);
5467
5523
  return;
@@ -5469,29 +5525,29 @@ function zc(e, t) {
5469
5525
  i = null, c(r);
5470
5526
  }
5471
5527
  function u(r) {
5472
- e.replaceChildren(Ac(n, r, t.chipClass)), o(Dc(e)), i = null, c(null);
5528
+ e.replaceChildren(Rc(n, r, t.chipClass)), o(Fc(e)), i = null, c(null);
5473
5529
  }
5474
5530
  let d = () => {
5475
5531
  s(), l();
5476
5532
  }, f = () => l(), p = () => {
5477
- Pc(e), l();
5533
+ Hc(e), l();
5478
5534
  }, m = (t) => {
5479
5535
  let n = t.clipboardData?.getData("text/plain");
5480
- t.preventDefault(), n && (Rc(e, n.replace(/\r\n?/g, "\n")), s(), l());
5536
+ t.preventDefault(), n && (Kc(e, n.replace(/\r\n?/g, "\n")), s(), l());
5481
5537
  }, h = (e) => {
5482
5538
  e.preventDefault();
5483
5539
  };
5484
5540
  return e.addEventListener("input", d), e.addEventListener("keyup", f), e.addEventListener("mouseup", p), e.addEventListener("focus", p), e.addEventListener("paste", m), e.addEventListener("drop", h), u(t.initialValue ?? ""), {
5485
- getValue: () => Dc(e),
5541
+ getValue: () => Fc(e),
5486
5542
  setValue: u,
5487
5543
  focus() {
5488
5544
  e.focus();
5489
5545
  let t = e.lastChild;
5490
- t && (t.nodeType === Tc ? Fc(e, t, t.data.length) : Fc(e, e, e.childNodes.length));
5546
+ t && (t.nodeType === Nc ? Uc(e, t, t.data.length) : Uc(e, e, e.childNodes.length));
5491
5547
  },
5492
5548
  insertMention(n) {
5493
- let a = Mc(e), o = (a ? Ic(a) : null) ?? r;
5494
- o && Lc(e, o, n, t.chipClass) && (s(), i = null, c(null));
5549
+ let a = Bc(e), o = (a ? Wc(a) : null) ?? r;
5550
+ o && Gc(e, o, n, t.chipClass) && (s(), i = null, c(null));
5495
5551
  },
5496
5552
  syncTrigger: l,
5497
5553
  clearTrigger: () => c(null),
@@ -5506,42 +5562,42 @@ function zc(e, t) {
5506
5562
  }
5507
5563
  };
5508
5564
  }
5509
- var Bc = null;
5510
- function Vc() {
5511
- if (Bc) return Bc;
5565
+ var Jc = null;
5566
+ function Yc() {
5567
+ if (Jc) return Jc;
5512
5568
  if (typeof document > "u") return "true";
5513
5569
  let e = document.createElement("div");
5514
5570
  try {
5515
- e.contentEditable = "plaintext-only", Bc = e.contentEditable === "plaintext-only" ? "plaintext-only" : "true";
5571
+ e.contentEditable = "plaintext-only", Jc = e.contentEditable === "plaintext-only" ? "plaintext-only" : "true";
5516
5572
  } catch {
5517
- Bc = "true";
5573
+ Jc = "true";
5518
5574
  }
5519
- return Bc;
5575
+ return Jc;
5520
5576
  }
5521
5577
  //#endregion
5522
5578
  //#region src/lib/linkify.ts
5523
- var Hc = /(^|[\s([{<'"])((?:https?:\/\/|www\.)[^\s<>'"]+)/gi, Uc = ".,;:!?", Wc = {
5579
+ var Xc = /(^|[\s([{<'"])((?:https?:\/\/|www\.)[^\s<>'"]+)/gi, Zc = ".,;:!?", Qc = {
5524
5580
  ")": "(",
5525
5581
  "]": "[",
5526
5582
  "}": "{"
5527
5583
  };
5528
- function Gc(e, t) {
5584
+ function $c(e, t) {
5529
5585
  let n = 0;
5530
5586
  for (let r of e) r === t && (n += 1);
5531
5587
  return n;
5532
5588
  }
5533
- function Kc(e) {
5589
+ function el(e) {
5534
5590
  let t = e.length;
5535
5591
  for (; t > 0;) {
5536
5592
  let n = e[t - 1] ?? "";
5537
- if (Uc.includes(n)) {
5593
+ if (Zc.includes(n)) {
5538
5594
  --t;
5539
5595
  continue;
5540
5596
  }
5541
- let r = Wc[n];
5597
+ let r = Qc[n];
5542
5598
  if (r !== void 0) {
5543
5599
  let i = e.slice(0, t);
5544
- if (Gc(i, n) > Gc(i, r)) {
5600
+ if ($c(i, n) > $c(i, r)) {
5545
5601
  --t;
5546
5602
  continue;
5547
5603
  }
@@ -5550,15 +5606,15 @@ function Kc(e) {
5550
5606
  }
5551
5607
  return e.slice(0, t);
5552
5608
  }
5553
- function qc(e) {
5609
+ function tl(e) {
5554
5610
  let t = /^https?:\/\//i.test(e) ? e : `https://${e}`, n = t.replace(/^https?:\/\//i, "").split(/[/?#]/, 1)[0] ?? "";
5555
5611
  return !n.includes(".") || n.startsWith(".") || n.endsWith(".") ? null : t;
5556
5612
  }
5557
- function Jc(e) {
5613
+ function nl(e) {
5558
5614
  if (!e) return [];
5559
- let t = [], n = 0, r = new RegExp(Hc.source, "gi");
5615
+ let t = [], n = 0, r = new RegExp(Xc.source, "gi");
5560
5616
  for (let i = r.exec(e); i !== null; i = r.exec(e)) {
5561
- let a = i[1] ?? "", o = Kc(i[2] ?? ""), s = o ? qc(o) : null;
5617
+ let a = i[1] ?? "", o = el(i[2] ?? ""), s = o ? tl(o) : null;
5562
5618
  if (!s) continue;
5563
5619
  let c = i.index + a.length;
5564
5620
  c > n && t.push({
@@ -5577,14 +5633,14 @@ function Jc(e) {
5577
5633
  }
5578
5634
  //#endregion
5579
5635
  //#region src/runtime/ui/mentions.tsx
5580
- function Yc({ body: e, mentions: t, trailing: n }) {
5636
+ function rl({ body: e, mentions: t, trailing: n }) {
5581
5637
  let r = rt(() => new Set(t), [t]);
5582
5638
  return /* @__PURE__ */ Q("p", {
5583
5639
  class: "markup-comment-body",
5584
5640
  children: [rt(() => Wr(e), [e]).map((e, t) => e.type === "mention" ? r.has(e.userId) ? /* @__PURE__ */ Q("span", {
5585
5641
  class: "markup-mention-chip",
5586
5642
  children: ["@", e.name]
5587
- }, t) : /* @__PURE__ */ Q("span", { children: ["@", e.name] }, t) : Jc(e.value).map((e, n) => e.type === "link" ? /* @__PURE__ */ Q("a", {
5643
+ }, t) : /* @__PURE__ */ Q("span", { children: ["@", e.name] }, t) : nl(e.value).map((e, n) => e.type === "link" ? /* @__PURE__ */ Q("a", {
5588
5644
  class: "markup-comment-link",
5589
5645
  href: e.href,
5590
5646
  target: "_blank",
@@ -5593,7 +5649,7 @@ function Yc({ body: e, mentions: t, trailing: n }) {
5593
5649
  }, `${t}-${n}`) : /* @__PURE__ */ Q("span", { children: e.value }, `${t}-${n}`))), n]
5594
5650
  });
5595
5651
  }
5596
- function Xc(e) {
5652
+ function il(e) {
5597
5653
  let { members: t, trigger: n, onSelect: r, onClose: i } = e, [a, o] = B(0), s = rt(() => {
5598
5654
  if (!n) return [];
5599
5655
  let e = n.query.toLowerCase();
@@ -5621,12 +5677,12 @@ function Xc(e) {
5621
5677
  handleKeyDown: c
5622
5678
  };
5623
5679
  }
5624
- function Zc({ items: e, highlight: t, setHighlight: n, onSelect: r, anchor: i }) {
5680
+ function al({ items: e, highlight: t, setHighlight: n, onSelect: r, anchor: i }) {
5625
5681
  let a = U(null);
5626
5682
  return H(() => {
5627
5683
  let e = null;
5628
5684
  function t() {
5629
- i.current && a.current && el(i.current, a.current);
5685
+ i.current && a.current && cl(i.current, a.current);
5630
5686
  }
5631
5687
  function n() {
5632
5688
  e ??= requestAnimationFrame(() => {
@@ -5668,16 +5724,16 @@ function Zc({ items: e, highlight: t, setHighlight: n, onSelect: r, anchor: i })
5668
5724
  }, e.userId))
5669
5725
  });
5670
5726
  }
5671
- var Qc = 4, $c = 8;
5672
- function el(e, t) {
5727
+ var ol = 4, sl = 8;
5728
+ function cl(e, t) {
5673
5729
  let n = e.getBoundingClientRect(), r = n.bottom > 0 && n.top < window.innerHeight && n.right > 0 && n.left < window.innerWidth;
5674
5730
  if (t.style.visibility = r ? "" : "hidden", !r) return;
5675
- let i = t.offsetHeight, a = n.top - $c, o = window.innerHeight - n.bottom - $c, s = a >= i + Qc || a >= o ? n.top - Qc - i : n.bottom + Qc, c = window.innerHeight - i - $c;
5676
- t.style.top = `${Math.max($c, Math.min(s, c))}px`, t.style.left = `${n.left}px`, t.style.width = `${n.width}px`;
5731
+ let i = t.offsetHeight, a = n.top - sl, o = window.innerHeight - n.bottom - sl, s = a >= i + ol || a >= o ? n.top - ol - i : n.bottom + ol, c = window.innerHeight - i - sl;
5732
+ t.style.top = `${Math.max(sl, Math.min(s, c))}px`, t.style.left = `${n.left}px`, t.style.width = `${n.width}px`;
5677
5733
  }
5678
5734
  //#endregion
5679
5735
  //#region src/runtime/ui/mention-input.tsx
5680
- function tl({ value: e, onChange: t, onKeyDown: n, members: r, label: i, placeholder: a, disabled: o = !1, autoFocus: s = !1, class: c, handle: l }) {
5736
+ function ll({ value: e, onChange: t, onKeyDown: n, members: r, label: i, placeholder: a, disabled: o = !1, autoFocus: s = !1, class: c, handle: l }) {
5681
5737
  let u = U(null), d = U(null), [f, p] = B(null), m = U(t), h = U(r);
5682
5738
  H(() => {
5683
5739
  m.current = t, h.current = r;
@@ -5686,7 +5742,7 @@ function tl({ value: e, onChange: t, onKeyDown: n, members: r, label: i, placeho
5686
5742
  H(() => {
5687
5743
  let e = u.current;
5688
5744
  if (!e) return;
5689
- let t = zc(e, {
5745
+ let t = qc(e, {
5690
5746
  chipClass: "markup-mention-chip",
5691
5747
  initialValue: g.current,
5692
5748
  onChange: (e) => m.current(e),
@@ -5706,7 +5762,7 @@ function tl({ value: e, onChange: t, onKeyDown: n, members: r, label: i, placeho
5706
5762
  let t = d.current;
5707
5763
  t && t.getValue() !== e && t.setValue(e);
5708
5764
  }, [e]);
5709
- let _ = Xc({
5765
+ let _ = il({
5710
5766
  members: r ?? [],
5711
5767
  trigger: f,
5712
5768
  onSelect: (e) => d.current?.insertMention(e),
@@ -5719,7 +5775,7 @@ function tl({ value: e, onChange: t, onKeyDown: n, members: r, label: i, placeho
5719
5775
  "aria-label": i,
5720
5776
  "aria-disabled": o || void 0,
5721
5777
  class: Z("markup-mention-input", c),
5722
- contentEditable: o ? "false" : Vc(),
5778
+ contentEditable: o ? "false" : Yc(),
5723
5779
  "data-placeholder": a,
5724
5780
  tabIndex: o ? -1 : 0,
5725
5781
  onKeyDown: (e) => {
@@ -5728,7 +5784,7 @@ function tl({ value: e, onChange: t, onKeyDown: n, members: r, label: i, placeho
5728
5784
  onBlur: () => {
5729
5785
  setTimeout(() => d.current?.clearTrigger(), 120);
5730
5786
  }
5731
- }), _.isOpen ? /* @__PURE__ */ Q(Zc, {
5787
+ }), _.isOpen ? /* @__PURE__ */ Q(al, {
5732
5788
  items: _.items,
5733
5789
  highlight: _.highlight,
5734
5790
  setHighlight: _.setHighlight,
@@ -5738,8 +5794,8 @@ function tl({ value: e, onChange: t, onKeyDown: n, members: r, label: i, placeho
5738
5794
  }
5739
5795
  //#endregion
5740
5796
  //#region src/runtime/ui/composer.tsx
5741
- var nl = 4e3;
5742
- function rl({ label: e, placeholder: t = "Leave feedback…", submitLabel: n = "Post", initialFocus: r = !0, isPending: i, error: a, onSubmit: o, onDirtyChange: s, members: c }) {
5797
+ var ul = 4e3;
5798
+ function dl({ label: e, placeholder: t = "Leave feedback…", submitLabel: n = "Post", initialFocus: r = !0, isPending: i, error: a, onSubmit: o, onDirtyChange: s, members: c }) {
5743
5799
  let [l, u] = B(""), d = U(null), f = U(!1);
5744
5800
  V(() => {
5745
5801
  f.current && !i && !a && (u(""), s?.(!1), d.current?.focus()), f.current = i;
@@ -5748,7 +5804,7 @@ function rl({ label: e, placeholder: t = "Leave feedback…", submitLabel: n = "
5748
5804
  a,
5749
5805
  s
5750
5806
  ]);
5751
- let p = nl - l.length, m = p < 0;
5807
+ let p = ul - l.length, m = p < 0;
5752
5808
  function h(e) {
5753
5809
  e?.preventDefault();
5754
5810
  let t = l.trim();
@@ -5773,7 +5829,7 @@ function rl({ label: e, placeholder: t = "Leave feedback…", submitLabel: n = "
5773
5829
  class: Z("markup-composer", _ && "is-filled"),
5774
5830
  onSubmit: h,
5775
5831
  children: [
5776
- /* @__PURE__ */ Q(tl, {
5832
+ /* @__PURE__ */ Q(ll, {
5777
5833
  class: "markup-composer-input",
5778
5834
  label: e,
5779
5835
  placeholder: t,
@@ -5829,20 +5885,20 @@ function rl({ label: e, placeholder: t = "Leave feedback…", submitLabel: n = "
5829
5885
  }
5830
5886
  //#endregion
5831
5887
  //#region src/runtime/ui/new-thread-popover.tsx
5832
- var il = [], al = "https://markup.pixelmatters.dev/docs/install#9-screenshots-privacy";
5833
- function ol({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified: i, isIdentityResolving: a, isSigningIn: o, isPending: s, error: c, screenshot: l, isScreenshotCapturing: u, screenshotFailed: d, screenshotRedactedCount: f, screenshotRedactedSelectors: p, members: m = il, isLeaving: h = !1, onAuthor: g, onSignIn: _, onSignOut: v, onSubmit: y, onClose: b }) {
5888
+ var fl = [], pl = "https://markup.pixelmatters.dev/docs/install#9-screenshots-privacy";
5889
+ function ml({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified: i, isIdentityResolving: a, isSigningIn: o, isPending: s, error: c, screenshot: l, isScreenshotCapturing: u, screenshotFailed: d, screenshotRedactedCount: f, screenshotRedactedSelectors: p, members: m = fl, isLeaving: h = !1, onAuthor: g, onSignIn: _, onSignOut: v, onSubmit: y, onClose: b }) {
5834
5890
  let x = U(null);
5835
- yc(x, !h);
5836
- let C = U(!1), w = U(!1), [ee, T] = B(!1), E = ei(ee || null, 120), D = W((e) => {
5837
- w.current = e, T(e);
5838
- }, []), te = W(() => {
5839
- w.current || (C.current ? D(!0) : b());
5840
- }, [b, D]), O = W(() => {
5841
- D(!1), x.current?.querySelector(".markup-mention-input")?.focus();
5842
- }, [D]), [k, A] = B(!1), [j, M] = B(!1), N = bc(l), P = U(null), [ne, F] = B(null), { onPointerDown: re, isDragging: ie } = gc({
5891
+ Dc(x, !h);
5892
+ let C = U(!1), w = U(!1), [T, E] = B(!1), D = ei(T || null, 120), O = W((e) => {
5893
+ w.current = e, E(e);
5894
+ }, []), ee = W(() => {
5895
+ w.current || (C.current ? O(!0) : b());
5896
+ }, [b, O]), k = W(() => {
5897
+ O(!1), x.current?.querySelector(".markup-mention-input")?.focus();
5898
+ }, [O]), [A, j] = B(!1), [M, N] = B(!1), P = Oc(l), F = U(null), [te, ne] = B(null), { onPointerDown: re, isDragging: ie } = wc({
5843
5899
  targetRef: x,
5844
5900
  shouldStart: (e) => !e.target?.closest("button, a, input, textarea, select"),
5845
- onMove: F
5901
+ onMove: ne
5846
5902
  });
5847
5903
  H(() => {
5848
5904
  let e = x.current;
@@ -5858,31 +5914,32 @@ function ol({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified
5858
5914
  t.preventDefault(), t.stopPropagation();
5859
5915
  return;
5860
5916
  }
5861
- C.current && (t.preventDefault(), t.stopPropagation()), te();
5917
+ C.current && (t.preventDefault(), t.stopPropagation()), ee();
5862
5918
  }
5863
5919
  }
5864
5920
  function n(e) {
5865
- e.key !== "Escape" || e.defaultPrevented || P.current?.open || (e.preventDefault(), w.current ? O() : te());
5921
+ e.key !== "Escape" || e.defaultPrevented || F.current?.open || (e.preventDefault(), w.current ? k() : ee());
5866
5922
  }
5867
- return document.addEventListener("click", t, !0), document.addEventListener("keydown", n), () => {
5868
- document.removeEventListener("click", t, !0), document.removeEventListener("keydown", n);
5923
+ let r = bc(e, t);
5924
+ return document.addEventListener("keydown", n), () => {
5925
+ r(), document.removeEventListener("keydown", n);
5869
5926
  };
5870
5927
  }, [
5871
- te,
5872
- O,
5928
+ ee,
5929
+ k,
5873
5930
  h
5874
5931
  ]), V(() => {
5875
- ee && x.current?.querySelector(".markup-discard-confirm-keep")?.focus();
5876
- }, [ee]);
5877
- let ae = sl(e - window.scrollX + 16, 12, window.innerWidth - 320 - 12), oe = sl(t - window.scrollY - 16, 12, window.innerHeight - 220), se = typeof window < "u" ? window.location.href : "", ce = l != null, le = u || ce || d, ue = k && ce;
5932
+ T && x.current?.querySelector(".markup-discard-confirm-keep")?.focus();
5933
+ }, [T]);
5934
+ let ae = hl(e - window.scrollX + 16, 12, window.innerWidth - 320 - 12), oe = hl(t - window.scrollY - 16, 12, window.innerHeight - 220), se = typeof window < "u" ? window.location.href : "", ce = l != null, le = u || ce || d, ue = A && ce;
5878
5935
  return /* @__PURE__ */ Q("div", {
5879
5936
  ref: x,
5880
- class: Z("markup-popover", ne && "is-floating", ie && "is-dragging", h && "is-leaving"),
5937
+ class: Z("markup-popover", te && "is-floating", ie && "is-dragging", h && "is-leaving"),
5881
5938
  popover: "manual",
5882
5939
  inert: h || void 0,
5883
5940
  style: {
5884
- "--markup-pop-x": `${ne?.left ?? ae}px`,
5885
- "--markup-pop-y": `${ne?.top ?? oe}px`
5941
+ "--markup-pop-x": `${te?.left ?? ae}px`,
5942
+ "--markup-pop-y": `${te?.top ?? oe}px`
5886
5943
  },
5887
5944
  role: "dialog",
5888
5945
  "aria-label": "New markup",
@@ -5898,7 +5955,7 @@ function ol({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified
5898
5955
  type: "button",
5899
5956
  class: "markup-icon-btn",
5900
5957
  "aria-label": "Discard pin",
5901
- onClick: te,
5958
+ onClick: ee,
5902
5959
  children: /* @__PURE__ */ Q(Ws, { size: 16 })
5903
5960
  })]
5904
5961
  }),
@@ -5919,13 +5976,13 @@ function ol({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified
5919
5976
  }) : null
5920
5977
  ]
5921
5978
  }),
5922
- /* @__PURE__ */ Q(rl, {
5979
+ /* @__PURE__ */ Q(dl, {
5923
5980
  label: "Feedback",
5924
5981
  placeholder: "What's wrong, missing, or worth noting?",
5925
5982
  submitLabel: "Post markup",
5926
5983
  isPending: s,
5927
5984
  error: c,
5928
- onSubmit: (e) => y(e, k && ce),
5985
+ onSubmit: (e) => y(e, A && ce),
5929
5986
  onDirtyChange: (e) => {
5930
5987
  C.current = e;
5931
5988
  },
@@ -5957,38 +6014,38 @@ function ol({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified
5957
6014
  /* @__PURE__ */ Q("input", {
5958
6015
  type: "checkbox",
5959
6016
  class: "markup-screenshot-checkbox",
5960
- checked: k,
5961
- onChange: (e) => A(e.currentTarget.checked)
6017
+ checked: A,
6018
+ onChange: (e) => j(e.currentTarget.checked)
5962
6019
  }),
5963
6020
  /* @__PURE__ */ Q(Ys, { size: 12 }),
5964
6021
  /* @__PURE__ */ Q("span", { children: "Attach screenshot" })
5965
6022
  ]
5966
6023
  }),
5967
- ue && N ? /* @__PURE__ */ Q("a", {
6024
+ ue && P ? /* @__PURE__ */ Q("a", {
5968
6025
  class: "markup-screenshot-thumb-link",
5969
- href: N,
6026
+ href: P,
5970
6027
  target: "_blank",
5971
6028
  rel: "noopener",
5972
6029
  title: "Preview screenshot",
5973
6030
  "aria-label": "Preview screenshot",
5974
6031
  onClick: (e) => {
5975
- e.metaKey || e.ctrlKey || e.shiftKey || e.altKey || e.button !== 0 || (e.preventDefault(), P.current?.showModal());
6032
+ e.metaKey || e.ctrlKey || e.shiftKey || e.altKey || e.button !== 0 || (e.preventDefault(), F.current?.showModal());
5976
6033
  },
5977
6034
  children: /* @__PURE__ */ Q("img", {
5978
6035
  class: "markup-screenshot-thumb",
5979
- src: N,
6036
+ src: P,
5980
6037
  alt: ""
5981
6038
  })
5982
6039
  }) : null,
5983
6040
  ue && f > 0 ? /* @__PURE__ */ Q("button", {
5984
6041
  type: "button",
5985
6042
  class: "markup-screenshot-redacted-chip",
5986
- "aria-expanded": j,
5987
- onClick: () => M((e) => !e),
6043
+ "aria-expanded": M,
6044
+ onClick: () => N((e) => !e),
5988
6045
  children: [
5989
6046
  /* @__PURE__ */ Q("em", {
5990
6047
  class: "markup-screenshot-redacted-arrow",
5991
- children: j ? "▾" : "▸"
6048
+ children: M ? "▾" : "▸"
5992
6049
  }),
5993
6050
  f,
5994
6051
  " ",
@@ -5998,7 +6055,7 @@ function ol({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified
5998
6055
  ]
5999
6056
  }) : null
6000
6057
  ]
6001
- }), ue ? /* @__PURE__ */ Q(S, { children: [j && f > 0 ? /* @__PURE__ */ Q("div", {
6058
+ }), ue ? /* @__PURE__ */ Q(S, { children: [M && f > 0 ? /* @__PURE__ */ Q("div", {
6002
6059
  class: "markup-screenshot-redacted-list",
6003
6060
  children: p.map((e) => /* @__PURE__ */ Q("code", {
6004
6061
  class: "markup-screenshot-redacted-selector",
@@ -6011,7 +6068,7 @@ function ol({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified
6011
6068
  " ",
6012
6069
  /* @__PURE__ */ Q("a", {
6013
6070
  class: "markup-screenshot-help-link",
6014
- href: al,
6071
+ href: pl,
6015
6072
  target: "_blank",
6016
6073
  rel: "noopener noreferrer",
6017
6074
  children: "More info here."
@@ -6020,7 +6077,7 @@ function ol({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified
6020
6077
  })] }) : null]
6021
6078
  }) : null
6022
6079
  ]
6023
- }) : /* @__PURE__ */ Q(xc, {
6080
+ }) : /* @__PURE__ */ Q(kc, {
6024
6081
  mode: r,
6025
6082
  isPending: s,
6026
6083
  isConnecting: a,
@@ -6030,31 +6087,31 @@ function ol({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified
6030
6087
  onSignIn: _,
6031
6088
  onSignOut: v
6032
6089
  }),
6033
- ue && N ? /* @__PURE__ */ Q("dialog", {
6034
- ref: P,
6090
+ ue && P ? /* @__PURE__ */ Q("dialog", {
6091
+ ref: F,
6035
6092
  class: "markup-lightbox",
6036
- onClick: () => P.current?.close(),
6093
+ onClick: () => F.current?.close(),
6037
6094
  children: [/* @__PURE__ */ Q("button", {
6038
6095
  type: "button",
6039
6096
  class: "markup-lightbox-close markup-icon-btn",
6040
6097
  "aria-label": "Close screenshot",
6041
6098
  onClick: (e) => {
6042
- e.stopPropagation(), P.current?.close();
6099
+ e.stopPropagation(), F.current?.close();
6043
6100
  },
6044
6101
  children: /* @__PURE__ */ Q(Ws, { size: 16 })
6045
6102
  }), /* @__PURE__ */ Q("img", {
6046
6103
  class: "markup-lightbox-img",
6047
- src: N,
6104
+ src: P,
6048
6105
  alt: "Screenshot preview",
6049
6106
  onClick: (e) => e.stopPropagation()
6050
6107
  })]
6051
6108
  }) : null,
6052
- E ? /* @__PURE__ */ Q("div", {
6053
- class: Z("markup-discard-confirm", E.isLeaving && "is-leaving"),
6109
+ D ? /* @__PURE__ */ Q("div", {
6110
+ class: Z("markup-discard-confirm", D.isLeaving && "is-leaving"),
6054
6111
  role: "alertdialog",
6055
6112
  "aria-labelledby": "markup-discard-confirm-title",
6056
6113
  "aria-describedby": "markup-discard-confirm-desc",
6057
- inert: E.isLeaving || void 0,
6114
+ inert: D.isLeaving || void 0,
6058
6115
  children: [
6059
6116
  /* @__PURE__ */ Q("p", {
6060
6117
  id: "markup-discard-confirm-title",
@@ -6071,7 +6128,7 @@ function ol({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified
6071
6128
  children: [/* @__PURE__ */ Q("button", {
6072
6129
  type: "button",
6073
6130
  class: "markup-btn markup-btn-primary markup-discard-confirm-keep",
6074
- onClick: O,
6131
+ onClick: k,
6075
6132
  children: "Keep editing"
6076
6133
  }), /* @__PURE__ */ Q("button", {
6077
6134
  type: "button",
@@ -6085,12 +6142,12 @@ function ol({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified
6085
6142
  ]
6086
6143
  });
6087
6144
  }
6088
- function sl(e, t, n) {
6145
+ function hl(e, t, n) {
6089
6146
  return Math.max(t, Math.min(n, e));
6090
6147
  }
6091
6148
  //#endregion
6092
6149
  //#region src/runtime/ui/notifications-panel.tsx
6093
- function cl({ state: e, onBack: t, onItemClick: n, onMarkAllRead: r, isMarkingAll: i }) {
6150
+ function gl({ state: e, onBack: t, onItemClick: n, onMarkAllRead: r, isMarkingAll: i }) {
6094
6151
  let a = e.kind === "ready" && e.items.some((e) => e.readAt == null);
6095
6152
  return /* @__PURE__ */ Q("div", {
6096
6153
  class: "markup-notifications-panel",
@@ -6171,7 +6228,7 @@ function cl({ state: e, onBack: t, onItemClick: n, onMarkAllRead: r, isMarkingAl
6171
6228
  }),
6172
6229
  /* @__PURE__ */ Q("span", {
6173
6230
  class: "markup-notifications-panel-time",
6174
- children: ll(e.createdAt)
6231
+ children: _l(e.createdAt)
6175
6232
  })
6176
6233
  ]
6177
6234
  }),
@@ -6203,7 +6260,7 @@ function cl({ state: e, onBack: t, onItemClick: n, onMarkAllRead: r, isMarkingAl
6203
6260
  })]
6204
6261
  });
6205
6262
  }
6206
- function ll(e) {
6263
+ function _l(e) {
6207
6264
  let t = Date.now() - e, n = Math.floor(t / 1e3);
6208
6265
  if (n < 60) return "just now";
6209
6266
  let r = Math.floor(n / 60);
@@ -6215,7 +6272,7 @@ function ll(e) {
6215
6272
  }
6216
6273
  //#endregion
6217
6274
  //#region src/runtime/use-theme.ts
6218
- function ul() {
6275
+ function vl() {
6219
6276
  let [, e] = B(0);
6220
6277
  return V(() => He(() => e((e) => e + 1)), []), {
6221
6278
  mode: ze(),
@@ -6225,7 +6282,7 @@ function ul() {
6225
6282
  }
6226
6283
  //#endregion
6227
6284
  //#region src/runtime/ui/privacy-panel.tsx
6228
- function dl({ identity: e, apiUrl: t, commentAccess: n = "anyone", autoCapture: r, autoCaptureLocked: i, isForgettingMe: a, forgetMeError: o, onForgetMe: s, onBack: c }) {
6285
+ function yl({ identity: e, apiUrl: t, commentAccess: n = "anyone", autoCapture: r, autoCaptureLocked: i, isForgettingMe: a, forgetMeError: o, onForgetMe: s, onBack: c }) {
6229
6286
  let [l, u] = B(!1), d = aa(e), f = e.kind === "verified", p = f ? e.identity.email : void 0, m = e.kind === "anon";
6230
6287
  return /* @__PURE__ */ Q("div", {
6231
6288
  class: "markup-panel",
@@ -6327,7 +6384,7 @@ function dl({ identity: e, apiUrl: t, commentAccess: n = "anyone", autoCapture:
6327
6384
  "Only ",
6328
6385
  /* @__PURE__ */ Q("span", {
6329
6386
  class: "markup-panel-mono",
6330
- children: fl(t)
6387
+ children: bl(t)
6331
6388
  }),
6332
6389
  ". No analytics, no ad tech, no third-party requests from the widget. If the widget itself crashes it posts the error, this page's URL and your user-agent to that same host, never your identity or what you were writing."
6333
6390
  ]
@@ -6363,7 +6420,7 @@ function dl({ identity: e, apiUrl: t, commentAccess: n = "anyone", autoCapture:
6363
6420
  })]
6364
6421
  });
6365
6422
  }
6366
- function fl(e) {
6423
+ function bl(e) {
6367
6424
  try {
6368
6425
  return new URL(e).host;
6369
6426
  } catch {
@@ -6372,7 +6429,7 @@ function fl(e) {
6372
6429
  }
6373
6430
  //#endregion
6374
6431
  //#region src/runtime/ui/shortcuts-panel.tsx
6375
- function pl({ onBack: e }) {
6432
+ function xl({ onBack: e }) {
6376
6433
  let { mod: t, enter: n } = Vs();
6377
6434
  return /* @__PURE__ */ Q("div", {
6378
6435
  class: "markup-panel",
@@ -6469,28 +6526,28 @@ function pl({ onBack: e }) {
6469
6526
  }
6470
6527
  //#endregion
6471
6528
  //#region src/runtime/ui/overflow-menu.tsx
6472
- var ml = {
6529
+ var Sl = {
6473
6530
  menu: "More options",
6474
6531
  privacy: "Privacy and data",
6475
6532
  shortcuts: "Keyboard shortcuts"
6476
6533
  };
6477
- function hl({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked: r = !1, onToggleAutoCapture: i, showResolved: a, onToggleShowResolved: o, isUrlScoped: s, hiddenByUrlScope: c, onToggleUrlScope: l, onHideForSession: u, identity: d, apiUrl: f, commentAccess: p, isForgettingMe: m, forgetMeError: h, onForgetMe: g, version: _, dashboardUrl: v }) {
6478
- let [y, b] = B(!1), [x, S] = B("menu"), C = ei(y || null, 140), w = C?.isLeaving ?? !1, ee = U(null), T = U(null), E = U(null), D = U(null), te = U("menu"), O = U(null), k = U(x);
6479
- k.current = x;
6480
- let A = ul();
6534
+ function Cl({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked: r = !1, onToggleAutoCapture: i, showResolved: a, onToggleShowResolved: o, isUrlScoped: s, hiddenByUrlScope: c, onToggleUrlScope: l, onHideForSession: u, identity: d, apiUrl: f, commentAccess: p, isForgettingMe: m, forgetMeError: h, onForgetMe: g, version: _, dashboardUrl: v }) {
6535
+ let [y, b] = B(!1), [x, S] = B("menu"), C = ei(y || null, 140), w = C?.isLeaving ?? !1, T = U(null), E = U(null), D = U(null), O = U(null), ee = U("menu"), k = U(null), A = U(x);
6536
+ A.current = x;
6537
+ let j = vl();
6481
6538
  V(() => {
6482
- y && (S("menu"), te.current = "menu");
6539
+ y && (S("menu"), ee.current = "menu");
6483
6540
  }, [y]), H(() => {
6484
6541
  if (!y) return;
6485
6542
  if (x !== "menu") {
6486
- T.current?.focus({ preventScroll: !0 });
6543
+ E.current?.focus({ preventScroll: !0 });
6487
6544
  return;
6488
6545
  }
6489
- let e = te.current;
6490
- e !== "menu" && (te.current = "menu", (e === "privacy" ? E.current : D.current)?.focus({ preventScroll: !0 }));
6546
+ let e = ee.current;
6547
+ e !== "menu" && (ee.current = "menu", (e === "privacy" ? D.current : O.current)?.focus({ preventScroll: !0 }));
6491
6548
  }, [y, x]), H(() => {
6492
- let e = T.current, t = O.current;
6493
- if (O.current = null, !e || t == null || window.matchMedia("(prefers-reduced-motion: reduce)").matches) return;
6549
+ let e = E.current, t = k.current;
6550
+ if (k.current = null, !e || t == null || window.matchMedia("(prefers-reduced-motion: reduce)").matches) return;
6494
6551
  let n = e.getBoundingClientRect().height;
6495
6552
  if (Math.round(n) === Math.round(t)) return;
6496
6553
  e.style.height = `${t}px`, e.offsetHeight, e.style.height = `${n}px`;
@@ -6502,29 +6559,31 @@ function hl({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
6502
6559
  };
6503
6560
  }, [x]), V(() => {
6504
6561
  if (!y) return;
6505
- function e(e) {
6506
- let t = ee.current;
6507
- t && (e.composedPath().includes(t) || b(!1));
6508
- }
6509
- function t(e) {
6562
+ let e = T.current;
6563
+ if (!e) return;
6564
+ let t = (t) => {
6565
+ t.composedPath().includes(e) || b(!1);
6566
+ };
6567
+ function n(e) {
6510
6568
  if (e.key === "Escape") {
6511
- if (k.current !== "menu") {
6512
- j("menu");
6569
+ if (A.current !== "menu") {
6570
+ M("menu");
6513
6571
  return;
6514
6572
  }
6515
6573
  b(!1);
6516
6574
  }
6517
6575
  }
6518
- return document.addEventListener("click", e, !0), document.addEventListener("keydown", t), () => {
6519
- document.removeEventListener("click", e, !0), document.removeEventListener("keydown", t);
6576
+ let r = bc(e, t);
6577
+ return document.addEventListener("keydown", n), () => {
6578
+ r(), document.removeEventListener("keydown", n);
6520
6579
  };
6521
6580
  }, [y]);
6522
- function j(e) {
6523
- O.current = T.current?.getBoundingClientRect().height ?? null, e !== "menu" && (te.current = e), S(e);
6581
+ function M(e) {
6582
+ k.current = E.current?.getBoundingClientRect().height ?? null, e !== "menu" && (ee.current = e), S(e);
6524
6583
  }
6525
- let M = e === "bottom-left" ? "is-anchor-left" : e === "bottom-center" ? "is-anchor-center" : "is-anchor-right", { mod: N } = Vs();
6584
+ let N = e === "bottom-left" ? "is-anchor-left" : e === "bottom-center" ? "is-anchor-center" : "is-anchor-right", { mod: P } = Vs();
6526
6585
  return /* @__PURE__ */ Q("div", {
6527
- ref: ee,
6586
+ ref: T,
6528
6587
  style: {
6529
6588
  position: "relative",
6530
6589
  display: "inline-flex"
@@ -6548,15 +6607,15 @@ function hl({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
6548
6607
  children: c > 9 ? "9+" : c
6549
6608
  }) : null]
6550
6609
  }), C ? /* @__PURE__ */ Q("div", {
6551
- ref: T,
6552
- class: Z("markup-pop", M, w && "is-leaving"),
6610
+ ref: E,
6611
+ class: Z("markup-pop", N, w && "is-leaving"),
6553
6612
  "data-pop": "overflow",
6554
6613
  "data-view": x,
6555
6614
  role: "dialog",
6556
- "aria-label": ml[x],
6615
+ "aria-label": Sl[x],
6557
6616
  tabIndex: -1,
6558
6617
  inert: w || void 0,
6559
- children: x === "privacy" ? /* @__PURE__ */ Q(dl, {
6618
+ children: x === "privacy" ? /* @__PURE__ */ Q(yl, {
6560
6619
  identity: d,
6561
6620
  apiUrl: f,
6562
6621
  commentAccess: p,
@@ -6569,8 +6628,8 @@ function hl({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
6569
6628
  e && b(!1);
6570
6629
  });
6571
6630
  },
6572
- onBack: () => j("menu")
6573
- }) : x === "shortcuts" ? /* @__PURE__ */ Q(pl, { onBack: () => j("menu") }) : /* @__PURE__ */ Q("div", {
6631
+ onBack: () => M("menu")
6632
+ }) : x === "shortcuts" ? /* @__PURE__ */ Q(xl, { onBack: () => M("menu") }) : /* @__PURE__ */ Q("div", {
6574
6633
  role: "menu",
6575
6634
  class: "markup-menu-view",
6576
6635
  children: [
@@ -6587,31 +6646,31 @@ function hl({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
6587
6646
  /* @__PURE__ */ Q("button", {
6588
6647
  type: "button",
6589
6648
  role: "radio",
6590
- "aria-checked": A.mode === "light",
6649
+ "aria-checked": j.mode === "light",
6591
6650
  "aria-label": "Light",
6592
6651
  title: "Light",
6593
- class: Z(A.mode === "light" && "is-on"),
6594
- onClick: () => A.set("light"),
6652
+ class: Z(j.mode === "light" && "is-on"),
6653
+ onClick: () => j.set("light"),
6595
6654
  children: /* @__PURE__ */ Q(rc, { size: 14 })
6596
6655
  }),
6597
6656
  /* @__PURE__ */ Q("button", {
6598
6657
  type: "button",
6599
6658
  role: "radio",
6600
- "aria-checked": A.mode === "dark",
6659
+ "aria-checked": j.mode === "dark",
6601
6660
  "aria-label": "Dark",
6602
6661
  title: "Dark",
6603
- class: Z(A.mode === "dark" && "is-on"),
6604
- onClick: () => A.set("dark"),
6662
+ class: Z(j.mode === "dark" && "is-on"),
6663
+ onClick: () => j.set("dark"),
6605
6664
  children: /* @__PURE__ */ Q(ic, { size: 14 })
6606
6665
  }),
6607
6666
  /* @__PURE__ */ Q("button", {
6608
6667
  type: "button",
6609
6668
  role: "radio",
6610
- "aria-checked": A.mode === "auto",
6611
- "aria-label": `Auto (currently ${A.resolved})`,
6612
- title: `Auto, currently ${A.resolved}`,
6613
- class: Z(A.mode === "auto" && "is-on"),
6614
- onClick: () => A.set("auto"),
6669
+ "aria-checked": j.mode === "auto",
6670
+ "aria-label": `Auto (currently ${j.resolved})`,
6671
+ title: `Auto, currently ${j.resolved}`,
6672
+ class: Z(j.mode === "auto" && "is-on"),
6673
+ onClick: () => j.set("auto"),
6615
6674
  children: /* @__PURE__ */ Q(ac, { size: 14 })
6616
6675
  })
6617
6676
  ]
@@ -6635,7 +6694,7 @@ function hl({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
6635
6694
  title: "Bottom left",
6636
6695
  class: Z(e === "bottom-left" && "is-on"),
6637
6696
  onClick: () => t("bottom-left"),
6638
- children: /* @__PURE__ */ Q(gl, { side: "left" })
6697
+ children: /* @__PURE__ */ Q(wl, { side: "left" })
6639
6698
  }),
6640
6699
  /* @__PURE__ */ Q("button", {
6641
6700
  type: "button",
@@ -6645,7 +6704,7 @@ function hl({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
6645
6704
  title: "Bottom center",
6646
6705
  class: Z(e === "bottom-center" && "is-on"),
6647
6706
  onClick: () => t("bottom-center"),
6648
- children: /* @__PURE__ */ Q(gl, { side: "center" })
6707
+ children: /* @__PURE__ */ Q(wl, { side: "center" })
6649
6708
  }),
6650
6709
  /* @__PURE__ */ Q("button", {
6651
6710
  type: "button",
@@ -6655,7 +6714,7 @@ function hl({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
6655
6714
  title: "Bottom right",
6656
6715
  class: Z(e === "bottom-right" && "is-on"),
6657
6716
  onClick: () => t("bottom-right"),
6658
- children: /* @__PURE__ */ Q(gl, { side: "right" })
6717
+ children: /* @__PURE__ */ Q(wl, { side: "right" })
6659
6718
  })
6660
6719
  ]
6661
6720
  })]
@@ -6677,7 +6736,7 @@ function hl({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
6677
6736
  children: [
6678
6737
  /* @__PURE__ */ Q("span", {
6679
6738
  class: "ic",
6680
- children: /* @__PURE__ */ Q(vl, {})
6739
+ children: /* @__PURE__ */ Q(El, {})
6681
6740
  }),
6682
6741
  /* @__PURE__ */ Q("span", {
6683
6742
  class: "lbl",
@@ -6704,7 +6763,7 @@ function hl({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
6704
6763
  children: [
6705
6764
  /* @__PURE__ */ Q("span", {
6706
6765
  class: "ic",
6707
- children: /* @__PURE__ */ Q(_l, {})
6766
+ children: /* @__PURE__ */ Q(Tl, {})
6708
6767
  }),
6709
6768
  /* @__PURE__ */ Q("span", {
6710
6769
  class: "lbl",
@@ -6747,11 +6806,11 @@ function hl({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
6747
6806
  ]
6748
6807
  }),
6749
6808
  /* @__PURE__ */ Q("button", {
6750
- ref: E,
6809
+ ref: D,
6751
6810
  type: "button",
6752
6811
  role: "menuitem",
6753
6812
  class: "markup-menu-row",
6754
- onClick: () => j("privacy"),
6813
+ onClick: () => M("privacy"),
6755
6814
  children: [
6756
6815
  /* @__PURE__ */ Q("span", {
6757
6816
  class: "ic",
@@ -6769,11 +6828,11 @@ function hl({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
6769
6828
  ]
6770
6829
  }),
6771
6830
  /* @__PURE__ */ Q("button", {
6772
- ref: D,
6831
+ ref: O,
6773
6832
  type: "button",
6774
6833
  role: "menuitem",
6775
6834
  class: "markup-menu-row",
6776
- onClick: () => j("shortcuts"),
6835
+ onClick: () => M("shortcuts"),
6777
6836
  children: [
6778
6837
  /* @__PURE__ */ Q("span", {
6779
6838
  class: "ic",
@@ -6801,7 +6860,7 @@ function hl({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
6801
6860
  children: [
6802
6861
  /* @__PURE__ */ Q("span", {
6803
6862
  class: "ic",
6804
- children: /* @__PURE__ */ Q(yl, {})
6863
+ children: /* @__PURE__ */ Q(Dl, {})
6805
6864
  }),
6806
6865
  /* @__PURE__ */ Q("span", {
6807
6866
  class: "lbl",
@@ -6809,7 +6868,7 @@ function hl({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
6809
6868
  }),
6810
6869
  /* @__PURE__ */ Q("span", {
6811
6870
  class: "right",
6812
- children: [N, " ."]
6871
+ children: [P, " ."]
6813
6872
  })
6814
6873
  ]
6815
6874
  }),
@@ -6832,7 +6891,7 @@ function hl({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
6832
6891
  }) : null]
6833
6892
  });
6834
6893
  }
6835
- function gl({ side: e }) {
6894
+ function wl({ side: e }) {
6836
6895
  return /* @__PURE__ */ Q("svg", {
6837
6896
  width: 14,
6838
6897
  height: 14,
@@ -6858,7 +6917,7 @@ function gl({ side: e }) {
6858
6917
  })]
6859
6918
  });
6860
6919
  }
6861
- function _l() {
6920
+ function Tl() {
6862
6921
  return /* @__PURE__ */ Q("svg", {
6863
6922
  width: 16,
6864
6923
  height: 16,
@@ -6872,7 +6931,7 @@ function _l() {
6872
6931
  children: [/* @__PURE__ */ Q("path", { d: "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" }), /* @__PURE__ */ Q("path", { d: "M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" })]
6873
6932
  });
6874
6933
  }
6875
- function vl() {
6934
+ function El() {
6876
6935
  return /* @__PURE__ */ Q("svg", {
6877
6936
  width: 16,
6878
6937
  height: 16,
@@ -6890,7 +6949,7 @@ function vl() {
6890
6949
  })]
6891
6950
  });
6892
6951
  }
6893
- function yl() {
6952
+ function Dl() {
6894
6953
  return /* @__PURE__ */ Q("svg", {
6895
6954
  width: 16,
6896
6955
  height: 16,
@@ -6911,21 +6970,22 @@ function yl() {
6911
6970
  }
6912
6971
  //#endregion
6913
6972
  //#region src/runtime/ui/panel-popover.tsx
6914
- function bl({ kind: e, label: t, position: n, ignoreToolbarKind: r, isLeaving: i = !1, onClose: a, children: o }) {
6973
+ function Ol({ kind: e, label: t, position: n, ignoreToolbarKind: r, isLeaving: i = !1, onClose: a, children: o }) {
6915
6974
  let s = U(null);
6916
6975
  return V(() => {
6917
6976
  if (i) return;
6918
- function e(e) {
6919
- let t = s.current;
6920
- if (!t) return;
6921
- let n = e.composedPath();
6922
- n.includes(t) || r != null && n.some((e) => e?.dataset?.kind === r) || a();
6923
- }
6924
- function t(e) {
6977
+ let e = s.current;
6978
+ if (!e) return;
6979
+ let t = (t) => {
6980
+ let n = t.composedPath();
6981
+ n.includes(e) || r != null && n.some((e) => e?.dataset?.kind === r) || a();
6982
+ };
6983
+ function n(e) {
6925
6984
  e.key === "Escape" && a();
6926
6985
  }
6927
- return document.addEventListener("click", e, !0), document.addEventListener("keydown", t), () => {
6928
- document.removeEventListener("click", e, !0), document.removeEventListener("keydown", t);
6986
+ let o = bc(e, t);
6987
+ return document.addEventListener("keydown", n), () => {
6988
+ o(), document.removeEventListener("keydown", n);
6929
6989
  };
6930
6990
  }, [
6931
6991
  a,
@@ -6947,7 +7007,7 @@ function bl({ kind: e, label: t, position: n, ignoreToolbarKind: r, isLeaving: i
6947
7007
  }
6948
7008
  //#endregion
6949
7009
  //#region src/runtime/ui/pin.tsx
6950
- function xl({ pageX: e, pageY: t, count: n, isActive: r, isUnresolved: i, isClosed: a = !1, isLeaving: o = !1, enterDelayMs: s = 0, otherLocation: c, onClick: l }) {
7010
+ function kl({ pageX: e, pageY: t, count: n, isActive: r, isUnresolved: i, isClosed: a = !1, isLeaving: o = !1, enterDelayMs: s = 0, otherLocation: c, onClick: l }) {
6951
7011
  let u = U(!r), d = `Open ${a ? "resolved " : ""}feedback thread (${n} comment${n === 1 ? "" : "s"})` + (c ? ` — left on ${c}` : ""), f = t - window.scrollY, p = e - window.scrollX;
6952
7012
  return /* @__PURE__ */ Q("button", {
6953
7013
  type: "button",
@@ -6970,7 +7030,7 @@ function xl({ pageX: e, pageY: t, count: n, isActive: r, isUnresolved: i, isClos
6970
7030
  })
6971
7031
  });
6972
7032
  }
6973
- function Sl({ pageX: e, pageY: t, isLeaving: n = !1 }) {
7033
+ function Al({ pageX: e, pageY: t, isLeaving: n = !1 }) {
6974
7034
  let r = t - window.scrollY, i = e - window.scrollX;
6975
7035
  return /* @__PURE__ */ Q("div", {
6976
7036
  class: Z("markup-pin", "markup-pin-ghost", "is-anchor", n && "is-leaving"),
@@ -6987,7 +7047,7 @@ function Sl({ pageX: e, pageY: t, isLeaving: n = !1 }) {
6987
7047
  }
6988
7048
  //#endregion
6989
7049
  //#region src/runtime/ui/placement-overlay.tsx
6990
- function Cl({ onPlace: e, onCancel: t }) {
7050
+ function jl({ onPlace: e, onCancel: t }) {
6991
7051
  let n = U(null);
6992
7052
  return H(() => {
6993
7053
  let r = n.current?.getRootNode() ?? null, i = (e) => r !== null && e.composedPath().includes(r);
@@ -7012,7 +7072,7 @@ function Cl({ onPlace: e, onCancel: t }) {
7012
7072
  window.addEventListener("keydown", a);
7013
7073
  for (let e of l) window.addEventListener(e, o, c);
7014
7074
  window.addEventListener("click", s, c);
7015
- let u = wl();
7075
+ let u = Ml();
7016
7076
  return () => {
7017
7077
  window.removeEventListener("keydown", a);
7018
7078
  for (let e of l) window.removeEventListener(e, o, c);
@@ -7028,7 +7088,7 @@ function Cl({ onPlace: e, onCancel: t }) {
7028
7088
  })
7029
7089
  });
7030
7090
  }
7031
- function wl() {
7091
+ function Ml() {
7032
7092
  let e = "html, html * { cursor: crosshair !important; }";
7033
7093
  if ("adoptedStyleSheets" in document && "replaceSync" in CSSStyleSheet.prototype) {
7034
7094
  let t = new CSSStyleSheet();
@@ -7041,14 +7101,14 @@ function wl() {
7041
7101
  }
7042
7102
  //#endregion
7043
7103
  //#region src/runtime/ui/thread-popover.tsx
7044
- var Tl = [], El = [
7104
+ var Nl = [], Pl = [
7045
7105
  "👍",
7046
7106
  "❤️",
7047
7107
  "🎉",
7048
7108
  "😮",
7049
7109
  "😄",
7050
7110
  "❓"
7051
- ], Dl = Vr({
7111
+ ], Fl = Vr({
7052
7112
  none: {
7053
7113
  "toggle-thread-menu": () => ({
7054
7114
  kind: "thread-menu",
@@ -7104,34 +7164,34 @@ var Tl = [], El = [
7104
7164
  dismiss: () => ({ kind: "none" })
7105
7165
  }
7106
7166
  });
7107
- function Ol({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r, isVerified: i, isIdentityResolving: a, isSigningIn: o, canDelete: s, isPending: c, error: l, isHidden: u = !1, isLeaving: d = !1, members: f = Tl, onAuthor: p, onSignIn: m, onSignOut: h, onClose: g, onReply: _, onEditComment: v, onDeleteComment: y, onToggleReaction: b, onResolve: x, onDelete: S }) {
7108
- let C = U(null), w = U(null), ee = U(null), T = U(null), [E, D] = Hr(Dl, { kind: "none" }), te = ei(E.kind === "none" || E.kind === "editing" ? null : E, 120), O = te?.value ?? null, k = te?.isLeaving ?? !1, A = O?.kind === "thread-menu" ? O : null, [j, M] = B(null), { onPointerDown: N, isDragging: P } = gc({
7167
+ function Il({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r, isVerified: i, isIdentityResolving: a, isSigningIn: o, canDelete: s, isPending: c, error: l, isHidden: u = !1, isLeaving: d = !1, members: f = Nl, onAuthor: p, onSignIn: m, onSignOut: h, onClose: g, onReply: _, onEditComment: v, onDeleteComment: y, onToggleReaction: b, onResolve: x, onDelete: S }) {
7168
+ let C = U(null), w = U(null), T = U(null), E = U(null), [D, O] = Hr(Fl, { kind: "none" }), ee = ei(D.kind === "none" || D.kind === "editing" ? null : D, 120), k = ee?.value ?? null, A = ee?.isLeaving ?? !1, j = k?.kind === "thread-menu" ? k : null, [M, N] = B(null), { onPointerDown: P, isDragging: F } = wc({
7109
7169
  targetRef: C,
7110
7170
  shouldStart: (e) => !e.target?.closest("button, a, input, textarea, select"),
7111
- onMove: M
7171
+ onMove: N
7112
7172
  });
7113
- yc(C, !d);
7114
- let ne = e.resolvedAt != null, F = rt(() => e.comments.filter((e) => !e.deleted), [e.comments]);
7173
+ Dc(C, !d);
7174
+ let te = e.resolvedAt != null, ne = rt(() => e.comments.filter((e) => !e.deleted), [e.comments]);
7115
7175
  V(() => {
7116
- if (E.kind === "none" || E.kind === "editing") return;
7176
+ if (D.kind === "none" || D.kind === "editing") return;
7117
7177
  function e(e) {
7118
- let t = T.current;
7119
- t && !e.composedPath().includes(t) && D({ type: "dismiss" });
7178
+ let t = E.current;
7179
+ t && !e.composedPath().includes(t) && O({ type: "dismiss" });
7120
7180
  }
7121
7181
  return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
7122
- }, [E.kind, D]), V(() => {
7123
- if (E.kind !== "editing") return;
7124
- let t = e.comments.find((e) => e._id === E.commentId);
7125
- (!t || t.deleted) && D({ type: "dismiss" });
7182
+ }, [D.kind, O]), V(() => {
7183
+ if (D.kind !== "editing") return;
7184
+ let t = e.comments.find((e) => e._id === D.commentId);
7185
+ (!t || t.deleted) && O({ type: "dismiss" });
7126
7186
  }, [
7127
7187
  e.comments,
7128
- E,
7129
- D
7188
+ D,
7189
+ O
7130
7190
  ]);
7131
7191
  let re = U(null);
7132
7192
  V(() => {
7133
- re.current ??= F.at(-1)?.createdAt ?? 0;
7134
- }, [F]);
7193
+ re.current ??= ne.at(-1)?.createdAt ?? 0;
7194
+ }, [ne]);
7135
7195
  let ie = U(!0);
7136
7196
  V(() => {
7137
7197
  let e = w.current;
@@ -7142,16 +7202,16 @@ function Ol({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
7142
7202
  }
7143
7203
  e.scrollHeight - e.scrollTop - e.clientHeight < 80 && (e.scrollTop = e.scrollHeight);
7144
7204
  }
7145
- }, [F.length]);
7205
+ }, [ne.length]);
7146
7206
  let ae = U(null);
7147
7207
  H(() => {
7148
7208
  let e = C.current;
7149
7209
  if (e && typeof e.showPopover == "function") try {
7150
- d ? (M((e) => e ?? ae.current), e.matches(":popover-open") && e.hidePopover()) : e.matches(":popover-open") || e.showPopover();
7210
+ d ? (N((e) => e ?? ae.current), e.matches(":popover-open") && e.hidePopover()) : e.matches(":popover-open") || e.showPopover();
7151
7211
  } catch {}
7152
7212
  }, [d]), H(() => {
7153
7213
  let e = C.current;
7154
- if (!e || d || j != null || typeof e.matches == "function" && !e.matches(":popover-open")) return;
7214
+ if (!e || d || M != null || typeof e.matches == "function" && !e.matches(":popover-open")) return;
7155
7215
  let t = getComputedStyle(e), n = Number.parseFloat(t.left), r = Number.parseFloat(t.top);
7156
7216
  Number.isFinite(n) && Number.isFinite(r) && (ae.current = {
7157
7217
  left: n,
@@ -7175,8 +7235,8 @@ function Ol({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
7175
7235
  anchorText: e.anchorText
7176
7236
  });
7177
7237
  return {
7178
- left: Ml(t.pageX - window.scrollX + 16, 12, window.innerWidth - 320 - 12),
7179
- top: Ml(t.pageY - window.scrollY - 16, 12, window.innerHeight - 200)
7238
+ left: Bl(t.pageX - window.scrollX + 16, 12, window.innerWidth - 320 - 12),
7239
+ top: Bl(t.pageY - window.scrollY - 16, 12, window.innerHeight - 200)
7180
7240
  };
7181
7241
  }, [
7182
7242
  e.anchorX,
@@ -7187,11 +7247,11 @@ function Ol({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
7187
7247
  return /* @__PURE__ */ Q("div", {
7188
7248
  ref: C,
7189
7249
  id: d ? void 0 : "markup-thread-popover",
7190
- class: Z("markup-popover", j && "is-floating", P && "is-dragging", u && "is-hud-hidden", d && "is-leaving"),
7250
+ class: Z("markup-popover", M && "is-floating", F && "is-dragging", u && "is-hud-hidden", d && "is-leaving"),
7191
7251
  popover: "auto",
7192
7252
  style: {
7193
- "--markup-pop-x": `${j?.left ?? se.left}px`,
7194
- "--markup-pop-y": `${j?.top ?? se.top}px`
7253
+ "--markup-pop-x": `${M?.left ?? se.left}px`,
7254
+ "--markup-pop-y": `${M?.top ?? se.top}px`
7195
7255
  },
7196
7256
  role: "dialog",
7197
7257
  "aria-label": "Markup thread",
@@ -7200,44 +7260,44 @@ function Ol({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
7200
7260
  children: [
7201
7261
  /* @__PURE__ */ Q("header", {
7202
7262
  class: "markup-popover-header",
7203
- onPointerDown: N,
7263
+ onPointerDown: P,
7204
7264
  children: [/* @__PURE__ */ Q("span", {
7205
7265
  class: "markup-popover-title",
7206
7266
  title: e.url,
7207
- children: F.length === 1 ? "1 comment" : `${F.length} comments`
7267
+ children: ne.length === 1 ? "1 comment" : `${ne.length} comments`
7208
7268
  }), /* @__PURE__ */ Q("div", {
7209
7269
  class: "markup-popover-header-actions",
7210
7270
  children: [
7211
7271
  /* @__PURE__ */ Q("div", {
7212
7272
  class: "markup-thread-menu",
7213
7273
  ref: (e) => {
7214
- E.kind === "thread-menu" && (T.current = e);
7274
+ D.kind === "thread-menu" && (E.current = e);
7215
7275
  },
7216
7276
  children: [/* @__PURE__ */ Q("button", {
7217
7277
  type: "button",
7218
- class: Z("markup-icon-btn", A != null && "is-open"),
7278
+ class: Z("markup-icon-btn", j != null && "is-open"),
7219
7279
  title: "More options",
7220
- onClick: () => D({ type: "toggle-thread-menu" }),
7280
+ onClick: () => O({ type: "toggle-thread-menu" }),
7221
7281
  children: /* @__PURE__ */ Q(qs, { size: 16 })
7222
- }), A ? /* @__PURE__ */ Q("div", {
7223
- class: Z("markup-thread-menu-list", k && "is-leaving"),
7224
- inert: k || void 0,
7282
+ }), j ? /* @__PURE__ */ Q("div", {
7283
+ class: Z("markup-thread-menu-list", A && "is-leaving"),
7284
+ inert: A || void 0,
7225
7285
  children: [/* @__PURE__ */ Q("button", {
7226
7286
  type: "button",
7227
7287
  class: "markup-thread-menu-item",
7228
7288
  onClick: () => {
7229
7289
  let t = Oa(e.url, e._id);
7230
- t && navigator.clipboard.writeText(t).catch(() => {}), D({ type: "dismiss" });
7290
+ t && navigator.clipboard.writeText(t).catch(() => {}), O({ type: "dismiss" });
7231
7291
  },
7232
7292
  children: "Copy link"
7233
7293
  }), s ? /* @__PURE__ */ Q("button", {
7234
7294
  type: "button",
7235
- class: Z("markup-thread-menu-item", A.confirmDelete && "is-danger"),
7295
+ class: Z("markup-thread-menu-item", j.confirmDelete && "is-danger"),
7236
7296
  disabled: c,
7237
7297
  onClick: () => {
7238
- E.kind === "thread-menu" && (E.confirmDelete ? (D({ type: "dismiss" }), S()) : D({ type: "arm-thread-delete" }));
7298
+ D.kind === "thread-menu" && (D.confirmDelete ? (O({ type: "dismiss" }), S()) : O({ type: "arm-thread-delete" }));
7239
7299
  },
7240
- children: A.confirmDelete ? "Confirm delete" : "Delete thread…"
7300
+ children: j.confirmDelete ? "Confirm delete" : "Delete thread…"
7241
7301
  }) : null]
7242
7302
  }) : null]
7243
7303
  }),
@@ -7262,15 +7322,15 @@ function Ol({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
7262
7322
  /* @__PURE__ */ Q("ol", {
7263
7323
  ref: w,
7264
7324
  class: "markup-comments",
7265
- children: F.map((t, n) => {
7266
- let i = !t.fromDashboard && r != null && t.authorClientId === r, a = n === 0, o = i && !ne && !t.deleted, s = i && !ne && !t.deleted && !a, l = E.kind === "editing" && E.commentId === t._id, u = (o || s) && !l && !t.deleted, d = O?.kind === "comment-menu" && O.commentId === t._id ? O : null, p = O?.kind === "reaction-picker" && O.commentId === t._id ? O : null, m = d != null, h = d?.confirmDelete ?? !1, g = p != null, _ = p?.direction ?? "down", x = d?.direction ?? "down";
7325
+ children: ne.map((t, n) => {
7326
+ let i = !t.fromDashboard && r != null && t.authorClientId === r, a = n === 0, o = i && !te && !t.deleted, s = i && !te && !t.deleted && !a, l = D.kind === "editing" && D.commentId === t._id, u = (o || s) && !l && !t.deleted, d = k?.kind === "comment-menu" && k.commentId === t._id ? k : null, p = k?.kind === "reaction-picker" && k.commentId === t._id ? k : null, m = d != null, h = d?.confirmDelete ?? !1, g = p != null, _ = p?.direction ?? "down", x = d?.direction ?? "down";
7267
7327
  return /* @__PURE__ */ Q("li", {
7268
7328
  class: Z("markup-comment", re.current != null && t.createdAt > re.current && "is-new"),
7269
7329
  children: [
7270
- /* @__PURE__ */ Q(Nl, {
7330
+ /* @__PURE__ */ Q(Vl, {
7271
7331
  name: t.authorName,
7272
7332
  image: t.authorImage,
7273
- tone: Fl(t.authorClientId ?? t.authorName)
7333
+ tone: Ul(t.authorClientId ?? t.authorName)
7274
7334
  }),
7275
7335
  /* @__PURE__ */ Q("div", {
7276
7336
  class: "markup-comment-meta",
@@ -7289,37 +7349,37 @@ function Ol({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
7289
7349
  /* @__PURE__ */ Q("time", {
7290
7350
  class: "markup-comment-time",
7291
7351
  datetime: new Date(t.createdAt).toISOString(),
7292
- title: Ll(t.createdAt),
7293
- children: Il(t.createdAt)
7352
+ title: Gl(t.createdAt),
7353
+ children: Wl(t.createdAt)
7294
7354
  }),
7295
7355
  t.editedAt == null ? null : /* @__PURE__ */ Q("time", {
7296
7356
  class: "markup-comment-edited",
7297
7357
  datetime: new Date(t.editedAt).toISOString(),
7298
- title: Ll(t.editedAt),
7358
+ title: Gl(t.editedAt),
7299
7359
  children: "edited"
7300
7360
  }),
7301
7361
  /* @__PURE__ */ Q("div", {
7302
7362
  class: "markup-thread-actions",
7303
- children: [!ne && !l ? /* @__PURE__ */ Q(kl, {
7363
+ children: [!te && !l ? /* @__PURE__ */ Q(Ll, {
7304
7364
  comment: t,
7305
7365
  pickerOpen: g,
7306
- pickerLeaving: g && k,
7366
+ pickerLeaving: g && A,
7307
7367
  pickerDirection: _,
7308
- pickerSide: F.length === 1,
7368
+ pickerSide: ne.length === 1,
7309
7369
  pickerRef: (e) => {
7310
- g && (T.current = e);
7370
+ g && (E.current = e);
7311
7371
  },
7312
7372
  onPickerClick: (e) => {
7313
7373
  if (g) {
7314
- D({
7374
+ O({
7315
7375
  type: "toggle-reaction-picker",
7316
7376
  commentId: t._id,
7317
7377
  direction: "down"
7318
7378
  });
7319
7379
  return;
7320
7380
  }
7321
- if (F.length === 1) {
7322
- D({
7381
+ if (ne.length === 1) {
7382
+ O({
7323
7383
  type: "toggle-reaction-picker",
7324
7384
  commentId: t._id,
7325
7385
  direction: "down"
@@ -7327,19 +7387,19 @@ function Ol({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
7327
7387
  return;
7328
7388
  }
7329
7389
  let n = e.currentTarget.getBoundingClientRect(), r = w.current?.getBoundingClientRect(), i = r ? r.bottom - n.bottom : Infinity;
7330
- D({
7390
+ O({
7331
7391
  type: "toggle-reaction-picker",
7332
7392
  commentId: t._id,
7333
7393
  direction: i < 44 ? "up" : "down"
7334
7394
  });
7335
7395
  },
7336
7396
  onPickerSelect: (e) => {
7337
- D({ type: "dismiss" }), b(t._id, e);
7397
+ O({ type: "dismiss" }), b(t._id, e);
7338
7398
  }
7339
7399
  }) : null, u ? /* @__PURE__ */ Q("div", {
7340
- class: Z("markup-thread-menu markup-comment-menu", m && "is-open", m && x === "up" && "is-up", F.length === 1 && "is-side"),
7400
+ class: Z("markup-thread-menu markup-comment-menu", m && "is-open", m && x === "up" && "is-up", ne.length === 1 && "is-side"),
7341
7401
  ref: (e) => {
7342
- m && (T.current = e);
7402
+ m && (E.current = e);
7343
7403
  },
7344
7404
  children: [/* @__PURE__ */ Q("button", {
7345
7405
  type: "button",
@@ -7347,15 +7407,15 @@ function Ol({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
7347
7407
  title: "More options",
7348
7408
  onClick: (e) => {
7349
7409
  if (m) {
7350
- D({
7410
+ O({
7351
7411
  type: "toggle-comment-menu",
7352
7412
  commentId: t._id,
7353
7413
  direction: "down"
7354
7414
  });
7355
7415
  return;
7356
7416
  }
7357
- if (F.length === 1) {
7358
- D({
7417
+ if (ne.length === 1) {
7418
+ O({
7359
7419
  type: "toggle-comment-menu",
7360
7420
  commentId: t._id,
7361
7421
  direction: "down"
@@ -7363,7 +7423,7 @@ function Ol({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
7363
7423
  return;
7364
7424
  }
7365
7425
  let n = e.currentTarget.getBoundingClientRect(), r = w.current?.getBoundingClientRect(), i = (+!!o + +!!s) * 32 + 8 + 6, a = r ? r.bottom - n.bottom : Infinity;
7366
- D({
7426
+ O({
7367
7427
  type: "toggle-comment-menu",
7368
7428
  commentId: t._id,
7369
7429
  direction: a < i ? "up" : "down"
@@ -7371,13 +7431,13 @@ function Ol({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
7371
7431
  },
7372
7432
  children: /* @__PURE__ */ Q(qs, { size: 16 })
7373
7433
  }), m ? /* @__PURE__ */ Q("div", {
7374
- class: Z("markup-thread-menu-list", k && "is-leaving"),
7375
- inert: k || void 0,
7434
+ class: Z("markup-thread-menu-list", A && "is-leaving"),
7435
+ inert: A || void 0,
7376
7436
  children: [o ? /* @__PURE__ */ Q("button", {
7377
7437
  type: "button",
7378
7438
  class: "markup-thread-menu-item",
7379
7439
  onClick: () => {
7380
- D({
7440
+ O({
7381
7441
  type: "start-edit",
7382
7442
  commentId: t._id,
7383
7443
  body: t.body
@@ -7388,7 +7448,7 @@ function Ol({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
7388
7448
  type: "button",
7389
7449
  class: Z("markup-thread-menu-item", h && "is-danger"),
7390
7450
  onClick: () => {
7391
- E.kind === "comment-menu" && (E.confirmDelete ? (D({ type: "dismiss" }), y(t._id)) : D({ type: "arm-comment-delete" }));
7451
+ D.kind === "comment-menu" && (D.confirmDelete ? (O({ type: "dismiss" }), y(t._id)) : O({ type: "arm-comment-delete" }));
7392
7452
  },
7393
7453
  children: h ? "Confirm delete" : "Delete…"
7394
7454
  }) : null]
@@ -7397,24 +7457,24 @@ function Ol({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
7397
7457
  })
7398
7458
  ]
7399
7459
  }),
7400
- l && E.kind === "editing" ? /* @__PURE__ */ Q("form", {
7460
+ l && D.kind === "editing" ? /* @__PURE__ */ Q("form", {
7401
7461
  class: "markup-comment-edit-form",
7402
7462
  onSubmit: async (e) => {
7403
- if (e.preventDefault(), E.kind !== "editing") return;
7404
- let n = E.draft.trim();
7463
+ if (e.preventDefault(), D.kind !== "editing") return;
7464
+ let n = D.draft.trim();
7405
7465
  if (!n || n === t.body) {
7406
- D({ type: "dismiss" });
7466
+ O({ type: "dismiss" });
7407
7467
  return;
7408
7468
  }
7409
7469
  try {
7410
- await v(t._id, n), D({ type: "dismiss" });
7470
+ await v(t._id, n), O({ type: "dismiss" });
7411
7471
  } catch {}
7412
7472
  },
7413
- children: [/* @__PURE__ */ Q(tl, {
7473
+ children: [/* @__PURE__ */ Q(ll, {
7414
7474
  class: "markup-comment-edit-input",
7415
7475
  label: "Edit comment",
7416
- value: E.draft,
7417
- onChange: (e) => D({
7476
+ value: D.draft,
7477
+ onChange: (e) => O({
7418
7478
  type: "update-draft",
7419
7479
  draft: e
7420
7480
  }),
@@ -7426,32 +7486,32 @@ function Ol({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
7426
7486
  children: [/* @__PURE__ */ Q("button", {
7427
7487
  type: "button",
7428
7488
  class: "markup-btn markup-btn-ghost",
7429
- onClick: () => D({ type: "dismiss" }),
7489
+ onClick: () => O({ type: "dismiss" }),
7430
7490
  disabled: c,
7431
7491
  children: "Cancel"
7432
7492
  }), /* @__PURE__ */ Q("button", {
7433
7493
  type: "submit",
7434
7494
  class: "markup-btn markup-btn-primary",
7435
- disabled: c || E.draft.trim().length === 0,
7495
+ disabled: c || D.draft.trim().length === 0,
7436
7496
  children: "Save"
7437
7497
  })]
7438
7498
  })]
7439
- }) : /* @__PURE__ */ Q(Yc, {
7499
+ }) : /* @__PURE__ */ Q(rl, {
7440
7500
  body: t.body,
7441
7501
  mentions: t.mentions
7442
7502
  }),
7443
7503
  n === 0 && e.screenshotUrl ? /* @__PURE__ */ Q("button", {
7444
7504
  type: "button",
7445
7505
  class: "markup-comment-screenshot",
7446
- onClick: () => ee.current?.showModal(),
7506
+ onClick: () => T.current?.showModal(),
7447
7507
  children: /* @__PURE__ */ Q("img", {
7448
7508
  src: e.screenshotUrl,
7449
7509
  alt: "Screenshot"
7450
7510
  })
7451
7511
  }) : null,
7452
- !l && t.reactions.length > 0 ? /* @__PURE__ */ Q(Al, {
7512
+ !l && t.reactions.length > 0 ? /* @__PURE__ */ Q(Rl, {
7453
7513
  comment: t,
7454
- isResolved: ne,
7514
+ isResolved: te,
7455
7515
  onToggle: (e) => b(t._id, e)
7456
7516
  }) : null
7457
7517
  ]
@@ -7459,15 +7519,15 @@ function Ol({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
7459
7519
  })
7460
7520
  }),
7461
7521
  e.screenshotUrl ? /* @__PURE__ */ Q("dialog", {
7462
- ref: ee,
7522
+ ref: T,
7463
7523
  class: "markup-lightbox",
7464
- onClick: () => ee.current?.close(),
7524
+ onClick: () => T.current?.close(),
7465
7525
  children: [/* @__PURE__ */ Q("button", {
7466
7526
  type: "button",
7467
7527
  class: "markup-lightbox-close markup-icon-btn",
7468
7528
  "aria-label": "Close screenshot",
7469
7529
  onClick: (e) => {
7470
- e.stopPropagation(), ee.current?.close();
7530
+ e.stopPropagation(), T.current?.close();
7471
7531
  },
7472
7532
  children: /* @__PURE__ */ Q(Ws, { size: 16 })
7473
7533
  }), /* @__PURE__ */ Q("img", {
@@ -7492,7 +7552,7 @@ function Ol({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
7492
7552
  children: "team"
7493
7553
  }) : null
7494
7554
  ]
7495
- }), /* @__PURE__ */ Q(rl, {
7555
+ }), /* @__PURE__ */ Q(dl, {
7496
7556
  label: "Reply",
7497
7557
  placeholder: "Write a reply…",
7498
7558
  submitLabel: "Reply",
@@ -7502,7 +7562,7 @@ function Ol({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
7502
7562
  onSubmit: _,
7503
7563
  members: f
7504
7564
  })]
7505
- }) : /* @__PURE__ */ Q(xc, {
7565
+ }) : /* @__PURE__ */ Q(kc, {
7506
7566
  mode: n,
7507
7567
  isPending: c,
7508
7568
  isConnecting: a,
@@ -7515,7 +7575,7 @@ function Ol({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
7515
7575
  ]
7516
7576
  });
7517
7577
  }
7518
- function kl({ comment: e, pickerOpen: t, pickerLeaving: n, pickerDirection: r, pickerSide: i, pickerRef: a, onPickerClick: o, onPickerSelect: s }) {
7578
+ function Ll({ comment: e, pickerOpen: t, pickerLeaving: n, pickerDirection: r, pickerSide: i, pickerRef: a, onPickerClick: o, onPickerSelect: s }) {
7519
7579
  return /* @__PURE__ */ Q("div", {
7520
7580
  class: Z("markup-reaction-picker-wrap", t && "is-open", t && r === "up" && "is-up", i && "is-side"),
7521
7581
  ref: a,
@@ -7530,7 +7590,7 @@ function kl({ comment: e, pickerOpen: t, pickerLeaving: n, pickerDirection: r, p
7530
7590
  class: Z("markup-reaction-picker", n && "is-leaving"),
7531
7591
  role: "menu",
7532
7592
  inert: n || void 0,
7533
- children: El.map((t) => /* @__PURE__ */ Q("button", {
7593
+ children: Pl.map((t) => /* @__PURE__ */ Q("button", {
7534
7594
  type: "button",
7535
7595
  role: "menuitem",
7536
7596
  class: Z("markup-reaction-picker-item", (e.reactions.find((e) => e.emoji === t)?.mine ?? !1) && "is-mine"),
@@ -7540,11 +7600,11 @@ function kl({ comment: e, pickerOpen: t, pickerLeaving: n, pickerDirection: r, p
7540
7600
  }) : null]
7541
7601
  });
7542
7602
  }
7543
- function Al({ comment: e, isResolved: t, onToggle: n }) {
7603
+ function Rl({ comment: e, isResolved: t, onToggle: n }) {
7544
7604
  return /* @__PURE__ */ Q("div", {
7545
7605
  class: "markup-reactions",
7546
7606
  children: e.reactions.map((e) => {
7547
- let r = jl(e.reactors, e.mine, e.count, e.emoji);
7607
+ let r = zl(e.reactors, e.mine, e.count, e.emoji);
7548
7608
  return /* @__PURE__ */ Q("button", {
7549
7609
  type: "button",
7550
7610
  class: Z("markup-reaction-chip", e.mine && "is-mine"),
@@ -7565,14 +7625,14 @@ function Al({ comment: e, isResolved: t, onToggle: n }) {
7565
7625
  })
7566
7626
  });
7567
7627
  }
7568
- function jl(e, t, n, r) {
7628
+ function zl(e, t, n, r) {
7569
7629
  let i = e.slice(), a = i.length + +!!t, o = Math.max(0, n - a);
7570
7630
  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}`;
7571
7631
  }
7572
- function Ml(e, t, n) {
7632
+ function Bl(e, t, n) {
7573
7633
  return Math.max(t, Math.min(n, e));
7574
7634
  }
7575
- function Nl({ name: e, image: t, tone: n }) {
7635
+ function Vl({ name: e, image: t, tone: n }) {
7576
7636
  let [r, i] = B(null);
7577
7637
  return /* @__PURE__ */ Q("span", {
7578
7638
  class: "markup-comment-avatar",
@@ -7588,11 +7648,11 @@ function Nl({ name: e, image: t, tone: n }) {
7588
7648
  onError: () => i(t)
7589
7649
  }) : /* @__PURE__ */ Q("span", {
7590
7650
  class: "markup-avatar-initials",
7591
- children: Pl(e)
7651
+ children: Hl(e)
7592
7652
  })
7593
7653
  });
7594
7654
  }
7595
- function Pl(e) {
7655
+ function Hl(e) {
7596
7656
  let t = e.trim();
7597
7657
  if (!t) return "??";
7598
7658
  let n = t.split(/\s+/).filter(Boolean), r = n[0] ?? "";
@@ -7600,12 +7660,12 @@ function Pl(e) {
7600
7660
  let i = n[n.length - 1] ?? "";
7601
7661
  return ((r[0] ?? "") + (i[0] ?? "")).toUpperCase();
7602
7662
  }
7603
- function Fl(e) {
7663
+ function Ul(e) {
7604
7664
  let t = 0;
7605
7665
  for (let n = 0; n < e.length; n++) t = t * 31 + e.charCodeAt(n) | 0;
7606
7666
  return Math.abs(t) % 5 + 1;
7607
7667
  }
7608
- function Il(e) {
7668
+ function Wl(e) {
7609
7669
  let t = Date.now() - e, n = Math.floor(t / 1e3);
7610
7670
  if (n < 60) return "just now";
7611
7671
  let r = Math.floor(n / 60);
@@ -7622,7 +7682,7 @@ function Il(e) {
7622
7682
  year: "numeric"
7623
7683
  });
7624
7684
  }
7625
- function Ll(e) {
7685
+ function Gl(e) {
7626
7686
  return new Date(e).toLocaleDateString([], {
7627
7687
  month: "long",
7628
7688
  day: "numeric",
@@ -7633,17 +7693,19 @@ function Ll(e) {
7633
7693
  }
7634
7694
  //#endregion
7635
7695
  //#region src/runtime/ui/toolbar.tsx
7636
- function Rl(e) {
7696
+ function Kl(e) {
7637
7697
  e.stopPropagation();
7638
7698
  }
7639
- function zl(e) {
7640
- Rl(e), e.target?.closest?.(".markup-tb-btn") && e.preventDefault();
7641
- }
7642
- function Bl({ isActive: e, onToggle: t, onHide: n, position: r = "bottom-right", unreadCount: i = 0, showInbox: a = !1, onOpenInbox: o, inboxOpen: s = !1, pinsVisible: c = !0, onTogglePins: l, identityButton: u, overflowButton: d, isLeaving: f = !1 }) {
7699
+ function ql({ isActive: e, onToggle: t, onHide: n, position: r = "bottom-right", unreadCount: i = 0, showInbox: a = !1, onOpenInbox: o, inboxOpen: s = !1, pinsVisible: c = !0, onTogglePins: l, identityButton: u, overflowButton: d, isLeaving: f = !1 }) {
7643
7700
  let p = U(0);
7644
7701
  i > 0 && (p.current = i);
7645
- let m = r === "bottom-left" ? "markup-toolbar-left" : r === "bottom-center" ? "markup-toolbar-center" : "markup-toolbar-right";
7646
- function h(e) {
7702
+ let m = U(null);
7703
+ H(() => {
7704
+ let e = m.current;
7705
+ return e ? yc(e) : void 0;
7706
+ }, []);
7707
+ let h = r === "bottom-left" ? "markup-toolbar-left" : r === "bottom-center" ? "markup-toolbar-center" : "markup-toolbar-right";
7708
+ function g(e) {
7647
7709
  if (e.preventDefault(), e.stopPropagation(), (e.metaKey || e.ctrlKey) && n) {
7648
7710
  n();
7649
7711
  return;
@@ -7651,15 +7713,16 @@ function Bl({ isActive: e, onToggle: t, onHide: n, position: r = "bottom-right",
7651
7713
  t();
7652
7714
  }
7653
7715
  return /* @__PURE__ */ Q("div", {
7654
- class: Z("markup-toolbar", m, f && "is-leaving"),
7716
+ ref: m,
7717
+ class: Z("markup-toolbar", h, f && "is-leaving"),
7655
7718
  role: "toolbar",
7656
7719
  "aria-label": "Markup feedback toolbar",
7657
7720
  "aria-hidden": f,
7658
7721
  inert: f ? "" : void 0,
7659
- onPointerDown: Rl,
7660
- onMouseDown: zl,
7661
- onPointerUp: Rl,
7662
- onMouseUp: Rl,
7722
+ onPointerDown: Kl,
7723
+ onMouseDown: Kl,
7724
+ onPointerUp: Kl,
7725
+ onMouseUp: Kl,
7663
7726
  children: [
7664
7727
  /* @__PURE__ */ Q("button", {
7665
7728
  type: "button",
@@ -7668,7 +7731,7 @@ function Bl({ isActive: e, onToggle: t, onHide: n, position: r = "bottom-right",
7668
7731
  "data-armed": e ? "true" : void 0,
7669
7732
  title: e ? "Cancel placing markup" : "Leave a markup",
7670
7733
  "aria-pressed": e,
7671
- onClick: h,
7734
+ onClick: g,
7672
7735
  children: Q(e ? Ws : Qs, { size: 16 })
7673
7736
  }),
7674
7737
  a ? /* @__PURE__ */ Q("button", {
@@ -7722,8 +7785,8 @@ function Bl({ isActive: e, onToggle: t, onHide: n, position: r = "bottom-right",
7722
7785
  }
7723
7786
  //#endregion
7724
7787
  //#region src/runtime/ui/app.tsx
7725
- var Vl = [], Hl = [], Ul = [], Wl = [{ key: "toolbar" }], Gl = [];
7726
- function Kl(e) {
7788
+ var Jl = [], Yl = [], Xl = [], Zl = [{ key: "toolbar" }], Ql = [];
7789
+ function $l(e) {
7727
7790
  let t = {
7728
7791
  clientId: `markup_user_${e.identity.id}`,
7729
7792
  name: e.identity.name,
@@ -7749,14 +7812,14 @@ function Kl(e) {
7749
7812
  } : {}
7750
7813
  };
7751
7814
  }
7752
- function ql() {
7815
+ function eu() {
7753
7816
  let e = document.activeElement;
7754
7817
  for (; e && e.shadowRoot && e.shadowRoot.activeElement;) e = e.shadowRoot.activeElement;
7755
7818
  if (!e) return !1;
7756
7819
  let t = e.tagName;
7757
7820
  return t === "INPUT" || t === "TEXTAREA" || t === "SELECT" || e.isContentEditable;
7758
7821
  }
7759
- var Jl = Vr({
7822
+ var tu = Vr({
7760
7823
  visible: {
7761
7824
  "hide-with-toast": () => ({ kind: "hidden-with-toast" }),
7762
7825
  toggle: () => ({ kind: "hidden" })
@@ -7767,26 +7830,26 @@ var Jl = Vr({
7767
7830
  },
7768
7831
  hidden: { toggle: () => ({ kind: "visible" }) }
7769
7832
  });
7770
- function Yl(e) {
7833
+ function nu(e) {
7771
7834
  return ra(e), e;
7772
7835
  }
7773
- var Xl = Vr({
7836
+ var ru = Vr({
7774
7837
  unresolved: {
7775
- "mint-success": (e, t) => Yl({
7838
+ "mint-success": (e, t) => nu({
7776
7839
  kind: "anon",
7777
7840
  identity: t.identity
7778
7841
  }),
7779
- "signed-in": (e, t) => Yl({
7842
+ "signed-in": (e, t) => nu({
7780
7843
  kind: "verified",
7781
7844
  identity: t.identity
7782
7845
  })
7783
7846
  },
7784
7847
  anon: {
7785
- "signed-in": (e, t) => Yl({
7848
+ "signed-in": (e, t) => nu({
7786
7849
  kind: "verified",
7787
7850
  identity: t.identity
7788
7851
  }),
7789
- "author-set": (e, t) => Yl({
7852
+ "author-set": (e, t) => nu({
7790
7853
  kind: "anon",
7791
7854
  identity: {
7792
7855
  ...e.identity,
@@ -7794,35 +7857,35 @@ var Xl = Vr({
7794
7857
  email: t.email
7795
7858
  }
7796
7859
  }),
7797
- "forget-me": () => Yl({ kind: "unresolved" })
7860
+ "forget-me": () => nu({ kind: "unresolved" })
7798
7861
  },
7799
7862
  verified: {
7800
- "signed-in": (e, t) => Yl({
7863
+ "signed-in": (e, t) => nu({
7801
7864
  kind: "verified",
7802
7865
  identity: t.identity
7803
7866
  }),
7804
- unauthorized: (e) => Yl({
7867
+ unauthorized: (e) => nu({
7805
7868
  kind: "recovering",
7806
7869
  preserved: {
7807
7870
  name: e.identity.name,
7808
7871
  email: e.identity.email
7809
7872
  }
7810
7873
  }),
7811
- "signed-out": () => Yl({ kind: "unresolved" })
7874
+ "signed-out": () => nu({ kind: "unresolved" })
7812
7875
  },
7813
7876
  recovering: {
7814
- "mint-success": (e, t) => Yl({
7877
+ "mint-success": (e, t) => nu({
7815
7878
  kind: "anon",
7816
7879
  identity: t.identity
7817
7880
  }),
7818
- "signed-in": (e, t) => Yl({
7881
+ "signed-in": (e, t) => nu({
7819
7882
  kind: "verified",
7820
7883
  identity: t.identity
7821
7884
  })
7822
7885
  }
7823
7886
  });
7824
- function Zl({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r, dashboardUrl: i, routeParams: a = Vl }) {
7825
- let [o, s] = B(() => ya(a)), [c, l] = B(() => xa(a)), [u, d] = B([]), [f, p] = B(!1), m = rt(() => na(), []), [h, g] = Hr(Xl, m.state), [_, v] = B(null);
7887
+ function iu({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r, dashboardUrl: i, routeParams: a = Jl }) {
7888
+ let [o, s] = B(() => ya(a)), [c, l] = B(() => xa(a)), [u, d] = B([]), [f, p] = B(!1), m = rt(() => na(), []), [h, g] = Hr(ru, m.state), [_, v] = B(null);
7826
7889
  V(() => {
7827
7890
  let n = !1;
7828
7891
  return Hi(e, t).then((e) => {
@@ -7831,27 +7894,27 @@ function Zl({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7831
7894
  n = !0;
7832
7895
  };
7833
7896
  }, [e, t]);
7834
- let [y, b] = B(n), [x, C] = B(!0), [w, ee] = B(!1), [T, E] = B(!0), [D, te] = B(!1), [O, k] = B(null), A = W(() => k(null), []), j = U(h);
7835
- j.current = h, Bs(h, e, t, (e) => g({
7897
+ let [y, b] = B(n), [x, C] = B(!0), [w, T] = B(!1), [E, D] = B(!0), [O, ee] = B(!1), [k, A] = B(null), j = W(() => A(null), []), M = U(h);
7898
+ M.current = h, Bs(h, e, t, (e) => g({
7836
7899
  type: "signed-in",
7837
7900
  identity: e
7838
7901
  }), () => g({ type: "unauthorized" }));
7839
- let M = rt(() => Fi({
7902
+ let N = rt(() => Fi({
7840
7903
  apiUrl: e,
7841
7904
  apiKey: t,
7842
7905
  getToken: () => {
7843
- let e = j.current;
7906
+ let e = M.current;
7844
7907
  return e.kind !== "verified" || e.identity.token == null ? null : {
7845
7908
  token: e.identity.token,
7846
7909
  expiresAt: e.identity.tokenExpiresAt
7847
7910
  };
7848
7911
  },
7849
7912
  getStorageMode: () => {
7850
- let e = j.current;
7913
+ let e = M.current;
7851
7914
  return e.kind === "verified" ? e.identity.storage : null;
7852
7915
  },
7853
7916
  getAnonToken: () => {
7854
- let e = j.current;
7917
+ let e = M.current;
7855
7918
  return e.kind === "anon" ? e.identity.anonToken : null;
7856
7919
  },
7857
7920
  onUnauthorized: () => {
@@ -7861,18 +7924,18 @@ function Zl({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7861
7924
  e,
7862
7925
  t,
7863
7926
  g
7864
- ]), [N, P] = B({ kind: "idle" }), [ne, F] = B([]);
7927
+ ]), [P, F] = B({ kind: "idle" }), [te, ne] = B([]);
7865
7928
  V(() => {
7866
7929
  let e = !1;
7867
- return M.listMembers().then((t) => {
7868
- e || F(t.members);
7930
+ return N.listMembers().then((t) => {
7931
+ e || ne(t.members);
7869
7932
  }).catch(() => {}), () => {
7870
7933
  e = !0;
7871
7934
  };
7872
- }, [M]);
7935
+ }, [N]);
7873
7936
  let [re, ie] = B(0), [ae, oe] = Hr(sa, { kind: "idle" }), [se, ce] = B(!1), le = U(0), ue = W(() => {
7874
7937
  let e = le.current;
7875
- oe({ type: "fetch" }), M.listNotifications().then((t) => {
7938
+ oe({ type: "fetch" }), N.listNotifications().then((t) => {
7876
7939
  le.current === e && oe({
7877
7940
  type: "loaded",
7878
7941
  items: t.notifications
@@ -7883,12 +7946,12 @@ function Zl({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7883
7946
  error: t instanceof Error ? t.message : "Failed to load."
7884
7947
  });
7885
7948
  });
7886
- }, [M, oe]), de = W((e) => {
7949
+ }, [N, oe]), de = W((e) => {
7887
7950
  le.current += 1, oe({
7888
7951
  type: "patch",
7889
7952
  update: e
7890
7953
  });
7891
- }, [oe]), fe = Yr(), pe = Yr(), me = Yr(), he = Yr(), ge = Yr(), { run: _e, reset: ve } = fe, { run: ye } = pe, { run: xe, reset: Se } = me, { run: Ce } = he, { run: we } = ge, Te = ge.isPending, Ee = fe.isPending, De = fe.error ?? pe.error ?? me.error, [Oe, ke] = Hr(Jl, { kind: "visible" }), Ae = Oe.kind !== "visible", [je, I] = B(0), [Me, Ne] = B(0), L = U(null), Pe = aa(h), Fe = h.kind === "verified", Ie = h.kind === "unresolved" || h.kind === "recovering", Le = ia(h), [Re, ze] = B(Li), [Be, Ve] = B(null);
7954
+ }, [oe]), fe = Yr(), pe = Yr(), me = Yr(), he = Yr(), ge = Yr(), { run: _e, reset: ve } = fe, { run: ye } = pe, { run: xe, reset: Se } = me, { run: Ce } = he, { run: we } = ge, Te = ge.isPending, Ee = fe.isPending, De = fe.error ?? pe.error ?? me.error, [Oe, ke] = Hr(tu, { kind: "visible" }), Ae = Oe.kind !== "visible", [je, I] = B(0), [Me, Ne] = B(0), L = U(null), Pe = aa(h), Fe = h.kind === "verified", Ie = h.kind === "unresolved" || h.kind === "recovering", Le = ia(h), [Re, ze] = B(Li), [Be, Ve] = B(null);
7892
7955
  V(() => {
7893
7956
  Ve(null), le.current += 1, oe({ type: "reset" });
7894
7957
  }, [
@@ -7909,7 +7972,7 @@ function Zl({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7909
7972
  if (h.kind !== "unresolved" && h.kind !== "recovering") return;
7910
7973
  let e = h.kind === "recovering" ? h.preserved : m.preserved, t = !1, n = null, r = 1e3;
7911
7974
  function i() {
7912
- M.mintAnonIdentity().then(({ clientId: n, token: r }) => {
7975
+ N.mintAnonIdentity().then(({ clientId: n, token: r }) => {
7913
7976
  if (t) return;
7914
7977
  let i = {
7915
7978
  clientId: n,
@@ -7929,12 +7992,12 @@ function Zl({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7929
7992
  t = !0, n && clearTimeout(n);
7930
7993
  };
7931
7994
  }, [
7932
- M,
7995
+ N,
7933
7996
  h,
7934
7997
  g,
7935
7998
  m
7936
7999
  ]);
7937
- let { token: R, isCurrent: Ge } = Is(M, h), [Ke, qe] = B(null);
8000
+ let { token: R, isCurrent: Ge } = Is(N, h), [Ke, qe] = B(null);
7938
8001
  V(() => {
7939
8002
  let t = new Br(e.replace(/\.convex\.site(\/.*)?$/, ".convex.cloud"));
7940
8003
  return qe(t), () => {
@@ -7949,7 +8012,7 @@ function Zl({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7949
8012
  subscriptionToken: R,
7950
8013
  route: o,
7951
8014
  viewerClientId: Le,
7952
- includeResolved: D
8015
+ includeResolved: O
7953
8016
  }, (e) => {
7954
8017
  e !== void 0 && (d(e), p(!0));
7955
8018
  });
@@ -7958,7 +8021,7 @@ function Zl({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7958
8021
  R,
7959
8022
  o,
7960
8023
  Le,
7961
- D,
8024
+ O,
7962
8025
  ve,
7963
8026
  Se
7964
8027
  ]), V(() => {
@@ -7983,7 +8046,7 @@ function Zl({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7983
8046
  ]), V(() => {
7984
8047
  if (Je.current || !f) return;
7985
8048
  let e = wa();
7986
- e !== null && (u.find((t) => t._id === e) && P({
8049
+ e !== null && (u.find((t) => t._id === e) && F({
7987
8050
  kind: "thread",
7988
8051
  threadId: e
7989
8052
  }), Ea()), Je.current = !0;
@@ -7995,7 +8058,7 @@ function Zl({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7995
8058
  }
7996
8059
  return window.addEventListener("keydown", e), () => window.removeEventListener("keydown", e);
7997
8060
  }, [ke]), V(() => {
7998
- Ae && k(null);
8061
+ Ae && A(null);
7999
8062
  }, [Ae]), V(() => {
8000
8063
  if (Oe.kind !== "hidden-with-toast") return;
8001
8064
  let e = window.setTimeout(() => ke({ type: "dismiss-toast" }), 5e3);
@@ -8020,24 +8083,24 @@ function Zl({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
8020
8083
  };
8021
8084
  }, []);
8022
8085
  let z = W(() => {
8023
- ve(), Se(), be("comment_started"), P({ kind: "placing" });
8086
+ ve(), Se(), be("comment_started"), F({ kind: "placing" });
8024
8087
  }, [ve, Se]);
8025
8088
  V(() => {
8026
8089
  function e(e) {
8027
- e.key === "c" && (e.metaKey || e.ctrlKey || e.altKey || e.shiftKey || N.kind === "idle" && (Ae || ql() || (e.preventDefault(), z())));
8090
+ e.key === "c" && (e.metaKey || e.ctrlKey || e.altKey || e.shiftKey || P.kind === "idle" && (Ae || eu() || (e.preventDefault(), z())));
8028
8091
  }
8029
8092
  return window.addEventListener("keydown", e), () => window.removeEventListener("keydown", e);
8030
8093
  }, [
8031
- N.kind,
8094
+ P.kind,
8032
8095
  Ae,
8033
8096
  z
8034
8097
  ]);
8035
8098
  let Ye = W(() => {
8036
- P({ kind: "idle" }), ve(), Se();
8099
+ F({ kind: "idle" }), ve(), Se();
8037
8100
  }, [ve, Se]), Xe = U(0), Ze = W((e, t, n) => {
8038
8101
  let i = t + window.scrollX, a = n + window.scrollY, o = ++Xe.current;
8039
- if (r?.enabled === !1 || !T) {
8040
- P({
8102
+ if (r?.enabled === !1 || !E) {
8103
+ F({
8041
8104
  kind: "composing-new",
8042
8105
  coords: e,
8043
8106
  pageX: i,
@@ -8051,7 +8114,7 @@ function Zl({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
8051
8114
  });
8052
8115
  return;
8053
8116
  }
8054
- P({
8117
+ F({
8055
8118
  kind: "composing-new",
8056
8119
  coords: e,
8057
8120
  pageX: i,
@@ -8071,7 +8134,7 @@ function Zl({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
8071
8134
  x: t,
8072
8135
  y: n
8073
8136
  }, c).then((e) => {
8074
- P((t) => t.kind !== "composing-new" || t.captureToken !== o ? t : {
8137
+ F((t) => t.kind !== "composing-new" || t.captureToken !== o ? t : {
8075
8138
  ...t,
8076
8139
  screenshot: e?.blob ?? null,
8077
8140
  isScreenshotCapturing: !1,
@@ -8080,7 +8143,7 @@ function Zl({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
8080
8143
  screenshotRedactedSelectors: e?.redactedSelectors ?? []
8081
8144
  }), be("screenshot_captured", { ok: e != null });
8082
8145
  });
8083
- }, [r, T]), Qe = W((e, t) => {
8146
+ }, [r, E]), Qe = W((e, t) => {
8084
8147
  g({
8085
8148
  type: "author-set",
8086
8149
  name: e,
@@ -8088,7 +8151,7 @@ function Zl({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
8088
8151
  });
8089
8152
  }, [g]), $e = pe.isPending, et = W(async () => {
8090
8153
  be("sign_in_started"), await ye(async () => {
8091
- let n = Kl(await fa({
8154
+ let n = $l(await fa({
8092
8155
  apiUrl: e,
8093
8156
  apiKey: t,
8094
8157
  useCookies: _ === !0
@@ -8106,17 +8169,17 @@ function Zl({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
8106
8169
  ye,
8107
8170
  g
8108
8171
  ]), tt = W(async (e, t) => {
8109
- if (N.kind !== "composing-new") return;
8172
+ if (P.kind !== "composing-new") return;
8110
8173
  let n = oa(h);
8111
8174
  n && await _e(async () => {
8112
8175
  let r;
8113
- if (t && N.screenshot) {
8114
- let { uploadUrl: e } = await M.getScreenshotUploadUrl().catch(We), t;
8176
+ if (t && P.screenshot) {
8177
+ let { uploadUrl: e } = await N.getScreenshotUploadUrl().catch(We), t;
8115
8178
  try {
8116
8179
  t = await fetch(e, {
8117
8180
  method: "POST",
8118
- headers: { "Content-Type": N.screenshot.type || "image/png" },
8119
- body: N.screenshot,
8181
+ headers: { "Content-Type": P.screenshot.type || "image/png" },
8182
+ body: P.screenshot,
8120
8183
  signal: AbortSignal.timeout(6e4)
8121
8184
  });
8122
8185
  } catch (e) {
@@ -8126,17 +8189,17 @@ function Zl({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
8126
8189
  let { storageId: n } = await t.json();
8127
8190
  r = n;
8128
8191
  }
8129
- let i = Gr(e), a = await M.createThread({
8192
+ let i = Gr(e), a = await N.createThread({
8130
8193
  url: window.location.href,
8131
8194
  route: o,
8132
- anchorSelector: N.coords.anchorSelector,
8133
- anchorText: N.coords.anchorText,
8134
- anchorX: N.coords.anchorX,
8135
- anchorY: N.coords.anchorY,
8136
- anchorOffsetX: N.coords.anchorOffsetX,
8137
- anchorOffsetY: N.coords.anchorOffsetY,
8138
- viewportW: N.coords.viewportW,
8139
- viewportY: N.coords.viewportY,
8195
+ anchorSelector: P.coords.anchorSelector,
8196
+ anchorText: P.coords.anchorText,
8197
+ anchorX: P.coords.anchorX,
8198
+ anchorY: P.coords.anchorY,
8199
+ anchorOffsetX: P.coords.anchorOffsetX,
8200
+ anchorOffsetY: P.coords.anchorOffsetY,
8201
+ viewportW: P.coords.viewportW,
8202
+ viewportY: P.coords.viewportY,
8140
8203
  userAgent: navigator.userAgent,
8141
8204
  authorName: n.name,
8142
8205
  authorEmail: n.email,
@@ -8147,44 +8210,44 @@ function Zl({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
8147
8210
  d((e) => [...e, a.thread]), be("comment_submitted", {
8148
8211
  hasScreenshot: r != null,
8149
8212
  hasMentions: i.length > 0
8150
- }), P({
8213
+ }), F({
8151
8214
  kind: "thread",
8152
8215
  threadId: a.thread._id
8153
8216
  });
8154
8217
  });
8155
8218
  }, [
8156
- M,
8157
- h,
8158
8219
  N,
8220
+ h,
8221
+ P,
8159
8222
  We,
8160
8223
  o,
8161
8224
  _e
8162
8225
  ]), nt = W(async () => {
8163
- if (N.kind !== "thread") return;
8164
- let e = N.threadId;
8226
+ if (P.kind !== "thread") return;
8227
+ let e = P.threadId;
8165
8228
  await _e(async () => {
8166
- await M.deleteThread(e), d((t) => t.filter((t) => t._id !== e)), P({ kind: "idle" });
8229
+ await N.deleteThread(e), d((t) => t.filter((t) => t._id !== e)), F({ kind: "idle" });
8167
8230
  });
8168
8231
  }, [
8169
- M,
8170
8232
  N,
8233
+ P,
8171
8234
  _e
8172
8235
  ]), H = W(async () => {
8173
- if (N.kind !== "thread") return;
8174
- let e = N.threadId;
8236
+ if (P.kind !== "thread") return;
8237
+ let e = P.threadId;
8175
8238
  await _e(async () => {
8176
- await M.resolveThread(e, Le), d((t) => t.filter((t) => t._id !== e)), be("thread_resolved"), P({ kind: "idle" });
8239
+ await N.resolveThread(e, Le), d((t) => t.filter((t) => t._id !== e)), be("thread_resolved"), F({ kind: "idle" });
8177
8240
  });
8178
8241
  }, [
8179
- M,
8180
8242
  N,
8243
+ P,
8181
8244
  Le,
8182
8245
  _e
8183
8246
  ]), it = W((e) => {
8184
8247
  if (e.readAt ?? (ie((e) => Math.max(0, e - 1)), de((t) => t.map((t) => t._id === e._id ? {
8185
8248
  ...t,
8186
8249
  readAt: Date.now()
8187
- } : t)), M.markNotificationRead(e._id).catch(() => {})), u.some((t) => t._id === e.threadId)) P({
8250
+ } : t)), N.markNotificationRead(e._id).catch(() => {})), u.some((t) => t._id === e.threadId)) F({
8188
8251
  kind: "thread",
8189
8252
  threadId: e.threadId
8190
8253
  });
@@ -8193,21 +8256,21 @@ function Zl({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
8193
8256
  t && (window.location.href = t);
8194
8257
  }
8195
8258
  }, [
8196
- M,
8259
+ N,
8197
8260
  de,
8198
8261
  u
8199
8262
  ]), at = W(() => {
8200
8263
  ce(!0), ie(0), de((e) => e.map((e) => e.readAt == null ? {
8201
8264
  ...e,
8202
8265
  readAt: Date.now()
8203
- } : e)), M.markAllNotificationsRead().catch(() => {}).finally(() => ce(!1));
8204
- }, [M, de]), ot = W(async (e) => {
8205
- if (N.kind !== "thread") return;
8266
+ } : e)), N.markAllNotificationsRead().catch(() => {}).finally(() => ce(!1));
8267
+ }, [N, de]), ot = W(async (e) => {
8268
+ if (P.kind !== "thread") return;
8206
8269
  let t = oa(h);
8207
8270
  if (!t) return;
8208
- let n = N.threadId;
8271
+ let n = P.threadId;
8209
8272
  await _e(async () => {
8210
- let r = Gr(e), i = await M.addComment(n, {
8273
+ let r = Gr(e), i = await N.addComment(n, {
8211
8274
  body: e,
8212
8275
  authorName: t.name,
8213
8276
  authorEmail: t.email,
@@ -8216,63 +8279,63 @@ function Zl({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
8216
8279
  d((e) => e.map((e) => e._id === n ? i.thread : e)), be("reply_submitted", { hasMentions: r.length > 0 });
8217
8280
  });
8218
8281
  }, [
8219
- M,
8220
- h,
8221
8282
  N,
8283
+ h,
8284
+ P,
8222
8285
  We,
8223
8286
  _e
8224
8287
  ]), st = W(async (e, t) => {
8225
- if (N.kind !== "thread" || h.kind !== "anon" && h.kind !== "verified") return;
8226
- let n = N.threadId;
8288
+ if (P.kind !== "thread" || h.kind !== "anon" && h.kind !== "verified") return;
8289
+ let n = P.threadId;
8227
8290
  await _e(async () => {
8228
- let r = Gr(t), i = await M.editComment(n, e, {
8291
+ let r = Gr(t), i = await N.editComment(n, e, {
8229
8292
  body: t,
8230
8293
  mentions: r.length > 0 ? r : void 0
8231
8294
  });
8232
8295
  d((e) => e.map((e) => e._id === n ? i.thread : e));
8233
8296
  }, { rethrow: !0 });
8234
8297
  }, [
8235
- M,
8236
- h,
8237
8298
  N,
8299
+ h,
8300
+ P,
8238
8301
  _e
8239
8302
  ]), ct = W(async (e) => {
8240
- if (N.kind !== "thread" || h.kind !== "anon" && h.kind !== "verified") return;
8241
- let t = N.threadId;
8303
+ if (P.kind !== "thread" || h.kind !== "anon" && h.kind !== "verified") return;
8304
+ let t = P.threadId;
8242
8305
  await _e(async () => {
8243
- let n = await M.deleteComment(t, e);
8306
+ let n = await N.deleteComment(t, e);
8244
8307
  d((e) => e.map((e) => e._id === t ? n.thread : e));
8245
8308
  });
8246
8309
  }, [
8247
- M,
8248
- h,
8249
8310
  N,
8311
+ h,
8312
+ P,
8250
8313
  _e
8251
8314
  ]), lt = W(async (e, t) => {
8252
- if (N.kind !== "thread") return;
8315
+ if (P.kind !== "thread") return;
8253
8316
  if (!He) {
8254
8317
  Ve("sign_in_required");
8255
8318
  return;
8256
8319
  }
8257
8320
  let n = oa(h);
8258
8321
  if (!n) return;
8259
- let r = N.threadId;
8322
+ let r = P.threadId;
8260
8323
  await xe(async () => {
8261
- let i = await M.toggleReaction(e, {
8324
+ let i = await N.toggleReaction(e, {
8262
8325
  emoji: t,
8263
8326
  authorName: n.name
8264
8327
  }).catch(We);
8265
8328
  d((e) => e.map((e) => e._id === r ? i.thread : e)), be("reaction_added");
8266
8329
  });
8267
8330
  }, [
8268
- M,
8331
+ N,
8269
8332
  He,
8270
8333
  h,
8271
- N,
8334
+ P,
8272
8335
  We,
8273
8336
  xe
8274
- ]), [ut, dt] = B(!1), ft = W(async () => await Ce(async () => (await M.forgetMe(), P({ kind: "idle" }), g({ type: "forget-me" }), dt(!0), !0)) === !0, [
8275
- M,
8337
+ ]), [ut, dt] = B(!1), ft = W(async () => await Ce(async () => (await N.forgetMe(), F({ kind: "idle" }), g({ type: "forget-me" }), dt(!0), !0)) === !0, [
8338
+ N,
8276
8339
  Ce,
8277
8340
  g
8278
8341
  ]);
@@ -8283,10 +8346,10 @@ function Zl({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
8283
8346
  }, [ut]);
8284
8347
  let [G, pt] = B(!1), mt = W(async () => {
8285
8348
  await we(async () => {
8286
- await M.signOut(), P({ kind: "idle" }), g({ type: "signed-out" }), pt(!0);
8349
+ await N.signOut(), F({ kind: "idle" }), g({ type: "signed-out" }), pt(!0);
8287
8350
  });
8288
8351
  }, [
8289
- M,
8352
+ N,
8290
8353
  we,
8291
8354
  g
8292
8355
  ]);
@@ -8295,13 +8358,13 @@ function Zl({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
8295
8358
  let e = window.setTimeout(() => pt(!1), 5e3);
8296
8359
  return () => window.clearTimeout(e);
8297
8360
  }, [G]);
8298
- let ht = N.kind === "thread" ? u.find((e) => e._id === N.threadId) ?? null : null, gt = Fe || Le != null && Le === ht?.authorClientId, _t = N.kind === "thread" ? N.threadId : null, vt = rt(() => w ? u.filter((e) => e._id === _t || Ca(e.url, c, a) === void 0) : u, [
8361
+ let ht = P.kind === "thread" ? u.find((e) => e._id === P.threadId) ?? null : null, gt = Fe || Le != null && Le === ht?.authorClientId, _t = P.kind === "thread" ? P.threadId : null, vt = rt(() => w ? u.filter((e) => e._id === _t || Ca(e.url, c, a) === void 0) : u, [
8299
8362
  u,
8300
8363
  w,
8301
8364
  c,
8302
8365
  _t,
8303
8366
  a
8304
- ]), yt = x && N.kind !== "placing" ? u.length - vt.length : 0, bt = U(/* @__PURE__ */ new Map()), xt = rt(() => {
8367
+ ]), yt = x && P.kind !== "placing" ? u.length - vt.length : 0, bt = U(/* @__PURE__ */ new Map()), xt = rt(() => {
8305
8368
  let e = bt.current, t = vt.map((t) => {
8306
8369
  let { point: n, memory: r } = Ti({
8307
8370
  anchorX: t.anchorX,
@@ -8333,7 +8396,7 @@ function Zl({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
8333
8396
  elements: xt.flatMap((e) => e.point.element ? [e.point.element] : [])
8334
8397
  };
8335
8398
  }, [xt]);
8336
- let Ct = vt.some((e) => e.anchorSelector != null), wt = $r(N.kind !== "placing" && !Ae && x ? xt : Hl, (e) => e.thread._id, 140), Tt = $r(!Ae || N.kind === "placing" || N.kind === "composing-new" ? Wl : Gl, (e) => e.key, 160), Et = [];
8399
+ let Ct = vt.some((e) => e.anchorSelector != null), wt = $r(P.kind !== "placing" && !Ae && x ? xt : Yl, (e) => e.thread._id, 140), Tt = $r(!Ae || P.kind === "placing" || P.kind === "composing-new" ? Zl : Ql, (e) => e.key, 160), Et = [];
8337
8400
  Oe.kind === "hidden-with-toast" && Et.push({
8338
8401
  key: "hud-hidden",
8339
8402
  body: /* @__PURE__ */ Q(S, { children: [
@@ -8355,7 +8418,7 @@ function Zl({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
8355
8418
  key: "signed-out",
8356
8419
  body: "Signed out — commenting anonymously again."
8357
8420
  });
8358
- let Dt = $r(Et, (e) => e.key, 220), Ot = $r(N.kind === "thread" && ht ? [ht] : Ul, (e) => e._id, 160), K = ei(N.kind === "composing-new" ? N : null, 160), kt = ei(O, 140);
8421
+ let Dt = $r(Et, (e) => e.key, 220), Ot = $r(P.kind === "thread" && ht ? [ht] : Xl, (e) => e._id, 160), K = ei(P.kind === "composing-new" ? P : null, 160), kt = ei(k, 140);
8359
8422
  return V(() => {
8360
8423
  if (!Ct) return;
8361
8424
  let e = null, t = !1;
@@ -8375,9 +8438,9 @@ function Zl({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
8375
8438
  r.disconnect(), e != null && cancelAnimationFrame(e);
8376
8439
  };
8377
8440
  }, [Ct]), V(() => {
8378
- N.kind === "thread" && ht == null && Ye();
8441
+ P.kind === "thread" && ht == null && Ye();
8379
8442
  }, [
8380
- N,
8443
+ P,
8381
8444
  ht,
8382
8445
  Ye
8383
8446
  ]), /* @__PURE__ */ Q("div", {
@@ -8388,8 +8451,8 @@ function Zl({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
8388
8451
  /* @__PURE__ */ Q("div", {
8389
8452
  class: "markup-pins-layer",
8390
8453
  children: [wt.map(({ key: e, value: { thread: t, point: n }, isLeaving: r, enterDelayMs: i }) => {
8391
- let o = !r && N.kind === "thread" && N.threadId === t._id, s = t.comments.reduce((e, t) => e + +!t.deleted, 0);
8392
- return /* @__PURE__ */ Q(xl, {
8454
+ let o = !r && P.kind === "thread" && P.threadId === t._id, s = t.comments.reduce((e, t) => e + +!t.deleted, 0);
8455
+ return /* @__PURE__ */ Q(kl, {
8393
8456
  pageX: n.pageX,
8394
8457
  pageY: n.pageY,
8395
8458
  count: s,
@@ -8400,23 +8463,23 @@ function Zl({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
8400
8463
  enterDelayMs: i,
8401
8464
  otherLocation: Ca(t.url, c, a),
8402
8465
  onClick: () => {
8403
- be("thread_opened", { commentCount: s }), P({
8466
+ be("thread_opened", { commentCount: s }), F({
8404
8467
  kind: "thread",
8405
8468
  threadId: t._id
8406
8469
  });
8407
8470
  }
8408
8471
  }, e);
8409
- }), K ? /* @__PURE__ */ Q(Sl, {
8472
+ }), K ? /* @__PURE__ */ Q(Al, {
8410
8473
  pageX: K.value.pageX,
8411
8474
  pageY: K.value.pageY,
8412
8475
  isLeaving: K.isLeaving
8413
8476
  }) : null]
8414
8477
  }),
8415
- N.kind === "placing" ? /* @__PURE__ */ Q(Cl, {
8478
+ P.kind === "placing" ? /* @__PURE__ */ Q(jl, {
8416
8479
  onPlace: Ze,
8417
8480
  onCancel: Ye
8418
8481
  }) : null,
8419
- Ot.map(({ key: e, value: t, isLeaving: n }) => /* @__PURE__ */ Q(Ol, {
8482
+ Ot.map(({ key: e, value: t, isLeaving: n }) => /* @__PURE__ */ Q(Il, {
8420
8483
  thread: t,
8421
8484
  isLeaving: n,
8422
8485
  authorName: Pe,
@@ -8429,7 +8492,7 @@ function Zl({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
8429
8492
  isPending: Ee,
8430
8493
  error: De,
8431
8494
  isHidden: Ae,
8432
- members: ne,
8495
+ members: te,
8433
8496
  onAuthor: Qe,
8434
8497
  onSignIn: et,
8435
8498
  onSignOut: mt,
@@ -8441,7 +8504,7 @@ function Zl({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
8441
8504
  onDelete: nt,
8442
8505
  onResolve: H
8443
8506
  }, e)),
8444
- K ? /* @__PURE__ */ Q(ol, {
8507
+ K ? /* @__PURE__ */ Q(ml, {
8445
8508
  isLeaving: K.isLeaving,
8446
8509
  pageX: K.value.pageX,
8447
8510
  pageY: K.value.pageY,
@@ -8457,29 +8520,29 @@ function Zl({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
8457
8520
  screenshotFailed: K.value.screenshotFailed,
8458
8521
  screenshotRedactedCount: K.value.screenshotRedactedCount,
8459
8522
  screenshotRedactedSelectors: K.value.screenshotRedactedSelectors,
8460
- members: ne,
8523
+ members: te,
8461
8524
  onAuthor: Qe,
8462
8525
  onSignIn: et,
8463
8526
  onSignOut: mt,
8464
8527
  onSubmit: tt,
8465
8528
  onClose: Ye
8466
8529
  }) : null,
8467
- Tt.map((t) => /* @__PURE__ */ Q(Bl, {
8530
+ Tt.map((t) => /* @__PURE__ */ Q(ql, {
8468
8531
  isLeaving: t.isLeaving,
8469
- isActive: N.kind === "placing",
8470
- onToggle: () => N.kind === "placing" ? Ye() : z(),
8532
+ isActive: P.kind === "placing",
8533
+ onToggle: () => P.kind === "placing" ? Ye() : z(),
8471
8534
  onHide: () => ke({ type: "hide-with-toast" }),
8472
8535
  position: y,
8473
8536
  showInbox: Fe,
8474
8537
  unreadCount: Fe ? re : 0,
8475
- inboxOpen: O === "inbox",
8538
+ inboxOpen: k === "inbox",
8476
8539
  onOpenInbox: () => {
8477
- let e = O === "inbox" ? null : "inbox";
8478
- k(e), e && (be("notifications_opened", { unreadCount: re }), ue());
8540
+ let e = k === "inbox" ? null : "inbox";
8541
+ A(e), e && (be("notifications_opened", { unreadCount: re }), ue());
8479
8542
  },
8480
8543
  pinsVisible: x,
8481
8544
  onTogglePins: () => C((e) => !e),
8482
- identityButton: /* @__PURE__ */ Q(mc, {
8545
+ identityButton: /* @__PURE__ */ Q(Sc, {
8483
8546
  identity: h,
8484
8547
  position: y,
8485
8548
  isSigningIn: $e,
@@ -8490,17 +8553,17 @@ function Zl({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
8490
8553
  onSignOut: mt,
8491
8554
  onForgetMe: ft
8492
8555
  }),
8493
- overflowButton: /* @__PURE__ */ Q(hl, {
8556
+ overflowButton: /* @__PURE__ */ Q(Cl, {
8494
8557
  position: y,
8495
8558
  onSetPosition: b,
8496
- autoCapture: T && r?.enabled !== !1,
8559
+ autoCapture: E && r?.enabled !== !1,
8497
8560
  autoCaptureLocked: r?.enabled === !1,
8498
- onToggleAutoCapture: () => E((e) => !e),
8561
+ onToggleAutoCapture: () => D((e) => !e),
8499
8562
  isUrlScoped: w,
8500
8563
  hiddenByUrlScope: yt,
8501
- onToggleUrlScope: () => ee((e) => !e),
8502
- showResolved: D,
8503
- onToggleShowResolved: () => te((e) => !e),
8564
+ onToggleUrlScope: () => T((e) => !e),
8565
+ showResolved: O,
8566
+ onToggleShowResolved: () => ee((e) => !e),
8504
8567
  onHideForSession: () => ke({ type: "hide-with-toast" }),
8505
8568
  identity: h,
8506
8569
  apiUrl: e,
@@ -8508,28 +8571,28 @@ function Zl({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
8508
8571
  isForgettingMe: he.isPending,
8509
8572
  forgetMeError: he.error,
8510
8573
  onForgetMe: ft,
8511
- version: "1.27.1",
8574
+ version: "1.27.3",
8512
8575
  dashboardUrl: i
8513
8576
  })
8514
8577
  }, t.key)),
8515
- kt?.value === "inbox" && Fe ? /* @__PURE__ */ Q(bl, {
8578
+ kt?.value === "inbox" && Fe ? /* @__PURE__ */ Q(Ol, {
8516
8579
  kind: "inbox",
8517
8580
  label: "Inbox",
8518
8581
  position: y,
8519
8582
  ignoreToolbarKind: "inbox",
8520
8583
  isLeaving: kt.isLeaving,
8521
- onClose: A,
8522
- children: /* @__PURE__ */ Q(cl, {
8584
+ onClose: j,
8585
+ children: /* @__PURE__ */ Q(gl, {
8523
8586
  state: ae,
8524
8587
  isMarkingAll: se,
8525
- onBack: A,
8588
+ onBack: j,
8526
8589
  onItemClick: (e) => {
8527
- A(), it(e);
8590
+ j(), it(e);
8528
8591
  },
8529
8592
  onMarkAllRead: at
8530
8593
  })
8531
8594
  }) : null,
8532
- Dt.map((e) => /* @__PURE__ */ Q(Ql, {
8595
+ Dt.map((e) => /* @__PURE__ */ Q(au, {
8533
8596
  position: y,
8534
8597
  isLeaving: e.isLeaving,
8535
8598
  children: e.value.body
@@ -8537,7 +8600,7 @@ function Zl({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
8537
8600
  ]
8538
8601
  });
8539
8602
  }
8540
- function Ql({ position: e, isLeaving: t, children: n }) {
8603
+ function au({ position: e, isLeaving: t, children: n }) {
8541
8604
  return /* @__PURE__ */ Q("div", {
8542
8605
  class: Z("markup-hud-hidden-toast", e === "bottom-left" ? "markup-hud-hidden-toast-left" : e === "bottom-center" ? "markup-hud-hidden-toast-center" : "markup-hud-hidden-toast-right", t && "is-leaving"),
8543
8606
  role: "status",
@@ -8548,7 +8611,7 @@ function Ql({ position: e, isLeaving: t, children: n }) {
8548
8611
  }
8549
8612
  //#endregion
8550
8613
  //#region src/runtime/mount.tsx
8551
- function $l(e, t) {
8614
+ function ou(e, t) {
8552
8615
  e.style.position = "fixed", e.style.inset = "0", e.style.zIndex = "2147483647", e.style.pointerEvents = "none", Re(e, t.theme ?? "auto");
8553
8616
  let n = Ue(), r = e.attachShadow({ mode: "open" }), i = document.createElement("style");
8554
8617
  i.textContent = le, r.appendChild(i);
@@ -8556,44 +8619,54 @@ function $l(e, t) {
8556
8619
  a.className = "markup-shadow-root", r.appendChild(a), je({
8557
8620
  apiUrl: t.apiUrl,
8558
8621
  apiKey: t.apiKey,
8559
- widgetVersion: "1.27.1"
8622
+ widgetVersion: "1.27.3"
8560
8623
  }), ye(t.analytics === !1 ? null : {
8561
8624
  apiUrl: t.apiUrl,
8562
8625
  apiKey: t.apiKey,
8563
- widgetVersion: "1.27.1"
8626
+ widgetVersion: "1.27.3"
8564
8627
  }), be("widget_loaded");
8565
8628
  let { theme: o, analytics: s, ...c } = t;
8566
8629
  return ce(/* @__PURE__ */ Q(Ce, {
8567
8630
  onError: (e) => I(e, { context: "render" }),
8568
- children: /* @__PURE__ */ Q(Zl, { ...c })
8631
+ children: /* @__PURE__ */ Q(iu, { ...c })
8569
8632
  }), a), () => {
8570
8633
  n(), je(null), ye(null), ce(null, a);
8571
8634
  };
8572
8635
  }
8573
8636
  //#endregion
8574
8637
  //#region src/widget.ts
8575
- var eu = null, tu = null, nu = null, ru = !1;
8576
- function iu(e) {
8638
+ var su = null, cu = null, lu = null, uu = null, du = null, fu = !1;
8639
+ function pu(e) {
8640
+ return JSON.stringify(e, (e, t) => typeof t == "object" && t && !Array.isArray(t) ? Object.fromEntries(Object.entries(t).sort(([e], [t]) => e < t ? -1 : +(e > t))) : t);
8641
+ }
8642
+ function mu(e) {
8577
8643
  if (!e.apiUrl || !e.apiKey) return console.warn("[markup] init() requires both apiUrl and apiKey, so the widget was not mounted"), () => {};
8578
- e.fab != null && !ru && (ru = !0, console.warn("[markup] the `fab` option is ignored and will be removed in the next major. The toolbar replaced the floating action button. Remove it from your config.")), au();
8579
- let t = () => {
8580
- if (nu = null, !document.body) return;
8644
+ e.fab != null && !fu && (fu = !0, console.warn("[markup] the `fab` option is ignored and will be removed in the next major. The toolbar replaced the floating action button. Remove it from your config."));
8645
+ let t = pu(e);
8646
+ if (du && t === uu && (lu !== null || cu?.isConnected === !0)) return du;
8647
+ hu(), uu = t;
8648
+ let n = () => {
8649
+ du === n && hu();
8650
+ };
8651
+ du = n;
8652
+ let r = () => {
8653
+ if (lu = null, !document.body) return;
8581
8654
  let t = document.createElement("div");
8582
- t.id = "markup-widget", document.body.appendChild(t), tu = t, eu = $l(t, e);
8655
+ t.id = "markup-widget", document.body.appendChild(t), cu = t, su = ou(t, e);
8583
8656
  };
8584
8657
  if (document.readyState === "loading" || !document.body) {
8585
- let e = () => t();
8586
- nu = () => document.removeEventListener("DOMContentLoaded", e), document.addEventListener("DOMContentLoaded", e, { once: !0 });
8587
- } else t();
8588
- return au;
8658
+ let e = () => r();
8659
+ lu = () => document.removeEventListener("DOMContentLoaded", e), document.addEventListener("DOMContentLoaded", e, { once: !0 });
8660
+ } else r();
8661
+ return n;
8589
8662
  }
8590
- function au() {
8591
- nu &&= (nu(), null), eu &&= (eu(), null), tu?.parentNode && tu.parentNode.removeChild(tu), tu = null;
8663
+ function hu() {
8664
+ lu &&= (lu(), null), su &&= (su(), null), cu?.parentNode && cu.parentNode.removeChild(cu), cu = null, uu = null, du = null;
8592
8665
  }
8593
8666
  if (typeof document < "u") {
8594
8667
  let e = document.currentScript ?? document.querySelector("script[data-markup-widget=\"true\"]"), t = e?.dataset.apiUrl, n = e?.dataset.apiKey;
8595
8668
  if (t && n) {
8596
- let r = e?.dataset.position, i = e?.dataset.theme, a = e?.dataset.fab, o = e?.dataset.dashboardUrl, s = e?.dataset.analytics !== "false", c = e?.dataset.routeParams?.split(",").map((e) => e.trim()).filter((e) => e !== ""), l = () => iu({
8669
+ let r = e?.dataset.position, i = e?.dataset.theme, a = e?.dataset.fab, o = e?.dataset.dashboardUrl, s = e?.dataset.analytics !== "false", c = e?.dataset.routeParams?.split(",").map((e) => e.trim()).filter((e) => e !== ""), l = () => mu({
8597
8670
  apiUrl: t,
8598
8671
  apiKey: n,
8599
8672
  position: r,
@@ -8607,6 +8680,6 @@ if (typeof document < "u") {
8607
8680
  }
8608
8681
  }
8609
8682
  //#endregion
8610
- export { au as destroy, iu as init };
8683
+ export { hu as destroy, mu as init };
8611
8684
 
8612
8685
  //# sourceMappingURL=widget.js.map