@pixelmatters/markup 1.25.0 → 1.25.2

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
@@ -1,4 +1,4 @@
1
- //#region ../../node_modules/.pnpm/preact@10.29.7/node_modules/preact/dist/preact.module.js
1
+ //#region ../../node_modules/.pnpm/preact@10.29.8/node_modules/preact/dist/preact.module.js
2
2
  var e, t, n, r, i, a, o, s, c, l, u, d, f, p, m = {}, h = [], g = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i, _ = Array.isArray;
3
3
  function v(e, t) {
4
4
  for (var n in t) e[n] = t[n];
@@ -64,29 +64,29 @@ function O() {
64
64
  }
65
65
  }
66
66
  function k(e, t, n, r, i, a, o, s, c, l, u) {
67
- var d, f, p, g, _, v, y, b = r && r.__k || h, x = t.length;
68
- for (c = A(n, t, b, c, x), d = 0; d < x; d++) (p = n.__k[d]) != null && (f = p.__i != -1 && b[p.__i] || m, p.__i = d, v = ne(e, p, f, i, a, o, s, c, l, u), g = p.__e, p.ref && f.ref != p.ref && (f.ref && ae(f.ref, null, p), u.push(p.ref, p.__c || g, p)), _ == null && g != null && (_ = g), (y = !!(4 & p.__u)) || f.__k === p.__k ? (c = j(p, c, e, y), y && f.__e && (f.__e = null)) : typeof p.type == "function" && v !== void 0 ? c = v : g && (c = g.nextSibling), p.__u &= -7);
67
+ var d, f, p, g, _, v, y = r && r.__k || h, b = t.length;
68
+ for (c = A(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 = ne(e, p, f, i, a, o, s, c, l, u), g = p.__e, p.ref && f.ref != p.ref && (f.ref && ae(f.ref, null, p), u.push(p.ref, p.__c || g, p)), _ == null && g != null && (_ = g), 4 & p.__u ? (c = j(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
71
  function A(e, t, n, r, i) {
72
72
  var a, o, s, c, l, u = n.length, d = u, f = 0;
73
- for (e.__k = Array(i), a = 0; a < i; a++) (o = t[a]) != null && typeof o != "boolean" && typeof o != "function" ? (typeof o == "string" || typeof o == "number" || typeof o == "bigint" || o.constructor == String ? o = e.__k[a] = x(null, o, null, null, null) : _(o) ? o = e.__k[a] = x(S, { children: o }, null, null, null) : o.constructor === void 0 && o.__b > 0 ? o = e.__k[a] = x(o.type, o.props, o.key, o.ref ? o.ref : null, o.__v) : e.__k[a] = o, c = a + f, o.__ = e, o.__b = e.__b + 1, s = null, (l = o.__i = M(o, n, c, d)) != -1 && (d--, (s = n[l]) && (s.__u |= 2)), s == null || s.__v == null ? (l == -1 && (i > u ? f-- : i < u && f++), typeof o.type != "function" && (o.__u |= 4)) : l != c && (l == c - 1 ? f-- : l == c + 1 ? f++ : (l > c ? f-- : f++, o.__u |= 4))) : e.__k[a] = null;
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 = ee(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 j(e, t, n, r) {
78
- var i, a;
77
+ function j(e, t, n) {
78
+ var r, i;
79
79
  if (typeof e.type == "function") {
80
- for (i = e.__k, a = 0; i && a < i.length; a++) i[a] && (i[a].__ = e, t = j(i[a], t, n, r));
80
+ for (r = e.__k, i = 0; r && i < r.length; i++) r[i] && (r[i].__ = e, t = j(r[i], t, n));
81
81
  return t;
82
82
  }
83
- e.__e != t && (r && (t && e.type && !t.parentNode && (t = w(e)), n.insertBefore(e.__e, t || null)), t = e.__e);
83
+ e.__e != t && (t && e.type && !t.parentNode && (t = w(e)), t = n.insertBefore(e.__e, t || null));
84
84
  do
85
85
  t &&= t.nextSibling;
86
86
  while (t != null && t.nodeType == 8);
87
87
  return t;
88
88
  }
89
- function M(e, t, n, r) {
89
+ function ee(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,17 +94,18 @@ function M(e, t, n, r) {
94
94
  }
95
95
  return -1;
96
96
  }
97
- function ee(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 N(e, t, n, r, i) {
100
+ function te(e, t, n, r, i) {
101
101
  var a, o;
102
- n: if (t == "style") if (typeof n == "string") e.style.cssText = n;
103
- else {
104
- if (typeof r == "string" && (e.style.cssText = r = ""), r) for (t in r) n && t in n || ee(e.style, t, "");
105
- if (n) for (t in n) r && n[t] == r[t] || ee(e.style, t, n[t]);
106
- }
107
- else if (t[0] == "o" && t[1] == "n") a = t != (t = t.replace(u, "$1")), o = t.toLowerCase(), t = o in e || t == "onFocusOut" || t == "onFocusIn" ? o.slice(2) : t.slice(2), e.l ||= {}, e.l[t + a] = n, n ? r ? n[l] = r[l] : (n[l] = d, e.addEventListener(t, a ? p : f, a)) : e.removeEventListener(t, a ? p : f, a);
102
+ n: if (t == "style") {
103
+ if (typeof n == "string") e.style.cssText = n;
104
+ else {
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
+ }
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);
108
109
  else {
109
110
  if (i == "http://www.w3.org/2000/svg") t = t.replace(/xlink(H|:h)/, "h").replace(/sName$/, "s");
110
111
  else if (t != "width" && t != "height" && t != "href" && t != "list" && t != "form" && t != "tabIndex" && t != "download" && t != "rowSpan" && t != "colSpan" && t != "role" && t != "popover" && t in e) try {
@@ -114,7 +115,7 @@ function N(e, t, n, r, i) {
114
115
  typeof n == "function" || (n == null || !1 === n && t[4] != "-" ? e.removeAttribute(t) : e.setAttribute(t, t == "popover" && n == 1 ? "" : n));
115
116
  }
116
117
  }
117
- function te(e) {
118
+ function N(e) {
118
119
  return function(n) {
119
120
  if (this.l) {
120
121
  var r = this.l[n.type + e];
@@ -125,35 +126,35 @@ function te(e) {
125
126
  };
126
127
  }
127
128
  function ne(e, n, r, i, a, o, s, c, l, u) {
128
- var d, f, p, m, g, b, x, w, T, E, D, O, A, j, M, ee, N = n.type;
129
+ var d, f, p, m, g, b, x, T, E, D, O, A, j, ee, M, te, N = n.type;
129
130
  if (n.constructor !== void 0) return null;
130
131
  128 & r.__u && (l = !!(32 & r.__u), o = [c = n.__e = r.__e]), (d = t.__b) && d(n);
131
132
  n: if (typeof N == "function") {
132
133
  f = s.length;
133
134
  try {
134
- 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 ? w = (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 = N.prototype && N.prototype.render, O = (d = N.contextType) && i[d.__c], A = d ? O ? O.props.value : d.__ : i, r.__c ? T = (p = n.__c = r.__c).__ = p.__E : (D ? n.__c = p = new N(E, A) : (n.__c = p = new C(E, A), p.constructor = N, 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 && N.getDerivedStateFromProps != null && (p.__s == p.state && (p.__s = v({}, p.__s)), v(p.__s, N.getDerivedStateFromProps(E, p.__s))), g = p.props, b = p.state, p.__v = n, m) D && N.getDerivedStateFromProps == null && p.componentWillMount != null && p.componentWillMount(), D && p.componentDidMount != null && p.__h.push(p.componentDidMount);
135
136
  else {
136
- 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)) {
137
- 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 && N.getDerivedStateFromProps == null && E !== g && p.componentWillReceiveProps != null && p.componentWillReceiveProps(E, A), n.__v == r.__v || !p.__e && p.shouldComponentUpdate != null && !1 === p.shouldComponentUpdate(E, p.__s, A)) {
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) {
138
139
  e && (e.__ = n);
139
- }), h.push.apply(p.__h, p._sb), p._sb = [], p.__h.length && s.push(p);
140
+ }), h.push.apply(p.__h, p._sb), p._sb = [], p.__h.length && s.push(p), c = w(r);
140
141
  break n;
141
142
  }
142
- 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, A), D && p.componentDidUpdate != null && p.__h.push(function() {
143
144
  p.componentDidUpdate(g, b, x);
144
145
  });
145
146
  }
146
- if (p.context = O, p.props = T, p.__P = e, p.__e = !1, A = t.__r, j = 0, E) 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 = [];
147
+ if (p.context = A, p.props = E, p.__P = e, p.__e = !1, j = t.__r, ee = 0, D) p.state = p.__s, p.__d = !1, j && j(n), d = p.render(p.props, p.state, p.context), h.push.apply(p.__h, p._sb), p._sb = [];
147
148
  else do
148
- p.__d = !1, A && A(n), d = p.render(p.props, p.state, p.context), p.state = p.__s;
149
- while (p.__d && ++j < 25);
150
- p.state = p.__s, p.getChildContext != null && (i = v(v({}, i), p.getChildContext())), E && !m && p.getSnapshotBeforeUpdate != null && (x = p.getSnapshotBeforeUpdate(g, b)), M = d != null && d.type === S && d.key == null ? re(d.props.children) : d, c = k(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), w && (p.__E = p.__ = null);
149
+ p.__d = !1, j && j(n), d = p.render(p.props, p.state, p.context), p.state = p.__s;
150
+ while (p.__d && ++ee < 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 = k(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);
151
152
  } catch (e) {
152
153
  if (s.length = f, n.__v = null, l || o != null) {
153
154
  if (e.then) {
154
155
  for (n.__u |= l ? 160 : 128; c && c.nodeType == 8 && c.nextSibling;) c = c.nextSibling;
155
156
  o != null && (o[o.indexOf(c)] = null), n.__e = c;
156
- } else if (o != null) for (ee = o.length; ee--;) y(o[ee]);
157
+ } else if (o != null) for (te = o.length; te--;) y(o[te]);
157
158
  } else n.__e = r.__e;
158
159
  n.__k ??= r.__k || [], e.then || P(n), t.__e(e, n, r);
159
160
  }
@@ -193,11 +194,11 @@ function ie(n, r, i, a, o, s, c, l, u) {
193
194
  if (C == null) x === S || l && n.data == S || (n.data = S);
194
195
  else {
195
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;
196
- for (d in x) g = x[d], d == "dangerouslySetInnerHTML" ? p = g : d == "children" || d in S || d == "value" && "defaultValue" in S || d == "checked" && "defaultChecked" in S || N(n, d, null, g, o);
197
- for (d in S) g = S[d], d == "children" ? h = g : d == "dangerouslySetInnerHTML" ? f = g : d == "value" ? v = g : d == "checked" ? b = g : l && typeof g != "function" || x[d] === g || N(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 || te(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 || te(n, d, g, x[d], o);
198
199
  if (f) l || p && (f.__html == p.__html || f.__html == n.innerHTML) || (n.innerHTML = f.__html), r.__k = [];
199
200
  else if (p && (n.innerHTML = ""), k(r.type == "template" ? n.content : n, _(h) ? h : [h], r, i, a, C == "foreignObject" ? "http://www.w3.org/1999/xhtml" : o, s, c, s ? s[0] : i.__k && w(i, 0), l, u), s != null) for (d = s.length; d--;) y(s[d]);
200
- l && 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));
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]) && te(n, d, v, x[d], o), d = "checked", b != null && b != n[d] && te(n, d, b, x[d], o));
201
202
  }
202
203
  return n;
203
204
  }
@@ -245,49 +246,49 @@ e = h.slice, t = { __e: function(e, t, n, r) {
245
246
  this.__v && (this.__e = !0, e && this.__h.push(e), D(this));
246
247
  }, C.prototype.render = S, r = [], a = typeof Promise == "function" ? Promise.prototype.then.bind(Promise.resolve()) : setTimeout, o = function(e, t) {
247
248
  return e.__v.__b - t.__v.__b;
248
- }, O.__r = 0, s = Math.random().toString(8), c = "__d" + s, l = "__a" + s, u = /(PointerCapture)$|Capture$/i, d = 0, f = te(!1), p = te(!0);
249
+ }, O.__r = 0, s = Math.random().toString(8), c = "__d" + s, l = "__a" + s, u = /(PointerCapture)$|Capture$/i, d = 0, f = N(!1), p = N(!0);
249
250
  //#endregion
250
251
  //#region src/styles.css?inline
251
- 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:translateY(0)scale(1)}@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
- function 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-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:translateY(0)scale(1)}@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, I = 60, fe = null, pe = [], me = null, he = !1, ge = _e();
253
+ function _e() {
253
254
  return typeof crypto < "u" && typeof crypto.randomUUID == "function" ? crypto.randomUUID() : `s-${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 10)}`;
254
255
  }
255
- function ye(e) {
256
- if (pe = e, !e) {
257
- me = [], he &&= (clearTimeout(he), null);
256
+ function ve(e) {
257
+ if (fe = e, !e) {
258
+ pe = [], me &&= (clearTimeout(me), null);
258
259
  return;
259
260
  }
260
- Se();
261
+ xe();
261
262
  }
262
- function be(e, t) {
263
- if (pe && !(me.length >= fe)) {
264
- if (me.push({
263
+ function ye(e, t) {
264
+ if (fe && !(pe.length >= I)) {
265
+ if (pe.push({
265
266
  name: e,
266
267
  properties: t,
267
268
  timestamp: Date.now()
268
- }), me.length >= de) {
269
- xe();
269
+ }), pe.length >= de) {
270
+ be();
270
271
  return;
271
272
  }
272
- he ||= setTimeout(() => {
273
- he = null, xe();
273
+ me ||= setTimeout(() => {
274
+ me = null, be();
274
275
  }, ue);
275
276
  }
276
277
  }
277
- async function xe() {
278
- if (!pe || me.length === 0) return;
279
- let e = me.splice(0, de);
280
- he &&= (clearTimeout(he), null);
278
+ async function be() {
279
+ if (!fe || pe.length === 0) return;
280
+ let e = pe.splice(0, de);
281
+ me &&= (clearTimeout(me), null);
281
282
  try {
282
- await fetch(`${pe.apiUrl.replace(/\/+$/, "")}/widget/events`, {
283
+ await fetch(`${fe.apiUrl.replace(/\/+$/, "")}/widget/events`, {
283
284
  method: "POST",
284
285
  headers: {
285
286
  "content-type": "application/json",
286
- "x-markup-api-key": pe.apiKey
287
+ "x-markup-api-key": fe.apiKey
287
288
  },
288
289
  body: JSON.stringify({
289
- sessionId: _e,
290
- widgetVersion: pe.widgetVersion,
290
+ sessionId: ge,
291
+ widgetVersion: fe.widgetVersion,
291
292
  events: e.map((e) => ({
292
293
  name: e.name,
293
294
  properties: e.properties,
@@ -297,21 +298,21 @@ async function xe() {
297
298
  keepalive: !0
298
299
  });
299
300
  } catch {}
300
- pe && me.length > 0 && !he && (he = setTimeout(() => {
301
- he = null, xe();
301
+ fe && pe.length > 0 && !me && (me = setTimeout(() => {
302
+ me = null, be();
302
303
  }, ue));
303
304
  }
304
- function Se() {
305
- if (ge || typeof window > "u") return;
306
- ge = !0;
307
- let e = () => void xe();
305
+ function xe() {
306
+ if (he || typeof window > "u") return;
307
+ he = !0;
308
+ let e = () => void be();
308
309
  window.addEventListener("pagehide", e), document.addEventListener("visibilitychange", () => {
309
310
  document.visibilityState === "hidden" && e();
310
311
  });
311
312
  }
312
313
  //#endregion
313
314
  //#region src/runtime/error-boundary.tsx
314
- var Ce = class extends C {
315
+ var Se = class extends C {
315
316
  state = { hasError: !1 };
316
317
  static getDerivedStateFromError() {
317
318
  return { hasError: !0 };
@@ -324,12 +325,12 @@ var Ce = class extends C {
324
325
  render() {
325
326
  return this.state.hasError ? null : this.props.children;
326
327
  }
327
- }, we = 1e3;
328
- function Te(e) {
328
+ }, Ce = 1e3;
329
+ function we(e) {
329
330
  let t = !1, n = 0;
330
331
  return (r) => {
331
332
  let i = Date.now();
332
- t || i - n < we || (t = !0, n = i, fetch(`${e.apiUrl.replace(/\/+$/, "")}/widget/error`, {
333
+ t || i - n < Ce || (t = !0, n = i, fetch(`${e.apiUrl.replace(/\/+$/, "")}/widget/error`, {
333
334
  method: "POST",
334
335
  headers: {
335
336
  "content-type": "application/json",
@@ -345,97 +346,97 @@ function Te(e) {
345
346
  }));
346
347
  };
347
348
  }
348
- function Ee() {
349
+ function Te() {
349
350
  return typeof window < "u" ? window.location.href : void 0;
350
351
  }
351
- function De() {
352
+ function Ee() {
352
353
  return typeof navigator < "u" ? navigator.userAgent : void 0;
353
354
  }
354
- var Oe = /* @__PURE__ */ new WeakMap();
355
- function ke(e, t, n) {
356
- let r = Oe.get(e);
357
- r || (r = Te(e), Oe.set(e, r));
355
+ var De = /* @__PURE__ */ new WeakMap();
356
+ function Oe(e, t, n) {
357
+ let r = De.get(e);
358
+ r || (r = we(e), De.set(e, r));
358
359
  let i = t instanceof Error ? t : Error(String(t));
359
360
  r({
360
361
  message: i.message,
361
362
  name: i.name,
362
363
  stack: i.stack,
363
- url: Ee(),
364
- userAgent: De(),
364
+ url: Te(),
365
+ userAgent: Ee(),
365
366
  context: n?.context
366
367
  });
367
368
  }
368
- var Ae = null;
369
- function je(e) {
370
- Ae = e;
369
+ var ke = null;
370
+ function Ae(e) {
371
+ ke = e;
371
372
  }
372
- function I(e, t) {
373
- Ae && ke(Ae, e, t);
373
+ function L(e, t) {
374
+ ke && Oe(ke, e, t);
374
375
  }
375
376
  //#endregion
376
377
  //#region src/runtime/theme-store.ts
377
- var Me = "markup:widget:theme", Ne = null, Pe = Le() ?? "auto", Fe = Le() != null, Ie = /* @__PURE__ */ new Set();
378
- function Le() {
378
+ var je = "markup:widget:theme", Me = null, R = Fe() ?? "auto", Ne = Fe() != null, Pe = /* @__PURE__ */ new Set();
379
+ function Fe() {
379
380
  try {
380
- let e = localStorage.getItem(Me);
381
+ let e = localStorage.getItem(je);
381
382
  if (e === "light" || e === "dark" || e === "auto") return e;
382
383
  } catch {}
383
384
  return null;
384
385
  }
385
- function Re() {
386
- Ne && (Pe === "auto" ? delete Ne.dataset.theme : Ne.dataset.theme = Pe);
386
+ function Ie() {
387
+ Me && (R === "auto" ? delete Me.dataset.theme : Me.dataset.theme = R);
387
388
  }
388
- function ze(e, t) {
389
- Ne = e, !Fe && t && (Pe = t), Re();
389
+ function Le(e, t) {
390
+ Me = e, !Ne && t && (R = t), Ie();
390
391
  }
391
- function Be() {
392
- return Pe;
392
+ function Re() {
393
+ return R;
393
394
  }
394
- function Ve() {
395
- return Pe === "dark" ? "dark" : Pe === "light" ? "light" : typeof window < "u" && window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
395
+ function ze() {
396
+ return R === "dark" ? "dark" : R === "light" ? "light" : typeof window < "u" && window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
396
397
  }
397
- function He(e) {
398
- if (e !== Pe) {
399
- Pe = e, Fe = !0;
398
+ function Be(e) {
399
+ if (e !== R) {
400
+ R = e, Ne = !0;
400
401
  try {
401
- localStorage.setItem(Me, e);
402
+ localStorage.setItem(je, e);
402
403
  } catch {}
403
- Re();
404
- for (let e of Ie) e(Pe);
404
+ Ie();
405
+ for (let e of Pe) e(R);
405
406
  }
406
407
  }
407
- function Ue(e) {
408
- return Ie.add(e), () => {
409
- Ie.delete(e);
408
+ function Ve(e) {
409
+ return Pe.add(e), () => {
410
+ Pe.delete(e);
410
411
  };
411
412
  }
412
- function We() {
413
+ function He() {
413
414
  if (typeof window > "u" || !window.matchMedia) return () => {};
414
415
  let e = window.matchMedia("(prefers-color-scheme: dark)"), t = () => {
415
- if (Pe === "auto") for (let e of Ie) e(Pe);
416
+ if (R === "auto") for (let e of Pe) e(R);
416
417
  };
417
418
  return e.addEventListener?.("change", t), () => e.removeEventListener?.("change", t);
418
419
  }
419
420
  //#endregion
420
- //#region ../../node_modules/.pnpm/preact@10.29.7/node_modules/preact/hooks/dist/hooks.module.js
421
- var Ge, L, Ke, qe, Je = 0, Ye = [], R = t, Xe = R.__b, Ze = R.__r, Qe = R.diffed, $e = R.__c, et = R.unmount, tt = R.__;
422
- function nt(e, t) {
423
- R.__h && R.__h(L, e, Je || t), Je = 0;
424
- var n = L.__H || (L.__H = {
421
+ //#region ../../node_modules/.pnpm/preact@10.29.8/node_modules/preact/hooks/dist/hooks.module.js
422
+ var Ue, z, We, Ge, Ke = 0, qe = [], B = t, Je = B.__b, Ye = B.__r, Xe = B.diffed, Ze = B.__c, Qe = B.unmount, $e = B.__;
423
+ function et(e, t) {
424
+ B.__h && B.__h(z, e, Ke || t), Ke = 0;
425
+ var n = z.__H || (z.__H = {
425
426
  __: [],
426
427
  __h: []
427
428
  });
428
429
  return e >= n.__.length && n.__.push({}), n.__[e];
429
430
  }
430
- function z(e) {
431
- return Je = 1, rt(dt, e);
431
+ function V(e) {
432
+ return Ke = 1, tt(lt, e);
432
433
  }
433
- function rt(e, t, n) {
434
- var r = nt(Ge++, 2);
435
- if (r.t = e, !r.__c && (r.__ = [n ? n(t) : dt(void 0, t), function(e) {
434
+ function tt(e, t, n) {
435
+ var r = et(Ue++, 2);
436
+ if (r.t = e, !r.__c && (r.__ = [n ? n(t) : lt(void 0, t), function(e) {
436
437
  var t = r.__N ? r.__N[0] : r.__[0], n = r.t(t, e);
437
438
  t !== n && (r.__N = [n, r.__[1]], r.__c.setState({}));
438
- }], r.__c = L, !L.__f)) {
439
+ }], r.__c = z, !z.__f)) {
439
440
  var i = function(e, t, n) {
440
441
  if (!r.__c.__H) return !0;
441
442
  var i = !1, o = r.__c.props !== e;
@@ -451,114 +452,114 @@ function rt(e, t, n) {
451
452
  }
452
453
  return !i || o;
453
454
  };
454
- L.__f = !0;
455
- var a = L.shouldComponentUpdate, o = L.componentWillUpdate;
456
- L.componentWillUpdate = function(e, t, n) {
455
+ z.__f = !0;
456
+ var a = z.shouldComponentUpdate, o = z.componentWillUpdate;
457
+ z.componentWillUpdate = function(e, t, n) {
457
458
  if (this.__e) {
458
459
  var r = a;
459
460
  a = void 0, i(e, t, n), a = r;
460
461
  }
461
462
  o && o.call(this, e, t, n);
462
- }, L.shouldComponentUpdate = i;
463
+ }, z.shouldComponentUpdate = i;
463
464
  }
464
465
  return r.__N || r.__;
465
466
  }
466
- function B(e, t) {
467
- var n = nt(Ge++, 3);
468
- !R.__s && ut(n.__H, t) && (n.__ = e, n.u = t, L.__H.__h.push(n));
467
+ function H(e, t) {
468
+ var n = et(Ue++, 3);
469
+ !B.__s && ct(n.__H, t) && (n.__ = e, n.u = t, z.__H.__h.push(n));
469
470
  }
470
- function V(e, t) {
471
- var n = nt(Ge++, 4);
472
- !R.__s && ut(n.__H, t) && (n.__ = e, n.u = t, L.__h.push(n));
471
+ function U(e, t) {
472
+ var n = et(Ue++, 4);
473
+ !B.__s && ct(n.__H, t) && (n.__ = e, n.u = t, z.__h.push(n));
473
474
  }
474
- function H(e) {
475
- return Je = 5, it(function() {
475
+ function W(e) {
476
+ return Ke = 5, nt(function() {
476
477
  return { current: e };
477
478
  }, []);
478
479
  }
479
- function it(e, t) {
480
- var n = nt(Ge++, 7);
481
- return ut(n.__H, t) && (n.__ = e(), n.__H = t, n.__h = e), n.__;
480
+ function nt(e, t) {
481
+ var n = et(Ue++, 7);
482
+ return ct(n.__H, t) && (n.__ = e(), n.__H = t, n.__h = e), n.__;
482
483
  }
483
- function U(e, t) {
484
- return Je = 8, it(function() {
484
+ function G(e, t) {
485
+ return Ke = 8, nt(function() {
485
486
  return e;
486
487
  }, t);
487
488
  }
488
- function at() {
489
- for (var e; e = Ye.shift();) {
489
+ function rt() {
490
+ for (var e; e = qe.shift();) {
490
491
  var t = e.__H;
491
492
  if (e.__P && t) try {
492
- t.__h.some(ct), t.__h.some(lt), t.__h = [];
493
+ t.__h.some(ot), t.__h.some(st), t.__h = [];
493
494
  } catch (n) {
494
- t.__h = [], R.__e(n, e.__v);
495
+ t.__h = [], B.__e(n, e.__v);
495
496
  }
496
497
  }
497
498
  }
498
- R.__b = function(e) {
499
- L = null, Xe && Xe(e);
500
- }, R.__ = function(e, t) {
501
- e && t.__k && t.__k.__m && (e.__m = t.__k.__m), tt && tt(e, t);
502
- }, R.__r = function(e) {
503
- Ze && Ze(e), Ge = 0;
504
- var t = (L = e.__c).__H;
505
- t && (Ke === L ? (t.__h = [], L.__h = [], t.__.some(function(e) {
499
+ B.__b = function(e) {
500
+ z = null, Je && Je(e);
501
+ }, B.__ = function(e, t) {
502
+ e && t.__k && t.__k.__m && (e.__m = t.__k.__m), $e && $e(e, t);
503
+ }, B.__r = function(e) {
504
+ Ye && Ye(e), Ue = 0;
505
+ var t = (z = e.__c).__H;
506
+ t && (We === z ? (t.__h = [], z.__h = [], t.__.some(function(e) {
506
507
  e.__N && (e.__ = e.__N), e.u = e.__N = void 0;
507
- })) : (t.__h.some(ct), t.__h.some(lt), t.__h = [], Ge = 0)), Ke = L;
508
- }, R.diffed = function(e) {
509
- Qe && Qe(e);
508
+ })) : (t.__h.some(ot), t.__h.some(st), t.__h = [], Ue = 0)), We = z;
509
+ }, B.diffed = function(e) {
510
+ Xe && Xe(e);
510
511
  var t = e.__c;
511
- t && t.__H && (t.__H.__h.length && (Ye.push(t) !== 1 && qe === R.requestAnimationFrame || ((qe = R.requestAnimationFrame) || st)(at)), t.__H.__.some(function(e) {
512
+ t && t.__H && (t.__H.__h.length && (qe.push(t) !== 1 && Ge === B.requestAnimationFrame || ((Ge = B.requestAnimationFrame) || at)(rt)), t.__H.__.some(function(e) {
512
513
  e.u &&= (e.__H = e.u, void 0);
513
- })), Ke = L = null;
514
- }, R.__c = function(e, t) {
514
+ })), We = z = null;
515
+ }, B.__c = function(e, t) {
515
516
  t.some(function(e) {
516
517
  try {
517
- e.__h.some(ct), e.__h = e.__h.filter(function(e) {
518
- return !e.__ || lt(e);
518
+ e.__h.some(ot), e.__h = e.__h.filter(function(e) {
519
+ return !e.__ || st(e);
519
520
  });
520
521
  } catch (n) {
521
522
  t.some(function(e) {
522
523
  e.__h &&= [];
523
- }), t = [], R.__e(n, e.__v);
524
+ }), t = [], B.__e(n, e.__v);
524
525
  }
525
- }), $e && $e(e, t);
526
- }, R.unmount = function(e) {
527
- et && et(e);
526
+ }), Ze && Ze(e, t);
527
+ }, B.unmount = function(e) {
528
+ Qe && Qe(e);
528
529
  var t, n = e.__c;
529
530
  n && n.__H && (n.__H.__.some(function(e) {
530
531
  try {
531
- ct(e);
532
+ ot(e);
532
533
  } catch (e) {
533
534
  t = e;
534
535
  }
535
- }), n.__H = void 0, t && R.__e(t, n.__v));
536
+ }), n.__H = void 0, t && B.__e(t, n.__v));
536
537
  };
537
- var ot = typeof requestAnimationFrame == "function";
538
- function st(e) {
538
+ var it = typeof requestAnimationFrame == "function";
539
+ function at(e) {
539
540
  var t, n = function() {
540
- clearTimeout(r), ot && cancelAnimationFrame(t), setTimeout(e);
541
+ clearTimeout(r), it && cancelAnimationFrame(t), setTimeout(e);
541
542
  }, r = setTimeout(n, 35);
542
- ot && (t = requestAnimationFrame(n));
543
+ it && (t = requestAnimationFrame(n));
543
544
  }
544
- function ct(e) {
545
- var t = L, n = e.__c;
546
- typeof n == "function" && (e.__c = void 0, n()), L = t;
545
+ function ot(e) {
546
+ var t = z, n = e.__c;
547
+ typeof n == "function" && (e.__c = void 0, n()), z = t;
547
548
  }
548
- function lt(e) {
549
- var t = L;
550
- e.__c = e.__(), L = t;
549
+ function st(e) {
550
+ var t = z;
551
+ e.__c = e.__(), z = t;
551
552
  }
552
- function ut(e, t) {
553
+ function ct(e, t) {
553
554
  return !e || e.length !== t.length || t.some(function(t, n) {
554
555
  return t !== e[n];
555
556
  });
556
557
  }
557
- function dt(e, t) {
558
+ function lt(e, t) {
558
559
  return typeof t == "function" ? t(e) : t;
559
560
  }
560
- for (var ft = "1.38.0", W = [], G = [], pt = Uint8Array, mt = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", ht = 0, gt = mt.length; ht < gt; ++ht) W[ht] = mt[ht], G[mt.charCodeAt(ht)] = ht;
561
- G[45] = 62, G[95] = 63;
561
+ for (var ut = "1.38.0", dt = [], ft = [], pt = Uint8Array, mt = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", ht = 0, gt = mt.length; ht < gt; ++ht) dt[ht] = mt[ht], ft[mt.charCodeAt(ht)] = ht;
562
+ ft[45] = 62, ft[95] = 63;
562
563
  function _t(e) {
563
564
  var t = e.length;
564
565
  if (t % 4 > 0) throw Error("Invalid string. Length must be a multiple of 4");
@@ -570,24 +571,23 @@ function _t(e) {
570
571
  function vt(e, t, n) {
571
572
  return (t + n) * 3 / 4 - n;
572
573
  }
573
- function K(e) {
574
- var t, n = _t(e), r = n[0], i = n[1], a = new pt(vt(e, r, i)), o = 0, s = i > 0 ? r - 4 : r, c;
575
- for (c = 0; c < s; c += 4) t = G[e.charCodeAt(c)] << 18 | G[e.charCodeAt(c + 1)] << 12 | G[e.charCodeAt(c + 2)] << 6 | G[e.charCodeAt(c + 3)], a[o++] = t >> 16 & 255, a[o++] = t >> 8 & 255, a[o++] = t & 255;
576
- return i === 2 && (t = G[e.charCodeAt(c)] << 2 | G[e.charCodeAt(c + 1)] >> 4, a[o++] = t & 255), i === 1 && (t = G[e.charCodeAt(c)] << 10 | G[e.charCodeAt(c + 1)] << 4 | G[e.charCodeAt(c + 2)] >> 2, a[o++] = t >> 8 & 255, a[o++] = t & 255), a;
577
- }
578
574
  function yt(e) {
579
- return W[e >> 18 & 63] + W[e >> 12 & 63] + W[e >> 6 & 63] + W[e & 63];
575
+ for (var t, n = _t(e), r = n[0], i = n[1], a = new pt(vt(e, r, i)), o = 0, s = i > 0 ? r - 4 : r, c = 0; c < s; c += 4) t = ft[e.charCodeAt(c)] << 18 | ft[e.charCodeAt(c + 1)] << 12 | ft[e.charCodeAt(c + 2)] << 6 | ft[e.charCodeAt(c + 3)], a[o++] = t >> 16 & 255, a[o++] = t >> 8 & 255, a[o++] = t & 255;
576
+ return i === 2 && (t = ft[e.charCodeAt(c)] << 2 | ft[e.charCodeAt(c + 1)] >> 4, a[o++] = t & 255), i === 1 && (t = ft[e.charCodeAt(c)] << 10 | ft[e.charCodeAt(c + 1)] << 4 | ft[e.charCodeAt(c + 2)] >> 2, a[o++] = t >> 8 & 255, a[o++] = t & 255), a;
580
577
  }
581
- function bt(e, t, n) {
582
- for (var r, i = [], a = t; a < n; a += 3) r = (e[a] << 16 & 16711680) + (e[a + 1] << 8 & 65280) + (e[a + 2] & 255), i.push(yt(r));
578
+ function bt(e) {
579
+ return dt[e >> 18 & 63] + dt[e >> 12 & 63] + dt[e >> 6 & 63] + dt[e & 63];
580
+ }
581
+ function K(e, t, n) {
582
+ for (var r, i = [], a = t; a < n; a += 3) r = (e[a] << 16 & 16711680) + (e[a + 1] << 8 & 65280) + (e[a + 2] & 255), i.push(bt(r));
583
583
  return i.join("");
584
584
  }
585
585
  function xt(e) {
586
- for (var t, n = e.length, r = n % 3, i = [], a = 16383, o = 0, s = n - r; o < s; o += a) i.push(bt(e, o, o + a > s ? s : o + a));
587
- return r === 1 ? (t = e[n - 1], i.push(W[t >> 2] + W[t << 4 & 63] + "==")) : r === 2 && (t = (e[n - 2] << 8) + e[n - 1], i.push(W[t >> 10] + W[t >> 4 & 63] + W[t << 2 & 63] + "=")), i.join("");
586
+ for (var t, n = e.length, r = n % 3, i = [], a = 16383, o = 0, s = n - r; o < s; o += a) i.push(K(e, o, o + a > s ? s : o + a));
587
+ return r === 1 ? (t = e[n - 1], i.push(dt[t >> 2] + dt[t << 4 & 63] + "==")) : r === 2 && (t = (e[n - 2] << 8) + e[n - 1], i.push(dt[t >> 10] + dt[t >> 4 & 63] + dt[t << 2 & 63] + "=")), i.join("");
588
588
  }
589
589
  //#endregion
590
- //#region ../../node_modules/.pnpm/convex@1.38.0_react@19.2.8/node_modules/convex/dist/esm/common/index.js
590
+ //#region ../../node_modules/.pnpm/convex@1.38.0_react@19.3.0/node_modules/convex/dist/esm/common/index.js
591
591
  function St(e) {
592
592
  if (e === void 0) return {};
593
593
  if (!wt(e)) throw Error(`The arguments to a Convex function must be an object. Received: ${e}`);
@@ -609,7 +609,7 @@ function wt(e) {
609
609
  return t && r;
610
610
  }
611
611
  //#endregion
612
- //#region ../../node_modules/.pnpm/convex@1.38.0_react@19.2.8/node_modules/convex/dist/esm/values/value.js
612
+ //#region ../../node_modules/.pnpm/convex@1.38.0_react@19.3.0/node_modules/convex/dist/esm/values/value.js
613
613
  var Tt = !0, Et = BigInt("-9223372036854775808"), Dt = BigInt("9223372036854775807"), Ot = BigInt("0"), kt = BigInt("8"), At = BigInt("256");
614
614
  function jt(e) {
615
615
  return Number.isNaN(e) || !Number.isFinite(e) || Object.is(e, -0);
@@ -623,7 +623,7 @@ function Mt(e) {
623
623
  return xt(n);
624
624
  }
625
625
  function Nt(e) {
626
- let t = K(e);
626
+ let t = yt(e);
627
627
  if (t.byteLength !== 8) throw Error(`Received ${t.byteLength} bytes, expected 8 for $integer`);
628
628
  let n = Ot, r = Ot;
629
629
  for (let e of t) n += BigInt(e) * At ** r, r++;
@@ -635,7 +635,7 @@ function Pt(e) {
635
635
  return new DataView(t).setBigInt64(0, e, !0), xt(new Uint8Array(t));
636
636
  }
637
637
  function Ft(e) {
638
- let t = K(e);
638
+ let t = yt(e);
639
639
  if (t.byteLength !== 8) throw Error(`Received ${t.byteLength} bytes, expected 8 for $integer`);
640
640
  return new DataView(t.buffer).getBigInt64(0, !0);
641
641
  }
@@ -657,7 +657,7 @@ function Bt(e) {
657
657
  let n = t[0][0];
658
658
  if (n === "$bytes") {
659
659
  if (typeof e.$bytes != "string") throw Error(`Malformed $bytes field on ${e}`);
660
- return K(e.$bytes).buffer;
660
+ return yt(e.$bytes).buffer;
661
661
  }
662
662
  if (n === "$integer") {
663
663
  if (typeof e.$integer != "string") throw Error(`Malformed $integer field on ${e}`);
@@ -665,7 +665,7 @@ function Bt(e) {
665
665
  }
666
666
  if (n === "$float") {
667
667
  if (typeof e.$float != "string") throw Error(`Malformed $float field on ${e}`);
668
- let t = K(e.$float);
668
+ let t = yt(e.$float);
669
669
  if (t.byteLength !== 8) throw Error(`Received ${t.byteLength} bytes, expected 8 for $float`);
670
670
  let n = new DataView(t.buffer).getFloat64(0, Tt);
671
671
  if (!jt(n)) throw Error(`Float ${n} should be encoded as a number`);
@@ -697,10 +697,13 @@ function Ut(e, t, n, r) {
697
697
  if (e < Et || Dt < e) throw Error(`BigInt ${e} does not fit into a 64-bit signed integer.`);
698
698
  return { $integer: It(e) };
699
699
  }
700
- if (typeof e == "number") if (jt(e)) {
701
- let t = /* @__PURE__ */ new ArrayBuffer(8);
702
- return new DataView(t).setFloat64(0, e, Tt), { $float: xt(new Uint8Array(t)) };
703
- } else return e;
700
+ if (typeof e == "number") {
701
+ if (jt(e)) {
702
+ let t = /* @__PURE__ */ new ArrayBuffer(8);
703
+ return new DataView(t).setFloat64(0, e, Tt), { $float: xt(new Uint8Array(t)) };
704
+ }
705
+ return e;
706
+ }
704
707
  if (typeof e == "boolean" || typeof e == "string") return e;
705
708
  if (e instanceof ArrayBuffer) return { $bytes: xt(new Uint8Array(e)) };
706
709
  if (Array.isArray(e)) return e.map((e, r) => Ut(e, t, n + `[${r}]`, !1));
@@ -727,7 +730,7 @@ function Kt(e) {
727
730
  return Ut(e, e, "", !1);
728
731
  }
729
732
  //#endregion
730
- //#region ../../node_modules/.pnpm/convex@1.38.0_react@19.2.8/node_modules/convex/dist/esm/values/errors.js
733
+ //#region ../../node_modules/.pnpm/convex@1.38.0_react@19.3.0/node_modules/convex/dist/esm/values/errors.js
731
734
  var qt = Object.defineProperty, Jt = (e, t, n) => t in e ? qt(e, t, {
732
735
  enumerable: !0,
733
736
  configurable: !0,
@@ -822,7 +825,7 @@ function fn(e, t) {
822
825
  return t.data = e.errorData, t;
823
826
  }
824
827
  //#endregion
825
- //#region ../../node_modules/.pnpm/convex@1.38.0_react@19.2.8/node_modules/convex/dist/esm/browser/sync/udf_path_utils.js
828
+ //#region ../../node_modules/.pnpm/convex@1.38.0_react@19.3.0/node_modules/convex/dist/esm/browser/sync/udf_path_utils.js
826
829
  function pn(e) {
827
830
  let t = e.split(":"), n, r;
828
831
  return t.length === 1 ? (n = t[0], r = "default") : (n = t.slice(0, t.length - 1).join(":"), r = t[t.length - 1]), n.endsWith(".js") && (n = n.slice(0, -3)), `${n}:${r}`;
@@ -849,7 +852,7 @@ function gn(e) {
849
852
  return JSON.parse(e).type === "paginated";
850
853
  }
851
854
  //#endregion
852
- //#region ../../node_modules/.pnpm/convex@1.38.0_react@19.2.8/node_modules/convex/dist/esm/browser/sync/local_state.js
855
+ //#region ../../node_modules/.pnpm/convex@1.38.0_react@19.3.0/node_modules/convex/dist/esm/browser/sync/local_state.js
853
856
  var _n = Object.defineProperty, vn = (e, t, n) => t in e ? _n(e, t, {
854
857
  enumerable: !0,
855
858
  configurable: !0,
@@ -1181,7 +1184,7 @@ function kn(e) {
1181
1184
  return t;
1182
1185
  }
1183
1186
  //#endregion
1184
- //#region ../../node_modules/.pnpm/convex@1.38.0_react@19.2.8/node_modules/convex/dist/esm/server/api.js
1187
+ //#region ../../node_modules/.pnpm/convex@1.38.0_react@19.3.0/node_modules/convex/dist/esm/server/api.js
1185
1188
  function An(e) {
1186
1189
  let t = kn(e);
1187
1190
  if (t.name === void 0) throw t.functionHandle === void 0 ? t.reference === void 0 ? Error(`Expected function reference like "api.file.func" or "internal.file.func", but received ${JSON.stringify(t)}`) : Error(`Expected function reference in the current component like "api.file.func" or "internal.file.func", but received reference ${t.reference}`) : Error(`Expected function reference like "api.file.func" or "internal.file.func", but received function handle ${t.functionHandle}`);
@@ -1209,7 +1212,7 @@ function Mn(e = []) {
1209
1212
  }
1210
1213
  Mn();
1211
1214
  //#endregion
1212
- //#region ../../node_modules/.pnpm/convex@1.38.0_react@19.2.8/node_modules/convex/dist/esm/browser/sync/optimistic_updates_impl.js
1215
+ //#region ../../node_modules/.pnpm/convex@1.38.0_react@19.3.0/node_modules/convex/dist/esm/browser/sync/optimistic_updates_impl.js
1213
1216
  var Nn = Object.defineProperty, Pn = (e, t, n) => t in e ? Nn(e, t, {
1214
1217
  enumerable: !0,
1215
1218
  configurable: !0,
@@ -1396,9 +1399,9 @@ var Nn = Object.defineProperty, Pn = (e, t, n) => t in e ? Nn(e, t, {
1396
1399
  }
1397
1400
  };
1398
1401
  //#endregion
1399
- //#region ../../node_modules/.pnpm/convex@1.38.0_react@19.2.8/node_modules/convex/dist/esm/browser/sync/protocol.js
1402
+ //#region ../../node_modules/.pnpm/convex@1.38.0_react@19.3.0/node_modules/convex/dist/esm/browser/sync/protocol.js
1400
1403
  function Zn(e) {
1401
- let t = K(e);
1404
+ let t = yt(e);
1402
1405
  return Vn.fromBytesLE(Array.from(t));
1403
1406
  }
1404
1407
  function Qn(e) {
@@ -1445,7 +1448,7 @@ function er(e) {
1445
1448
  }
1446
1449
  }
1447
1450
  //#endregion
1448
- //#region ../../node_modules/.pnpm/convex@1.38.0_react@19.2.8/node_modules/convex/dist/esm/browser/sync/web_socket_manager.js
1451
+ //#region ../../node_modules/.pnpm/convex@1.38.0_react@19.3.0/node_modules/convex/dist/esm/browser/sync/web_socket_manager.js
1449
1452
  var tr = Object.defineProperty, nr = (e, t, n) => t in e ? tr(e, t, {
1450
1453
  enumerable: !0,
1451
1454
  configurable: !0,
@@ -1487,7 +1490,7 @@ var fr = class {
1487
1490
  this.socket = e, this._logVerbose(`socket state changed: ${this.socket.state}, paused: ${"paused" in this.socket ? this.socket.paused : void 0}`), this.markConnectionStateDirty();
1488
1491
  }
1489
1492
  setupNetworkListener() {
1490
- typeof window > "u" || typeof window.addEventListener != "function" || this.networkOnlineHandler === null && (this.networkOnlineHandler = () => {
1493
+ typeof window < "u" && typeof window.addEventListener == "function" && this.networkOnlineHandler === null && (this.networkOnlineHandler = () => {
1491
1494
  this._logVerbose("network online event detected"), this.tryReconnectImmediately();
1492
1495
  }, window.addEventListener("online", this.networkOnlineHandler), this._logVerbose("network online event listener registered"));
1493
1496
  }
@@ -1776,7 +1779,7 @@ var fr = class {
1776
1779
  }
1777
1780
  };
1778
1781
  //#endregion
1779
- //#region ../../node_modules/.pnpm/convex@1.38.0_react@19.2.8/node_modules/convex/dist/esm/browser/sync/session.js
1782
+ //#region ../../node_modules/.pnpm/convex@1.38.0_react@19.3.0/node_modules/convex/dist/esm/browser/sync/session.js
1780
1783
  function pr() {
1781
1784
  return mr();
1782
1785
  }
@@ -1787,7 +1790,7 @@ function mr() {
1787
1790
  });
1788
1791
  }
1789
1792
  //#endregion
1790
- //#region ../../node_modules/.pnpm/convex@1.38.0_react@19.2.8/node_modules/convex/dist/esm/vendor/jwt-decode/index.js
1793
+ //#region ../../node_modules/.pnpm/convex@1.38.0_react@19.3.0/node_modules/convex/dist/esm/vendor/jwt-decode/index.js
1791
1794
  var hr = class extends Error {};
1792
1795
  hr.prototype.name = "InvalidTokenError";
1793
1796
  function gr(e) {
@@ -1832,7 +1835,7 @@ function vr(e, t) {
1832
1835
  }
1833
1836
  }
1834
1837
  //#endregion
1835
- //#region ../../node_modules/.pnpm/convex@1.38.0_react@19.2.8/node_modules/convex/dist/esm/browser/sync/authentication_manager.js
1838
+ //#region ../../node_modules/.pnpm/convex@1.38.0_react@19.3.0/node_modules/convex/dist/esm/browser/sync/authentication_manager.js
1836
1839
  var yr = Object.defineProperty, br = (e, t, n) => t in e ? yr(e, t, {
1837
1840
  enumerable: !0,
1838
1841
  configurable: !0,
@@ -1985,7 +1988,7 @@ var yr = Object.defineProperty, br = (e, t, n) => t in e ? yr(e, t, {
1985
1988
  ];
1986
1989
  function Er(e, t) {
1987
1990
  let n = { sessionId: t };
1988
- typeof performance > "u" || !performance.mark || performance.mark(e, { detail: n });
1991
+ typeof performance < "u" && performance.mark && performance.mark(e, { detail: n });
1989
1992
  }
1990
1993
  function Dr(e) {
1991
1994
  let t = e.name.slice(6);
@@ -2004,7 +2007,7 @@ function Or(e) {
2004
2007
  return t.map(Dr);
2005
2008
  }
2006
2009
  //#endregion
2007
- //#region ../../node_modules/.pnpm/convex@1.38.0_react@19.2.8/node_modules/convex/dist/esm/browser/sync/client.js
2010
+ //#region ../../node_modules/.pnpm/convex@1.38.0_react@19.3.0/node_modules/convex/dist/esm/browser/sync/client.js
2008
2011
  var kr = Object.defineProperty, Ar = (e, t, n) => t in e ? kr(e, t, {
2009
2012
  enumerable: !0,
2010
2013
  configurable: !0,
@@ -2033,7 +2036,7 @@ var kr = Object.defineProperty, Ar = (e, t, n) => t in e ? kr(e, t, {
2033
2036
  if (s === "http") c = "ws";
2034
2037
  else if (s === "https") c = "wss";
2035
2038
  else throw Error(`Unknown parent protocol ${s}`);
2036
- let l = `${c}://${o}/api/${ft}/sync`;
2039
+ let l = `${c}://${o}/api/${ut}/sync`;
2037
2040
  this.state = new bn(), this.remoteQuerySet = new Xn((e) => this.state.queryPath(e), this.logger), this.requestManager = new wn(this.logger, this.markConnectionStateDirty);
2038
2041
  let u = () => {
2039
2042
  this.webSocketManager.pause(), this.state.pause();
@@ -2331,7 +2334,7 @@ var kr = Object.defineProperty, Ar = (e, t, n) => t in e ? kr(e, t, {
2331
2334
  method: "POST",
2332
2335
  headers: {
2333
2336
  "Content-Type": "application/json",
2334
- "Convex-Client": `npm-${ft}`
2337
+ "Convex-Client": `npm-${ut}`
2335
2338
  },
2336
2339
  body: JSON.stringify({ event: "LongWebsocketDisconnect" })
2337
2340
  }).then((e) => {
@@ -2342,13 +2345,13 @@ var kr = Object.defineProperty, Ar = (e, t, n) => t in e ? kr(e, t, {
2342
2345
  }
2343
2346
  };
2344
2347
  //#endregion
2345
- //#region ../../node_modules/.pnpm/convex@1.38.0_react@19.2.8/node_modules/convex/dist/esm/browser/sync/pagination.js
2348
+ //#region ../../node_modules/.pnpm/convex@1.38.0_react@19.3.0/node_modules/convex/dist/esm/browser/sync/pagination.js
2346
2349
  function Mr(e) {
2347
2350
  if (typeof e != "object" || !e || !Array.isArray(e.page) || typeof e.isDone != "boolean" || typeof e.continueCursor != "string") throw Error(`Not a valid paginated query result: ${e?.toString()}`);
2348
2351
  return e;
2349
2352
  }
2350
2353
  //#endregion
2351
- //#region ../../node_modules/.pnpm/convex@1.38.0_react@19.2.8/node_modules/convex/dist/esm/browser/sync/paginated_query_client.js
2354
+ //#region ../../node_modules/.pnpm/convex@1.38.0_react@19.3.0/node_modules/convex/dist/esm/browser/sync/paginated_query_client.js
2352
2355
  var Nr = Object.defineProperty, Pr = (e, t, n) => t in e ? Nr(e, t, {
2353
2356
  enumerable: !0,
2354
2357
  configurable: !0,
@@ -2537,11 +2540,11 @@ var Nr = Object.defineProperty, Pr = (e, t, n) => t in e ? Nr(e, t, {
2537
2540
  configurable: !0,
2538
2541
  writable: !0,
2539
2542
  value: n
2540
- }) : e[t] = n, zr = (e, t, n) => Rr(e, typeof t == "symbol" ? t : t + "", n), Br, Vr = class {
2543
+ }) : e[t] = n, zr = (e, t, n) => Rr(e, typeof t == "symbol" ? t : t + "", n), Br = class {
2541
2544
  constructor(e, t = {}) {
2542
2545
  zr(this, "listeners"), zr(this, "_client"), zr(this, "_paginatedClient"), zr(this, "callNewListenersWithCurrentValuesTimer"), zr(this, "_closed"), zr(this, "_disabled"), t.skipConvexDeploymentUrlCheck !== !0 && Ct(e);
2543
2546
  let { disabled: n, ...r } = t;
2544
- this._closed = !1, this._disabled = !!n, Br && !("webSocketConstructor" in r) && typeof WebSocket > "u" && (r.webSocketConstructor = Br), typeof window > "u" && !("unsavedChangesWarning" in r) && (r.unsavedChangesWarning = !1), this.disabled || (this._client = new jr(e, () => {}, r), this._paginatedClient = new Ir(this._client, (e) => this._transition(e))), this.listeners = /* @__PURE__ */ new Set();
2547
+ this._closed = !1, this._disabled = !!n, typeof window > "u" && !("unsavedChangesWarning" in r) && (r.unsavedChangesWarning = !1), this.disabled || (this._client = new jr(e, () => {}, r), this._paginatedClient = new Ir(this._client, (e) => this._transition(e))), this.listeners = /* @__PURE__ */ new Set();
2545
2548
  }
2546
2549
  get closed() {
2547
2550
  return this._closed;
@@ -2681,14 +2684,14 @@ var Nr = Object.defineProperty, Pr = (e, t, n) => t in e ? Nr(e, t, {
2681
2684
  };
2682
2685
  //#endregion
2683
2686
  //#region src/lib/machine.ts
2684
- function Hr(e) {
2687
+ function Vr(e) {
2685
2688
  return e;
2686
2689
  }
2687
- function Ur(e, t) {
2688
- let n = H(e);
2690
+ function Hr(e, t) {
2691
+ let n = W(e);
2689
2692
  n.current = e;
2690
- let [r, i] = z(() => typeof t == "function" ? t() : t);
2691
- return [r, U((e) => {
2693
+ let [r, i] = V(() => typeof t == "function" ? t() : t);
2694
+ return [r, G((e) => {
2692
2695
  i((t) => {
2693
2696
  let r = n.current[t.kind]?.[e.type];
2694
2697
  return r ? r(t, e) : t;
@@ -2697,9 +2700,9 @@ function Ur(e, t) {
2697
2700
  }
2698
2701
  //#endregion
2699
2702
  //#region src/lib/mentions.ts
2700
- var Wr = /@\[([^\]\n]+)\]\(([^)\s]+)\)/g;
2701
- function Gr(e) {
2702
- let t = [], n = 0, r = new RegExp(Wr.source, "g");
2703
+ var Ur = /@\[([^\]\n]+)\]\(([^)\s]+)\)/g;
2704
+ function Wr(e) {
2705
+ let t = [], n = 0, r = new RegExp(Ur.source, "g");
2703
2706
  for (let i = r.exec(e); i !== null; i = r.exec(e)) i.index > n && t.push({
2704
2707
  type: "text",
2705
2708
  value: e.slice(n, i.index)
@@ -2713,15 +2716,15 @@ function Gr(e) {
2713
2716
  value: e.slice(n)
2714
2717
  }), t;
2715
2718
  }
2716
- function Kr(e) {
2717
- let t = /* @__PURE__ */ new Set(), n = [], r = new RegExp(Wr.source, "g");
2719
+ function Gr(e) {
2720
+ let t = /* @__PURE__ */ new Set(), n = [], r = new RegExp(Ur.source, "g");
2718
2721
  for (let i = r.exec(e); i !== null; i = r.exec(e)) {
2719
2722
  let e = i[2];
2720
2723
  e && !t.has(e) && (t.add(e), n.push(e));
2721
2724
  }
2722
2725
  return n;
2723
2726
  }
2724
- function qr(e, t) {
2727
+ function Kr(e, t) {
2725
2728
  for (let n = t - 1; n >= 0; n--) {
2726
2729
  let r = e[n];
2727
2730
  if (r === "@") {
@@ -2738,14 +2741,14 @@ function qr(e, t) {
2738
2741
  }
2739
2742
  return null;
2740
2743
  }
2741
- function Jr(e) {
2744
+ function qr(e) {
2742
2745
  if (!e.userId || /[)\s]/.test(e.userId)) return null;
2743
2746
  let t = e.name.replace(/[\]\r\n]+/g, " ").trim();
2744
2747
  return t ? `@[${t}](${e.userId})` : null;
2745
2748
  }
2746
2749
  //#endregion
2747
2750
  //#region src/lib/use-async-action.ts
2748
- var Yr = Hr({
2751
+ var Jr = Vr({
2749
2752
  idle: { start: () => ({ kind: "pending" }) },
2750
2753
  pending: {
2751
2754
  success: (e, t) => ({
@@ -2766,10 +2769,10 @@ var Yr = Hr({
2766
2769
  reset: () => ({ kind: "idle" })
2767
2770
  }
2768
2771
  });
2769
- function Xr() {
2770
- let [e, t] = Ur(Yr, { kind: "idle" }), n = e, r = H(n);
2772
+ function Yr() {
2773
+ let [e, t] = Hr(Jr, { kind: "idle" }), n = e, r = W(n);
2771
2774
  r.current = n;
2772
- let i = U(async (e, n) => {
2775
+ let i = G(async (e, n) => {
2773
2776
  if (r.current.kind !== "pending") {
2774
2777
  t({ type: "start" });
2775
2778
  try {
@@ -2787,7 +2790,7 @@ function Xr() {
2787
2790
  return;
2788
2791
  }
2789
2792
  }
2790
- }, [t]), a = U(() => t({ type: "reset" }), [t]);
2793
+ }, [t]), a = G(() => t({ type: "reset" }), [t]);
2791
2794
  return {
2792
2795
  state: n,
2793
2796
  isIdle: n.kind === "idle",
@@ -2802,7 +2805,7 @@ function Xr() {
2802
2805
  }
2803
2806
  //#endregion
2804
2807
  //#region src/lib/use-presence.ts
2805
- function Zr(e, t, n, r) {
2808
+ function Xr(e, t, n, r) {
2806
2809
  let i = new Map(t.map((e) => [e.key, e.value])), a = e.map((e) => {
2807
2810
  if (!i.has(e.key)) return e.isLeaving ? e : {
2808
2811
  ...e,
@@ -2828,18 +2831,18 @@ function Zr(e, t, n, r) {
2828
2831
  leavingAt: null
2829
2832
  }))];
2830
2833
  }
2831
- var Qr;
2832
- function $r() {
2833
- return Qr === void 0 && (Qr = window.matchMedia?.("(prefers-reduced-motion: reduce)") ?? null), Qr?.matches ?? !1;
2834
+ var Zr;
2835
+ function Qr() {
2836
+ return Zr === void 0 && (Zr = window.matchMedia?.("(prefers-reduced-motion: reduce)") ?? null), Zr?.matches ?? !1;
2834
2837
  }
2835
- function ei(e, t, n) {
2836
- let r = H([]), i = H(/* @__PURE__ */ new Map()), [, a] = z(0), o = $r() ? 0 : n;
2837
- r.current = Zr(r.current, e.map((e) => ({
2838
+ function $r(e, t, n) {
2839
+ let r = W([]), i = W(/* @__PURE__ */ new Map()), [, a] = V(0), o = Qr() ? 0 : n;
2840
+ r.current = Xr(r.current, e.map((e) => ({
2838
2841
  key: t(e),
2839
2842
  value: e
2840
2843
  })), Date.now(), o);
2841
2844
  let s = r.current, c = s.filter((e) => e.isLeaving).map((e) => e.key);
2842
- return B(() => {
2845
+ return H(() => {
2843
2846
  let e = i.current;
2844
2847
  for (let [t, n] of e) c.includes(t) || (window.clearTimeout(n), e.delete(t));
2845
2848
  for (let t of c) {
@@ -2849,7 +2852,7 @@ function ei(e, t, n) {
2849
2852
  }, o);
2850
2853
  e.set(t, n);
2851
2854
  }
2852
- }, [c.join("|"), o]), B(() => {
2855
+ }, [c.join("|"), o]), H(() => {
2853
2856
  let e = i.current;
2854
2857
  return () => {
2855
2858
  for (let t of e.values()) window.clearTimeout(t);
@@ -2857,11 +2860,11 @@ function ei(e, t, n) {
2857
2860
  };
2858
2861
  }, []), s;
2859
2862
  }
2860
- function ti(e, t) {
2861
- let n = H(null), r = H(null), [, i] = z(0), a = $r() ? 0 : t;
2863
+ function ei(e, t) {
2864
+ let n = W(null), r = W(null), [, i] = V(0), a = Qr() ? 0 : t;
2862
2865
  e != null && (n.current = e);
2863
2866
  let o = e ?? n.current, s = e == null && o != null;
2864
- return B(() => {
2867
+ return H(() => {
2865
2868
  if (!s) {
2866
2869
  r.current != null && (window.clearTimeout(r.current), r.current = null);
2867
2870
  return;
@@ -2869,14 +2872,14 @@ function ti(e, t) {
2869
2872
  r.current ??= window.setTimeout(() => {
2870
2873
  r.current = null, n.current = null, i((e) => e + 1);
2871
2874
  }, a);
2872
- }, [s, a]), B(() => () => {
2875
+ }, [s, a]), H(() => () => {
2873
2876
  r.current != null && window.clearTimeout(r.current);
2874
2877
  }, []), o == null ? null : {
2875
2878
  value: o,
2876
2879
  isLeaving: s
2877
2880
  };
2878
2881
  }
2879
- var ni = /* @__PURE__ */ new Set([
2882
+ var ti = /* @__PURE__ */ new Set([
2880
2883
  "body",
2881
2884
  "main",
2882
2885
  "nav",
@@ -2887,60 +2890,60 @@ var ni = /* @__PURE__ */ new Set([
2887
2890
  "table",
2888
2891
  "dialog",
2889
2892
  "article"
2890
- ]), ri = [
2893
+ ]), ni = [
2891
2894
  "data-testid",
2892
2895
  "data-test-id",
2893
2896
  "data-test",
2894
2897
  "data-cy",
2895
2898
  "data-qa"
2896
- ], ii = [
2899
+ ], ri = [
2897
2900
  "name",
2898
2901
  "href",
2899
2902
  "alt"
2900
2903
  ];
2901
- function ai(e) {
2904
+ function ii(e) {
2902
2905
  return !/^[A-Za-z][\w-]{1,63}$/.test(e) || /\d{2,}|\d[a-z]/i.test(e) ? !1 : !/^(radix|base-ui|headlessui|mui|react-aria|chakra|mantine|ember|ng|v-)/i.test(e);
2903
2906
  }
2904
- function oi(e) {
2907
+ function ai(e) {
2905
2908
  return e.length > 0 && e.length <= 80 && !/\d{3,}/.test(e);
2906
2909
  }
2907
- function si(e, t) {
2910
+ function oi(e, t) {
2908
2911
  for (let n of t) {
2909
2912
  let t = e.getAttribute(n);
2910
- if (t != null && oi(t)) return `${li(e)}[${n}="${gi(t)}"]`;
2913
+ if (t != null && ai(t)) return `${ci(e)}[${n}="${hi(t)}"]`;
2911
2914
  }
2912
2915
  return null;
2913
2916
  }
2914
- var ci = "http://www.w3.org/1999/xhtml";
2915
- function li(e) {
2916
- return e.namespaceURI == null || e.namespaceURI === ci ? e.tagName.toLowerCase() : e.tagName;
2917
+ var si = "http://www.w3.org/1999/xhtml";
2918
+ function ci(e) {
2919
+ return e.namespaceURI == null || e.namespaceURI === si ? e.tagName.toLowerCase() : e.tagName;
2917
2920
  }
2918
- function ui(e) {
2921
+ function li(e) {
2919
2922
  let t = 1;
2920
2923
  for (let n = e.previousElementSibling; n; n = n.previousElementSibling) n.tagName === e.tagName && t++;
2921
2924
  return t;
2922
2925
  }
2926
+ function ui(e) {
2927
+ let t = ci(e);
2928
+ return t === "body" || t === "html" ? t : e.id && ii(e.id) ? `#${hi(e.id)}` : oi(e, ni) ?? oi(e, ri) ?? `${t}:nth-of-type(${li(e)})`;
2929
+ }
2923
2930
  function di(e) {
2924
- let t = li(e);
2925
- return t === "body" || t === "html" ? t : e.id && ai(e.id) ? `#${gi(e.id)}` : si(e, ri) ?? si(e, ii) ?? `${t}:nth-of-type(${ui(e)})`;
2931
+ return ti.has(e.tagName.toLowerCase()) || oi(e, ni) != null;
2926
2932
  }
2927
2933
  function fi(e) {
2928
- return ni.has(e.tagName.toLowerCase()) || si(e, ri) != null;
2929
- }
2930
- function pi(e) {
2931
2934
  let t = [], n = e;
2932
2935
  for (; n;) {
2933
- t.unshift(di(n));
2934
- let r = n.tagName.toLowerCase(), i = n.id !== "" && ai(n.id);
2935
- if (r === "html" || i || n !== e && fi(n)) break;
2936
+ t.unshift(ui(n));
2937
+ let r = n.tagName.toLowerCase(), i = n.id !== "" && ii(n.id);
2938
+ if (r === "html" || i || n !== e && di(n)) break;
2936
2939
  n = n.parentElement;
2937
2940
  }
2938
2941
  let r = t.join(" > ");
2939
2942
  return r.length <= 1024 ? r : void 0;
2940
2943
  }
2941
- var mi = 3;
2942
- function hi(e, t, n, { canRelax: r = !0 } = {}) {
2943
- let i = e.split(" > "), a = r ? Math.min(mi, Math.max(0, i.length - 2)) : 0;
2944
+ var pi = 3;
2945
+ function mi(e, t, n, { canRelax: r = !0 } = {}) {
2946
+ let i = e.split(" > "), a = r ? Math.min(pi, Math.max(0, i.length - 2)) : 0;
2944
2947
  for (let e = 0; e <= a; e++) {
2945
2948
  let r = i.slice(e).join(" > "), a;
2946
2949
  try {
@@ -2954,13 +2957,13 @@ function hi(e, t, n, { canRelax: r = !0 } = {}) {
2954
2957
  }
2955
2958
  return null;
2956
2959
  }
2957
- function gi(e) {
2960
+ function hi(e) {
2958
2961
  return typeof CSS < "u" && typeof CSS.escape == "function" ? CSS.escape(e) : e.replace(/["\\]/g, "\\$&");
2959
2962
  }
2960
2963
  //#endregion
2961
2964
  //#region src/runtime/anchor.ts
2962
- function _i(e, t) {
2963
- let n = document.documentElement, r = Math.max(n.scrollWidth, n.clientWidth), i = Math.max(n.scrollHeight, n.clientHeight), a = e.clientX + window.scrollX, o = e.clientY + window.scrollY, s = t === void 0 ? e.target instanceof Element ? e.target : null : t, c = s ? Ai(s) : void 0, l = s ? xi(s) : void 0, u, d;
2965
+ function gi(e, t) {
2966
+ let n = document.documentElement, r = Math.max(n.scrollWidth, n.clientWidth), i = Math.max(n.scrollHeight, n.clientHeight), a = e.clientX + window.scrollX, o = e.clientY + window.scrollY, s = t === void 0 ? e.target instanceof Element ? e.target : null : t, c = s ? Ai(s) : void 0, l = s ? bi(s) : void 0, u, d;
2964
2967
  if (s) {
2965
2968
  let t = s.getBoundingClientRect();
2966
2969
  t.width > 0 && t.height > 0 && (u = Math.max(0, Math.min(1, (e.clientX - t.left) / t.width)), d = Math.max(0, Math.min(1, (e.clientY - t.top) / t.height)));
@@ -2976,9 +2979,9 @@ function _i(e, t) {
2976
2979
  anchorOffsetY: d
2977
2980
  };
2978
2981
  }
2979
- function vi(e) {
2982
+ function _i(e) {
2980
2983
  if (e.anchorSelector) {
2981
- let t = hi(e.anchorSelector, document, (t) => yi(t, e.anchorText), { canRelax: e.anchorText !== void 0 });
2984
+ let t = mi(e.anchorSelector, document, (t) => vi(t, e.anchorText), { canRelax: e.anchorText !== void 0 });
2982
2985
  if (t) {
2983
2986
  let n = t.getBoundingClientRect();
2984
2987
  return {
@@ -2997,12 +3000,12 @@ function vi(e) {
2997
3000
  element: null
2998
3001
  };
2999
3002
  }
3000
- function yi(e, t) {
3001
- return ki(e.getBoundingClientRect()) ? t === void 0 || xi(e) === t : !1;
3003
+ function vi(e, t) {
3004
+ return ki(e.getBoundingClientRect()) ? t === void 0 || bi(e) === t : !1;
3002
3005
  }
3003
- var bi = 120;
3004
- function xi(e) {
3005
- let t = wi(Ci(e));
3006
+ var yi = 120;
3007
+ function bi(e) {
3008
+ let t = Ci(Si(e));
3006
3009
  if (t) return t;
3007
3010
  for (let t of [
3008
3011
  "aria-label",
@@ -3011,52 +3014,70 @@ function xi(e) {
3011
3014
  "title",
3012
3015
  "name"
3013
3016
  ]) {
3014
- let n = wi(e.getAttribute(t) ?? "");
3017
+ let n = Ci(e.getAttribute(t) ?? "");
3015
3018
  if (n) return n;
3016
3019
  }
3017
3020
  }
3018
- var Si = 480;
3019
- function Ci(e) {
3020
- if (typeof document > "u" || typeof document.createTreeWalker != "function") return (e.textContent ?? "").slice(0, Si);
3021
+ var xi = 480;
3022
+ function Si(e) {
3023
+ if (typeof document > "u" || typeof document.createTreeWalker != "function") return (e.textContent ?? "").slice(0, xi);
3021
3024
  let t = document.createTreeWalker(e, NodeFilter.SHOW_TEXT), n = "";
3022
- for (let e = t.nextNode(); e && n.length < Si; e = t.nextNode()) n += e.nodeValue ?? "";
3023
- return n.slice(0, Si);
3024
- }
3025
- function wi(e) {
3026
- return e.replace(/\d+/g, "").replace(/\s+/g, " ").trim().toLowerCase().slice(0, bi);
3025
+ for (let e = t.nextNode(); e && n.length < xi; e = t.nextNode()) n += e.nodeValue ?? "";
3026
+ return n.slice(0, xi);
3027
3027
  }
3028
- function Ti(e, t) {
3029
- let n = window.innerWidth, r = t && t.viewportW === n ? t : void 0, i = r?.element ? Ei(e, r.element) ?? vi(e) : vi(e);
3030
- if (i.resolved && i.element) {
3031
- let e = i.element.getBoundingClientRect(), t = {
3028
+ function Ci(e) {
3029
+ return e.replace(/\d+/g, "").replace(/\s+/g, " ").trim().toLowerCase().slice(0, yi);
3030
+ }
3031
+ var wi = 500;
3032
+ function Ti(e, t, n) {
3033
+ let r = window.innerWidth, i = t && t.viewportW === r ? t : void 0, a = i?.element ? Ei(e, i.element) : null, o = i?.missedAt;
3034
+ if (!a && i != null && i.missedAtDomVersion === n && o != null && Date.now() - o < wi) return {
3035
+ point: Di(i),
3036
+ memory: i
3037
+ };
3038
+ let s = a ?? _i(e);
3039
+ if (s.resolved && s.element) {
3040
+ let e = s.element.getBoundingClientRect(), t = {
3032
3041
  width: e.width,
3033
3042
  height: e.height
3034
3043
  };
3035
- return r && r.element !== i.element && Oi(i, t, r) ? {
3036
- point: Di(r),
3037
- memory: r
3044
+ return i && i.element !== s.element && Oi(s, t, i) ? {
3045
+ point: Di(i),
3046
+ memory: {
3047
+ ...i,
3048
+ missedAtDomVersion: n,
3049
+ missedAt: Date.now()
3050
+ }
3038
3051
  } : {
3039
- point: i,
3052
+ point: s,
3040
3053
  memory: {
3041
- pageX: i.pageX,
3042
- pageY: i.pageY,
3054
+ pageX: s.pageX,
3055
+ pageY: s.pageY,
3043
3056
  size: t,
3044
- element: i.element,
3045
- viewportW: n
3057
+ element: s.element,
3058
+ viewportW: r,
3059
+ missedAtDomVersion: null,
3060
+ missedAt: null
3046
3061
  }
3047
3062
  };
3048
3063
  }
3049
- return r ? {
3050
- point: Di(r),
3051
- memory: r
3064
+ return i ? {
3065
+ point: Di(i),
3066
+ memory: {
3067
+ ...i,
3068
+ missedAtDomVersion: n,
3069
+ missedAt: Date.now()
3070
+ }
3052
3071
  } : {
3053
- point: i,
3072
+ point: s,
3054
3073
  memory: {
3055
- pageX: i.pageX,
3056
- pageY: i.pageY,
3074
+ pageX: s.pageX,
3075
+ pageY: s.pageY,
3057
3076
  size: null,
3058
3077
  element: null,
3059
- viewportW: n
3078
+ viewportW: r,
3079
+ missedAtDomVersion: n,
3080
+ missedAt: Date.now()
3060
3081
  }
3061
3082
  };
3062
3083
  }
@@ -3088,7 +3109,7 @@ function ki(e) {
3088
3109
  }
3089
3110
  function Ai(e) {
3090
3111
  try {
3091
- return pi(e);
3112
+ return fi(e);
3092
3113
  } catch {
3093
3114
  return;
3094
3115
  }
@@ -3348,7 +3369,7 @@ async function Hi(e, t) {
3348
3369
  return i;
3349
3370
  } catch (e) {
3350
3371
  let t = e?.name;
3351
- return t !== "TypeError" && t !== "TimeoutError" && I(e, { context: "cookie-probe" }), !1;
3372
+ return t !== "TypeError" && t !== "TimeoutError" && L(e, { context: "cookie-probe" }), !1;
3352
3373
  }
3353
3374
  }
3354
3375
  //#endregion
@@ -3359,7 +3380,7 @@ function Gi(e) {
3359
3380
  try {
3360
3381
  e();
3361
3382
  } catch (e) {
3362
- I(e, { context: "history-observer-listener" });
3383
+ L(e, { context: "history-observer-listener" });
3363
3384
  }
3364
3385
  });
3365
3386
  }
@@ -3549,7 +3570,7 @@ function oa(e) {
3549
3570
  }
3550
3571
  //#endregion
3551
3572
  //#region src/runtime/inbox.ts
3552
- var sa = Hr({
3573
+ var sa = Vr({
3553
3574
  idle: { fetch: () => ({ kind: "loading" }) },
3554
3575
  loading: {
3555
3576
  loaded: (e, t) => ({
@@ -3607,7 +3628,7 @@ async function fa(e) {
3607
3628
  s = await o();
3608
3629
  } catch (e) {
3609
3630
  let t = e?.name;
3610
- return t !== "TypeError" && t !== "TimeoutError" && I(e, { context: "popup-exchange" }), Promise.reject(e instanceof Error ? e : /* @__PURE__ */ Error("Failed to start popup exchange"));
3631
+ return t !== "TypeError" && t !== "TimeoutError" && L(e, { context: "popup-exchange" }), Promise.reject(e instanceof Error ? e : /* @__PURE__ */ Error("Failed to start popup exchange"));
3611
3632
  }
3612
3633
  let c = Math.max(0, window.screenX + (window.outerWidth - 420) / 2), l = Math.max(0, window.screenY + (window.outerHeight - 560) / 2), u = window.open(s, "markup-auth", `width=420,height=560,left=${c},top=${l}`);
3613
3634
  if (!u) return Promise.reject(/* @__PURE__ */ Error("Popup blocked. Allow popups for this site to sign in"));
@@ -3628,7 +3649,7 @@ async function fa(e) {
3628
3649
  r = !0, o().then((e) => {
3629
3650
  u.closed || (u.location.href = e);
3630
3651
  }).catch((e) => {
3631
- a(), I(e, { context: "popup-exchange-remint" }), t(e instanceof Error ? e : /* @__PURE__ */ Error("Failed to restart sign-in"));
3652
+ a(), L(e, { context: "popup-exchange-remint" }), t(e instanceof Error ? e : /* @__PURE__ */ Error("Failed to restart sign-in"));
3632
3653
  }).finally(() => {
3633
3654
  r = !1;
3634
3655
  });
@@ -3677,7 +3698,7 @@ async function fa(e) {
3677
3698
  });
3678
3699
  if (!e.ok) {
3679
3700
  let t = /* @__PURE__ */ Error(`Failed to install widget cookies (${e.status})`);
3680
- throw I(t, { context: "install-cookies" }), t;
3701
+ throw L(t, { context: "install-cookies" }), t;
3681
3702
  }
3682
3703
  return {
3683
3704
  ...d,
@@ -4028,7 +4049,7 @@ async function To(e, t) {
4028
4049
  }
4029
4050
  async function Eo(e, t) {
4030
4051
  let n = X(e, HTMLImageElement);
4031
- if (!(n && !Ya(e.src)) && !(X(e, SVGImageElement) && !Ya(e.href.baseVal))) return;
4052
+ if ((!n || Ya(e.src)) && (!X(e, SVGImageElement) || Ya(e.href.baseVal))) return;
4032
4053
  let r = n ? e.src : e.href.baseVal, i = await eo(r, qa(r), t);
4033
4054
  await new Promise((r, a) => {
4034
4055
  e.onload = r, e.onerror = t.onImageErrorHandler ? (...e) => {
@@ -4209,7 +4230,7 @@ function Jo(e) {
4209
4230
  let t = new DOMParser().parseFromString(await e.text(), "image/svg+xml");
4210
4231
  if (t.querySelector("parsererror")) throw Error("sprite is not parseable SVG");
4211
4232
  return t;
4212
- }).catch((t) => (I(/* @__PURE__ */ Error(`Screenshot sprite ${e} unreadable: ${String(t)}`), { context: "screenshot-sprite" }), null));
4233
+ }).catch((t) => (L(/* @__PURE__ */ Error(`Screenshot sprite ${e} unreadable: ${String(t)}`), { context: "screenshot-sprite" }), null));
4213
4234
  return qo.set(e, n), n;
4214
4235
  }
4215
4236
  function Yo(e, t) {
@@ -4305,7 +4326,7 @@ function is(e) {
4305
4326
  if (e.redactSelector) try {
4306
4327
  for (let t of document.querySelectorAll(e.redactSelector)) rs(t) || r(t);
4307
4328
  } catch (e) {
4308
- I(e, { context: "screenshot-redact-selector" });
4329
+ L(e, { context: "screenshot-redact-selector" });
4309
4330
  }
4310
4331
  if (e.strictScrub) for (let e of document.querySelectorAll("input,select,textarea")) rs(e) || r(e);
4311
4332
  return n;
@@ -4356,7 +4377,7 @@ async function ss(e, t, n) {
4356
4377
  redactedSelectors: c
4357
4378
  } : null;
4358
4379
  } catch (e) {
4359
- return I(e, { context: "screenshot-capture" }), null;
4380
+ return L(e, { context: "screenshot-capture" }), null;
4360
4381
  }
4361
4382
  }
4362
4383
  function cs(e, t) {
@@ -4379,7 +4400,7 @@ async function us(e) {
4379
4400
  t = t == null ? a.size : Math.min(t, a.size);
4380
4401
  }
4381
4402
  }
4382
- return I(/* @__PURE__ */ Error(t == null ? "Screenshot encode produced no blob at any quality/scale" : `Screenshot still ${t} bytes at the end of the encode ladder (cap ${Qo})`), { context: "screenshot-encode" }), null;
4403
+ return L(/* @__PURE__ */ Error(t == null ? "Screenshot encode produced no blob at any quality/scale" : `Screenshot still ${t} bytes at the end of the encode ladder (cap ${Qo})`), { context: "screenshot-encode" }), null;
4383
4404
  }
4384
4405
  function ds(e, t, n, r) {
4385
4406
  let i = r, a = 28 * i, o = a / 2, s = t * i, c = n * i;
@@ -4408,7 +4429,7 @@ function hs(e) {
4408
4429
  i = await e.mint();
4409
4430
  } catch (e) {
4410
4431
  if (t) return;
4411
- e?.name !== "TypeError" && I(e, { context: "subscription-token-refresh" }), n = setTimeout(r, ms);
4432
+ e?.name !== "TypeError" && L(e, { context: "subscription-token-refresh" }), n = setTimeout(r, ms);
4412
4433
  return;
4413
4434
  }
4414
4435
  if (t) return;
@@ -4417,7 +4438,7 @@ function hs(e) {
4417
4438
  try {
4418
4439
  e.onIssued(i);
4419
4440
  } catch (e) {
4420
- I(e, { context: "subscription-token-issued" });
4441
+ L(e, { context: "subscription-token-issued" });
4421
4442
  }
4422
4443
  }
4423
4444
  return r(), () => {
@@ -4426,7 +4447,7 @@ function hs(e) {
4426
4447
  }
4427
4448
  //#endregion
4428
4449
  //#region src/runtime/use-subscription-token.ts
4429
- var gs = Hr({
4450
+ var gs = Vr({
4430
4451
  idle: { issued: (e, t) => ({
4431
4452
  kind: "active",
4432
4453
  token: t.token,
@@ -4450,8 +4471,8 @@ function bs(e, t) {
4450
4471
  return e.kind === "active" && e.mintedAs === t;
4451
4472
  }
4452
4473
  function xs(e, t) {
4453
- let [n, r] = Ur(gs, { kind: "idle" }), i = ys(t);
4454
- return B(() => hs({
4474
+ let [n, r] = Hr(gs, { kind: "idle" }), i = ys(t);
4475
+ return H(() => hs({
4455
4476
  mint: () => e.getSubscriptionToken(),
4456
4477
  onIssued: (e) => r({
4457
4478
  type: "issued",
@@ -4501,7 +4522,7 @@ async function Ss(e) {
4501
4522
  };
4502
4523
  } catch (e) {
4503
4524
  let t = e?.name;
4504
- return t !== "AbortError" && t !== "TypeError" && t !== "TimeoutError" && I(e, { context: "refresh-token" }), null;
4525
+ return t !== "AbortError" && t !== "TypeError" && t !== "TimeoutError" && L(e, { context: "refresh-token" }), null;
4505
4526
  }
4506
4527
  }
4507
4528
  //#endregion
@@ -4509,7 +4530,7 @@ async function Ss(e) {
4509
4530
  var Cs = 6e4, ws = 500;
4510
4531
  function Ts(e, t, n, r, i) {
4511
4532
  let a = e.kind === "verified", o = a ? e.identity.storage : void 0, s = a ? e.identity.refreshToken : void 0, c = a ? e.identity.refreshTokenExpiresAt : void 0, l = a ? e.identity.tokenExpiresAt : void 0;
4512
- B(() => {
4533
+ H(() => {
4513
4534
  if (!a || c == null || l == null || o === "localStorage" && s == null || o !== "cookies" && o !== "localStorage") return;
4514
4535
  let u = Date.now();
4515
4536
  if (c <= u) {
@@ -4570,7 +4591,7 @@ function Es() {
4570
4591
  };
4571
4592
  }
4572
4593
  //#endregion
4573
- //#region ../../node_modules/.pnpm/preact@10.29.7/node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js
4594
+ //#region ../../node_modules/.pnpm/preact@10.29.8/node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js
4574
4595
  var Ds = 0;
4575
4596
  Array.isArray;
4576
4597
  function Q(e, n, r, i, a, o) {
@@ -4852,8 +4873,8 @@ var Qs = {
4852
4873
  //#endregion
4853
4874
  //#region src/runtime/ui/identity-menu.tsx
4854
4875
  function $s({ identity: e, position: t, isSigningIn: n, isSigningOut: r, dashboardUrl: i, commentAccess: a = "anyone", onSignIn: o, onSignOut: s, onForgetMe: c }) {
4855
- let [l, u] = z(!1), d = ti(l || null, 140), f = d?.isLeaving ?? !1, [p, m] = z(!1), [h, g] = z(!1), _ = H(null);
4856
- B(() => {
4876
+ let [l, u] = V(!1), d = ei(l || null, 140), f = d?.isLeaving ?? !1, [p, m] = V(!1), [h, g] = V(!1), _ = W(null);
4877
+ H(() => {
4857
4878
  if (!l) return;
4858
4879
  function e(e) {
4859
4880
  let t = _.current;
@@ -4867,10 +4888,10 @@ function $s({ identity: e, position: t, isSigningIn: n, isSigningOut: r, dashboa
4867
4888
  };
4868
4889
  }, [l]);
4869
4890
  let v = d != null;
4870
- B(() => {
4891
+ H(() => {
4871
4892
  v || (m(!1), g(!1));
4872
4893
  }, [v]);
4873
- let y = aa(e), b = ec(y), x = e.kind === "verified", C = e.kind === "verified" ? e.identity.image : void 0, [w, T] = z(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";
4894
+ let y = aa(e), b = ec(y), x = e.kind === "verified", C = e.kind === "verified" ? e.identity.image : void 0, [w, T] = V(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";
4874
4895
  return /* @__PURE__ */ Q("div", {
4875
4896
  ref: _,
4876
4897
  style: {
@@ -4997,11 +5018,13 @@ function ec(e) {
4997
5018
  //#endregion
4998
5019
  //#region src/runtime/use-drag.ts
4999
5020
  function tc(e) {
5000
- let t = H(e);
5001
- t.current = e;
5002
- let [n, r] = z(!1);
5021
+ let t = W(e);
5022
+ U(() => {
5023
+ t.current = e;
5024
+ });
5025
+ let [n, r] = V(!1);
5003
5026
  return {
5004
- onPointerDown: U((e) => {
5027
+ onPointerDown: G((e) => {
5005
5028
  let n = t.current;
5006
5029
  if (n.preventDefault && e.preventDefault(), n.stopPropagation && e.stopPropagation(), e.button !== 0 || n.shouldStart && !n.shouldStart(e)) return;
5007
5030
  let i = e.currentTarget;
@@ -5054,7 +5077,7 @@ var rc = [
5054
5077
  "[tabindex]:not([tabindex=\"-1\"])"
5055
5078
  ].join(",");
5056
5079
  function ic(e, t) {
5057
- B(() => {
5080
+ H(() => {
5058
5081
  if (!t) return;
5059
5082
  let n = e.current;
5060
5083
  if (!n) return;
@@ -5071,8 +5094,8 @@ function ic(e, t) {
5071
5094
  //#endregion
5072
5095
  //#region src/runtime/use-object-url.ts
5073
5096
  function ac(e) {
5074
- let [t, n] = z(null);
5075
- return B(() => {
5097
+ let [t, n] = V(null);
5098
+ return H(() => {
5076
5099
  if (!e) {
5077
5100
  n(null);
5078
5101
  return;
@@ -5084,8 +5107,8 @@ function ac(e) {
5084
5107
  //#endregion
5085
5108
  //#region src/runtime/ui/author-prompt.tsx
5086
5109
  function oc({ mode: e = "guest-or-sign-in", isPending: t, isConnecting: n = !1, isSigningIn: r = !1, onSubmit: i, onCancel: a, onSignIn: o, onSignOut: s }) {
5087
- let [c, l] = z(""), [u, d] = z(""), f = H(null);
5088
- B(() => {
5110
+ let [c, l] = V(""), [u, d] = V(""), f = W(null);
5111
+ H(() => {
5089
5112
  f.current?.focus();
5090
5113
  }, []);
5091
5114
  function p(e) {
@@ -5238,7 +5261,7 @@ function fc(e) {
5238
5261
  let s = o, c = s.getAttribute(sc);
5239
5262
  if (c) {
5240
5263
  let e = pc(s);
5241
- t += Jr({
5264
+ t += qr({
5242
5265
  userId: c,
5243
5266
  name: e
5244
5267
  }) ?? `@${e}`;
@@ -5262,7 +5285,7 @@ function mc(e, t, n) {
5262
5285
  }
5263
5286
  function hc(e, t, n) {
5264
5287
  let r = e.createDocumentFragment();
5265
- for (let i of Gr(t)) {
5288
+ for (let i of Wr(t)) {
5266
5289
  if (i.type === "text") {
5267
5290
  i.value && r.appendChild(e.createTextNode(i.value));
5268
5291
  continue;
@@ -5312,14 +5335,14 @@ function bc(e, t, n) {
5312
5335
  i.setStart(t, n), i.collapse(!0), r.removeAllRanges(), r.addRange(i);
5313
5336
  }
5314
5337
  function xc(e) {
5315
- let t = qr(e.node.data, e.offset);
5338
+ let t = Kr(e.node.data, e.offset);
5316
5339
  return t ? {
5317
5340
  ...t,
5318
5341
  textNode: e.node
5319
5342
  } : null;
5320
5343
  }
5321
5344
  function Sc(e, t, n, r) {
5322
- if (Jr(n) == null) return !1;
5345
+ if (qr(n) == null) return !1;
5323
5346
  let i = t.textNode;
5324
5347
  if (!e.contains(i)) return !1;
5325
5348
  let a = i.parentNode;
@@ -5483,10 +5506,10 @@ function Nc(e) {
5483
5506
  //#endregion
5484
5507
  //#region src/runtime/ui/mentions.tsx
5485
5508
  function Pc({ body: e, mentions: t, trailing: n }) {
5486
- let r = it(() => new Set(t), [t]);
5509
+ let r = nt(() => new Set(t), [t]);
5487
5510
  return /* @__PURE__ */ Q("p", {
5488
5511
  class: "markup-comment-body",
5489
- children: [it(() => Gr(e), [e]).map((e, t) => e.type === "mention" ? r.has(e.userId) ? /* @__PURE__ */ Q("span", {
5512
+ children: [nt(() => Wr(e), [e]).map((e, t) => e.type === "mention" ? r.has(e.userId) ? /* @__PURE__ */ Q("span", {
5490
5513
  class: "markup-mention-chip",
5491
5514
  children: ["@", e.name]
5492
5515
  }, t) : /* @__PURE__ */ Q("span", { children: ["@", e.name] }, t) : Nc(e.value).map((e, n) => e.type === "link" ? /* @__PURE__ */ Q("a", {
@@ -5499,12 +5522,12 @@ function Pc({ body: e, mentions: t, trailing: n }) {
5499
5522
  });
5500
5523
  }
5501
5524
  function Fc(e) {
5502
- let { members: t, trigger: n, onSelect: r, onClose: i } = e, [a, o] = z(0), s = it(() => {
5525
+ let { members: t, trigger: n, onSelect: r, onClose: i } = e, [a, o] = V(0), s = nt(() => {
5503
5526
  if (!n) return [];
5504
5527
  let e = n.query.toLowerCase();
5505
5528
  return t.filter((t) => t.name.toLowerCase().includes(e)).slice(0, 6);
5506
5529
  }, [n, t]);
5507
- B(() => {
5530
+ H(() => {
5508
5531
  o((e) => e >= s.length ? 0 : e);
5509
5532
  }, [s]);
5510
5533
  function c(e) {
@@ -5527,8 +5550,8 @@ function Fc(e) {
5527
5550
  };
5528
5551
  }
5529
5552
  function Ic({ items: e, highlight: t, setHighlight: n, onSelect: r, anchor: i }) {
5530
- let a = H(null);
5531
- return V(() => {
5553
+ let a = W(null);
5554
+ return U(() => {
5532
5555
  let e = null;
5533
5556
  function t() {
5534
5557
  i.current && a.current && zc(i.current, a.current);
@@ -5583,12 +5606,12 @@ function zc(e, t) {
5583
5606
  //#endregion
5584
5607
  //#region src/runtime/ui/mention-input.tsx
5585
5608
  function Bc({ value: e, onChange: t, onKeyDown: n, members: r, label: i, placeholder: a, disabled: o = !1, autoFocus: s = !1, class: c, handle: l }) {
5586
- let u = H(null), d = H(null), [f, p] = z(null), m = H(t);
5587
- m.current = t;
5588
- let h = H(r);
5589
- h.current = r;
5590
- let g = H(e);
5591
- V(() => {
5609
+ let u = W(null), d = W(null), [f, p] = V(null), m = W(t), h = W(r);
5610
+ U(() => {
5611
+ m.current = t, h.current = r;
5612
+ });
5613
+ let g = W(e);
5614
+ U(() => {
5592
5615
  let e = u.current;
5593
5616
  if (!e) return;
5594
5617
  let t = wc(e, {
@@ -5601,13 +5624,13 @@ function Bc({ value: e, onChange: t, onKeyDown: n, members: r, label: i, placeho
5601
5624
  return d.current = t, () => {
5602
5625
  t.destroy(), d.current = null;
5603
5626
  };
5604
- }, []), V(() => {
5627
+ }, []), U(() => {
5605
5628
  if (l) return l.current = { focus: () => d.current?.focus() }, () => {
5606
5629
  l.current = null;
5607
5630
  };
5608
- }, [l]), V(() => {
5631
+ }, [l]), U(() => {
5609
5632
  s && d.current?.focus();
5610
- }, [s]), V(() => {
5633
+ }, [s]), U(() => {
5611
5634
  let t = d.current;
5612
5635
  t && t.getValue() !== e && t.setValue(e);
5613
5636
  }, [e]);
@@ -5645,8 +5668,8 @@ function Bc({ value: e, onChange: t, onKeyDown: n, members: r, label: i, placeho
5645
5668
  //#region src/runtime/ui/composer.tsx
5646
5669
  var Vc = 4e3;
5647
5670
  function Hc({ label: e, placeholder: t = "Leave feedback…", submitLabel: n = "Post", initialFocus: r = !0, isPending: i, error: a, onSubmit: o, onDirtyChange: s, members: c }) {
5648
- let [l, u] = z(""), d = H(null), f = H(!1);
5649
- B(() => {
5671
+ let [l, u] = V(""), d = W(null), f = W(!1);
5672
+ H(() => {
5650
5673
  f.current && !i && !a && (u(""), s?.(!1), d.current?.focus()), f.current = i;
5651
5674
  }, [
5652
5675
  i,
@@ -5734,27 +5757,27 @@ function Hc({ label: e, placeholder: t = "Leave feedback…", submitLabel: n = "
5734
5757
  }
5735
5758
  //#endregion
5736
5759
  //#region src/runtime/ui/new-thread-popover.tsx
5737
- var Uc = "https://markup.pixelmatters.dev/docs/install#9-screenshots-privacy";
5738
- function Wc({ 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 = [], isLeaving: h = !1, onAuthor: g, onSignIn: _, onSignOut: v, onSubmit: y, onClose: b }) {
5739
- let x = H(null);
5760
+ var Uc = [], Wc = "https://markup.pixelmatters.dev/docs/install#9-screenshots-privacy";
5761
+ function Gc({ 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 = Uc, isLeaving: h = !1, onAuthor: g, onSignIn: _, onSignOut: v, onSubmit: y, onClose: b }) {
5762
+ let x = W(null);
5740
5763
  ic(x, !h);
5741
- let C = H(!1), w = H(!1), [T, E] = z(!1), D = ti(T || null, 120), O = U((e) => {
5764
+ let C = W(!1), w = W(!1), [T, E] = V(!1), D = ei(T || null, 120), O = G((e) => {
5742
5765
  w.current = e, E(e);
5743
- }, []), k = U(() => {
5766
+ }, []), k = G(() => {
5744
5767
  w.current || (C.current ? O(!0) : b());
5745
- }, [b, O]), A = U(() => {
5768
+ }, [b, O]), A = G(() => {
5746
5769
  O(!1), x.current?.querySelector(".markup-mention-input")?.focus();
5747
- }, [O]), [j, M] = z(!1), [ee, N] = z(!1), te = ac(l), ne = H(null), [P, F] = z(null), { onPointerDown: re, isDragging: ie } = tc({
5770
+ }, [O]), [j, ee] = V(!1), [M, te] = V(!1), N = ac(l), ne = W(null), [P, F] = V(null), { onPointerDown: re, isDragging: ie } = tc({
5748
5771
  targetRef: x,
5749
5772
  shouldStart: (e) => !e.target?.closest("button, a, input, textarea, select"),
5750
5773
  onMove: F
5751
5774
  });
5752
- V(() => {
5775
+ U(() => {
5753
5776
  let e = x.current;
5754
- if (!(!e || typeof e.showPopover != "function")) try {
5777
+ if (e && typeof e.showPopover == "function") try {
5755
5778
  h ? e.matches(":popover-open") && e.hidePopover() : e.matches(":popover-open") || e.showPopover();
5756
5779
  } catch {}
5757
- }, [h]), B(() => {
5780
+ }, [h]), H(() => {
5758
5781
  let e = x.current;
5759
5782
  if (!e || h) return;
5760
5783
  function t(t) {
@@ -5776,10 +5799,10 @@ function Wc({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified
5776
5799
  k,
5777
5800
  A,
5778
5801
  h
5779
- ]), B(() => {
5802
+ ]), H(() => {
5780
5803
  T && x.current?.querySelector(".markup-discard-confirm-keep")?.focus();
5781
5804
  }, [T]);
5782
- let ae = Gc(e - window.scrollX + 16, 12, window.innerWidth - 320 - 12), oe = Gc(t - window.scrollY - 16, 12, window.innerHeight - 220), se = typeof window < "u" ? window.location.href : "", ce = l != null, le = u || ce || d, ue = j && ce;
5805
+ let ae = Kc(e - window.scrollX + 16, 12, window.innerWidth - 320 - 12), oe = Kc(t - window.scrollY - 16, 12, window.innerHeight - 220), se = typeof window < "u" ? window.location.href : "", ce = l != null, le = u || ce || d, ue = j && ce;
5783
5806
  return /* @__PURE__ */ Q("div", {
5784
5807
  ref: x,
5785
5808
  class: Z("markup-popover", P && "is-floating", ie && "is-dragging", h && "is-leaving"),
@@ -5863,15 +5886,15 @@ function Wc({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified
5863
5886
  type: "checkbox",
5864
5887
  class: "markup-screenshot-checkbox",
5865
5888
  checked: j,
5866
- onChange: (e) => M(e.currentTarget.checked)
5889
+ onChange: (e) => ee(e.currentTarget.checked)
5867
5890
  }),
5868
5891
  /* @__PURE__ */ Q(Ps, { size: 12 }),
5869
5892
  /* @__PURE__ */ Q("span", { children: "Attach screenshot" })
5870
5893
  ]
5871
5894
  }),
5872
- ue && te ? /* @__PURE__ */ Q("a", {
5895
+ ue && N ? /* @__PURE__ */ Q("a", {
5873
5896
  class: "markup-screenshot-thumb-link",
5874
- href: te,
5897
+ href: N,
5875
5898
  target: "_blank",
5876
5899
  rel: "noopener",
5877
5900
  title: "Preview screenshot",
@@ -5881,19 +5904,19 @@ function Wc({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified
5881
5904
  },
5882
5905
  children: /* @__PURE__ */ Q("img", {
5883
5906
  class: "markup-screenshot-thumb",
5884
- src: te,
5907
+ src: N,
5885
5908
  alt: ""
5886
5909
  })
5887
5910
  }) : null,
5888
5911
  ue && f > 0 ? /* @__PURE__ */ Q("button", {
5889
5912
  type: "button",
5890
5913
  class: "markup-screenshot-redacted-chip",
5891
- "aria-expanded": ee,
5892
- onClick: () => N((e) => !e),
5914
+ "aria-expanded": M,
5915
+ onClick: () => te((e) => !e),
5893
5916
  children: [
5894
5917
  /* @__PURE__ */ Q("em", {
5895
5918
  class: "markup-screenshot-redacted-arrow",
5896
- children: ee ? "▾" : "▸"
5919
+ children: M ? "▾" : "▸"
5897
5920
  }),
5898
5921
  f,
5899
5922
  " ",
@@ -5903,7 +5926,7 @@ function Wc({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified
5903
5926
  ]
5904
5927
  }) : null
5905
5928
  ]
5906
- }), ue ? /* @__PURE__ */ Q(S, { children: [ee && f > 0 ? /* @__PURE__ */ Q("div", {
5929
+ }), ue ? /* @__PURE__ */ Q(S, { children: [M && f > 0 ? /* @__PURE__ */ Q("div", {
5907
5930
  class: "markup-screenshot-redacted-list",
5908
5931
  children: p.map((e) => /* @__PURE__ */ Q("code", {
5909
5932
  class: "markup-screenshot-redacted-selector",
@@ -5916,7 +5939,7 @@ function Wc({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified
5916
5939
  " ",
5917
5940
  /* @__PURE__ */ Q("a", {
5918
5941
  class: "markup-screenshot-help-link",
5919
- href: Uc,
5942
+ href: Wc,
5920
5943
  target: "_blank",
5921
5944
  rel: "noopener noreferrer",
5922
5945
  children: "More info here."
@@ -5935,7 +5958,7 @@ function Wc({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified
5935
5958
  onSignIn: _,
5936
5959
  onSignOut: v
5937
5960
  }),
5938
- ue && te ? /* @__PURE__ */ Q("dialog", {
5961
+ ue && N ? /* @__PURE__ */ Q("dialog", {
5939
5962
  ref: ne,
5940
5963
  class: "markup-lightbox",
5941
5964
  onClick: () => ne.current?.close(),
@@ -5949,7 +5972,7 @@ function Wc({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified
5949
5972
  children: /* @__PURE__ */ Q(ks, { size: 16 })
5950
5973
  }), /* @__PURE__ */ Q("img", {
5951
5974
  class: "markup-lightbox-img",
5952
- src: te,
5975
+ src: N,
5953
5976
  alt: "Screenshot preview",
5954
5977
  onClick: (e) => e.stopPropagation()
5955
5978
  })]
@@ -5990,12 +6013,12 @@ function Wc({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified
5990
6013
  ]
5991
6014
  });
5992
6015
  }
5993
- function Gc(e, t, n) {
6016
+ function Kc(e, t, n) {
5994
6017
  return Math.max(t, Math.min(n, e));
5995
6018
  }
5996
6019
  //#endregion
5997
6020
  //#region src/runtime/ui/notifications-panel.tsx
5998
- function Kc({ state: e, onBack: t, onItemClick: n, onMarkAllRead: r, isMarkingAll: i }) {
6021
+ function qc({ state: e, onBack: t, onItemClick: n, onMarkAllRead: r, isMarkingAll: i }) {
5999
6022
  let a = e.kind === "ready" && e.items.some((e) => e.readAt == null);
6000
6023
  return /* @__PURE__ */ Q("div", {
6001
6024
  class: "markup-notifications-panel",
@@ -6076,7 +6099,7 @@ function Kc({ state: e, onBack: t, onItemClick: n, onMarkAllRead: r, isMarkingAl
6076
6099
  }),
6077
6100
  /* @__PURE__ */ Q("span", {
6078
6101
  class: "markup-notifications-panel-time",
6079
- children: qc(e.createdAt)
6102
+ children: Jc(e.createdAt)
6080
6103
  })
6081
6104
  ]
6082
6105
  }),
@@ -6108,7 +6131,7 @@ function Kc({ state: e, onBack: t, onItemClick: n, onMarkAllRead: r, isMarkingAl
6108
6131
  })]
6109
6132
  });
6110
6133
  }
6111
- function qc(e) {
6134
+ function Jc(e) {
6112
6135
  let t = Date.now() - e, n = Math.floor(t / 1e3);
6113
6136
  if (n < 60) return "just now";
6114
6137
  let r = Math.floor(n / 60);
@@ -6120,18 +6143,18 @@ function qc(e) {
6120
6143
  }
6121
6144
  //#endregion
6122
6145
  //#region src/runtime/use-theme.ts
6123
- function Jc() {
6124
- let [, e] = z(0);
6125
- return B(() => Ue(() => e((e) => e + 1)), []), {
6126
- mode: Be(),
6127
- resolved: Ve(),
6128
- set: He
6146
+ function Yc() {
6147
+ let [, e] = V(0);
6148
+ return H(() => Ve(() => e((e) => e + 1)), []), {
6149
+ mode: Re(),
6150
+ resolved: ze(),
6151
+ set: Be
6129
6152
  };
6130
6153
  }
6131
6154
  //#endregion
6132
6155
  //#region src/runtime/ui/privacy-panel.tsx
6133
- function Yc({ identity: e, apiUrl: t, commentAccess: n = "anyone", autoCapture: r, autoCaptureLocked: i, isForgettingMe: a, forgetMeError: o, onForgetMe: s, onBack: c }) {
6134
- let [l, u] = z(!1), d = aa(e), f = e.kind === "verified", p = f ? e.identity.email : void 0, m = e.kind === "anon";
6156
+ function Xc({ identity: e, apiUrl: t, commentAccess: n = "anyone", autoCapture: r, autoCaptureLocked: i, isForgettingMe: a, forgetMeError: o, onForgetMe: s, onBack: c }) {
6157
+ let [l, u] = V(!1), d = aa(e), f = e.kind === "verified", p = f ? e.identity.email : void 0, m = e.kind === "anon";
6135
6158
  return /* @__PURE__ */ Q("div", {
6136
6159
  class: "markup-panel",
6137
6160
  children: [/* @__PURE__ */ Q("header", {
@@ -6232,7 +6255,7 @@ function Yc({ identity: e, apiUrl: t, commentAccess: n = "anyone", autoCapture:
6232
6255
  "Only ",
6233
6256
  /* @__PURE__ */ Q("span", {
6234
6257
  class: "markup-panel-mono",
6235
- children: Xc(t)
6258
+ children: Zc(t)
6236
6259
  }),
6237
6260
  ". 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."
6238
6261
  ]
@@ -6268,7 +6291,7 @@ function Yc({ identity: e, apiUrl: t, commentAccess: n = "anyone", autoCapture:
6268
6291
  })]
6269
6292
  });
6270
6293
  }
6271
- function Xc(e) {
6294
+ function Zc(e) {
6272
6295
  try {
6273
6296
  return new URL(e).host;
6274
6297
  } catch {
@@ -6277,7 +6300,7 @@ function Xc(e) {
6277
6300
  }
6278
6301
  //#endregion
6279
6302
  //#region src/runtime/ui/shortcuts-panel.tsx
6280
- function Zc({ onBack: e }) {
6303
+ function Qc({ onBack: e }) {
6281
6304
  let { mod: t, enter: n } = Es();
6282
6305
  return /* @__PURE__ */ Q("div", {
6283
6306
  class: "markup-panel",
@@ -6374,18 +6397,18 @@ function Zc({ onBack: e }) {
6374
6397
  }
6375
6398
  //#endregion
6376
6399
  //#region src/runtime/ui/overflow-menu.tsx
6377
- var Qc = {
6400
+ var $c = {
6378
6401
  menu: "More options",
6379
6402
  privacy: "Privacy and data",
6380
6403
  shortcuts: "Keyboard shortcuts"
6381
6404
  };
6382
- function $c({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked: r = !1, onToggleAutoCapture: i, showResolved: a, onToggleShowResolved: o, onHideForSession: s, identity: c, apiUrl: l, commentAccess: u, isForgettingMe: d, forgetMeError: f, onForgetMe: p, version: m, dashboardUrl: h }) {
6383
- let [g, _] = z(!1), [v, y] = z("menu"), b = ti(g || null, 140), x = b?.isLeaving ?? !1, S = H(null), C = H(null), w = H(null), T = H(null), E = H("menu"), D = H(null), O = H(v);
6405
+ function el({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked: r = !1, onToggleAutoCapture: i, showResolved: a, onToggleShowResolved: o, onHideForSession: s, identity: c, apiUrl: l, commentAccess: u, isForgettingMe: d, forgetMeError: f, onForgetMe: p, version: m, dashboardUrl: h }) {
6406
+ let [g, _] = V(!1), [v, y] = V("menu"), b = ei(g || null, 140), x = b?.isLeaving ?? !1, S = W(null), C = W(null), w = W(null), T = W(null), E = W("menu"), D = W(null), O = W(v);
6384
6407
  O.current = v;
6385
- let k = Jc();
6386
- B(() => {
6408
+ let k = Yc();
6409
+ H(() => {
6387
6410
  g && (y("menu"), E.current = "menu");
6388
- }, [g]), V(() => {
6411
+ }, [g]), U(() => {
6389
6412
  if (!g) return;
6390
6413
  if (v !== "menu") {
6391
6414
  C.current?.focus({ preventScroll: !0 });
@@ -6393,7 +6416,7 @@ function $c({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
6393
6416
  }
6394
6417
  let e = E.current;
6395
6418
  e !== "menu" && (E.current = "menu", (e === "privacy" ? w.current : T.current)?.focus({ preventScroll: !0 }));
6396
- }, [g, v]), V(() => {
6419
+ }, [g, v]), U(() => {
6397
6420
  let e = C.current, t = D.current;
6398
6421
  if (D.current = null, !e || t == null || window.matchMedia("(prefers-reduced-motion: reduce)").matches) return;
6399
6422
  let n = e.getBoundingClientRect().height;
@@ -6405,7 +6428,7 @@ function $c({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
6405
6428
  return e.addEventListener("transitionend", r), () => {
6406
6429
  e.removeEventListener("transitionend", r), e.style.height = "";
6407
6430
  };
6408
- }, [v]), B(() => {
6431
+ }, [v]), H(() => {
6409
6432
  if (!g) return;
6410
6433
  function e(e) {
6411
6434
  let t = S.current;
@@ -6427,7 +6450,7 @@ function $c({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
6427
6450
  function A(e) {
6428
6451
  D.current = C.current?.getBoundingClientRect().height ?? null, e !== "menu" && (E.current = e), y(e);
6429
6452
  }
6430
- let j = e === "bottom-left" ? "is-anchor-left" : e === "bottom-center" ? "is-anchor-center" : "is-anchor-right", { mod: M } = Es();
6453
+ let j = e === "bottom-left" ? "is-anchor-left" : e === "bottom-center" ? "is-anchor-center" : "is-anchor-right", { mod: ee } = Es();
6431
6454
  return /* @__PURE__ */ Q("div", {
6432
6455
  ref: S,
6433
6456
  style: {
@@ -6453,10 +6476,10 @@ function $c({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
6453
6476
  "data-pop": "overflow",
6454
6477
  "data-view": v,
6455
6478
  role: "dialog",
6456
- "aria-label": Qc[v],
6479
+ "aria-label": $c[v],
6457
6480
  tabIndex: -1,
6458
6481
  inert: x || void 0,
6459
- children: v === "privacy" ? /* @__PURE__ */ Q(Yc, {
6482
+ children: v === "privacy" ? /* @__PURE__ */ Q(Xc, {
6460
6483
  identity: c,
6461
6484
  apiUrl: l,
6462
6485
  commentAccess: u,
@@ -6470,7 +6493,7 @@ function $c({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
6470
6493
  });
6471
6494
  },
6472
6495
  onBack: () => A("menu")
6473
- }) : v === "shortcuts" ? /* @__PURE__ */ Q(Zc, { onBack: () => A("menu") }) : /* @__PURE__ */ Q("div", {
6496
+ }) : v === "shortcuts" ? /* @__PURE__ */ Q(Qc, { onBack: () => A("menu") }) : /* @__PURE__ */ Q("div", {
6474
6497
  role: "menu",
6475
6498
  class: "markup-menu-view",
6476
6499
  children: [
@@ -6535,7 +6558,7 @@ function $c({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
6535
6558
  title: "Bottom left",
6536
6559
  class: Z(e === "bottom-left" && "is-on"),
6537
6560
  onClick: () => t("bottom-left"),
6538
- children: /* @__PURE__ */ Q(el, { side: "left" })
6561
+ children: /* @__PURE__ */ Q(tl, { side: "left" })
6539
6562
  }),
6540
6563
  /* @__PURE__ */ Q("button", {
6541
6564
  type: "button",
@@ -6545,7 +6568,7 @@ function $c({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
6545
6568
  title: "Bottom center",
6546
6569
  class: Z(e === "bottom-center" && "is-on"),
6547
6570
  onClick: () => t("bottom-center"),
6548
- children: /* @__PURE__ */ Q(el, { side: "center" })
6571
+ children: /* @__PURE__ */ Q(tl, { side: "center" })
6549
6572
  }),
6550
6573
  /* @__PURE__ */ Q("button", {
6551
6574
  type: "button",
@@ -6555,7 +6578,7 @@ function $c({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
6555
6578
  title: "Bottom right",
6556
6579
  class: Z(e === "bottom-right" && "is-on"),
6557
6580
  onClick: () => t("bottom-right"),
6558
- children: /* @__PURE__ */ Q(el, { side: "right" })
6581
+ children: /* @__PURE__ */ Q(tl, { side: "right" })
6559
6582
  })
6560
6583
  ]
6561
6584
  })]
@@ -6577,7 +6600,7 @@ function $c({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
6577
6600
  children: [
6578
6601
  /* @__PURE__ */ Q("span", {
6579
6602
  class: "ic",
6580
- children: /* @__PURE__ */ Q(tl, {})
6603
+ children: /* @__PURE__ */ Q(nl, {})
6581
6604
  }),
6582
6605
  /* @__PURE__ */ Q("span", {
6583
6606
  class: "lbl",
@@ -6674,7 +6697,7 @@ function $c({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
6674
6697
  children: [
6675
6698
  /* @__PURE__ */ Q("span", {
6676
6699
  class: "ic",
6677
- children: /* @__PURE__ */ Q(nl, {})
6700
+ children: /* @__PURE__ */ Q(rl, {})
6678
6701
  }),
6679
6702
  /* @__PURE__ */ Q("span", {
6680
6703
  class: "lbl",
@@ -6682,7 +6705,7 @@ function $c({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
6682
6705
  }),
6683
6706
  /* @__PURE__ */ Q("span", {
6684
6707
  class: "right",
6685
- children: [M, " ."]
6708
+ children: [ee, " ."]
6686
6709
  })
6687
6710
  ]
6688
6711
  }),
@@ -6705,7 +6728,7 @@ function $c({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
6705
6728
  }) : null]
6706
6729
  });
6707
6730
  }
6708
- function el({ side: e }) {
6731
+ function tl({ side: e }) {
6709
6732
  return /* @__PURE__ */ Q("svg", {
6710
6733
  width: 14,
6711
6734
  height: 14,
@@ -6731,7 +6754,7 @@ function el({ side: e }) {
6731
6754
  })]
6732
6755
  });
6733
6756
  }
6734
- function tl() {
6757
+ function nl() {
6735
6758
  return /* @__PURE__ */ Q("svg", {
6736
6759
  width: 16,
6737
6760
  height: 16,
@@ -6749,7 +6772,7 @@ function tl() {
6749
6772
  })]
6750
6773
  });
6751
6774
  }
6752
- function nl() {
6775
+ function rl() {
6753
6776
  return /* @__PURE__ */ Q("svg", {
6754
6777
  width: 16,
6755
6778
  height: 16,
@@ -6770,9 +6793,9 @@ function nl() {
6770
6793
  }
6771
6794
  //#endregion
6772
6795
  //#region src/runtime/ui/panel-popover.tsx
6773
- function rl({ kind: e, label: t, position: n, ignoreToolbarKind: r, isLeaving: i = !1, onClose: a, children: o }) {
6774
- let s = H(null);
6775
- return B(() => {
6796
+ function il({ kind: e, label: t, position: n, ignoreToolbarKind: r, isLeaving: i = !1, onClose: a, children: o }) {
6797
+ let s = W(null);
6798
+ return H(() => {
6776
6799
  if (i) return;
6777
6800
  function e(e) {
6778
6801
  let t = s.current;
@@ -6806,8 +6829,8 @@ function rl({ kind: e, label: t, position: n, ignoreToolbarKind: r, isLeaving: i
6806
6829
  }
6807
6830
  //#endregion
6808
6831
  //#region src/runtime/ui/pin.tsx
6809
- function il({ pageX: e, pageY: t, count: n, isActive: r, isUnresolved: i, isClosed: a = !1, isLeaving: o = !1, enterDelayMs: s = 0, onClick: c }) {
6810
- let l = H(!r), u = t - window.scrollY, d = e - window.scrollX;
6832
+ function al({ pageX: e, pageY: t, count: n, isActive: r, isUnresolved: i, isClosed: a = !1, isLeaving: o = !1, enterDelayMs: s = 0, onClick: c }) {
6833
+ let l = W(!r), u = t - window.scrollY, d = e - window.scrollX;
6811
6834
  return /* @__PURE__ */ Q("button", {
6812
6835
  type: "button",
6813
6836
  class: Z("markup-pin", l.current && "is-entering", r && "is-active is-anchor", i && "is-unresolved", a && "is-closed", o && "is-leaving"),
@@ -6829,7 +6852,7 @@ function il({ pageX: e, pageY: t, count: n, isActive: r, isUnresolved: i, isClos
6829
6852
  })
6830
6853
  });
6831
6854
  }
6832
- function al({ pageX: e, pageY: t, isLeaving: n = !1 }) {
6855
+ function ol({ pageX: e, pageY: t, isLeaving: n = !1 }) {
6833
6856
  let r = t - window.scrollY, i = e - window.scrollX;
6834
6857
  return /* @__PURE__ */ Q("div", {
6835
6858
  class: Z("markup-pin", "markup-pin-ghost", "is-anchor", n && "is-leaving"),
@@ -6846,9 +6869,9 @@ function al({ pageX: e, pageY: t, isLeaving: n = !1 }) {
6846
6869
  }
6847
6870
  //#endregion
6848
6871
  //#region src/runtime/ui/placement-overlay.tsx
6849
- function ol({ onPlace: e, onCancel: t }) {
6850
- let n = H(null);
6851
- return V(() => {
6872
+ function sl({ onPlace: e, onCancel: t }) {
6873
+ let n = W(null);
6874
+ return U(() => {
6852
6875
  let r = n.current?.getRootNode() ?? null, i = (e) => r !== null && e.composedPath().includes(r);
6853
6876
  function a(e) {
6854
6877
  e.key === "Escape" && t();
@@ -6857,7 +6880,7 @@ function ol({ onPlace: e, onCancel: t }) {
6857
6880
  i(e) || (e.preventDefault(), e.stopPropagation());
6858
6881
  }
6859
6882
  function s(t) {
6860
- i(t) || (t.preventDefault(), t.stopPropagation(), e(_i(t), t.clientX, t.clientY));
6883
+ i(t) || (t.preventDefault(), t.stopPropagation(), e(gi(t), t.clientX, t.clientY));
6861
6884
  }
6862
6885
  let c = { capture: !0 }, l = [
6863
6886
  "pointerdown",
@@ -6871,7 +6894,7 @@ function ol({ onPlace: e, onCancel: t }) {
6871
6894
  window.addEventListener("keydown", a);
6872
6895
  for (let e of l) window.addEventListener(e, o, c);
6873
6896
  window.addEventListener("click", s, c);
6874
- let u = sl();
6897
+ let u = cl();
6875
6898
  return () => {
6876
6899
  window.removeEventListener("keydown", a);
6877
6900
  for (let e of l) window.removeEventListener(e, o, c);
@@ -6887,7 +6910,7 @@ function ol({ onPlace: e, onCancel: t }) {
6887
6910
  })
6888
6911
  });
6889
6912
  }
6890
- function sl() {
6913
+ function cl() {
6891
6914
  let e = "html, html * { cursor: crosshair !important; }";
6892
6915
  if ("adoptedStyleSheets" in document && "replaceSync" in CSSStyleSheet.prototype) {
6893
6916
  let t = new CSSStyleSheet();
@@ -6900,14 +6923,14 @@ function sl() {
6900
6923
  }
6901
6924
  //#endregion
6902
6925
  //#region src/runtime/ui/thread-popover.tsx
6903
- var cl = [
6926
+ var ll = [], ul = [
6904
6927
  "👍",
6905
6928
  "❤️",
6906
6929
  "🎉",
6907
6930
  "😮",
6908
6931
  "😄",
6909
6932
  "❓"
6910
- ], ll = Hr({
6933
+ ], dl = Vr({
6911
6934
  none: {
6912
6935
  "toggle-thread-menu": () => ({
6913
6936
  kind: "thread-menu",
@@ -6963,22 +6986,22 @@ var cl = [
6963
6986
  dismiss: () => ({ kind: "none" })
6964
6987
  }
6965
6988
  });
6966
- function ul({ 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 = [], onAuthor: p, onSignIn: m, onSignOut: h, onClose: g, onReply: _, onEditComment: v, onDeleteComment: y, onToggleReaction: b, onResolve: x, onDelete: S }) {
6967
- let C = H(null), w = H(null), T = H(null), E = H(null), [D, O] = Ur(ll, { kind: "none" }), k = ti(D.kind === "none" || D.kind === "editing" ? null : D, 120), A = k?.value ?? null, j = k?.isLeaving ?? !1, M = A?.kind === "thread-menu" ? A : null, [ee, N] = z(null), { onPointerDown: te, isDragging: ne } = tc({
6989
+ function fl({ 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 = ll, onAuthor: p, onSignIn: m, onSignOut: h, onClose: g, onReply: _, onEditComment: v, onDeleteComment: y, onToggleReaction: b, onResolve: x, onDelete: S }) {
6990
+ let C = W(null), w = W(null), T = W(null), E = W(null), [D, O] = Hr(dl, { kind: "none" }), k = ei(D.kind === "none" || D.kind === "editing" ? null : D, 120), A = k?.value ?? null, j = k?.isLeaving ?? !1, ee = A?.kind === "thread-menu" ? A : null, [M, te] = V(null), { onPointerDown: N, isDragging: ne } = tc({
6968
6991
  targetRef: C,
6969
6992
  shouldStart: (e) => !e.target?.closest("button, a, input, textarea, select"),
6970
- onMove: N
6993
+ onMove: te
6971
6994
  });
6972
6995
  ic(C, !d);
6973
- let P = e.resolvedAt != null, F = it(() => e.comments.filter((e) => !e.deleted), [e.comments]);
6974
- B(() => {
6996
+ let P = e.resolvedAt != null, F = nt(() => e.comments.filter((e) => !e.deleted), [e.comments]);
6997
+ H(() => {
6975
6998
  if (D.kind === "none" || D.kind === "editing") return;
6976
6999
  function e(e) {
6977
7000
  let t = E.current;
6978
7001
  t && !e.composedPath().includes(t) && O({ type: "dismiss" });
6979
7002
  }
6980
7003
  return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
6981
- }, [D.kind, O]), B(() => {
7004
+ }, [D.kind, O]), H(() => {
6982
7005
  if (D.kind !== "editing") return;
6983
7006
  let t = e.comments.find((e) => e._id === D.commentId);
6984
7007
  (!t || t.deleted) && O({ type: "dismiss" });
@@ -6987,12 +7010,12 @@ function ul({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
6987
7010
  D,
6988
7011
  O
6989
7012
  ]);
6990
- let re = H(null);
6991
- B(() => {
7013
+ let re = W(null);
7014
+ H(() => {
6992
7015
  re.current ??= F.at(-1)?.createdAt ?? 0;
6993
7016
  }, [F]);
6994
- let ie = H(!0);
6995
- B(() => {
7017
+ let ie = W(!0);
7018
+ H(() => {
6996
7019
  let e = w.current;
6997
7020
  if (e) {
6998
7021
  if (ie.current) {
@@ -7001,24 +7024,24 @@ function ul({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
7001
7024
  }
7002
7025
  e.scrollHeight - e.scrollTop - e.clientHeight < 80 && (e.scrollTop = e.scrollHeight);
7003
7026
  }
7004
- }, [F.length]), V(() => {
7027
+ }, [F.length]);
7028
+ let ae = W(null);
7029
+ U(() => {
7005
7030
  let e = C.current;
7006
- if (!(!e || typeof e.showPopover != "function")) try {
7007
- d ? (N((e) => e ?? ae.current), e.matches(":popover-open") && e.hidePopover()) : e.matches(":popover-open") || e.showPopover();
7031
+ if (e && typeof e.showPopover == "function") try {
7032
+ d ? (te((e) => e ?? ae.current), e.matches(":popover-open") && e.hidePopover()) : e.matches(":popover-open") || e.showPopover();
7008
7033
  } catch {}
7009
- }, [d]);
7010
- let ae = H(null);
7011
- V(() => {
7034
+ }, [d]), U(() => {
7012
7035
  let e = C.current;
7013
- if (!e || d || ee != null || typeof e.matches == "function" && !e.matches(":popover-open")) return;
7036
+ if (!e || d || M != null || typeof e.matches == "function" && !e.matches(":popover-open")) return;
7014
7037
  let t = getComputedStyle(e), n = Number.parseFloat(t.left), r = Number.parseFloat(t.top);
7015
7038
  Number.isFinite(n) && Number.isFinite(r) && (ae.current = {
7016
7039
  left: n,
7017
7040
  top: r
7018
7041
  });
7019
7042
  });
7020
- let oe = H(d);
7021
- oe.current = d, V(() => {
7043
+ let oe = W(d);
7044
+ oe.current = d, U(() => {
7022
7045
  let e = C.current;
7023
7046
  if (!e) return;
7024
7047
  function t(e) {
@@ -7026,16 +7049,16 @@ function ul({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
7026
7049
  }
7027
7050
  return e.addEventListener("toggle", t), () => e.removeEventListener("toggle", t);
7028
7051
  }, [g]);
7029
- let se = it(() => {
7030
- let t = vi({
7052
+ let se = nt(() => {
7053
+ let t = _i({
7031
7054
  anchorX: e.anchorX,
7032
7055
  anchorY: e.anchorY,
7033
7056
  anchorSelector: e.anchorSelector,
7034
7057
  anchorText: e.anchorText
7035
7058
  });
7036
7059
  return {
7037
- left: ml(t.pageX - window.scrollX + 16, 12, window.innerWidth - 320 - 12),
7038
- top: ml(t.pageY - window.scrollY - 16, 12, window.innerHeight - 200)
7060
+ left: gl(t.pageX - window.scrollX + 16, 12, window.innerWidth - 320 - 12),
7061
+ top: gl(t.pageY - window.scrollY - 16, 12, window.innerHeight - 200)
7039
7062
  };
7040
7063
  }, [
7041
7064
  e.anchorX,
@@ -7046,11 +7069,11 @@ function ul({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
7046
7069
  return /* @__PURE__ */ Q("div", {
7047
7070
  ref: C,
7048
7071
  id: d ? void 0 : "markup-thread-popover",
7049
- class: Z("markup-popover", ee && "is-floating", ne && "is-dragging", u && "is-hud-hidden", d && "is-leaving"),
7072
+ class: Z("markup-popover", M && "is-floating", ne && "is-dragging", u && "is-hud-hidden", d && "is-leaving"),
7050
7073
  popover: "auto",
7051
7074
  style: {
7052
- "--markup-pop-x": `${ee?.left ?? se.left}px`,
7053
- "--markup-pop-y": `${ee?.top ?? se.top}px`
7075
+ "--markup-pop-x": `${M?.left ?? se.left}px`,
7076
+ "--markup-pop-y": `${M?.top ?? se.top}px`
7054
7077
  },
7055
7078
  role: "dialog",
7056
7079
  "aria-label": "Markup thread",
@@ -7059,7 +7082,7 @@ function ul({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
7059
7082
  children: [
7060
7083
  /* @__PURE__ */ Q("header", {
7061
7084
  class: "markup-popover-header",
7062
- onPointerDown: te,
7085
+ onPointerDown: N,
7063
7086
  children: [/* @__PURE__ */ Q("span", {
7064
7087
  class: "markup-popover-title",
7065
7088
  title: e.url,
@@ -7074,11 +7097,11 @@ function ul({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
7074
7097
  },
7075
7098
  children: [/* @__PURE__ */ Q("button", {
7076
7099
  type: "button",
7077
- class: Z("markup-icon-btn", M != null && "is-open"),
7100
+ class: Z("markup-icon-btn", ee != null && "is-open"),
7078
7101
  title: "More options",
7079
7102
  onClick: () => O({ type: "toggle-thread-menu" }),
7080
7103
  children: /* @__PURE__ */ Q(Ms, { size: 16 })
7081
- }), M ? /* @__PURE__ */ Q("div", {
7104
+ }), ee ? /* @__PURE__ */ Q("div", {
7082
7105
  class: Z("markup-thread-menu-list", j && "is-leaving"),
7083
7106
  inert: j || void 0,
7084
7107
  children: [/* @__PURE__ */ Q("button", {
@@ -7091,12 +7114,12 @@ function ul({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
7091
7114
  children: "Copy link"
7092
7115
  }), s ? /* @__PURE__ */ Q("button", {
7093
7116
  type: "button",
7094
- class: Z("markup-thread-menu-item", M.confirmDelete && "is-danger"),
7117
+ class: Z("markup-thread-menu-item", ee.confirmDelete && "is-danger"),
7095
7118
  disabled: c,
7096
7119
  onClick: () => {
7097
7120
  D.kind === "thread-menu" && (D.confirmDelete ? (O({ type: "dismiss" }), S()) : O({ type: "arm-thread-delete" }));
7098
7121
  },
7099
- children: M.confirmDelete ? "Confirm delete" : "Delete thread…"
7122
+ children: ee.confirmDelete ? "Confirm delete" : "Delete thread…"
7100
7123
  }) : null]
7101
7124
  }) : null]
7102
7125
  }),
@@ -7126,10 +7149,10 @@ function ul({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
7126
7149
  return /* @__PURE__ */ Q("li", {
7127
7150
  class: Z("markup-comment", re.current != null && t.createdAt > re.current && "is-new"),
7128
7151
  children: [
7129
- /* @__PURE__ */ Q(hl, {
7152
+ /* @__PURE__ */ Q(_l, {
7130
7153
  name: t.authorName,
7131
7154
  image: t.authorImage,
7132
- tone: _l(t.authorClientId ?? t.authorName)
7155
+ tone: yl(t.authorClientId ?? t.authorName)
7133
7156
  }),
7134
7157
  /* @__PURE__ */ Q("div", {
7135
7158
  class: "markup-comment-meta",
@@ -7148,18 +7171,18 @@ function ul({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
7148
7171
  /* @__PURE__ */ Q("time", {
7149
7172
  class: "markup-comment-time",
7150
7173
  datetime: new Date(t.createdAt).toISOString(),
7151
- title: yl(t.createdAt),
7152
- children: vl(t.createdAt)
7174
+ title: xl(t.createdAt),
7175
+ children: bl(t.createdAt)
7153
7176
  }),
7154
7177
  t.editedAt == null ? null : /* @__PURE__ */ Q("time", {
7155
7178
  class: "markup-comment-edited",
7156
7179
  datetime: new Date(t.editedAt).toISOString(),
7157
- title: yl(t.editedAt),
7180
+ title: xl(t.editedAt),
7158
7181
  children: "edited"
7159
7182
  }),
7160
7183
  /* @__PURE__ */ Q("div", {
7161
7184
  class: "markup-thread-actions",
7162
- children: [!P && !l ? /* @__PURE__ */ Q(dl, {
7185
+ children: [!P && !l ? /* @__PURE__ */ Q(pl, {
7163
7186
  comment: t,
7164
7187
  pickerOpen: g,
7165
7188
  pickerLeaving: g && j,
@@ -7308,7 +7331,7 @@ function ul({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
7308
7331
  alt: "Screenshot"
7309
7332
  })
7310
7333
  }) : null,
7311
- !l && t.reactions.length > 0 ? /* @__PURE__ */ Q(fl, {
7334
+ !l && t.reactions.length > 0 ? /* @__PURE__ */ Q(ml, {
7312
7335
  comment: t,
7313
7336
  isResolved: P,
7314
7337
  onToggle: (e) => b(t._id, e)
@@ -7374,7 +7397,7 @@ function ul({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
7374
7397
  ]
7375
7398
  });
7376
7399
  }
7377
- function dl({ comment: e, pickerOpen: t, pickerLeaving: n, pickerDirection: r, pickerSide: i, pickerRef: a, onPickerClick: o, onPickerSelect: s }) {
7400
+ function pl({ comment: e, pickerOpen: t, pickerLeaving: n, pickerDirection: r, pickerSide: i, pickerRef: a, onPickerClick: o, onPickerSelect: s }) {
7378
7401
  return /* @__PURE__ */ Q("div", {
7379
7402
  class: Z("markup-reaction-picker-wrap", t && "is-open", t && r === "up" && "is-up", i && "is-side"),
7380
7403
  ref: a,
@@ -7389,7 +7412,7 @@ function dl({ comment: e, pickerOpen: t, pickerLeaving: n, pickerDirection: r, p
7389
7412
  class: Z("markup-reaction-picker", n && "is-leaving"),
7390
7413
  role: "menu",
7391
7414
  inert: n || void 0,
7392
- children: cl.map((t) => /* @__PURE__ */ Q("button", {
7415
+ children: ul.map((t) => /* @__PURE__ */ Q("button", {
7393
7416
  type: "button",
7394
7417
  role: "menuitem",
7395
7418
  class: Z("markup-reaction-picker-item", (e.reactions.find((e) => e.emoji === t)?.mine ?? !1) && "is-mine"),
@@ -7399,11 +7422,11 @@ function dl({ comment: e, pickerOpen: t, pickerLeaving: n, pickerDirection: r, p
7399
7422
  }) : null]
7400
7423
  });
7401
7424
  }
7402
- function fl({ comment: e, isResolved: t, onToggle: n }) {
7425
+ function ml({ comment: e, isResolved: t, onToggle: n }) {
7403
7426
  return /* @__PURE__ */ Q("div", {
7404
7427
  class: "markup-reactions",
7405
7428
  children: e.reactions.map((e) => {
7406
- let r = pl(e.reactors, e.mine, e.count, e.emoji);
7429
+ let r = hl(e.reactors, e.mine, e.count, e.emoji);
7407
7430
  return /* @__PURE__ */ Q("button", {
7408
7431
  type: "button",
7409
7432
  class: Z("markup-reaction-chip", e.mine && "is-mine"),
@@ -7424,15 +7447,15 @@ function fl({ comment: e, isResolved: t, onToggle: n }) {
7424
7447
  })
7425
7448
  });
7426
7449
  }
7427
- function pl(e, t, n, r) {
7450
+ function hl(e, t, n, r) {
7428
7451
  let i = e.slice(), a = i.length + +!!t, o = Math.max(0, n - a);
7429
7452
  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}`;
7430
7453
  }
7431
- function ml(e, t, n) {
7454
+ function gl(e, t, n) {
7432
7455
  return Math.max(t, Math.min(n, e));
7433
7456
  }
7434
- function hl({ name: e, image: t, tone: n }) {
7435
- let [r, i] = z(null);
7457
+ function _l({ name: e, image: t, tone: n }) {
7458
+ let [r, i] = V(null);
7436
7459
  return /* @__PURE__ */ Q("span", {
7437
7460
  class: "markup-comment-avatar",
7438
7461
  "data-tone": n,
@@ -7447,11 +7470,11 @@ function hl({ name: e, image: t, tone: n }) {
7447
7470
  onError: () => i(t)
7448
7471
  }) : /* @__PURE__ */ Q("span", {
7449
7472
  class: "markup-avatar-initials",
7450
- children: gl(e)
7473
+ children: vl(e)
7451
7474
  })
7452
7475
  });
7453
7476
  }
7454
- function gl(e) {
7477
+ function vl(e) {
7455
7478
  let t = e.trim();
7456
7479
  if (!t) return "??";
7457
7480
  let n = t.split(/\s+/).filter(Boolean), r = n[0] ?? "";
@@ -7459,12 +7482,12 @@ function gl(e) {
7459
7482
  let i = n[n.length - 1] ?? "";
7460
7483
  return ((r[0] ?? "") + (i[0] ?? "")).toUpperCase();
7461
7484
  }
7462
- function _l(e) {
7485
+ function yl(e) {
7463
7486
  let t = 0;
7464
7487
  for (let n = 0; n < e.length; n++) t = t * 31 + e.charCodeAt(n) | 0;
7465
7488
  return Math.abs(t) % 5 + 1;
7466
7489
  }
7467
- function vl(e) {
7490
+ function bl(e) {
7468
7491
  let t = Date.now() - e, n = Math.floor(t / 1e3);
7469
7492
  if (n < 60) return "just now";
7470
7493
  let r = Math.floor(n / 60);
@@ -7481,7 +7504,7 @@ function vl(e) {
7481
7504
  year: "numeric"
7482
7505
  });
7483
7506
  }
7484
- function yl(e) {
7507
+ function xl(e) {
7485
7508
  return new Date(e).toLocaleDateString([], {
7486
7509
  month: "long",
7487
7510
  day: "numeric",
@@ -7492,8 +7515,14 @@ function yl(e) {
7492
7515
  }
7493
7516
  //#endregion
7494
7517
  //#region src/runtime/ui/toolbar.tsx
7495
- 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 }) {
7496
- let p = H(0);
7518
+ function Sl(e) {
7519
+ e.stopPropagation();
7520
+ }
7521
+ function Cl(e) {
7522
+ Sl(e), e.target?.closest?.(".markup-tb-btn") && e.preventDefault();
7523
+ }
7524
+ function wl({ 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 }) {
7525
+ let p = W(0);
7497
7526
  i > 0 && (p.current = i);
7498
7527
  let m = r === "bottom-left" ? "markup-toolbar-left" : r === "bottom-center" ? "markup-toolbar-center" : "markup-toolbar-right";
7499
7528
  function h(e) {
@@ -7509,6 +7538,10 @@ function bl({ isActive: e, onToggle: t, onHide: n, position: r = "bottom-right",
7509
7538
  "aria-label": "Markup feedback toolbar",
7510
7539
  "aria-hidden": f,
7511
7540
  inert: f ? "" : void 0,
7541
+ onPointerDown: Sl,
7542
+ onMouseDown: Cl,
7543
+ onPointerUp: Sl,
7544
+ onMouseUp: Sl,
7512
7545
  children: [
7513
7546
  /* @__PURE__ */ Q("button", {
7514
7547
  type: "button",
@@ -7571,8 +7604,8 @@ function bl({ isActive: e, onToggle: t, onHide: n, position: r = "bottom-right",
7571
7604
  }
7572
7605
  //#endregion
7573
7606
  //#region src/runtime/ui/app.tsx
7574
- var xl = [], Sl = [], Cl = [{ key: "toolbar" }], wl = [];
7575
- function Tl(e) {
7607
+ var Tl = [], El = [], Dl = [{ key: "toolbar" }], Ol = [];
7608
+ function kl(e) {
7576
7609
  let t = {
7577
7610
  clientId: `markup_user_${e.identity.id}`,
7578
7611
  name: e.identity.name,
@@ -7598,14 +7631,14 @@ function Tl(e) {
7598
7631
  } : {}
7599
7632
  };
7600
7633
  }
7601
- function El() {
7634
+ function Al() {
7602
7635
  let e = document.activeElement;
7603
7636
  for (; e && e.shadowRoot && e.shadowRoot.activeElement;) e = e.shadowRoot.activeElement;
7604
7637
  if (!e) return !1;
7605
7638
  let t = e.tagName;
7606
7639
  return t === "INPUT" || t === "TEXTAREA" || t === "SELECT" || e.isContentEditable;
7607
7640
  }
7608
- var Dl = Hr({
7641
+ var jl = Vr({
7609
7642
  visible: {
7610
7643
  "hide-with-toast": () => ({ kind: "hidden-with-toast" }),
7611
7644
  toggle: () => ({ kind: "hidden" })
@@ -7616,26 +7649,26 @@ var Dl = Hr({
7616
7649
  },
7617
7650
  hidden: { toggle: () => ({ kind: "visible" }) }
7618
7651
  });
7619
- function Ol(e) {
7652
+ function Ml(e) {
7620
7653
  return ra(e), e;
7621
7654
  }
7622
- var kl = Hr({
7655
+ var Nl = Vr({
7623
7656
  unresolved: {
7624
- "mint-success": (e, t) => Ol({
7657
+ "mint-success": (e, t) => Ml({
7625
7658
  kind: "anon",
7626
7659
  identity: t.identity
7627
7660
  }),
7628
- "signed-in": (e, t) => Ol({
7661
+ "signed-in": (e, t) => Ml({
7629
7662
  kind: "verified",
7630
7663
  identity: t.identity
7631
7664
  })
7632
7665
  },
7633
7666
  anon: {
7634
- "signed-in": (e, t) => Ol({
7667
+ "signed-in": (e, t) => Ml({
7635
7668
  kind: "verified",
7636
7669
  identity: t.identity
7637
7670
  }),
7638
- "author-set": (e, t) => Ol({
7671
+ "author-set": (e, t) => Ml({
7639
7672
  kind: "anon",
7640
7673
  identity: {
7641
7674
  ...e.identity,
@@ -7643,36 +7676,36 @@ var kl = Hr({
7643
7676
  email: t.email
7644
7677
  }
7645
7678
  }),
7646
- "forget-me": () => Ol({ kind: "unresolved" })
7679
+ "forget-me": () => Ml({ kind: "unresolved" })
7647
7680
  },
7648
7681
  verified: {
7649
- "signed-in": (e, t) => Ol({
7682
+ "signed-in": (e, t) => Ml({
7650
7683
  kind: "verified",
7651
7684
  identity: t.identity
7652
7685
  }),
7653
- unauthorized: (e) => Ol({
7686
+ unauthorized: (e) => Ml({
7654
7687
  kind: "recovering",
7655
7688
  preserved: {
7656
7689
  name: e.identity.name,
7657
7690
  email: e.identity.email
7658
7691
  }
7659
7692
  }),
7660
- "signed-out": () => Ol({ kind: "unresolved" })
7693
+ "signed-out": () => Ml({ kind: "unresolved" })
7661
7694
  },
7662
7695
  recovering: {
7663
- "mint-success": (e, t) => Ol({
7696
+ "mint-success": (e, t) => Ml({
7664
7697
  kind: "anon",
7665
7698
  identity: t.identity
7666
7699
  }),
7667
- "signed-in": (e, t) => Ol({
7700
+ "signed-in": (e, t) => Ml({
7668
7701
  kind: "verified",
7669
7702
  identity: t.identity
7670
7703
  })
7671
7704
  }
7672
7705
  });
7673
- function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r, dashboardUrl: i }) {
7674
- let [a, o] = z(_a), [s, c] = z([]), [l, u] = z(!1), d = it(() => na(), []), [f, p] = Ur(kl, d.state), [m, h] = z(null);
7675
- B(() => {
7706
+ function Pl({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r, dashboardUrl: i }) {
7707
+ let [a, o] = V(_a), [s, c] = V([]), [l, u] = V(!1), d = nt(() => na(), []), [f, p] = Hr(Nl, d.state), [m, h] = V(null);
7708
+ H(() => {
7676
7709
  let n = !1;
7677
7710
  return Hi(e, t).then((e) => {
7678
7711
  n || h(e);
@@ -7680,12 +7713,12 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7680
7713
  n = !0;
7681
7714
  };
7682
7715
  }, [e, t]);
7683
- let [g, _] = z(n), [v, y] = z(!0), [b, x] = z(!0), [C, w] = z(!1), [T, E] = z(null), D = U(() => E(null), []), O = H(f);
7716
+ let [g, _] = V(n), [v, y] = V(!0), [b, x] = V(!0), [C, w] = V(!1), [T, E] = V(null), D = G(() => E(null), []), O = W(f);
7684
7717
  O.current = f, Ts(f, e, t, (e) => p({
7685
7718
  type: "signed-in",
7686
7719
  identity: e
7687
7720
  }), () => p({ type: "unauthorized" }));
7688
- let k = it(() => Fi({
7721
+ let k = nt(() => Fi({
7689
7722
  apiUrl: e,
7690
7723
  apiKey: t,
7691
7724
  getToken: () => {
@@ -7710,16 +7743,16 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7710
7743
  e,
7711
7744
  t,
7712
7745
  p
7713
- ]), [A, j] = z({ kind: "idle" }), [M, ee] = z([]);
7714
- B(() => {
7746
+ ]), [A, j] = V({ kind: "idle" }), [ee, M] = V([]);
7747
+ H(() => {
7715
7748
  let e = !1;
7716
7749
  return k.listMembers().then((t) => {
7717
- e || ee(t.members);
7750
+ e || M(t.members);
7718
7751
  }).catch(() => {}), () => {
7719
7752
  e = !0;
7720
7753
  };
7721
7754
  }, [k]);
7722
- let [N, te] = z(0), [ne, P] = Ur(sa, { kind: "idle" }), [F, re] = z(!1), ie = H(0), ae = U(() => {
7755
+ let [te, N] = V(0), [ne, P] = Hr(sa, { kind: "idle" }), [F, re] = V(!1), ie = W(0), ae = G(() => {
7723
7756
  let e = ie.current;
7724
7757
  P({ type: "fetch" }), k.listNotifications().then((t) => {
7725
7758
  ie.current === e && P({
@@ -7732,29 +7765,29 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7732
7765
  error: t instanceof Error ? t.message : "Failed to load."
7733
7766
  });
7734
7767
  });
7735
- }, [k, P]), oe = U((e) => {
7768
+ }, [k, P]), oe = G((e) => {
7736
7769
  ie.current += 1, P({
7737
7770
  type: "patch",
7738
7771
  update: e
7739
7772
  });
7740
- }, [P]), se = Xr(), ce = Xr(), le = Xr(), ue = Xr(), de = Xr(), { run: fe, reset: pe } = se, { run: me } = ce, { run: he, reset: ge } = le, { run: _e } = ue, { run: ve } = de, ye = de.isPending, xe = se.isPending, Se = se.error ?? ce.error ?? le.error, [Ce, we] = Ur(Dl, { kind: "visible" }), Te = Ce.kind !== "visible", [Ee, De] = z(0), Oe = H(null), ke = aa(f), Ae = f.kind === "verified", je = f.kind === "unresolved" || f.kind === "recovering", I = ia(f), [Me, Ne] = z(Li), [Pe, Fe] = z(null);
7741
- B(() => {
7773
+ }, [P]), se = Yr(), ce = Yr(), le = Yr(), ue = Yr(), de = Yr(), { run: I, reset: fe } = se, { run: pe } = ce, { run: me, reset: he } = le, { run: ge } = ue, { run: _e } = de, ve = de.isPending, be = se.isPending, xe = se.error ?? ce.error ?? le.error, [Se, Ce] = Hr(jl, { kind: "visible" }), we = Se.kind !== "visible", [Te, Ee] = V(0), [De, Oe] = V(0), ke = W(null), Ae = aa(f), L = f.kind === "verified", je = f.kind === "unresolved" || f.kind === "recovering", Me = ia(f), [R, Ne] = V(Li), [Pe, Fe] = V(null);
7774
+ H(() => {
7742
7775
  Fe(null), ie.current += 1, P({ type: "reset" });
7743
7776
  }, [
7744
7777
  f.kind,
7745
- I,
7778
+ Me,
7746
7779
  P
7747
7780
  ]);
7748
- let Ie = Ri(Me, f.kind), Le = zi({
7749
- access: Me,
7781
+ let Ie = Ri(R, f.kind), Le = zi({
7782
+ access: R,
7750
7783
  identityKind: f.kind,
7751
- hasAuthorName: ke != null,
7784
+ hasAuthorName: Ae != null,
7752
7785
  refusal: Pe
7753
- }), Re = U((e) => {
7786
+ }), Re = G((e) => {
7754
7787
  let t = Bi(e);
7755
7788
  throw t && Fe(t), e;
7756
7789
  }, []);
7757
- B(() => {
7790
+ H(() => {
7758
7791
  if (f.kind !== "unresolved" && f.kind !== "recovering") return;
7759
7792
  let e = f.kind === "recovering" ? f.preserved : d.preserved, t = !1, n = null, r = 1e3;
7760
7793
  function i() {
@@ -7783,21 +7816,21 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7783
7816
  p,
7784
7817
  d
7785
7818
  ]);
7786
- let { token: ze, isCurrent: Be } = xs(k, f), [Ve, He] = z(null);
7787
- B(() => {
7788
- let t = new Vr(e.replace(/\.convex\.site(\/.*)?$/, ".convex.cloud"));
7819
+ let { token: ze, isCurrent: Be } = xs(k, f), [Ve, He] = V(null);
7820
+ H(() => {
7821
+ let t = new Br(e.replace(/\.convex\.site(\/.*)?$/, ".convex.cloud"));
7789
7822
  return He(t), () => {
7790
7823
  t.close(), He((e) => e === t ? null : e);
7791
7824
  };
7792
- }, [e]), B(() => {
7825
+ }, [e]), H(() => {
7793
7826
  c([]), u(!1);
7794
7827
  }, [a]);
7795
- let Ue = H(!1);
7796
- B(() => {
7797
- if (!(!Ve || !ze)) return pe(), ge(), Ve.onUpdate(jn("widget/queries:subscribeThreadsForRoute"), {
7828
+ let Ue = W(!1);
7829
+ H(() => {
7830
+ if (Ve && ze) return fe(), he(), Ve.onUpdate(jn("widget/queries:subscribeThreadsForRoute"), {
7798
7831
  subscriptionToken: ze,
7799
7832
  route: a,
7800
- viewerClientId: I,
7833
+ viewerClientId: Me,
7801
7834
  includeResolved: C
7802
7835
  }, (e) => {
7803
7836
  e !== void 0 && (c(e), u(!0));
@@ -7806,22 +7839,22 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7806
7839
  Ve,
7807
7840
  ze,
7808
7841
  a,
7809
- I,
7842
+ Me,
7810
7843
  C,
7811
- pe,
7812
- ge
7813
- ]), B(() => {
7814
- if (!(!Ve || !ze)) return Ve.onUpdate(jn("widget/queries:subscribeProjectSettings"), { subscriptionToken: ze }, (e) => {
7844
+ fe,
7845
+ he
7846
+ ]), H(() => {
7847
+ if (Ve && ze) return Ve.onUpdate(jn("widget/queries:subscribeProjectSettings"), { subscriptionToken: ze }, (e) => {
7815
7848
  let t = e?.commentAccess;
7816
7849
  Ne(t === "members" ? "members" : Li);
7817
7850
  });
7818
- }, [Ve, ze]), B(() => {
7851
+ }, [Ve, ze]), H(() => {
7819
7852
  if (f.kind !== "verified" || !Be) {
7820
- te(0);
7853
+ N(0);
7821
7854
  return;
7822
7855
  }
7823
- if (!(!Ve || !ze)) return Ve.onUpdate(jn("widget/queries:subscribeUnreadCountForProject"), { subscriptionToken: ze }, (e) => {
7824
- e !== void 0 && (te(e.count), ae());
7856
+ if (Ve && ze) return Ve.onUpdate(jn("widget/queries:subscribeUnreadCountForProject"), { subscriptionToken: ze }, (e) => {
7857
+ e !== void 0 && (N(e.count), ae());
7825
7858
  });
7826
7859
  }, [
7827
7860
  Ve,
@@ -7829,57 +7862,60 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7829
7862
  Be,
7830
7863
  f.kind,
7831
7864
  ae
7832
- ]), B(() => {
7865
+ ]), H(() => {
7833
7866
  if (Ue.current || !l) return;
7834
7867
  let e = va();
7835
7868
  e !== null && (s.find((t) => t._id === e) && j({
7836
7869
  kind: "thread",
7837
7870
  threadId: e
7838
7871
  }), ba()), Ue.current = !0;
7839
- }, [s, l]), B(() => Yi(() => o(_a())), []), B(() => {
7872
+ }, [s, l]), H(() => Yi(() => o(_a())), []), H(() => {
7840
7873
  function e(e) {
7841
- e.key === "." && (e.metaKey || e.ctrlKey) && (e.altKey || e.shiftKey || (e.preventDefault(), we({ type: "toggle" })));
7874
+ e.key === "." && (e.metaKey || e.ctrlKey) && (e.altKey || e.shiftKey || (e.preventDefault(), Ce({ type: "toggle" })));
7842
7875
  }
7843
7876
  return window.addEventListener("keydown", e), () => window.removeEventListener("keydown", e);
7844
- }, [we]), B(() => {
7845
- Te && E(null);
7846
- }, [Te]), B(() => {
7847
- if (Ce.kind !== "hidden-with-toast") return;
7848
- let e = window.setTimeout(() => we({ type: "dismiss-toast" }), 5e3);
7877
+ }, [Ce]), H(() => {
7878
+ we && E(null);
7879
+ }, [we]), H(() => {
7880
+ if (Se.kind !== "hidden-with-toast") return;
7881
+ let e = window.setTimeout(() => Ce({ type: "dismiss-toast" }), 5e3);
7849
7882
  return () => window.clearTimeout(e);
7850
- }, [Ce.kind, we]), B(() => {
7851
- let e = null;
7852
- function t() {
7883
+ }, [Se.kind, Ce]), H(() => {
7884
+ let e = null, t = !1;
7885
+ function n() {
7853
7886
  e ??= requestAnimationFrame(() => {
7854
- e = null, De((e) => e + 1);
7887
+ e = null, t && (t = !1, Oe((e) => e + 1)), Ee((e) => e + 1);
7855
7888
  });
7856
7889
  }
7857
- window.addEventListener("scroll", t, {
7890
+ function r() {
7891
+ t = !0, n();
7892
+ }
7893
+ window.addEventListener("scroll", n, {
7858
7894
  passive: !0,
7859
7895
  capture: !0
7860
- }), window.addEventListener("resize", t);
7861
- let n = new ResizeObserver(t);
7862
- return n.observe(document.body), () => {
7863
- window.removeEventListener("scroll", t, { capture: !0 }), window.removeEventListener("resize", t), n.disconnect(), e != null && cancelAnimationFrame(e);
7896
+ }), window.addEventListener("resize", r);
7897
+ let i = new ResizeObserver(r);
7898
+ return i.observe(document.body), () => {
7899
+ window.removeEventListener("scroll", n, { capture: !0 }), window.removeEventListener("resize", r), i.disconnect(), e != null && cancelAnimationFrame(e);
7864
7900
  };
7865
7901
  }, []);
7866
- let We = U(() => {
7867
- pe(), ge(), be("comment_started"), j({ kind: "placing" });
7868
- }, [pe, ge]);
7869
- B(() => {
7902
+ let z = G(() => {
7903
+ fe(), he(), ye("comment_started"), j({ kind: "placing" });
7904
+ }, [fe, he]);
7905
+ H(() => {
7870
7906
  function e(e) {
7871
- e.key === "c" && (e.metaKey || e.ctrlKey || e.altKey || e.shiftKey || A.kind === "idle" && (Te || El() || (e.preventDefault(), We())));
7907
+ e.key === "c" && (e.metaKey || e.ctrlKey || e.altKey || e.shiftKey || A.kind === "idle" && (we || Al() || (e.preventDefault(), z())));
7872
7908
  }
7873
7909
  return window.addEventListener("keydown", e), () => window.removeEventListener("keydown", e);
7874
7910
  }, [
7875
7911
  A.kind,
7876
- Te,
7877
- We
7912
+ we,
7913
+ z
7878
7914
  ]);
7879
- let Ge = U(() => {
7880
- j({ kind: "idle" }), pe(), ge();
7881
- }, [pe, ge]), L = H(0), Ke = U((e, t, n) => {
7882
- let i = t + window.scrollX, a = n + window.scrollY, o = ++L.current;
7915
+ let We = G(() => {
7916
+ j({ kind: "idle" }), fe(), he();
7917
+ }, [fe, he]), Ge = W(0), Ke = G((e, t, n) => {
7918
+ let i = t + window.scrollX, a = n + window.scrollY, o = ++Ge.current;
7883
7919
  if (r?.enabled === !1 || !b) {
7884
7920
  j({
7885
7921
  kind: "composing-new",
@@ -7907,7 +7943,7 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7907
7943
  screenshotRedactedSelectors: [],
7908
7944
  captureToken: o
7909
7945
  });
7910
- let s = Oe.current != null && Oe.current.getRootNode() instanceof ShadowRoot ? Oe.current.getRootNode().host : null, c = {
7946
+ let s = ke.current != null && ke.current.getRootNode() instanceof ShadowRoot ? ke.current.getRootNode().host : null, c = {
7911
7947
  strictScrub: r?.strictScrub,
7912
7948
  redactSelector: r?.redactSelector
7913
7949
  };
@@ -7922,17 +7958,17 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7922
7958
  screenshotFailed: e == null,
7923
7959
  screenshotRedactedCount: e?.redactedCount ?? 0,
7924
7960
  screenshotRedactedSelectors: e?.redactedSelectors ?? []
7925
- }), be("screenshot_captured", { ok: e != null });
7961
+ }), ye("screenshot_captured", { ok: e != null });
7926
7962
  });
7927
- }, [r, b]), qe = U((e, t) => {
7963
+ }, [r, b]), qe = G((e, t) => {
7928
7964
  p({
7929
7965
  type: "author-set",
7930
7966
  name: e,
7931
7967
  email: t
7932
7968
  });
7933
- }, [p]), Je = ce.isPending, Ye = U(async () => {
7934
- be("sign_in_started"), await me(async () => {
7935
- let n = Tl(await fa({
7969
+ }, [p]), B = ce.isPending, Je = G(async () => {
7970
+ ye("sign_in_started"), await pe(async () => {
7971
+ let n = kl(await fa({
7936
7972
  apiUrl: e,
7937
7973
  apiKey: t,
7938
7974
  useCookies: m === !0
@@ -7941,18 +7977,18 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7941
7977
  p({
7942
7978
  type: "signed-in",
7943
7979
  identity: n
7944
- }), be("sign_in_completed");
7980
+ }), ye("sign_in_completed");
7945
7981
  });
7946
7982
  }, [
7947
7983
  e,
7948
7984
  t,
7949
7985
  m,
7950
- me,
7986
+ pe,
7951
7987
  p
7952
- ]), R = U(async (e, t) => {
7988
+ ]), Ye = G(async (e, t) => {
7953
7989
  if (A.kind !== "composing-new") return;
7954
7990
  let n = oa(f);
7955
- n && await fe(async () => {
7991
+ n && await I(async () => {
7956
7992
  let r;
7957
7993
  if (t && A.screenshot) {
7958
7994
  let { uploadUrl: e } = await k.getScreenshotUploadUrl().catch(Re), t;
@@ -7964,13 +8000,13 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7964
8000
  signal: AbortSignal.timeout(6e4)
7965
8001
  });
7966
8002
  } catch (e) {
7967
- throw e instanceof DOMException && e.name === "TimeoutError" ? Error("Screenshot upload took too long, so check your connection") : e;
8003
+ throw e instanceof DOMException && e.name === "TimeoutError" ? Error("Screenshot upload took too long, so check your connection", { cause: e }) : e;
7968
8004
  }
7969
8005
  if (!t.ok) throw Error(`Screenshot upload failed (${t.status})`);
7970
8006
  let { storageId: n } = await t.json();
7971
8007
  r = n;
7972
8008
  }
7973
- let i = Kr(e), o = await k.createThread({
8009
+ let i = Gr(e), o = await k.createThread({
7974
8010
  url: window.location.href,
7975
8011
  route: a,
7976
8012
  anchorSelector: A.coords.anchorSelector,
@@ -7988,7 +8024,7 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7988
8024
  mentions: i.length > 0 ? i : void 0,
7989
8025
  screenshotStorageId: r
7990
8026
  }).catch(Re);
7991
- c((e) => [...e, o.thread]), be("comment_submitted", {
8027
+ c((e) => [...e, o.thread]), ye("comment_submitted", {
7992
8028
  hasScreenshot: r != null,
7993
8029
  hasMentions: i.length > 0
7994
8030
  }), j({
@@ -8002,30 +8038,30 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
8002
8038
  A,
8003
8039
  Re,
8004
8040
  a,
8005
- fe
8006
- ]), Xe = U(async () => {
8041
+ I
8042
+ ]), Xe = G(async () => {
8007
8043
  if (A.kind !== "thread") return;
8008
8044
  let e = A.threadId;
8009
- await fe(async () => {
8045
+ await I(async () => {
8010
8046
  await k.deleteThread(e), c((t) => t.filter((t) => t._id !== e)), j({ kind: "idle" });
8011
8047
  });
8012
8048
  }, [
8013
8049
  k,
8014
8050
  A,
8015
- fe
8016
- ]), Ze = U(async () => {
8051
+ I
8052
+ ]), Ze = G(async () => {
8017
8053
  if (A.kind !== "thread") return;
8018
8054
  let e = A.threadId;
8019
- await fe(async () => {
8020
- await k.resolveThread(e, I), c((t) => t.filter((t) => t._id !== e)), be("thread_resolved"), j({ kind: "idle" });
8055
+ await I(async () => {
8056
+ await k.resolveThread(e, Me), c((t) => t.filter((t) => t._id !== e)), ye("thread_resolved"), j({ kind: "idle" });
8021
8057
  });
8022
8058
  }, [
8023
8059
  k,
8024
8060
  A,
8025
- I,
8026
- fe
8027
- ]), Qe = U((e) => {
8028
- if (e.readAt ?? (te((e) => Math.max(0, e - 1)), oe((t) => t.map((t) => t._id === e._id ? {
8061
+ Me,
8062
+ I
8063
+ ]), Qe = G((e) => {
8064
+ if (e.readAt ?? (N((e) => Math.max(0, e - 1)), oe((t) => t.map((t) => t._id === e._id ? {
8029
8065
  ...t,
8030
8066
  readAt: Date.now()
8031
8067
  } : t)), k.markNotificationRead(e._id).catch(() => {})), s.some((t) => t._id === e.threadId)) j({
@@ -8040,36 +8076,36 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
8040
8076
  k,
8041
8077
  oe,
8042
8078
  s
8043
- ]), $e = U(() => {
8044
- re(!0), te(0), oe((e) => e.map((e) => e.readAt == null ? {
8079
+ ]), $e = G(() => {
8080
+ re(!0), N(0), oe((e) => e.map((e) => e.readAt == null ? {
8045
8081
  ...e,
8046
8082
  readAt: Date.now()
8047
8083
  } : e)), k.markAllNotificationsRead().catch(() => {}).finally(() => re(!1));
8048
- }, [k, oe]), et = U(async (e) => {
8084
+ }, [k, oe]), et = G(async (e) => {
8049
8085
  if (A.kind !== "thread") return;
8050
8086
  let t = oa(f);
8051
8087
  if (!t) return;
8052
8088
  let n = A.threadId;
8053
- await fe(async () => {
8054
- let r = Kr(e), i = await k.addComment(n, {
8089
+ await I(async () => {
8090
+ let r = Gr(e), i = await k.addComment(n, {
8055
8091
  body: e,
8056
8092
  authorName: t.name,
8057
8093
  authorEmail: t.email,
8058
8094
  mentions: r.length > 0 ? r : void 0
8059
8095
  }).catch(Re);
8060
- c((e) => e.map((e) => e._id === n ? i.thread : e)), be("reply_submitted", { hasMentions: r.length > 0 });
8096
+ c((e) => e.map((e) => e._id === n ? i.thread : e)), ye("reply_submitted", { hasMentions: r.length > 0 });
8061
8097
  });
8062
8098
  }, [
8063
8099
  k,
8064
8100
  f,
8065
8101
  A,
8066
8102
  Re,
8067
- fe
8068
- ]), tt = U(async (e, t) => {
8103
+ I
8104
+ ]), tt = G(async (e, t) => {
8069
8105
  if (A.kind !== "thread" || f.kind !== "anon" && f.kind !== "verified") return;
8070
8106
  let n = A.threadId;
8071
- await fe(async () => {
8072
- let r = Kr(t), i = await k.editComment(n, e, {
8107
+ await I(async () => {
8108
+ let r = Gr(t), i = await k.editComment(n, e, {
8073
8109
  body: t,
8074
8110
  mentions: r.length > 0 ? r : void 0
8075
8111
  });
@@ -8079,11 +8115,11 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
8079
8115
  k,
8080
8116
  f,
8081
8117
  A,
8082
- fe
8083
- ]), nt = U(async (e) => {
8118
+ I
8119
+ ]), U = G(async (e) => {
8084
8120
  if (A.kind !== "thread" || f.kind !== "anon" && f.kind !== "verified") return;
8085
8121
  let t = A.threadId;
8086
- await fe(async () => {
8122
+ await I(async () => {
8087
8123
  let n = await k.deleteComment(t, e);
8088
8124
  c((e) => e.map((e) => e._id === t ? n.thread : e));
8089
8125
  });
@@ -8091,8 +8127,8 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
8091
8127
  k,
8092
8128
  f,
8093
8129
  A,
8094
- fe
8095
- ]), rt = U(async (e, t) => {
8130
+ I
8131
+ ]), rt = G(async (e, t) => {
8096
8132
  if (A.kind !== "thread") return;
8097
8133
  if (!Ie) {
8098
8134
  Fe("sign_in_required");
@@ -8101,12 +8137,12 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
8101
8137
  let n = oa(f);
8102
8138
  if (!n) return;
8103
8139
  let r = A.threadId;
8104
- await he(async () => {
8140
+ await me(async () => {
8105
8141
  let i = await k.toggleReaction(e, {
8106
8142
  emoji: t,
8107
8143
  authorName: n.name
8108
8144
  }).catch(Re);
8109
- c((e) => e.map((e) => e._id === r ? i.thread : e)), be("reaction_added");
8145
+ c((e) => e.map((e) => e._id === r ? i.thread : e)), ye("reaction_added");
8110
8146
  });
8111
8147
  }, [
8112
8148
  k,
@@ -8114,32 +8150,32 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
8114
8150
  f,
8115
8151
  A,
8116
8152
  Re,
8117
- he
8118
- ]), [V, at] = z(!1), ot = U(async () => await _e(async () => (await k.forgetMe(), j({ kind: "idle" }), p({ type: "forget-me" }), at(!0), !0)) === !0, [
8153
+ me
8154
+ ]), [it, at] = V(!1), ot = G(async () => await ge(async () => (await k.forgetMe(), j({ kind: "idle" }), p({ type: "forget-me" }), at(!0), !0)) === !0, [
8119
8155
  k,
8120
- _e,
8156
+ ge,
8121
8157
  p
8122
8158
  ]);
8123
- B(() => {
8124
- if (!V) return;
8159
+ H(() => {
8160
+ if (!it) return;
8125
8161
  let e = window.setTimeout(() => at(!1), 5e3);
8126
8162
  return () => window.clearTimeout(e);
8127
- }, [V]);
8128
- let [st, ct] = z(!1), lt = U(async () => {
8129
- await ve(async () => {
8163
+ }, [it]);
8164
+ let [st, ct] = V(!1), lt = G(async () => {
8165
+ await _e(async () => {
8130
8166
  await k.signOut(), j({ kind: "idle" }), p({ type: "signed-out" }), ct(!0);
8131
8167
  });
8132
8168
  }, [
8133
8169
  k,
8134
- ve,
8170
+ _e,
8135
8171
  p
8136
8172
  ]);
8137
- B(() => {
8173
+ H(() => {
8138
8174
  if (!st) return;
8139
8175
  let e = window.setTimeout(() => ct(!1), 5e3);
8140
8176
  return () => window.clearTimeout(e);
8141
8177
  }, [st]);
8142
- let ut = A.kind === "thread" ? s.find((e) => e._id === A.threadId) ?? null : null, dt = Ae || I != null && I === ut?.authorClientId, ft = H(/* @__PURE__ */ new Map()), W = it(() => {
8178
+ let ut = A.kind === "thread" ? s.find((e) => e._id === A.threadId) ?? null : null, dt = L || Me != null && Me === ut?.authorClientId, ft = W(/* @__PURE__ */ new Map()), pt = nt(() => {
8143
8179
  let e = ft.current, t = s.map((t) => {
8144
8180
  let { point: n, memory: r } = Ti({
8145
8181
  anchorX: t.anchorX,
@@ -8148,7 +8184,7 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
8148
8184
  anchorText: t.anchorText,
8149
8185
  anchorOffsetX: t.anchorOffsetX,
8150
8186
  anchorOffsetY: t.anchorOffsetY
8151
- }, e.get(t._id));
8187
+ }, e.get(t._id), De);
8152
8188
  return e.set(t._id, r), {
8153
8189
  thread: t,
8154
8190
  point: n
@@ -8156,18 +8192,22 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
8156
8192
  });
8157
8193
  for (let t of e.keys()) s.some((e) => e._id === t) || e.delete(t);
8158
8194
  return t;
8159
- }, [s, Ee]), G = H({
8195
+ }, [
8196
+ s,
8197
+ Te,
8198
+ De
8199
+ ]), mt = W({
8160
8200
  retryable: !1,
8161
8201
  elements: []
8162
8202
  });
8163
- B(() => {
8164
- G.current = {
8165
- retryable: W.some((e) => !e.point.resolved && e.thread.anchorSelector != null),
8166
- elements: W.flatMap((e) => e.point.element ? [e.point.element] : [])
8203
+ H(() => {
8204
+ mt.current = {
8205
+ retryable: pt.some((e) => !e.point.resolved && e.thread.anchorSelector != null),
8206
+ elements: pt.flatMap((e) => e.point.element ? [e.point.element] : [])
8167
8207
  };
8168
- }, [W]);
8169
- let pt = s.some((e) => e.anchorSelector != null), mt = ei(A.kind !== "placing" && !Te && v ? W : xl, (e) => e.thread._id, 140), ht = ei(!Te || A.kind === "placing" || A.kind === "composing-new" ? Cl : wl, (e) => e.key, 160), gt = [];
8170
- Ce.kind === "hidden-with-toast" && gt.push({
8208
+ }, [pt]);
8209
+ let ht = s.some((e) => e.anchorSelector != null), gt = $r(A.kind !== "placing" && !we && v ? pt : Tl, (e) => e.thread._id, 140), _t = $r(!we || A.kind === "placing" || A.kind === "composing-new" ? Dl : Ol, (e) => e.key, 160), vt = [];
8210
+ Se.kind === "hidden-with-toast" && vt.push({
8171
8211
  key: "hud-hidden",
8172
8212
  body: /* @__PURE__ */ Q(S, { children: [
8173
8213
  "Markup hidden — press ",
@@ -8181,48 +8221,48 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
8181
8221
  }),
8182
8222
  " or refresh to bring it back."
8183
8223
  ] })
8184
- }), V && gt.push({
8224
+ }), it && vt.push({
8185
8225
  key: "forget-me",
8186
8226
  body: "Forgotten on this site — your name and email were cleared."
8187
- }), st && gt.push({
8227
+ }), st && vt.push({
8188
8228
  key: "signed-out",
8189
8229
  body: "Signed out — commenting anonymously again."
8190
8230
  });
8191
- let _t = ei(gt, (e) => e.key, 220), vt = ei(A.kind === "thread" && ut ? [ut] : Sl, (e) => e._id, 160), K = ti(A.kind === "composing-new" ? A : null, 160), yt = ti(T, 140);
8192
- return B(() => {
8193
- if (!pt) return;
8194
- let e = null;
8195
- function t() {
8231
+ let yt = $r(vt, (e) => e.key, 220), bt = $r(A.kind === "thread" && ut ? [ut] : El, (e) => e._id, 160), K = ei(A.kind === "composing-new" ? A : null, 160), xt = ei(T, 140);
8232
+ return H(() => {
8233
+ if (!ht) return;
8234
+ let e = null, t = !1;
8235
+ function n() {
8196
8236
  e ??= requestAnimationFrame(() => {
8197
- e = null, De((e) => e + 1);
8237
+ e = null, t && (t = !1, Oe((e) => e + 1)), Ee((e) => e + 1);
8198
8238
  });
8199
8239
  }
8200
- let n = new MutationObserver(() => {
8201
- let { retryable: e, elements: n } = G.current;
8202
- !e && n.every((e) => e.isConnected) || t();
8240
+ let r = new MutationObserver(() => {
8241
+ let { retryable: e, elements: r } = mt.current;
8242
+ (e || !r.every((e) => e.isConnected)) && (t = !0, n());
8203
8243
  });
8204
- return n.observe(document.body, {
8244
+ return r.observe(document.body, {
8205
8245
  childList: !0,
8206
8246
  subtree: !0
8207
8247
  }), () => {
8208
- n.disconnect(), e != null && cancelAnimationFrame(e);
8248
+ r.disconnect(), e != null && cancelAnimationFrame(e);
8209
8249
  };
8210
- }, [pt]), B(() => {
8211
- A.kind === "thread" && ut == null && Ge();
8250
+ }, [ht]), H(() => {
8251
+ A.kind === "thread" && ut == null && We();
8212
8252
  }, [
8213
8253
  A,
8214
8254
  ut,
8215
- Ge
8255
+ We
8216
8256
  ]), /* @__PURE__ */ Q("div", {
8217
8257
  class: "markup-root",
8218
- ref: Oe,
8258
+ ref: ke,
8219
8259
  style: Qs,
8220
8260
  children: [
8221
8261
  /* @__PURE__ */ Q("div", {
8222
8262
  class: "markup-pins-layer",
8223
- children: [mt.map(({ key: e, value: { thread: t, point: n }, isLeaving: r, enterDelayMs: i }) => {
8263
+ children: [gt.map(({ key: e, value: { thread: t, point: n }, isLeaving: r, enterDelayMs: i }) => {
8224
8264
  let a = !r && A.kind === "thread" && A.threadId === t._id, o = t.comments.reduce((e, t) => e + +!t.deleted, 0);
8225
- return /* @__PURE__ */ Q(il, {
8265
+ return /* @__PURE__ */ Q(al, {
8226
8266
  pageX: n.pageX,
8227
8267
  pageY: n.pageY,
8228
8268
  count: o,
@@ -8232,97 +8272,97 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
8232
8272
  isLeaving: r,
8233
8273
  enterDelayMs: i,
8234
8274
  onClick: () => {
8235
- be("thread_opened", { commentCount: o }), j({
8275
+ ye("thread_opened", { commentCount: o }), j({
8236
8276
  kind: "thread",
8237
8277
  threadId: t._id
8238
8278
  });
8239
8279
  }
8240
8280
  }, e);
8241
- }), K ? /* @__PURE__ */ Q(al, {
8281
+ }), K ? /* @__PURE__ */ Q(ol, {
8242
8282
  pageX: K.value.pageX,
8243
8283
  pageY: K.value.pageY,
8244
8284
  isLeaving: K.isLeaving
8245
8285
  }) : null]
8246
8286
  }),
8247
- A.kind === "placing" ? /* @__PURE__ */ Q(ol, {
8287
+ A.kind === "placing" ? /* @__PURE__ */ Q(sl, {
8248
8288
  onPlace: Ke,
8249
- onCancel: Ge
8289
+ onCancel: We
8250
8290
  }) : null,
8251
- vt.map(({ key: e, value: t, isLeaving: n }) => /* @__PURE__ */ Q(ul, {
8291
+ bt.map(({ key: e, value: t, isLeaving: n }) => /* @__PURE__ */ Q(fl, {
8252
8292
  thread: t,
8253
8293
  isLeaving: n,
8254
- authorName: ke,
8294
+ authorName: Ae,
8255
8295
  authorPromptMode: Le,
8256
- currentClientId: I ?? null,
8257
- isVerified: Ae,
8296
+ currentClientId: Me ?? null,
8297
+ isVerified: L,
8258
8298
  isIdentityResolving: je,
8259
- isSigningIn: Je,
8299
+ isSigningIn: B,
8260
8300
  canDelete: dt,
8261
- isPending: xe,
8262
- error: Se,
8263
- isHidden: Te,
8264
- members: M,
8301
+ isPending: be,
8302
+ error: xe,
8303
+ isHidden: we,
8304
+ members: ee,
8265
8305
  onAuthor: qe,
8266
- onSignIn: Ye,
8306
+ onSignIn: Je,
8267
8307
  onSignOut: lt,
8268
- onClose: Ge,
8308
+ onClose: We,
8269
8309
  onReply: et,
8270
8310
  onEditComment: tt,
8271
- onDeleteComment: nt,
8311
+ onDeleteComment: U,
8272
8312
  onToggleReaction: rt,
8273
8313
  onDelete: Xe,
8274
8314
  onResolve: Ze
8275
8315
  }, e)),
8276
- K ? /* @__PURE__ */ Q(Wc, {
8316
+ K ? /* @__PURE__ */ Q(Gc, {
8277
8317
  isLeaving: K.isLeaving,
8278
8318
  pageX: K.value.pageX,
8279
8319
  pageY: K.value.pageY,
8280
- authorName: ke,
8320
+ authorName: Ae,
8281
8321
  authorPromptMode: Le,
8282
- isVerified: Ae,
8322
+ isVerified: L,
8283
8323
  isIdentityResolving: je,
8284
- isSigningIn: Je,
8285
- isPending: xe,
8286
- error: Se,
8324
+ isSigningIn: B,
8325
+ isPending: be,
8326
+ error: xe,
8287
8327
  screenshot: K.value.screenshot,
8288
8328
  isScreenshotCapturing: K.value.isScreenshotCapturing,
8289
8329
  screenshotFailed: K.value.screenshotFailed,
8290
8330
  screenshotRedactedCount: K.value.screenshotRedactedCount,
8291
8331
  screenshotRedactedSelectors: K.value.screenshotRedactedSelectors,
8292
- members: M,
8332
+ members: ee,
8293
8333
  onAuthor: qe,
8294
- onSignIn: Ye,
8334
+ onSignIn: Je,
8295
8335
  onSignOut: lt,
8296
- onSubmit: R,
8297
- onClose: Ge
8336
+ onSubmit: Ye,
8337
+ onClose: We
8298
8338
  }) : null,
8299
- ht.map((t) => /* @__PURE__ */ Q(bl, {
8339
+ _t.map((t) => /* @__PURE__ */ Q(wl, {
8300
8340
  isLeaving: t.isLeaving,
8301
8341
  isActive: A.kind === "placing",
8302
- onToggle: () => A.kind === "placing" ? Ge() : We(),
8303
- onHide: () => we({ type: "hide-with-toast" }),
8342
+ onToggle: () => A.kind === "placing" ? We() : z(),
8343
+ onHide: () => Ce({ type: "hide-with-toast" }),
8304
8344
  position: g,
8305
- showInbox: Ae,
8306
- unreadCount: Ae ? N : 0,
8345
+ showInbox: L,
8346
+ unreadCount: L ? te : 0,
8307
8347
  inboxOpen: T === "inbox",
8308
8348
  onOpenInbox: () => {
8309
8349
  let e = T === "inbox" ? null : "inbox";
8310
- E(e), e && (be("notifications_opened", { unreadCount: N }), ae());
8350
+ E(e), e && (ye("notifications_opened", { unreadCount: te }), ae());
8311
8351
  },
8312
8352
  pinsVisible: v,
8313
8353
  onTogglePins: () => y((e) => !e),
8314
8354
  identityButton: /* @__PURE__ */ Q($s, {
8315
8355
  identity: f,
8316
8356
  position: g,
8317
- isSigningIn: Je,
8318
- isSigningOut: ye,
8357
+ isSigningIn: B,
8358
+ isSigningOut: ve,
8319
8359
  dashboardUrl: i,
8320
- commentAccess: Me,
8321
- onSignIn: Ye,
8360
+ commentAccess: R,
8361
+ onSignIn: Je,
8322
8362
  onSignOut: lt,
8323
8363
  onForgetMe: ot
8324
8364
  }),
8325
- overflowButton: /* @__PURE__ */ Q($c, {
8365
+ overflowButton: /* @__PURE__ */ Q(el, {
8326
8366
  position: g,
8327
8367
  onSetPosition: _,
8328
8368
  autoCapture: b && r?.enabled !== !1,
@@ -8330,25 +8370,25 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
8330
8370
  onToggleAutoCapture: () => x((e) => !e),
8331
8371
  showResolved: C,
8332
8372
  onToggleShowResolved: () => w((e) => !e),
8333
- onHideForSession: () => we({ type: "hide-with-toast" }),
8373
+ onHideForSession: () => Ce({ type: "hide-with-toast" }),
8334
8374
  identity: f,
8335
8375
  apiUrl: e,
8336
- commentAccess: Me,
8376
+ commentAccess: R,
8337
8377
  isForgettingMe: ue.isPending,
8338
8378
  forgetMeError: ue.error,
8339
8379
  onForgetMe: ot,
8340
- version: "1.25.0",
8380
+ version: "1.25.2",
8341
8381
  dashboardUrl: i
8342
8382
  })
8343
8383
  }, t.key)),
8344
- yt?.value === "inbox" && Ae ? /* @__PURE__ */ Q(rl, {
8384
+ xt?.value === "inbox" && L ? /* @__PURE__ */ Q(il, {
8345
8385
  kind: "inbox",
8346
8386
  label: "Inbox",
8347
8387
  position: g,
8348
8388
  ignoreToolbarKind: "inbox",
8349
- isLeaving: yt.isLeaving,
8389
+ isLeaving: xt.isLeaving,
8350
8390
  onClose: D,
8351
- children: /* @__PURE__ */ Q(Kc, {
8391
+ children: /* @__PURE__ */ Q(qc, {
8352
8392
  state: ne,
8353
8393
  isMarkingAll: F,
8354
8394
  onBack: D,
@@ -8358,7 +8398,7 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
8358
8398
  onMarkAllRead: $e
8359
8399
  })
8360
8400
  }) : null,
8361
- _t.map((e) => /* @__PURE__ */ Q(jl, {
8401
+ yt.map((e) => /* @__PURE__ */ Q(Fl, {
8362
8402
  position: g,
8363
8403
  isLeaving: e.isLeaving,
8364
8404
  children: e.value.body
@@ -8366,7 +8406,7 @@ function Al({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
8366
8406
  ]
8367
8407
  });
8368
8408
  }
8369
- function jl({ position: e, isLeaving: t, children: n }) {
8409
+ function Fl({ position: e, isLeaving: t, children: n }) {
8370
8410
  return /* @__PURE__ */ Q("div", {
8371
8411
  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"),
8372
8412
  role: "status",
@@ -8377,52 +8417,52 @@ function jl({ position: e, isLeaving: t, children: n }) {
8377
8417
  }
8378
8418
  //#endregion
8379
8419
  //#region src/runtime/mount.tsx
8380
- function Ml(e, t) {
8381
- e.style.position = "fixed", e.style.inset = "0", e.style.zIndex = "2147483647", e.style.pointerEvents = "none", ze(e, t.theme ?? "auto");
8382
- let n = We(), r = e.attachShadow({ mode: "open" }), i = document.createElement("style");
8420
+ function Il(e, t) {
8421
+ e.style.position = "fixed", e.style.inset = "0", e.style.zIndex = "2147483647", e.style.pointerEvents = "none", Le(e, t.theme ?? "auto");
8422
+ let n = He(), r = e.attachShadow({ mode: "open" }), i = document.createElement("style");
8383
8423
  i.textContent = le, r.appendChild(i);
8384
8424
  let a = document.createElement("div");
8385
- a.className = "markup-shadow-root", r.appendChild(a), je({
8425
+ a.className = "markup-shadow-root", r.appendChild(a), Ae({
8386
8426
  apiUrl: t.apiUrl,
8387
8427
  apiKey: t.apiKey,
8388
- widgetVersion: "1.25.0"
8389
- }), ye(t.analytics === !1 ? null : {
8428
+ widgetVersion: "1.25.2"
8429
+ }), ve(t.analytics === !1 ? null : {
8390
8430
  apiUrl: t.apiUrl,
8391
8431
  apiKey: t.apiKey,
8392
- widgetVersion: "1.25.0"
8393
- }), be("widget_loaded");
8432
+ widgetVersion: "1.25.2"
8433
+ }), ye("widget_loaded");
8394
8434
  let { theme: o, analytics: s, ...c } = t;
8395
- return ce(/* @__PURE__ */ Q(Ce, {
8396
- onError: (e) => I(e, { context: "render" }),
8397
- children: /* @__PURE__ */ Q(Al, { ...c })
8435
+ return ce(/* @__PURE__ */ Q(Se, {
8436
+ onError: (e) => L(e, { context: "render" }),
8437
+ children: /* @__PURE__ */ Q(Pl, { ...c })
8398
8438
  }), a), () => {
8399
- n(), je(null), ye(null), ce(null, a);
8439
+ n(), Ae(null), ve(null), ce(null, a);
8400
8440
  };
8401
8441
  }
8402
8442
  //#endregion
8403
8443
  //#region src/widget.ts
8404
- var Nl = null, Pl = null, Fl = null, Il = !1;
8405
- function Ll(e) {
8444
+ var Ll = null, Rl = null, zl = null, Bl = !1;
8445
+ function Vl(e) {
8406
8446
  if (!e.apiUrl || !e.apiKey) return console.warn("[markup] init() requires both apiUrl and apiKey, so the widget was not mounted"), () => {};
8407
- e.fab != null && !Il && (Il = !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.")), Rl();
8447
+ e.fab != null && !Bl && (Bl = !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.")), Hl();
8408
8448
  let t = () => {
8409
- if (Fl = null, !document.body) return;
8449
+ if (zl = null, !document.body) return;
8410
8450
  let t = document.createElement("div");
8411
- t.id = "markup-widget", document.body.appendChild(t), Pl = t, Nl = Ml(t, e);
8451
+ t.id = "markup-widget", document.body.appendChild(t), Rl = t, Ll = Il(t, e);
8412
8452
  };
8413
8453
  if (document.readyState === "loading" || !document.body) {
8414
8454
  let e = () => t();
8415
- Fl = () => document.removeEventListener("DOMContentLoaded", e), document.addEventListener("DOMContentLoaded", e, { once: !0 });
8455
+ zl = () => document.removeEventListener("DOMContentLoaded", e), document.addEventListener("DOMContentLoaded", e, { once: !0 });
8416
8456
  } else t();
8417
- return Rl;
8457
+ return Hl;
8418
8458
  }
8419
- function Rl() {
8420
- Fl &&= (Fl(), null), Nl &&= (Nl(), null), Pl?.parentNode && Pl.parentNode.removeChild(Pl), Pl = null;
8459
+ function Hl() {
8460
+ zl &&= (zl(), null), Ll &&= (Ll(), null), Rl?.parentNode && Rl.parentNode.removeChild(Rl), Rl = null;
8421
8461
  }
8422
8462
  if (typeof document < "u") {
8423
8463
  let e = document.currentScript ?? document.querySelector("script[data-markup-widget=\"true\"]"), t = e?.dataset.apiUrl, n = e?.dataset.apiKey;
8424
8464
  if (t && n) {
8425
- let r = e?.dataset.position, i = e?.dataset.theme, a = e?.dataset.fab, o = e?.dataset.dashboardUrl, s = e?.dataset.analytics !== "false", c = () => Ll({
8465
+ let r = e?.dataset.position, i = e?.dataset.theme, a = e?.dataset.fab, o = e?.dataset.dashboardUrl, s = e?.dataset.analytics !== "false", c = () => Vl({
8426
8466
  apiUrl: t,
8427
8467
  apiKey: n,
8428
8468
  position: r,
@@ -8435,6 +8475,6 @@ if (typeof document < "u") {
8435
8475
  }
8436
8476
  }
8437
8477
  //#endregion
8438
- export { Rl as destroy, Ll as init };
8478
+ export { Hl as destroy, Vl as init };
8439
8479
 
8440
8480
  //# sourceMappingURL=widget.js.map