linear-grab 0.23.1 → 0.23.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -45980,19 +45980,29 @@ function m2(e) {
45980
45980
  let t = e.className.split(/\s+/).filter((e) => /^(transition|duration-|delay-|ease-)/.test(e));
45981
45981
  return t.length ? t.join(" ") : void 0;
45982
45982
  }
45983
- function h2(e, t, n, r) {
45984
- let i = [];
45985
- return n > 0 && i.push(`remove the ${Math.round(n)}ms transition-delay`), (r?.includes("transition-all") || e.includes("all")) && i.push("scope 'transition-all' to the intended properties (e.g. transition-colors)"), t > 100 && i.push(`shorten ${Math.round(t)}ms ≤100ms`), i.push("make PRESS feedback instant: 'active:transition-none' (and data-[state=…]:transition-none for toggles) — animate only hover in/out"), i.join("; ");
45983
+ var h2 = /* @__PURE__ */ new Set(/* @__PURE__ */ "width.height.min-width.min-height.max-width.max-height.top.left.right.bottom.inset.margin.margin-top.margin-right.margin-bottom.margin-left.padding.padding-top.padding-right.padding-bottom.padding-left.font-size.line-height.letter-spacing.box-shadow.filter.background-position.grid-template-columns.grid-template-rows.flex-basis.gap".split("."));
45984
+ function g2(e) {
45985
+ return e.includes("all") ? ["all (includes layout/paint props)"] : e.filter((e) => h2.has(e));
45986
+ }
45987
+ function _2(e) {
45988
+ let t = e.split(",")[0].trim();
45989
+ if (t === "ease-in") return "ease-in";
45990
+ let n = t.match(/cubic-bezier\(\s*([\d.]+)\s*,\s*(-?[\d.]+)/);
45991
+ return n && parseFloat(n[1]) >= .4 && parseFloat(n[2]) <= .1 ? t : null;
45992
+ }
45993
+ function v2(e, t, n, r, i, a) {
45994
+ let o = [];
45995
+ return n > 0 && o.push(`remove the ${Math.round(n)}ms transition-delay`), (r?.includes("transition-all") || e.includes("all")) && o.push("scope 'transition-all' to the intended properties (e.g. transition-colors)"), a?.length && o.push(`JANK: transitions LAYOUT/PAINT props (${a.join(", ")}) — reflow/repaint every frame; animate transform/opacity instead (box-shadow → animate a pseudo-element's opacity)`), i && o.push(`easing '${i}' starts slow — never ease-in on UI, use ease-out`), t > 500 ? o.push(`${Math.round(t)}ms is over the 500ms HARD CAP for UI feedback`) : t > 300 ? o.push(`${Math.round(t)}ms is over the 300ms UI cap`) : t > 100 && o.push(`shorten ${Math.round(t)}ms → ≤100ms`), o.push("make PRESS feedback instant: 'active:transition-none' (and data-[state=…]:transition-none for toggles) — animate only hover in/out"), o.join("; ");
45986
45996
  }
45987
- async function g2() {
45997
+ async function y2() {
45988
45998
  try {
45989
45999
  return (await Promise.resolve().then(() => (RZ(), AZ))).getGlobalApi() ?? null;
45990
46000
  } catch {
45991
46001
  return null;
45992
46002
  }
45993
46003
  }
45994
- async function _2(e) {
45995
- let t = await g2(), n = null, r = null;
46004
+ async function b2(e) {
46005
+ let t = await y2(), n = null, r = null;
45996
46006
  try {
45997
46007
  n = t?.getDisplayName?.(e) ?? null;
45998
46008
  } catch {}
@@ -46005,15 +46015,15 @@ async function _2(e) {
46005
46015
  source: r
46006
46016
  };
46007
46017
  }
46008
- var v2 = [], y2 = null;
46009
- function b2(e) {
46010
- v2.push(e), y2 ??= setTimeout(() => {
46011
- y2 = null;
46012
- let e = v2.slice(0, 50).map((e) => ({
46018
+ var x2 = [], S2 = null;
46019
+ function C2(e) {
46020
+ x2.push(e), S2 ??= setTimeout(() => {
46021
+ S2 = null;
46022
+ let e = x2.slice(0, 50).map((e) => ({
46013
46023
  kind: "css-slowdown",
46014
46024
  ...e
46015
46025
  }));
46016
- v2 = [], JO().then((t) => fetch(`${t}/scan/events`, {
46026
+ x2 = [], JO().then((t) => fetch(`${t}/scan/events`, {
46017
46027
  method: "POST",
46018
46028
  headers: { "Content-Type": "application/json" },
46019
46029
  body: JSON.stringify({ events: e }),
@@ -46021,23 +46031,23 @@ function b2(e) {
46021
46031
  })).catch(() => {});
46022
46032
  }, 1500);
46023
46033
  }
46024
- var x2 = [], S2 = /* @__PURE__ */ new Set();
46025
- function C2(e) {
46026
- x2 = [e, ...x2].slice(0, 100);
46027
- for (let e of S2) e(x2);
46028
- b2(e);
46034
+ var w2 = [], T2 = /* @__PURE__ */ new Set();
46035
+ function E2(e) {
46036
+ w2 = [e, ...w2].slice(0, 100);
46037
+ for (let e of T2) e(w2);
46038
+ C2(e);
46029
46039
  }
46030
- function w2(e) {
46031
- return S2.add(e), e(x2), () => void S2.delete(e);
46040
+ function D2(e) {
46041
+ return T2.add(e), e(w2), () => void T2.delete(e);
46032
46042
  }
46033
- function T2() {
46034
- x2 = x2.filter((e) => e.mode !== "audit");
46035
- for (let e of S2) e(x2);
46043
+ function O2() {
46044
+ w2 = [];
46045
+ for (let e of T2) e(w2);
46036
46046
  }
46037
- var E2 = !1;
46038
- function D2() {
46039
- if (E2 || typeof window > "u") return;
46040
- E2 = !0;
46047
+ var k2 = !1;
46048
+ function A2() {
46049
+ if (k2 || typeof window > "u") return;
46050
+ k2 = !0;
46041
46051
  let e = 0, t = () => {
46042
46052
  e = performance.now();
46043
46053
  };
@@ -46072,9 +46082,9 @@ function D2() {
46072
46082
  let e = p2(a), t = Date.now();
46073
46083
  if (t - (n.get(e) ?? 0) < 5e3) return;
46074
46084
  n.set(e, t);
46075
- let i = m2(a), o = [...m.props];
46076
- _2(a).then(({ component: n, source: r }) => {
46077
- C2({
46085
+ let i = m2(a), o = [...m.props], s = a.isConnected ? _2(getComputedStyle(a).transitionTimingFunction) : null, c = g2(o);
46086
+ b2(a).then(({ component: n, source: r }) => {
46087
+ E2({
46078
46088
  mode: "live",
46079
46089
  page: location.pathname,
46080
46090
  element: e,
@@ -46086,7 +46096,9 @@ function D2() {
46086
46096
  sinceInputMs: Math.round(m.since),
46087
46097
  count: 1,
46088
46098
  classHint: i,
46089
- suggestion: h2(o, m.duration, m.delay, i),
46099
+ easing: s ?? void 0,
46100
+ jankProps: c.length ? c : void 0,
46101
+ suggestion: v2(o, m.duration, m.delay, i, s, c),
46090
46102
  at: t
46091
46103
  });
46092
46104
  });
@@ -46098,9 +46110,9 @@ function D2() {
46098
46110
  passive: !0
46099
46111
  });
46100
46112
  }
46101
- var O2 = "button, a, input, select, textarea, [role], [tabindex], [data-state], [aria-expanded]";
46102
- async function k2() {
46103
- let e = /* @__PURE__ */ new Map(), t = Array.from(document.querySelectorAll(O2)).slice(0, 3e3);
46113
+ var j2 = "button, a, input, select, textarea, [role], [tabindex], [data-state], [aria-expanded]";
46114
+ async function M2() {
46115
+ let e = /* @__PURE__ */ new Map(), t = Array.from(document.querySelectorAll(j2)).slice(0, 3e3);
46104
46116
  for (let n of t) {
46105
46117
  if (n.closest("#linear-grab-root")) continue;
46106
46118
  let t = n.getBoundingClientRect();
@@ -46114,6 +46126,7 @@ async function k2() {
46114
46126
  u.finding.count += 1;
46115
46127
  continue;
46116
46128
  }
46129
+ let d = _2(r.transitionTimingFunction), f = g2(s);
46117
46130
  e.set(l, {
46118
46131
  example: n,
46119
46132
  finding: {
@@ -46127,48 +46140,82 @@ async function k2() {
46127
46140
  delayMs: Math.round(Math.max(...a, 0)),
46128
46141
  count: 1,
46129
46142
  classHint: c,
46130
- suggestion: h2(s, Math.max(...i, 0), Math.max(...a, 0), c),
46143
+ easing: d ?? void 0,
46144
+ jankProps: f.length ? f : void 0,
46145
+ suggestion: v2(s, Math.max(...i, 0), Math.max(...a, 0), c, d, f),
46131
46146
  at: Date.now()
46132
46147
  }
46133
46148
  });
46134
46149
  }
46135
46150
  let n = [];
46136
46151
  for (let { finding: t, example: r } of e.values()) {
46137
- let { component: e, source: i } = await _2(r);
46152
+ let { component: e, source: i } = await b2(r);
46138
46153
  t.component = e, t.source = i, n.push(t);
46139
46154
  }
46140
- n.sort((e, t) => t.durationMs + t.delayMs - (e.durationMs + e.delayMs) || t.count - e.count), x2 = [...n, ...x2.filter((e) => e.mode === "live")].slice(0, 100);
46141
- for (let e of S2) e(x2);
46142
- for (let e of n) b2(e);
46155
+ n.sort((e, t) => t.durationMs + t.delayMs - (e.durationMs + e.delayMs) || t.count - e.count), w2 = [...n, ...w2.filter((e) => e.mode === "live")].slice(0, 100);
46156
+ for (let e of T2) e(w2);
46157
+ for (let e of n) C2(e);
46143
46158
  return n;
46144
46159
  }
46145
- function A2(e) {
46160
+ function N2(e) {
46161
+ return [
46162
+ "Below is a CSS-slowdown report from my running app (live-captured on real input + full-page audit).",
46163
+ "Goal: ALL interaction feedback must be instant. Rules:",
46164
+ "",
46165
+ "1. Most of these come from SHARED design-system variants — fix the VARIANT",
46166
+ " DEFINITIONS, not the call sites. Grep for the exact class recipes in the",
46167
+ " findings' `classes:` lines (e.g. `transition-all`, `transition-colors duration-150`).",
46168
+ "2. Press/toggle state changes get NO transition: add `active:transition-none`",
46169
+ " and `data-[state=on]:transition-none` / `data-[state=open]:transition-none`.",
46170
+ " Hover in/out may keep a transition but shorten it: duration-150 → duration-100",
46171
+ " (duration-75 for small controls like tabs and icon buttons).",
46172
+ "3. Replace every `transition-all` with the scoped variant (transition-colors /",
46173
+ " transition-transform / transition-opacity — per what actually changes).",
46174
+ "3b. Findings marked ⚠ layout/paint: NEVER transition width/height/top/left/",
46175
+ " margin/padding/box-shadow — they reflow or repaint every frame. Use",
46176
+ " transform: translate/scale, and animate a pseudo-element's opacity for shadows.",
46177
+ "3c. Findings marked ⚠ easing: never ease-in on UI — replace with ease-out",
46178
+ " (house curve: cubic-bezier(.2,0,.1,1)).",
46179
+ "4. Where a finding's source looks like a generic fallback (one file:line repeated",
46180
+ " for many components), locate the code by the `classes:` line instead.",
46181
+ "5. Do NOT touch entry/exit animations of popovers/menus or icon micro-motion",
46182
+ " (chevron rotate etc.) — that is intentional; only input FEEDBACK must be instant.",
46183
+ "6. PROOF REQUIRED: after the change I will re-run the audit — it must show zero",
46184
+ " interactive elements ≥100ms and clicking must produce no live findings.",
46185
+ " Do not claim done without stating what you changed per variant.",
46186
+ "",
46187
+ "---",
46188
+ "",
46189
+ P2(e)
46190
+ ].join("\n");
46191
+ }
46192
+ function P2(e) {
46146
46193
  let t = [
46147
46194
  `# CSS slowdowns on ${location.host}${location.pathname}`,
46148
46195
  "Threshold: 50ms (interaction feedback should be instant).",
46149
46196
  ""
46150
46197
  ];
46151
- for (let n of e) t.push(`## ${n.component ?? n.element}${n.count > 1 ? ` ×${n.count}` : ""} — ${n.durationMs}ms${n.delayMs ? ` +${n.delayMs}ms delay` : ""}`), n.source && t.push(`- source: ${n.source}`), t.push(`- transitions: ${n.properties.join(", ")}`), n.classHint && t.push(`- classes: \`${n.classHint}\``), n.sinceInputMs != null && t.push(`- fired ${n.sinceInputMs}ms after user input (live capture)`), t.push(`- fix: ${n.suggestion}`, "");
46198
+ for (let n of e) t.push(`## ${n.component ?? n.element}${n.count > 1 ? ` ×${n.count}` : ""} — ${n.durationMs}ms${n.delayMs ? ` +${n.delayMs}ms delay` : ""}`), n.source && t.push(`- source: ${n.source}`), t.push(`- transitions: ${n.properties.join(", ")}`), n.classHint && t.push(`- classes: \`${n.classHint}\``), n.jankProps?.length && t.push(`- ⚠ layout/paint transition (reflows every frame): ${n.jankProps.join(", ")}`), n.easing && t.push(`- ⚠ easing: ${n.easing} (ease-in starts slow — use ease-out)`), n.sinceInputMs != null && t.push(`- fired ${n.sinceInputMs}ms after user input (live capture)`), t.push(`- fix: ${n.suggestion}`, "");
46152
46199
  return t.join("\n");
46153
46200
  }
46154
46201
  //#endregion
46155
46202
  //#region src/panel/views/DesignView.tsx
46156
- var j2 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[7ch] text-center\">Extract"), M2 = /*#__PURE__*/ N("<div class=\"relative flex flex-col gap-2 pl-4\"><div class=\"bg-border absolute top-1 bottom-1 left-[5px] w-px\"aria-hidden>"), N2 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[5ch] text-center\">Audit"), P2 = /*#__PURE__*/ N("<div class=\"flex max-h-72 flex-col gap-1.5 overflow-y-auto pr-2\">"), F2 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[10ch] text-center\">"), I2 = /*#__PURE__*/ N("<div class=\"flex items-center gap-1.5 px-1\">"), L2 = /*#__PURE__*/ N("<div class=\"flex h-full flex-col gap-3 overflow-y-auto pt-3 pb-4 pr-3 pl-2\"><div class=\"flex items-center justify-between gap-2 px-1\"><div class=min-w-0><p class=\"text-text text-[12.5px] font-semibold\">Design genomes</p><p class=\"text-text-faint text-[10.5px] leading-snug\">Point at a component → get its structure, tokens and interaction states as a spec you can hand to an agent.</p></div></div><div class=\"border-border mt-1 flex flex-col gap-2 border-t pt-3\"><div class=\"flex items-center justify-between gap-2 px-1\"><div class=min-w-0><p class=\"text-text text-[12.5px] font-semibold\">CSS slowdowns</p><p class=\"text-text-faint text-[10.5px] leading-snug\">Transitions/delays ≥50ms on interactive elements — feedback that animates instead of being instant. Live hits appear as you use the app; Audit sweeps the whole page."), R2 = /*#__PURE__*/ N("<p class=\"text-text mt-1 text-[11px] font-semibold\">Interaction states"), z2 = /*#__PURE__*/ N("<svg width=12 height=12 viewBox=\"0 0 16 16\"aria-hidden><rect x=3.5 y=3.5 width=9 height=9 rx=1.5 fill=currentColor>"), B2 = /*#__PURE__*/ N("<span class=\"text-warn text-[10.5px] font-medium tabular-nums\">s · <!> states"), V2 = /*#__PURE__*/ N("<span class=\"text-success text-[12px] leading-none\">✓"), H2 = /*#__PURE__*/ N("<svg width=12 height=12 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round aria-hidden><path d=\"M4 4l8 8M12 4l-8 8\">"), U2 = /*#__PURE__*/ N("<div class=\"border-border flex flex-col gap-2 border-t px-2.5 py-2\"><p class=\"text-text-faint truncate text-[10px]\"></p><div class=\"flex max-h-64 flex-col gap-2 overflow-y-auto pr-2\"></div><div class=\"flex items-center gap-1\">"), W2 = /*#__PURE__*/ N("<div class=relative><span class=\"border-border bg-surface absolute top-3 -left-[13.5px] size-[9px] rounded-full border\"aria-hidden></span><div class=\"bg-surface border-border flex flex-col rounded-lg border\"><button class=\"flex w-full cursor-pointer items-center gap-2 px-2.5 py-2 text-left\"><span class=\"text-accent min-w-0 truncate font-mono text-[12px]\"></span><span class=\"text-text-faint ml-auto shrink-0 text-[10.5px] tabular-nums\"> roles<!> · </span><svg width=10 height=10 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 class=\"text-text-faint shrink-0 transition-transform\"aria-hidden><path d=\"m4 6 4 4 4-4\">"), G2 = /*#__PURE__*/ N("<span class=text-text-faint> ×"), K2 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-0.5\"><p class=\"text-text text-[11px] font-medium\">"), q2 = /*#__PURE__*/ N("<span class=text-accent> ← var(<!>)"), J2 = /*#__PURE__*/ N("<p class=\"text-text-dim font-mono text-[10px] leading-snug break-all\">: "), Y2 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-0.5\"><p class=\"text-warn text-[10.5px] font-medium\"> — "), X2 = /*#__PURE__*/ N("<p class=\"text-text-dim font-mono text-[10px] leading-snug break-all\">: <!> → "), Z2 = /*#__PURE__*/ N("<svg width=13 height=13 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round aria-hidden><circle cx=8 cy=8 r=6></circle><circle cx=8 cy=8 r=2 fill=currentColor stroke=none>"), Q2 = /*#__PURE__*/ N("<svg width=13 height=13 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linejoin=round aria-hidden><rect x=5.5 y=5.5 width=9 height=9 rx=1.5></rect><path d=\"M10.5 5.5v-2a2 2 0 0 0-2-2h-5a2 2 0 0 0-2 2v5a2 2 0 0 0 2 2h2\">"), $2 = /*#__PURE__*/ N("<p class=\"text-text-faint px-1 text-[10.5px]\">Nothing caught yet — interact with the app, or run Audit."), e4 = /*#__PURE__*/ N("<span class=\"text-text-dim font-mono text-[10px] break-all\">"), t4 = /*#__PURE__*/ N("<div class=\"bg-surface border-border flex flex-col gap-0.5 rounded-lg border p-2\"><div class=\"flex items-center gap-2\"><span class=\"text-warn shrink-0 text-[10px] font-semibold tracking-wide uppercase\"></span><span class=\"text-accent min-w-0 truncate font-mono text-[11.5px]\"></span><span class=\"text-text ml-auto shrink-0 text-[11px] font-medium tabular-nums\">ms</span></div><span class=\"text-text-dim text-[10px] leading-snug\"></span><span class=\"text-text-faint text-[10px] leading-snug\">"), n4 = "linear-grab:genomes:v1", r4 = 30;
46157
- function i4() {
46203
+ var F2 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[7ch] text-center\">Extract"), I2 = /*#__PURE__*/ N("<div class=\"relative flex flex-col gap-2 pl-4\"><div class=\"bg-border absolute top-1 bottom-1 left-[5px] w-px\"aria-hidden>"), L2 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[8ch] text-center\">"), R2 = /*#__PURE__*/ N("<div class=\"flex items-center justify-end gap-1.5 px-1\">"), z2 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[5ch] text-center\">Audit"), B2 = /*#__PURE__*/ N("<div class=\"flex max-h-72 flex-col gap-1.5 overflow-y-auto pr-2\">"), V2 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[11ch] text-center\">"), H2 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[10ch] text-center\">"), U2 = /*#__PURE__*/ N("<div class=\"flex items-center gap-1.5 px-1\">"), W2 = /*#__PURE__*/ N("<div class=\"flex h-full flex-col gap-3 overflow-y-auto pt-3 pb-4 pr-3 pl-2\"><div class=\"flex items-center justify-between gap-2 px-1\"><div class=min-w-0><p class=\"text-text text-[12.5px] font-semibold\">Design genomes</p><p class=\"text-text-faint text-[10.5px] leading-snug\">Point at a component → get its structure, tokens and interaction states as a spec you can hand to an agent.</p></div></div><div class=\"border-border mt-1 flex flex-col gap-2 border-t pt-3\"><div class=\"flex items-center justify-between gap-2 px-1\"><div class=min-w-0><p class=\"text-text text-[12.5px] font-semibold\">CSS slowdowns</p><p class=\"text-text-faint text-[10.5px] leading-snug\">Transitions/delays ≥50ms on interactive elements — feedback that animates instead of being instant. Live hits appear as you use the app; Audit sweeps the whole page."), G2 = /*#__PURE__*/ N("<p class=\"text-text mt-1 text-[11px] font-semibold\">Interaction states"), K2 = /*#__PURE__*/ N("<svg width=12 height=12 viewBox=\"0 0 16 16\"aria-hidden><rect x=3.5 y=3.5 width=9 height=9 rx=1.5 fill=currentColor>"), q2 = /*#__PURE__*/ N("<span class=\"text-warn text-[10.5px] font-medium tabular-nums\">s · <!> states"), J2 = /*#__PURE__*/ N("<span class=\"text-success text-[12px] leading-none\">✓"), Y2 = /*#__PURE__*/ N("<svg width=12 height=12 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round aria-hidden><path d=\"M4 4l8 8M12 4l-8 8\">"), X2 = /*#__PURE__*/ N("<div class=\"border-border flex flex-col gap-2 border-t px-2.5 py-2\"><p class=\"text-text-faint truncate text-[10px]\"></p><div class=\"flex max-h-64 flex-col gap-2 overflow-y-auto pr-2\"></div><div class=\"flex items-center gap-1\">"), Z2 = /*#__PURE__*/ N("<div class=relative><span class=\"border-border bg-surface absolute top-3 -left-[13.5px] size-[9px] rounded-full border\"aria-hidden></span><div class=\"bg-surface border-border flex flex-col rounded-lg border\"><button class=\"flex w-full cursor-pointer items-center gap-2 px-2.5 py-2 text-left\"><span class=\"text-accent min-w-0 truncate font-mono text-[12px]\"></span><span class=\"text-text-faint ml-auto shrink-0 text-[10.5px] tabular-nums\"> roles<!> · </span><svg width=10 height=10 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 class=\"text-text-faint shrink-0 transition-transform\"aria-hidden><path d=\"m4 6 4 4 4-4\">"), Q2 = /*#__PURE__*/ N("<span class=text-text-faint> ×"), $2 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-0.5\"><p class=\"text-text text-[11px] font-medium\">"), e4 = /*#__PURE__*/ N("<span class=text-accent> ← var(<!>)"), t4 = /*#__PURE__*/ N("<p class=\"text-text-dim font-mono text-[10px] leading-snug break-all\">: "), n4 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-0.5\"><p class=\"text-warn text-[10.5px] font-medium\"> — "), r4 = /*#__PURE__*/ N("<p class=\"text-text-dim font-mono text-[10px] leading-snug break-all\">: <!> → "), i4 = /*#__PURE__*/ N("<svg width=13 height=13 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round aria-hidden><circle cx=8 cy=8 r=6></circle><circle cx=8 cy=8 r=2 fill=currentColor stroke=none>"), a4 = /*#__PURE__*/ N("<svg width=13 height=13 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linejoin=round aria-hidden><rect x=5.5 y=5.5 width=9 height=9 rx=1.5></rect><path d=\"M10.5 5.5v-2a2 2 0 0 0-2-2h-5a2 2 0 0 0-2 2v5a2 2 0 0 0 2 2h2\">"), o4 = /*#__PURE__*/ N("<p class=\"text-text-faint px-1 text-[10.5px]\">Nothing caught yet — interact with the app, or run Audit."), s4 = /*#__PURE__*/ N("<span class=\"text-text-dim font-mono text-[10px] break-all\">"), c4 = /*#__PURE__*/ N("<span class=\"text-danger text-[10px] leading-snug\">⚠ layout/paint transition: "), l4 = /*#__PURE__*/ N("<span class=\"text-danger text-[10px] leading-snug\">⚠ ease-in easing: "), u4 = /*#__PURE__*/ N("<div class=\"bg-surface border-border flex flex-col gap-0.5 rounded-lg border p-2\"><div class=\"flex items-center gap-2\"><span class=\"text-warn shrink-0 text-[10px] font-semibold tracking-wide uppercase\"></span><span class=\"text-accent min-w-0 truncate font-mono text-[11.5px]\"></span><span class=\"text-text ml-auto shrink-0 text-[11px] font-medium tabular-nums\">ms</span></div><span class=\"text-text-dim text-[10px] leading-snug\"></span><span class=\"text-text-faint text-[10px] leading-snug\">"), d4 = "linear-grab:genomes:v1", f4 = 30;
46204
+ function p4() {
46158
46205
  try {
46159
- return JSON.parse(localStorage.getItem(n4) ?? "[]");
46206
+ return JSON.parse(localStorage.getItem(d4) ?? "[]");
46160
46207
  } catch {
46161
46208
  return [];
46162
46209
  }
46163
46210
  }
46164
- function a4(e) {
46211
+ function m4(e) {
46165
46212
  try {
46166
- localStorage.setItem(n4, JSON.stringify(e.slice(0, r4)));
46213
+ localStorage.setItem(d4, JSON.stringify(e.slice(0, f4)));
46167
46214
  } catch {}
46168
46215
  }
46169
- var o4 = /* @__PURE__ */ new Map();
46170
- function s4() {
46171
- let [e, t] = T(i4()), [n, r] = T(null), [i, a] = T(null), [o, s] = T(null), [c, l] = T(null), [u, d] = T(null), [f, p] = T({
46216
+ var h4 = /* @__PURE__ */ new Map();
46217
+ function g4() {
46218
+ let [e, t] = T(p4()), [n, r] = T(null), [i, a] = T(null), [o, s] = T(null), [c, l] = T(null), [u, d] = T(null), [f, p] = T({
46172
46219
  active: !1,
46173
46220
  msLeft: 0,
46174
46221
  total: 0,
@@ -46176,29 +46223,35 @@ function s4() {
46176
46223
  });
46177
46224
  ae(i2(p));
46178
46225
  let [m, h] = T([]);
46179
- ae(w2(h));
46226
+ ae(D2(h));
46180
46227
  let [g, _] = T(!1), [v, y] = T(!1), b = async () => {
46181
46228
  _(!0);
46182
46229
  try {
46183
- await k2();
46230
+ await M2();
46184
46231
  } finally {
46185
46232
  _(!1);
46186
46233
  }
46187
46234
  }, x = async () => {
46188
46235
  try {
46189
- await navigator.clipboard.writeText(A2(m())), y(!0), setTimeout(() => y(!1), 1600);
46236
+ await navigator.clipboard.writeText(P2(m())), y(!0), setTimeout(() => y(!1), 1600);
46190
46237
  } catch {
46191
46238
  l("Clipboard was blocked — click Copy again.");
46192
46239
  }
46193
- }, S = (e) => {
46194
- t(e), a4(e);
46195
- }, C = async () => {
46240
+ }, [S, C] = T(!1), w = async () => {
46241
+ try {
46242
+ await navigator.clipboard.writeText(N2(m())), C(!0), setTimeout(() => C(!1), 1600);
46243
+ } catch {
46244
+ l("Clipboard was blocked — click Copy again.");
46245
+ }
46246
+ }, E = (e) => {
46247
+ t(e), m4(e);
46248
+ }, O = async () => {
46196
46249
  l(null), a("extract"), window.dispatchEvent(new CustomEvent(BZ));
46197
46250
  try {
46198
46251
  let t = await u2();
46199
46252
  if (!t) return;
46200
46253
  let n = await e2(t), i = Date.now();
46201
- o4.set(i, new WeakRef(t)), S([{
46254
+ h4.set(i, new WeakRef(t)), E([{
46202
46255
  id: i,
46203
46256
  genome: n
46204
46257
  }, ...e()]), r(i);
@@ -46207,16 +46260,16 @@ function s4() {
46207
46260
  } finally {
46208
46261
  a(null), oj("design"), window.dispatchEvent(new CustomEvent(VZ));
46209
46262
  }
46210
- }, w = async (t) => {
46263
+ }, k = async (t) => {
46211
46264
  l(null), a(t.id), window.dispatchEvent(new CustomEvent(BZ));
46212
46265
  try {
46213
- let n = o4.get(t.id)?.deref() ?? null;
46266
+ let n = h4.get(t.id)?.deref() ?? null;
46214
46267
  if (!n || !n.isConnected) {
46215
46268
  if (n = await u2(), !n) return;
46216
- o4.set(t.id, new WeakRef(n));
46269
+ h4.set(t.id, new WeakRef(n));
46217
46270
  }
46218
46271
  let r = await c2(n, 8e3, (e) => s(Math.ceil(e / 1e3)));
46219
- r.length === 0 && l("No state changes captured — hover/open the component while the 8s window runs."), S(e().map((e) => e.id === t.id ? {
46272
+ r.length === 0 && l("No state changes captured — hover/open the component while the 8s window runs."), E(e().map((e) => e.id === t.id ? {
46220
46273
  ...e,
46221
46274
  genome: {
46222
46275
  ...e.genome,
@@ -46228,17 +46281,26 @@ function s4() {
46228
46281
  } finally {
46229
46282
  a(null), s(null), oj("design"), window.dispatchEvent(new CustomEvent(VZ));
46230
46283
  }
46231
- }, E = async (e) => {
46284
+ }, ee = async (e) => {
46232
46285
  try {
46233
46286
  await navigator.clipboard.writeText(l2(e.genome)), d(e.id), setTimeout(() => d(null), 1600);
46234
46287
  } catch {
46235
46288
  l("Clipboard was blocked — click Copy again.");
46236
46289
  }
46237
- }, O = (t) => {
46238
- o4.delete(t), S(e().filter((e) => e.id !== t));
46290
+ }, te = (t) => {
46291
+ h4.delete(t), E(e().filter((e) => e.id !== t));
46292
+ }, [A, ne] = T(!1), re = async () => {
46293
+ try {
46294
+ let t = e().map((e) => l2(e.genome)).join("\n\n---\n\n");
46295
+ await navigator.clipboard.writeText(t), ne(!0), setTimeout(() => ne(!1), 1600);
46296
+ } catch {
46297
+ l("Clipboard was blocked — click Copy again.");
46298
+ }
46299
+ }, ie = () => {
46300
+ h4.clear(), E([]), r(null);
46239
46301
  };
46240
46302
  return (() => {
46241
- var t = L2(), a = t.firstChild;
46303
+ var t = W2(), a = t.firstChild;
46242
46304
  a.firstChild;
46243
46305
  var o = a.nextSibling, s = o.firstChild;
46244
46306
  return s.firstChild, P(a, j(kj, {
@@ -46247,9 +46309,9 @@ function s4() {
46247
46309
  get loading() {
46248
46310
  return i() === "extract";
46249
46311
  },
46250
- onClick: () => void C(),
46312
+ onClick: () => void O(),
46251
46313
  get children() {
46252
- return j2();
46314
+ return F2();
46253
46315
  }
46254
46316
  }), null), P(t, j(M, {
46255
46317
  get when() {
@@ -46271,159 +46333,178 @@ function s4() {
46271
46333
  });
46272
46334
  },
46273
46335
  get children() {
46274
- var t = M2();
46275
- return t.firstChild, P(t, j(We, {
46276
- get each() {
46277
- return e();
46278
- },
46279
- children: (e) => {
46280
- let t = () => n() === e.id;
46281
- return (() => {
46282
- var n = W2(), a = n.firstChild, o = a.nextSibling, s = o.firstChild, c = s.firstChild, l = c.nextSibling, d = l.firstChild, p = d.nextSibling;
46283
- p.nextSibling;
46284
- var m = l.nextSibling;
46285
- return s.$$click = () => r(t() ? null : e.id), P(c, () => e.genome.title), P(l, () => e.genome.nodes.length, d), P(l, (() => {
46286
- var t = $e(() => !!e.genome.states.length);
46287
- return () => t() ? ` · ${e.genome.states.length} states` : "";
46288
- })(), p), P(l, () => Wj(e.genome.extractedAt), null), P(o, j(M, {
46289
- get when() {
46290
- return t();
46291
- },
46292
- get children() {
46293
- var t = U2(), n = t.firstChild, r = n.nextSibling, a = r.nextSibling;
46294
- return P(n, () => e.genome.pageUrl), P(r, j(We, {
46295
- get each() {
46296
- return e.genome.nodes;
46297
- },
46298
- children: (e) => (() => {
46299
- var t = K2(), n = t.firstChild;
46300
- return P(n, () => e.label, null), P(n, j(M, {
46301
- get when() {
46302
- return e.count > 1;
46303
- },
46304
- get children() {
46305
- var t = G2();
46306
- return t.firstChild, P(t, () => e.count, null), t;
46307
- }
46308
- }), null), P(t, j(We, {
46309
- get each() {
46310
- return Object.entries(e.styles);
46311
- },
46312
- children: ([t, n]) => (() => {
46313
- var r = J2(), i = r.firstChild;
46314
- return P(r, t, i), P(r, n, null), P(r, j(M, {
46315
- get when() {
46316
- return e.tokens[t];
46317
- },
46318
- get children() {
46319
- var n = q2(), r = n.firstChild.nextSibling;
46320
- return r.nextSibling, P(n, () => e.tokens[t], r), n;
46321
- }
46322
- }), null), r;
46323
- })()
46324
- }), null), t;
46325
- })()
46326
- }), null), P(r, j(M, {
46327
- get when() {
46328
- return e.genome.states.length > 0;
46329
- },
46330
- get children() {
46331
- return [R2(), j(We, {
46332
- get each() {
46333
- return e.genome.states;
46334
- },
46335
- children: (e) => (() => {
46336
- var t = Y2(), n = t.firstChild, r = n.firstChild;
46337
- return P(n, () => e.label, r), P(n, () => e.trigger, null), P(t, j(We, {
46338
- get each() {
46339
- return Object.entries(e.changed);
46340
- },
46341
- children: ([e, t]) => (() => {
46342
- var n = X2(), r = n.firstChild, i = r.nextSibling;
46343
- return i.nextSibling, P(n, e, r), P(n, () => t.from, i), P(n, () => t.to, null), n;
46344
- })()
46345
- }), null), t;
46346
- })()
46347
- })];
46348
- }
46349
- }), null), P(a, j(M, {
46350
- get when() {
46351
- return $e(() => i() === e.id)() && f().active;
46352
- },
46353
- get fallback() {
46354
- return j(kj, {
46355
- class: "size-7 px-0",
46356
- variant: "ghost",
46357
- get loading() {
46358
- return i() === e.id;
46359
- },
46360
- title: "Capture states — records hover/focus/open styles for 8s while you interact; the pill shows the timer and Stop",
46361
- "aria-label": "Capture interaction states",
46362
- onClick: () => void w(e),
46363
- get children() {
46364
- return Z2();
46365
- }
46366
- });
46367
- },
46368
- get children() {
46369
- return [j(kj, {
46370
- class: "text-danger size-7 px-0",
46371
- variant: "ghost",
46372
- get title() {
46373
- return `Stop recording — ${Math.ceil(f().msLeft / 1e3)}s left · ${f().total} captured`;
46374
- },
46375
- "aria-label": "Stop recording states",
46376
- onClick: () => o2(),
46377
- get children() {
46378
- return z2();
46379
- }
46380
- }), (() => {
46381
- var e = B2(), t = e.firstChild, n = t.nextSibling;
46382
- return n.nextSibling, P(e, () => Math.ceil(f().msLeft / 1e3), t), P(e, () => f().total, n), e;
46383
- })()];
46384
- }
46385
- }), null), P(a, j(kj, {
46386
- class: "size-7 px-0",
46387
- variant: "ghost",
46388
- get title() {
46389
- return u() === e.id ? "Copied!" : "Copy spec — markdown for an agent or issue";
46390
- },
46391
- "aria-label": "Copy genome spec",
46392
- onClick: () => void E(e),
46393
- get children() {
46394
- return j(M, {
46395
- get when() {
46396
- return u() === e.id;
46397
- },
46398
- get fallback() {
46399
- return Q2();
46400
- },
46401
- get children() {
46402
- return V2();
46403
- }
46404
- });
46405
- }
46406
- }), null), P(a, j(kj, {
46407
- class: "text-danger ml-auto size-7 px-0",
46408
- variant: "ghost",
46409
- title: "Delete this genome",
46410
- "aria-label": "Delete genome",
46411
- onClick: () => O(e.id),
46412
- get children() {
46413
- return H2();
46414
- }
46415
- }), null), t;
46416
- }
46417
- }), null), D((e) => {
46418
- var n = { "bg-accent border-accent": t() }, r = !!t();
46419
- return e.e = lt(a, n, e.e), r !== e.t && m.classList.toggle("rotate-180", e.t = r), e;
46420
- }, {
46421
- e: void 0,
46422
- t: void 0
46423
- }), n;
46424
- })();
46425
- }
46426
- }), null), t;
46336
+ return [(() => {
46337
+ var t = I2();
46338
+ return t.firstChild, P(t, j(We, {
46339
+ get each() {
46340
+ return e();
46341
+ },
46342
+ children: (e) => {
46343
+ let t = () => n() === e.id;
46344
+ return (() => {
46345
+ var n = Z2(), a = n.firstChild, o = a.nextSibling, s = o.firstChild, c = s.firstChild, l = c.nextSibling, d = l.firstChild, p = d.nextSibling;
46346
+ p.nextSibling;
46347
+ var m = l.nextSibling;
46348
+ return s.$$click = () => r(t() ? null : e.id), P(c, () => e.genome.title), P(l, () => e.genome.nodes.length, d), P(l, (() => {
46349
+ var t = $e(() => !!e.genome.states.length);
46350
+ return () => t() ? ` · ${e.genome.states.length} states` : "";
46351
+ })(), p), P(l, () => Wj(e.genome.extractedAt), null), P(o, j(M, {
46352
+ get when() {
46353
+ return t();
46354
+ },
46355
+ get children() {
46356
+ var t = X2(), n = t.firstChild, r = n.nextSibling, a = r.nextSibling;
46357
+ return P(n, () => e.genome.pageUrl), P(r, j(We, {
46358
+ get each() {
46359
+ return e.genome.nodes;
46360
+ },
46361
+ children: (e) => (() => {
46362
+ var t = $2(), n = t.firstChild;
46363
+ return P(n, () => e.label, null), P(n, j(M, {
46364
+ get when() {
46365
+ return e.count > 1;
46366
+ },
46367
+ get children() {
46368
+ var t = Q2();
46369
+ return t.firstChild, P(t, () => e.count, null), t;
46370
+ }
46371
+ }), null), P(t, j(We, {
46372
+ get each() {
46373
+ return Object.entries(e.styles);
46374
+ },
46375
+ children: ([t, n]) => (() => {
46376
+ var r = t4(), i = r.firstChild;
46377
+ return P(r, t, i), P(r, n, null), P(r, j(M, {
46378
+ get when() {
46379
+ return e.tokens[t];
46380
+ },
46381
+ get children() {
46382
+ var n = e4(), r = n.firstChild.nextSibling;
46383
+ return r.nextSibling, P(n, () => e.tokens[t], r), n;
46384
+ }
46385
+ }), null), r;
46386
+ })()
46387
+ }), null), t;
46388
+ })()
46389
+ }), null), P(r, j(M, {
46390
+ get when() {
46391
+ return e.genome.states.length > 0;
46392
+ },
46393
+ get children() {
46394
+ return [G2(), j(We, {
46395
+ get each() {
46396
+ return e.genome.states;
46397
+ },
46398
+ children: (e) => (() => {
46399
+ var t = n4(), n = t.firstChild, r = n.firstChild;
46400
+ return P(n, () => e.label, r), P(n, () => e.trigger, null), P(t, j(We, {
46401
+ get each() {
46402
+ return Object.entries(e.changed);
46403
+ },
46404
+ children: ([e, t]) => (() => {
46405
+ var n = r4(), r = n.firstChild, i = r.nextSibling;
46406
+ return i.nextSibling, P(n, e, r), P(n, () => t.from, i), P(n, () => t.to, null), n;
46407
+ })()
46408
+ }), null), t;
46409
+ })()
46410
+ })];
46411
+ }
46412
+ }), null), P(a, j(M, {
46413
+ get when() {
46414
+ return $e(() => i() === e.id)() && f().active;
46415
+ },
46416
+ get fallback() {
46417
+ return j(kj, {
46418
+ class: "size-7 px-0",
46419
+ variant: "ghost",
46420
+ get loading() {
46421
+ return i() === e.id;
46422
+ },
46423
+ title: "Capture states — records hover/focus/open styles for 8s while you interact; the pill shows the timer and Stop",
46424
+ "aria-label": "Capture interaction states",
46425
+ onClick: () => void k(e),
46426
+ get children() {
46427
+ return i4();
46428
+ }
46429
+ });
46430
+ },
46431
+ get children() {
46432
+ return [j(kj, {
46433
+ class: "text-danger size-7 px-0",
46434
+ variant: "ghost",
46435
+ get title() {
46436
+ return `Stop recording — ${Math.ceil(f().msLeft / 1e3)}s left · ${f().total} captured`;
46437
+ },
46438
+ "aria-label": "Stop recording states",
46439
+ onClick: () => o2(),
46440
+ get children() {
46441
+ return K2();
46442
+ }
46443
+ }), (() => {
46444
+ var e = q2(), t = e.firstChild, n = t.nextSibling;
46445
+ return n.nextSibling, P(e, () => Math.ceil(f().msLeft / 1e3), t), P(e, () => f().total, n), e;
46446
+ })()];
46447
+ }
46448
+ }), null), P(a, j(kj, {
46449
+ class: "size-7 px-0",
46450
+ variant: "ghost",
46451
+ get title() {
46452
+ return u() === e.id ? "Copied!" : "Copy spec — markdown for an agent or issue";
46453
+ },
46454
+ "aria-label": "Copy genome spec",
46455
+ onClick: () => void ee(e),
46456
+ get children() {
46457
+ return j(M, {
46458
+ get when() {
46459
+ return u() === e.id;
46460
+ },
46461
+ get fallback() {
46462
+ return a4();
46463
+ },
46464
+ get children() {
46465
+ return J2();
46466
+ }
46467
+ });
46468
+ }
46469
+ }), null), P(a, j(kj, {
46470
+ class: "text-danger ml-auto size-7 px-0",
46471
+ variant: "ghost",
46472
+ title: "Delete this genome",
46473
+ "aria-label": "Delete genome",
46474
+ onClick: () => te(e.id),
46475
+ get children() {
46476
+ return Y2();
46477
+ }
46478
+ }), null), t;
46479
+ }
46480
+ }), null), D((e) => {
46481
+ var n = { "bg-accent border-accent": t() }, r = !!t();
46482
+ return e.e = lt(a, n, e.e), r !== e.t && m.classList.toggle("rotate-180", e.t = r), e;
46483
+ }, {
46484
+ e: void 0,
46485
+ t: void 0
46486
+ }), n;
46487
+ })();
46488
+ }
46489
+ }), null), t;
46490
+ })(), (() => {
46491
+ var e = R2();
46492
+ return P(e, j(kj, {
46493
+ class: "h-6 px-2 text-[11px]",
46494
+ variant: "ghost",
46495
+ title: "Copy every genome as one markdown document",
46496
+ onClick: () => void re(),
46497
+ get children() {
46498
+ var e = L2();
46499
+ return P(e, () => A() ? "Copied ✓" : "Copy all"), e;
46500
+ }
46501
+ }), null), P(e, j(kj, {
46502
+ class: "h-6 px-2 text-[11px]",
46503
+ variant: "ghost",
46504
+ onClick: ie,
46505
+ children: "Clear all"
46506
+ }), null), e;
46507
+ })()];
46427
46508
  }
46428
46509
  }), o), P(s, j(kj, {
46429
46510
  variant: "ghost",
@@ -46433,24 +46514,24 @@ function s4() {
46433
46514
  },
46434
46515
  onClick: () => void b(),
46435
46516
  get children() {
46436
- return N2();
46517
+ return z2();
46437
46518
  }
46438
46519
  }), null), P(o, j(M, {
46439
46520
  get when() {
46440
46521
  return m().length > 0;
46441
46522
  },
46442
46523
  get fallback() {
46443
- return $2();
46524
+ return o4();
46444
46525
  },
46445
46526
  get children() {
46446
46527
  return [(() => {
46447
- var e = P2();
46528
+ var e = B2();
46448
46529
  return P(e, j(We, {
46449
46530
  get each() {
46450
46531
  return m();
46451
46532
  },
46452
46533
  children: (e) => (() => {
46453
- var t = t4(), n = t.firstChild, r = n.firstChild, i = r.nextSibling, a = i.nextSibling, o = a.firstChild, s = n.nextSibling, c = s.nextSibling;
46534
+ var t = u4(), n = t.firstChild, r = n.firstChild, i = r.nextSibling, a = i.nextSibling, o = a.firstChild, s = n.nextSibling, c = s.nextSibling;
46454
46535
  return P(r, () => e.mode === "live" ? "live" : "audit"), P(i, () => e.component ?? e.element, null), P(i, j(M, {
46455
46536
  get when() {
46456
46537
  return e.count > 1;
@@ -46466,7 +46547,7 @@ function s4() {
46466
46547
  return e.source;
46467
46548
  },
46468
46549
  get children() {
46469
- var t = e4();
46550
+ var t = s4();
46470
46551
  return P(t, () => e.source), t;
46471
46552
  }
46472
46553
  }), s), P(s, () => e.properties.join(", "), null), P(s, j(M, {
@@ -46480,24 +46561,49 @@ function s4() {
46480
46561
  "ms after input"
46481
46562
  ];
46482
46563
  }
46483
- }), null), P(c, () => e.suggestion), t;
46564
+ }), null), P(t, j(M, {
46565
+ get when() {
46566
+ return e.jankProps?.length;
46567
+ },
46568
+ get children() {
46569
+ var t = c4();
46570
+ return t.firstChild, P(t, () => e.jankProps.join(", "), null), t;
46571
+ }
46572
+ }), c), P(t, j(M, {
46573
+ get when() {
46574
+ return e.easing;
46575
+ },
46576
+ get children() {
46577
+ var t = l4();
46578
+ return t.firstChild, P(t, () => e.easing, null), t;
46579
+ }
46580
+ }), c), P(c, () => e.suggestion), t;
46484
46581
  })()
46485
46582
  })), e;
46486
46583
  })(), (() => {
46487
- var e = I2();
46584
+ var e = U2();
46488
46585
  return P(e, j(kj, {
46586
+ class: "h-6 px-2 text-[11px]",
46587
+ variant: "primary",
46588
+ title: "Report + fix rules, ready to paste into a Claude Code session",
46589
+ onClick: () => void w(),
46590
+ get children() {
46591
+ var e = V2();
46592
+ return P(e, () => S() ? "Copied ✓" : "Copy AI prompt"), e;
46593
+ }
46594
+ }), null), P(e, j(kj, {
46489
46595
  class: "h-6 px-2 text-[11px]",
46490
46596
  variant: "ghost",
46491
46597
  onClick: () => void x(),
46492
46598
  get children() {
46493
- var e = F2();
46599
+ var e = H2();
46494
46600
  return P(e, () => v() ? "Copied ✓" : "Copy report"), e;
46495
46601
  }
46496
46602
  }), null), P(e, j(kj, {
46497
46603
  class: "h-6 px-2 text-[11px]",
46498
46604
  variant: "ghost",
46499
- onClick: T2,
46500
- children: "Clear audit"
46605
+ onClick: O2,
46606
+ children: "Clear all"
46501
46607
  }), null), e;
46502
46608
  })()];
46503
46609
  }
@@ -46507,7 +46613,7 @@ function s4() {
46507
46613
  rt(["click"]);
46508
46614
  //#endregion
46509
46615
  //#region src/lib/projectConfig.ts
46510
- var c4 = [
46616
+ var _4 = [
46511
46617
  "defaultTeamId",
46512
46618
  "defaultProjectId",
46513
46619
  "defaultLabelIds",
@@ -46522,29 +46628,29 @@ var c4 = [
46522
46628
  "issueTemplate",
46523
46629
  "testUsername"
46524
46630
  ];
46525
- function l4(e) {
46631
+ function v4(e) {
46526
46632
  let t = {};
46527
- for (let n of c4) {
46633
+ for (let n of _4) {
46528
46634
  let r = e[n];
46529
46635
  r !== void 0 && r !== "" && !(Array.isArray(r) && r.length === 0) && (t[n] = r);
46530
46636
  }
46531
46637
  return t;
46532
46638
  }
46533
- function u4(e, t) {
46639
+ function y4(e, t) {
46534
46640
  let n = {};
46535
- for (let r of c4) e[r] === void 0 && t[r] !== void 0 && (n[r] = t[r]);
46641
+ for (let r of _4) e[r] === void 0 && t[r] !== void 0 && (n[r] = t[r]);
46536
46642
  return Object.keys(n).length ? n : null;
46537
46643
  }
46538
46644
  //#endregion
46539
46645
  //#region src/lib/linear/auth.ts
46540
46646
  Br();
46541
- function d4(e) {
46647
+ function b4(e) {
46542
46648
  let t = "";
46543
46649
  for (let n of e) t += String.fromCharCode(n);
46544
46650
  return btoa(t).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
46545
46651
  }
46546
- async function f4(e) {
46547
- let t = d4(crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(32))), n = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(t)), r = d4(new Uint8Array(n)), i = d4(crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(16))), a = chrome.identity.getRedirectURL(), o = new URL("https://linear.app/oauth/authorize");
46652
+ async function x4(e) {
46653
+ let t = b4(crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(32))), n = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(t)), r = b4(new Uint8Array(n)), i = b4(crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(16))), a = chrome.identity.getRedirectURL(), o = new URL("https://linear.app/oauth/authorize");
46548
46654
  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");
46549
46655
  let s = await chrome.identity.launchWebAuthFlow({
46550
46656
  url: o.toString(),
@@ -46572,15 +46678,15 @@ async function f4(e) {
46572
46678
  linearOauthClientId: e
46573
46679
  });
46574
46680
  }
46575
- async function p4() {
46681
+ async function S4() {
46576
46682
  await Er({
46577
46683
  linearAccessToken: void 0,
46578
46684
  linearApiKey: void 0
46579
46685
  });
46580
46686
  }
46581
46687
  Br(), Sr(), Fx(), gD();
46582
- var m4 = /*#__PURE__*/ N("<div class=\"bg-surface-2 border-border flex rounded-md border p-0.5\">"), h4 = /*#__PURE__*/ N("<span class=\"text-text-faint text-[10.5px] leading-snug\">Cloud: picking an element opens the panel to draft &amp; delegate to the Cursor agent. Local (react-grab style): picking auto-copies the element's context — source, stack, and your skills/memory paths — straight to the clipboard for a local Claude Code or Cursor session; the panel stays out of the way. Both share the same picker; switch anytime."), g4 = /*#__PURE__*/ N("<label class=\"flex cursor-pointer items-center gap-2 select-none\"><input type=checkbox class=\"accent-accent rounded\"><span class=\"text-text text-[12px]\">Element screenshots"), _4 = /*#__PURE__*/ N("<span class=\"text-text-faint text-[10.5px] leading-snug\">Captures a highlighted screenshot of each picked element and attaches it to the issue. Costs a beat on huge pages — with this off, picking is instant (pure react-grab speed)."), v4 = /*#__PURE__*/ N("<span class=text-text>Connected as <span class=font-medium></span> · <span class=text-text-dim>"), y4 = /*#__PURE__*/ N("<div class=\"bg-surface border-border flex items-center justify-between rounded-lg border p-2.5\"><span class=\"text-text text-[12px]\">"), b4 = /*#__PURE__*/ N("<option value>Select a team…"), x4 = /*#__PURE__*/ N("<option value>No project"), S4 = /*#__PURE__*/ N("<div class=\"flex flex-wrap gap-1\">"), C4 = /*#__PURE__*/ N("<label class=\"flex items-start gap-2\"><input type=checkbox class=\"accent-accent mt-0.5\"><span class=\"flex flex-col gap-0.5\"><span class=text-[12px]>Let agents close out Linear themselves</span><span class=\"text-text-faint text-[10.5px] leading-snug\">Embeds your Linear API key + raw GraphQL closeout recipes in every issue's Agent instructions — cloud agent VMs have no authenticated Linear MCP, so without this they can't comment, attach media, or move the issue. The key is visible to anyone who can read the issue."), w4 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">No agents found — install the Cursor integration in Linear first."), T4 = /*#__PURE__*/ N("<span class=\"text-text-faint text-[10.5px] leading-snug\">Empty = the default above (computer-use testing, video demo, PR + review babysitting)."), E4 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1.5\">"), D4 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1\"><span class=\"text-text-dim text-[11px] font-medium\">Mode</span><div class=\"bg-surface-2 border-border flex rounded-md border p-0.5\"></div><span class=\"text-text-faint text-[10.5px] leading-snug\">Beside page squeezes the app next to the panel, DevTools-style — nothing gets covered. Also toggleable from the dock icon in the panel header."), O4 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1\"><span class=\"text-text-dim text-[11px] font-medium\">Dock side</span><div class=\"bg-surface-2 border-border flex rounded-md border p-0.5\"></div><span class=\"text-text-faint text-[10.5px] leading-snug\">The launcher pill is draggable — park it anywhere it doesn't cover your app."), k4 = /*#__PURE__*/ N("<p class=\"text-text-faint text-[10.5px] leading-snug\">A committed <code>.lineargrab.json</code> at the repo root (where the bridge runs) shares team/project/labels, skills, staging branch, and workflow defaults with every machine and teammate — it seeds any setting you haven't set locally. Secrets never belong in it."), A4 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[10ch] text-center\">"), j4 = /*#__PURE__*/ N("<div class=\"flex items-center gap-2\">"), M4 = /*#__PURE__*/ N("<option value>Select a channel…"), N4 = /*#__PURE__*/ N("<label class=\"flex cursor-pointer items-center gap-2 select-none\"><input type=checkbox class=\"accent-accent rounded\"><span class=\"text-text text-[12px]\">Announce new issues on create"), P4 = /*#__PURE__*/ N("<span class=\"text-text-faint text-[10.5px] leading-snug\">⚠️ Tokens are embedded in issue Agent-instructions so agents can post the finished demo — everyone who can read the issue can read them. Use single-channel-scoped bots."), F4 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1\"><span class=\"text-text-dim text-[11px] font-medium\">Provider preference</span><div class=\"bg-surface-2 border-border flex rounded-md border p-0.5\"><button>Auto</button><button>OpenAI</button><button>Anthropic"), I4 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">"), L4 = /*#__PURE__*/ N("<div class=min-h-[2lh]>"), R4 = /*#__PURE__*/ N("<ol class=\"text-text-faint flex list-decimal flex-col gap-1 pl-4 text-[11px] leading-relaxed\"><li>Pick an element on your running dev app.</li><li>Draft the issue (AI optional).</li><li>Create + delegate — Cursor's cloud agent fixes it and opens a PR.</li><li>Track and steer it from Activity."), z4 = /*#__PURE__*/ N("<div class=\"flex h-full flex-col gap-5 overflow-y-auto pt-3 pb-6 pl-3 pr-4\">"), B4 = /*#__PURE__*/ N("<button>"), V4 = /*#__PURE__*/ N("<div class=\"flex gap-1.5\">"), H4 = /*#__PURE__*/ N("<p class=\"text-text-faint text-center text-[10.5px]\">or"), U4 = /*#__PURE__*/ N("<span class=\"text-text-faint text-[10.5px] leading-snug\">Register this callback URL in your Linear OAuth app config:<br><span class=\"font-mono text-[10.5px] break-all\">"), W4 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-3\">"), G4 = /*#__PURE__*/ N("<span class=text-text-dim>Connected — verifying…"), K4 = /*#__PURE__*/ N("<option> (<!>)"), q4 = /*#__PURE__*/ N("<option>"), J4 = /*#__PURE__*/ N("<button type=button><span class=\"mr-1 inline-block size-2 rounded-full align-middle\">"), Y4 = /*#__PURE__*/ N("<option value>Select the agent…"), X4 = /*#__PURE__*/ N("<option>#"), Z4 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">No key set — AI drafting disabled, manual drafting still works.");
46583
- function Q4() {
46688
+ var C4 = /*#__PURE__*/ N("<div class=\"bg-surface-2 border-border flex rounded-md border p-0.5\">"), w4 = /*#__PURE__*/ N("<span class=\"text-text-faint text-[10.5px] leading-snug\">Cloud: picking an element opens the panel to draft &amp; delegate to the Cursor agent. Local (react-grab style): picking auto-copies the element's context — source, stack, and your skills/memory paths — straight to the clipboard for a local Claude Code or Cursor session; the panel stays out of the way. Both share the same picker; switch anytime."), T4 = /*#__PURE__*/ N("<label class=\"flex cursor-pointer items-center gap-2 select-none\"><input type=checkbox class=\"accent-accent rounded\"><span class=\"text-text text-[12px]\">Element screenshots"), E4 = /*#__PURE__*/ N("<span class=\"text-text-faint text-[10.5px] leading-snug\">Captures a highlighted screenshot of each picked element and attaches it to the issue. Costs a beat on huge pages — with this off, picking is instant (pure react-grab speed)."), D4 = /*#__PURE__*/ N("<span class=text-text>Connected as <span class=font-medium></span> · <span class=text-text-dim>"), O4 = /*#__PURE__*/ N("<div class=\"bg-surface border-border flex items-center justify-between rounded-lg border p-2.5\"><span class=\"text-text text-[12px]\">"), k4 = /*#__PURE__*/ N("<option value>Select a team…"), A4 = /*#__PURE__*/ N("<option value>No project"), j4 = /*#__PURE__*/ N("<div class=\"flex flex-wrap gap-1\">"), M4 = /*#__PURE__*/ N("<label class=\"flex items-start gap-2\"><input type=checkbox class=\"accent-accent mt-0.5\"><span class=\"flex flex-col gap-0.5\"><span class=text-[12px]>Let agents close out Linear themselves</span><span class=\"text-text-faint text-[10.5px] leading-snug\">Embeds your Linear API key + raw GraphQL closeout recipes in every issue's Agent instructions — cloud agent VMs have no authenticated Linear MCP, so without this they can't comment, attach media, or move the issue. The key is visible to anyone who can read the issue."), N4 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">No agents found — install the Cursor integration in Linear first."), P4 = /*#__PURE__*/ N("<span class=\"text-text-faint text-[10.5px] leading-snug\">Empty = the default above (computer-use testing, video demo, PR + review babysitting)."), F4 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1.5\">"), I4 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1\"><span class=\"text-text-dim text-[11px] font-medium\">Mode</span><div class=\"bg-surface-2 border-border flex rounded-md border p-0.5\"></div><span class=\"text-text-faint text-[10.5px] leading-snug\">Beside page squeezes the app next to the panel, DevTools-style — nothing gets covered. Also toggleable from the dock icon in the panel header."), L4 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1\"><span class=\"text-text-dim text-[11px] font-medium\">Dock side</span><div class=\"bg-surface-2 border-border flex rounded-md border p-0.5\"></div><span class=\"text-text-faint text-[10.5px] leading-snug\">The launcher pill is draggable — park it anywhere it doesn't cover your app."), R4 = /*#__PURE__*/ N("<p class=\"text-text-faint text-[10.5px] leading-snug\">A committed <code>.lineargrab.json</code> at the repo root (where the bridge runs) shares team/project/labels, skills, staging branch, and workflow defaults with every machine and teammate — it seeds any setting you haven't set locally. Secrets never belong in it."), z4 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[10ch] text-center\">"), B4 = /*#__PURE__*/ N("<div class=\"flex items-center gap-2\">"), V4 = /*#__PURE__*/ N("<option value>Select a channel…"), H4 = /*#__PURE__*/ N("<label class=\"flex cursor-pointer items-center gap-2 select-none\"><input type=checkbox class=\"accent-accent rounded\"><span class=\"text-text text-[12px]\">Announce new issues on create"), U4 = /*#__PURE__*/ N("<span class=\"text-text-faint text-[10.5px] leading-snug\">⚠️ Tokens are embedded in issue Agent-instructions so agents can post the finished demo — everyone who can read the issue can read them. Use single-channel-scoped bots."), W4 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1\"><span class=\"text-text-dim text-[11px] font-medium\">Provider preference</span><div class=\"bg-surface-2 border-border flex rounded-md border p-0.5\"><button>Auto</button><button>OpenAI</button><button>Anthropic"), G4 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">"), K4 = /*#__PURE__*/ N("<div class=min-h-[2lh]>"), q4 = /*#__PURE__*/ N("<ol class=\"text-text-faint flex list-decimal flex-col gap-1 pl-4 text-[11px] leading-relaxed\"><li>Pick an element on your running dev app.</li><li>Draft the issue (AI optional).</li><li>Create + delegate — Cursor's cloud agent fixes it and opens a PR.</li><li>Track and steer it from Activity."), J4 = /*#__PURE__*/ N("<div class=\"flex h-full flex-col gap-5 overflow-y-auto pt-3 pb-6 pl-3 pr-4\">"), Y4 = /*#__PURE__*/ N("<button>"), X4 = /*#__PURE__*/ N("<div class=\"flex gap-1.5\">"), Z4 = /*#__PURE__*/ N("<p class=\"text-text-faint text-center text-[10.5px]\">or"), Q4 = /*#__PURE__*/ N("<span class=\"text-text-faint text-[10.5px] leading-snug\">Register this callback URL in your Linear OAuth app config:<br><span class=\"font-mono text-[10.5px] break-all\">"), $4 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-3\">"), e3 = /*#__PURE__*/ N("<span class=text-text-dim>Connected — verifying…"), t3 = /*#__PURE__*/ N("<option> (<!>)"), n3 = /*#__PURE__*/ N("<option>"), r3 = /*#__PURE__*/ N("<button type=button><span class=\"mr-1 inline-block size-2 rounded-full align-middle\">"), i3 = /*#__PURE__*/ N("<option value>Select the agent…"), a3 = /*#__PURE__*/ N("<option>#"), o3 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">No key set — AI drafting disabled, manual drafting still works.");
46689
+ function s3() {
46584
46690
  let e = sr(), t = _r(() => ({
46585
46691
  queryKey: ["settings"],
46586
46692
  queryFn: Tr,
@@ -46608,13 +46714,13 @@ function Q4() {
46608
46714
  retry: 0
46609
46715
  })), [l, u] = T(!1), d = async () => {
46610
46716
  try {
46611
- await navigator.clipboard.writeText(JSON.stringify(l4(n()), null, 2) + "\n"), u(!0), setTimeout(() => u(!1), 1800);
46717
+ await navigator.clipboard.writeText(JSON.stringify(v4(n()), null, 2) + "\n"), u(!0), setTimeout(() => u(!1), 1800);
46612
46718
  } catch {}
46613
46719
  }, f = () => {
46614
46720
  let e = c.data?.projectConfig;
46615
46721
  if (!e) return;
46616
46722
  let t = {};
46617
- for (let n of c4) e[n] !== void 0 && (t[n] = e[n]);
46723
+ for (let n of _4) e[n] !== void 0 && (t[n] = e[n]);
46618
46724
  r(t);
46619
46725
  }, p = _r(() => ({
46620
46726
  queryKey: ["linear-labels"],
@@ -46647,7 +46753,7 @@ function Q4() {
46647
46753
  }
46648
46754
  E(!0), ee("");
46649
46755
  try {
46650
- await f4(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"] });
46756
+ await x4(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"] });
46651
46757
  } catch (e) {
46652
46758
  ee(e instanceof Error ? e.message : "OAuth flow failed.");
46653
46759
  } finally {
@@ -46658,7 +46764,7 @@ function Q4() {
46658
46764
  async function re() {
46659
46765
  ne(!0);
46660
46766
  try {
46661
- await p4(), 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"] });
46767
+ await S4(), 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"] });
46662
46768
  } finally {
46663
46769
  ne(!1);
46664
46770
  }
@@ -46674,12 +46780,12 @@ function Q4() {
46674
46780
  return e ? `Drafting with ${e} — ${Nx[e].fast} (fast) / ${Nx[e].best} (best)` : null;
46675
46781
  });
46676
46782
  return (() => {
46677
- var e = z4();
46783
+ var e = J4();
46678
46784
  return P(e, j(Rj, {
46679
46785
  title: "Workflow",
46680
46786
  get children() {
46681
46787
  return [(() => {
46682
- var e = m4();
46788
+ var e = C4();
46683
46789
  return P(e, j(We, {
46684
46790
  each: [{
46685
46791
  id: "cloud",
@@ -46689,19 +46795,19 @@ function Q4() {
46689
46795
  label: "Local · clipboard"
46690
46796
  }],
46691
46797
  children: (e) => (() => {
46692
- var t = B4();
46798
+ var t = Y4();
46693
46799
  return t.$$click = () => void r({ workflowMode: e.id }), P(t, () => e.label), D(() => st(t, `flex-1 rounded-[5px] px-2 py-1 text-[11.5px] font-medium transition-colors ${(n().workflowMode ?? "cloud") === e.id ? "bg-surface-3 text-text" : "text-text-dim hover:text-text cursor-pointer"}`)), t;
46694
46800
  })()
46695
46801
  })), e;
46696
- })(), h4()];
46802
+ })(), w4()];
46697
46803
  }
46698
46804
  }), null), P(e, j(Rj, {
46699
46805
  title: "Capture",
46700
46806
  get children() {
46701
46807
  return [(() => {
46702
- var e = g4(), t = e.firstChild;
46808
+ var e = T4(), t = e.firstChild;
46703
46809
  return t.addEventListener("change", (e) => void r({ captureShots: e.currentTarget.checked || void 0 })), D(() => t.checked = !!n().captureShots), e;
46704
- })(), _4()];
46810
+ })(), E4()];
46705
46811
  }
46706
46812
  }), null), P(e, j(Rj, {
46707
46813
  title: "Linear",
@@ -46712,13 +46818,13 @@ function Q4() {
46712
46818
  },
46713
46819
  get fallback() {
46714
46820
  return (() => {
46715
- var e = W4();
46821
+ var e = $4();
46716
46822
  return P(e, j(Lj, {
46717
46823
  label: "Personal API key",
46718
46824
  hint: "Create one at linear.app → Settings → API — fastest path.",
46719
46825
  get children() {
46720
46826
  return [(() => {
46721
- var e = V4();
46827
+ var e = X4();
46722
46828
  return P(e, j(jj, {
46723
46829
  type: "password",
46724
46830
  placeholder: "lin_api_…",
@@ -46755,12 +46861,12 @@ function Q4() {
46755
46861
  }), null), P(e, j(M, {
46756
46862
  when: xr,
46757
46863
  get children() {
46758
- return [H4(), j(Lj, {
46864
+ return [Z4(), j(Lj, {
46759
46865
  label: "OAuth client ID",
46760
46866
  get children() {
46761
46867
  return [
46762
46868
  (() => {
46763
- var e = V4();
46869
+ var e = X4();
46764
46870
  return P(e, j(jj, {
46765
46871
  placeholder: "your-client-id",
46766
46872
  get value() {
@@ -46788,7 +46894,7 @@ function Q4() {
46788
46894
  }
46789
46895
  }),
46790
46896
  (() => {
46791
- var e = U4(), t = e.firstChild.nextSibling.nextSibling;
46897
+ var e = Q4(), t = e.firstChild.nextSibling.nextSibling;
46792
46898
  return P(t, ie), e;
46793
46899
  })()
46794
46900
  ];
@@ -46799,13 +46905,13 @@ function Q4() {
46799
46905
  })();
46800
46906
  },
46801
46907
  get children() {
46802
- var e = y4(), t = e.firstChild;
46908
+ var e = O4(), t = e.firstChild;
46803
46909
  return P(t, j(M, {
46804
46910
  get when() {
46805
46911
  return !a.isLoading;
46806
46912
  },
46807
46913
  get fallback() {
46808
- return G4();
46914
+ return e3();
46809
46915
  },
46810
46916
  get children() {
46811
46917
  return j(M, {
@@ -46818,7 +46924,7 @@ function Q4() {
46818
46924
  return a.isError;
46819
46925
  },
46820
46926
  get fallback() {
46821
- return G4();
46927
+ return e3();
46822
46928
  },
46823
46929
  get children() {
46824
46930
  return j(Hj, { message: "Key rejected — reconnect" });
@@ -46826,7 +46932,7 @@ function Q4() {
46826
46932
  });
46827
46933
  },
46828
46934
  get children() {
46829
- var e = v4(), t = e.firstChild.nextSibling, n = t.nextSibling.nextSibling;
46935
+ var e = D4(), t = e.firstChild.nextSibling, n = t.nextSibling.nextSibling;
46830
46936
  return P(t, () => a.data.name), P(n, () => a.data.email), e;
46831
46937
  }
46832
46938
  });
@@ -46867,7 +46973,7 @@ function Q4() {
46867
46973
  return o.isLoading;
46868
46974
  },
46869
46975
  get children() {
46870
- return [b4(), j(M, {
46976
+ return [k4(), j(M, {
46871
46977
  get when() {
46872
46978
  return o.data;
46873
46979
  },
@@ -46877,7 +46983,7 @@ function Q4() {
46877
46983
  return o.data;
46878
46984
  },
46879
46985
  children: (e) => (() => {
46880
- var t = K4(), r = t.firstChild, i = r.nextSibling;
46986
+ var t = t3(), r = t.firstChild, i = r.nextSibling;
46881
46987
  return i.nextSibling, P(t, () => e.name, r), P(t, () => e.key, i), D(() => t.selected = e.id === n().defaultTeamId), D(() => t.value = e.id), t;
46882
46988
  })()
46883
46989
  });
@@ -46901,14 +47007,14 @@ function Q4() {
46901
47007
  },
46902
47008
  get children() {
46903
47009
  return [(() => {
46904
- var e = x4();
47010
+ var e = A4();
46905
47011
  return D(() => e.selected = !n().defaultProjectId), e;
46906
47012
  })(), j(We, {
46907
47013
  get each() {
46908
47014
  return s.data ?? [];
46909
47015
  },
46910
47016
  children: (e) => (() => {
46911
- var t = q4();
47017
+ var t = n3();
46912
47018
  return P(t, () => e.name), D(() => t.selected = e.id === n().defaultProjectId), D(() => t.value = e.id), t;
46913
47019
  })()
46914
47020
  })];
@@ -46920,7 +47026,7 @@ function Q4() {
46920
47026
  label: "Default labels",
46921
47027
  hint: "Applied to every issue created from the panel.",
46922
47028
  get children() {
46923
- var e = S4();
47029
+ var e = j4();
46924
47030
  return P(e, j(We, {
46925
47031
  get each() {
46926
47032
  return p.data ?? [];
@@ -46928,7 +47034,7 @@ function Q4() {
46928
47034
  children: (e) => {
46929
47035
  let t = () => (n().defaultLabelIds ?? []).includes(e.id);
46930
47036
  return (() => {
46931
- var i = J4(), a = i.firstChild;
47037
+ var i = r3(), a = i.firstChild;
46932
47038
  return i.$$click = () => {
46933
47039
  let i = n().defaultLabelIds ?? [];
46934
47040
  r({ defaultLabelIds: t() ? i.filter((t) => t !== e.id) : [...i, e.id] });
@@ -46945,7 +47051,7 @@ function Q4() {
46945
47051
  }
46946
47052
  }),
46947
47053
  (() => {
46948
- var e = C4(), t = e.firstChild;
47054
+ var e = M4(), t = e.firstChild;
46949
47055
  return t.addEventListener("change", (e) => void r({ shareLinearKey: e.currentTarget.checked })), D(() => t.checked = !!n().shareLinearKey), e;
46950
47056
  })(),
46951
47057
  j(Lj, {
@@ -46995,7 +47101,7 @@ function Q4() {
46995
47101
  return m.isLoading;
46996
47102
  },
46997
47103
  get children() {
46998
- return [Y4(), j(M, {
47104
+ return [i3(), j(M, {
46999
47105
  get when() {
47000
47106
  return m.data;
47001
47107
  },
@@ -47005,7 +47111,7 @@ function Q4() {
47005
47111
  return m.data;
47006
47112
  },
47007
47113
  children: (e) => (() => {
47008
- var t = q4();
47114
+ var t = n3();
47009
47115
  return P(t, () => e.displayName), D(() => t.selected = e.id === n().cursorAgentId), D(() => t.value = e.id), t;
47010
47116
  })()
47011
47117
  });
@@ -47015,7 +47121,7 @@ function Q4() {
47015
47121
  });
47016
47122
  },
47017
47123
  get children() {
47018
- return w4();
47124
+ return N4();
47019
47125
  }
47020
47126
  });
47021
47127
  }
@@ -47063,7 +47169,7 @@ function Q4() {
47063
47169
  onBlur: (e) => {
47064
47170
  r({ issueTemplate: e.currentTarget.value.trim() || void 0 });
47065
47171
  }
47066
- }), T4()];
47172
+ }), P4()];
47067
47173
  }
47068
47174
  }),
47069
47175
  j(Lj, {
@@ -47120,7 +47226,7 @@ function Q4() {
47120
47226
  label: "Test account",
47121
47227
  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.",
47122
47228
  get children() {
47123
- var e = E4();
47229
+ var e = F4();
47124
47230
  return P(e, j(jj, {
47125
47231
  placeholder: "Username or email (e.g. demo@yourapp.com)",
47126
47232
  get value() {
@@ -47152,7 +47258,7 @@ function Q4() {
47152
47258
  title: "Panel",
47153
47259
  get children() {
47154
47260
  return [(() => {
47155
- var e = D4(), t = e.firstChild.nextSibling;
47261
+ var e = I4(), t = e.firstChild.nextSibling;
47156
47262
  return P(t, j(We, {
47157
47263
  each: [{
47158
47264
  id: "overlay",
@@ -47162,7 +47268,7 @@ function Q4() {
47162
47268
  label: "Beside page"
47163
47269
  }],
47164
47270
  children: (e) => (() => {
47165
- var t = B4();
47271
+ var t = Y4();
47166
47272
  return t.$$click = () => void r({
47167
47273
  panelMode: e.id,
47168
47274
  panelPos: void 0
@@ -47170,11 +47276,11 @@ function Q4() {
47170
47276
  })()
47171
47277
  })), e;
47172
47278
  })(), (() => {
47173
- var e = O4(), t = e.firstChild.nextSibling;
47279
+ var e = L4(), t = e.firstChild.nextSibling;
47174
47280
  return P(t, j(We, {
47175
47281
  each: ["left", "right"],
47176
47282
  children: (e) => (() => {
47177
- var t = B4();
47283
+ var t = Y4();
47178
47284
  return t.$$click = () => void r({ panelSide: e }), P(t, e === "left" ? "Left" : "Right"), D(() => st(t, `flex-1 rounded-[5px] px-2 py-0.5 text-[11.5px] font-medium transition-colors ${(n().panelSide ?? "right") === e ? "bg-surface-3 text-text" : "text-text-dim hover:text-text cursor-pointer"}`)), t;
47179
47285
  })()
47180
47286
  })), e;
@@ -47204,8 +47310,8 @@ function Q4() {
47204
47310
  }), null), P(e, j(Rj, {
47205
47311
  title: "Project config (.lineargrab.json)",
47206
47312
  get children() {
47207
- return [k4(), (() => {
47208
- var e = j4();
47313
+ return [R4(), (() => {
47314
+ var e = B4();
47209
47315
  return P(e, j(M, {
47210
47316
  get when() {
47211
47317
  return c.data?.projectConfig;
@@ -47236,7 +47342,7 @@ function Q4() {
47236
47342
  },
47237
47343
  onClick: () => void d(),
47238
47344
  get children() {
47239
- var e = A4();
47345
+ var e = z4();
47240
47346
  return P(e, () => l() ? "Copied ✓" : "Copy config"), e;
47241
47347
  }
47242
47348
  }), null), e;
@@ -47327,12 +47433,12 @@ function Q4() {
47327
47433
  });
47328
47434
  },
47329
47435
  get children() {
47330
- return [M4(), j(We, {
47436
+ return [V4(), j(We, {
47331
47437
  get each() {
47332
47438
  return ae.data ?? [];
47333
47439
  },
47334
47440
  children: (e) => (() => {
47335
- var t = X4();
47441
+ var t = a3();
47336
47442
  return t.firstChild, P(t, () => e.name, null), D(() => t.selected = e.id === n().slackChannelId), D(() => t.value = e.id), t;
47337
47443
  })()
47338
47444
  })];
@@ -47383,10 +47489,10 @@ function Q4() {
47383
47489
  }
47384
47490
  }),
47385
47491
  (() => {
47386
- var e = N4(), t = e.firstChild;
47492
+ var e = H4(), t = e.firstChild;
47387
47493
  return t.addEventListener("change", (e) => void r({ notifyOnCreate: e.currentTarget.checked ? void 0 : !1 })), D(() => t.checked = n().notifyOnCreate !== !1), e;
47388
47494
  })(),
47389
- P4()
47495
+ U4()
47390
47496
  ];
47391
47497
  }
47392
47498
  }), null), P(e, j(Rj, {
@@ -47424,7 +47530,7 @@ function Q4() {
47424
47530
  }
47425
47531
  }),
47426
47532
  (() => {
47427
- var e = F4(), t = e.firstChild.nextSibling.firstChild, i = t.nextSibling, a = i.nextSibling;
47533
+ var e = W4(), t = e.firstChild.nextSibling.firstChild, i = t.nextSibling, a = i.nextSibling;
47428
47534
  return t.$$click = () => void r({ preferredProvider: void 0 }), i.$$click = () => void r({ preferredProvider: "openai" }), a.$$click = () => void r({ preferredProvider: "anthropic" }), D((e) => {
47429
47535
  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;
47430
47536
  return r !== e.e && st(t, e.e = r), o !== e.t && st(i, e.t = o), s !== e.a && (i.disabled = e.a = s), c !== e.o && st(a, e.o = c), l !== e.i && (a.disabled = e.i = l), e;
@@ -47437,16 +47543,16 @@ function Q4() {
47437
47543
  }), e;
47438
47544
  })(),
47439
47545
  (() => {
47440
- var e = L4();
47546
+ var e = K4();
47441
47547
  return P(e, j(M, {
47442
47548
  get when() {
47443
47549
  return se();
47444
47550
  },
47445
47551
  get fallback() {
47446
- return Z4();
47552
+ return o3();
47447
47553
  },
47448
47554
  get children() {
47449
- var e = I4();
47555
+ var e = G4();
47450
47556
  return P(e, se), e;
47451
47557
  }
47452
47558
  })), e;
@@ -47456,7 +47562,7 @@ function Q4() {
47456
47562
  }), null), P(e, j(Rj, {
47457
47563
  title: "How it works",
47458
47564
  get children() {
47459
- return R4();
47565
+ return q4();
47460
47566
  }
47461
47567
  }), null), e;
47462
47568
  })();
@@ -47464,38 +47570,38 @@ function Q4() {
47464
47570
  rt(["click"]);
47465
47571
  //#endregion
47466
47572
  //#region src/lib/idbCache.ts
47467
- var $4 = "linear-grab", e3 = "queries", t3 = [
47573
+ var c3 = "linear-grab", l3 = "queries", u3 = [
47468
47574
  "my-issues",
47469
47575
  "issue",
47470
47576
  "sessions",
47471
47577
  "teams",
47472
47578
  "agents"
47473
47579
  ];
47474
- function n3() {
47580
+ function d3() {
47475
47581
  return new Promise((e) => {
47476
47582
  try {
47477
- let t = indexedDB.open($4, 1);
47478
- t.onupgradeneeded = () => t.result.createObjectStore(e3), t.onsuccess = () => e(t.result), t.onerror = () => e(null);
47583
+ let t = indexedDB.open(c3, 1);
47584
+ t.onupgradeneeded = () => t.result.createObjectStore(l3), t.onsuccess = () => e(t.result), t.onerror = () => e(null);
47479
47585
  } catch {
47480
47586
  e(null);
47481
47587
  }
47482
47588
  });
47483
47589
  }
47484
- function r3(e) {
47485
- return typeof e[0] == "string" && t3.includes(e[0]);
47590
+ function f3(e) {
47591
+ return typeof e[0] == "string" && u3.includes(e[0]);
47486
47592
  }
47487
- async function i3(e) {
47488
- let t = await n3();
47593
+ async function p3(e) {
47594
+ let t = await d3();
47489
47595
  if (!t) return () => {};
47490
47596
  await new Promise((n) => {
47491
47597
  try {
47492
- let r = t.transaction(e3, "readonly").objectStore(e3).openCursor();
47598
+ let r = t.transaction(l3, "readonly").objectStore(l3).openCursor();
47493
47599
  r.onsuccess = () => {
47494
47600
  let t = r.result;
47495
47601
  if (!t) return n();
47496
47602
  try {
47497
47603
  let { queryKey: n, data: r } = t.value;
47498
- r3(n) && e.getQueryData(n) === void 0 && e.setQueryData(n, r, { updatedAt: 0 });
47604
+ f3(n) && e.getQueryData(n) === void 0 && e.setQueryData(n, r, { updatedAt: 0 });
47499
47605
  } catch {}
47500
47606
  t.continue();
47501
47607
  }, r.onerror = () => n();
@@ -47506,14 +47612,14 @@ async function i3(e) {
47506
47612
  let n = /* @__PURE__ */ new Map(), r = e.getQueryCache().subscribe((r) => {
47507
47613
  if (r.type !== "updated" || r.action.type !== "success") return;
47508
47614
  let { queryKey: i, queryHash: a } = r.query;
47509
- if (!r3(i)) return;
47615
+ if (!f3(i)) return;
47510
47616
  let o = n.get(a);
47511
47617
  o && clearTimeout(o), n.set(a, setTimeout(() => {
47512
47618
  n.delete(a);
47513
47619
  try {
47514
47620
  let n = e.getQueryData(i);
47515
47621
  if (n === void 0) return;
47516
- t.transaction(e3, "readwrite").objectStore(e3).put({
47622
+ t.transaction(l3, "readwrite").objectStore(l3).put({
47517
47623
  queryKey: i,
47518
47624
  data: n
47519
47625
  }, a);
@@ -47529,7 +47635,7 @@ async function i3(e) {
47529
47635
  //#endregion
47530
47636
  //#region src/panel/App.tsx
47531
47637
  Br();
47532
- var a3 = /*#__PURE__*/ N("<svg viewBox=\"0 0 100 100\"fill=currentColor aria-hidden><path d=\"M1.22541 61.5228c-.2225-.9485.90748-1.5459 1.59638-.857L39.3342 97.1782c.6889.6889.0915 1.8189-.857 1.5964C20.0515 94.4522 5.54779 79.9485 1.22541 61.5228ZM.00189135 46.8891c-.01764375.2833.08887215.5599.28957165.7606L52.3503 99.7085c.2007.2007.4773.3075.7606.2896 2.3692-.1476 4.6938-.46 6.9624-.9259.7645-.157 1.0301-1.0963.4782-1.6481L2.57595 39.4485c-.55186-.5519-1.49117-.2863-1.648174.4782-.465915 2.2686-.77832 4.5932-.92588465 6.9624ZM4.21093 29.7054c-.16649.3738-.08169.8106.20765 1.1l64.77602 64.776c.2894.2894.7262.3742 1.1.2077 1.7861-.7956 3.5171-1.6927 5.1855-2.684.5521-.328.6373-1.0867.1832-1.5407L8.43566 24.3367c-.45409-.4541-1.21271-.3689-1.54074.1832-.99132 1.6684-1.88843 3.3994-2.68399 5.1855ZM12.6587 18.074c-.3701-.3701-.393-.9637-.0443-1.3541C21.7795 6.45931 35.1114 0 49.9519 0 77.5927 0 100 22.4073 100 50.0481c0 14.8405-6.4593 28.1724-16.7199 37.3375-.3903.3487-.984.3258-1.3541-.0443L12.6587 18.074Z\">"), o3 = /*#__PURE__*/ N("<button><svg width=12 height=12 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 aria-hidden><rect x=1.5 y=2.5 width=13 height=11 rx=1.5></rect><path d=\"M10 2.5v11\">"), s3 = /*#__PURE__*/ N("<button aria-label=\"Minimize to launcher\"title=\"Minimize to launcher\"class=\"text-text-dim hover:text-text hover:bg-surface-3 grid size-6 shrink-0 cursor-pointer place-items-center rounded-md text-[15px] leading-none transition-colors\">–"), c3 = /*#__PURE__*/ N("<div class=\"bg-bg text-text flex h-full flex-col\"><header><span class=\"text-accent mr-0.5 inline-flex shrink-0\"title=\"Linear Grab\"></span><div class=\"no-scrollbar flex min-w-0 flex-1 items-center gap-1 overflow-x-auto\"></div></header><main class=\"min-h-0 flex-1\"><div class=h-full></div><div class=h-full></div><div class=h-full></div><div class=h-full></div><div class=h-full></div><div class=h-full></div><div class=h-full></div><div class=h-full></div><div class=h-full>"), l3 = /*#__PURE__*/ N("<button>"), u3 = [
47638
+ var m3 = /*#__PURE__*/ N("<svg viewBox=\"0 0 100 100\"fill=currentColor aria-hidden><path d=\"M1.22541 61.5228c-.2225-.9485.90748-1.5459 1.59638-.857L39.3342 97.1782c.6889.6889.0915 1.8189-.857 1.5964C20.0515 94.4522 5.54779 79.9485 1.22541 61.5228ZM.00189135 46.8891c-.01764375.2833.08887215.5599.28957165.7606L52.3503 99.7085c.2007.2007.4773.3075.7606.2896 2.3692-.1476 4.6938-.46 6.9624-.9259.7645-.157 1.0301-1.0963.4782-1.6481L2.57595 39.4485c-.55186-.5519-1.49117-.2863-1.648174.4782-.465915 2.2686-.77832 4.5932-.92588465 6.9624ZM4.21093 29.7054c-.16649.3738-.08169.8106.20765 1.1l64.77602 64.776c.2894.2894.7262.3742 1.1.2077 1.7861-.7956 3.5171-1.6927 5.1855-2.684.5521-.328.6373-1.0867.1832-1.5407L8.43566 24.3367c-.45409-.4541-1.21271-.3689-1.54074.1832-.99132 1.6684-1.88843 3.3994-2.68399 5.1855ZM12.6587 18.074c-.3701-.3701-.393-.9637-.0443-1.3541C21.7795 6.45931 35.1114 0 49.9519 0 77.5927 0 100 22.4073 100 50.0481c0 14.8405-6.4593 28.1724-16.7199 37.3375-.3903.3487-.984.3258-1.3541-.0443L12.6587 18.074Z\">"), h3 = /*#__PURE__*/ N("<button><svg width=12 height=12 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 aria-hidden><rect x=1.5 y=2.5 width=13 height=11 rx=1.5></rect><path d=\"M10 2.5v11\">"), g3 = /*#__PURE__*/ N("<button aria-label=\"Minimize to launcher\"title=\"Minimize to launcher\"class=\"text-text-dim hover:text-text hover:bg-surface-3 grid size-6 shrink-0 cursor-pointer place-items-center rounded-md text-[15px] leading-none transition-colors\">–"), _3 = /*#__PURE__*/ N("<div class=\"bg-bg text-text flex h-full flex-col\"><header><span class=\"text-accent mr-0.5 inline-flex shrink-0\"title=\"Linear Grab\"></span><div class=\"no-scrollbar flex min-w-0 flex-1 items-center gap-1 overflow-x-auto\"></div></header><main class=\"min-h-0 flex-1\"><div class=h-full></div><div class=h-full></div><div class=h-full></div><div class=h-full></div><div class=h-full></div><div class=h-full></div><div class=h-full></div><div class=h-full></div><div class=h-full>"), v3 = /*#__PURE__*/ N("<button>"), y3 = [
47533
47639
  {
47534
47640
  id: "draft",
47535
47641
  label: "Draft"
@@ -47566,35 +47672,35 @@ var a3 = /*#__PURE__*/ N("<svg viewBox=\"0 0 100 100\"fill=currentColor aria-hid
47566
47672
  id: "settings",
47567
47673
  label: "Settings"
47568
47674
  }
47569
- ], d3 = /* @__PURE__ */ new Set();
47570
- function f3(e, t, n) {
47571
- if (d3.has(e) || typeof Notification > "u") return;
47572
- d3.add(e);
47675
+ ], b3 = /* @__PURE__ */ new Set();
47676
+ function x3(e, t, n) {
47677
+ if (b3.has(e) || typeof Notification > "u") return;
47678
+ b3.add(e);
47573
47679
  let r = () => new Notification(t, { body: n });
47574
47680
  Notification.permission === "granted" ? r() : Notification.permission === "default" && Notification.requestPermission().then((e) => e === "granted" && r());
47575
47681
  }
47576
- function p3() {
47682
+ function S3() {
47577
47683
  setInterval(() => {
47578
47684
  NO().then((e) => {
47579
47685
  for (let t of e) {
47580
47686
  if (t.status !== "running") continue;
47581
47687
  let e = t.lastEventAt ?? t.startedAt;
47582
- Date.now() - e > 10 * 6e4 && f3(`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.`);
47688
+ Date.now() - e > 10 * 6e4 && x3(`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.`);
47583
47689
  }
47584
47690
  }).catch(() => {}), gO().then((e) => {
47585
- for (let t of e) /awaitingInput|elicit/i.test(t.status) && f3(`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.`);
47691
+ for (let t of e) /awaitingInput|elicit/i.test(t.status) && x3(`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.`);
47586
47692
  }).catch(() => {});
47587
47693
  }, 6e4);
47588
47694
  }
47589
- p3();
47590
- var m3 = new gr({ defaultOptions: { queries: {
47695
+ S3();
47696
+ var C3 = new gr({ defaultOptions: { queries: {
47591
47697
  retry: 1,
47592
47698
  refetchOnWindowFocus: !1,
47593
47699
  staleTime: 5e3
47594
47700
  } } });
47595
- function h3(e) {
47701
+ function w3(e) {
47596
47702
  return (() => {
47597
- var t = a3();
47703
+ var t = m3();
47598
47704
  return D((n) => {
47599
47705
  var r = e.size ?? 14, i = e.size ?? 14;
47600
47706
  return r !== n.e && it(t, "width", n.e = r), i !== n.t && it(t, "height", n.t = i), n;
@@ -47604,36 +47710,36 @@ function h3(e) {
47604
47710
  }), t;
47605
47711
  })();
47606
47712
  }
47607
- function g3(e) {
47713
+ function T3(e) {
47608
47714
  let [t, n] = T("draft"), r = () => {
47609
- m3.invalidateQueries({ queryKey: ["grab"] }), cj() === "capture" && n("capture"), e.onGrab?.();
47715
+ C3.invalidateQueries({ queryKey: ["grab"] }), cj() === "capture" && n("capture"), e.onGrab?.();
47610
47716
  };
47611
47717
  return O(() => {
47612
47718
  let e = nj();
47613
47719
  e && n(e);
47614
47720
  }), ie(() => {
47615
- let e = i3(m3), t = XZ(r), n = () => {
47721
+ let e = p3(C3), t = XZ(r), n = () => {
47616
47722
  JO().then(y$), VO(), MO().then(async (e) => {
47617
47723
  if (!e.projectConfig) return;
47618
- let t = u4(await Tr(), e.projectConfig);
47724
+ let t = y4(await Tr(), e.projectConfig);
47619
47725
  t && await Er(t);
47620
47726
  }).catch(() => {});
47621
47727
  };
47622
47728
  n();
47623
47729
  let i = Mr((e) => {
47624
- e === "settings" && (m3.invalidateQueries({ queryKey: ["settings"] }), n()), e === "grab" && r();
47730
+ e === "settings" && (C3.invalidateQueries({ queryKey: ["settings"] }), n()), e === "grab" && r();
47625
47731
  });
47626
47732
  ae(() => {
47627
47733
  t(), i(), e.then((e) => e());
47628
47734
  });
47629
47735
  }), j(cr, {
47630
- client: m3,
47736
+ client: C3,
47631
47737
  get children() {
47632
- var r = c3(), i = r.firstChild, a = i.firstChild, o = a.nextSibling, s = i.nextSibling.firstChild, c = s.nextSibling, l = c.nextSibling, u = l.nextSibling, d = u.nextSibling, f = d.nextSibling, p = f.nextSibling, m = p.nextSibling, h = m.nextSibling;
47633
- return i.$$pointerdown = (t) => e.onHeaderPointerDown?.(t), P(a, j(h3, { size: 14 })), P(o, j(We, {
47634
- each: u3,
47738
+ var r = _3(), 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;
47739
+ return i.$$pointerdown = (t) => e.onHeaderPointerDown?.(t), P(a, j(w3, { size: 14 })), P(o, j(We, {
47740
+ each: y3,
47635
47741
  children: (e) => (() => {
47636
- var r = l3();
47742
+ var r = v3();
47637
47743
  return r.$$click = () => n(e.id), P(r, () => e.label), D(() => st(r, `h-6 shrink-0 rounded-md px-2 text-[12px] font-medium whitespace-nowrap transition-colors ${t() === e.id ? "bg-surface-3 text-text" : "text-text-dim hover:text-text cursor-pointer"}`)), r;
47638
47744
  })()
47639
47745
  })), P(i, j(M, {
@@ -47641,7 +47747,7 @@ function g3(e) {
47641
47747
  return e.onTogglePin;
47642
47748
  },
47643
47749
  get children() {
47644
- var t = o3();
47750
+ var t = h3();
47645
47751
  return t.$$click = () => e.onTogglePin?.(), D((n) => {
47646
47752
  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"}`;
47647
47753
  return r !== n.e && it(t, "aria-label", n.e = r), i !== n.t && it(t, "title", n.t = i), a !== n.a && st(t, n.a = a), n;
@@ -47656,10 +47762,10 @@ function g3(e) {
47656
47762
  return e.onClose;
47657
47763
  },
47658
47764
  get children() {
47659
- var t = s3();
47765
+ var t = g3();
47660
47766
  return t.$$click = () => e.onClose?.(), t;
47661
47767
  }
47662
- }), null), P(s, j(wM, { onCreated: () => n("activity") })), P(c, j(TQ, {})), P(l, j(_1, {})), P(u, j(B1, {})), P(d, j(P1, {})), P(f, j(T0, {})), P(p, j(B0, { onOpenIssue: () => n("activity") })), P(m, j(s4, {})), P(h, j(Q4, {})), D((n) => {
47768
+ }), null), P(s, j(wM, { onCreated: () => n("activity") })), P(c, j(TQ, {})), P(l, j(_1, {})), P(u, j(B1, {})), P(d, j(P1, {})), P(f, j(T0, {})), P(p, j(B0, { onOpenIssue: () => n("activity") })), P(m, j(g4, {})), P(h, j(s3, {})), D((n) => {
47663
47769
  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";
47664
47770
  return r !== n.e && st(i, n.e = r), a !== n.t && s.classList.toggle("hidden", n.t = a), o !== n.a && c.classList.toggle("hidden", n.a = o), g !== n.o && l.classList.toggle("hidden", n.o = g), _ !== n.i && u.classList.toggle("hidden", n.i = _), v !== n.n && d.classList.toggle("hidden", n.n = v), y !== n.s && f.classList.toggle("hidden", n.s = y), b !== n.h && p.classList.toggle("hidden", n.h = b), x !== n.r && m.classList.toggle("hidden", n.r = x), S !== n.d && h.classList.toggle("hidden", n.d = S), n;
47665
47771
  }, {
@@ -47680,16 +47786,16 @@ function g3(e) {
47680
47786
  rt(["pointerdown", "click"]);
47681
47787
  //#endregion
47682
47788
  //#region src/styles/app.css?inline
47683
- var _3 = "/*! 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-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-bg:#0b0c0e;--color-surface:#141517;--color-surface-2:#1c1d21;--color-surface-3:#24262b;--color-border:#26282d;--color-border-strong:#34363d;--color-text:#e8e9eb;--color-text-dim:#8b8e98;--color-text-faint:#5c5f6a;--color-accent:#5e6ad2;--color-accent-hover:#6e79e0;--color-accent-soft:#5e6ad226;--color-success:#4cb782;--color-warn:#f2c94c;--color-danger:#eb5757;--color-danger-soft:#eb575726}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.visible\\!{visibility:visible!important}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-y-0{inset-block:0}.top-0{top:0}.top-0\\.5{top:calc(var(--spacing) * .5)}.top-1{top:var(--spacing)}.top-1\\/2{top:50%}.top-3{top:calc(var(--spacing) * 3)}.top-\\[2px\\]{top:2px}.top-full{top:100%}.right-0{right:0}.right-0\\.5{right:calc(var(--spacing) * .5)}.right-4{right:calc(var(--spacing) * 4)}.right-full{right:100%}.bottom-0{bottom:0}.bottom-1{bottom:var(--spacing)}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-\\[2px\\]{bottom:2px}.bottom-full{bottom:100%}.-left-\\[13\\.5px\\]{left:-13.5px}.left-0{left:0}.left-1{left:var(--spacing)}.left-1\\/2{left:50%}.left-\\[5px\\]{left:5px}.left-full{left:100%}.z-1{z-index:1}.z-10{z-index:10}.z-\\[2147483645\\]{z-index:2147483645}.z-\\[2147483646\\]{z-index:2147483646}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.container\\!{width:100%!important}@media (width>=40rem){.container\\!{max-width:40rem!important}}@media (width>=48rem){.container\\!{max-width:48rem!important}}@media (width>=64rem){.container\\!{max-width:64rem!important}}@media (width>=80rem){.container\\!{max-width:80rem!important}}@media (width>=96rem){.container\\!{max-width:96rem!important}}.-m-0{margin:0}.-m-0\\.5{margin:calc(var(--spacing) * -.5)}.-m-4{margin:calc(var(--spacing) * -4)}.m-0{margin:0}.-mx-2{margin-inline:calc(var(--spacing) * -2)}.-my-1{margin-block:calc(var(--spacing) * -1)}.-my-1\\.5{margin-block:calc(var(--spacing) * -1.5)}.mt-0{margin-top:0}.mt-0\\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-px{margin-top:1px}.mr-0{margin-right:0}.mr-0\\.5{margin-right:calc(var(--spacing) * .5)}.mr-1{margin-right:var(--spacing)}.mr-1\\.5{margin-right:calc(var(--spacing) * 1.5)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-2\\.5{margin-right:calc(var(--spacing) * 2.5)}.-mb-4{margin-bottom:calc(var(--spacing) * -4)}.mb-0{margin-bottom:0}.mb-0\\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:var(--spacing)}.mb-1\\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-2\\.5{margin-bottom:calc(var(--spacing) * 2.5)}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-2\\.5{margin-left:calc(var(--spacing) * 2.5)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-auto{margin-left:auto}.ml-px{margin-left:1px}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-5{-webkit-line-clamp:5;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.list-item{display:list-item}.table{display:table}.size-0{width:0;height:0}.size-1{width:var(--spacing);height:var(--spacing)}.size-1\\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-\\[9px\\]{width:9px;height:9px}.size-\\[12px\\]{width:12px;height:12px}.size-\\[16px\\]{width:16px;height:16px}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-16{height:calc(var(--spacing) * 16)}.h-\\[8px\\]{height:8px}.h-\\[17px\\]{height:17px}.h-\\[18px\\]{height:18px}.h-\\[20px\\]{height:20px}.h-\\[24px\\]{height:24px}.h-fit{height:fit-content}.h-full{height:100%}.h-screen{height:100vh}.max-h-32{max-height:calc(var(--spacing) * 32)}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-44{max-height:calc(var(--spacing) * 44)}.max-h-56{max-height:calc(var(--spacing) * 56)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-\\[var\\(--rg-edit-list-max-h\\)\\]{max-height:var(--rg-edit-list-max-h)}.min-h-0{min-height:0}.min-h-4{min-height:calc(var(--spacing) * 4)}.min-h-\\[2lh\\]{min-height:2lh}.min-h-\\[28px\\]{min-height:28px}.w-1{width:var(--spacing)}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-16{width:calc(var(--spacing) * 16)}.w-28{width:calc(var(--spacing) * 28)}.w-72{width:calc(var(--spacing) * 72)}.w-\\[2px\\]{width:2px}.w-\\[calc\\(100\\%\\+16px\\)\\]{width:calc(100% + 16px)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-\\[55\\%\\]{max-width:55%}.max-w-\\[100vw\\]{max-width:100vw}.max-w-\\[110px\\]{max-width:110px}.max-w-\\[280px\\]{max-width:280px}.max-w-full{max-width:100%}.min-w-0{min-width:0}.min-w-\\[3\\.5ch\\]{min-width:3.5ch}.min-w-\\[3ch\\]{min-width:3ch}.min-w-\\[4ch\\]{min-width:4ch}.min-w-\\[5ch\\]{min-width:5ch}.min-w-\\[6ch\\]{min-width:6ch}.min-w-\\[7ch\\]{min-width:7ch}.min-w-\\[8ch\\]{min-width:8ch}.min-w-\\[10ch\\]{min-width:10ch}.min-w-\\[12ch\\]{min-width:12ch}.min-w-\\[36px\\]{min-width:36px}.min-w-\\[52px\\]{min-width:52px}.min-w-\\[100px\\]{min-width:100px}.min-w-\\[150px\\]{min-width:150px}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-rotate-90{rotate:-90deg}.rotate-0{rotate:0deg}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.list-decimal{list-style-type:decimal}.grid-cols-\\[0fr\\]{grid-template-columns:0fr}.grid-cols-\\[1fr\\]{grid-template-columns:1fr}.grid-rows-\\[0fr\\]{grid-template-rows:0fr}.grid-rows-\\[1fr\\]{grid-template-rows:1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:0}.gap-0\\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-\\[5px\\]{gap:5px}.self-end{align-self:flex-end}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-clip{overflow:clip}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\\[1px\\]{border-radius:1px}.rounded-\\[3px\\]{border-radius:3px}.rounded-\\[4px\\]{border-radius:4px}.rounded-\\[5px\\]{border-radius:5px}.rounded-\\[6px\\]{border-radius:6px}.rounded-\\[13px\\]{border-radius:13px}.rounded-\\[14px\\]{border-radius:14px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-t-\\[10px\\]{border-top-left-radius:10px;border-top-right-radius:10px}.rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.rounded-l{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-l-\\[10px\\]{border-top-left-radius:10px;border-bottom-left-radius:10px}.rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.rounded-tl{border-top-left-radius:.25rem}.rounded-r{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-r-\\[10px\\]{border-top-right-radius:10px;border-bottom-right-radius:10px}.rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-tr{border-top-right-radius:.25rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-b-\\[6px\\]{border-bottom-right-radius:6px;border-bottom-left-radius:6px}.rounded-b-\\[10px\\]{border-bottom-right-radius:10px;border-bottom-left-radius:10px}.rounded-b-none{border-bottom-right-radius:0;border-bottom-left-radius:0}.rounded-br{border-bottom-right-radius:.25rem}.rounded-bl{border-bottom-left-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.\\[border-width\\:0\\.5px\\]{border-width:.5px}.border-x{border-inline-style:var(--tw-border-style);border-inline-width:1px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-s{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}.border-e{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-4{border-top-style:var(--tw-border-style);border-top-width:4px}.\\[border-top-width\\:0\\.5px\\]{border-top-width:.5px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-dotted{--tw-border-style:dotted;border-style:dotted}.border-none{--tw-border-style:none;border-style:none}.border-solid{--tw-border-style:solid;border-style:solid}.border-\\[var\\(--rg-border-button\\)\\]{border-color:var(--rg-border-button)}.border-accent{border-color:var(--color-accent)}.border-accent\\/40{border-color:#5e6ad266}@supports (color:color-mix(in lab, red, red)){.border-accent\\/40{border-color:color-mix(in oklab, var(--color-accent) 40%, transparent)}}.border-border{border-color:var(--color-border)}.border-success{border-color:var(--color-success)}.border-success\\/40{border-color:#4cb78266}@supports (color:color-mix(in lab, red, red)){.border-success\\/40{border-color:color-mix(in oklab, var(--color-success) 40%, transparent)}}.border-text-dim{border-color:var(--color-text-dim)}.border-transparent{border-color:#0000}.border-warn{border-color:var(--color-warn)}.border-warn\\/40{border-color:#f2c94c66}@supports (color:color-mix(in lab, red, red)){.border-warn\\/40{border-color:color-mix(in oklab, var(--color-warn) 40%, transparent)}}.border-t-\\[var\\(--rg-border-subtle\\)\\]{border-top-color:var(--rg-border-subtle)}.border-t-transparent{border-top-color:#0000}.bg-\\[var\\(--rg-error-bg\\)\\]{background-color:var(--rg-error-bg)}.bg-\\[var\\(--rg-panel-bg\\)\\]{background-color:var(--rg-panel-bg)}.bg-\\[var\\(--rg-submit-bg\\)\\]{background-color:var(--rg-submit-bg)}.bg-\\[var\\(--rg-surface-active\\)\\]{background-color:var(--rg-surface-active)}.bg-\\[var\\(--rg-surface-hover\\)\\]{background-color:var(--rg-surface-hover)}.bg-\\[var\\(--rg-text-primary\\)\\]{background-color:var(--rg-text-primary)}.bg-\\[var\\(--rg-text-secondary\\)\\]{background-color:var(--rg-text-secondary)}.bg-accent{background-color:var(--color-accent)}.bg-accent-soft{background-color:var(--color-accent-soft)}.bg-bg{background-color:var(--color-bg)}.bg-bg\\/80{background-color:#0b0c0ecc}@supports (color:color-mix(in lab, red, red)){.bg-bg\\/80{background-color:color-mix(in oklab, var(--color-bg) 80%, transparent)}}.bg-border{background-color:var(--color-border)}.bg-current{background-color:currentColor}.bg-danger{background-color:var(--color-danger)}.bg-danger-soft{background-color:var(--color-danger-soft)}.bg-red-500{background-color:var(--color-red-500)}.bg-success{background-color:var(--color-success)}.bg-surface{background-color:var(--color-surface)}.bg-surface-2{background-color:var(--color-surface-2)}.bg-surface-3{background-color:var(--color-surface-3)}.bg-text-faint{background-color:var(--color-text-faint)}.bg-transparent{background-color:#0000}.bg-warn{background-color:var(--color-warn)}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:0}.p-0\\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\\.5{padding:calc(var(--spacing) * 2.5)}.p-6{padding:calc(var(--spacing) * 6)}.px-0{padding-inline:0}.px-0\\.25{padding-inline:calc(var(--spacing) * .25)}.px-1{padding-inline:var(--spacing)}.px-1\\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-\\[3px\\]{padding-inline:3px}.py-0{padding-block:0}.py-0\\.5{padding-block:calc(var(--spacing) * .5)}.py-0\\.25{padding-block:calc(var(--spacing) * .25)}.py-1{padding-block:var(--spacing)}.py-1\\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-px{padding-block:1px}.pt-0{padding-top:0}.pt-0\\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:var(--spacing)}.pt-1\\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pr-1{padding-right:var(--spacing)}.pr-1\\.5{padding-right:calc(var(--spacing) * 1.5)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pb-1{padding-bottom:var(--spacing)}.pb-1\\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pl-0{padding-left:0}.pl-0\\.5{padding-left:calc(var(--spacing) * .5)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-2\\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.text-center{text-align:center}.text-end{text-align:end}.text-justify{text-align:justify}.text-left{text-align:left}.text-right{text-align:right}.text-start{text-align:start}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.font-serif{font-family:var(--font-serif)}.text-\\[9\\.5px\\]{font-size:9.5px}.text-\\[9px\\]{font-size:9px}.text-\\[10\\.5px\\]{font-size:10.5px}.text-\\[10px\\]{font-size:10px}.text-\\[11\\.5px\\]{font-size:11.5px}.text-\\[11px\\]{font-size:11px}.text-\\[12\\.5px\\]{font-size:12.5px}.text-\\[12px\\]{font-size:12px}.text-\\[13px\\]{font-size:13px}.text-\\[15px\\]{font-size:15px}.leading-3{--tw-leading:calc(var(--spacing) * 3);line-height:calc(var(--spacing) * 3)}.leading-3\\.5{--tw-leading:calc(var(--spacing) * 3.5);line-height:calc(var(--spacing) * 3.5)}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-extralight{--tw-font-weight:var(--font-weight-extralight);font-weight:var(--font-weight-extralight)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.font-thin{--tw-font-weight:var(--font-weight-thin);font-weight:var(--font-weight-thin)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-normal{overflow-wrap:normal;word-break:normal}.break-words,.wrap-break-word{overflow-wrap:break-word}.break-all{word-break:break-all}.break-keep{word-break:keep-all}.text-ellipsis{text-overflow:ellipsis}.whitespace-break-spaces{white-space:break-spaces}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.text-\\[var\\(--rg-error-text\\)\\]{color:var(--rg-error-text)}.text-\\[var\\(--rg-submit-fg\\)\\]{color:var(--rg-submit-fg)}.text-\\[var\\(--rg-text-primary\\)\\]{color:var(--rg-text-primary)}.text-\\[var\\(--rg-text-primary-85\\)\\]{color:var(--rg-text-primary-85)}.text-\\[var\\(--rg-text-secondary\\)\\]{color:var(--rg-text-secondary)}.text-accent{color:var(--color-accent)}.text-danger{color:var(--color-danger)}.text-success{color:var(--color-success)}.text-text{color:var(--color-text)}.text-text-dim{color:var(--color-text-dim)}.text-text-faint{color:var(--color-text-faint)}.text-warn{color:var(--color-warn)}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.not-italic{font-style:normal}.lining-nums{--tw-numeric-figure:lining-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.oldstyle-nums{--tw-numeric-figure:oldstyle-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.proportional-nums{--tw-numeric-spacing:proportional-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.slashed-zero{--tw-slashed-zero:slashed-zero;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.accent-accent{accent-color:var(--color-accent)}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.\\[box-shadow\\:var\\(--rg-shadow\\)\\]{box-shadow:var(--rg-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.\\[filter\\:var\\(--rg-drop-shadow\\)\\]{filter:var(--rg-drop-shadow)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[grid-template-columns\\]{transition-property:grid-template-columns;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[grid-template-rows\\]{transition-property:grid-template-rows;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[opacity\\,transform\\]{transition-property:opacity,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[padding\\,border-radius\\,transform\\]{transition-property:padding,border-radius,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[top\\,left\\,width\\,height\\,opacity\\,border-radius\\]{transition-property:top,left,width,height,opacity,border-radius;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[transform\\,color\\]{transition-property:transform,color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[transform\\,opacity\\]{transition-property:transform,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.delay-\\[80ms\\]{transition-delay:80ms}.duration-60{--tw-duration:60ms;transition-duration:60ms}.duration-75{--tw-duration:75ms;transition-duration:75ms}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-120{--tw-duration:.12s;transition-duration:.12s}.duration-140{--tw-duration:.14s;transition-duration:.14s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-180{--tw-duration:.18s;transition-duration:.18s}.duration-220{--tw-duration:.22s;transition-duration:.22s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-400{--tw-duration:.4s;transition-duration:.4s}.ease-\\[cubic-bezier\\(0\\,0\\,0\\.2\\,1\\)\\]{--tw-ease:cubic-bezier(0,0,.2,1);transition-timing-function:cubic-bezier(0,0,.2,1)}.ease-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\\=…\\]\\: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}}";
47789
+ var E3 = "/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */\n@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-contain-size:initial;--tw-contain-layout:initial;--tw-contain-paint:initial;--tw-contain-style:initial}}}@layer theme{:root,:host{--font-sans:\"Inter\", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-serif:ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif;--font-mono:ui-monospace, \"SF Mono\", Menlo, monospace;--color-red-500:oklch(63.7% .237 25.331);--color-white:#fff;--spacing:.25rem;--font-weight-thin:100;--font-weight-extralight:200;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--font-weight-black:900;--tracking-wide:.025em;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--radius-xl:.75rem;--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-bg:#0b0c0e;--color-surface:#141517;--color-surface-2:#1c1d21;--color-surface-3:#24262b;--color-border:#26282d;--color-border-strong:#34363d;--color-text:#e8e9eb;--color-text-dim:#8b8e98;--color-text-faint:#5c5f6a;--color-accent:#5e6ad2;--color-accent-hover:#6e79e0;--color-accent-soft:#5e6ad226;--color-success:#4cb782;--color-warn:#f2c94c;--color-danger:#eb5757;--color-danger-soft:#eb575726}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.visible\\!{visibility:visible!important}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-y-0{inset-block:0}.top-0{top:0}.top-0\\.5{top:calc(var(--spacing) * .5)}.top-1{top:var(--spacing)}.top-1\\/2{top:50%}.top-3{top:calc(var(--spacing) * 3)}.top-\\[2px\\]{top:2px}.top-full{top:100%}.right-0{right:0}.right-0\\.5{right:calc(var(--spacing) * .5)}.right-4{right:calc(var(--spacing) * 4)}.right-full{right:100%}.bottom-0{bottom:0}.bottom-1{bottom:var(--spacing)}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-\\[2px\\]{bottom:2px}.bottom-full{bottom:100%}.-left-\\[13\\.5px\\]{left:-13.5px}.left-0{left:0}.left-1{left:var(--spacing)}.left-1\\/2{left:50%}.left-\\[5px\\]{left:5px}.left-full{left:100%}.z-1{z-index:1}.z-10{z-index:10}.z-\\[2147483645\\]{z-index:2147483645}.z-\\[2147483646\\]{z-index:2147483646}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.container\\!{width:100%!important}@media (width>=40rem){.container\\!{max-width:40rem!important}}@media (width>=48rem){.container\\!{max-width:48rem!important}}@media (width>=64rem){.container\\!{max-width:64rem!important}}@media (width>=80rem){.container\\!{max-width:80rem!important}}@media (width>=96rem){.container\\!{max-width:96rem!important}}.-m-0{margin:0}.-m-0\\.5{margin:calc(var(--spacing) * -.5)}.-m-4{margin:calc(var(--spacing) * -4)}.m-0{margin:0}.-mx-2{margin-inline:calc(var(--spacing) * -2)}.-my-1{margin-block:calc(var(--spacing) * -1)}.-my-1\\.5{margin-block:calc(var(--spacing) * -1.5)}.mt-0{margin-top:0}.mt-0\\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-px{margin-top:1px}.mr-0{margin-right:0}.mr-0\\.5{margin-right:calc(var(--spacing) * .5)}.mr-1{margin-right:var(--spacing)}.mr-1\\.5{margin-right:calc(var(--spacing) * 1.5)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-2\\.5{margin-right:calc(var(--spacing) * 2.5)}.-mb-4{margin-bottom:calc(var(--spacing) * -4)}.mb-0{margin-bottom:0}.mb-0\\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:var(--spacing)}.mb-1\\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-2\\.5{margin-bottom:calc(var(--spacing) * 2.5)}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-2\\.5{margin-left:calc(var(--spacing) * 2.5)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-auto{margin-left:auto}.ml-px{margin-left:1px}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-5{-webkit-line-clamp:5;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.list-item{display:list-item}.table{display:table}.size-0{width:0;height:0}.size-1{width:var(--spacing);height:var(--spacing)}.size-1\\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-\\[9px\\]{width:9px;height:9px}.size-\\[12px\\]{width:12px;height:12px}.size-\\[16px\\]{width:16px;height:16px}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-16{height:calc(var(--spacing) * 16)}.h-\\[8px\\]{height:8px}.h-\\[17px\\]{height:17px}.h-\\[18px\\]{height:18px}.h-\\[20px\\]{height:20px}.h-\\[24px\\]{height:24px}.h-fit{height:fit-content}.h-full{height:100%}.h-screen{height:100vh}.max-h-32{max-height:calc(var(--spacing) * 32)}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-44{max-height:calc(var(--spacing) * 44)}.max-h-56{max-height:calc(var(--spacing) * 56)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-\\[var\\(--rg-edit-list-max-h\\)\\]{max-height:var(--rg-edit-list-max-h)}.min-h-0{min-height:0}.min-h-4{min-height:calc(var(--spacing) * 4)}.min-h-\\[2lh\\]{min-height:2lh}.min-h-\\[28px\\]{min-height:28px}.w-1{width:var(--spacing)}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-16{width:calc(var(--spacing) * 16)}.w-28{width:calc(var(--spacing) * 28)}.w-72{width:calc(var(--spacing) * 72)}.w-\\[2px\\]{width:2px}.w-\\[calc\\(100\\%\\+16px\\)\\]{width:calc(100% + 16px)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-\\[55\\%\\]{max-width:55%}.max-w-\\[100vw\\]{max-width:100vw}.max-w-\\[110px\\]{max-width:110px}.max-w-\\[280px\\]{max-width:280px}.max-w-full{max-width:100%}.min-w-0{min-width:0}.min-w-\\[3\\.5ch\\]{min-width:3.5ch}.min-w-\\[3ch\\]{min-width:3ch}.min-w-\\[4ch\\]{min-width:4ch}.min-w-\\[5ch\\]{min-width:5ch}.min-w-\\[6ch\\]{min-width:6ch}.min-w-\\[7ch\\]{min-width:7ch}.min-w-\\[8ch\\]{min-width:8ch}.min-w-\\[10ch\\]{min-width:10ch}.min-w-\\[11ch\\]{min-width:11ch}.min-w-\\[12ch\\]{min-width:12ch}.min-w-\\[36px\\]{min-width:36px}.min-w-\\[52px\\]{min-width:52px}.min-w-\\[100px\\]{min-width:100px}.min-w-\\[150px\\]{min-width:150px}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-rotate-90{rotate:-90deg}.rotate-0{rotate:0deg}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.list-decimal{list-style-type:decimal}.grid-cols-\\[0fr\\]{grid-template-columns:0fr}.grid-cols-\\[1fr\\]{grid-template-columns:1fr}.grid-rows-\\[0fr\\]{grid-template-rows:0fr}.grid-rows-\\[1fr\\]{grid-template-rows:1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:0}.gap-0\\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-\\[5px\\]{gap:5px}.self-end{align-self:flex-end}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-clip{overflow:clip}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\\[1px\\]{border-radius:1px}.rounded-\\[3px\\]{border-radius:3px}.rounded-\\[4px\\]{border-radius:4px}.rounded-\\[5px\\]{border-radius:5px}.rounded-\\[6px\\]{border-radius:6px}.rounded-\\[13px\\]{border-radius:13px}.rounded-\\[14px\\]{border-radius:14px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-t-\\[10px\\]{border-top-left-radius:10px;border-top-right-radius:10px}.rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.rounded-l{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-l-\\[10px\\]{border-top-left-radius:10px;border-bottom-left-radius:10px}.rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.rounded-tl{border-top-left-radius:.25rem}.rounded-r{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-r-\\[10px\\]{border-top-right-radius:10px;border-bottom-right-radius:10px}.rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-tr{border-top-right-radius:.25rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-b-\\[6px\\]{border-bottom-right-radius:6px;border-bottom-left-radius:6px}.rounded-b-\\[10px\\]{border-bottom-right-radius:10px;border-bottom-left-radius:10px}.rounded-b-none{border-bottom-right-radius:0;border-bottom-left-radius:0}.rounded-br{border-bottom-right-radius:.25rem}.rounded-bl{border-bottom-left-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.\\[border-width\\:0\\.5px\\]{border-width:.5px}.border-x{border-inline-style:var(--tw-border-style);border-inline-width:1px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-s{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}.border-e{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-4{border-top-style:var(--tw-border-style);border-top-width:4px}.\\[border-top-width\\:0\\.5px\\]{border-top-width:.5px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-dotted{--tw-border-style:dotted;border-style:dotted}.border-none{--tw-border-style:none;border-style:none}.border-solid{--tw-border-style:solid;border-style:solid}.border-\\[var\\(--rg-border-button\\)\\]{border-color:var(--rg-border-button)}.border-accent{border-color:var(--color-accent)}.border-accent\\/40{border-color:#5e6ad266}@supports (color:color-mix(in lab, red, red)){.border-accent\\/40{border-color:color-mix(in oklab, var(--color-accent) 40%, transparent)}}.border-border{border-color:var(--color-border)}.border-success{border-color:var(--color-success)}.border-success\\/40{border-color:#4cb78266}@supports (color:color-mix(in lab, red, red)){.border-success\\/40{border-color:color-mix(in oklab, var(--color-success) 40%, transparent)}}.border-text-dim{border-color:var(--color-text-dim)}.border-transparent{border-color:#0000}.border-warn{border-color:var(--color-warn)}.border-warn\\/40{border-color:#f2c94c66}@supports (color:color-mix(in lab, red, red)){.border-warn\\/40{border-color:color-mix(in oklab, var(--color-warn) 40%, transparent)}}.border-t-\\[var\\(--rg-border-subtle\\)\\]{border-top-color:var(--rg-border-subtle)}.border-t-transparent{border-top-color:#0000}.bg-\\[var\\(--rg-error-bg\\)\\]{background-color:var(--rg-error-bg)}.bg-\\[var\\(--rg-panel-bg\\)\\]{background-color:var(--rg-panel-bg)}.bg-\\[var\\(--rg-submit-bg\\)\\]{background-color:var(--rg-submit-bg)}.bg-\\[var\\(--rg-surface-active\\)\\]{background-color:var(--rg-surface-active)}.bg-\\[var\\(--rg-surface-hover\\)\\]{background-color:var(--rg-surface-hover)}.bg-\\[var\\(--rg-text-primary\\)\\]{background-color:var(--rg-text-primary)}.bg-\\[var\\(--rg-text-secondary\\)\\]{background-color:var(--rg-text-secondary)}.bg-accent{background-color:var(--color-accent)}.bg-accent-soft{background-color:var(--color-accent-soft)}.bg-bg{background-color:var(--color-bg)}.bg-bg\\/80{background-color:#0b0c0ecc}@supports (color:color-mix(in lab, red, red)){.bg-bg\\/80{background-color:color-mix(in oklab, var(--color-bg) 80%, transparent)}}.bg-border{background-color:var(--color-border)}.bg-current{background-color:currentColor}.bg-danger{background-color:var(--color-danger)}.bg-danger-soft{background-color:var(--color-danger-soft)}.bg-red-500{background-color:var(--color-red-500)}.bg-success{background-color:var(--color-success)}.bg-surface{background-color:var(--color-surface)}.bg-surface-2{background-color:var(--color-surface-2)}.bg-surface-3{background-color:var(--color-surface-3)}.bg-text-faint{background-color:var(--color-text-faint)}.bg-transparent{background-color:#0000}.bg-warn{background-color:var(--color-warn)}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:0}.p-0\\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\\.5{padding:calc(var(--spacing) * 2.5)}.p-6{padding:calc(var(--spacing) * 6)}.px-0{padding-inline:0}.px-0\\.25{padding-inline:calc(var(--spacing) * .25)}.px-1{padding-inline:var(--spacing)}.px-1\\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-\\[3px\\]{padding-inline:3px}.py-0{padding-block:0}.py-0\\.5{padding-block:calc(var(--spacing) * .5)}.py-0\\.25{padding-block:calc(var(--spacing) * .25)}.py-1{padding-block:var(--spacing)}.py-1\\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-px{padding-block:1px}.pt-0{padding-top:0}.pt-0\\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:var(--spacing)}.pt-1\\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pr-1{padding-right:var(--spacing)}.pr-1\\.5{padding-right:calc(var(--spacing) * 1.5)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pb-1{padding-bottom:var(--spacing)}.pb-1\\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pl-0{padding-left:0}.pl-0\\.5{padding-left:calc(var(--spacing) * .5)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-2\\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.text-center{text-align:center}.text-end{text-align:end}.text-justify{text-align:justify}.text-left{text-align:left}.text-right{text-align:right}.text-start{text-align:start}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.font-serif{font-family:var(--font-serif)}.text-\\[9\\.5px\\]{font-size:9.5px}.text-\\[9px\\]{font-size:9px}.text-\\[10\\.5px\\]{font-size:10.5px}.text-\\[10px\\]{font-size:10px}.text-\\[11\\.5px\\]{font-size:11.5px}.text-\\[11px\\]{font-size:11px}.text-\\[12\\.5px\\]{font-size:12.5px}.text-\\[12px\\]{font-size:12px}.text-\\[13px\\]{font-size:13px}.text-\\[15px\\]{font-size:15px}.leading-3{--tw-leading:calc(var(--spacing) * 3);line-height:calc(var(--spacing) * 3)}.leading-3\\.5{--tw-leading:calc(var(--spacing) * 3.5);line-height:calc(var(--spacing) * 3.5)}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-extralight{--tw-font-weight:var(--font-weight-extralight);font-weight:var(--font-weight-extralight)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.font-thin{--tw-font-weight:var(--font-weight-thin);font-weight:var(--font-weight-thin)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-normal{overflow-wrap:normal;word-break:normal}.break-words,.wrap-break-word{overflow-wrap:break-word}.break-all{word-break:break-all}.break-keep{word-break:keep-all}.text-ellipsis{text-overflow:ellipsis}.whitespace-break-spaces{white-space:break-spaces}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.text-\\[var\\(--rg-error-text\\)\\]{color:var(--rg-error-text)}.text-\\[var\\(--rg-submit-fg\\)\\]{color:var(--rg-submit-fg)}.text-\\[var\\(--rg-text-primary\\)\\]{color:var(--rg-text-primary)}.text-\\[var\\(--rg-text-primary-85\\)\\]{color:var(--rg-text-primary-85)}.text-\\[var\\(--rg-text-secondary\\)\\]{color:var(--rg-text-secondary)}.text-accent{color:var(--color-accent)}.text-danger{color:var(--color-danger)}.text-success{color:var(--color-success)}.text-text{color:var(--color-text)}.text-text-dim{color:var(--color-text-dim)}.text-text-faint{color:var(--color-text-faint)}.text-warn{color:var(--color-warn)}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.not-italic{font-style:normal}.lining-nums{--tw-numeric-figure:lining-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.oldstyle-nums{--tw-numeric-figure:oldstyle-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.proportional-nums{--tw-numeric-spacing:proportional-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.slashed-zero{--tw-slashed-zero:slashed-zero;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.accent-accent{accent-color:var(--color-accent)}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.\\[box-shadow\\:var\\(--rg-shadow\\)\\]{box-shadow:var(--rg-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.\\[filter\\:var\\(--rg-drop-shadow\\)\\]{filter:var(--rg-drop-shadow)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[grid-template-columns\\]{transition-property:grid-template-columns;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[grid-template-rows\\]{transition-property:grid-template-rows;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[opacity\\,transform\\]{transition-property:opacity,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[padding\\,border-radius\\,transform\\]{transition-property:padding,border-radius,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[top\\,left\\,width\\,height\\,opacity\\,border-radius\\]{transition-property:top,left,width,height,opacity,border-radius;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[transform\\,color\\]{transition-property:transform,color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[transform\\,opacity\\]{transition-property:transform,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.delay-\\[80ms\\]{transition-delay:80ms}.duration-60{--tw-duration:60ms;transition-duration:60ms}.duration-75{--tw-duration:75ms;transition-duration:75ms}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-120{--tw-duration:.12s;transition-duration:.12s}.duration-140{--tw-duration:.14s;transition-duration:.14s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-180{--tw-duration:.18s;transition-duration:.18s}.duration-220{--tw-duration:.22s;transition-duration:.22s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-400{--tw-duration:.4s;transition-duration:.4s}.ease-\\[cubic-bezier\\(0\\,0\\,0\\.2\\,1\\)\\]{--tw-ease:cubic-bezier(0,0,.2,1);transition-timing-function:cubic-bezier(0,0,.2,1)}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.will-change-\\[opacity\\,transform\\]{will-change:opacity,transform}.will-change-transform{will-change:transform}.contain-layout{--tw-contain-layout:layout;contain:var(--tw-contain-size,) var(--tw-contain-layout,) var(--tw-contain-paint,) var(--tw-contain-style,)}.outline-none{--tw-outline-style:none;outline-style:none}.select-all{-webkit-user-select:all;user-select:all}.select-none{-webkit-user-select:none;user-select:none}.\\[corner-shape\\:superellipse\\(1\\.25\\)\\]{corner-shape:superellipse(1.25)}.\\[font-synthesis\\:none\\]{font-synthesis:none}.group-open\\:rotate-90:is(:where(.group):is([open],:popover-open,:open) *){rotate:90deg}@media (hover:hover){.group-hover\\:text-\\[var\\(--rg-text-primary\\)\\]:is(:where(.group):hover *){color:var(--rg-text-primary)}.group-hover\\:opacity-100:is(:where(.group):hover *){opacity:1}}.placeholder\\:text-text-faint::placeholder{color:var(--color-text-faint)}@media (hover:hover){.hover\\:bg-\\[var\\(--rg-error-bg-hover\\)\\]:hover{background-color:var(--rg-error-bg-hover)}.hover\\:bg-\\[var\\(--rg-surface-active\\)\\]:hover{background-color:var(--rg-surface-active)}.hover\\:bg-\\[var\\(--rg-surface-hover\\)\\]:hover{background-color:var(--rg-surface-hover)}.hover\\:bg-accent-hover:hover{background-color:var(--color-accent-hover)}.hover\\:bg-accent\\/50:hover{background-color:#5e6ad280}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-accent\\/50:hover{background-color:color-mix(in oklab, var(--color-accent) 50%, transparent)}}.hover\\:bg-danger\\/30:hover{background-color:#eb57574d}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-danger\\/30:hover{background-color:color-mix(in oklab, var(--color-danger) 30%, transparent)}}.hover\\:bg-surface-2:hover{background-color:var(--color-surface-2)}.hover\\:bg-surface-3:hover{background-color:var(--color-surface-3)}.hover\\:text-\\[var\\(--rg-text-primary\\)\\]:hover{color:var(--rg-text-primary)}.hover\\:text-accent:hover{color:var(--color-accent)}.hover\\:text-danger:hover{color:var(--color-danger)}.hover\\:text-text:hover{color:var(--color-text)}.hover\\:underline:hover{text-decoration-line:underline}.hover\\:opacity-80:hover{opacity:.8}}.focus\\:border-accent:focus{border-color:var(--color-accent)}.active\\:cursor-grabbing:active{cursor:grabbing}.active\\:bg-accent:active{background-color:var(--color-accent)}.active\\:transition-none:active{transition-property:none}.disabled\\:cursor-default:disabled{cursor:default}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:bg-surface-3:disabled{background-color:var(--color-surface-3)}.disabled\\:text-text-faint:disabled{color:var(--color-text-faint)}.disabled\\:opacity-40:disabled{opacity:.4}@media (hover:hover){.disabled\\:hover\\:bg-surface-2:disabled:hover{background-color:var(--color-surface-2)}}.data-\\[state\\=on\\]\\:transition-none[data-state=on],.data-\\[state\\=open\\]\\:transition-none[data-state=open],.data-\\[state\\=…\\]\\:transition-none[data-state=…]{transition-property:none}}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=light],:host([data-theme=light]){--color-bg:#fbfbfc;--color-surface:#fff;--color-surface-2:#f4f4f6;--color-surface-3:#e9e9ee;--color-border:#e2e2e8;--color-border-strong:#cfcfd8;--color-text:#1b1c20;--color-text-dim:#5c5f6a;--color-text-faint:#9a9da8;--color-accent-soft:#5e6ad21f;--color-danger-soft:#eb57571a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--color-bg:#fbfbfc;--color-surface:#fff;--color-surface-2:#f4f4f6;--color-surface-3:#e9e9ee;--color-border:#e2e2e8;--color-border-strong:#cfcfd8;--color-text:#1b1c20;--color-text-dim:#5c5f6a;--color-text-faint:#9a9da8;--color-accent-soft:#5e6ad21f;--color-danger-soft:#eb57571a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}body{background-color:var(--color-bg);font-family:var(--font-sans);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-width:320px;margin:0;font-size:13px}@keyframes geist-spinner-fade{0%{opacity:1}to{opacity:.15}}[data-tip]{position:relative}[data-tip]:hover:after{content:attr(data-tip);color:#fff;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;z-index:60;background:#1b1c20;border-radius:6px;max-width:260px;padding:3px 8px;font-size:10.5px;font-weight:500;line-height:1.35;position:absolute;bottom:calc(100% + 6px);left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 4px 12px #0000004d}[data-tip][data-tip-pos~=right]:hover:after{left:0;transform:none}[data-tip][data-tip-pos~=left]:hover:after{left:auto;right:0;transform:none}[data-tip][data-tip-pos~=bottom]:hover:after{top:calc(100% + 6px);bottom:auto}.no-scrollbar{scrollbar-width:none}.no-scrollbar::-webkit-scrollbar{display:none}.lg-md p{margin:0 0 6px}.lg-md p:last-child{margin-bottom:0}.lg-md a{color:var(--color-accent);word-break:break-all;text-decoration:none}.lg-md a:hover{text-decoration:underline}.lg-md code{background:var(--color-surface-2);border:1px solid var(--color-border);font-family:var(--font-mono);border-radius:4px;padding:0 4px;font-size:11px}.lg-md pre{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:6px;margin:6px 0;padding:8px;overflow-x:auto}.lg-md pre code{white-space:pre;background:0 0;border:none;padding:0;font-size:11px}.lg-md ul,.lg-md ol{flex-direction:column;gap:2px;margin:4px 0 6px;padding-left:18px;display:flex}.lg-md ul{list-style:outside}.lg-md ol{list-style:decimal}.lg-md h4{margin:8px 0 4px;font-size:12px;font-weight:600}.lg-md lg-media{display:block}.lg-md lg-media img,.lg-md lg-media video{border:1px solid var(--color-border);border-radius:6px;max-width:100%;margin:4px 0}.lg-md video{border:1px solid var(--color-border);background:#000;border-radius:6px;max-width:100%;margin:4px 0}.lg-md img{border:1px solid var(--color-border);border-radius:6px;max-width:100%;margin:4px 0}.lg-md strong{font-weight:600}*{scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:4px}::-webkit-scrollbar-track{background:0 0}@property --tw-rotate-x{syntax:\"*\";inherits:false}@property --tw-rotate-y{syntax:\"*\";inherits:false}@property --tw-rotate-z{syntax:\"*\";inherits:false}@property --tw-skew-x{syntax:\"*\";inherits:false}@property --tw-skew-y{syntax:\"*\";inherits:false}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-leading{syntax:\"*\";inherits:false}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-tracking{syntax:\"*\";inherits:false}@property --tw-ordinal{syntax:\"*\";inherits:false}@property --tw-slashed-zero{syntax:\"*\";inherits:false}@property --tw-numeric-figure{syntax:\"*\";inherits:false}@property --tw-numeric-spacing{syntax:\"*\";inherits:false}@property --tw-numeric-fraction{syntax:\"*\";inherits:false}@property --tw-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\"*\";inherits:false}@property --tw-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\"*\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\"*\";inherits:false}@property --tw-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\"*\";inherits:false}@property --tw-inset-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\"*\";inherits:false}@property --tw-ring-offset-width{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\"*\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-blur{syntax:\"*\";inherits:false}@property --tw-brightness{syntax:\"*\";inherits:false}@property --tw-contrast{syntax:\"*\";inherits:false}@property --tw-grayscale{syntax:\"*\";inherits:false}@property --tw-hue-rotate{syntax:\"*\";inherits:false}@property --tw-invert{syntax:\"*\";inherits:false}@property --tw-opacity{syntax:\"*\";inherits:false}@property --tw-saturate{syntax:\"*\";inherits:false}@property --tw-sepia{syntax:\"*\";inherits:false}@property --tw-drop-shadow{syntax:\"*\";inherits:false}@property --tw-drop-shadow-color{syntax:\"*\";inherits:false}@property --tw-drop-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:\"*\";inherits:false}@property --tw-backdrop-blur{syntax:\"*\";inherits:false}@property --tw-backdrop-brightness{syntax:\"*\";inherits:false}@property --tw-backdrop-contrast{syntax:\"*\";inherits:false}@property --tw-backdrop-grayscale{syntax:\"*\";inherits:false}@property --tw-backdrop-hue-rotate{syntax:\"*\";inherits:false}@property --tw-backdrop-invert{syntax:\"*\";inherits:false}@property --tw-backdrop-opacity{syntax:\"*\";inherits:false}@property --tw-backdrop-saturate{syntax:\"*\";inherits:false}@property --tw-backdrop-sepia{syntax:\"*\";inherits:false}@property --tw-duration{syntax:\"*\";inherits:false}@property --tw-ease{syntax:\"*\";inherits:false}@property --tw-contain-size{syntax:\"*\";inherits:false}@property --tw-contain-layout{syntax:\"*\";inherits:false}@property --tw-contain-paint{syntax:\"*\";inherits:false}@property --tw-contain-style{syntax:\"*\";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}";
47684
47790
  //#endregion
47685
47791
  //#region src/page/index.tsx
47686
47792
  Br();
47687
- var v3 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-danger size-2 shrink-0 animate-pulse rounded-full\">"), y3 = /*#__PURE__*/ N("<span class=\"text-text min-w-[5ch] text-[11px] font-medium tabular-nums\">"), b3 = /*#__PURE__*/ N("<button class=\"bg-accent hover:bg-accent-hover h-7 cursor-pointer rounded-full px-2.5 text-[11px] font-medium text-white transition-colors\"><span class=\"inline-block min-w-[4ch] text-center\">Stop"), x3 = /*#__PURE__*/ N("<p class=\"text-warn px-1.5 pt-1 pb-1.5 text-[10.5px] font-semibold tracking-wide uppercase\">Needs review"), S3 = /*#__PURE__*/ N("<div><p class=\"text-text-dim px-1.5 pt-1 pb-1.5 text-[10.5px] font-semibold tracking-wide uppercase\">Running agents"), C3 = /*#__PURE__*/ N("<div class=\"fixed z-[2147483646] select-none\"><div class=\"bg-surface border-border text-text flex h-9 cursor-grab items-center gap-1 rounded-full border py-1 pr-1 pl-2.5 font-sans shadow-lg active:cursor-grabbing\">"), w3 = /*#__PURE__*/ N("<div><div title=\"Drag to resize\">"), T3 = /*#__PURE__*/ N("<button title=\"Open Linear Grab\"aria-label=\"Open Linear Grab\"class=\"text-accent hover:opacity-80 inline-flex cursor-pointer items-center gap-1.5\">"), E3 = /*#__PURE__*/ N("<span class=\"bg-border h-4 w-px\"aria-hidden>"), D3 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-warn size-2 rounded-full\">"), O3 = /*#__PURE__*/ N("<span class=\"text-warn min-w-[3.5ch] text-left text-[11px] font-medium tabular-nums\"> rev"), k3 = /*#__PURE__*/ N("<button title=\"Running agents\"aria-label=\"Running agents\"class=\"hover:bg-surface-2 flex h-7 cursor-pointer items-center gap-1.5 rounded-full px-2 transition-colors\"><span aria-hidden></span><span>"), A3 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-accent size-2 shrink-0 animate-pulse rounded-full\">"), j3 = /*#__PURE__*/ N("<span class=\"text-text min-w-[3ch] text-[11px] font-medium tabular-nums\">s"), M3 = /*#__PURE__*/ N("<span class=\"text-text-dim min-w-[7ch] text-[11px] tabular-nums\"> states"), N3 = /*#__PURE__*/ N("<p class=\"text-text-faint px-1.5 pb-1.5 text-[11.5px]\">No agents running right now."), P3 = /*#__PURE__*/ N("<button class=\"hover:bg-surface-2 flex w-full cursor-pointer flex-col gap-0.5 rounded-md px-1.5 py-1.5 text-left transition-colors\"><span class=\"flex min-w-0 items-center gap-1.5\"><span aria-hidden class=\"size-1.5 shrink-0 rounded-full\"></span><span class=\"font-mono text-text-dim shrink-0 text-[10.5px]\"></span><span class=\"text-text truncate text-[11.5px]\"></span></span><span class=\"text-text-faint pl-3 text-[10.5px] tabular-nums\"> · <!> · ");
47688
- function F3(e = {}) {
47793
+ var D3 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-danger size-2 shrink-0 animate-pulse rounded-full\">"), O3 = /*#__PURE__*/ N("<span class=\"text-text min-w-[5ch] text-[11px] font-medium tabular-nums\">"), k3 = /*#__PURE__*/ N("<button class=\"bg-accent hover:bg-accent-hover h-7 cursor-pointer rounded-full px-2.5 text-[11px] font-medium text-white transition-colors\"><span class=\"inline-block min-w-[4ch] text-center\">Stop"), A3 = /*#__PURE__*/ N("<p class=\"text-warn px-1.5 pt-1 pb-1.5 text-[10.5px] font-semibold tracking-wide uppercase\">Needs review"), j3 = /*#__PURE__*/ N("<div><p class=\"text-text-dim px-1.5 pt-1 pb-1.5 text-[10.5px] font-semibold tracking-wide uppercase\">Running agents"), M3 = /*#__PURE__*/ N("<div class=\"fixed z-[2147483646] select-none\"><div class=\"bg-surface border-border text-text flex h-9 cursor-grab items-center gap-1 rounded-full border py-1 pr-1 pl-2.5 font-sans shadow-lg active:cursor-grabbing\">"), N3 = /*#__PURE__*/ N("<div><div title=\"Drag to resize\">"), P3 = /*#__PURE__*/ N("<button title=\"Open Linear Grab\"aria-label=\"Open Linear Grab\"class=\"text-accent hover:opacity-80 inline-flex cursor-pointer items-center gap-1.5\">"), F3 = /*#__PURE__*/ N("<span class=\"bg-border h-4 w-px\"aria-hidden>"), I3 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-warn size-2 rounded-full\">"), L3 = /*#__PURE__*/ N("<span class=\"text-warn min-w-[3.5ch] text-left text-[11px] font-medium tabular-nums\"> rev"), R3 = /*#__PURE__*/ N("<button title=\"Running agents\"aria-label=\"Running agents\"class=\"hover:bg-surface-2 flex h-7 cursor-pointer items-center gap-1.5 rounded-full px-2 transition-colors\"><span aria-hidden></span><span>"), z3 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-accent size-2 shrink-0 animate-pulse rounded-full\">"), B3 = /*#__PURE__*/ N("<span class=\"text-text min-w-[3ch] text-[11px] font-medium tabular-nums\">s"), V3 = /*#__PURE__*/ N("<span class=\"text-text-dim min-w-[7ch] text-[11px] tabular-nums\"> states"), H3 = /*#__PURE__*/ N("<p class=\"text-text-faint px-1.5 pb-1.5 text-[11.5px]\">No agents running right now."), U3 = /*#__PURE__*/ N("<button class=\"hover:bg-surface-2 flex w-full cursor-pointer flex-col gap-0.5 rounded-md px-1.5 py-1.5 text-left transition-colors\"><span class=\"flex min-w-0 items-center gap-1.5\"><span aria-hidden class=\"size-1.5 shrink-0 rounded-full\"></span><span class=\"font-mono text-text-dim shrink-0 text-[10.5px]\"></span><span class=\"text-text truncate text-[11.5px]\"></span></span><span class=\"text-text-faint pl-3 text-[10.5px] tabular-nums\"> · <!> · ");
47794
+ function W3(e = {}) {
47689
47795
  if (typeof window > "u" || window.__LINEAR_GRAB_PAGE__) return;
47690
47796
  window.__LINEAR_GRAB_PAGE__ = !0;
47691
47797
  let t = () => {
47692
- lk(), D2(), JZ();
47798
+ lk(), A2(), JZ();
47693
47799
  let t = document.createElement("div");
47694
47800
  t.id = "linear-grab-root", document.body.appendChild(t);
47695
47801
  let n = (e) => {
@@ -47717,17 +47823,17 @@ function F3(e = {}) {
47717
47823
  "keypress"
47718
47824
  ]) window.addEventListener(e, n, { capture: !0 });
47719
47825
  let r = t.attachShadow({ mode: "open" }), i = document.createElement("style");
47720
- i.textContent = _3, r.appendChild(i);
47826
+ i.textContent = E3, r.appendChild(i);
47721
47827
  let a = document.createElement("div");
47722
47828
  r.appendChild(a);
47723
- let o = () => a.setAttribute("data-theme", I3());
47724
- o(), matchMedia("(prefers-color-scheme: light)").addEventListener("change", o), nt(() => j(H3, { get defaultOpen() {
47829
+ let o = () => a.setAttribute("data-theme", G3());
47830
+ o(), matchMedia("(prefers-color-scheme: light)").addEventListener("change", o), nt(() => j(Z3, { get defaultOpen() {
47725
47831
  return e.defaultOpen ?? !1;
47726
47832
  } }), a);
47727
47833
  };
47728
47834
  document.body ? t() : document.addEventListener("DOMContentLoaded", t, { once: !0 });
47729
47835
  }
47730
- function I3() {
47836
+ function G3() {
47731
47837
  try {
47732
47838
  let e = [document.body, document.documentElement];
47733
47839
  for (let t of e) {
@@ -47737,11 +47843,11 @@ function I3() {
47737
47843
  } catch {}
47738
47844
  return matchMedia("(prefers-color-scheme: light)").matches ? "light" : "dark";
47739
47845
  }
47740
- var L3 = 130, R3 = 36, z3 = 380, B3 = 280, V3 = 720;
47741
- function H3(e) {
47846
+ var K3 = 130, q3 = 36, J3 = 380, Y3 = 280, X3 = 720;
47847
+ function Z3(e) {
47742
47848
  let [t, n] = T(e.defaultOpen), [r, i] = T("right"), [a, o] = T({
47743
- x: Math.max(8, window.innerWidth - L3 - 24),
47744
- y: Math.max(8, window.innerHeight - R3 - 20)
47849
+ x: Math.max(8, window.innerWidth - K3 - 24),
47850
+ y: Math.max(8, window.innerHeight - q3 - 20)
47745
47851
  }), [s, c] = T({
47746
47852
  running: [],
47747
47853
  review: []
@@ -47761,12 +47867,12 @@ function H3(e) {
47761
47867
  let t = Math.floor(e / 1e3);
47762
47868
  return `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
47763
47869
  }, [b, x] = T(null), S = (e) => ({
47764
- x: Math.min(Math.max(8, e.x), window.innerWidth - L3 - 8),
47765
- y: Math.min(Math.max(8, e.y), window.innerHeight - R3 - 8)
47870
+ x: Math.min(Math.max(8, e.x), window.innerWidth - K3 - 8),
47871
+ y: Math.min(Math.max(8, e.y), window.innerHeight - q3 - 8)
47766
47872
  }), C = (e) => ({
47767
47873
  x: Math.min(Math.max(8 - (ne() - 80), e.x), window.innerWidth - 80),
47768
47874
  y: Math.min(Math.max(0, e.y), window.innerHeight - 80)
47769
- }), [w, E] = T(!1), [k, ee] = T("cloud"), [te, A] = T(!1), [ne, re] = T(z3), oe = (e) => Math.min(V3, Math.max(B3, Math.min(e, window.innerWidth - 60)));
47875
+ }), [w, E] = T(!1), [k, ee] = T("cloud"), [te, A] = T(!1), [ne, re] = T(J3), oe = (e) => Math.min(X3, Math.max(Y3, Math.min(e, window.innerWidth - 60)));
47770
47876
  O(() => {
47771
47877
  let e = document.documentElement, n = t() && w();
47772
47878
  e.style.transition = "margin 0.2s ease", e.style.marginRight = n && r() === "right" ? `${ne()}px` : "", e.style.marginLeft = n && r() === "left" ? `${ne()}px` : "";
@@ -47880,7 +47986,7 @@ function H3(e) {
47880
47986
  return !t();
47881
47987
  },
47882
47988
  get children() {
47883
- var e = C3(), t = e.firstChild;
47989
+ var e = M3(), t = e.firstChild;
47884
47990
  return t.$$click = () => {
47885
47991
  ce || p() === "recording" || h().active || (f(!1), n(!0));
47886
47992
  }, t.$$pointerdown = le, P(t, j(M, {
@@ -47890,14 +47996,14 @@ function H3(e) {
47890
47996
  get fallback() {
47891
47997
  return [
47892
47998
  (() => {
47893
- var e = T3();
47999
+ var e = P3();
47894
48000
  return e.$$click = () => {
47895
48001
  ce || (f(!1), n(!0));
47896
- }, P(e, j(h3, { size: 13 })), e;
48002
+ }, P(e, j(w3, { size: 13 })), e;
47897
48003
  })(),
47898
- E3(),
48004
+ F3(),
47899
48005
  (() => {
47900
- var e = k3(), t = e.firstChild, n = t.nextSibling;
48006
+ var e = R3(), t = e.firstChild, n = t.nextSibling;
47901
48007
  return e.$$click = (e) => {
47902
48008
  e.stopPropagation(), !ce && f((e) => !e);
47903
48009
  }, P(n, (() => {
@@ -47908,8 +48014,8 @@ function H3(e) {
47908
48014
  return $e(() => !te())() && u().length > 0;
47909
48015
  },
47910
48016
  get children() {
47911
- return [D3(), (() => {
47912
- var e = O3(), t = e.firstChild;
48017
+ return [I3(), (() => {
48018
+ var e = L3(), t = e.firstChild;
47913
48019
  return P(e, () => u().length, t), e;
47914
48020
  })()];
47915
48021
  }
@@ -47930,17 +48036,17 @@ function H3(e) {
47930
48036
  },
47931
48037
  get fallback() {
47932
48038
  return [
47933
- A3(),
48039
+ z3(),
47934
48040
  (() => {
47935
- var e = j3(), t = e.firstChild;
48041
+ var e = B3(), t = e.firstChild;
47936
48042
  return P(e, () => Math.ceil(h().msLeft / 1e3), t), e;
47937
48043
  })(),
47938
48044
  (() => {
47939
- var e = M3(), t = e.firstChild;
48045
+ var e = V3(), t = e.firstChild;
47940
48046
  return P(e, () => h().total, t), D(() => it(e, "title", Object.entries(h().byTrigger).map(([e, t]) => `${t} ${e}`).join(" · ") || "hover / open the component to record its states")), e;
47941
48047
  })(),
47942
48048
  (() => {
47943
- var e = b3();
48049
+ var e = k3();
47944
48050
  return e.$$click = (e) => {
47945
48051
  e.stopPropagation(), !ce && o2();
47946
48052
  }, e;
@@ -47949,13 +48055,13 @@ function H3(e) {
47949
48055
  },
47950
48056
  get children() {
47951
48057
  return [
47952
- v3(),
48058
+ D3(),
47953
48059
  (() => {
47954
- var e = y3();
48060
+ var e = O3();
47955
48061
  return P(e, () => y(_())), e;
47956
48062
  })(),
47957
48063
  (() => {
47958
- var e = b3();
48064
+ var e = k3();
47959
48065
  return e.$$click = () => {
47960
48066
  ce || eO();
47961
48067
  }, e;
@@ -47969,17 +48075,17 @@ function H3(e) {
47969
48075
  return d();
47970
48076
  },
47971
48077
  get children() {
47972
- var e = S3(), t = e.firstChild;
48078
+ var e = j3(), t = e.firstChild;
47973
48079
  return P(e, j(M, {
47974
48080
  get when() {
47975
48081
  return u().length > 0;
47976
48082
  },
47977
48083
  get children() {
47978
- return [x3(), j(We, {
48084
+ return [A3(), j(We, {
47979
48085
  get each() {
47980
48086
  return u();
47981
48087
  },
47982
- children: (e) => j(U3, {
48088
+ children: (e) => j(Q3, {
47983
48089
  agent: e,
47984
48090
  review: !0,
47985
48091
  onOpen: de
@@ -47991,14 +48097,14 @@ function H3(e) {
47991
48097
  return l().length > 0;
47992
48098
  },
47993
48099
  get fallback() {
47994
- return N3();
48100
+ return H3();
47995
48101
  },
47996
48102
  get children() {
47997
48103
  return j(We, {
47998
48104
  get each() {
47999
48105
  return l();
48000
48106
  },
48001
- children: (e) => j(U3, {
48107
+ children: (e) => j(Q3, {
48002
48108
  agent: e,
48003
48109
  onOpen: de
48004
48110
  })
@@ -48019,8 +48125,8 @@ function H3(e) {
48019
48125
  return t();
48020
48126
  },
48021
48127
  get children() {
48022
- var e = w3(), t = e.firstChild;
48023
- return t.$$pointerdown = fe, P(e, j(g3, {
48128
+ var e = N3(), t = e.firstChild;
48129
+ return t.$$pointerdown = fe, P(e, j(T3, {
48024
48130
  onGrab: () => n(!0),
48025
48131
  onClose: () => n(!1),
48026
48132
  get onHeaderPointerDown() {
@@ -48048,19 +48154,19 @@ function H3(e) {
48048
48154
  }
48049
48155
  })];
48050
48156
  }
48051
- function U3(e) {
48157
+ function Q3(e) {
48052
48158
  return (() => {
48053
- var t = P3(), n = t.firstChild, r = n.firstChild, i = r.nextSibling, a = i.nextSibling, o = n.nextSibling, s = o.firstChild, c = s.nextSibling;
48159
+ var t = U3(), n = t.firstChild, r = n.firstChild, i = r.nextSibling, a = i.nextSibling, o = n.nextSibling, s = o.firstChild, c = s.nextSibling;
48054
48160
  return c.nextSibling, t.$$click = () => e.onOpen(e.agent.id), P(i, () => e.agent.identifier), P(a, () => e.agent.title), P(o, (() => {
48055
48161
  var t = $e(() => !!e.review);
48056
48162
  return () => t() ? "PR ready · needs review" : e.agent.stateName;
48057
- })(), s), P(o, () => e.agent.delegateName, c), P(o, () => W3(e.agent.updatedAt), null), D((t) => dt(r, "background", e.review ? "var(--color-warn)" : e.agent.stateColor)), t;
48163
+ })(), s), P(o, () => e.agent.delegateName, c), P(o, () => $3(e.agent.updatedAt), null), D((t) => dt(r, "background", e.review ? "var(--color-warn)" : e.agent.stateColor)), t;
48058
48164
  })();
48059
48165
  }
48060
- function W3(e) {
48166
+ function $3(e) {
48061
48167
  let t = Math.max(0, Math.floor((Date.now() - Date.parse(e)) / 1e3));
48062
48168
  return t < 60 ? "now" : t < 3600 ? `${Math.floor(t / 60)}m` : t < 86400 ? `${Math.floor(t / 3600)}h` : `${Math.floor(t / 86400)}d`;
48063
48169
  }
48064
48170
  rt(["pointerdown", "click"]);
48065
48171
  //#endregion
48066
- export { F3 as init };
48172
+ export { W3 as init };