linear-grab 0.23.4 → 0.23.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -46044,10 +46044,28 @@ function O2() {
46044
46044
  w2 = [];
46045
46045
  for (let e of T2) e(w2);
46046
46046
  }
46047
- var k2 = !1;
46048
- function A2() {
46049
- if (k2 || typeof window > "u") return;
46050
- k2 = !0;
46047
+ var k2 = !0;
46048
+ try {
46049
+ k2 = localStorage.getItem("linear-grab:css-watch") !== "0";
46050
+ } catch {}
46051
+ var A2 = /* @__PURE__ */ new Set();
46052
+ function j2() {
46053
+ return k2;
46054
+ }
46055
+ function M2(e) {
46056
+ k2 = e;
46057
+ try {
46058
+ localStorage.setItem("linear-grab:css-watch", e ? "1" : "0");
46059
+ } catch {}
46060
+ for (let t of A2) t(e);
46061
+ }
46062
+ function N2(e) {
46063
+ return A2.add(e), e(k2), () => void A2.delete(e);
46064
+ }
46065
+ var P2 = !1;
46066
+ function F2() {
46067
+ if (P2 || typeof window > "u") return;
46068
+ P2 = !0;
46051
46069
  let e = 0, t = () => {
46052
46070
  e = performance.now();
46053
46071
  };
@@ -46061,6 +46079,7 @@ function A2() {
46061
46079
  });
46062
46080
  let n = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map();
46063
46081
  window.addEventListener("transitionrun", (t) => {
46082
+ if (!k2) return;
46064
46083
  let i = performance.now() - e;
46065
46084
  if (i > d2) return;
46066
46085
  let a = t.target;
@@ -46110,9 +46129,9 @@ function A2() {
46110
46129
  passive: !0
46111
46130
  });
46112
46131
  }
46113
- var j2 = "button, a, input, select, textarea, [role], [tabindex], [data-state], [aria-expanded]";
46114
- async function M2() {
46115
- let e = /* @__PURE__ */ new Map(), t = Array.from(document.querySelectorAll(j2)).slice(0, 3e3);
46132
+ var I2 = "button, a, input, select, textarea, [role], [tabindex], [data-state], [aria-expanded]";
46133
+ async function L2() {
46134
+ let e = /* @__PURE__ */ new Map(), t = Array.from(document.querySelectorAll(I2)).slice(0, 3e3);
46116
46135
  for (let n of t) {
46117
46136
  if (n.closest("#linear-grab-root")) continue;
46118
46137
  let t = n.getBoundingClientRect();
@@ -46157,7 +46176,7 @@ async function M2() {
46157
46176
  for (let e of n) C2(e);
46158
46177
  return n;
46159
46178
  }
46160
- function N2(e) {
46179
+ function R2(e) {
46161
46180
  return [
46162
46181
  "Below is a CSS-slowdown report from my running app (live-captured on real input + full-page audit).",
46163
46182
  "Goal: ALL interaction feedback must be instant. Rules:",
@@ -46186,10 +46205,10 @@ function N2(e) {
46186
46205
  "",
46187
46206
  "---",
46188
46207
  "",
46189
- P2(e)
46208
+ z2(e)
46190
46209
  ].join("\n");
46191
46210
  }
46192
- function P2(e) {
46211
+ function z2(e) {
46193
46212
  let t = [
46194
46213
  `# CSS slowdowns on ${location.host}${location.pathname}`,
46195
46214
  "Threshold: 50ms (interaction feedback should be instant).",
@@ -46200,22 +46219,22 @@ function P2(e) {
46200
46219
  }
46201
46220
  //#endregion
46202
46221
  //#region src/panel/views/DesignView.tsx
46203
- var F2 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[7ch] text-center\">Extract"), I2 = /*#__PURE__*/ N("<div class=\"relative flex flex-col gap-2 pl-4\"><div class=\"bg-border absolute top-1 bottom-1 left-[5px] w-px\"aria-hidden>"), L2 = /*#__PURE__*/ N("<span class=\"text-success text-[12px] leading-none\">✓"), R2 = /*#__PURE__*/ N("<svg width=12 height=12 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round aria-hidden><path d=\"M4 4l8 8M12 4l-8 8\">"), z2 = /*#__PURE__*/ N("<div class=\"flex items-center justify-end gap-1 px-1\">"), B2 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[5ch] text-center\">Audit"), V2 = /*#__PURE__*/ N("<div class=\"flex max-h-72 flex-col gap-1.5 overflow-y-auto pr-2\">"), H2 = /*#__PURE__*/ N("<span class=\"text-[12px] leading-none\">✓"), U2 = /*#__PURE__*/ N("<div class=\"flex items-center gap-1 px-1\">"), W2 = /*#__PURE__*/ N("<div class=\"flex h-full flex-col gap-3 overflow-y-auto pt-3 pb-4 pr-3 pl-2\"><div class=\"flex items-center justify-between gap-2 px-1\"><div class=min-w-0><p class=\"text-text text-[12.5px] font-semibold\">Design genomes</p><p class=\"text-text-faint text-[10.5px] leading-snug\">Point at a component → get its structure, tokens and interaction states as a spec you can hand to an agent.</p></div></div><div class=\"border-border mt-1 flex flex-col gap-2 border-t pt-3\"><div class=\"flex items-center justify-between gap-2 px-1\"><div class=min-w-0><p class=\"text-text text-[12.5px] font-semibold\">CSS slowdowns</p><p class=\"text-text-faint text-[10.5px] leading-snug\">Transitions/delays ≥50ms on interactive elements — feedback that animates instead of being instant. Live hits appear as you use the app; Audit sweeps the whole page."), G2 = /*#__PURE__*/ N("<p class=\"text-text mt-1 text-[11px] font-semibold\">Interaction states"), K2 = /*#__PURE__*/ N("<svg width=12 height=12 viewBox=\"0 0 16 16\"aria-hidden><rect x=3.5 y=3.5 width=9 height=9 rx=1.5 fill=currentColor>"), q2 = /*#__PURE__*/ N("<span class=\"text-warn text-[10.5px] font-medium tabular-nums\">s · <!> states"), J2 = /*#__PURE__*/ N("<div class=\"border-border flex flex-col gap-2 border-t px-2.5 py-2\"><p class=\"text-text-faint truncate text-[10px]\"></p><div class=\"flex max-h-64 flex-col gap-2 overflow-y-auto pr-2\"></div><div class=\"flex items-center gap-1\">"), Y2 = /*#__PURE__*/ N("<div class=relative><span class=\"border-border bg-surface absolute top-3 -left-[13.5px] size-[9px] rounded-full border\"aria-hidden></span><div class=\"bg-surface border-border flex flex-col rounded-lg border\"><button class=\"flex w-full cursor-pointer items-center gap-2 px-2.5 py-2 text-left\"><span class=\"text-accent min-w-0 truncate font-mono text-[12px]\"></span><span class=\"text-text-faint ml-auto shrink-0 text-[10.5px] tabular-nums\"> roles<!> · </span><svg width=10 height=10 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 class=\"text-text-faint shrink-0 transition-transform\"aria-hidden><path d=\"m4 6 4 4 4-4\">"), X2 = /*#__PURE__*/ N("<span class=text-text-faint> ×"), Z2 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-0.5\"><p class=\"text-text text-[11px] font-medium\">"), Q2 = /*#__PURE__*/ N("<span class=text-accent> ← var(<!>)"), $2 = /*#__PURE__*/ N("<p class=\"text-text-dim font-mono text-[10px] leading-snug break-all\">: "), e4 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-0.5\"><p class=\"text-warn text-[10.5px] font-medium\"> — "), t4 = /*#__PURE__*/ N("<p class=\"text-text-dim font-mono text-[10px] leading-snug break-all\">: <!> → "), n4 = /*#__PURE__*/ N("<svg width=13 height=13 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round aria-hidden><circle cx=8 cy=8 r=6></circle><circle cx=8 cy=8 r=2 fill=currentColor stroke=none>"), r4 = /*#__PURE__*/ N("<svg width=13 height=13 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linejoin=round aria-hidden><rect x=5.5 y=5.5 width=9 height=9 rx=1.5></rect><path d=\"M10.5 5.5v-2a2 2 0 0 0-2-2h-5a2 2 0 0 0-2 2v5a2 2 0 0 0 2 2h2\">"), i4 = /*#__PURE__*/ N("<p class=\"text-text-faint px-1 text-[10.5px]\">Nothing caught yet — interact with the app, or run Audit."), a4 = /*#__PURE__*/ N("<span class=\"text-text-dim font-mono text-[10px] break-all\">"), o4 = /*#__PURE__*/ N("<span class=\"text-danger text-[10px] leading-snug\">⚠ layout/paint transition: "), s4 = /*#__PURE__*/ N("<span class=\"text-danger text-[10px] leading-snug\">⚠ ease-in easing: "), c4 = /*#__PURE__*/ N("<div class=\"bg-surface border-border flex flex-col gap-0.5 rounded-lg border p-2\"><div class=\"flex items-center gap-2\"><span class=\"text-warn shrink-0 text-[10px] font-semibold tracking-wide uppercase\"></span><span class=\"text-accent min-w-0 truncate font-mono text-[11.5px]\"></span><span class=\"text-text ml-auto shrink-0 text-[11px] font-medium tabular-nums\">ms</span></div><span class=\"text-text-dim text-[10px] leading-snug\"></span><span class=\"text-text-faint text-[10px] leading-snug\">"), l4 = /*#__PURE__*/ N("<svg width=13 height=13 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round aria-hidden><path d=\"M8 1.5 9.6 6l4.4 1.6L9.6 9.2 8 13.7 6.4 9.2 2 7.6 6.4 6Z\"></path><path d=\"M13 11.5l.6 1.7 1.7.6-1.7.6-.6 1.7-.6-1.7-1.7-.6 1.7-.6Z\">"), u4 = "linear-grab:genomes:v1", d4 = 30;
46204
- function f4() {
46222
+ var B2 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[7ch] text-center\">Extract"), V2 = /*#__PURE__*/ N("<div class=\"relative flex flex-col gap-2 pl-4\"><div class=\"bg-border absolute top-1 bottom-1 left-[5px] w-px\"aria-hidden>"), H2 = /*#__PURE__*/ N("<span class=\"text-success text-[12px] leading-none\">✓"), U2 = /*#__PURE__*/ N("<svg width=12 height=12 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round aria-hidden><path d=\"M4 4l8 8M12 4l-8 8\">"), W2 = /*#__PURE__*/ N("<div class=\"flex items-center justify-end gap-1 px-1\">"), G2 = /*#__PURE__*/ N("<span class=\"relative inline-flex items-center justify-center\"><svg width=12 height=12 viewBox=\"0 0 16 16\"fill=currentColor aria-hidden><rect x=3.5 y=3 width=3.2 height=10 rx=1></rect><rect x=9.3 y=3 width=3.2 height=10 rx=1></rect></svg><span class=\"bg-success absolute -top-0.5 -right-0.5 size-1.5 animate-pulse rounded-full\"aria-hidden>"), K2 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[5ch] text-center\">Audit"), q2 = /*#__PURE__*/ N("<div class=\"flex max-h-72 flex-col gap-1.5 overflow-y-auto pr-2\">"), J2 = /*#__PURE__*/ N("<span class=\"text-[12px] leading-none\">✓"), Y2 = /*#__PURE__*/ N("<div class=\"flex items-center gap-1 px-1\">"), X2 = /*#__PURE__*/ N("<div class=\"flex h-full flex-col gap-3 overflow-y-auto pt-3 pb-4 pr-3 pl-2\"><div class=\"flex items-center justify-between gap-2 px-1\"><div class=min-w-0><p class=\"text-text text-[12.5px] font-semibold\">Design genomes</p><p class=\"text-text-faint text-[10.5px] leading-snug\">Point at a component → get its structure, tokens and interaction states as a spec you can hand to an agent.</p></div></div><div class=\"border-border mt-1 flex flex-col gap-2 border-t pt-3\"><div class=\"flex items-center justify-between gap-2 px-1\"><div class=min-w-0><p class=\"text-text text-[12.5px] font-semibold\">CSS slowdowns</p><p class=\"text-text-faint text-[10.5px] leading-snug\">Transitions/delays ≥50ms on interactive elements — feedback that animates instead of being instant. Live hits appear as you use the app; Audit sweeps the whole page.</p></div><div class=\"flex shrink-0 items-center gap-1\">"), Z2 = /*#__PURE__*/ N("<p class=\"text-text mt-1 text-[11px] font-semibold\">Interaction states"), Q2 = /*#__PURE__*/ N("<svg width=12 height=12 viewBox=\"0 0 16 16\"aria-hidden><rect x=3.5 y=3.5 width=9 height=9 rx=1.5 fill=currentColor>"), $2 = /*#__PURE__*/ N("<span class=\"text-warn text-[10.5px] font-medium tabular-nums\">s · <!> states"), e4 = /*#__PURE__*/ N("<div class=\"border-border flex flex-col gap-2 border-t px-2.5 py-2\"><p class=\"text-text-faint truncate text-[10px]\"></p><div class=\"flex max-h-64 flex-col gap-2 overflow-y-auto pr-2\"></div><div class=\"flex items-center gap-1\">"), t4 = /*#__PURE__*/ N("<div class=relative><span class=\"border-border bg-surface absolute top-3 -left-[13.5px] size-[9px] rounded-full border\"aria-hidden></span><div class=\"bg-surface border-border flex flex-col rounded-lg border\"><button class=\"flex w-full cursor-pointer items-center gap-2 px-2.5 py-2 text-left\"><span class=\"text-accent min-w-0 truncate font-mono text-[12px]\"></span><span class=\"text-text-faint ml-auto shrink-0 text-[10.5px] tabular-nums\"> roles<!> · </span><svg width=10 height=10 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 class=\"text-text-faint shrink-0 transition-transform\"aria-hidden><path d=\"m4 6 4 4 4-4\">"), n4 = /*#__PURE__*/ N("<span class=text-text-faint> ×"), r4 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-0.5\"><p class=\"text-text text-[11px] font-medium\">"), i4 = /*#__PURE__*/ N("<span class=text-accent> ← var(<!>)"), a4 = /*#__PURE__*/ N("<p class=\"text-text-dim font-mono text-[10px] leading-snug break-all\">: "), o4 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-0.5\"><p class=\"text-warn text-[10.5px] font-medium\"> — "), s4 = /*#__PURE__*/ N("<p class=\"text-text-dim font-mono text-[10px] leading-snug break-all\">: <!> → "), c4 = /*#__PURE__*/ N("<svg width=13 height=13 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round aria-hidden><circle cx=8 cy=8 r=6></circle><circle cx=8 cy=8 r=2 fill=currentColor stroke=none>"), l4 = /*#__PURE__*/ N("<svg width=13 height=13 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linejoin=round aria-hidden><rect x=5.5 y=5.5 width=9 height=9 rx=1.5></rect><path d=\"M10.5 5.5v-2a2 2 0 0 0-2-2h-5a2 2 0 0 0-2 2v5a2 2 0 0 0 2 2h2\">"), u4 = /*#__PURE__*/ N("<svg width=12 height=12 viewBox=\"0 0 16 16\"fill=currentColor aria-hidden><path d=\"M4.5 2.5v11l9-5.5z\">"), d4 = /*#__PURE__*/ N("<p class=\"text-text-faint px-1 text-[10.5px]\">Nothing caught yet — interact with the app, or run Audit."), f4 = /*#__PURE__*/ N("<span class=\"text-text-dim font-mono text-[10px] break-all\">"), p4 = /*#__PURE__*/ N("<span class=\"text-danger text-[10px] leading-snug\">⚠ layout/paint transition: "), m4 = /*#__PURE__*/ N("<span class=\"text-danger text-[10px] leading-snug\">⚠ ease-in easing: "), h4 = /*#__PURE__*/ N("<div class=\"bg-surface border-border flex flex-col gap-0.5 rounded-lg border p-2\"><div class=\"flex items-center gap-2\"><span class=\"text-warn shrink-0 text-[10px] font-semibold tracking-wide uppercase\"></span><span class=\"text-accent min-w-0 truncate font-mono text-[11.5px]\"></span><span class=\"text-text ml-auto shrink-0 text-[11px] font-medium tabular-nums\">ms</span></div><span class=\"text-text-dim text-[10px] leading-snug\"></span><span class=\"text-text-faint text-[10px] leading-snug\">"), g4 = /*#__PURE__*/ N("<svg width=13 height=13 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round aria-hidden><path d=\"M8 1.5 9.6 6l4.4 1.6L9.6 9.2 8 13.7 6.4 9.2 2 7.6 6.4 6Z\"></path><path d=\"M13 11.5l.6 1.7 1.7.6-1.7.6-.6 1.7-.6-1.7-1.7-.6 1.7-.6Z\">"), _4 = "linear-grab:genomes:v1", v4 = 30;
46223
+ function y4() {
46205
46224
  try {
46206
- return JSON.parse(localStorage.getItem(u4) ?? "[]");
46225
+ return JSON.parse(localStorage.getItem(_4) ?? "[]");
46207
46226
  } catch {
46208
46227
  return [];
46209
46228
  }
46210
46229
  }
46211
- function p4(e) {
46230
+ function b4(e) {
46212
46231
  try {
46213
- localStorage.setItem(u4, JSON.stringify(e.slice(0, d4)));
46232
+ localStorage.setItem(_4, JSON.stringify(e.slice(0, v4)));
46214
46233
  } catch {}
46215
46234
  }
46216
- var m4 = /* @__PURE__ */ new Map();
46217
- function h4() {
46218
- let [e, t] = T(f4()), [n, r] = T(null), [i, a] = T(null), [o, s] = T(null), [c, l] = T(null), [u, d] = T(null), [f, p] = T({
46235
+ var x4 = /* @__PURE__ */ new Map();
46236
+ function S4() {
46237
+ let [e, t] = T(y4()), [n, r] = T(null), [i, a] = T(null), [o, s] = T(null), [c, l] = T(null), [u, d] = T(null), [f, p] = T({
46219
46238
  active: !1,
46220
46239
  msLeft: 0,
46221
46240
  total: 0,
@@ -46224,34 +46243,36 @@ function h4() {
46224
46243
  ae(i2(p));
46225
46244
  let [m, h] = T([]);
46226
46245
  ae(D2(h));
46227
- let [g, _] = T(!1), [v, y] = T(!1), b = async () => {
46228
- _(!0);
46246
+ let [g, _] = T(j2());
46247
+ ae(N2(_));
46248
+ let [v, y] = T(!1), [b, x] = T(!1), S = async () => {
46249
+ y(!0);
46229
46250
  try {
46230
- await M2();
46251
+ await L2();
46231
46252
  } finally {
46232
- _(!1);
46253
+ y(!1);
46233
46254
  }
46234
- }, x = async () => {
46255
+ }, C = async () => {
46235
46256
  try {
46236
- await navigator.clipboard.writeText(P2(m())), y(!0), setTimeout(() => y(!1), 1600);
46257
+ await navigator.clipboard.writeText(z2(m())), x(!0), setTimeout(() => x(!1), 1600);
46237
46258
  } catch {
46238
46259
  l("Clipboard was blocked — click Copy again.");
46239
46260
  }
46240
- }, [S, C] = T(!1), w = async () => {
46261
+ }, [w, E] = T(!1), O = async () => {
46241
46262
  try {
46242
- await navigator.clipboard.writeText(N2(m())), C(!0), setTimeout(() => C(!1), 1600);
46263
+ await navigator.clipboard.writeText(R2(m())), E(!0), setTimeout(() => E(!1), 1600);
46243
46264
  } catch {
46244
46265
  l("Clipboard was blocked — click Copy again.");
46245
46266
  }
46246
- }, E = (e) => {
46247
- t(e), p4(e);
46248
- }, O = async () => {
46267
+ }, k = (e) => {
46268
+ t(e), b4(e);
46269
+ }, ee = async () => {
46249
46270
  l(null), a("extract"), window.dispatchEvent(new CustomEvent(BZ));
46250
46271
  try {
46251
46272
  let t = await u2();
46252
46273
  if (!t) return;
46253
46274
  let n = await e2(t), i = Date.now();
46254
- m4.set(i, new WeakRef(t)), E([{
46275
+ x4.set(i, new WeakRef(t)), k([{
46255
46276
  id: i,
46256
46277
  genome: n
46257
46278
  }, ...e()]), r(i);
@@ -46260,16 +46281,16 @@ function h4() {
46260
46281
  } finally {
46261
46282
  a(null), oj("design"), window.dispatchEvent(new CustomEvent(VZ));
46262
46283
  }
46263
- }, k = async (t) => {
46284
+ }, te = async (t) => {
46264
46285
  l(null), a(t.id), window.dispatchEvent(new CustomEvent(BZ));
46265
46286
  try {
46266
- let n = m4.get(t.id)?.deref() ?? null;
46287
+ let n = x4.get(t.id)?.deref() ?? null;
46267
46288
  if (!n || !n.isConnected) {
46268
46289
  if (n = await u2(), !n) return;
46269
- m4.set(t.id, new WeakRef(n));
46290
+ x4.set(t.id, new WeakRef(n));
46270
46291
  }
46271
46292
  let r = await c2(n, 8e3, (e) => s(Math.ceil(e / 1e3)));
46272
- r.length === 0 && l("No state changes captured — hover/open the component while the 8s window runs."), E(e().map((e) => e.id === t.id ? {
46293
+ r.length === 0 && l("No state changes captured — hover/open the component while the 8s window runs."), k(e().map((e) => e.id === t.id ? {
46273
46294
  ...e,
46274
46295
  genome: {
46275
46296
  ...e.genome,
@@ -46281,37 +46302,37 @@ function h4() {
46281
46302
  } finally {
46282
46303
  a(null), s(null), oj("design"), window.dispatchEvent(new CustomEvent(VZ));
46283
46304
  }
46284
- }, ee = async (e) => {
46305
+ }, A = async (e) => {
46285
46306
  try {
46286
46307
  await navigator.clipboard.writeText(l2(e.genome)), d(e.id), setTimeout(() => d(null), 1600);
46287
46308
  } catch {
46288
46309
  l("Clipboard was blocked — click Copy again.");
46289
46310
  }
46290
- }, te = (t) => {
46291
- m4.delete(t), E(e().filter((e) => e.id !== t));
46292
- }, [A, ne] = T(!1), re = async () => {
46311
+ }, ne = (t) => {
46312
+ x4.delete(t), k(e().filter((e) => e.id !== t));
46313
+ }, [re, ie] = T(!1), oe = async () => {
46293
46314
  try {
46294
46315
  let t = e().map((e) => l2(e.genome)).join("\n\n---\n\n");
46295
- await navigator.clipboard.writeText(t), ne(!0), setTimeout(() => ne(!1), 1600);
46316
+ await navigator.clipboard.writeText(t), ie(!0), setTimeout(() => ie(!1), 1600);
46296
46317
  } catch {
46297
46318
  l("Clipboard was blocked — click Copy again.");
46298
46319
  }
46299
- }, ie = () => {
46300
- m4.clear(), E([]), r(null);
46320
+ }, se = () => {
46321
+ x4.clear(), k([]), r(null);
46301
46322
  };
46302
46323
  return (() => {
46303
- var t = W2(), a = t.firstChild;
46324
+ var t = X2(), a = t.firstChild;
46304
46325
  a.firstChild;
46305
- var o = a.nextSibling, s = o.firstChild;
46306
- return s.firstChild, P(a, j(kj, {
46326
+ var o = a.nextSibling, s = o.firstChild.firstChild.nextSibling;
46327
+ return P(a, j(kj, {
46307
46328
  variant: "primary",
46308
46329
  class: "h-7 shrink-0 px-2.5 text-[11.5px]",
46309
46330
  get loading() {
46310
46331
  return i() === "extract";
46311
46332
  },
46312
- onClick: () => void O(),
46333
+ onClick: () => void ee(),
46313
46334
  get children() {
46314
- return F2();
46335
+ return B2();
46315
46336
  }
46316
46337
  }), null), P(t, j(M, {
46317
46338
  get when() {
@@ -46334,7 +46355,7 @@ function h4() {
46334
46355
  },
46335
46356
  get children() {
46336
46357
  return [(() => {
46337
- var t = I2();
46358
+ var t = V2();
46338
46359
  return t.firstChild, P(t, j(We, {
46339
46360
  get each() {
46340
46361
  return e();
@@ -46342,7 +46363,7 @@ function h4() {
46342
46363
  children: (e) => {
46343
46364
  let t = () => n() === e.id;
46344
46365
  return (() => {
46345
- var n = Y2(), a = n.firstChild, o = a.nextSibling, s = o.firstChild, c = s.firstChild, l = c.nextSibling, d = l.firstChild, p = d.nextSibling;
46366
+ var n = t4(), a = n.firstChild, o = a.nextSibling, s = o.firstChild, c = s.firstChild, l = c.nextSibling, d = l.firstChild, p = d.nextSibling;
46346
46367
  p.nextSibling;
46347
46368
  var m = l.nextSibling;
46348
46369
  return s.$$click = () => r(t() ? null : e.id), P(c, () => e.genome.title), P(l, () => e.genome.nodes.length, d), P(l, (() => {
@@ -46353,19 +46374,19 @@ function h4() {
46353
46374
  return t();
46354
46375
  },
46355
46376
  get children() {
46356
- var t = J2(), n = t.firstChild, r = n.nextSibling, a = r.nextSibling;
46377
+ var t = e4(), n = t.firstChild, r = n.nextSibling, a = r.nextSibling;
46357
46378
  return P(n, () => e.genome.pageUrl), P(r, j(We, {
46358
46379
  get each() {
46359
46380
  return e.genome.nodes;
46360
46381
  },
46361
46382
  children: (e) => (() => {
46362
- var t = Z2(), n = t.firstChild;
46383
+ var t = r4(), n = t.firstChild;
46363
46384
  return P(n, () => e.label, null), P(n, j(M, {
46364
46385
  get when() {
46365
46386
  return e.count > 1;
46366
46387
  },
46367
46388
  get children() {
46368
- var t = X2();
46389
+ var t = n4();
46369
46390
  return t.firstChild, P(t, () => e.count, null), t;
46370
46391
  }
46371
46392
  }), null), P(t, j(We, {
@@ -46373,13 +46394,13 @@ function h4() {
46373
46394
  return Object.entries(e.styles);
46374
46395
  },
46375
46396
  children: ([t, n]) => (() => {
46376
- var r = $2(), i = r.firstChild;
46397
+ var r = a4(), i = r.firstChild;
46377
46398
  return P(r, t, i), P(r, n, null), P(r, j(M, {
46378
46399
  get when() {
46379
46400
  return e.tokens[t];
46380
46401
  },
46381
46402
  get children() {
46382
- var n = Q2(), r = n.firstChild.nextSibling;
46403
+ var n = i4(), r = n.firstChild.nextSibling;
46383
46404
  return r.nextSibling, P(n, () => e.tokens[t], r), n;
46384
46405
  }
46385
46406
  }), null), r;
@@ -46391,18 +46412,18 @@ function h4() {
46391
46412
  return e.genome.states.length > 0;
46392
46413
  },
46393
46414
  get children() {
46394
- return [G2(), j(We, {
46415
+ return [Z2(), j(We, {
46395
46416
  get each() {
46396
46417
  return e.genome.states;
46397
46418
  },
46398
46419
  children: (e) => (() => {
46399
- var t = e4(), n = t.firstChild, r = n.firstChild;
46420
+ var t = o4(), n = t.firstChild, r = n.firstChild;
46400
46421
  return P(n, () => e.label, r), P(n, () => e.trigger, null), P(t, j(We, {
46401
46422
  get each() {
46402
46423
  return Object.entries(e.changed);
46403
46424
  },
46404
46425
  children: ([e, t]) => (() => {
46405
- var n = t4(), r = n.firstChild, i = r.nextSibling;
46426
+ var n = s4(), r = n.firstChild, i = r.nextSibling;
46406
46427
  return i.nextSibling, P(n, e, r), P(n, () => t.from, i), P(n, () => t.to, null), n;
46407
46428
  })()
46408
46429
  }), null), t;
@@ -46422,9 +46443,9 @@ function h4() {
46422
46443
  },
46423
46444
  title: "Capture states — records hover/focus/open styles for 8s while you interact; the pill shows the timer and Stop",
46424
46445
  "aria-label": "Capture interaction states",
46425
- onClick: () => void k(e),
46446
+ onClick: () => void te(e),
46426
46447
  get children() {
46427
- return n4();
46448
+ return c4();
46428
46449
  }
46429
46450
  });
46430
46451
  },
@@ -46438,10 +46459,10 @@ function h4() {
46438
46459
  "aria-label": "Stop recording states",
46439
46460
  onClick: () => o2(),
46440
46461
  get children() {
46441
- return K2();
46462
+ return Q2();
46442
46463
  }
46443
46464
  }), (() => {
46444
- var e = q2(), t = e.firstChild, n = t.nextSibling;
46465
+ var e = $2(), t = e.firstChild, n = t.nextSibling;
46445
46466
  return n.nextSibling, P(e, () => Math.ceil(f().msLeft / 1e3), t), P(e, () => f().total, n), e;
46446
46467
  })()];
46447
46468
  }
@@ -46452,17 +46473,17 @@ function h4() {
46452
46473
  return u() === e.id ? "Copied!" : "Copy spec — markdown for an agent or issue";
46453
46474
  },
46454
46475
  "aria-label": "Copy genome spec",
46455
- onClick: () => void ee(e),
46476
+ onClick: () => void A(e),
46456
46477
  get children() {
46457
46478
  return j(M, {
46458
46479
  get when() {
46459
46480
  return u() === e.id;
46460
46481
  },
46461
46482
  get fallback() {
46462
- return r4();
46483
+ return l4();
46463
46484
  },
46464
46485
  get children() {
46465
- return L2();
46486
+ return H2();
46466
46487
  }
46467
46488
  });
46468
46489
  }
@@ -46471,9 +46492,9 @@ function h4() {
46471
46492
  variant: "ghost",
46472
46493
  title: "Delete this genome",
46473
46494
  "aria-label": "Delete genome",
46474
- onClick: () => te(e.id),
46495
+ onClick: () => ne(e.id),
46475
46496
  get children() {
46476
- return R2();
46497
+ return U2();
46477
46498
  }
46478
46499
  }), null), t;
46479
46500
  }
@@ -46488,25 +46509,25 @@ function h4() {
46488
46509
  }
46489
46510
  }), null), t;
46490
46511
  })(), (() => {
46491
- var e = z2();
46512
+ var e = W2();
46492
46513
  return P(e, j(kj, {
46493
46514
  class: "size-7 px-0",
46494
46515
  variant: "ghost",
46495
46516
  get title() {
46496
- return A() ? "Copied!" : "Copy all genomes as one markdown document";
46517
+ return re() ? "Copied!" : "Copy all genomes as one markdown document";
46497
46518
  },
46498
46519
  "aria-label": "Copy all genomes",
46499
- onClick: () => void re(),
46520
+ onClick: () => void oe(),
46500
46521
  get children() {
46501
46522
  return j(M, {
46502
46523
  get when() {
46503
- return A();
46524
+ return re();
46504
46525
  },
46505
46526
  get fallback() {
46506
- return r4();
46527
+ return l4();
46507
46528
  },
46508
46529
  get children() {
46509
- return L2();
46530
+ return H2();
46510
46531
  }
46511
46532
  });
46512
46533
  }
@@ -46515,39 +46536,62 @@ function h4() {
46515
46536
  variant: "ghost",
46516
46537
  title: "Delete all saved genomes",
46517
46538
  "aria-label": "Delete all genomes",
46518
- onClick: ie,
46539
+ onClick: se,
46519
46540
  get children() {
46520
- return R2();
46541
+ return U2();
46521
46542
  }
46522
46543
  }), null), e;
46523
46544
  })()];
46524
46545
  }
46525
46546
  }), o), P(s, j(kj, {
46547
+ class: "size-7 px-0",
46526
46548
  variant: "ghost",
46527
- class: "h-7 shrink-0 px-2.5 text-[11.5px]",
46549
+ get title() {
46550
+ return g() ? "Live capture ON — recording transitions fired by your input. Click to pause." : "Live capture PAUSED — click to resume recording input-triggered transitions.";
46551
+ },
46552
+ get "aria-label"() {
46553
+ return g() ? "Pause live capture" : "Start live capture";
46554
+ },
46555
+ onClick: () => M2(!g()),
46556
+ get children() {
46557
+ return j(M, {
46558
+ get when() {
46559
+ return g();
46560
+ },
46561
+ get fallback() {
46562
+ return u4();
46563
+ },
46564
+ get children() {
46565
+ return G2();
46566
+ }
46567
+ });
46568
+ }
46569
+ }), null), P(s, j(kj, {
46570
+ variant: "ghost",
46571
+ class: "h-7 px-2.5 text-[11.5px]",
46528
46572
  get loading() {
46529
- return g();
46573
+ return v();
46530
46574
  },
46531
- onClick: () => void b(),
46575
+ onClick: () => void S(),
46532
46576
  get children() {
46533
- return B2();
46577
+ return K2();
46534
46578
  }
46535
46579
  }), null), P(o, j(M, {
46536
46580
  get when() {
46537
46581
  return m().length > 0;
46538
46582
  },
46539
46583
  get fallback() {
46540
- return i4();
46584
+ return d4();
46541
46585
  },
46542
46586
  get children() {
46543
46587
  return [(() => {
46544
- var e = V2();
46588
+ var e = q2();
46545
46589
  return P(e, j(We, {
46546
46590
  get each() {
46547
46591
  return m();
46548
46592
  },
46549
46593
  children: (e) => (() => {
46550
- var t = c4(), n = t.firstChild, r = n.firstChild, i = r.nextSibling, a = i.nextSibling, o = a.firstChild, s = n.nextSibling, c = s.nextSibling;
46594
+ var t = h4(), n = t.firstChild, r = n.firstChild, i = r.nextSibling, a = i.nextSibling, o = a.firstChild, s = n.nextSibling, c = s.nextSibling;
46551
46595
  return P(r, () => e.mode === "live" ? "live" : "audit"), P(i, () => e.component ?? e.element, null), P(i, j(M, {
46552
46596
  get when() {
46553
46597
  return e.count > 1;
@@ -46563,7 +46607,7 @@ function h4() {
46563
46607
  return e.source;
46564
46608
  },
46565
46609
  get children() {
46566
- var t = a4();
46610
+ var t = f4();
46567
46611
  return P(t, () => e.source), t;
46568
46612
  }
46569
46613
  }), s), P(s, () => e.properties.join(", "), null), P(s, j(M, {
@@ -46582,7 +46626,7 @@ function h4() {
46582
46626
  return e.jankProps?.length;
46583
46627
  },
46584
46628
  get children() {
46585
- var t = o4();
46629
+ var t = p4();
46586
46630
  return t.firstChild, P(t, () => e.jankProps.join(", "), null), t;
46587
46631
  }
46588
46632
  }), c), P(t, j(M, {
@@ -46590,32 +46634,32 @@ function h4() {
46590
46634
  return e.easing;
46591
46635
  },
46592
46636
  get children() {
46593
- var t = s4();
46637
+ var t = m4();
46594
46638
  return t.firstChild, P(t, () => e.easing, null), t;
46595
46639
  }
46596
46640
  }), c), P(c, () => e.suggestion), t;
46597
46641
  })()
46598
46642
  })), e;
46599
46643
  })(), (() => {
46600
- var e = U2();
46644
+ var e = Y2();
46601
46645
  return P(e, j(kj, {
46602
46646
  class: "size-7 px-0",
46603
46647
  variant: "primary",
46604
46648
  get title() {
46605
- return S() ? "Copied!" : "Copy AI prompt — report + fix rules, ready to paste into a Claude Code session";
46649
+ return w() ? "Copied!" : "Copy AI prompt — report + fix rules, ready to paste into a Claude Code session";
46606
46650
  },
46607
46651
  "aria-label": "Copy AI fix prompt",
46608
- onClick: () => void w(),
46652
+ onClick: () => void O(),
46609
46653
  get children() {
46610
46654
  return j(M, {
46611
46655
  get when() {
46612
- return S();
46656
+ return w();
46613
46657
  },
46614
46658
  get fallback() {
46615
- return l4();
46659
+ return g4();
46616
46660
  },
46617
46661
  get children() {
46618
- return H2();
46662
+ return J2();
46619
46663
  }
46620
46664
  });
46621
46665
  }
@@ -46623,20 +46667,20 @@ function h4() {
46623
46667
  class: "size-7 px-0",
46624
46668
  variant: "ghost",
46625
46669
  get title() {
46626
- return v() ? "Copied!" : "Copy report — plain markdown findings";
46670
+ return b() ? "Copied!" : "Copy report — plain markdown findings";
46627
46671
  },
46628
46672
  "aria-label": "Copy report",
46629
- onClick: () => void x(),
46673
+ onClick: () => void C(),
46630
46674
  get children() {
46631
46675
  return j(M, {
46632
46676
  get when() {
46633
- return v();
46677
+ return b();
46634
46678
  },
46635
46679
  get fallback() {
46636
- return r4();
46680
+ return l4();
46637
46681
  },
46638
46682
  get children() {
46639
- return L2();
46683
+ return H2();
46640
46684
  }
46641
46685
  });
46642
46686
  }
@@ -46647,7 +46691,7 @@ function h4() {
46647
46691
  "aria-label": "Clear all findings",
46648
46692
  onClick: O2,
46649
46693
  get children() {
46650
- return R2();
46694
+ return U2();
46651
46695
  }
46652
46696
  }), null), e;
46653
46697
  })()];
@@ -46658,7 +46702,7 @@ function h4() {
46658
46702
  rt(["click"]);
46659
46703
  //#endregion
46660
46704
  //#region src/lib/projectConfig.ts
46661
- var g4 = [
46705
+ var C4 = [
46662
46706
  "defaultTeamId",
46663
46707
  "defaultProjectId",
46664
46708
  "defaultLabelIds",
@@ -46673,29 +46717,29 @@ var g4 = [
46673
46717
  "issueTemplate",
46674
46718
  "testUsername"
46675
46719
  ];
46676
- function _4(e) {
46720
+ function w4(e) {
46677
46721
  let t = {};
46678
- for (let n of g4) {
46722
+ for (let n of C4) {
46679
46723
  let r = e[n];
46680
46724
  r !== void 0 && r !== "" && !(Array.isArray(r) && r.length === 0) && (t[n] = r);
46681
46725
  }
46682
46726
  return t;
46683
46727
  }
46684
- function v4(e, t) {
46728
+ function T4(e, t) {
46685
46729
  let n = {};
46686
- for (let r of g4) e[r] === void 0 && t[r] !== void 0 && (n[r] = t[r]);
46730
+ for (let r of C4) e[r] === void 0 && t[r] !== void 0 && (n[r] = t[r]);
46687
46731
  return Object.keys(n).length ? n : null;
46688
46732
  }
46689
46733
  //#endregion
46690
46734
  //#region src/lib/linear/auth.ts
46691
46735
  Br();
46692
- function y4(e) {
46736
+ function E4(e) {
46693
46737
  let t = "";
46694
46738
  for (let n of e) t += String.fromCharCode(n);
46695
46739
  return btoa(t).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
46696
46740
  }
46697
- async function b4(e) {
46698
- let t = y4(crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(32))), n = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(t)), r = y4(new Uint8Array(n)), i = y4(crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(16))), a = chrome.identity.getRedirectURL(), o = new URL("https://linear.app/oauth/authorize");
46741
+ async function D4(e) {
46742
+ let t = E4(crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(32))), n = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(t)), r = E4(new Uint8Array(n)), i = E4(crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(16))), a = chrome.identity.getRedirectURL(), o = new URL("https://linear.app/oauth/authorize");
46699
46743
  o.searchParams.set("client_id", e), o.searchParams.set("redirect_uri", a), o.searchParams.set("response_type", "code"), o.searchParams.set("scope", "read,write"), o.searchParams.set("state", i), o.searchParams.set("code_challenge", r), o.searchParams.set("code_challenge_method", "S256");
46700
46744
  let s = await chrome.identity.launchWebAuthFlow({
46701
46745
  url: o.toString(),
@@ -46723,15 +46767,15 @@ async function b4(e) {
46723
46767
  linearOauthClientId: e
46724
46768
  });
46725
46769
  }
46726
- async function x4() {
46770
+ async function O4() {
46727
46771
  await Er({
46728
46772
  linearAccessToken: void 0,
46729
46773
  linearApiKey: void 0
46730
46774
  });
46731
46775
  }
46732
46776
  Br(), Sr(), Fx(), gD();
46733
- var S4 = /*#__PURE__*/ N("<div class=\"bg-surface-2 border-border flex rounded-md border p-0.5\">"), C4 = /*#__PURE__*/ N("<span class=\"text-text-faint text-[10.5px] leading-snug\">Cloud: picking an element opens the panel to draft &amp; delegate to the Cursor agent. Local (react-grab style): picking auto-copies the element's context — source, stack, and your skills/memory paths — straight to the clipboard for a local Claude Code or Cursor session; the panel stays out of the way. Both share the same picker; switch anytime."), w4 = /*#__PURE__*/ N("<label class=\"flex cursor-pointer items-center gap-2 select-none\"><input type=checkbox class=\"accent-accent rounded\"><span class=\"text-text text-[12px]\">Element screenshots"), T4 = /*#__PURE__*/ N("<span class=\"text-text-faint text-[10.5px] leading-snug\">Captures a highlighted screenshot of each picked element and attaches it to the issue. Costs a beat on huge pages — with this off, picking is instant (pure react-grab speed)."), E4 = /*#__PURE__*/ N("<span class=text-text>Connected as <span class=font-medium></span> · <span class=text-text-dim>"), D4 = /*#__PURE__*/ N("<div class=\"bg-surface border-border flex items-center justify-between rounded-lg border p-2.5\"><span class=\"text-text text-[12px]\">"), O4 = /*#__PURE__*/ N("<option value>Select a team…"), k4 = /*#__PURE__*/ N("<option value>No project"), A4 = /*#__PURE__*/ N("<div class=\"flex flex-wrap gap-1\">"), j4 = /*#__PURE__*/ N("<label class=\"flex items-start gap-2\"><input type=checkbox class=\"accent-accent mt-0.5\"><span class=\"flex flex-col gap-0.5\"><span class=text-[12px]>Let agents close out Linear themselves</span><span class=\"text-text-faint text-[10.5px] leading-snug\">Embeds your Linear API key + raw GraphQL closeout recipes in every issue's Agent instructions — cloud agent VMs have no authenticated Linear MCP, so without this they can't comment, attach media, or move the issue. The key is visible to anyone who can read the issue."), M4 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">No agents found — install the Cursor integration in Linear first."), N4 = /*#__PURE__*/ N("<span class=\"text-text-faint text-[10.5px] leading-snug\">Empty = the default above (computer-use testing, video demo, PR + review babysitting)."), P4 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1.5\">"), F4 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1\"><span class=\"text-text-dim text-[11px] font-medium\">Mode</span><div class=\"bg-surface-2 border-border flex rounded-md border p-0.5\"></div><span class=\"text-text-faint text-[10.5px] leading-snug\">Beside page squeezes the app next to the panel, DevTools-style — nothing gets covered. Also toggleable from the dock icon in the panel header."), I4 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1\"><span class=\"text-text-dim text-[11px] font-medium\">Dock side</span><div class=\"bg-surface-2 border-border flex rounded-md border p-0.5\"></div><span class=\"text-text-faint text-[10.5px] leading-snug\">The launcher pill is draggable — park it anywhere it doesn't cover your app."), L4 = /*#__PURE__*/ N("<p class=\"text-text-faint text-[10.5px] leading-snug\">A committed <code>.lineargrab.json</code> at the repo root (where the bridge runs) shares team/project/labels, skills, staging branch, and workflow defaults with every machine and teammate — it seeds any setting you haven't set locally. Secrets never belong in it."), R4 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[10ch] text-center\">"), z4 = /*#__PURE__*/ N("<div class=\"flex items-center gap-2\">"), B4 = /*#__PURE__*/ N("<option value>Select a channel…"), V4 = /*#__PURE__*/ N("<label class=\"flex cursor-pointer items-center gap-2 select-none\"><input type=checkbox class=\"accent-accent rounded\"><span class=\"text-text text-[12px]\">Announce new issues on create"), H4 = /*#__PURE__*/ N("<span class=\"text-text-faint text-[10.5px] leading-snug\">⚠️ Tokens are embedded in issue Agent-instructions so agents can post the finished demo — everyone who can read the issue can read them. Use single-channel-scoped bots."), U4 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1\"><span class=\"text-text-dim text-[11px] font-medium\">Provider preference</span><div class=\"bg-surface-2 border-border flex rounded-md border p-0.5\"><button>Auto</button><button>OpenAI</button><button>Anthropic"), W4 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">"), G4 = /*#__PURE__*/ N("<div class=min-h-[2lh]>"), K4 = /*#__PURE__*/ N("<ol class=\"text-text-faint flex list-decimal flex-col gap-1 pl-4 text-[11px] leading-relaxed\"><li>Pick an element on your running dev app.</li><li>Draft the issue (AI optional).</li><li>Create + delegate — Cursor's cloud agent fixes it and opens a PR.</li><li>Track and steer it from Activity."), q4 = /*#__PURE__*/ N("<div class=\"flex h-full flex-col gap-5 overflow-y-auto pt-3 pb-6 pl-3 pr-4\">"), J4 = /*#__PURE__*/ N("<button>"), Y4 = /*#__PURE__*/ N("<div class=\"flex gap-1.5\">"), X4 = /*#__PURE__*/ N("<p class=\"text-text-faint text-center text-[10.5px]\">or"), Z4 = /*#__PURE__*/ N("<span class=\"text-text-faint text-[10.5px] leading-snug\">Register this callback URL in your Linear OAuth app config:<br><span class=\"font-mono text-[10.5px] break-all\">"), Q4 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-3\">"), $4 = /*#__PURE__*/ N("<span class=text-text-dim>Connected — verifying…"), e3 = /*#__PURE__*/ N("<option> (<!>)"), t3 = /*#__PURE__*/ N("<option>"), n3 = /*#__PURE__*/ N("<button type=button><span class=\"mr-1 inline-block size-2 rounded-full align-middle\">"), r3 = /*#__PURE__*/ N("<option value>Select the agent…"), i3 = /*#__PURE__*/ N("<option>#"), a3 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">No key set — AI drafting disabled, manual drafting still works.");
46734
- function o3() {
46777
+ var k4 = /*#__PURE__*/ N("<div class=\"bg-surface-2 border-border flex rounded-md border p-0.5\">"), A4 = /*#__PURE__*/ N("<span class=\"text-text-faint text-[10.5px] leading-snug\">Cloud: picking an element opens the panel to draft &amp; delegate to the Cursor agent. Local (react-grab style): picking auto-copies the element's context — source, stack, and your skills/memory paths — straight to the clipboard for a local Claude Code or Cursor session; the panel stays out of the way. Both share the same picker; switch anytime."), j4 = /*#__PURE__*/ N("<label class=\"flex cursor-pointer items-center gap-2 select-none\"><input type=checkbox class=\"accent-accent rounded\"><span class=\"text-text text-[12px]\">Element screenshots"), M4 = /*#__PURE__*/ N("<span class=\"text-text-faint text-[10.5px] leading-snug\">Captures a highlighted screenshot of each picked element and attaches it to the issue. Costs a beat on huge pages — with this off, picking is instant (pure react-grab speed)."), N4 = /*#__PURE__*/ N("<span class=text-text>Connected as <span class=font-medium></span> · <span class=text-text-dim>"), P4 = /*#__PURE__*/ N("<div class=\"bg-surface border-border flex items-center justify-between rounded-lg border p-2.5\"><span class=\"text-text text-[12px]\">"), F4 = /*#__PURE__*/ N("<option value>Select a team…"), I4 = /*#__PURE__*/ N("<option value>No project"), L4 = /*#__PURE__*/ N("<div class=\"flex flex-wrap gap-1\">"), R4 = /*#__PURE__*/ N("<label class=\"flex items-start gap-2\"><input type=checkbox class=\"accent-accent mt-0.5\"><span class=\"flex flex-col gap-0.5\"><span class=text-[12px]>Let agents close out Linear themselves</span><span class=\"text-text-faint text-[10.5px] leading-snug\">Embeds your Linear API key + raw GraphQL closeout recipes in every issue's Agent instructions — cloud agent VMs have no authenticated Linear MCP, so without this they can't comment, attach media, or move the issue. The key is visible to anyone who can read the issue."), z4 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">No agents found — install the Cursor integration in Linear first."), B4 = /*#__PURE__*/ N("<span class=\"text-text-faint text-[10.5px] leading-snug\">Empty = the default above (computer-use testing, video demo, PR + review babysitting)."), V4 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1.5\">"), H4 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1\"><span class=\"text-text-dim text-[11px] font-medium\">Mode</span><div class=\"bg-surface-2 border-border flex rounded-md border p-0.5\"></div><span class=\"text-text-faint text-[10.5px] leading-snug\">Beside page squeezes the app next to the panel, DevTools-style — nothing gets covered. Also toggleable from the dock icon in the panel header."), U4 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1\"><span class=\"text-text-dim text-[11px] font-medium\">Dock side</span><div class=\"bg-surface-2 border-border flex rounded-md border p-0.5\"></div><span class=\"text-text-faint text-[10.5px] leading-snug\">The launcher pill is draggable — park it anywhere it doesn't cover your app."), W4 = /*#__PURE__*/ N("<p class=\"text-text-faint text-[10.5px] leading-snug\">A committed <code>.lineargrab.json</code> at the repo root (where the bridge runs) shares team/project/labels, skills, staging branch, and workflow defaults with every machine and teammate — it seeds any setting you haven't set locally. Secrets never belong in it."), G4 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[10ch] text-center\">"), K4 = /*#__PURE__*/ N("<div class=\"flex items-center gap-2\">"), q4 = /*#__PURE__*/ N("<option value>Select a channel…"), J4 = /*#__PURE__*/ N("<label class=\"flex cursor-pointer items-center gap-2 select-none\"><input type=checkbox class=\"accent-accent rounded\"><span class=\"text-text text-[12px]\">Announce new issues on create"), Y4 = /*#__PURE__*/ N("<span class=\"text-text-faint text-[10.5px] leading-snug\">⚠️ Tokens are embedded in issue Agent-instructions so agents can post the finished demo — everyone who can read the issue can read them. Use single-channel-scoped bots."), X4 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1\"><span class=\"text-text-dim text-[11px] font-medium\">Provider preference</span><div class=\"bg-surface-2 border-border flex rounded-md border p-0.5\"><button>Auto</button><button>OpenAI</button><button>Anthropic"), Z4 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">"), Q4 = /*#__PURE__*/ N("<div class=min-h-[2lh]>"), $4 = /*#__PURE__*/ N("<ol class=\"text-text-faint flex list-decimal flex-col gap-1 pl-4 text-[11px] leading-relaxed\"><li>Pick an element on your running dev app.</li><li>Draft the issue (AI optional).</li><li>Create + delegate — Cursor's cloud agent fixes it and opens a PR.</li><li>Track and steer it from Activity."), e3 = /*#__PURE__*/ N("<div class=\"flex h-full flex-col gap-5 overflow-y-auto pt-3 pb-6 pl-3 pr-4\">"), t3 = /*#__PURE__*/ N("<button>"), n3 = /*#__PURE__*/ N("<div class=\"flex gap-1.5\">"), r3 = /*#__PURE__*/ N("<p class=\"text-text-faint text-center text-[10.5px]\">or"), i3 = /*#__PURE__*/ N("<span class=\"text-text-faint text-[10.5px] leading-snug\">Register this callback URL in your Linear OAuth app config:<br><span class=\"font-mono text-[10.5px] break-all\">"), a3 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-3\">"), o3 = /*#__PURE__*/ N("<span class=text-text-dim>Connected — verifying…"), s3 = /*#__PURE__*/ N("<option> (<!>)"), c3 = /*#__PURE__*/ N("<option>"), l3 = /*#__PURE__*/ N("<button type=button><span class=\"mr-1 inline-block size-2 rounded-full align-middle\">"), u3 = /*#__PURE__*/ N("<option value>Select the agent…"), d3 = /*#__PURE__*/ N("<option>#"), f3 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">No key set — AI drafting disabled, manual drafting still works.");
46778
+ function p3() {
46735
46779
  let e = sr(), t = _r(() => ({
46736
46780
  queryKey: ["settings"],
46737
46781
  queryFn: Tr,
@@ -46759,13 +46803,13 @@ function o3() {
46759
46803
  retry: 0
46760
46804
  })), [l, u] = T(!1), d = async () => {
46761
46805
  try {
46762
- await navigator.clipboard.writeText(JSON.stringify(_4(n()), null, 2) + "\n"), u(!0), setTimeout(() => u(!1), 1800);
46806
+ await navigator.clipboard.writeText(JSON.stringify(w4(n()), null, 2) + "\n"), u(!0), setTimeout(() => u(!1), 1800);
46763
46807
  } catch {}
46764
46808
  }, f = () => {
46765
46809
  let e = c.data?.projectConfig;
46766
46810
  if (!e) return;
46767
46811
  let t = {};
46768
- for (let n of g4) e[n] !== void 0 && (t[n] = e[n]);
46812
+ for (let n of C4) e[n] !== void 0 && (t[n] = e[n]);
46769
46813
  r(t);
46770
46814
  }, p = _r(() => ({
46771
46815
  queryKey: ["linear-labels"],
@@ -46798,7 +46842,7 @@ function o3() {
46798
46842
  }
46799
46843
  E(!0), ee("");
46800
46844
  try {
46801
- await b4(t), await e.invalidateQueries({ queryKey: ["settings"] }), await e.invalidateQueries({ queryKey: ["viewer"] }), await e.invalidateQueries({ queryKey: ["teams"] }), await e.invalidateQueries({ queryKey: ["agents"] }), await e.invalidateQueries({ queryKey: ["my-issues"] });
46845
+ await D4(t), await e.invalidateQueries({ queryKey: ["settings"] }), await e.invalidateQueries({ queryKey: ["viewer"] }), await e.invalidateQueries({ queryKey: ["teams"] }), await e.invalidateQueries({ queryKey: ["agents"] }), await e.invalidateQueries({ queryKey: ["my-issues"] });
46802
46846
  } catch (e) {
46803
46847
  ee(e instanceof Error ? e.message : "OAuth flow failed.");
46804
46848
  } finally {
@@ -46809,7 +46853,7 @@ function o3() {
46809
46853
  async function re() {
46810
46854
  ne(!0);
46811
46855
  try {
46812
- await x4(), await e.invalidateQueries({ queryKey: ["settings"] }), await e.invalidateQueries({ queryKey: ["viewer"] }), await e.invalidateQueries({ queryKey: ["teams"] }), await e.invalidateQueries({ queryKey: ["agents"] }), await e.invalidateQueries({ queryKey: ["my-issues"] });
46856
+ await O4(), await e.invalidateQueries({ queryKey: ["settings"] }), await e.invalidateQueries({ queryKey: ["viewer"] }), await e.invalidateQueries({ queryKey: ["teams"] }), await e.invalidateQueries({ queryKey: ["agents"] }), await e.invalidateQueries({ queryKey: ["my-issues"] });
46813
46857
  } finally {
46814
46858
  ne(!1);
46815
46859
  }
@@ -46825,12 +46869,12 @@ function o3() {
46825
46869
  return e ? `Drafting with ${e} — ${Nx[e].fast} (fast) / ${Nx[e].best} (best)` : null;
46826
46870
  });
46827
46871
  return (() => {
46828
- var e = q4();
46872
+ var e = e3();
46829
46873
  return P(e, j(Rj, {
46830
46874
  title: "Workflow",
46831
46875
  get children() {
46832
46876
  return [(() => {
46833
- var e = S4();
46877
+ var e = k4();
46834
46878
  return P(e, j(We, {
46835
46879
  each: [{
46836
46880
  id: "cloud",
@@ -46840,19 +46884,19 @@ function o3() {
46840
46884
  label: "Local · clipboard"
46841
46885
  }],
46842
46886
  children: (e) => (() => {
46843
- var t = J4();
46887
+ var t = t3();
46844
46888
  return t.$$click = () => void r({ workflowMode: e.id }), P(t, () => e.label), D(() => st(t, `flex-1 rounded-[5px] px-2 py-1 text-[11.5px] font-medium transition-colors ${(n().workflowMode ?? "cloud") === e.id ? "bg-surface-3 text-text" : "text-text-dim hover:text-text cursor-pointer"}`)), t;
46845
46889
  })()
46846
46890
  })), e;
46847
- })(), C4()];
46891
+ })(), A4()];
46848
46892
  }
46849
46893
  }), null), P(e, j(Rj, {
46850
46894
  title: "Capture",
46851
46895
  get children() {
46852
46896
  return [(() => {
46853
- var e = w4(), t = e.firstChild;
46897
+ var e = j4(), t = e.firstChild;
46854
46898
  return t.addEventListener("change", (e) => void r({ captureShots: e.currentTarget.checked || void 0 })), D(() => t.checked = !!n().captureShots), e;
46855
- })(), T4()];
46899
+ })(), M4()];
46856
46900
  }
46857
46901
  }), null), P(e, j(Rj, {
46858
46902
  title: "Linear",
@@ -46863,13 +46907,13 @@ function o3() {
46863
46907
  },
46864
46908
  get fallback() {
46865
46909
  return (() => {
46866
- var e = Q4();
46910
+ var e = a3();
46867
46911
  return P(e, j(Lj, {
46868
46912
  label: "Personal API key",
46869
46913
  hint: "Create one at linear.app → Settings → API — fastest path.",
46870
46914
  get children() {
46871
46915
  return [(() => {
46872
- var e = Y4();
46916
+ var e = n3();
46873
46917
  return P(e, j(jj, {
46874
46918
  type: "password",
46875
46919
  placeholder: "lin_api_…",
@@ -46906,12 +46950,12 @@ function o3() {
46906
46950
  }), null), P(e, j(M, {
46907
46951
  when: xr,
46908
46952
  get children() {
46909
- return [X4(), j(Lj, {
46953
+ return [r3(), j(Lj, {
46910
46954
  label: "OAuth client ID",
46911
46955
  get children() {
46912
46956
  return [
46913
46957
  (() => {
46914
- var e = Y4();
46958
+ var e = n3();
46915
46959
  return P(e, j(jj, {
46916
46960
  placeholder: "your-client-id",
46917
46961
  get value() {
@@ -46939,7 +46983,7 @@ function o3() {
46939
46983
  }
46940
46984
  }),
46941
46985
  (() => {
46942
- var e = Z4(), t = e.firstChild.nextSibling.nextSibling;
46986
+ var e = i3(), t = e.firstChild.nextSibling.nextSibling;
46943
46987
  return P(t, ie), e;
46944
46988
  })()
46945
46989
  ];
@@ -46950,13 +46994,13 @@ function o3() {
46950
46994
  })();
46951
46995
  },
46952
46996
  get children() {
46953
- var e = D4(), t = e.firstChild;
46997
+ var e = P4(), t = e.firstChild;
46954
46998
  return P(t, j(M, {
46955
46999
  get when() {
46956
47000
  return !a.isLoading;
46957
47001
  },
46958
47002
  get fallback() {
46959
- return $4();
47003
+ return o3();
46960
47004
  },
46961
47005
  get children() {
46962
47006
  return j(M, {
@@ -46969,7 +47013,7 @@ function o3() {
46969
47013
  return a.isError;
46970
47014
  },
46971
47015
  get fallback() {
46972
- return $4();
47016
+ return o3();
46973
47017
  },
46974
47018
  get children() {
46975
47019
  return j(Hj, { message: "Key rejected — reconnect" });
@@ -46977,7 +47021,7 @@ function o3() {
46977
47021
  });
46978
47022
  },
46979
47023
  get children() {
46980
- var e = E4(), t = e.firstChild.nextSibling, n = t.nextSibling.nextSibling;
47024
+ var e = N4(), t = e.firstChild.nextSibling, n = t.nextSibling.nextSibling;
46981
47025
  return P(t, () => a.data.name), P(n, () => a.data.email), e;
46982
47026
  }
46983
47027
  });
@@ -47018,7 +47062,7 @@ function o3() {
47018
47062
  return o.isLoading;
47019
47063
  },
47020
47064
  get children() {
47021
- return [O4(), j(M, {
47065
+ return [F4(), j(M, {
47022
47066
  get when() {
47023
47067
  return o.data;
47024
47068
  },
@@ -47028,7 +47072,7 @@ function o3() {
47028
47072
  return o.data;
47029
47073
  },
47030
47074
  children: (e) => (() => {
47031
- var t = e3(), r = t.firstChild, i = r.nextSibling;
47075
+ var t = s3(), r = t.firstChild, i = r.nextSibling;
47032
47076
  return i.nextSibling, P(t, () => e.name, r), P(t, () => e.key, i), D(() => t.selected = e.id === n().defaultTeamId), D(() => t.value = e.id), t;
47033
47077
  })()
47034
47078
  });
@@ -47052,14 +47096,14 @@ function o3() {
47052
47096
  },
47053
47097
  get children() {
47054
47098
  return [(() => {
47055
- var e = k4();
47099
+ var e = I4();
47056
47100
  return D(() => e.selected = !n().defaultProjectId), e;
47057
47101
  })(), j(We, {
47058
47102
  get each() {
47059
47103
  return s.data ?? [];
47060
47104
  },
47061
47105
  children: (e) => (() => {
47062
- var t = t3();
47106
+ var t = c3();
47063
47107
  return P(t, () => e.name), D(() => t.selected = e.id === n().defaultProjectId), D(() => t.value = e.id), t;
47064
47108
  })()
47065
47109
  })];
@@ -47071,7 +47115,7 @@ function o3() {
47071
47115
  label: "Default labels",
47072
47116
  hint: "Applied to every issue created from the panel.",
47073
47117
  get children() {
47074
- var e = A4();
47118
+ var e = L4();
47075
47119
  return P(e, j(We, {
47076
47120
  get each() {
47077
47121
  return p.data ?? [];
@@ -47079,7 +47123,7 @@ function o3() {
47079
47123
  children: (e) => {
47080
47124
  let t = () => (n().defaultLabelIds ?? []).includes(e.id);
47081
47125
  return (() => {
47082
- var i = n3(), a = i.firstChild;
47126
+ var i = l3(), a = i.firstChild;
47083
47127
  return i.$$click = () => {
47084
47128
  let i = n().defaultLabelIds ?? [];
47085
47129
  r({ defaultLabelIds: t() ? i.filter((t) => t !== e.id) : [...i, e.id] });
@@ -47096,7 +47140,7 @@ function o3() {
47096
47140
  }
47097
47141
  }),
47098
47142
  (() => {
47099
- var e = j4(), t = e.firstChild;
47143
+ var e = R4(), t = e.firstChild;
47100
47144
  return t.addEventListener("change", (e) => void r({ shareLinearKey: e.currentTarget.checked })), D(() => t.checked = !!n().shareLinearKey), e;
47101
47145
  })(),
47102
47146
  j(Lj, {
@@ -47146,7 +47190,7 @@ function o3() {
47146
47190
  return m.isLoading;
47147
47191
  },
47148
47192
  get children() {
47149
- return [r3(), j(M, {
47193
+ return [u3(), j(M, {
47150
47194
  get when() {
47151
47195
  return m.data;
47152
47196
  },
@@ -47156,7 +47200,7 @@ function o3() {
47156
47200
  return m.data;
47157
47201
  },
47158
47202
  children: (e) => (() => {
47159
- var t = t3();
47203
+ var t = c3();
47160
47204
  return P(t, () => e.displayName), D(() => t.selected = e.id === n().cursorAgentId), D(() => t.value = e.id), t;
47161
47205
  })()
47162
47206
  });
@@ -47166,7 +47210,7 @@ function o3() {
47166
47210
  });
47167
47211
  },
47168
47212
  get children() {
47169
- return M4();
47213
+ return z4();
47170
47214
  }
47171
47215
  });
47172
47216
  }
@@ -47214,7 +47258,7 @@ function o3() {
47214
47258
  onBlur: (e) => {
47215
47259
  r({ issueTemplate: e.currentTarget.value.trim() || void 0 });
47216
47260
  }
47217
- }), N4()];
47261
+ }), B4()];
47218
47262
  }
47219
47263
  }),
47220
47264
  j(Lj, {
@@ -47271,7 +47315,7 @@ function o3() {
47271
47315
  label: "Test account",
47272
47316
  hint: "The cloud agent logs into the app with this while testing and recording its demo. Added to every issue's Agent instructions. Use a throwaway account — it's visible to everyone who can read the issue.",
47273
47317
  get children() {
47274
- var e = P4();
47318
+ var e = V4();
47275
47319
  return P(e, j(jj, {
47276
47320
  placeholder: "Username or email (e.g. demo@yourapp.com)",
47277
47321
  get value() {
@@ -47303,7 +47347,7 @@ function o3() {
47303
47347
  title: "Panel",
47304
47348
  get children() {
47305
47349
  return [(() => {
47306
- var e = F4(), t = e.firstChild.nextSibling;
47350
+ var e = H4(), t = e.firstChild.nextSibling;
47307
47351
  return P(t, j(We, {
47308
47352
  each: [{
47309
47353
  id: "overlay",
@@ -47313,7 +47357,7 @@ function o3() {
47313
47357
  label: "Beside page"
47314
47358
  }],
47315
47359
  children: (e) => (() => {
47316
- var t = J4();
47360
+ var t = t3();
47317
47361
  return t.$$click = () => void r({
47318
47362
  panelMode: e.id,
47319
47363
  panelPos: void 0
@@ -47321,11 +47365,11 @@ function o3() {
47321
47365
  })()
47322
47366
  })), e;
47323
47367
  })(), (() => {
47324
- var e = I4(), t = e.firstChild.nextSibling;
47368
+ var e = U4(), t = e.firstChild.nextSibling;
47325
47369
  return P(t, j(We, {
47326
47370
  each: ["left", "right"],
47327
47371
  children: (e) => (() => {
47328
- var t = J4();
47372
+ var t = t3();
47329
47373
  return t.$$click = () => void r({ panelSide: e }), P(t, e === "left" ? "Left" : "Right"), D(() => st(t, `flex-1 rounded-[5px] px-2 py-0.5 text-[11.5px] font-medium transition-colors ${(n().panelSide ?? "right") === e ? "bg-surface-3 text-text" : "text-text-dim hover:text-text cursor-pointer"}`)), t;
47330
47374
  })()
47331
47375
  })), e;
@@ -47355,8 +47399,8 @@ function o3() {
47355
47399
  }), null), P(e, j(Rj, {
47356
47400
  title: "Project config (.lineargrab.json)",
47357
47401
  get children() {
47358
- return [L4(), (() => {
47359
- var e = z4();
47402
+ return [W4(), (() => {
47403
+ var e = K4();
47360
47404
  return P(e, j(M, {
47361
47405
  get when() {
47362
47406
  return c.data?.projectConfig;
@@ -47387,7 +47431,7 @@ function o3() {
47387
47431
  },
47388
47432
  onClick: () => void d(),
47389
47433
  get children() {
47390
- var e = R4();
47434
+ var e = G4();
47391
47435
  return P(e, () => l() ? "Copied ✓" : "Copy config"), e;
47392
47436
  }
47393
47437
  }), null), e;
@@ -47478,12 +47522,12 @@ function o3() {
47478
47522
  });
47479
47523
  },
47480
47524
  get children() {
47481
- return [B4(), j(We, {
47525
+ return [q4(), j(We, {
47482
47526
  get each() {
47483
47527
  return ae.data ?? [];
47484
47528
  },
47485
47529
  children: (e) => (() => {
47486
- var t = i3();
47530
+ var t = d3();
47487
47531
  return t.firstChild, P(t, () => e.name, null), D(() => t.selected = e.id === n().slackChannelId), D(() => t.value = e.id), t;
47488
47532
  })()
47489
47533
  })];
@@ -47534,10 +47578,10 @@ function o3() {
47534
47578
  }
47535
47579
  }),
47536
47580
  (() => {
47537
- var e = V4(), t = e.firstChild;
47581
+ var e = J4(), t = e.firstChild;
47538
47582
  return t.addEventListener("change", (e) => void r({ notifyOnCreate: e.currentTarget.checked ? void 0 : !1 })), D(() => t.checked = n().notifyOnCreate !== !1), e;
47539
47583
  })(),
47540
- H4()
47584
+ Y4()
47541
47585
  ];
47542
47586
  }
47543
47587
  }), null), P(e, j(Rj, {
@@ -47575,7 +47619,7 @@ function o3() {
47575
47619
  }
47576
47620
  }),
47577
47621
  (() => {
47578
- var e = U4(), t = e.firstChild.nextSibling.firstChild, i = t.nextSibling, a = i.nextSibling;
47622
+ var e = X4(), t = e.firstChild.nextSibling.firstChild, i = t.nextSibling, a = i.nextSibling;
47579
47623
  return t.$$click = () => void r({ preferredProvider: void 0 }), i.$$click = () => void r({ preferredProvider: "openai" }), a.$$click = () => void r({ preferredProvider: "anthropic" }), D((e) => {
47580
47624
  var r = `flex-1 rounded-[5px] px-2 py-0.5 text-[11.5px] font-medium transition-colors ${n().preferredProvider === void 0 ? "bg-surface-3 text-text" : "text-text-dim hover:text-text cursor-pointer"}`, o = `flex-1 rounded-[5px] px-2 py-0.5 text-[11.5px] font-medium transition-colors disabled:cursor-not-allowed ${n().preferredProvider === "openai" ? "bg-surface-3 text-text" : "text-text-dim hover:text-text cursor-pointer disabled:text-text-faint"}`, s = !n().openaiKey, c = `flex-1 rounded-[5px] px-2 py-0.5 text-[11.5px] font-medium transition-colors disabled:cursor-not-allowed ${n().preferredProvider === "anthropic" ? "bg-surface-3 text-text" : "text-text-dim hover:text-text cursor-pointer disabled:text-text-faint"}`, l = !n().anthropicKey;
47581
47625
  return r !== e.e && st(t, e.e = r), o !== e.t && st(i, e.t = o), s !== e.a && (i.disabled = e.a = s), c !== e.o && st(a, e.o = c), l !== e.i && (a.disabled = e.i = l), e;
@@ -47588,16 +47632,16 @@ function o3() {
47588
47632
  }), e;
47589
47633
  })(),
47590
47634
  (() => {
47591
- var e = G4();
47635
+ var e = Q4();
47592
47636
  return P(e, j(M, {
47593
47637
  get when() {
47594
47638
  return se();
47595
47639
  },
47596
47640
  get fallback() {
47597
- return a3();
47641
+ return f3();
47598
47642
  },
47599
47643
  get children() {
47600
- var e = W4();
47644
+ var e = Z4();
47601
47645
  return P(e, se), e;
47602
47646
  }
47603
47647
  })), e;
@@ -47607,7 +47651,7 @@ function o3() {
47607
47651
  }), null), P(e, j(Rj, {
47608
47652
  title: "How it works",
47609
47653
  get children() {
47610
- return K4();
47654
+ return $4();
47611
47655
  }
47612
47656
  }), null), e;
47613
47657
  })();
@@ -47615,38 +47659,38 @@ function o3() {
47615
47659
  rt(["click"]);
47616
47660
  //#endregion
47617
47661
  //#region src/lib/idbCache.ts
47618
- var s3 = "linear-grab", c3 = "queries", l3 = [
47662
+ var m3 = "linear-grab", h3 = "queries", g3 = [
47619
47663
  "my-issues",
47620
47664
  "issue",
47621
47665
  "sessions",
47622
47666
  "teams",
47623
47667
  "agents"
47624
47668
  ];
47625
- function u3() {
47669
+ function _3() {
47626
47670
  return new Promise((e) => {
47627
47671
  try {
47628
- let t = indexedDB.open(s3, 1);
47629
- t.onupgradeneeded = () => t.result.createObjectStore(c3), t.onsuccess = () => e(t.result), t.onerror = () => e(null);
47672
+ let t = indexedDB.open(m3, 1);
47673
+ t.onupgradeneeded = () => t.result.createObjectStore(h3), t.onsuccess = () => e(t.result), t.onerror = () => e(null);
47630
47674
  } catch {
47631
47675
  e(null);
47632
47676
  }
47633
47677
  });
47634
47678
  }
47635
- function d3(e) {
47636
- return typeof e[0] == "string" && l3.includes(e[0]);
47679
+ function v3(e) {
47680
+ return typeof e[0] == "string" && g3.includes(e[0]);
47637
47681
  }
47638
- async function f3(e) {
47639
- let t = await u3();
47682
+ async function y3(e) {
47683
+ let t = await _3();
47640
47684
  if (!t) return () => {};
47641
47685
  await new Promise((n) => {
47642
47686
  try {
47643
- let r = t.transaction(c3, "readonly").objectStore(c3).openCursor();
47687
+ let r = t.transaction(h3, "readonly").objectStore(h3).openCursor();
47644
47688
  r.onsuccess = () => {
47645
47689
  let t = r.result;
47646
47690
  if (!t) return n();
47647
47691
  try {
47648
47692
  let { queryKey: n, data: r } = t.value;
47649
- d3(n) && e.getQueryData(n) === void 0 && e.setQueryData(n, r, { updatedAt: 0 });
47693
+ v3(n) && e.getQueryData(n) === void 0 && e.setQueryData(n, r, { updatedAt: 0 });
47650
47694
  } catch {}
47651
47695
  t.continue();
47652
47696
  }, r.onerror = () => n();
@@ -47657,14 +47701,14 @@ async function f3(e) {
47657
47701
  let n = /* @__PURE__ */ new Map(), r = e.getQueryCache().subscribe((r) => {
47658
47702
  if (r.type !== "updated" || r.action.type !== "success") return;
47659
47703
  let { queryKey: i, queryHash: a } = r.query;
47660
- if (!d3(i)) return;
47704
+ if (!v3(i)) return;
47661
47705
  let o = n.get(a);
47662
47706
  o && clearTimeout(o), n.set(a, setTimeout(() => {
47663
47707
  n.delete(a);
47664
47708
  try {
47665
47709
  let n = e.getQueryData(i);
47666
47710
  if (n === void 0) return;
47667
- t.transaction(c3, "readwrite").objectStore(c3).put({
47711
+ t.transaction(h3, "readwrite").objectStore(h3).put({
47668
47712
  queryKey: i,
47669
47713
  data: n
47670
47714
  }, a);
@@ -47680,7 +47724,7 @@ async function f3(e) {
47680
47724
  //#endregion
47681
47725
  //#region src/panel/App.tsx
47682
47726
  Br();
47683
- var p3 = /*#__PURE__*/ N("<svg viewBox=\"0 0 100 100\"fill=currentColor aria-hidden><path d=\"M1.22541 61.5228c-.2225-.9485.90748-1.5459 1.59638-.857L39.3342 97.1782c.6889.6889.0915 1.8189-.857 1.5964C20.0515 94.4522 5.54779 79.9485 1.22541 61.5228ZM.00189135 46.8891c-.01764375.2833.08887215.5599.28957165.7606L52.3503 99.7085c.2007.2007.4773.3075.7606.2896 2.3692-.1476 4.6938-.46 6.9624-.9259.7645-.157 1.0301-1.0963.4782-1.6481L2.57595 39.4485c-.55186-.5519-1.49117-.2863-1.648174.4782-.465915 2.2686-.77832 4.5932-.92588465 6.9624ZM4.21093 29.7054c-.16649.3738-.08169.8106.20765 1.1l64.77602 64.776c.2894.2894.7262.3742 1.1.2077 1.7861-.7956 3.5171-1.6927 5.1855-2.684.5521-.328.6373-1.0867.1832-1.5407L8.43566 24.3367c-.45409-.4541-1.21271-.3689-1.54074.1832-.99132 1.6684-1.88843 3.3994-2.68399 5.1855ZM12.6587 18.074c-.3701-.3701-.393-.9637-.0443-1.3541C21.7795 6.45931 35.1114 0 49.9519 0 77.5927 0 100 22.4073 100 50.0481c0 14.8405-6.4593 28.1724-16.7199 37.3375-.3903.3487-.984.3258-1.3541-.0443L12.6587 18.074Z\">"), m3 = /*#__PURE__*/ N("<button><svg width=12 height=12 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 aria-hidden><rect x=1.5 y=2.5 width=13 height=11 rx=1.5></rect><path d=\"M10 2.5v11\">"), h3 = /*#__PURE__*/ N("<button aria-label=\"Minimize to launcher\"title=\"Minimize to launcher\"class=\"text-text-dim hover:text-text hover:bg-surface-3 grid size-6 shrink-0 cursor-pointer place-items-center rounded-md text-[15px] leading-none transition-colors\">–"), g3 = /*#__PURE__*/ N("<div class=\"bg-bg text-text flex h-full flex-col\"><header><span class=\"text-accent mr-0.5 inline-flex shrink-0\"title=\"Linear Grab\"></span><div class=\"no-scrollbar flex min-w-0 flex-1 items-center gap-1 overflow-x-auto\"></div></header><main class=\"min-h-0 flex-1\"><div class=h-full></div><div class=h-full></div><div class=h-full></div><div class=h-full></div><div class=h-full></div><div class=h-full></div><div class=h-full></div><div class=h-full></div><div class=h-full>"), _3 = /*#__PURE__*/ N("<button>"), v3 = [
47727
+ var b3 = /*#__PURE__*/ N("<svg viewBox=\"0 0 100 100\"fill=currentColor aria-hidden><path d=\"M1.22541 61.5228c-.2225-.9485.90748-1.5459 1.59638-.857L39.3342 97.1782c.6889.6889.0915 1.8189-.857 1.5964C20.0515 94.4522 5.54779 79.9485 1.22541 61.5228ZM.00189135 46.8891c-.01764375.2833.08887215.5599.28957165.7606L52.3503 99.7085c.2007.2007.4773.3075.7606.2896 2.3692-.1476 4.6938-.46 6.9624-.9259.7645-.157 1.0301-1.0963.4782-1.6481L2.57595 39.4485c-.55186-.5519-1.49117-.2863-1.648174.4782-.465915 2.2686-.77832 4.5932-.92588465 6.9624ZM4.21093 29.7054c-.16649.3738-.08169.8106.20765 1.1l64.77602 64.776c.2894.2894.7262.3742 1.1.2077 1.7861-.7956 3.5171-1.6927 5.1855-2.684.5521-.328.6373-1.0867.1832-1.5407L8.43566 24.3367c-.45409-.4541-1.21271-.3689-1.54074.1832-.99132 1.6684-1.88843 3.3994-2.68399 5.1855ZM12.6587 18.074c-.3701-.3701-.393-.9637-.0443-1.3541C21.7795 6.45931 35.1114 0 49.9519 0 77.5927 0 100 22.4073 100 50.0481c0 14.8405-6.4593 28.1724-16.7199 37.3375-.3903.3487-.984.3258-1.3541-.0443L12.6587 18.074Z\">"), x3 = /*#__PURE__*/ N("<button><svg width=12 height=12 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 aria-hidden><rect x=1.5 y=2.5 width=13 height=11 rx=1.5></rect><path d=\"M10 2.5v11\">"), S3 = /*#__PURE__*/ N("<button aria-label=\"Minimize to launcher\"title=\"Minimize to launcher\"class=\"text-text-dim hover:text-text hover:bg-surface-3 grid size-6 shrink-0 cursor-pointer place-items-center rounded-md text-[15px] leading-none transition-colors\">–"), C3 = /*#__PURE__*/ N("<div class=\"bg-bg text-text flex h-full flex-col\"><header><span class=\"text-accent mr-0.5 inline-flex shrink-0\"title=\"Linear Grab\"></span><div class=\"no-scrollbar flex min-w-0 flex-1 items-center gap-1 overflow-x-auto\"></div></header><main class=\"min-h-0 flex-1\"><div class=h-full></div><div class=h-full></div><div class=h-full></div><div class=h-full></div><div class=h-full></div><div class=h-full></div><div class=h-full></div><div class=h-full></div><div class=h-full>"), w3 = /*#__PURE__*/ N("<button>"), T3 = [
47684
47728
  {
47685
47729
  id: "draft",
47686
47730
  label: "Draft"
@@ -47717,35 +47761,35 @@ var p3 = /*#__PURE__*/ N("<svg viewBox=\"0 0 100 100\"fill=currentColor aria-hid
47717
47761
  id: "settings",
47718
47762
  label: "Settings"
47719
47763
  }
47720
- ], y3 = /* @__PURE__ */ new Set();
47721
- function b3(e, t, n) {
47722
- if (y3.has(e) || typeof Notification > "u") return;
47723
- y3.add(e);
47764
+ ], E3 = /* @__PURE__ */ new Set();
47765
+ function D3(e, t, n) {
47766
+ if (E3.has(e) || typeof Notification > "u") return;
47767
+ E3.add(e);
47724
47768
  let r = () => new Notification(t, { body: n });
47725
47769
  Notification.permission === "granted" ? r() : Notification.permission === "default" && Notification.requestPermission().then((e) => e === "granted" && r());
47726
47770
  }
47727
- function x3() {
47771
+ function O3() {
47728
47772
  setInterval(() => {
47729
47773
  NO().then((e) => {
47730
47774
  for (let t of e) {
47731
47775
  if (t.status !== "running") continue;
47732
47776
  let e = t.lastEventAt ?? t.startedAt;
47733
- Date.now() - e > 10 * 6e4 && b3(`local-stuck:${t.id}:${e}`, "Local agent may be stuck", `${t.title.slice(0, 80)} — no output for ${Math.round((Date.now() - e) / 6e4)}m. Nudge or interrupt it in the Local tab.`);
47777
+ Date.now() - e > 10 * 6e4 && D3(`local-stuck:${t.id}:${e}`, "Local agent may be stuck", `${t.title.slice(0, 80)} — no output for ${Math.round((Date.now() - e) / 6e4)}m. Nudge or interrupt it in the Local tab.`);
47734
47778
  }
47735
47779
  }).catch(() => {}), gO().then((e) => {
47736
- for (let t of e) /awaitingInput|elicit/i.test(t.status) && b3(`cloud-input:${t.id}`, "Cloud agent needs input", `${t.issue?.identifier ?? "Session"} — ${t.issue?.title?.slice(0, 80) ?? "a Cursor agent"} is waiting for you.`);
47780
+ for (let t of e) /awaitingInput|elicit/i.test(t.status) && D3(`cloud-input:${t.id}`, "Cloud agent needs input", `${t.issue?.identifier ?? "Session"} — ${t.issue?.title?.slice(0, 80) ?? "a Cursor agent"} is waiting for you.`);
47737
47781
  }).catch(() => {});
47738
47782
  }, 6e4);
47739
47783
  }
47740
- x3();
47741
- var S3 = new gr({ defaultOptions: { queries: {
47784
+ O3();
47785
+ var k3 = new gr({ defaultOptions: { queries: {
47742
47786
  retry: 1,
47743
47787
  refetchOnWindowFocus: !1,
47744
47788
  staleTime: 5e3
47745
47789
  } } });
47746
- function C3(e) {
47790
+ function A3(e) {
47747
47791
  return (() => {
47748
- var t = p3();
47792
+ var t = b3();
47749
47793
  return D((n) => {
47750
47794
  var r = e.size ?? 14, i = e.size ?? 14;
47751
47795
  return r !== n.e && it(t, "width", n.e = r), i !== n.t && it(t, "height", n.t = i), n;
@@ -47755,36 +47799,36 @@ function C3(e) {
47755
47799
  }), t;
47756
47800
  })();
47757
47801
  }
47758
- function w3(e) {
47802
+ function j3(e) {
47759
47803
  let [t, n] = T("draft"), r = () => {
47760
- S3.invalidateQueries({ queryKey: ["grab"] }), cj() === "capture" && n("capture"), e.onGrab?.();
47804
+ k3.invalidateQueries({ queryKey: ["grab"] }), cj() === "capture" && n("capture"), e.onGrab?.();
47761
47805
  };
47762
47806
  return O(() => {
47763
47807
  let e = nj();
47764
47808
  e && n(e);
47765
47809
  }), ie(() => {
47766
- let e = f3(S3), t = XZ(r), n = () => {
47810
+ let e = y3(k3), t = XZ(r), n = () => {
47767
47811
  JO().then(y$), VO(), MO().then(async (e) => {
47768
47812
  if (!e.projectConfig) return;
47769
- let t = v4(await Tr(), e.projectConfig);
47813
+ let t = T4(await Tr(), e.projectConfig);
47770
47814
  t && await Er(t);
47771
47815
  }).catch(() => {});
47772
47816
  };
47773
47817
  n();
47774
47818
  let i = Mr((e) => {
47775
- e === "settings" && (S3.invalidateQueries({ queryKey: ["settings"] }), n()), e === "grab" && r();
47819
+ e === "settings" && (k3.invalidateQueries({ queryKey: ["settings"] }), n()), e === "grab" && r();
47776
47820
  });
47777
47821
  ae(() => {
47778
47822
  t(), i(), e.then((e) => e());
47779
47823
  });
47780
47824
  }), j(cr, {
47781
- client: S3,
47825
+ client: k3,
47782
47826
  get children() {
47783
- var r = g3(), i = r.firstChild, a = i.firstChild, o = a.nextSibling, s = i.nextSibling.firstChild, c = s.nextSibling, l = c.nextSibling, u = l.nextSibling, d = u.nextSibling, f = d.nextSibling, p = f.nextSibling, m = p.nextSibling, h = m.nextSibling;
47784
- return i.$$pointerdown = (t) => e.onHeaderPointerDown?.(t), P(a, j(C3, { size: 14 })), P(o, j(We, {
47785
- each: v3,
47827
+ var r = C3(), i = r.firstChild, a = i.firstChild, o = a.nextSibling, s = i.nextSibling.firstChild, c = s.nextSibling, l = c.nextSibling, u = l.nextSibling, d = u.nextSibling, f = d.nextSibling, p = f.nextSibling, m = p.nextSibling, h = m.nextSibling;
47828
+ return i.$$pointerdown = (t) => e.onHeaderPointerDown?.(t), P(a, j(A3, { size: 14 })), P(o, j(We, {
47829
+ each: T3,
47786
47830
  children: (e) => (() => {
47787
- var r = _3();
47831
+ var r = w3();
47788
47832
  return r.$$click = () => n(e.id), P(r, () => e.label), D(() => st(r, `h-6 shrink-0 rounded-md px-2 text-[12px] font-medium whitespace-nowrap transition-colors ${t() === e.id ? "bg-surface-3 text-text" : "text-text-dim hover:text-text cursor-pointer"}`)), r;
47789
47833
  })()
47790
47834
  })), P(i, j(M, {
@@ -47792,7 +47836,7 @@ function w3(e) {
47792
47836
  return e.onTogglePin;
47793
47837
  },
47794
47838
  get children() {
47795
- var t = m3();
47839
+ var t = x3();
47796
47840
  return t.$$click = () => e.onTogglePin?.(), D((n) => {
47797
47841
  var r = e.pinned ? "Switch to overlay" : "Dock beside page", i = e.pinned ? "Overlay the page" : "Dock beside page (squeezes the app, DevTools-style)", a = `hover:bg-surface-3 grid size-6 shrink-0 cursor-pointer place-items-center rounded-md transition-colors ${e.pinned ? "text-accent" : "text-text-dim hover:text-text"}`;
47798
47842
  return r !== n.e && it(t, "aria-label", n.e = r), i !== n.t && it(t, "title", n.t = i), a !== n.a && st(t, n.a = a), n;
@@ -47807,10 +47851,10 @@ function w3(e) {
47807
47851
  return e.onClose;
47808
47852
  },
47809
47853
  get children() {
47810
- var t = h3();
47854
+ var t = S3();
47811
47855
  return t.$$click = () => e.onClose?.(), t;
47812
47856
  }
47813
- }), null), P(s, j(wM, { onCreated: () => n("activity") })), P(c, j(TQ, {})), P(l, j(_1, {})), P(u, j(B1, {})), P(d, j(P1, {})), P(f, j(T0, {})), P(p, j(B0, { onOpenIssue: () => n("activity") })), P(m, j(h4, {})), P(h, j(o3, {})), D((n) => {
47857
+ }), null), P(s, j(wM, { onCreated: () => n("activity") })), P(c, j(TQ, {})), P(l, j(_1, {})), P(u, j(B1, {})), P(d, j(P1, {})), P(f, j(T0, {})), P(p, j(B0, { onOpenIssue: () => n("activity") })), P(m, j(S4, {})), P(h, j(p3, {})), D((n) => {
47814
47858
  var r = `border-border bg-surface flex shrink-0 items-center gap-1 border-b px-2 py-1.5 select-none ${e.onHeaderPointerDown ? "cursor-grab active:cursor-grabbing" : ""}`, a = t() !== "draft", o = t() !== "capture", g = t() !== "activity", _ = t() !== "running", v = t() !== "cloud", y = t() !== "local", b = t() !== "prs", x = t() !== "design", S = t() !== "settings";
47815
47859
  return r !== n.e && st(i, n.e = r), a !== n.t && s.classList.toggle("hidden", n.t = a), o !== n.a && c.classList.toggle("hidden", n.a = o), g !== n.o && l.classList.toggle("hidden", n.o = g), _ !== n.i && u.classList.toggle("hidden", n.i = _), v !== n.n && d.classList.toggle("hidden", n.n = v), y !== n.s && f.classList.toggle("hidden", n.s = y), b !== n.h && p.classList.toggle("hidden", n.h = b), x !== n.r && m.classList.toggle("hidden", n.r = x), S !== n.d && h.classList.toggle("hidden", n.d = S), n;
47816
47860
  }, {
@@ -47831,16 +47875,16 @@ function w3(e) {
47831
47875
  rt(["pointerdown", "click"]);
47832
47876
  //#endregion
47833
47877
  //#region src/styles/app.css?inline
47834
- var T3 = "/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */\n@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-contain-size:initial;--tw-contain-layout:initial;--tw-contain-paint:initial;--tw-contain-style:initial}}}@layer theme{:root,:host{--font-sans:\"Inter\", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-serif:ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif;--font-mono:ui-monospace, \"SF Mono\", Menlo, monospace;--color-red-500:oklch(63.7% .237 25.331);--color-white:#fff;--spacing:.25rem;--font-weight-thin:100;--font-weight-extralight:200;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--font-weight-black:900;--tracking-wide:.025em;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--radius-xl:.75rem;--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-bg:#0b0c0e;--color-surface:#141517;--color-surface-2:#1c1d21;--color-surface-3:#24262b;--color-border:#26282d;--color-border-strong:#34363d;--color-text:#e8e9eb;--color-text-dim:#8b8e98;--color-text-faint:#5c5f6a;--color-accent:#5e6ad2;--color-accent-hover:#6e79e0;--color-accent-soft:#5e6ad226;--color-success:#4cb782;--color-warn:#f2c94c;--color-danger:#eb5757;--color-danger-soft:#eb575726}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.visible\\!{visibility:visible!important}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-y-0{inset-block:0}.top-0{top:0}.top-0\\.5{top:calc(var(--spacing) * .5)}.top-1{top:var(--spacing)}.top-1\\/2{top:50%}.top-3{top:calc(var(--spacing) * 3)}.top-\\[2px\\]{top:2px}.top-full{top:100%}.right-0{right:0}.right-0\\.5{right:calc(var(--spacing) * .5)}.right-4{right:calc(var(--spacing) * 4)}.right-full{right:100%}.bottom-0{bottom:0}.bottom-1{bottom:var(--spacing)}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-\\[2px\\]{bottom:2px}.bottom-full{bottom:100%}.-left-\\[13\\.5px\\]{left:-13.5px}.left-0{left:0}.left-1{left:var(--spacing)}.left-1\\/2{left:50%}.left-\\[5px\\]{left:5px}.left-full{left:100%}.z-1{z-index:1}.z-10{z-index:10}.z-\\[2147483645\\]{z-index:2147483645}.z-\\[2147483646\\]{z-index:2147483646}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.container\\!{width:100%!important}@media (width>=40rem){.container\\!{max-width:40rem!important}}@media (width>=48rem){.container\\!{max-width:48rem!important}}@media (width>=64rem){.container\\!{max-width:64rem!important}}@media (width>=80rem){.container\\!{max-width:80rem!important}}@media (width>=96rem){.container\\!{max-width:96rem!important}}.-m-0{margin:0}.-m-0\\.5{margin:calc(var(--spacing) * -.5)}.-m-4{margin:calc(var(--spacing) * -4)}.m-0{margin:0}.-mx-2{margin-inline:calc(var(--spacing) * -2)}.-my-1{margin-block:calc(var(--spacing) * -1)}.-my-1\\.5{margin-block:calc(var(--spacing) * -1.5)}.mt-0{margin-top:0}.mt-0\\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-px{margin-top:1px}.mr-0{margin-right:0}.mr-0\\.5{margin-right:calc(var(--spacing) * .5)}.mr-1{margin-right:var(--spacing)}.mr-1\\.5{margin-right:calc(var(--spacing) * 1.5)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-2\\.5{margin-right:calc(var(--spacing) * 2.5)}.-mb-4{margin-bottom:calc(var(--spacing) * -4)}.mb-0{margin-bottom:0}.mb-0\\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:var(--spacing)}.mb-1\\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-2\\.5{margin-bottom:calc(var(--spacing) * 2.5)}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-2\\.5{margin-left:calc(var(--spacing) * 2.5)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-auto{margin-left:auto}.ml-px{margin-left:1px}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-5{-webkit-line-clamp:5;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.list-item{display:list-item}.table{display:table}.size-0{width:0;height:0}.size-1{width:var(--spacing);height:var(--spacing)}.size-1\\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-\\[9px\\]{width:9px;height:9px}.size-\\[12px\\]{width:12px;height:12px}.size-\\[16px\\]{width:16px;height:16px}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-16{height:calc(var(--spacing) * 16)}.h-\\[8px\\]{height:8px}.h-\\[17px\\]{height:17px}.h-\\[18px\\]{height:18px}.h-\\[20px\\]{height:20px}.h-\\[24px\\]{height:24px}.h-fit{height:fit-content}.h-full{height:100%}.h-screen{height:100vh}.max-h-32{max-height:calc(var(--spacing) * 32)}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-44{max-height:calc(var(--spacing) * 44)}.max-h-56{max-height:calc(var(--spacing) * 56)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-\\[var\\(--rg-edit-list-max-h\\)\\]{max-height:var(--rg-edit-list-max-h)}.min-h-0{min-height:0}.min-h-4{min-height:calc(var(--spacing) * 4)}.min-h-\\[2lh\\]{min-height:2lh}.min-h-\\[28px\\]{min-height:28px}.w-1{width:var(--spacing)}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-16{width:calc(var(--spacing) * 16)}.w-28{width:calc(var(--spacing) * 28)}.w-72{width:calc(var(--spacing) * 72)}.w-\\[2px\\]{width:2px}.w-\\[calc\\(100\\%\\+16px\\)\\]{width:calc(100% + 16px)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-\\[55\\%\\]{max-width:55%}.max-w-\\[100vw\\]{max-width:100vw}.max-w-\\[110px\\]{max-width:110px}.max-w-\\[280px\\]{max-width:280px}.max-w-full{max-width:100%}.min-w-0{min-width:0}.min-w-\\[3\\.5ch\\]{min-width:3.5ch}.min-w-\\[3ch\\]{min-width:3ch}.min-w-\\[4ch\\]{min-width:4ch}.min-w-\\[5ch\\]{min-width:5ch}.min-w-\\[6ch\\]{min-width:6ch}.min-w-\\[7ch\\]{min-width:7ch}.min-w-\\[8ch\\]{min-width:8ch}.min-w-\\[10ch\\]{min-width:10ch}.min-w-\\[12ch\\]{min-width:12ch}.min-w-\\[36px\\]{min-width:36px}.min-w-\\[52px\\]{min-width:52px}.min-w-\\[100px\\]{min-width:100px}.min-w-\\[150px\\]{min-width:150px}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-rotate-90{rotate:-90deg}.rotate-0{rotate:0deg}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.list-decimal{list-style-type:decimal}.grid-cols-\\[0fr\\]{grid-template-columns:0fr}.grid-cols-\\[1fr\\]{grid-template-columns:1fr}.grid-rows-\\[0fr\\]{grid-template-rows:0fr}.grid-rows-\\[1fr\\]{grid-template-rows:1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:0}.gap-0\\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-\\[5px\\]{gap:5px}.self-end{align-self:flex-end}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-clip{overflow:clip}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\\[1px\\]{border-radius:1px}.rounded-\\[3px\\]{border-radius:3px}.rounded-\\[4px\\]{border-radius:4px}.rounded-\\[5px\\]{border-radius:5px}.rounded-\\[6px\\]{border-radius:6px}.rounded-\\[13px\\]{border-radius:13px}.rounded-\\[14px\\]{border-radius:14px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-t-\\[10px\\]{border-top-left-radius:10px;border-top-right-radius:10px}.rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.rounded-l{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-l-\\[10px\\]{border-top-left-radius:10px;border-bottom-left-radius:10px}.rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.rounded-tl{border-top-left-radius:.25rem}.rounded-r{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-r-\\[10px\\]{border-top-right-radius:10px;border-bottom-right-radius:10px}.rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-tr{border-top-right-radius:.25rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-b-\\[6px\\]{border-bottom-right-radius:6px;border-bottom-left-radius:6px}.rounded-b-\\[10px\\]{border-bottom-right-radius:10px;border-bottom-left-radius:10px}.rounded-b-none{border-bottom-right-radius:0;border-bottom-left-radius:0}.rounded-br{border-bottom-right-radius:.25rem}.rounded-bl{border-bottom-left-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.\\[border-width\\:0\\.5px\\]{border-width:.5px}.border-x{border-inline-style:var(--tw-border-style);border-inline-width:1px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-s{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}.border-e{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-4{border-top-style:var(--tw-border-style);border-top-width:4px}.\\[border-top-width\\:0\\.5px\\]{border-top-width:.5px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-dotted{--tw-border-style:dotted;border-style:dotted}.border-none{--tw-border-style:none;border-style:none}.border-solid{--tw-border-style:solid;border-style:solid}.border-\\[var\\(--rg-border-button\\)\\]{border-color:var(--rg-border-button)}.border-accent{border-color:var(--color-accent)}.border-accent\\/40{border-color:#5e6ad266}@supports (color:color-mix(in lab, red, red)){.border-accent\\/40{border-color:color-mix(in oklab, var(--color-accent) 40%, transparent)}}.border-border{border-color:var(--color-border)}.border-success{border-color:var(--color-success)}.border-success\\/40{border-color:#4cb78266}@supports (color:color-mix(in lab, red, red)){.border-success\\/40{border-color:color-mix(in oklab, var(--color-success) 40%, transparent)}}.border-text-dim{border-color:var(--color-text-dim)}.border-transparent{border-color:#0000}.border-warn{border-color:var(--color-warn)}.border-warn\\/40{border-color:#f2c94c66}@supports (color:color-mix(in lab, red, red)){.border-warn\\/40{border-color:color-mix(in oklab, var(--color-warn) 40%, transparent)}}.border-t-\\[var\\(--rg-border-subtle\\)\\]{border-top-color:var(--rg-border-subtle)}.border-t-transparent{border-top-color:#0000}.bg-\\[var\\(--rg-error-bg\\)\\]{background-color:var(--rg-error-bg)}.bg-\\[var\\(--rg-panel-bg\\)\\]{background-color:var(--rg-panel-bg)}.bg-\\[var\\(--rg-submit-bg\\)\\]{background-color:var(--rg-submit-bg)}.bg-\\[var\\(--rg-surface-active\\)\\]{background-color:var(--rg-surface-active)}.bg-\\[var\\(--rg-surface-hover\\)\\]{background-color:var(--rg-surface-hover)}.bg-\\[var\\(--rg-text-primary\\)\\]{background-color:var(--rg-text-primary)}.bg-\\[var\\(--rg-text-secondary\\)\\]{background-color:var(--rg-text-secondary)}.bg-accent{background-color:var(--color-accent)}.bg-accent-soft{background-color:var(--color-accent-soft)}.bg-bg{background-color:var(--color-bg)}.bg-bg\\/80{background-color:#0b0c0ecc}@supports (color:color-mix(in lab, red, red)){.bg-bg\\/80{background-color:color-mix(in oklab, var(--color-bg) 80%, transparent)}}.bg-border{background-color:var(--color-border)}.bg-current{background-color:currentColor}.bg-danger{background-color:var(--color-danger)}.bg-danger-soft{background-color:var(--color-danger-soft)}.bg-red-500{background-color:var(--color-red-500)}.bg-success{background-color:var(--color-success)}.bg-surface{background-color:var(--color-surface)}.bg-surface-2{background-color:var(--color-surface-2)}.bg-surface-3{background-color:var(--color-surface-3)}.bg-text-faint{background-color:var(--color-text-faint)}.bg-transparent{background-color:#0000}.bg-warn{background-color:var(--color-warn)}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:0}.p-0\\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\\.5{padding:calc(var(--spacing) * 2.5)}.p-6{padding:calc(var(--spacing) * 6)}.px-0{padding-inline:0}.px-0\\.25{padding-inline:calc(var(--spacing) * .25)}.px-1{padding-inline:var(--spacing)}.px-1\\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-\\[3px\\]{padding-inline:3px}.py-0{padding-block:0}.py-0\\.5{padding-block:calc(var(--spacing) * .5)}.py-0\\.25{padding-block:calc(var(--spacing) * .25)}.py-1{padding-block:var(--spacing)}.py-1\\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-px{padding-block:1px}.pt-0{padding-top:0}.pt-0\\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:var(--spacing)}.pt-1\\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pr-1{padding-right:var(--spacing)}.pr-1\\.5{padding-right:calc(var(--spacing) * 1.5)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pb-1{padding-bottom:var(--spacing)}.pb-1\\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pl-0{padding-left:0}.pl-0\\.5{padding-left:calc(var(--spacing) * .5)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-2\\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.text-center{text-align:center}.text-end{text-align:end}.text-justify{text-align:justify}.text-left{text-align:left}.text-right{text-align:right}.text-start{text-align:start}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.font-serif{font-family:var(--font-serif)}.text-\\[9\\.5px\\]{font-size:9.5px}.text-\\[9px\\]{font-size:9px}.text-\\[10\\.5px\\]{font-size:10.5px}.text-\\[10px\\]{font-size:10px}.text-\\[11\\.5px\\]{font-size:11.5px}.text-\\[11px\\]{font-size:11px}.text-\\[12\\.5px\\]{font-size:12.5px}.text-\\[12px\\]{font-size:12px}.text-\\[13px\\]{font-size:13px}.text-\\[15px\\]{font-size:15px}.leading-3{--tw-leading:calc(var(--spacing) * 3);line-height:calc(var(--spacing) * 3)}.leading-3\\.5{--tw-leading:calc(var(--spacing) * 3.5);line-height:calc(var(--spacing) * 3.5)}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-extralight{--tw-font-weight:var(--font-weight-extralight);font-weight:var(--font-weight-extralight)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.font-thin{--tw-font-weight:var(--font-weight-thin);font-weight:var(--font-weight-thin)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-normal{overflow-wrap:normal;word-break:normal}.break-words,.wrap-break-word{overflow-wrap:break-word}.break-all{word-break:break-all}.break-keep{word-break:keep-all}.text-ellipsis{text-overflow:ellipsis}.whitespace-break-spaces{white-space:break-spaces}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.text-\\[var\\(--rg-error-text\\)\\]{color:var(--rg-error-text)}.text-\\[var\\(--rg-submit-fg\\)\\]{color:var(--rg-submit-fg)}.text-\\[var\\(--rg-text-primary\\)\\]{color:var(--rg-text-primary)}.text-\\[var\\(--rg-text-primary-85\\)\\]{color:var(--rg-text-primary-85)}.text-\\[var\\(--rg-text-secondary\\)\\]{color:var(--rg-text-secondary)}.text-accent{color:var(--color-accent)}.text-danger{color:var(--color-danger)}.text-success{color:var(--color-success)}.text-text{color:var(--color-text)}.text-text-dim{color:var(--color-text-dim)}.text-text-faint{color:var(--color-text-faint)}.text-warn{color:var(--color-warn)}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.not-italic{font-style:normal}.lining-nums{--tw-numeric-figure:lining-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.oldstyle-nums{--tw-numeric-figure:oldstyle-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.proportional-nums{--tw-numeric-spacing:proportional-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.slashed-zero{--tw-slashed-zero:slashed-zero;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.accent-accent{accent-color:var(--color-accent)}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.\\[box-shadow\\:var\\(--rg-shadow\\)\\]{box-shadow:var(--rg-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.\\[filter\\:var\\(--rg-drop-shadow\\)\\]{filter:var(--rg-drop-shadow)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[grid-template-columns\\]{transition-property:grid-template-columns;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[grid-template-rows\\]{transition-property:grid-template-rows;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[opacity\\,transform\\]{transition-property:opacity,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[padding\\,border-radius\\,transform\\]{transition-property:padding,border-radius,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[top\\,left\\,width\\,height\\,opacity\\,border-radius\\]{transition-property:top,left,width,height,opacity,border-radius;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[transform\\,color\\]{transition-property:transform,color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[transform\\,opacity\\]{transition-property:transform,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.delay-\\[80ms\\]{transition-delay:80ms}.duration-60{--tw-duration:60ms;transition-duration:60ms}.duration-75{--tw-duration:75ms;transition-duration:75ms}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-120{--tw-duration:.12s;transition-duration:.12s}.duration-140{--tw-duration:.14s;transition-duration:.14s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-180{--tw-duration:.18s;transition-duration:.18s}.duration-220{--tw-duration:.22s;transition-duration:.22s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-400{--tw-duration:.4s;transition-duration:.4s}.ease-\\[cubic-bezier\\(0\\,0\\,0\\.2\\,1\\)\\]{--tw-ease:cubic-bezier(0,0,.2,1);transition-timing-function:cubic-bezier(0,0,.2,1)}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.will-change-\\[opacity\\,transform\\]{will-change:opacity,transform}.will-change-transform{will-change:transform}.contain-layout{--tw-contain-layout:layout;contain:var(--tw-contain-size,) var(--tw-contain-layout,) var(--tw-contain-paint,) var(--tw-contain-style,)}.outline-none{--tw-outline-style:none;outline-style:none}.select-all{-webkit-user-select:all;user-select:all}.select-none{-webkit-user-select:none;user-select:none}.\\[corner-shape\\:superellipse\\(1\\.25\\)\\]{corner-shape:superellipse(1.25)}.\\[font-synthesis\\:none\\]{font-synthesis:none}.group-open\\:rotate-90:is(:where(.group):is([open],:popover-open,:open) *){rotate:90deg}@media (hover:hover){.group-hover\\:text-\\[var\\(--rg-text-primary\\)\\]:is(:where(.group):hover *){color:var(--rg-text-primary)}.group-hover\\:opacity-100:is(:where(.group):hover *){opacity:1}}.placeholder\\:text-text-faint::placeholder{color:var(--color-text-faint)}@media (hover:hover){.hover\\:bg-\\[var\\(--rg-error-bg-hover\\)\\]:hover{background-color:var(--rg-error-bg-hover)}.hover\\:bg-\\[var\\(--rg-surface-active\\)\\]:hover{background-color:var(--rg-surface-active)}.hover\\:bg-\\[var\\(--rg-surface-hover\\)\\]:hover{background-color:var(--rg-surface-hover)}.hover\\:bg-accent-hover:hover{background-color:var(--color-accent-hover)}.hover\\:bg-accent\\/50:hover{background-color:#5e6ad280}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-accent\\/50:hover{background-color:color-mix(in oklab, var(--color-accent) 50%, transparent)}}.hover\\:bg-danger\\/30:hover{background-color:#eb57574d}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-danger\\/30:hover{background-color:color-mix(in oklab, var(--color-danger) 30%, transparent)}}.hover\\:bg-surface-2:hover{background-color:var(--color-surface-2)}.hover\\:bg-surface-3:hover{background-color:var(--color-surface-3)}.hover\\:text-\\[var\\(--rg-text-primary\\)\\]:hover{color:var(--rg-text-primary)}.hover\\:text-accent:hover{color:var(--color-accent)}.hover\\:text-danger:hover{color:var(--color-danger)}.hover\\:text-text:hover{color:var(--color-text)}.hover\\:underline:hover{text-decoration-line:underline}.hover\\:opacity-80:hover{opacity:.8}}.focus\\:border-accent:focus{border-color:var(--color-accent)}.active\\:cursor-grabbing:active{cursor:grabbing}.active\\:bg-accent:active{background-color:var(--color-accent)}.active\\:transition-none:active{transition-property:none}.disabled\\:cursor-default:disabled{cursor:default}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:bg-surface-3:disabled{background-color:var(--color-surface-3)}.disabled\\:text-text-faint:disabled{color:var(--color-text-faint)}.disabled\\:opacity-40:disabled{opacity:.4}@media (hover:hover){.disabled\\:hover\\:bg-surface-2:disabled:hover{background-color:var(--color-surface-2)}}.data-\\[state\\=on\\]\\:transition-none[data-state=on],.data-\\[state\\=open\\]\\:transition-none[data-state=open],.data-\\[state\\=…\\]\\:transition-none[data-state=…]{transition-property:none}}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=light],:host([data-theme=light]){--color-bg:#fbfbfc;--color-surface:#fff;--color-surface-2:#f4f4f6;--color-surface-3:#e9e9ee;--color-border:#e2e2e8;--color-border-strong:#cfcfd8;--color-text:#1b1c20;--color-text-dim:#5c5f6a;--color-text-faint:#9a9da8;--color-accent-soft:#5e6ad21f;--color-danger-soft:#eb57571a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--color-bg:#fbfbfc;--color-surface:#fff;--color-surface-2:#f4f4f6;--color-surface-3:#e9e9ee;--color-border:#e2e2e8;--color-border-strong:#cfcfd8;--color-text:#1b1c20;--color-text-dim:#5c5f6a;--color-text-faint:#9a9da8;--color-accent-soft:#5e6ad21f;--color-danger-soft:#eb57571a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}body{background-color:var(--color-bg);font-family:var(--font-sans);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-width:320px;margin:0;font-size:13px}@keyframes geist-spinner-fade{0%{opacity:1}to{opacity:.15}}[data-tip]{position:relative}[data-tip]:hover:after{content:attr(data-tip);color:#fff;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;z-index:60;background:#1b1c20;border-radius:6px;max-width:260px;padding:3px 8px;font-size:10.5px;font-weight:500;line-height:1.35;position:absolute;bottom:calc(100% + 6px);left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 4px 12px #0000004d}[data-tip][data-tip-pos~=right]:hover:after{left:0;transform:none}[data-tip][data-tip-pos~=left]:hover:after{left:auto;right:0;transform:none}[data-tip][data-tip-pos~=bottom]:hover:after{top:calc(100% + 6px);bottom:auto}.no-scrollbar{scrollbar-width:none}.no-scrollbar::-webkit-scrollbar{display:none}.lg-md p{margin:0 0 6px}.lg-md p:last-child{margin-bottom:0}.lg-md a{color:var(--color-accent);word-break:break-all;text-decoration:none}.lg-md a:hover{text-decoration:underline}.lg-md code{background:var(--color-surface-2);border:1px solid var(--color-border);font-family:var(--font-mono);border-radius:4px;padding:0 4px;font-size:11px}.lg-md pre{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:6px;margin:6px 0;padding:8px;overflow-x:auto}.lg-md pre code{white-space:pre;background:0 0;border:none;padding:0;font-size:11px}.lg-md ul,.lg-md ol{flex-direction:column;gap:2px;margin:4px 0 6px;padding-left:18px;display:flex}.lg-md ul{list-style:outside}.lg-md ol{list-style:decimal}.lg-md h4{margin:8px 0 4px;font-size:12px;font-weight:600}.lg-md lg-media{display:block}.lg-md lg-media img,.lg-md lg-media video{border:1px solid var(--color-border);border-radius:6px;max-width:100%;margin:4px 0}.lg-md video{border:1px solid var(--color-border);background:#000;border-radius:6px;max-width:100%;margin:4px 0}.lg-md img{border:1px solid var(--color-border);border-radius:6px;max-width:100%;margin:4px 0}.lg-md strong{font-weight:600}*{scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:4px}::-webkit-scrollbar-track{background:0 0}@property --tw-rotate-x{syntax:\"*\";inherits:false}@property --tw-rotate-y{syntax:\"*\";inherits:false}@property --tw-rotate-z{syntax:\"*\";inherits:false}@property --tw-skew-x{syntax:\"*\";inherits:false}@property --tw-skew-y{syntax:\"*\";inherits:false}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-leading{syntax:\"*\";inherits:false}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-tracking{syntax:\"*\";inherits:false}@property --tw-ordinal{syntax:\"*\";inherits:false}@property --tw-slashed-zero{syntax:\"*\";inherits:false}@property --tw-numeric-figure{syntax:\"*\";inherits:false}@property --tw-numeric-spacing{syntax:\"*\";inherits:false}@property --tw-numeric-fraction{syntax:\"*\";inherits:false}@property --tw-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\"*\";inherits:false}@property --tw-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\"*\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\"*\";inherits:false}@property --tw-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\"*\";inherits:false}@property --tw-inset-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\"*\";inherits:false}@property --tw-ring-offset-width{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\"*\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-blur{syntax:\"*\";inherits:false}@property --tw-brightness{syntax:\"*\";inherits:false}@property --tw-contrast{syntax:\"*\";inherits:false}@property --tw-grayscale{syntax:\"*\";inherits:false}@property --tw-hue-rotate{syntax:\"*\";inherits:false}@property --tw-invert{syntax:\"*\";inherits:false}@property --tw-opacity{syntax:\"*\";inherits:false}@property --tw-saturate{syntax:\"*\";inherits:false}@property --tw-sepia{syntax:\"*\";inherits:false}@property --tw-drop-shadow{syntax:\"*\";inherits:false}@property --tw-drop-shadow-color{syntax:\"*\";inherits:false}@property --tw-drop-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:\"*\";inherits:false}@property --tw-backdrop-blur{syntax:\"*\";inherits:false}@property --tw-backdrop-brightness{syntax:\"*\";inherits:false}@property --tw-backdrop-contrast{syntax:\"*\";inherits:false}@property --tw-backdrop-grayscale{syntax:\"*\";inherits:false}@property --tw-backdrop-hue-rotate{syntax:\"*\";inherits:false}@property --tw-backdrop-invert{syntax:\"*\";inherits:false}@property --tw-backdrop-opacity{syntax:\"*\";inherits:false}@property --tw-backdrop-saturate{syntax:\"*\";inherits:false}@property --tw-backdrop-sepia{syntax:\"*\";inherits:false}@property --tw-duration{syntax:\"*\";inherits:false}@property --tw-ease{syntax:\"*\";inherits:false}@property --tw-contain-size{syntax:\"*\";inherits:false}@property --tw-contain-layout{syntax:\"*\";inherits:false}@property --tw-contain-paint{syntax:\"*\";inherits:false}@property --tw-contain-style{syntax:\"*\";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}";
47878
+ var M3 = "/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */\n@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-contain-size:initial;--tw-contain-layout:initial;--tw-contain-paint:initial;--tw-contain-style:initial}}}@layer theme{:root,:host{--font-sans:\"Inter\", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-serif:ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif;--font-mono:ui-monospace, \"SF Mono\", Menlo, monospace;--color-red-500:oklch(63.7% .237 25.331);--color-white:#fff;--spacing:.25rem;--font-weight-thin:100;--font-weight-extralight:200;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--font-weight-black:900;--tracking-wide:.025em;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--radius-xl:.75rem;--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-bg:#0b0c0e;--color-surface:#141517;--color-surface-2:#1c1d21;--color-surface-3:#24262b;--color-border:#26282d;--color-border-strong:#34363d;--color-text:#e8e9eb;--color-text-dim:#8b8e98;--color-text-faint:#5c5f6a;--color-accent:#5e6ad2;--color-accent-hover:#6e79e0;--color-accent-soft:#5e6ad226;--color-success:#4cb782;--color-warn:#f2c94c;--color-danger:#eb5757;--color-danger-soft:#eb575726}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.visible\\!{visibility:visible!important}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-y-0{inset-block:0}.-top-0{top:0}.-top-0\\.5{top:calc(var(--spacing) * -.5)}.top-0{top:0}.top-0\\.5{top:calc(var(--spacing) * .5)}.top-1{top:var(--spacing)}.top-1\\/2{top:50%}.top-3{top:calc(var(--spacing) * 3)}.top-\\[2px\\]{top:2px}.top-full{top:100%}.-right-0{right:0}.-right-0\\.5{right:calc(var(--spacing) * -.5)}.right-0{right:0}.right-0\\.5{right:calc(var(--spacing) * .5)}.right-4{right:calc(var(--spacing) * 4)}.right-full{right:100%}.bottom-0{bottom:0}.bottom-1{bottom:var(--spacing)}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-\\[2px\\]{bottom:2px}.bottom-full{bottom:100%}.-left-\\[13\\.5px\\]{left:-13.5px}.left-0{left:0}.left-1{left:var(--spacing)}.left-1\\/2{left:50%}.left-\\[5px\\]{left:5px}.left-full{left:100%}.z-1{z-index:1}.z-10{z-index:10}.z-\\[2147483645\\]{z-index:2147483645}.z-\\[2147483646\\]{z-index:2147483646}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.container\\!{width:100%!important}@media (width>=40rem){.container\\!{max-width:40rem!important}}@media (width>=48rem){.container\\!{max-width:48rem!important}}@media (width>=64rem){.container\\!{max-width:64rem!important}}@media (width>=80rem){.container\\!{max-width:80rem!important}}@media (width>=96rem){.container\\!{max-width:96rem!important}}.-m-0{margin:0}.-m-0\\.5{margin:calc(var(--spacing) * -.5)}.-m-4{margin:calc(var(--spacing) * -4)}.m-0{margin:0}.-mx-2{margin-inline:calc(var(--spacing) * -2)}.-my-1{margin-block:calc(var(--spacing) * -1)}.-my-1\\.5{margin-block:calc(var(--spacing) * -1.5)}.mt-0{margin-top:0}.mt-0\\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-px{margin-top:1px}.mr-0{margin-right:0}.mr-0\\.5{margin-right:calc(var(--spacing) * .5)}.mr-1{margin-right:var(--spacing)}.mr-1\\.5{margin-right:calc(var(--spacing) * 1.5)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-2\\.5{margin-right:calc(var(--spacing) * 2.5)}.-mb-4{margin-bottom:calc(var(--spacing) * -4)}.mb-0{margin-bottom:0}.mb-0\\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:var(--spacing)}.mb-1\\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-2\\.5{margin-bottom:calc(var(--spacing) * 2.5)}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-2\\.5{margin-left:calc(var(--spacing) * 2.5)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-auto{margin-left:auto}.ml-px{margin-left:1px}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-5{-webkit-line-clamp:5;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.list-item{display:list-item}.table{display:table}.size-0{width:0;height:0}.size-1{width:var(--spacing);height:var(--spacing)}.size-1\\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-\\[9px\\]{width:9px;height:9px}.size-\\[12px\\]{width:12px;height:12px}.size-\\[16px\\]{width:16px;height:16px}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-16{height:calc(var(--spacing) * 16)}.h-\\[8px\\]{height:8px}.h-\\[17px\\]{height:17px}.h-\\[18px\\]{height:18px}.h-\\[20px\\]{height:20px}.h-\\[24px\\]{height:24px}.h-fit{height:fit-content}.h-full{height:100%}.h-screen{height:100vh}.max-h-32{max-height:calc(var(--spacing) * 32)}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-44{max-height:calc(var(--spacing) * 44)}.max-h-56{max-height:calc(var(--spacing) * 56)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-\\[var\\(--rg-edit-list-max-h\\)\\]{max-height:var(--rg-edit-list-max-h)}.min-h-0{min-height:0}.min-h-4{min-height:calc(var(--spacing) * 4)}.min-h-\\[2lh\\]{min-height:2lh}.min-h-\\[28px\\]{min-height:28px}.w-1{width:var(--spacing)}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-16{width:calc(var(--spacing) * 16)}.w-28{width:calc(var(--spacing) * 28)}.w-72{width:calc(var(--spacing) * 72)}.w-\\[2px\\]{width:2px}.w-\\[calc\\(100\\%\\+16px\\)\\]{width:calc(100% + 16px)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-\\[55\\%\\]{max-width:55%}.max-w-\\[100vw\\]{max-width:100vw}.max-w-\\[110px\\]{max-width:110px}.max-w-\\[280px\\]{max-width:280px}.max-w-full{max-width:100%}.min-w-0{min-width:0}.min-w-\\[3\\.5ch\\]{min-width:3.5ch}.min-w-\\[3ch\\]{min-width:3ch}.min-w-\\[4ch\\]{min-width:4ch}.min-w-\\[5ch\\]{min-width:5ch}.min-w-\\[6ch\\]{min-width:6ch}.min-w-\\[7ch\\]{min-width:7ch}.min-w-\\[8ch\\]{min-width:8ch}.min-w-\\[10ch\\]{min-width:10ch}.min-w-\\[12ch\\]{min-width:12ch}.min-w-\\[36px\\]{min-width:36px}.min-w-\\[52px\\]{min-width:52px}.min-w-\\[100px\\]{min-width:100px}.min-w-\\[150px\\]{min-width:150px}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-rotate-90{rotate:-90deg}.rotate-0{rotate:0deg}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.list-decimal{list-style-type:decimal}.grid-cols-\\[0fr\\]{grid-template-columns:0fr}.grid-cols-\\[1fr\\]{grid-template-columns:1fr}.grid-rows-\\[0fr\\]{grid-template-rows:0fr}.grid-rows-\\[1fr\\]{grid-template-rows:1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:0}.gap-0\\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-\\[5px\\]{gap:5px}.self-end{align-self:flex-end}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-clip{overflow:clip}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\\[1px\\]{border-radius:1px}.rounded-\\[3px\\]{border-radius:3px}.rounded-\\[4px\\]{border-radius:4px}.rounded-\\[5px\\]{border-radius:5px}.rounded-\\[6px\\]{border-radius:6px}.rounded-\\[13px\\]{border-radius:13px}.rounded-\\[14px\\]{border-radius:14px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-t-\\[10px\\]{border-top-left-radius:10px;border-top-right-radius:10px}.rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.rounded-l{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-l-\\[10px\\]{border-top-left-radius:10px;border-bottom-left-radius:10px}.rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.rounded-tl{border-top-left-radius:.25rem}.rounded-r{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-r-\\[10px\\]{border-top-right-radius:10px;border-bottom-right-radius:10px}.rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-tr{border-top-right-radius:.25rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-b-\\[6px\\]{border-bottom-right-radius:6px;border-bottom-left-radius:6px}.rounded-b-\\[10px\\]{border-bottom-right-radius:10px;border-bottom-left-radius:10px}.rounded-b-none{border-bottom-right-radius:0;border-bottom-left-radius:0}.rounded-br{border-bottom-right-radius:.25rem}.rounded-bl{border-bottom-left-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.\\[border-width\\:0\\.5px\\]{border-width:.5px}.border-x{border-inline-style:var(--tw-border-style);border-inline-width:1px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-s{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}.border-e{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-4{border-top-style:var(--tw-border-style);border-top-width:4px}.\\[border-top-width\\:0\\.5px\\]{border-top-width:.5px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-dotted{--tw-border-style:dotted;border-style:dotted}.border-none{--tw-border-style:none;border-style:none}.border-solid{--tw-border-style:solid;border-style:solid}.border-\\[var\\(--rg-border-button\\)\\]{border-color:var(--rg-border-button)}.border-accent{border-color:var(--color-accent)}.border-accent\\/40{border-color:#5e6ad266}@supports (color:color-mix(in lab, red, red)){.border-accent\\/40{border-color:color-mix(in oklab, var(--color-accent) 40%, transparent)}}.border-border{border-color:var(--color-border)}.border-success{border-color:var(--color-success)}.border-success\\/40{border-color:#4cb78266}@supports (color:color-mix(in lab, red, red)){.border-success\\/40{border-color:color-mix(in oklab, var(--color-success) 40%, transparent)}}.border-text-dim{border-color:var(--color-text-dim)}.border-transparent{border-color:#0000}.border-warn{border-color:var(--color-warn)}.border-warn\\/40{border-color:#f2c94c66}@supports (color:color-mix(in lab, red, red)){.border-warn\\/40{border-color:color-mix(in oklab, var(--color-warn) 40%, transparent)}}.border-t-\\[var\\(--rg-border-subtle\\)\\]{border-top-color:var(--rg-border-subtle)}.border-t-transparent{border-top-color:#0000}.bg-\\[var\\(--rg-error-bg\\)\\]{background-color:var(--rg-error-bg)}.bg-\\[var\\(--rg-panel-bg\\)\\]{background-color:var(--rg-panel-bg)}.bg-\\[var\\(--rg-submit-bg\\)\\]{background-color:var(--rg-submit-bg)}.bg-\\[var\\(--rg-surface-active\\)\\]{background-color:var(--rg-surface-active)}.bg-\\[var\\(--rg-surface-hover\\)\\]{background-color:var(--rg-surface-hover)}.bg-\\[var\\(--rg-text-primary\\)\\]{background-color:var(--rg-text-primary)}.bg-\\[var\\(--rg-text-secondary\\)\\]{background-color:var(--rg-text-secondary)}.bg-accent{background-color:var(--color-accent)}.bg-accent-soft{background-color:var(--color-accent-soft)}.bg-bg{background-color:var(--color-bg)}.bg-bg\\/80{background-color:#0b0c0ecc}@supports (color:color-mix(in lab, red, red)){.bg-bg\\/80{background-color:color-mix(in oklab, var(--color-bg) 80%, transparent)}}.bg-border{background-color:var(--color-border)}.bg-current{background-color:currentColor}.bg-danger{background-color:var(--color-danger)}.bg-danger-soft{background-color:var(--color-danger-soft)}.bg-red-500{background-color:var(--color-red-500)}.bg-success{background-color:var(--color-success)}.bg-surface{background-color:var(--color-surface)}.bg-surface-2{background-color:var(--color-surface-2)}.bg-surface-3{background-color:var(--color-surface-3)}.bg-text-faint{background-color:var(--color-text-faint)}.bg-transparent{background-color:#0000}.bg-warn{background-color:var(--color-warn)}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:0}.p-0\\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\\.5{padding:calc(var(--spacing) * 2.5)}.p-6{padding:calc(var(--spacing) * 6)}.px-0{padding-inline:0}.px-0\\.25{padding-inline:calc(var(--spacing) * .25)}.px-1{padding-inline:var(--spacing)}.px-1\\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-\\[3px\\]{padding-inline:3px}.py-0{padding-block:0}.py-0\\.5{padding-block:calc(var(--spacing) * .5)}.py-0\\.25{padding-block:calc(var(--spacing) * .25)}.py-1{padding-block:var(--spacing)}.py-1\\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-px{padding-block:1px}.pt-0{padding-top:0}.pt-0\\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:var(--spacing)}.pt-1\\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pr-1{padding-right:var(--spacing)}.pr-1\\.5{padding-right:calc(var(--spacing) * 1.5)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pb-1{padding-bottom:var(--spacing)}.pb-1\\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pl-0{padding-left:0}.pl-0\\.5{padding-left:calc(var(--spacing) * .5)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-2\\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.text-center{text-align:center}.text-end{text-align:end}.text-justify{text-align:justify}.text-left{text-align:left}.text-right{text-align:right}.text-start{text-align:start}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.font-serif{font-family:var(--font-serif)}.text-\\[9\\.5px\\]{font-size:9.5px}.text-\\[9px\\]{font-size:9px}.text-\\[10\\.5px\\]{font-size:10.5px}.text-\\[10px\\]{font-size:10px}.text-\\[11\\.5px\\]{font-size:11.5px}.text-\\[11px\\]{font-size:11px}.text-\\[12\\.5px\\]{font-size:12.5px}.text-\\[12px\\]{font-size:12px}.text-\\[13px\\]{font-size:13px}.text-\\[15px\\]{font-size:15px}.leading-3{--tw-leading:calc(var(--spacing) * 3);line-height:calc(var(--spacing) * 3)}.leading-3\\.5{--tw-leading:calc(var(--spacing) * 3.5);line-height:calc(var(--spacing) * 3.5)}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-extralight{--tw-font-weight:var(--font-weight-extralight);font-weight:var(--font-weight-extralight)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.font-thin{--tw-font-weight:var(--font-weight-thin);font-weight:var(--font-weight-thin)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-normal{overflow-wrap:normal;word-break:normal}.break-words,.wrap-break-word{overflow-wrap:break-word}.break-all{word-break:break-all}.break-keep{word-break:keep-all}.text-ellipsis{text-overflow:ellipsis}.whitespace-break-spaces{white-space:break-spaces}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.text-\\[var\\(--rg-error-text\\)\\]{color:var(--rg-error-text)}.text-\\[var\\(--rg-submit-fg\\)\\]{color:var(--rg-submit-fg)}.text-\\[var\\(--rg-text-primary\\)\\]{color:var(--rg-text-primary)}.text-\\[var\\(--rg-text-primary-85\\)\\]{color:var(--rg-text-primary-85)}.text-\\[var\\(--rg-text-secondary\\)\\]{color:var(--rg-text-secondary)}.text-accent{color:var(--color-accent)}.text-danger{color:var(--color-danger)}.text-success{color:var(--color-success)}.text-text{color:var(--color-text)}.text-text-dim{color:var(--color-text-dim)}.text-text-faint{color:var(--color-text-faint)}.text-warn{color:var(--color-warn)}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.not-italic{font-style:normal}.lining-nums{--tw-numeric-figure:lining-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.oldstyle-nums{--tw-numeric-figure:oldstyle-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.proportional-nums{--tw-numeric-spacing:proportional-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.slashed-zero{--tw-slashed-zero:slashed-zero;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.accent-accent{accent-color:var(--color-accent)}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.\\[box-shadow\\:var\\(--rg-shadow\\)\\]{box-shadow:var(--rg-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.\\[filter\\:var\\(--rg-drop-shadow\\)\\]{filter:var(--rg-drop-shadow)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[grid-template-columns\\]{transition-property:grid-template-columns;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[grid-template-rows\\]{transition-property:grid-template-rows;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[opacity\\,transform\\]{transition-property:opacity,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[padding\\,border-radius\\,transform\\]{transition-property:padding,border-radius,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[top\\,left\\,width\\,height\\,opacity\\,border-radius\\]{transition-property:top,left,width,height,opacity,border-radius;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[transform\\,color\\]{transition-property:transform,color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[transform\\,opacity\\]{transition-property:transform,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.delay-\\[80ms\\]{transition-delay:80ms}.duration-60{--tw-duration:60ms;transition-duration:60ms}.duration-75{--tw-duration:75ms;transition-duration:75ms}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-120{--tw-duration:.12s;transition-duration:.12s}.duration-140{--tw-duration:.14s;transition-duration:.14s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-180{--tw-duration:.18s;transition-duration:.18s}.duration-220{--tw-duration:.22s;transition-duration:.22s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-400{--tw-duration:.4s;transition-duration:.4s}.ease-\\[cubic-bezier\\(0\\,0\\,0\\.2\\,1\\)\\]{--tw-ease:cubic-bezier(0,0,.2,1);transition-timing-function:cubic-bezier(0,0,.2,1)}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.will-change-\\[opacity\\,transform\\]{will-change:opacity,transform}.will-change-transform{will-change:transform}.contain-layout{--tw-contain-layout:layout;contain:var(--tw-contain-size,) var(--tw-contain-layout,) var(--tw-contain-paint,) var(--tw-contain-style,)}.outline-none{--tw-outline-style:none;outline-style:none}.select-all{-webkit-user-select:all;user-select:all}.select-none{-webkit-user-select:none;user-select:none}.\\[corner-shape\\:superellipse\\(1\\.25\\)\\]{corner-shape:superellipse(1.25)}.\\[font-synthesis\\:none\\]{font-synthesis:none}.group-open\\:rotate-90:is(:where(.group):is([open],:popover-open,:open) *){rotate:90deg}@media (hover:hover){.group-hover\\:text-\\[var\\(--rg-text-primary\\)\\]:is(:where(.group):hover *){color:var(--rg-text-primary)}.group-hover\\:opacity-100:is(:where(.group):hover *){opacity:1}}.placeholder\\:text-text-faint::placeholder{color:var(--color-text-faint)}@media (hover:hover){.hover\\:bg-\\[var\\(--rg-error-bg-hover\\)\\]:hover{background-color:var(--rg-error-bg-hover)}.hover\\:bg-\\[var\\(--rg-surface-active\\)\\]:hover{background-color:var(--rg-surface-active)}.hover\\:bg-\\[var\\(--rg-surface-hover\\)\\]:hover{background-color:var(--rg-surface-hover)}.hover\\:bg-accent-hover:hover{background-color:var(--color-accent-hover)}.hover\\:bg-accent\\/50:hover{background-color:#5e6ad280}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-accent\\/50:hover{background-color:color-mix(in oklab, var(--color-accent) 50%, transparent)}}.hover\\:bg-danger\\/30:hover{background-color:#eb57574d}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-danger\\/30:hover{background-color:color-mix(in oklab, var(--color-danger) 30%, transparent)}}.hover\\:bg-surface-2:hover{background-color:var(--color-surface-2)}.hover\\:bg-surface-3:hover{background-color:var(--color-surface-3)}.hover\\:text-\\[var\\(--rg-text-primary\\)\\]:hover{color:var(--rg-text-primary)}.hover\\:text-accent:hover{color:var(--color-accent)}.hover\\:text-danger:hover{color:var(--color-danger)}.hover\\:text-text:hover{color:var(--color-text)}.hover\\:underline:hover{text-decoration-line:underline}.hover\\:opacity-80:hover{opacity:.8}}.focus\\:border-accent:focus{border-color:var(--color-accent)}.active\\:cursor-grabbing:active{cursor:grabbing}.active\\:bg-accent:active{background-color:var(--color-accent)}.active\\:transition-none:active{transition-property:none}.disabled\\:cursor-default:disabled{cursor:default}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:bg-surface-3:disabled{background-color:var(--color-surface-3)}.disabled\\:text-text-faint:disabled{color:var(--color-text-faint)}.disabled\\:opacity-40:disabled{opacity:.4}@media (hover:hover){.disabled\\:hover\\:bg-surface-2:disabled:hover{background-color:var(--color-surface-2)}}.data-\\[state\\=on\\]\\:transition-none[data-state=on],.data-\\[state\\=open\\]\\:transition-none[data-state=open],.data-\\[state\\=…\\]\\:transition-none[data-state=…]{transition-property:none}}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=light],:host([data-theme=light]){--color-bg:#fbfbfc;--color-surface:#fff;--color-surface-2:#f4f4f6;--color-surface-3:#e9e9ee;--color-border:#e2e2e8;--color-border-strong:#cfcfd8;--color-text:#1b1c20;--color-text-dim:#5c5f6a;--color-text-faint:#9a9da8;--color-accent-soft:#5e6ad21f;--color-danger-soft:#eb57571a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--color-bg:#fbfbfc;--color-surface:#fff;--color-surface-2:#f4f4f6;--color-surface-3:#e9e9ee;--color-border:#e2e2e8;--color-border-strong:#cfcfd8;--color-text:#1b1c20;--color-text-dim:#5c5f6a;--color-text-faint:#9a9da8;--color-accent-soft:#5e6ad21f;--color-danger-soft:#eb57571a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}body{background-color:var(--color-bg);font-family:var(--font-sans);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-width:320px;margin:0;font-size:13px}@keyframes geist-spinner-fade{0%{opacity:1}to{opacity:.15}}[data-tip]{position:relative}[data-tip]:hover:after{content:attr(data-tip);color:#fff;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;z-index:60;background:#1b1c20;border-radius:6px;max-width:260px;padding:3px 8px;font-size:10.5px;font-weight:500;line-height:1.35;position:absolute;bottom:calc(100% + 6px);left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 4px 12px #0000004d}[data-tip][data-tip-pos~=right]:hover:after{left:0;transform:none}[data-tip][data-tip-pos~=left]:hover:after{left:auto;right:0;transform:none}[data-tip][data-tip-pos~=bottom]:hover:after{top:calc(100% + 6px);bottom:auto}.no-scrollbar{scrollbar-width:none}.no-scrollbar::-webkit-scrollbar{display:none}.lg-md p{margin:0 0 6px}.lg-md p:last-child{margin-bottom:0}.lg-md a{color:var(--color-accent);word-break:break-all;text-decoration:none}.lg-md a:hover{text-decoration:underline}.lg-md code{background:var(--color-surface-2);border:1px solid var(--color-border);font-family:var(--font-mono);border-radius:4px;padding:0 4px;font-size:11px}.lg-md pre{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:6px;margin:6px 0;padding:8px;overflow-x:auto}.lg-md pre code{white-space:pre;background:0 0;border:none;padding:0;font-size:11px}.lg-md ul,.lg-md ol{flex-direction:column;gap:2px;margin:4px 0 6px;padding-left:18px;display:flex}.lg-md ul{list-style:outside}.lg-md ol{list-style:decimal}.lg-md h4{margin:8px 0 4px;font-size:12px;font-weight:600}.lg-md lg-media{display:block}.lg-md lg-media img,.lg-md lg-media video{border:1px solid var(--color-border);border-radius:6px;max-width:100%;margin:4px 0}.lg-md video{border:1px solid var(--color-border);background:#000;border-radius:6px;max-width:100%;margin:4px 0}.lg-md img{border:1px solid var(--color-border);border-radius:6px;max-width:100%;margin:4px 0}.lg-md strong{font-weight:600}*{scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:4px}::-webkit-scrollbar-track{background:0 0}@property --tw-rotate-x{syntax:\"*\";inherits:false}@property --tw-rotate-y{syntax:\"*\";inherits:false}@property --tw-rotate-z{syntax:\"*\";inherits:false}@property --tw-skew-x{syntax:\"*\";inherits:false}@property --tw-skew-y{syntax:\"*\";inherits:false}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-leading{syntax:\"*\";inherits:false}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-tracking{syntax:\"*\";inherits:false}@property --tw-ordinal{syntax:\"*\";inherits:false}@property --tw-slashed-zero{syntax:\"*\";inherits:false}@property --tw-numeric-figure{syntax:\"*\";inherits:false}@property --tw-numeric-spacing{syntax:\"*\";inherits:false}@property --tw-numeric-fraction{syntax:\"*\";inherits:false}@property --tw-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\"*\";inherits:false}@property --tw-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\"*\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\"*\";inherits:false}@property --tw-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\"*\";inherits:false}@property --tw-inset-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\"*\";inherits:false}@property --tw-ring-offset-width{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\"*\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-blur{syntax:\"*\";inherits:false}@property --tw-brightness{syntax:\"*\";inherits:false}@property --tw-contrast{syntax:\"*\";inherits:false}@property --tw-grayscale{syntax:\"*\";inherits:false}@property --tw-hue-rotate{syntax:\"*\";inherits:false}@property --tw-invert{syntax:\"*\";inherits:false}@property --tw-opacity{syntax:\"*\";inherits:false}@property --tw-saturate{syntax:\"*\";inherits:false}@property --tw-sepia{syntax:\"*\";inherits:false}@property --tw-drop-shadow{syntax:\"*\";inherits:false}@property --tw-drop-shadow-color{syntax:\"*\";inherits:false}@property --tw-drop-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:\"*\";inherits:false}@property --tw-backdrop-blur{syntax:\"*\";inherits:false}@property --tw-backdrop-brightness{syntax:\"*\";inherits:false}@property --tw-backdrop-contrast{syntax:\"*\";inherits:false}@property --tw-backdrop-grayscale{syntax:\"*\";inherits:false}@property --tw-backdrop-hue-rotate{syntax:\"*\";inherits:false}@property --tw-backdrop-invert{syntax:\"*\";inherits:false}@property --tw-backdrop-opacity{syntax:\"*\";inherits:false}@property --tw-backdrop-saturate{syntax:\"*\";inherits:false}@property --tw-backdrop-sepia{syntax:\"*\";inherits:false}@property --tw-duration{syntax:\"*\";inherits:false}@property --tw-ease{syntax:\"*\";inherits:false}@property --tw-contain-size{syntax:\"*\";inherits:false}@property --tw-contain-layout{syntax:\"*\";inherits:false}@property --tw-contain-paint{syntax:\"*\";inherits:false}@property --tw-contain-style{syntax:\"*\";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}";
47835
47879
  //#endregion
47836
47880
  //#region src/page/index.tsx
47837
47881
  Br();
47838
- var E3 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-danger size-2 shrink-0 animate-pulse rounded-full\">"), D3 = /*#__PURE__*/ N("<span class=\"text-text min-w-[5ch] text-[11px] font-medium tabular-nums\">"), O3 = /*#__PURE__*/ N("<button class=\"bg-accent hover:bg-accent-hover h-7 cursor-pointer rounded-full px-2.5 text-[11px] font-medium text-white transition-colors\"><span class=\"inline-block min-w-[4ch] text-center\">Stop"), k3 = /*#__PURE__*/ N("<p class=\"text-warn px-1.5 pt-1 pb-1.5 text-[10.5px] font-semibold tracking-wide uppercase\">Needs review"), A3 = /*#__PURE__*/ N("<div><p class=\"text-text-dim px-1.5 pt-1 pb-1.5 text-[10.5px] font-semibold tracking-wide uppercase\">Running agents"), j3 = /*#__PURE__*/ N("<div class=\"fixed z-[2147483646] select-none\"><div class=\"bg-surface border-border text-text flex h-9 cursor-grab items-center gap-1 rounded-full border py-1 pr-1 pl-2.5 font-sans shadow-lg active:cursor-grabbing\">"), M3 = /*#__PURE__*/ N("<div><div title=\"Drag to resize\">"), N3 = /*#__PURE__*/ N("<button title=\"Open Linear Grab\"aria-label=\"Open Linear Grab\"class=\"text-accent hover:opacity-80 inline-flex cursor-pointer items-center gap-1.5\">"), P3 = /*#__PURE__*/ N("<span class=\"bg-border h-4 w-px\"aria-hidden>"), F3 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-warn size-2 rounded-full\">"), I3 = /*#__PURE__*/ N("<span class=\"text-warn min-w-[3.5ch] text-left text-[11px] font-medium tabular-nums\"> rev"), L3 = /*#__PURE__*/ N("<button title=\"Running agents\"aria-label=\"Running agents\"class=\"hover:bg-surface-2 flex h-7 cursor-pointer items-center gap-1.5 rounded-full px-2 transition-colors\"><span aria-hidden></span><span>"), R3 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-accent size-2 shrink-0 animate-pulse rounded-full\">"), z3 = /*#__PURE__*/ N("<span class=\"text-text min-w-[3ch] text-[11px] font-medium tabular-nums\">s"), B3 = /*#__PURE__*/ N("<span class=\"text-text-dim min-w-[7ch] text-[11px] tabular-nums\"> states"), V3 = /*#__PURE__*/ N("<p class=\"text-text-faint px-1.5 pb-1.5 text-[11.5px]\">No agents running right now."), H3 = /*#__PURE__*/ N("<button class=\"hover:bg-surface-2 flex w-full cursor-pointer flex-col gap-0.5 rounded-md px-1.5 py-1.5 text-left transition-colors\"><span class=\"flex min-w-0 items-center gap-1.5\"><span aria-hidden class=\"size-1.5 shrink-0 rounded-full\"></span><span class=\"font-mono text-text-dim shrink-0 text-[10.5px]\"></span><span class=\"text-text truncate text-[11.5px]\"></span></span><span class=\"text-text-faint pl-3 text-[10.5px] tabular-nums\"> · <!> · ");
47839
- function U3(e = {}) {
47882
+ var N3 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-danger size-2 shrink-0 animate-pulse rounded-full\">"), P3 = /*#__PURE__*/ N("<span class=\"text-text min-w-[5ch] text-[11px] font-medium tabular-nums\">"), F3 = /*#__PURE__*/ N("<button class=\"bg-accent hover:bg-accent-hover h-7 cursor-pointer rounded-full px-2.5 text-[11px] font-medium text-white transition-colors\"><span class=\"inline-block min-w-[4ch] text-center\">Stop"), I3 = /*#__PURE__*/ N("<p class=\"text-warn px-1.5 pt-1 pb-1.5 text-[10.5px] font-semibold tracking-wide uppercase\">Needs review"), L3 = /*#__PURE__*/ N("<div><p class=\"text-text-dim px-1.5 pt-1 pb-1.5 text-[10.5px] font-semibold tracking-wide uppercase\">Running agents"), R3 = /*#__PURE__*/ N("<div class=\"fixed z-[2147483646] select-none\"><div class=\"bg-surface border-border text-text flex h-9 cursor-grab items-center gap-1 rounded-full border py-1 pr-1 pl-2.5 font-sans shadow-lg active:cursor-grabbing\">"), z3 = /*#__PURE__*/ N("<div><div title=\"Drag to resize\">"), B3 = /*#__PURE__*/ N("<button title=\"Open Linear Grab\"aria-label=\"Open Linear Grab\"class=\"text-accent hover:opacity-80 inline-flex cursor-pointer items-center gap-1.5\">"), V3 = /*#__PURE__*/ N("<span class=\"bg-border h-4 w-px\"aria-hidden>"), H3 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-warn size-2 rounded-full\">"), U3 = /*#__PURE__*/ N("<span class=\"text-warn min-w-[3.5ch] text-left text-[11px] font-medium tabular-nums\"> rev"), W3 = /*#__PURE__*/ N("<button title=\"Running agents\"aria-label=\"Running agents\"class=\"hover:bg-surface-2 flex h-7 cursor-pointer items-center gap-1.5 rounded-full px-2 transition-colors\"><span aria-hidden></span><span>"), G3 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-accent size-2 shrink-0 animate-pulse rounded-full\">"), K3 = /*#__PURE__*/ N("<span class=\"text-text min-w-[3ch] text-[11px] font-medium tabular-nums\">s"), q3 = /*#__PURE__*/ N("<span class=\"text-text-dim min-w-[7ch] text-[11px] tabular-nums\"> states"), J3 = /*#__PURE__*/ N("<p class=\"text-text-faint px-1.5 pb-1.5 text-[11.5px]\">No agents running right now."), Y3 = /*#__PURE__*/ N("<button class=\"hover:bg-surface-2 flex w-full cursor-pointer flex-col gap-0.5 rounded-md px-1.5 py-1.5 text-left transition-colors\"><span class=\"flex min-w-0 items-center gap-1.5\"><span aria-hidden class=\"size-1.5 shrink-0 rounded-full\"></span><span class=\"font-mono text-text-dim shrink-0 text-[10.5px]\"></span><span class=\"text-text truncate text-[11.5px]\"></span></span><span class=\"text-text-faint pl-3 text-[10.5px] tabular-nums\"> · <!> · ");
47883
+ function X3(e = {}) {
47840
47884
  if (typeof window > "u" || window.__LINEAR_GRAB_PAGE__) return;
47841
47885
  window.__LINEAR_GRAB_PAGE__ = !0;
47842
47886
  let t = () => {
47843
- lk(), A2(), JZ();
47887
+ lk(), F2(), JZ();
47844
47888
  let t = document.createElement("div");
47845
47889
  t.id = "linear-grab-root", document.body.appendChild(t);
47846
47890
  let n = (e) => {
@@ -47868,17 +47912,17 @@ function U3(e = {}) {
47868
47912
  "keypress"
47869
47913
  ]) window.addEventListener(e, n, { capture: !0 });
47870
47914
  let r = t.attachShadow({ mode: "open" }), i = document.createElement("style");
47871
- i.textContent = T3, r.appendChild(i);
47915
+ i.textContent = M3, r.appendChild(i);
47872
47916
  let a = document.createElement("div");
47873
47917
  r.appendChild(a);
47874
- let o = () => a.setAttribute("data-theme", W3());
47875
- o(), matchMedia("(prefers-color-scheme: light)").addEventListener("change", o), nt(() => j(X3, { get defaultOpen() {
47918
+ let o = () => a.setAttribute("data-theme", Z3());
47919
+ o(), matchMedia("(prefers-color-scheme: light)").addEventListener("change", o), nt(() => j(r6, { get defaultOpen() {
47876
47920
  return e.defaultOpen ?? !1;
47877
47921
  } }), a);
47878
47922
  };
47879
47923
  document.body ? t() : document.addEventListener("DOMContentLoaded", t, { once: !0 });
47880
47924
  }
47881
- function W3() {
47925
+ function Z3() {
47882
47926
  try {
47883
47927
  let e = [document.body, document.documentElement];
47884
47928
  for (let t of e) {
@@ -47888,11 +47932,11 @@ function W3() {
47888
47932
  } catch {}
47889
47933
  return matchMedia("(prefers-color-scheme: light)").matches ? "light" : "dark";
47890
47934
  }
47891
- var G3 = 130, K3 = 36, q3 = 380, J3 = 280, Y3 = 720;
47892
- function X3(e) {
47935
+ var Q3 = 130, $3 = 36, e6 = 380, t6 = 280, n6 = 720;
47936
+ function r6(e) {
47893
47937
  let [t, n] = T(e.defaultOpen), [r, i] = T("right"), [a, o] = T({
47894
- x: Math.max(8, window.innerWidth - G3 - 24),
47895
- y: Math.max(8, window.innerHeight - K3 - 20)
47938
+ x: Math.max(8, window.innerWidth - Q3 - 24),
47939
+ y: Math.max(8, window.innerHeight - $3 - 20)
47896
47940
  }), [s, c] = T({
47897
47941
  running: [],
47898
47942
  review: []
@@ -47912,12 +47956,12 @@ function X3(e) {
47912
47956
  let t = Math.floor(e / 1e3);
47913
47957
  return `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
47914
47958
  }, [b, x] = T(null), S = (e) => ({
47915
- x: Math.min(Math.max(8, e.x), window.innerWidth - G3 - 8),
47916
- y: Math.min(Math.max(8, e.y), window.innerHeight - K3 - 8)
47959
+ x: Math.min(Math.max(8, e.x), window.innerWidth - Q3 - 8),
47960
+ y: Math.min(Math.max(8, e.y), window.innerHeight - $3 - 8)
47917
47961
  }), C = (e) => ({
47918
47962
  x: Math.min(Math.max(8 - (ne() - 80), e.x), window.innerWidth - 80),
47919
47963
  y: Math.min(Math.max(0, e.y), window.innerHeight - 80)
47920
- }), [w, E] = T(!1), [k, ee] = T("cloud"), [te, A] = T(!1), [ne, re] = T(q3), oe = (e) => Math.min(Y3, Math.max(J3, Math.min(e, window.innerWidth - 60)));
47964
+ }), [w, E] = T(!1), [k, ee] = T("cloud"), [te, A] = T(!1), [ne, re] = T(e6), oe = (e) => Math.min(n6, Math.max(t6, Math.min(e, window.innerWidth - 60)));
47921
47965
  O(() => {
47922
47966
  let e = document.documentElement, n = t() && w();
47923
47967
  e.style.transition = "margin 0.2s ease", e.style.marginRight = n && r() === "right" ? `${ne()}px` : "", e.style.marginLeft = n && r() === "left" ? `${ne()}px` : "";
@@ -48031,7 +48075,7 @@ function X3(e) {
48031
48075
  return !t();
48032
48076
  },
48033
48077
  get children() {
48034
- var e = j3(), t = e.firstChild;
48078
+ var e = R3(), t = e.firstChild;
48035
48079
  return t.$$click = () => {
48036
48080
  ce || p() === "recording" || h().active || (f(!1), n(!0));
48037
48081
  }, t.$$pointerdown = le, P(t, j(M, {
@@ -48041,14 +48085,14 @@ function X3(e) {
48041
48085
  get fallback() {
48042
48086
  return [
48043
48087
  (() => {
48044
- var e = N3();
48088
+ var e = B3();
48045
48089
  return e.$$click = () => {
48046
48090
  ce || (f(!1), n(!0));
48047
- }, P(e, j(C3, { size: 13 })), e;
48091
+ }, P(e, j(A3, { size: 13 })), e;
48048
48092
  })(),
48049
- P3(),
48093
+ V3(),
48050
48094
  (() => {
48051
- var e = L3(), t = e.firstChild, n = t.nextSibling;
48095
+ var e = W3(), t = e.firstChild, n = t.nextSibling;
48052
48096
  return e.$$click = (e) => {
48053
48097
  e.stopPropagation(), !ce && f((e) => !e);
48054
48098
  }, P(n, (() => {
@@ -48059,8 +48103,8 @@ function X3(e) {
48059
48103
  return $e(() => !te())() && u().length > 0;
48060
48104
  },
48061
48105
  get children() {
48062
- return [F3(), (() => {
48063
- var e = I3(), t = e.firstChild;
48106
+ return [H3(), (() => {
48107
+ var e = U3(), t = e.firstChild;
48064
48108
  return P(e, () => u().length, t), e;
48065
48109
  })()];
48066
48110
  }
@@ -48081,17 +48125,17 @@ function X3(e) {
48081
48125
  },
48082
48126
  get fallback() {
48083
48127
  return [
48084
- R3(),
48128
+ G3(),
48085
48129
  (() => {
48086
- var e = z3(), t = e.firstChild;
48130
+ var e = K3(), t = e.firstChild;
48087
48131
  return P(e, () => Math.ceil(h().msLeft / 1e3), t), e;
48088
48132
  })(),
48089
48133
  (() => {
48090
- var e = B3(), t = e.firstChild;
48134
+ var e = q3(), t = e.firstChild;
48091
48135
  return P(e, () => h().total, t), D(() => it(e, "title", Object.entries(h().byTrigger).map(([e, t]) => `${t} ${e}`).join(" · ") || "hover / open the component to record its states")), e;
48092
48136
  })(),
48093
48137
  (() => {
48094
- var e = O3();
48138
+ var e = F3();
48095
48139
  return e.$$click = (e) => {
48096
48140
  e.stopPropagation(), !ce && o2();
48097
48141
  }, e;
@@ -48100,13 +48144,13 @@ function X3(e) {
48100
48144
  },
48101
48145
  get children() {
48102
48146
  return [
48103
- E3(),
48147
+ N3(),
48104
48148
  (() => {
48105
- var e = D3();
48149
+ var e = P3();
48106
48150
  return P(e, () => y(_())), e;
48107
48151
  })(),
48108
48152
  (() => {
48109
- var e = O3();
48153
+ var e = F3();
48110
48154
  return e.$$click = () => {
48111
48155
  ce || eO();
48112
48156
  }, e;
@@ -48120,17 +48164,17 @@ function X3(e) {
48120
48164
  return d();
48121
48165
  },
48122
48166
  get children() {
48123
- var e = A3(), t = e.firstChild;
48167
+ var e = L3(), t = e.firstChild;
48124
48168
  return P(e, j(M, {
48125
48169
  get when() {
48126
48170
  return u().length > 0;
48127
48171
  },
48128
48172
  get children() {
48129
- return [k3(), j(We, {
48173
+ return [I3(), j(We, {
48130
48174
  get each() {
48131
48175
  return u();
48132
48176
  },
48133
- children: (e) => j(Z3, {
48177
+ children: (e) => j(i6, {
48134
48178
  agent: e,
48135
48179
  review: !0,
48136
48180
  onOpen: de
@@ -48142,14 +48186,14 @@ function X3(e) {
48142
48186
  return l().length > 0;
48143
48187
  },
48144
48188
  get fallback() {
48145
- return V3();
48189
+ return J3();
48146
48190
  },
48147
48191
  get children() {
48148
48192
  return j(We, {
48149
48193
  get each() {
48150
48194
  return l();
48151
48195
  },
48152
- children: (e) => j(Z3, {
48196
+ children: (e) => j(i6, {
48153
48197
  agent: e,
48154
48198
  onOpen: de
48155
48199
  })
@@ -48170,8 +48214,8 @@ function X3(e) {
48170
48214
  return t();
48171
48215
  },
48172
48216
  get children() {
48173
- var e = M3(), t = e.firstChild;
48174
- return t.$$pointerdown = fe, P(e, j(w3, {
48217
+ var e = z3(), t = e.firstChild;
48218
+ return t.$$pointerdown = fe, P(e, j(j3, {
48175
48219
  onGrab: () => n(!0),
48176
48220
  onClose: () => n(!1),
48177
48221
  get onHeaderPointerDown() {
@@ -48199,19 +48243,19 @@ function X3(e) {
48199
48243
  }
48200
48244
  })];
48201
48245
  }
48202
- function Z3(e) {
48246
+ function i6(e) {
48203
48247
  return (() => {
48204
- var t = H3(), n = t.firstChild, r = n.firstChild, i = r.nextSibling, a = i.nextSibling, o = n.nextSibling, s = o.firstChild, c = s.nextSibling;
48248
+ var t = Y3(), n = t.firstChild, r = n.firstChild, i = r.nextSibling, a = i.nextSibling, o = n.nextSibling, s = o.firstChild, c = s.nextSibling;
48205
48249
  return c.nextSibling, t.$$click = () => e.onOpen(e.agent.id), P(i, () => e.agent.identifier), P(a, () => e.agent.title), P(o, (() => {
48206
48250
  var t = $e(() => !!e.review);
48207
48251
  return () => t() ? "PR ready · needs review" : e.agent.stateName;
48208
- })(), s), P(o, () => e.agent.delegateName, c), P(o, () => Q3(e.agent.updatedAt), null), D((t) => dt(r, "background", e.review ? "var(--color-warn)" : e.agent.stateColor)), t;
48252
+ })(), s), P(o, () => e.agent.delegateName, c), P(o, () => a6(e.agent.updatedAt), null), D((t) => dt(r, "background", e.review ? "var(--color-warn)" : e.agent.stateColor)), t;
48209
48253
  })();
48210
48254
  }
48211
- function Q3(e) {
48255
+ function a6(e) {
48212
48256
  let t = Math.max(0, Math.floor((Date.now() - Date.parse(e)) / 1e3));
48213
48257
  return t < 60 ? "now" : t < 3600 ? `${Math.floor(t / 60)}m` : t < 86400 ? `${Math.floor(t / 3600)}h` : `${Math.floor(t / 86400)}d`;
48214
48258
  }
48215
48259
  rt(["pointerdown", "click"]);
48216
48260
  //#endregion
48217
- export { U3 as init };
48261
+ export { X3 as init };