linear-grab 0.25.1 → 0.25.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -46479,9 +46479,10 @@ var r4 = (e) => getComputedStyle(e), i4 = {
46479
46479
  check(e) {
46480
46480
  let t = [];
46481
46481
  for (let n of e.els) {
46482
- if (n.scrollWidth <= n.clientWidth + 8) continue;
46483
- let r = typeof n.className == "string" ? n.className : "";
46484
- /scroll-fade-x(-js)?/.test(r) || J2(n, e.css(n)) || t.push(W2(this, n, `horizontal scroller (scrollWidth ${n.scrollWidth} > clientWidth ${n.clientWidth}) with no fade`));
46482
+ let r = e.css(n).overflowX;
46483
+ if (r !== "auto" && r !== "scroll" || n.clientWidth < 24 || n.scrollWidth <= n.clientWidth + 8) continue;
46484
+ let i = typeof n.className == "string" ? n.className : "";
46485
+ /scroll-fade-x(-js)?/.test(i) || J2(n, e.css(n)) || t.push(W2(this, n, `horizontal scroller (scrollWidth ${n.scrollWidth} > clientWidth ${n.clientWidth}) with no fade`));
46485
46486
  }
46486
46487
  return t;
46487
46488
  }
@@ -46549,16 +46550,36 @@ var r4 = (e) => getComputedStyle(e), i4 = {
46549
46550
  severity: "warn",
46550
46551
  description: "Part 5: raw hex only for the status trio (#50E3C2/#EE0000/#F5A623) — a saturated non-token color on small UI text.",
46551
46552
  check(e) {
46552
- let t = [];
46553
- for (let n of e.els) {
46554
- if (!O4(n)) continue;
46555
- let r = (n.getAttribute("style") ?? "").match(/#[0-9a-fA-F]{6}/g) ?? [], i = e.css(n);
46556
- if ((parseFloat(i.fontSize) || 0) >= 16) continue;
46557
- for (let e of r) Z2.has(e.toLowerCase()) || t.push(W2(this, n, `hardcoded ${e} (not the brand status trio)`));
46558
- let a = q2(i.color);
46559
- if (a && r.length === 0) {
46560
- let [e, r, o] = a.split(",").map((e) => parseFloat(e));
46561
- Number.isFinite(e) && k4(e, r, o) && t.push(W2(this, n, `saturated non-token color ${i.color} on small UI text`));
46553
+ let t = [], n = /* @__PURE__ */ new Set();
46554
+ for (let e of Z2) {
46555
+ let t = q2(`rgb(${parseInt(e.slice(1, 3), 16)}, ${parseInt(e.slice(3, 5), 16)}, ${parseInt(e.slice(5, 7), 16)})`);
46556
+ t && n.add(t);
46557
+ }
46558
+ try {
46559
+ let t = e.root, r = t.documentElement;
46560
+ if (r && t.body) {
46561
+ let i = e.css(r), a = t.createElement("span");
46562
+ a.style.display = "none", t.body.appendChild(a);
46563
+ for (let e = 0; e < i.length; e++) {
46564
+ let t = i[e];
46565
+ if (!t.startsWith("--")) continue;
46566
+ let r = i.getPropertyValue(t).trim();
46567
+ if (!r || r.length > 40 || (a.style.color = "", a.style.color = r, !a.style.color)) continue;
46568
+ let o = q2(getComputedStyle(a).color);
46569
+ o && n.add(o);
46570
+ }
46571
+ a.remove();
46572
+ }
46573
+ } catch {}
46574
+ for (let r of e.els) {
46575
+ if (!O4(r)) continue;
46576
+ let i = (r.getAttribute("style") ?? "").match(/#[0-9a-fA-F]{6}/g) ?? [], a = e.css(r);
46577
+ if ((parseFloat(a.fontSize) || 0) >= 16) continue;
46578
+ for (let e of i) Z2.has(e.toLowerCase()) || t.push(W2(this, r, `hardcoded ${e} (not the brand status trio)`));
46579
+ let o = q2(a.color);
46580
+ if (o && i.length === 0 && !n.has(o)) {
46581
+ let [e, n, i] = o.split(",").map((e) => parseFloat(e));
46582
+ Number.isFinite(e) && k4(e, n, i) && t.push(W2(this, r, `saturated non-token color ${a.color} on small UI text`));
46562
46583
  }
46563
46584
  }
46564
46585
  return t;
@@ -46687,8 +46708,8 @@ var r4 = (e) => getComputedStyle(e), i4 = {
46687
46708
  t.push(W2(this, n, "interactive control with cursor:text"));
46688
46709
  continue;
46689
46710
  }
46690
- if (r === "pointer" && n.matches("p, h1, h2, h3, h4, h5, h6, span, label")) {
46691
- if (n.closest("button, a, [role=\"button\"], [onclick]") || n.matches("button, a, [role=\"button\"]")) continue;
46711
+ if (r === "pointer" && n.matches("p, h1, h2, h3, h4, h5, h6, span")) {
46712
+ if (n.closest("button, a, [role=\"button\"], [onclick], label") || n.matches("button, a, [role=\"button\"]")) continue;
46692
46713
  t.push(W2(this, n, `static ${n.tagName.toLowerCase()} with cursor:pointer and no interactive ancestor`));
46693
46714
  }
46694
46715
  }
@@ -46838,21 +46859,30 @@ function j4(e = typeof document < "u" ? document : {}) {
46838
46859
  return n || (n = getComputedStyle(e), t.set(e, n)), n;
46839
46860
  };
46840
46861
  r4 = n;
46841
- let r = Array.from(e.querySelectorAll("*")), i = [], a = e.documentElement ?? null, o = e.body ?? null;
46862
+ let r = Array.from(e.querySelectorAll("*")), i = [], a = e.documentElement ?? null, o = e.body ?? null, s = (a?.getBoundingClientRect().width ?? 0) > 0;
46842
46863
  for (let e of r) {
46843
46864
  if (e === a || e === o || e.closest("#linear-grab-root, #claude-agent-glow-border, [id^=\"react-scan\"]")) continue;
46844
46865
  let t = G2(e);
46845
- t.width === 0 && t.height === 0 && e.children.length === 0 || i.push(e);
46866
+ if (s) {
46867
+ if (t.width < 2 || t.height < 2) continue;
46868
+ } else if (t.width === 0 && t.height === 0 && e.children.length === 0) continue;
46869
+ i.push(e);
46846
46870
  }
46847
- let s = {
46871
+ let c = {
46848
46872
  root: e,
46849
46873
  els: i,
46850
46874
  css: n
46851
- }, c = [];
46875
+ }, l = [];
46852
46876
  for (let e of [...E4, ...D4]) try {
46853
- c.push(...e.check(s));
46877
+ l.push(...e.check(c));
46854
46878
  } catch {}
46855
- return r4 = (e) => getComputedStyle(e), c;
46879
+ r4 = (e) => getComputedStyle(e);
46880
+ let u = /* @__PURE__ */ new Map();
46881
+ for (let e of l) {
46882
+ let t = `${e.ruleId}|${e.selector}|${e.evidence}`, n = u.get(t);
46883
+ n ? n.count = (n.count ?? 1) + 1 : u.set(t, e);
46884
+ }
46885
+ return [...u.values()];
46856
46886
  }
46857
46887
  function M4(e) {
46858
46888
  let t = /* @__PURE__ */ new Map();
@@ -46865,11 +46895,11 @@ function M4(e) {
46865
46895
  return n === r ? t[1].length === e[1].length ? e[0].localeCompare(t[0]) : t[1].length - e[1].length : n - r;
46866
46896
  }), r = e.length, i = e.filter((e) => e.severity === "error").length, a = new Set(e.map((e) => e.page).filter(Boolean)).size > 1, o = [`# Slop scan — ${i} error${i === 1 ? "" : "s"}, ${r - i} warn (${r} total)`, ""];
46867
46897
  for (let [e, t] of n) {
46868
- let n = t[0];
46869
- o.push(`## ${e} — ${n.severity} ×${t.length} [${n.part}]`), o.push(n.description);
46898
+ let n = t[0], r = t.reduce((e, t) => e + (t.count ?? 1), 0);
46899
+ o.push(`## ${e} — ${n.severity} ×${r} [${n.part}]`), o.push(n.description);
46870
46900
  for (let e of t) {
46871
- let t = e.component || e.source ? ` — ${[e.component, e.source].filter(Boolean).join(" @ ")}` : "";
46872
- o.push(`- ${a && e.page ? `\`${e.page}\` ` : ""}\`${e.selector}\` — ${e.evidence}${t}`);
46901
+ let t = e.component || e.source ? ` — ${[e.component, e.source].filter(Boolean).join(" @ ")}` : "", n = (e.count ?? 1) > 1 ? ` ×${e.count}` : "";
46902
+ o.push(`- ${a && e.page ? `\`${e.page}\` ` : ""}\`${e.selector}\`${n} — ${e.evidence}${t}`);
46873
46903
  }
46874
46904
  o.push("");
46875
46905
  }
@@ -47014,21 +47044,21 @@ function Y4() {
47014
47044
  }
47015
47045
  //#endregion
47016
47046
  //#region src/panel/views/DesignView.tsx
47017
- var X4 = /*#__PURE__*/ P("<span class=\"inline-block min-w-[7ch] text-center\">Extract"), Z4 = /*#__PURE__*/ P("<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>"), Q4 = /*#__PURE__*/ P("<span class=\"text-success text-[12px] leading-none\">✓"), $4 = /*#__PURE__*/ P("<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\">"), e3 = /*#__PURE__*/ P("<div class=\"flex items-center justify-end gap-1 px-1\">"), t3 = /*#__PURE__*/ P("<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>"), n3 = /*#__PURE__*/ P("<span class=\"inline-block min-w-[5ch] text-center\">Audit"), r3 = /*#__PURE__*/ P("<div class=\"flex max-h-72 flex-col gap-1.5 overflow-y-auto pr-2\">"), i3 = /*#__PURE__*/ P("<span class=\"text-[12px] leading-none\">✓"), a3 = /*#__PURE__*/ P("<div class=\"flex items-center gap-1 px-1\">"), o3 = /*#__PURE__*/ P("<span class=\"text-text-faint font-normal tabular-nums\"> · <!> pages"), s3 = /*#__PURE__*/ P("<span class=\"inline-block min-w-[4ch] text-center\">Scan"), c3 = /*#__PURE__*/ P("<div class=\"flex items-center gap-1 px-1\"><button class=\"border-border cursor-pointer rounded-full border px-2 py-0.5 text-[10px] font-medium tabular-nums\"> errors</button><button class=\"border-border cursor-pointer rounded-full border px-2 py-0.5 text-[10px] font-medium tabular-nums\"> warns"), l3 = /*#__PURE__*/ P("<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 over the 100ms house cap (§42) 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\"></div></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\">Slop scan</p><p class=\"text-text-faint text-[10.5px] leading-snug\">Design-contract drift — Linear-primitives rules checked against the live DOM. Results accumulate per page as you navigate; re-scanning a page overwrites only that page's findings.</p></div><div class=\"flex shrink-0 items-center gap-1\">"), u3 = /*#__PURE__*/ P("<p class=\"text-text mt-1 text-[11px] font-semibold\">Interaction states"), d3 = /*#__PURE__*/ P("<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>"), f3 = /*#__PURE__*/ P("<span class=\"text-warn text-[10.5px] font-medium tabular-nums\">s · <!> states"), p3 = /*#__PURE__*/ P("<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\">"), m3 = /*#__PURE__*/ P("<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\">"), h3 = /*#__PURE__*/ P("<span class=text-text-faint> ×"), g3 = /*#__PURE__*/ P("<div class=\"flex flex-col gap-0.5\"><p class=\"text-text text-[11px] font-medium\">"), _3 = /*#__PURE__*/ P("<span class=text-accent> ← var(<!>)"), v3 = /*#__PURE__*/ P("<p class=\"text-text-dim font-mono text-[10px] leading-snug break-all\">: "), y3 = /*#__PURE__*/ P("<div class=\"flex flex-col gap-0.5\"><p class=\"text-warn text-[10.5px] font-medium\"> — "), b3 = /*#__PURE__*/ P("<p class=\"text-text-dim font-mono text-[10px] leading-snug break-all\">: <!> → "), x3 = /*#__PURE__*/ P("<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>"), S3 = /*#__PURE__*/ P("<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\">"), C3 = /*#__PURE__*/ P("<svg width=12 height=12 viewBox=\"0 0 16 16\"fill=currentColor aria-hidden><path d=\"M4.5 2.5v11l9-5.5z\">"), w3 = /*#__PURE__*/ P("<p class=\"text-text-faint px-1 text-[10.5px]\">Nothing caught yet — interact with the app, or run Audit."), T3 = /*#__PURE__*/ P("<span class=\"text-text-dim font-mono text-[10px] break-all\">"), E3 = /*#__PURE__*/ P("<span class=\"text-danger text-[10px] leading-snug\">⚠ layout/paint transition: "), D3 = /*#__PURE__*/ P("<span class=\"text-danger text-[10px] leading-snug\">⚠ ease-in easing: "), O3 = /*#__PURE__*/ P("<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\">"), k3 = /*#__PURE__*/ P("<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\">"), A3 = /*#__PURE__*/ P("<p class=\"text-text-faint px-1 text-[10.5px]\">No scan yet — click Scan to audit this page against the contract."), j3 = /*#__PURE__*/ P("<div class=\"border-border flex flex-col gap-1 border-t px-2 py-1.5\"><p class=\"text-text-dim text-[10px] leading-snug\">"), M3 = /*#__PURE__*/ P("<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 py-1.5 text-left\"><span class=\"size-1.5 shrink-0 rounded-full\"aria-hidden></span><span class=\"text-accent min-w-0 truncate font-mono text-[11.5px]\"></span><span class=\"text-text-faint ml-auto shrink-0 text-[10.5px] tabular-nums\">×</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\">"), N3 = /*#__PURE__*/ P("<span class=text-accent> "), P3 = /*#__PURE__*/ P("<button class=\"hover:bg-surface-2 flex w-full cursor-pointer flex-col gap-0.5 rounded px-1 py-0.5 text-left\"title=\"Reveal on the page\"><span class=\"text-text min-w-0 truncate font-mono text-[10.5px]\"></span><span class=\"text-text-faint font-mono text-[10px] leading-snug break-all\">"), F3 = "linear-grab:genomes:v1", I3 = 30;
47018
- function L3() {
47047
+ var X4 = /*#__PURE__*/ P("<span class=\"inline-block min-w-[7ch] text-center\">Extract"), Z4 = /*#__PURE__*/ P("<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>"), Q4 = /*#__PURE__*/ P("<span class=\"text-success text-[12px] leading-none\">✓"), $4 = /*#__PURE__*/ P("<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\">"), e3 = /*#__PURE__*/ P("<div class=\"flex items-center justify-end gap-1 px-1\">"), t3 = /*#__PURE__*/ P("<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>"), n3 = /*#__PURE__*/ P("<span class=\"inline-block min-w-[5ch] text-center\">Audit"), r3 = /*#__PURE__*/ P("<div class=\"flex max-h-72 flex-col gap-1.5 overflow-y-auto pr-2\">"), i3 = /*#__PURE__*/ P("<span class=\"text-[12px] leading-none\">✓"), a3 = /*#__PURE__*/ P("<div class=\"flex items-center gap-1 px-1\">"), o3 = /*#__PURE__*/ P("<span class=\"text-text-faint font-normal tabular-nums\"> · <!> pages"), s3 = /*#__PURE__*/ P("<span class=\"inline-block min-w-[4ch] text-center\">Scan"), c3 = /*#__PURE__*/ P("<div class=\"flex items-center gap-1 px-1\"><button class=\"border-border cursor-pointer rounded-full border px-2 py-0.5 text-[10px] font-medium tabular-nums\"> errors</button><button class=\"border-border cursor-pointer rounded-full border px-2 py-0.5 text-[10px] font-medium tabular-nums\"> warns"), l3 = /*#__PURE__*/ P("<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 over the 100ms house cap (§42) 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\"></div></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\">Slop scan</p><p class=\"text-text-faint text-[10.5px] leading-snug\">Design-contract drift — Linear-primitives rules checked against the live DOM. Results accumulate per page as you navigate; re-scanning a page overwrites only that page's findings.</p></div><div class=\"flex shrink-0 items-center gap-1\">"), u3 = /*#__PURE__*/ P("<p class=\"text-text mt-1 text-[11px] font-semibold\">Interaction states"), d3 = /*#__PURE__*/ P("<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>"), f3 = /*#__PURE__*/ P("<span class=\"text-warn text-[10.5px] font-medium tabular-nums\">s · <!> states"), p3 = /*#__PURE__*/ P("<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\">"), m3 = /*#__PURE__*/ P("<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\">"), h3 = /*#__PURE__*/ P("<span class=text-text-faint> ×"), g3 = /*#__PURE__*/ P("<div class=\"flex flex-col gap-0.5\"><p class=\"text-text text-[11px] font-medium\">"), _3 = /*#__PURE__*/ P("<span class=text-accent> ← var(<!>)"), v3 = /*#__PURE__*/ P("<p class=\"text-text-dim font-mono text-[10px] leading-snug break-all\">: "), y3 = /*#__PURE__*/ P("<div class=\"flex flex-col gap-0.5\"><p class=\"text-warn text-[10.5px] font-medium\"> — "), b3 = /*#__PURE__*/ P("<p class=\"text-text-dim font-mono text-[10px] leading-snug break-all\">: <!> → "), x3 = /*#__PURE__*/ P("<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>"), S3 = /*#__PURE__*/ P("<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\">"), C3 = /*#__PURE__*/ P("<svg width=12 height=12 viewBox=\"0 0 16 16\"fill=currentColor aria-hidden><path d=\"M4.5 2.5v11l9-5.5z\">"), w3 = /*#__PURE__*/ P("<p class=\"text-text-faint px-1 text-[10.5px]\">Nothing caught yet — interact with the app, or run Audit."), T3 = /*#__PURE__*/ P("<span class=\"text-text-dim font-mono text-[10px] break-all\">"), E3 = /*#__PURE__*/ P("<span class=\"text-danger text-[10px] leading-snug\">⚠ layout/paint transition: "), D3 = /*#__PURE__*/ P("<span class=\"text-danger text-[10px] leading-snug\">⚠ ease-in easing: "), O3 = /*#__PURE__*/ P("<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\">"), k3 = /*#__PURE__*/ P("<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\">"), A3 = /*#__PURE__*/ P("<p class=\"text-text-faint px-1 text-[10.5px]\">No scan yet — click Scan to audit this page against the contract."), j3 = /*#__PURE__*/ P("<div class=\"border-border flex flex-col gap-1 border-t px-2 py-1.5\"><p class=\"text-text-dim text-[10px] leading-snug\">"), M3 = /*#__PURE__*/ P("<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 py-1.5 text-left\"><span class=\"size-1.5 shrink-0 rounded-full\"aria-hidden></span><span class=\"text-accent min-w-0 truncate font-mono text-[11.5px]\"></span><span class=\"text-text-faint ml-auto shrink-0 text-[10.5px] tabular-nums\">×</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\">"), N3 = /*#__PURE__*/ P("<span class=text-accent> "), P3 = /*#__PURE__*/ P("<span class=\"text-text-faint tabular-nums\"> ×"), F3 = /*#__PURE__*/ P("<button class=\"hover:bg-surface-2 flex w-full cursor-pointer flex-col gap-0.5 rounded px-1 py-0.5 text-left\"title=\"Reveal on the page\"><span class=\"text-text min-w-0 truncate font-mono text-[10.5px]\"></span><span class=\"text-text-faint font-mono text-[10px] leading-snug break-all\">"), I3 = "linear-grab:genomes:v1", L3 = 30;
47048
+ function R3() {
47019
47049
  try {
47020
- return JSON.parse(localStorage.getItem(F3) ?? "[]");
47050
+ return JSON.parse(localStorage.getItem(I3) ?? "[]");
47021
47051
  } catch {
47022
47052
  return [];
47023
47053
  }
47024
47054
  }
47025
- function R3(e) {
47055
+ function z3(e) {
47026
47056
  try {
47027
- localStorage.setItem(F3, JSON.stringify(e.slice(0, I3)));
47057
+ localStorage.setItem(I3, JSON.stringify(e.slice(0, L3)));
47028
47058
  } catch {}
47029
47059
  }
47030
- var z3 = /* @__PURE__ */ new Map();
47031
- function B3(e) {
47060
+ var B3 = /* @__PURE__ */ new Map();
47061
+ function V3(e) {
47032
47062
  let t = e.el?.deref();
47033
47063
  if (!(t instanceof HTMLElement) || !t.isConnected) return !1;
47034
47064
  t.scrollIntoView({
@@ -47040,8 +47070,8 @@ function B3(e) {
47040
47070
  t.style.outline = n, t.style.outlineOffset = r;
47041
47071
  }, 1400), !0;
47042
47072
  }
47043
- function V3() {
47044
- let [e, t] = T(L3()), [n, r] = T(null), [i, a] = T(null), [o, s] = T(null), [c, l] = T(null), [u, d] = T(null), [f, p] = T({
47073
+ function H3() {
47074
+ let [e, t] = T(R3()), [n, r] = T(null), [i, a] = T(null), [o, s] = T(null), [c, l] = T(null), [u, d] = T(null), [f, p] = T({
47045
47075
  active: !1,
47046
47076
  msLeft: 0,
47047
47077
  total: 0,
@@ -47106,14 +47136,14 @@ function V3() {
47106
47136
  l("Clipboard was blocked — click Copy again.");
47107
47137
  }
47108
47138
  }, Ce = (e) => {
47109
- t(e), R3(e);
47139
+ t(e), z3(e);
47110
47140
  }, we = async () => {
47111
47141
  l(null), a("extract"), window.dispatchEvent(new CustomEvent(BZ));
47112
47142
  try {
47113
47143
  let t = await u2();
47114
47144
  if (!t) return;
47115
47145
  let n = await e2(t), i = Date.now();
47116
- z3.set(i, new WeakRef(t)), Ce([{
47146
+ B3.set(i, new WeakRef(t)), Ce([{
47117
47147
  id: i,
47118
47148
  genome: n
47119
47149
  }, ...e()]), r(i);
@@ -47125,10 +47155,10 @@ function V3() {
47125
47155
  }, Te = async (t) => {
47126
47156
  l(null), a(t.id), window.dispatchEvent(new CustomEvent(BZ));
47127
47157
  try {
47128
- let n = z3.get(t.id)?.deref() ?? null;
47158
+ let n = B3.get(t.id)?.deref() ?? null;
47129
47159
  if (!n || !n.isConnected) {
47130
47160
  if (n = await u2(), !n) return;
47131
- z3.set(t.id, new WeakRef(n));
47161
+ B3.set(t.id, new WeakRef(n));
47132
47162
  }
47133
47163
  let r = await c2(n, 8e3, (e) => s(Math.ceil(e / 1e3)));
47134
47164
  r.length === 0 && l("No state changes captured — hover/open the component while the 8s window runs."), Ce(e().map((e) => e.id === t.id ? {
@@ -47150,7 +47180,7 @@ function V3() {
47150
47180
  l("Clipboard was blocked — click Copy again.");
47151
47181
  }
47152
47182
  }, De = (t) => {
47153
- z3.delete(t), Ce(e().filter((e) => e.id !== t));
47183
+ B3.delete(t), Ce(e().filter((e) => e.id !== t));
47154
47184
  }, [Oe, ke] = T(!1), Ae = async () => {
47155
47185
  try {
47156
47186
  let t = e().map((e) => l2(e.genome)).join("\n\n---\n\n");
@@ -47159,7 +47189,7 @@ function V3() {
47159
47189
  l("Clipboard was blocked — click Copy again.");
47160
47190
  }
47161
47191
  }, je = () => {
47162
- z3.clear(), Ce([]), r(null);
47192
+ B3.clear(), Ce([]), r(null);
47163
47193
  };
47164
47194
  return (() => {
47165
47195
  var t = l3(), a = t.firstChild;
@@ -47620,7 +47650,7 @@ function V3() {
47620
47650
  var r = M3(), i = r.firstChild, a = i.firstChild, o = a.nextSibling, s = o.nextSibling;
47621
47651
  s.firstChild;
47622
47652
  var c = s.nextSibling;
47623
- return i.$$click = () => ae(n() ? null : t.ruleId), F(o, () => t.ruleId), F(s, () => e.length, null), F(r, M(N, {
47653
+ return i.$$click = () => ae(n() ? null : t.ruleId), F(o, () => t.ruleId), F(s, () => e.reduce((e, t) => e + (t.count ?? 1), 0), null), F(r, M(N, {
47624
47654
  get when() {
47625
47655
  return n();
47626
47656
  },
@@ -47629,9 +47659,9 @@ function V3() {
47629
47659
  return F(r, () => t.description), F(n, M(Ue, {
47630
47660
  each: e,
47631
47661
  children: (e) => (() => {
47632
- var t = P3(), n = t.firstChild, r = n.nextSibling;
47662
+ var t = F3(), n = t.firstChild, r = n.nextSibling;
47633
47663
  return t.$$click = () => {
47634
- B3(e) || l(e.page === location.pathname ? "Element is gone — run Scan again." : `This finding is on ${e.page} — navigate there to reveal it.`);
47664
+ V3(e) || l(e.page === location.pathname ? "Element is gone — run Scan again." : `This finding is on ${e.page} — navigate there to reveal it.`);
47635
47665
  }, F(n, M(N, {
47636
47666
  get when() {
47637
47667
  return ge() > 1;
@@ -47648,7 +47678,15 @@ function V3() {
47648
47678
  var t = N3(), n = t.firstChild;
47649
47679
  return F(t, () => e.component, n), t;
47650
47680
  }
47651
- }), null), F(n, () => e.selector, null), F(t, M(N, {
47681
+ }), null), F(n, () => e.selector, null), F(n, M(N, {
47682
+ get when() {
47683
+ return (e.count ?? 1) > 1;
47684
+ },
47685
+ get children() {
47686
+ var t = P3();
47687
+ return t.firstChild, F(t, () => e.count, null), t;
47688
+ }
47689
+ }), null), F(t, M(N, {
47652
47690
  get when() {
47653
47691
  return e.source;
47654
47692
  },
@@ -47735,7 +47773,7 @@ function V3() {
47735
47773
  nt(["click"]);
47736
47774
  //#endregion
47737
47775
  //#region src/lib/projectConfig.ts
47738
- var H3 = [
47776
+ var U3 = [
47739
47777
  "defaultTeamId",
47740
47778
  "defaultProjectId",
47741
47779
  "defaultLabelIds",
@@ -47750,29 +47788,29 @@ var H3 = [
47750
47788
  "issueTemplate",
47751
47789
  "testUsername"
47752
47790
  ];
47753
- function U3(e) {
47791
+ function W3(e) {
47754
47792
  let t = {};
47755
- for (let n of H3) {
47793
+ for (let n of U3) {
47756
47794
  let r = e[n];
47757
47795
  r !== void 0 && r !== "" && !(Array.isArray(r) && r.length === 0) && (t[n] = r);
47758
47796
  }
47759
47797
  return t;
47760
47798
  }
47761
- function W3(e, t) {
47799
+ function G3(e, t) {
47762
47800
  let n = {};
47763
- for (let r of H3) e[r] === void 0 && t[r] !== void 0 && (n[r] = t[r]);
47801
+ for (let r of U3) e[r] === void 0 && t[r] !== void 0 && (n[r] = t[r]);
47764
47802
  return Object.keys(n).length ? n : null;
47765
47803
  }
47766
47804
  //#endregion
47767
47805
  //#region src/lib/linear/auth.ts
47768
47806
  zr();
47769
- function G3(e) {
47807
+ function K3(e) {
47770
47808
  let t = "";
47771
47809
  for (let n of e) t += String.fromCharCode(n);
47772
47810
  return btoa(t).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
47773
47811
  }
47774
- async function K3(e) {
47775
- let t = G3(crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(32))), n = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(t)), r = G3(new Uint8Array(n)), i = G3(crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(16))), a = chrome.identity.getRedirectURL(), o = new URL("https://linear.app/oauth/authorize");
47812
+ async function q3(e) {
47813
+ let t = K3(crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(32))), n = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(t)), r = K3(new Uint8Array(n)), i = K3(crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(16))), a = chrome.identity.getRedirectURL(), o = new URL("https://linear.app/oauth/authorize");
47776
47814
  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");
47777
47815
  let s = await chrome.identity.launchWebAuthFlow({
47778
47816
  url: o.toString(),
@@ -47800,15 +47838,15 @@ async function K3(e) {
47800
47838
  linearOauthClientId: e
47801
47839
  });
47802
47840
  }
47803
- async function q3() {
47841
+ async function J3() {
47804
47842
  await Tr({
47805
47843
  linearAccessToken: void 0,
47806
47844
  linearApiKey: void 0
47807
47845
  });
47808
47846
  }
47809
47847
  zr(), xr(), Fx(), gD();
47810
- var J3 = /*#__PURE__*/ P("<div class=\"bg-surface-2 border-border flex rounded-md border p-0.5\">"), Y3 = /*#__PURE__*/ P("<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."), X3 = /*#__PURE__*/ P("<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"), Z3 = /*#__PURE__*/ P("<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)."), Q3 = /*#__PURE__*/ P("<span class=text-text>Connected as <span class=font-medium></span> · <span class=text-text-dim>"), $3 = /*#__PURE__*/ P("<div class=\"bg-surface border-border flex items-center justify-between rounded-lg border p-2.5\"><span class=\"text-text text-[12px]\">"), e6 = /*#__PURE__*/ P("<option value>Select a team…"), t6 = /*#__PURE__*/ P("<option value>No project"), n6 = /*#__PURE__*/ P("<div class=\"flex flex-wrap gap-1\">"), r6 = /*#__PURE__*/ P("<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."), i6 = /*#__PURE__*/ P("<p class=\"text-text-dim text-[11px]\">No agents found — install the Cursor integration in Linear first."), a6 = /*#__PURE__*/ P("<span class=\"text-text-faint text-[10.5px] leading-snug\">Empty = the default above (computer-use testing, video demo, PR + review babysitting)."), o6 = /*#__PURE__*/ P("<div class=\"flex flex-col gap-1.5\">"), s6 = /*#__PURE__*/ P("<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."), c6 = /*#__PURE__*/ P("<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."), l6 = /*#__PURE__*/ P("<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."), u6 = /*#__PURE__*/ P("<span class=\"inline-block min-w-[10ch] text-center\">"), d6 = /*#__PURE__*/ P("<div class=\"flex items-center gap-2\">"), f6 = /*#__PURE__*/ P("<option value>Select a channel…"), p6 = /*#__PURE__*/ P("<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"), m6 = /*#__PURE__*/ P("<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."), h6 = /*#__PURE__*/ P("<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"), g6 = /*#__PURE__*/ P("<p class=\"text-text-dim text-[11px]\">"), _6 = /*#__PURE__*/ P("<div class=min-h-[2lh]>"), v6 = /*#__PURE__*/ P("<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."), y6 = /*#__PURE__*/ P("<div class=\"flex h-full flex-col gap-5 overflow-y-auto pt-3 pb-6 pl-3 pr-4\">"), b6 = /*#__PURE__*/ P("<button>"), x6 = /*#__PURE__*/ P("<div class=\"flex gap-1.5\">"), S6 = /*#__PURE__*/ P("<p class=\"text-text-faint text-center text-[10.5px]\">or"), C6 = /*#__PURE__*/ P("<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\">"), w6 = /*#__PURE__*/ P("<div class=\"flex flex-col gap-3\">"), T6 = /*#__PURE__*/ P("<span class=text-text-dim>Connected — verifying…"), E6 = /*#__PURE__*/ P("<option> (<!>)"), D6 = /*#__PURE__*/ P("<option>"), O6 = /*#__PURE__*/ P("<button type=button><span class=\"mr-1 inline-block size-2 rounded-full align-middle\">"), k6 = /*#__PURE__*/ P("<option value>Select the agent…"), A6 = /*#__PURE__*/ P("<option>#"), j6 = /*#__PURE__*/ P("<p class=\"text-text-dim text-[11px]\">No key set — AI drafting disabled, manual drafting still works.");
47811
- function M6() {
47848
+ var Y3 = /*#__PURE__*/ P("<div class=\"bg-surface-2 border-border flex rounded-md border p-0.5\">"), X3 = /*#__PURE__*/ P("<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."), Z3 = /*#__PURE__*/ P("<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"), Q3 = /*#__PURE__*/ P("<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)."), $3 = /*#__PURE__*/ P("<span class=text-text>Connected as <span class=font-medium></span> · <span class=text-text-dim>"), e6 = /*#__PURE__*/ P("<div class=\"bg-surface border-border flex items-center justify-between rounded-lg border p-2.5\"><span class=\"text-text text-[12px]\">"), t6 = /*#__PURE__*/ P("<option value>Select a team…"), n6 = /*#__PURE__*/ P("<option value>No project"), r6 = /*#__PURE__*/ P("<div class=\"flex flex-wrap gap-1\">"), i6 = /*#__PURE__*/ P("<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."), a6 = /*#__PURE__*/ P("<p class=\"text-text-dim text-[11px]\">No agents found — install the Cursor integration in Linear first."), o6 = /*#__PURE__*/ P("<span class=\"text-text-faint text-[10.5px] leading-snug\">Empty = the default above (computer-use testing, video demo, PR + review babysitting)."), s6 = /*#__PURE__*/ P("<div class=\"flex flex-col gap-1.5\">"), c6 = /*#__PURE__*/ P("<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."), l6 = /*#__PURE__*/ P("<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."), u6 = /*#__PURE__*/ P("<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."), d6 = /*#__PURE__*/ P("<span class=\"inline-block min-w-[10ch] text-center\">"), f6 = /*#__PURE__*/ P("<div class=\"flex items-center gap-2\">"), p6 = /*#__PURE__*/ P("<option value>Select a channel…"), m6 = /*#__PURE__*/ P("<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"), h6 = /*#__PURE__*/ P("<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."), g6 = /*#__PURE__*/ P("<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"), _6 = /*#__PURE__*/ P("<p class=\"text-text-dim text-[11px]\">"), v6 = /*#__PURE__*/ P("<div class=min-h-[2lh]>"), y6 = /*#__PURE__*/ P("<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."), b6 = /*#__PURE__*/ P("<div class=\"flex h-full flex-col gap-5 overflow-y-auto pt-3 pb-6 pl-3 pr-4\">"), x6 = /*#__PURE__*/ P("<button>"), S6 = /*#__PURE__*/ P("<div class=\"flex gap-1.5\">"), C6 = /*#__PURE__*/ P("<p class=\"text-text-faint text-center text-[10.5px]\">or"), w6 = /*#__PURE__*/ P("<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\">"), T6 = /*#__PURE__*/ P("<div class=\"flex flex-col gap-3\">"), E6 = /*#__PURE__*/ P("<span class=text-text-dim>Connected — verifying…"), D6 = /*#__PURE__*/ P("<option> (<!>)"), O6 = /*#__PURE__*/ P("<option>"), k6 = /*#__PURE__*/ P("<button type=button><span class=\"mr-1 inline-block size-2 rounded-full align-middle\">"), A6 = /*#__PURE__*/ P("<option value>Select the agent…"), j6 = /*#__PURE__*/ P("<option>#"), M6 = /*#__PURE__*/ P("<p class=\"text-text-dim text-[11px]\">No key set — AI drafting disabled, manual drafting still works.");
47849
+ function N6() {
47812
47850
  let e = or(), t = gr(() => ({
47813
47851
  queryKey: ["settings"],
47814
47852
  queryFn: wr,
@@ -47836,13 +47874,13 @@ function M6() {
47836
47874
  retry: 0
47837
47875
  })), [l, u] = T(!1), d = async () => {
47838
47876
  try {
47839
- await navigator.clipboard.writeText(JSON.stringify(U3(n()), null, 2) + "\n"), u(!0), setTimeout(() => u(!1), 1800);
47877
+ await navigator.clipboard.writeText(JSON.stringify(W3(n()), null, 2) + "\n"), u(!0), setTimeout(() => u(!1), 1800);
47840
47878
  } catch {}
47841
47879
  }, f = () => {
47842
47880
  let e = c.data?.projectConfig;
47843
47881
  if (!e) return;
47844
47882
  let t = {};
47845
- for (let n of H3) e[n] !== void 0 && (t[n] = e[n]);
47883
+ for (let n of U3) e[n] !== void 0 && (t[n] = e[n]);
47846
47884
  r(t);
47847
47885
  }, p = gr(() => ({
47848
47886
  queryKey: ["linear-labels"],
@@ -47875,7 +47913,7 @@ function M6() {
47875
47913
  }
47876
47914
  E(!0), ee("");
47877
47915
  try {
47878
- await K3(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"] });
47916
+ await q3(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"] });
47879
47917
  } catch (e) {
47880
47918
  ee(e instanceof Error ? e.message : "OAuth flow failed.");
47881
47919
  } finally {
@@ -47886,7 +47924,7 @@ function M6() {
47886
47924
  async function ne() {
47887
47925
  te(!0);
47888
47926
  try {
47889
- await q3(), 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"] });
47927
+ await J3(), 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"] });
47890
47928
  } finally {
47891
47929
  te(!1);
47892
47930
  }
@@ -47902,12 +47940,12 @@ function M6() {
47902
47940
  return e ? `Drafting with ${e} — ${Nx[e].fast} (fast) / ${Nx[e].best} (best)` : null;
47903
47941
  });
47904
47942
  return (() => {
47905
- var e = y6();
47943
+ var e = b6();
47906
47944
  return F(e, M(Rj, {
47907
47945
  title: "Workflow",
47908
47946
  get children() {
47909
47947
  return [(() => {
47910
- var e = J3();
47948
+ var e = Y3();
47911
47949
  return F(e, M(Ue, {
47912
47950
  each: [{
47913
47951
  id: "cloud",
@@ -47917,19 +47955,19 @@ function M6() {
47917
47955
  label: "Local · clipboard"
47918
47956
  }],
47919
47957
  children: (e) => (() => {
47920
- var t = b6();
47958
+ var t = x6();
47921
47959
  return t.$$click = () => void r({ workflowMode: e.id }), F(t, () => e.label), D(() => ot(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;
47922
47960
  })()
47923
47961
  })), e;
47924
- })(), Y3()];
47962
+ })(), X3()];
47925
47963
  }
47926
47964
  }), null), F(e, M(Rj, {
47927
47965
  title: "Capture",
47928
47966
  get children() {
47929
47967
  return [(() => {
47930
- var e = X3(), t = e.firstChild;
47968
+ var e = Z3(), t = e.firstChild;
47931
47969
  return t.addEventListener("change", (e) => void r({ captureShots: e.currentTarget.checked || void 0 })), D(() => t.checked = !!n().captureShots), e;
47932
- })(), Z3()];
47970
+ })(), Q3()];
47933
47971
  }
47934
47972
  }), null), F(e, M(Rj, {
47935
47973
  title: "Linear",
@@ -47940,13 +47978,13 @@ function M6() {
47940
47978
  },
47941
47979
  get fallback() {
47942
47980
  return (() => {
47943
- var e = w6();
47981
+ var e = T6();
47944
47982
  return F(e, M(Lj, {
47945
47983
  label: "Personal API key",
47946
47984
  hint: "Create one at linear.app → Settings → API — fastest path.",
47947
47985
  get children() {
47948
47986
  return [(() => {
47949
- var e = x6();
47987
+ var e = S6();
47950
47988
  return F(e, M(jj, {
47951
47989
  type: "password",
47952
47990
  placeholder: "lin_api_…",
@@ -47983,12 +48021,12 @@ function M6() {
47983
48021
  }), null), F(e, M(N, {
47984
48022
  when: br,
47985
48023
  get children() {
47986
- return [S6(), M(Lj, {
48024
+ return [C6(), M(Lj, {
47987
48025
  label: "OAuth client ID",
47988
48026
  get children() {
47989
48027
  return [
47990
48028
  (() => {
47991
- var e = x6();
48029
+ var e = S6();
47992
48030
  return F(e, M(jj, {
47993
48031
  placeholder: "your-client-id",
47994
48032
  get value() {
@@ -48016,7 +48054,7 @@ function M6() {
48016
48054
  }
48017
48055
  }),
48018
48056
  (() => {
48019
- var e = C6(), t = e.firstChild.nextSibling.nextSibling;
48057
+ var e = w6(), t = e.firstChild.nextSibling.nextSibling;
48020
48058
  return F(t, re), e;
48021
48059
  })()
48022
48060
  ];
@@ -48027,13 +48065,13 @@ function M6() {
48027
48065
  })();
48028
48066
  },
48029
48067
  get children() {
48030
- var e = $3(), t = e.firstChild;
48068
+ var e = e6(), t = e.firstChild;
48031
48069
  return F(t, M(N, {
48032
48070
  get when() {
48033
48071
  return !a.isLoading;
48034
48072
  },
48035
48073
  get fallback() {
48036
- return T6();
48074
+ return E6();
48037
48075
  },
48038
48076
  get children() {
48039
48077
  return M(N, {
@@ -48046,7 +48084,7 @@ function M6() {
48046
48084
  return a.isError;
48047
48085
  },
48048
48086
  get fallback() {
48049
- return T6();
48087
+ return E6();
48050
48088
  },
48051
48089
  get children() {
48052
48090
  return M(Hj, { message: "Key rejected — reconnect" });
@@ -48054,7 +48092,7 @@ function M6() {
48054
48092
  });
48055
48093
  },
48056
48094
  get children() {
48057
- var e = Q3(), t = e.firstChild.nextSibling, n = t.nextSibling.nextSibling;
48095
+ var e = $3(), t = e.firstChild.nextSibling, n = t.nextSibling.nextSibling;
48058
48096
  return F(t, () => a.data.name), F(n, () => a.data.email), e;
48059
48097
  }
48060
48098
  });
@@ -48095,7 +48133,7 @@ function M6() {
48095
48133
  return o.isLoading;
48096
48134
  },
48097
48135
  get children() {
48098
- return [e6(), M(N, {
48136
+ return [t6(), M(N, {
48099
48137
  get when() {
48100
48138
  return o.data;
48101
48139
  },
@@ -48105,7 +48143,7 @@ function M6() {
48105
48143
  return o.data;
48106
48144
  },
48107
48145
  children: (e) => (() => {
48108
- var t = E6(), r = t.firstChild, i = r.nextSibling;
48146
+ var t = D6(), r = t.firstChild, i = r.nextSibling;
48109
48147
  return i.nextSibling, F(t, () => e.name, r), F(t, () => e.key, i), D(() => t.selected = e.id === n().defaultTeamId), D(() => t.value = e.id), t;
48110
48148
  })()
48111
48149
  });
@@ -48129,14 +48167,14 @@ function M6() {
48129
48167
  },
48130
48168
  get children() {
48131
48169
  return [(() => {
48132
- var e = t6();
48170
+ var e = n6();
48133
48171
  return D(() => e.selected = !n().defaultProjectId), e;
48134
48172
  })(), M(Ue, {
48135
48173
  get each() {
48136
48174
  return s.data ?? [];
48137
48175
  },
48138
48176
  children: (e) => (() => {
48139
- var t = D6();
48177
+ var t = O6();
48140
48178
  return F(t, () => e.name), D(() => t.selected = e.id === n().defaultProjectId), D(() => t.value = e.id), t;
48141
48179
  })()
48142
48180
  })];
@@ -48148,7 +48186,7 @@ function M6() {
48148
48186
  label: "Default labels",
48149
48187
  hint: "Applied to every issue created from the panel.",
48150
48188
  get children() {
48151
- var e = n6();
48189
+ var e = r6();
48152
48190
  return F(e, M(Ue, {
48153
48191
  get each() {
48154
48192
  return p.data ?? [];
@@ -48156,7 +48194,7 @@ function M6() {
48156
48194
  children: (e) => {
48157
48195
  let t = () => (n().defaultLabelIds ?? []).includes(e.id);
48158
48196
  return (() => {
48159
- var i = O6(), a = i.firstChild;
48197
+ var i = k6(), a = i.firstChild;
48160
48198
  return i.$$click = () => {
48161
48199
  let i = n().defaultLabelIds ?? [];
48162
48200
  r({ defaultLabelIds: t() ? i.filter((t) => t !== e.id) : [...i, e.id] });
@@ -48173,7 +48211,7 @@ function M6() {
48173
48211
  }
48174
48212
  }),
48175
48213
  (() => {
48176
- var e = r6(), t = e.firstChild;
48214
+ var e = i6(), t = e.firstChild;
48177
48215
  return t.addEventListener("change", (e) => void r({ shareLinearKey: e.currentTarget.checked })), D(() => t.checked = !!n().shareLinearKey), e;
48178
48216
  })(),
48179
48217
  M(Lj, {
@@ -48223,7 +48261,7 @@ function M6() {
48223
48261
  return m.isLoading;
48224
48262
  },
48225
48263
  get children() {
48226
- return [k6(), M(N, {
48264
+ return [A6(), M(N, {
48227
48265
  get when() {
48228
48266
  return m.data;
48229
48267
  },
@@ -48233,7 +48271,7 @@ function M6() {
48233
48271
  return m.data;
48234
48272
  },
48235
48273
  children: (e) => (() => {
48236
- var t = D6();
48274
+ var t = O6();
48237
48275
  return F(t, () => e.displayName), D(() => t.selected = e.id === n().cursorAgentId), D(() => t.value = e.id), t;
48238
48276
  })()
48239
48277
  });
@@ -48243,7 +48281,7 @@ function M6() {
48243
48281
  });
48244
48282
  },
48245
48283
  get children() {
48246
- return i6();
48284
+ return a6();
48247
48285
  }
48248
48286
  });
48249
48287
  }
@@ -48291,7 +48329,7 @@ function M6() {
48291
48329
  onBlur: (e) => {
48292
48330
  r({ issueTemplate: e.currentTarget.value.trim() || void 0 });
48293
48331
  }
48294
- }), a6()];
48332
+ }), o6()];
48295
48333
  }
48296
48334
  }),
48297
48335
  M(Lj, {
@@ -48348,7 +48386,7 @@ function M6() {
48348
48386
  label: "Test account",
48349
48387
  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.",
48350
48388
  get children() {
48351
- var e = o6();
48389
+ var e = s6();
48352
48390
  return F(e, M(jj, {
48353
48391
  placeholder: "Username or email (e.g. demo@yourapp.com)",
48354
48392
  get value() {
@@ -48380,7 +48418,7 @@ function M6() {
48380
48418
  title: "Panel",
48381
48419
  get children() {
48382
48420
  return [(() => {
48383
- var e = s6(), t = e.firstChild.nextSibling;
48421
+ var e = c6(), t = e.firstChild.nextSibling;
48384
48422
  return F(t, M(Ue, {
48385
48423
  each: [{
48386
48424
  id: "overlay",
@@ -48390,7 +48428,7 @@ function M6() {
48390
48428
  label: "Beside page"
48391
48429
  }],
48392
48430
  children: (e) => (() => {
48393
- var t = b6();
48431
+ var t = x6();
48394
48432
  return t.$$click = () => void r({
48395
48433
  panelMode: e.id,
48396
48434
  panelPos: void 0
@@ -48398,11 +48436,11 @@ function M6() {
48398
48436
  })()
48399
48437
  })), e;
48400
48438
  })(), (() => {
48401
- var e = c6(), t = e.firstChild.nextSibling;
48439
+ var e = l6(), t = e.firstChild.nextSibling;
48402
48440
  return F(t, M(Ue, {
48403
48441
  each: ["left", "right"],
48404
48442
  children: (e) => (() => {
48405
- var t = b6();
48443
+ var t = x6();
48406
48444
  return t.$$click = () => void r({ panelSide: e }), F(t, e === "left" ? "Left" : "Right"), D(() => ot(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;
48407
48445
  })()
48408
48446
  })), e;
@@ -48432,8 +48470,8 @@ function M6() {
48432
48470
  }), null), F(e, M(Rj, {
48433
48471
  title: "Project config (.lineargrab.json)",
48434
48472
  get children() {
48435
- return [l6(), (() => {
48436
- var e = d6();
48473
+ return [u6(), (() => {
48474
+ var e = f6();
48437
48475
  return F(e, M(N, {
48438
48476
  get when() {
48439
48477
  return c.data?.projectConfig;
@@ -48464,7 +48502,7 @@ function M6() {
48464
48502
  },
48465
48503
  onClick: () => void d(),
48466
48504
  get children() {
48467
- var e = u6();
48505
+ var e = d6();
48468
48506
  return F(e, () => l() ? "Copied ✓" : "Copy config"), e;
48469
48507
  }
48470
48508
  }), null), e;
@@ -48555,12 +48593,12 @@ function M6() {
48555
48593
  });
48556
48594
  },
48557
48595
  get children() {
48558
- return [f6(), M(Ue, {
48596
+ return [p6(), M(Ue, {
48559
48597
  get each() {
48560
48598
  return ie.data ?? [];
48561
48599
  },
48562
48600
  children: (e) => (() => {
48563
- var t = A6();
48601
+ var t = j6();
48564
48602
  return t.firstChild, F(t, () => e.name, null), D(() => t.selected = e.id === n().slackChannelId), D(() => t.value = e.id), t;
48565
48603
  })()
48566
48604
  })];
@@ -48611,10 +48649,10 @@ function M6() {
48611
48649
  }
48612
48650
  }),
48613
48651
  (() => {
48614
- var e = p6(), t = e.firstChild;
48652
+ var e = m6(), t = e.firstChild;
48615
48653
  return t.addEventListener("change", (e) => void r({ notifyOnCreate: e.currentTarget.checked ? void 0 : !1 })), D(() => t.checked = n().notifyOnCreate !== !1), e;
48616
48654
  })(),
48617
- m6()
48655
+ h6()
48618
48656
  ];
48619
48657
  }
48620
48658
  }), null), F(e, M(Rj, {
@@ -48652,7 +48690,7 @@ function M6() {
48652
48690
  }
48653
48691
  }),
48654
48692
  (() => {
48655
- var e = h6(), t = e.firstChild.nextSibling.firstChild, i = t.nextSibling, a = i.nextSibling;
48693
+ var e = g6(), t = e.firstChild.nextSibling.firstChild, i = t.nextSibling, a = i.nextSibling;
48656
48694
  return t.$$click = () => void r({ preferredProvider: void 0 }), i.$$click = () => void r({ preferredProvider: "openai" }), a.$$click = () => void r({ preferredProvider: "anthropic" }), D((e) => {
48657
48695
  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;
48658
48696
  return r !== e.e && ot(t, e.e = r), o !== e.t && ot(i, e.t = o), s !== e.a && (i.disabled = e.a = s), c !== e.o && ot(a, e.o = c), l !== e.i && (a.disabled = e.i = l), e;
@@ -48665,16 +48703,16 @@ function M6() {
48665
48703
  }), e;
48666
48704
  })(),
48667
48705
  (() => {
48668
- var e = _6();
48706
+ var e = v6();
48669
48707
  return F(e, M(N, {
48670
48708
  get when() {
48671
48709
  return oe();
48672
48710
  },
48673
48711
  get fallback() {
48674
- return j6();
48712
+ return M6();
48675
48713
  },
48676
48714
  get children() {
48677
- var e = g6();
48715
+ var e = _6();
48678
48716
  return F(e, oe), e;
48679
48717
  }
48680
48718
  })), e;
@@ -48684,7 +48722,7 @@ function M6() {
48684
48722
  }), null), F(e, M(Rj, {
48685
48723
  title: "How it works",
48686
48724
  get children() {
48687
- return v6();
48725
+ return y6();
48688
48726
  }
48689
48727
  }), null), e;
48690
48728
  })();
@@ -48692,38 +48730,38 @@ function M6() {
48692
48730
  nt(["click"]);
48693
48731
  //#endregion
48694
48732
  //#region src/lib/idbCache.ts
48695
- var N6 = "linear-grab", P6 = "queries", F6 = [
48733
+ var P6 = "linear-grab", F6 = "queries", I6 = [
48696
48734
  "my-issues",
48697
48735
  "issue",
48698
48736
  "sessions",
48699
48737
  "teams",
48700
48738
  "agents"
48701
48739
  ];
48702
- function I6() {
48740
+ function L6() {
48703
48741
  return new Promise((e) => {
48704
48742
  try {
48705
- let t = indexedDB.open(N6, 1);
48706
- t.onupgradeneeded = () => t.result.createObjectStore(P6), t.onsuccess = () => e(t.result), t.onerror = () => e(null);
48743
+ let t = indexedDB.open(P6, 1);
48744
+ t.onupgradeneeded = () => t.result.createObjectStore(F6), t.onsuccess = () => e(t.result), t.onerror = () => e(null);
48707
48745
  } catch {
48708
48746
  e(null);
48709
48747
  }
48710
48748
  });
48711
48749
  }
48712
- function L6(e) {
48713
- return typeof e[0] == "string" && F6.includes(e[0]);
48750
+ function R6(e) {
48751
+ return typeof e[0] == "string" && I6.includes(e[0]);
48714
48752
  }
48715
- async function R6(e) {
48716
- let t = await I6();
48753
+ async function z6(e) {
48754
+ let t = await L6();
48717
48755
  if (!t) return () => {};
48718
48756
  await new Promise((n) => {
48719
48757
  try {
48720
- let r = t.transaction(P6, "readonly").objectStore(P6).openCursor();
48758
+ let r = t.transaction(F6, "readonly").objectStore(F6).openCursor();
48721
48759
  r.onsuccess = () => {
48722
48760
  let t = r.result;
48723
48761
  if (!t) return n();
48724
48762
  try {
48725
48763
  let { queryKey: n, data: r } = t.value;
48726
- L6(n) && e.getQueryData(n) === void 0 && e.setQueryData(n, r, { updatedAt: 0 });
48764
+ R6(n) && e.getQueryData(n) === void 0 && e.setQueryData(n, r, { updatedAt: 0 });
48727
48765
  } catch {}
48728
48766
  t.continue();
48729
48767
  }, r.onerror = () => n();
@@ -48734,14 +48772,14 @@ async function R6(e) {
48734
48772
  let n = /* @__PURE__ */ new Map(), r = e.getQueryCache().subscribe((r) => {
48735
48773
  if (r.type !== "updated" || r.action.type !== "success") return;
48736
48774
  let { queryKey: i, queryHash: a } = r.query;
48737
- if (!L6(i)) return;
48775
+ if (!R6(i)) return;
48738
48776
  let o = n.get(a);
48739
48777
  o && clearTimeout(o), n.set(a, setTimeout(() => {
48740
48778
  n.delete(a);
48741
48779
  try {
48742
48780
  let n = e.getQueryData(i);
48743
48781
  if (n === void 0) return;
48744
- t.transaction(P6, "readwrite").objectStore(P6).put({
48782
+ t.transaction(F6, "readwrite").objectStore(F6).put({
48745
48783
  queryKey: i,
48746
48784
  data: n
48747
48785
  }, a);
@@ -48757,7 +48795,7 @@ async function R6(e) {
48757
48795
  //#endregion
48758
48796
  //#region src/panel/App.tsx
48759
48797
  zr();
48760
- var z6 = /*#__PURE__*/ P("<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\">"), B6 = /*#__PURE__*/ P("<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\">"), V6 = /*#__PURE__*/ P("<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\">–"), H6 = /*#__PURE__*/ P("<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>"), U6 = /*#__PURE__*/ P("<button>"), W6 = [
48798
+ var B6 = /*#__PURE__*/ P("<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\">"), V6 = /*#__PURE__*/ P("<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\">"), H6 = /*#__PURE__*/ P("<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\">–"), U6 = /*#__PURE__*/ P("<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>"), W6 = /*#__PURE__*/ P("<button>"), G6 = [
48761
48799
  {
48762
48800
  id: "draft",
48763
48801
  label: "Draft"
@@ -48794,35 +48832,35 @@ var z6 = /*#__PURE__*/ P("<svg viewBox=\"0 0 100 100\"fill=currentColor aria-hid
48794
48832
  id: "settings",
48795
48833
  label: "Settings"
48796
48834
  }
48797
- ], G6 = /* @__PURE__ */ new Set();
48798
- function K6(e, t, n) {
48799
- if (G6.has(e) || typeof Notification > "u") return;
48800
- G6.add(e);
48835
+ ], K6 = /* @__PURE__ */ new Set();
48836
+ function q6(e, t, n) {
48837
+ if (K6.has(e) || typeof Notification > "u") return;
48838
+ K6.add(e);
48801
48839
  let r = () => new Notification(t, { body: n });
48802
48840
  Notification.permission === "granted" ? r() : Notification.permission === "default" && Notification.requestPermission().then((e) => e === "granted" && r());
48803
48841
  }
48804
- function q6() {
48842
+ function J6() {
48805
48843
  setInterval(() => {
48806
48844
  NO().then((e) => {
48807
48845
  for (let t of e) {
48808
48846
  if (t.status !== "running") continue;
48809
48847
  let e = t.lastEventAt ?? t.startedAt;
48810
- Date.now() - e > 10 * 6e4 && K6(`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.`);
48848
+ Date.now() - e > 10 * 6e4 && q6(`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.`);
48811
48849
  }
48812
48850
  }).catch(() => {}), gO().then((e) => {
48813
- for (let t of e) /awaitingInput|elicit/i.test(t.status) && K6(`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.`);
48851
+ for (let t of e) /awaitingInput|elicit/i.test(t.status) && q6(`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.`);
48814
48852
  }).catch(() => {});
48815
48853
  }, 6e4);
48816
48854
  }
48817
- q6();
48818
- var J6 = new hr({ defaultOptions: { queries: {
48855
+ J6();
48856
+ var Y6 = new hr({ defaultOptions: { queries: {
48819
48857
  retry: 1,
48820
48858
  refetchOnWindowFocus: !1,
48821
48859
  staleTime: 5e3
48822
48860
  } } });
48823
- function Y6(e) {
48861
+ function X6(e) {
48824
48862
  return (() => {
48825
- var t = z6();
48863
+ var t = B6();
48826
48864
  return D((n) => {
48827
48865
  var r = e.size ?? 14, i = e.size ?? 14;
48828
48866
  return r !== n.e && rt(t, "width", n.e = r), i !== n.t && rt(t, "height", n.t = i), n;
@@ -48832,36 +48870,36 @@ function Y6(e) {
48832
48870
  }), t;
48833
48871
  })();
48834
48872
  }
48835
- function X6(e) {
48873
+ function Z6(e) {
48836
48874
  let [t, n] = T("draft"), r = () => {
48837
- J6.invalidateQueries({ queryKey: ["grab"] }), cj() === "capture" && n("capture"), e.onGrab?.();
48875
+ Y6.invalidateQueries({ queryKey: ["grab"] }), cj() === "capture" && n("capture"), e.onGrab?.();
48838
48876
  };
48839
48877
  return O(() => {
48840
48878
  let e = nj();
48841
48879
  e && n(e);
48842
48880
  }), re(() => {
48843
- let e = R6(J6), t = XZ(r), n = () => {
48881
+ let e = z6(Y6), t = XZ(r), n = () => {
48844
48882
  JO().then(y$), VO(), MO().then(async (e) => {
48845
48883
  if (!e.projectConfig) return;
48846
- let t = W3(await wr(), e.projectConfig);
48884
+ let t = G3(await wr(), e.projectConfig);
48847
48885
  t && await Tr(t);
48848
48886
  }).catch(() => {});
48849
48887
  };
48850
48888
  n();
48851
48889
  let i = jr((e) => {
48852
- e === "settings" && (J6.invalidateQueries({ queryKey: ["settings"] }), n()), e === "grab" && r();
48890
+ e === "settings" && (Y6.invalidateQueries({ queryKey: ["settings"] }), n()), e === "grab" && r();
48853
48891
  });
48854
48892
  ie(() => {
48855
48893
  t(), i(), e.then((e) => e());
48856
48894
  });
48857
48895
  }), M(sr, {
48858
- client: J6,
48896
+ client: Y6,
48859
48897
  get children() {
48860
- var r = H6(), 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;
48861
- return i.$$pointerdown = (t) => e.onHeaderPointerDown?.(t), F(a, M(Y6, { size: 14 })), F(o, M(Ue, {
48862
- each: W6,
48898
+ var r = U6(), 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;
48899
+ return i.$$pointerdown = (t) => e.onHeaderPointerDown?.(t), F(a, M(X6, { size: 14 })), F(o, M(Ue, {
48900
+ each: G6,
48863
48901
  children: (e) => (() => {
48864
- var r = U6();
48902
+ var r = W6();
48865
48903
  return r.$$click = () => n(e.id), F(r, () => e.label), D(() => ot(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;
48866
48904
  })()
48867
48905
  })), F(i, M(N, {
@@ -48869,7 +48907,7 @@ function X6(e) {
48869
48907
  return e.onTogglePin;
48870
48908
  },
48871
48909
  get children() {
48872
- var t = B6();
48910
+ var t = V6();
48873
48911
  return t.$$click = () => e.onTogglePin?.(), D((n) => {
48874
48912
  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"}`;
48875
48913
  return r !== n.e && rt(t, "aria-label", n.e = r), i !== n.t && rt(t, "title", n.t = i), a !== n.a && ot(t, n.a = a), n;
@@ -48884,10 +48922,10 @@ function X6(e) {
48884
48922
  return e.onClose;
48885
48923
  },
48886
48924
  get children() {
48887
- var t = V6();
48925
+ var t = H6();
48888
48926
  return t.$$click = () => e.onClose?.(), t;
48889
48927
  }
48890
- }), null), F(s, M(wM, { onCreated: () => n("activity") })), F(c, M(TQ, {})), F(l, M(_1, {})), F(u, M(B1, {})), F(d, M(P1, {})), F(f, M(T0, {})), F(p, M(B0, { onOpenIssue: () => n("activity") })), F(m, M(V3, {})), F(h, M(M6, {})), D((n) => {
48928
+ }), null), F(s, M(wM, { onCreated: () => n("activity") })), F(c, M(TQ, {})), F(l, M(_1, {})), F(u, M(B1, {})), F(d, M(P1, {})), F(f, M(T0, {})), F(p, M(B0, { onOpenIssue: () => n("activity") })), F(m, M(H3, {})), F(h, M(N6, {})), D((n) => {
48891
48929
  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";
48892
48930
  return r !== n.e && ot(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;
48893
48931
  }, {
@@ -48908,12 +48946,12 @@ function X6(e) {
48908
48946
  nt(["pointerdown", "click"]);
48909
48947
  //#endregion
48910
48948
  //#region src/styles/app.css?inline
48911
- var Z6 = "/*! 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);--ease-in-out:cubic-bezier(.4, 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-\\[Npx\\]{width:Npx}.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-danger{border-color:var(--color-danger)}.border-danger\\/40{border-color:#eb575766}@supports (color:color-mix(in lab, red, red)){.border-danger\\/40{border-color:color-mix(in oklab, var(--color-danger) 40%, transparent)}}.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-danger\\/10{background-color:#eb57571a}@supports (color:color-mix(in lab, red, red)){.bg-danger\\/10{background-color:color-mix(in oklab, var(--color-danger) 10%, transparent)}}.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)}.bg-warn\\/10{background-color:#f2c94c1a}@supports (color:color-mix(in lab, red, red)){.bg-warn\\/10{background-color:color-mix(in oklab, var(--color-warn) 10%, transparent)}}.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-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.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}}";
48949
+ var Q6 = "/*! 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);--ease-in-out:cubic-bezier(.4, 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}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.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-\\[Npx\\]{width:Npx}.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-danger{border-color:var(--color-danger)}.border-danger\\/40{border-color:#eb575766}@supports (color:color-mix(in lab, red, red)){.border-danger\\/40{border-color:color-mix(in oklab, var(--color-danger) 40%, transparent)}}.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-danger\\/10{background-color:#eb57571a}@supports (color:color-mix(in lab, red, red)){.bg-danger\\/10{background-color:color-mix(in oklab, var(--color-danger) 10%, transparent)}}.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)}.bg-warn\\/10{background-color:#f2c94c1a}@supports (color:color-mix(in lab, red, red)){.bg-warn\\/10{background-color:color-mix(in oklab, var(--color-warn) 10%, transparent)}}.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-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.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}}";
48912
48950
  //#endregion
48913
48951
  //#region src/page/index.tsx
48914
48952
  zr();
48915
- var Q6 = /*#__PURE__*/ P("<span aria-hidden class=\"bg-danger size-2 shrink-0 animate-pulse rounded-full\">"), $6 = /*#__PURE__*/ P("<span class=\"text-text min-w-[5ch] text-[11px] font-medium tabular-nums\">"), e8 = /*#__PURE__*/ P("<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"), t8 = /*#__PURE__*/ P("<p class=\"text-warn px-1.5 pt-1 pb-1.5 text-[10.5px] font-semibold tracking-wide uppercase\">Needs review"), n8 = /*#__PURE__*/ P("<div><p class=\"text-text-dim px-1.5 pt-1 pb-1.5 text-[10.5px] font-semibold tracking-wide uppercase\">Running agents"), r8 = /*#__PURE__*/ P("<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\">"), i8 = /*#__PURE__*/ P("<div><div title=\"Drag to resize\">"), a8 = /*#__PURE__*/ P("<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\">"), o8 = /*#__PURE__*/ P("<span class=\"bg-border h-4 w-px\"aria-hidden>"), s8 = /*#__PURE__*/ P("<span aria-hidden class=\"bg-warn size-2 rounded-full\">"), c8 = /*#__PURE__*/ P("<span class=\"text-warn min-w-[3.5ch] text-left text-[11px] font-medium tabular-nums\"> rev"), l8 = /*#__PURE__*/ P("<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>"), u8 = /*#__PURE__*/ P("<span aria-hidden class=\"bg-accent size-2 shrink-0 animate-pulse rounded-full\">"), d8 = /*#__PURE__*/ P("<span class=\"text-text min-w-[3ch] text-[11px] font-medium tabular-nums\">s"), f8 = /*#__PURE__*/ P("<span class=\"text-text-dim min-w-[7ch] text-[11px] tabular-nums\"> states"), p8 = /*#__PURE__*/ P("<p class=\"text-text-faint px-1.5 pb-1.5 text-[11.5px]\">No agents running right now."), m8 = /*#__PURE__*/ P("<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\"> · <!> · ");
48916
- function h8(e = {}) {
48953
+ var $6 = /*#__PURE__*/ P("<span aria-hidden class=\"bg-danger size-2 shrink-0 animate-pulse rounded-full\">"), e8 = /*#__PURE__*/ P("<span class=\"text-text min-w-[5ch] text-[11px] font-medium tabular-nums\">"), t8 = /*#__PURE__*/ P("<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"), n8 = /*#__PURE__*/ P("<p class=\"text-warn px-1.5 pt-1 pb-1.5 text-[10.5px] font-semibold tracking-wide uppercase\">Needs review"), r8 = /*#__PURE__*/ P("<div><p class=\"text-text-dim px-1.5 pt-1 pb-1.5 text-[10.5px] font-semibold tracking-wide uppercase\">Running agents"), i8 = /*#__PURE__*/ P("<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\">"), a8 = /*#__PURE__*/ P("<div><div title=\"Drag to resize\">"), o8 = /*#__PURE__*/ P("<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\">"), s8 = /*#__PURE__*/ P("<span class=\"bg-border h-4 w-px\"aria-hidden>"), c8 = /*#__PURE__*/ P("<span aria-hidden class=\"bg-warn size-2 rounded-full\">"), l8 = /*#__PURE__*/ P("<span class=\"text-warn min-w-[3.5ch] text-left text-[11px] font-medium tabular-nums\"> rev"), u8 = /*#__PURE__*/ P("<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>"), d8 = /*#__PURE__*/ P("<span aria-hidden class=\"bg-accent size-2 shrink-0 animate-pulse rounded-full\">"), f8 = /*#__PURE__*/ P("<span class=\"text-text min-w-[3ch] text-[11px] font-medium tabular-nums\">s"), p8 = /*#__PURE__*/ P("<span class=\"text-text-dim min-w-[7ch] text-[11px] tabular-nums\"> states"), m8 = /*#__PURE__*/ P("<p class=\"text-text-faint px-1.5 pb-1.5 text-[11.5px]\">No agents running right now."), h8 = /*#__PURE__*/ P("<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\"> · <!> · ");
48954
+ function g8(e = {}) {
48917
48955
  if (typeof window > "u" || window.__LINEAR_GRAB_PAGE__) return;
48918
48956
  window.__LINEAR_GRAB_PAGE__ = !0;
48919
48957
  let t = () => {
@@ -48945,17 +48983,17 @@ function h8(e = {}) {
48945
48983
  "keypress"
48946
48984
  ]) window.addEventListener(e, n, { capture: !0 });
48947
48985
  let r = t.attachShadow({ mode: "open" }), i = document.createElement("style");
48948
- i.textContent = Z6, r.appendChild(i);
48986
+ i.textContent = Q6, r.appendChild(i);
48949
48987
  let a = document.createElement("div");
48950
48988
  r.appendChild(a);
48951
- let o = () => a.setAttribute("data-theme", g8());
48952
- o(), matchMedia("(prefers-color-scheme: light)").addEventListener("change", o), tt(() => M(S8, { get defaultOpen() {
48989
+ let o = () => a.setAttribute("data-theme", _8());
48990
+ o(), matchMedia("(prefers-color-scheme: light)").addEventListener("change", o), tt(() => M(C8, { get defaultOpen() {
48953
48991
  return e.defaultOpen ?? !1;
48954
48992
  } }), a);
48955
48993
  };
48956
48994
  document.body ? t() : document.addEventListener("DOMContentLoaded", t, { once: !0 });
48957
48995
  }
48958
- function g8() {
48996
+ function _8() {
48959
48997
  try {
48960
48998
  let e = [document.body, document.documentElement];
48961
48999
  for (let t of e) {
@@ -48965,11 +49003,11 @@ function g8() {
48965
49003
  } catch {}
48966
49004
  return matchMedia("(prefers-color-scheme: light)").matches ? "light" : "dark";
48967
49005
  }
48968
- var _8 = 130, v8 = 36, y8 = 380, b8 = 280, x8 = 720;
48969
- function S8(e) {
49006
+ var v8 = 130, y8 = 36, b8 = 380, x8 = 280, S8 = 720;
49007
+ function C8(e) {
48970
49008
  let [t, n] = T(e.defaultOpen), [r, i] = T("right"), [a, o] = T({
48971
- x: Math.max(8, window.innerWidth - _8 - 24),
48972
- y: Math.max(8, window.innerHeight - v8 - 20)
49009
+ x: Math.max(8, window.innerWidth - v8 - 24),
49010
+ y: Math.max(8, window.innerHeight - y8 - 20)
48973
49011
  }), [s, c] = T({
48974
49012
  running: [],
48975
49013
  review: []
@@ -48989,15 +49027,15 @@ function S8(e) {
48989
49027
  let t = Math.floor(e / 1e3);
48990
49028
  return `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
48991
49029
  }, [b, x] = T(null), S = (e) => ({
48992
- x: Math.min(Math.max(8, e.x), window.innerWidth - _8 - 8),
48993
- y: Math.min(Math.max(8, e.y), window.innerHeight - v8 - 8)
49030
+ x: Math.min(Math.max(8, e.x), window.innerWidth - v8 - 8),
49031
+ y: Math.min(Math.max(8, e.y), window.innerHeight - y8 - 8)
48994
49032
  }), C = (e) => ({
48995
49033
  x: Math.min(Math.max(8 - (te() - 80), e.x), window.innerWidth - 80),
48996
49034
  y: Math.min(Math.max(0, e.y), window.innerHeight - 80)
48997
- }), [w, E] = T(!1), [k, ee] = T("cloud"), [A, j] = T(!1), [te, ne] = T(y8), ae = (e) => Math.min(x8, Math.max(b8, Math.min(e, window.innerWidth - 60)));
49035
+ }), [w, E] = T(!1), [k, ee] = T("cloud"), [A, j] = T(!1), [te, ne] = T(b8), ae = (e) => Math.min(S8, Math.max(x8, Math.min(e, window.innerWidth - 60)));
48998
49036
  O(() => {
48999
49037
  let e = document.documentElement, n = t() && w();
49000
- e.style.transition = "margin 0.2s ease", e.style.marginRight = n && r() === "right" ? `${te()}px` : "", e.style.marginLeft = n && r() === "left" ? `${te()}px` : "";
49038
+ e.style.marginRight = n && r() === "right" ? `${te()}px` : "", e.style.marginLeft = n && r() === "left" ? `${te()}px` : "";
49001
49039
  }), ie(() => {
49002
49040
  document.documentElement.style.marginRight = "", document.documentElement.style.marginLeft = "";
49003
49041
  });
@@ -49108,7 +49146,7 @@ function S8(e) {
49108
49146
  return !t();
49109
49147
  },
49110
49148
  get children() {
49111
- var e = r8(), t = e.firstChild;
49149
+ var e = i8(), t = e.firstChild;
49112
49150
  return t.$$click = () => {
49113
49151
  se || p() === "recording" || h().active || (f(!1), n(!0));
49114
49152
  }, t.$$pointerdown = ce, F(t, M(N, {
@@ -49118,14 +49156,14 @@ function S8(e) {
49118
49156
  get fallback() {
49119
49157
  return [
49120
49158
  (() => {
49121
- var e = a8();
49159
+ var e = o8();
49122
49160
  return e.$$click = () => {
49123
49161
  se || (f(!1), n(!0));
49124
- }, F(e, M(Y6, { size: 13 })), e;
49162
+ }, F(e, M(X6, { size: 13 })), e;
49125
49163
  })(),
49126
- o8(),
49164
+ s8(),
49127
49165
  (() => {
49128
- var e = l8(), t = e.firstChild, n = t.nextSibling;
49166
+ var e = u8(), t = e.firstChild, n = t.nextSibling;
49129
49167
  return e.$$click = (e) => {
49130
49168
  e.stopPropagation(), !se && f((e) => !e);
49131
49169
  }, F(n, (() => {
@@ -49136,8 +49174,8 @@ function S8(e) {
49136
49174
  return Qe(() => !A())() && u().length > 0;
49137
49175
  },
49138
49176
  get children() {
49139
- return [s8(), (() => {
49140
- var e = c8(), t = e.firstChild;
49177
+ return [c8(), (() => {
49178
+ var e = l8(), t = e.firstChild;
49141
49179
  return F(e, () => u().length, t), e;
49142
49180
  })()];
49143
49181
  }
@@ -49158,17 +49196,17 @@ function S8(e) {
49158
49196
  },
49159
49197
  get fallback() {
49160
49198
  return [
49161
- u8(),
49199
+ d8(),
49162
49200
  (() => {
49163
- var e = d8(), t = e.firstChild;
49201
+ var e = f8(), t = e.firstChild;
49164
49202
  return F(e, () => Math.ceil(h().msLeft / 1e3), t), e;
49165
49203
  })(),
49166
49204
  (() => {
49167
- var e = f8(), t = e.firstChild;
49205
+ var e = p8(), t = e.firstChild;
49168
49206
  return F(e, () => h().total, t), D(() => rt(e, "title", Object.entries(h().byTrigger).map(([e, t]) => `${t} ${e}`).join(" · ") || "hover / open the component to record its states")), e;
49169
49207
  })(),
49170
49208
  (() => {
49171
- var e = e8();
49209
+ var e = t8();
49172
49210
  return e.$$click = (e) => {
49173
49211
  e.stopPropagation(), !se && o2();
49174
49212
  }, e;
@@ -49177,13 +49215,13 @@ function S8(e) {
49177
49215
  },
49178
49216
  get children() {
49179
49217
  return [
49180
- Q6(),
49218
+ $6(),
49181
49219
  (() => {
49182
- var e = $6();
49220
+ var e = e8();
49183
49221
  return F(e, () => y(_())), e;
49184
49222
  })(),
49185
49223
  (() => {
49186
- var e = e8();
49224
+ var e = t8();
49187
49225
  return e.$$click = () => {
49188
49226
  se || eO();
49189
49227
  }, e;
@@ -49197,17 +49235,17 @@ function S8(e) {
49197
49235
  return d();
49198
49236
  },
49199
49237
  get children() {
49200
- var e = n8(), t = e.firstChild;
49238
+ var e = r8(), t = e.firstChild;
49201
49239
  return F(e, M(N, {
49202
49240
  get when() {
49203
49241
  return u().length > 0;
49204
49242
  },
49205
49243
  get children() {
49206
- return [t8(), M(Ue, {
49244
+ return [n8(), M(Ue, {
49207
49245
  get each() {
49208
49246
  return u();
49209
49247
  },
49210
- children: (e) => M(C8, {
49248
+ children: (e) => M(w8, {
49211
49249
  agent: e,
49212
49250
  review: !0,
49213
49251
  onOpen: ue
@@ -49219,14 +49257,14 @@ function S8(e) {
49219
49257
  return l().length > 0;
49220
49258
  },
49221
49259
  get fallback() {
49222
- return p8();
49260
+ return m8();
49223
49261
  },
49224
49262
  get children() {
49225
49263
  return M(Ue, {
49226
49264
  get each() {
49227
49265
  return l();
49228
49266
  },
49229
- children: (e) => M(C8, {
49267
+ children: (e) => M(w8, {
49230
49268
  agent: e,
49231
49269
  onOpen: ue
49232
49270
  })
@@ -49247,8 +49285,8 @@ function S8(e) {
49247
49285
  return t();
49248
49286
  },
49249
49287
  get children() {
49250
- var e = i8(), t = e.firstChild;
49251
- return t.$$pointerdown = de, F(e, M(X6, {
49288
+ var e = a8(), t = e.firstChild;
49289
+ return t.$$pointerdown = de, F(e, M(Z6, {
49252
49290
  onGrab: () => n(!0),
49253
49291
  onClose: () => n(!1),
49254
49292
  get onHeaderPointerDown() {
@@ -49276,19 +49314,19 @@ function S8(e) {
49276
49314
  }
49277
49315
  })];
49278
49316
  }
49279
- function C8(e) {
49317
+ function w8(e) {
49280
49318
  return (() => {
49281
- var t = m8(), n = t.firstChild, r = n.firstChild, i = r.nextSibling, a = i.nextSibling, o = n.nextSibling, s = o.firstChild, c = s.nextSibling;
49319
+ var t = h8(), n = t.firstChild, r = n.firstChild, i = r.nextSibling, a = i.nextSibling, o = n.nextSibling, s = o.firstChild, c = s.nextSibling;
49282
49320
  return c.nextSibling, t.$$click = () => e.onOpen(e.agent.id), F(i, () => e.agent.identifier), F(a, () => e.agent.title), F(o, (() => {
49283
49321
  var t = Qe(() => !!e.review);
49284
49322
  return () => t() ? "PR ready · needs review" : e.agent.stateName;
49285
- })(), s), F(o, () => e.agent.delegateName, c), F(o, () => w8(e.agent.updatedAt), null), D((t) => ut(r, "background", e.review ? "var(--color-warn)" : e.agent.stateColor)), t;
49323
+ })(), s), F(o, () => e.agent.delegateName, c), F(o, () => T8(e.agent.updatedAt), null), D((t) => ut(r, "background", e.review ? "var(--color-warn)" : e.agent.stateColor)), t;
49286
49324
  })();
49287
49325
  }
49288
- function w8(e) {
49326
+ function T8(e) {
49289
49327
  let t = Math.max(0, Math.floor((Date.now() - Date.parse(e)) / 1e3));
49290
49328
  return t < 60 ? "now" : t < 3600 ? `${Math.floor(t / 60)}m` : t < 86400 ? `${Math.floor(t / 3600)}h` : `${Math.floor(t / 86400)}d`;
49291
49329
  }
49292
49330
  nt(["pointerdown", "click"]);
49293
49331
  //#endregion
49294
- export { h8 as init };
49332
+ export { g8 as init };