linear-grab 0.25.1 → 0.25.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/linear-grab-bridge.mjs +4 -2
- package/bin/slop-scan.global.js +2 -2
- package/dist/index.global.js +6 -6
- package/dist/linear-grab.js +218 -180
- package/dist/slop-scan.global.js +2 -2
- package/package.json +1 -1
package/dist/linear-grab.js
CHANGED
|
@@ -46479,9 +46479,10 @@ var r4 = (e) => getComputedStyle(e), i4 = {
|
|
|
46479
46479
|
check(e) {
|
|
46480
46480
|
let t = [];
|
|
46481
46481
|
for (let n of e.els) {
|
|
46482
|
-
|
|
46483
|
-
|
|
46484
|
-
|
|
46482
|
+
let r = e.css(n).overflowX;
|
|
46483
|
+
if (r !== "auto" && r !== "scroll" || n.clientWidth < 24 || n.scrollWidth <= n.clientWidth + 8) continue;
|
|
46484
|
+
let i = typeof n.className == "string" ? n.className : "";
|
|
46485
|
+
/scroll-fade-x(-js)?/.test(i) || J2(n, e.css(n)) || t.push(W2(this, n, `horizontal scroller (scrollWidth ${n.scrollWidth} > clientWidth ${n.clientWidth}) with no fade`));
|
|
46485
46486
|
}
|
|
46486
46487
|
return t;
|
|
46487
46488
|
}
|
|
@@ -46549,16 +46550,36 @@ var r4 = (e) => getComputedStyle(e), i4 = {
|
|
|
46549
46550
|
severity: "warn",
|
|
46550
46551
|
description: "Part 5: raw hex only for the status trio (#50E3C2/#EE0000/#F5A623) — a saturated non-token color on small UI text.",
|
|
46551
46552
|
check(e) {
|
|
46552
|
-
let t = [];
|
|
46553
|
-
for (let
|
|
46554
|
-
|
|
46555
|
-
|
|
46556
|
-
|
|
46557
|
-
|
|
46558
|
-
let
|
|
46559
|
-
if (
|
|
46560
|
-
let
|
|
46561
|
-
|
|
46553
|
+
let t = [], n = /* @__PURE__ */ new Set();
|
|
46554
|
+
for (let e of Z2) {
|
|
46555
|
+
let t = q2(`rgb(${parseInt(e.slice(1, 3), 16)}, ${parseInt(e.slice(3, 5), 16)}, ${parseInt(e.slice(5, 7), 16)})`);
|
|
46556
|
+
t && n.add(t);
|
|
46557
|
+
}
|
|
46558
|
+
try {
|
|
46559
|
+
let t = e.root, r = t.documentElement;
|
|
46560
|
+
if (r && t.body) {
|
|
46561
|
+
let i = e.css(r), a = t.createElement("span");
|
|
46562
|
+
a.style.display = "none", t.body.appendChild(a);
|
|
46563
|
+
for (let e = 0; e < i.length; e++) {
|
|
46564
|
+
let t = i[e];
|
|
46565
|
+
if (!t.startsWith("--")) continue;
|
|
46566
|
+
let r = i.getPropertyValue(t).trim();
|
|
46567
|
+
if (!r || r.length > 40 || (a.style.color = "", a.style.color = r, !a.style.color)) continue;
|
|
46568
|
+
let o = q2(getComputedStyle(a).color);
|
|
46569
|
+
o && n.add(o);
|
|
46570
|
+
}
|
|
46571
|
+
a.remove();
|
|
46572
|
+
}
|
|
46573
|
+
} catch {}
|
|
46574
|
+
for (let r of e.els) {
|
|
46575
|
+
if (!O4(r)) continue;
|
|
46576
|
+
let i = (r.getAttribute("style") ?? "").match(/#[0-9a-fA-F]{6}/g) ?? [], a = e.css(r);
|
|
46577
|
+
if ((parseFloat(a.fontSize) || 0) >= 16) continue;
|
|
46578
|
+
for (let e of i) Z2.has(e.toLowerCase()) || t.push(W2(this, r, `hardcoded ${e} (not the brand status trio)`));
|
|
46579
|
+
let o = q2(a.color);
|
|
46580
|
+
if (o && i.length === 0 && !n.has(o)) {
|
|
46581
|
+
let [e, n, i] = o.split(",").map((e) => parseFloat(e));
|
|
46582
|
+
Number.isFinite(e) && k4(e, n, i) && t.push(W2(this, r, `saturated non-token color ${a.color} on small UI text`));
|
|
46562
46583
|
}
|
|
46563
46584
|
}
|
|
46564
46585
|
return t;
|
|
@@ -46687,8 +46708,8 @@ var r4 = (e) => getComputedStyle(e), i4 = {
|
|
|
46687
46708
|
t.push(W2(this, n, "interactive control with cursor:text"));
|
|
46688
46709
|
continue;
|
|
46689
46710
|
}
|
|
46690
|
-
if (r === "pointer" && n.matches("p, h1, h2, h3, h4, h5, h6, span
|
|
46691
|
-
if (n.closest("button, a, [role=\"button\"], [onclick]") || n.matches("button, a, [role=\"button\"]")) continue;
|
|
46711
|
+
if (r === "pointer" && n.matches("p, h1, h2, h3, h4, h5, h6, span")) {
|
|
46712
|
+
if (n.closest("button, a, [role=\"button\"], [onclick], label") || n.matches("button, a, [role=\"button\"]")) continue;
|
|
46692
46713
|
t.push(W2(this, n, `static ${n.tagName.toLowerCase()} with cursor:pointer and no interactive ancestor`));
|
|
46693
46714
|
}
|
|
46694
46715
|
}
|
|
@@ -46838,21 +46859,30 @@ function j4(e = typeof document < "u" ? document : {}) {
|
|
|
46838
46859
|
return n || (n = getComputedStyle(e), t.set(e, n)), n;
|
|
46839
46860
|
};
|
|
46840
46861
|
r4 = n;
|
|
46841
|
-
let r = Array.from(e.querySelectorAll("*")), i = [], a = e.documentElement ?? null, o = e.body ?? null;
|
|
46862
|
+
let r = Array.from(e.querySelectorAll("*")), i = [], a = e.documentElement ?? null, o = e.body ?? null, s = (a?.getBoundingClientRect().width ?? 0) > 0;
|
|
46842
46863
|
for (let e of r) {
|
|
46843
46864
|
if (e === a || e === o || e.closest("#linear-grab-root, #claude-agent-glow-border, [id^=\"react-scan\"]")) continue;
|
|
46844
46865
|
let t = G2(e);
|
|
46845
|
-
|
|
46866
|
+
if (s) {
|
|
46867
|
+
if (t.width < 2 || t.height < 2) continue;
|
|
46868
|
+
} else if (t.width === 0 && t.height === 0 && e.children.length === 0) continue;
|
|
46869
|
+
i.push(e);
|
|
46846
46870
|
}
|
|
46847
|
-
let
|
|
46871
|
+
let c = {
|
|
46848
46872
|
root: e,
|
|
46849
46873
|
els: i,
|
|
46850
46874
|
css: n
|
|
46851
|
-
},
|
|
46875
|
+
}, l = [];
|
|
46852
46876
|
for (let e of [...E4, ...D4]) try {
|
|
46853
|
-
|
|
46877
|
+
l.push(...e.check(c));
|
|
46854
46878
|
} catch {}
|
|
46855
|
-
|
|
46879
|
+
r4 = (e) => getComputedStyle(e);
|
|
46880
|
+
let u = /* @__PURE__ */ new Map();
|
|
46881
|
+
for (let e of l) {
|
|
46882
|
+
let t = `${e.ruleId}|${e.selector}|${e.evidence}`, n = u.get(t);
|
|
46883
|
+
n ? n.count = (n.count ?? 1) + 1 : u.set(t, e);
|
|
46884
|
+
}
|
|
46885
|
+
return [...u.values()];
|
|
46856
46886
|
}
|
|
46857
46887
|
function M4(e) {
|
|
46858
46888
|
let t = /* @__PURE__ */ new Map();
|
|
@@ -46865,11 +46895,11 @@ function M4(e) {
|
|
|
46865
46895
|
return n === r ? t[1].length === e[1].length ? e[0].localeCompare(t[0]) : t[1].length - e[1].length : n - r;
|
|
46866
46896
|
}), r = e.length, i = e.filter((e) => e.severity === "error").length, a = new Set(e.map((e) => e.page).filter(Boolean)).size > 1, o = [`# Slop scan — ${i} error${i === 1 ? "" : "s"}, ${r - i} warn (${r} total)`, ""];
|
|
46867
46897
|
for (let [e, t] of n) {
|
|
46868
|
-
let n = t[0];
|
|
46869
|
-
o.push(`## ${e} — ${n.severity} ×${
|
|
46898
|
+
let n = t[0], r = t.reduce((e, t) => e + (t.count ?? 1), 0);
|
|
46899
|
+
o.push(`## ${e} — ${n.severity} ×${r} [${n.part}]`), o.push(n.description);
|
|
46870
46900
|
for (let e of t) {
|
|
46871
|
-
let t = e.component || e.source ? ` — ${[e.component, e.source].filter(Boolean).join(" @ ")}` : "";
|
|
46872
|
-
o.push(`- ${a && e.page ? `\`${e.page}\` ` : ""}\`${e.selector}
|
|
46901
|
+
let t = e.component || e.source ? ` — ${[e.component, e.source].filter(Boolean).join(" @ ")}` : "", n = (e.count ?? 1) > 1 ? ` ×${e.count}` : "";
|
|
46902
|
+
o.push(`- ${a && e.page ? `\`${e.page}\` ` : ""}\`${e.selector}\`${n} — ${e.evidence}${t}`);
|
|
46873
46903
|
}
|
|
46874
46904
|
o.push("");
|
|
46875
46905
|
}
|
|
@@ -47014,21 +47044,21 @@ function Y4() {
|
|
|
47014
47044
|
}
|
|
47015
47045
|
//#endregion
|
|
47016
47046
|
//#region src/panel/views/DesignView.tsx
|
|
47017
|
-
var X4 = /*#__PURE__*/ P("<span class=\"inline-block min-w-[7ch] text-center\">Extract"), Z4 = /*#__PURE__*/ P("<div class=\"relative flex flex-col gap-2 pl-4\"><div class=\"bg-border absolute top-1 bottom-1 left-[5px] w-px\"aria-hidden>"), Q4 = /*#__PURE__*/ P("<span class=\"text-success text-[12px] leading-none\">✓"), $4 = /*#__PURE__*/ P("<svg width=12 height=12 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round aria-hidden><path d=\"M4 4l8 8M12 4l-8 8\">"), e3 = /*#__PURE__*/ P("<div class=\"flex items-center justify-end gap-1 px-1\">"), t3 = /*#__PURE__*/ P("<span class=\"relative inline-flex items-center justify-center\"><svg width=12 height=12 viewBox=\"0 0 16 16\"fill=currentColor aria-hidden><rect x=3.5 y=3 width=3.2 height=10 rx=1></rect><rect x=9.3 y=3 width=3.2 height=10 rx=1></rect></svg><span class=\"bg-success absolute -top-0.5 -right-0.5 size-1.5 animate-pulse rounded-full\"aria-hidden>"), n3 = /*#__PURE__*/ P("<span class=\"inline-block min-w-[5ch] text-center\">Audit"), r3 = /*#__PURE__*/ P("<div class=\"flex max-h-72 flex-col gap-1.5 overflow-y-auto pr-2\">"), i3 = /*#__PURE__*/ P("<span class=\"text-[12px] leading-none\">✓"), a3 = /*#__PURE__*/ P("<div class=\"flex items-center gap-1 px-1\">"), o3 = /*#__PURE__*/ P("<span class=\"text-text-faint font-normal tabular-nums\"> · <!> pages"), s3 = /*#__PURE__*/ P("<span class=\"inline-block min-w-[4ch] text-center\">Scan"), c3 = /*#__PURE__*/ P("<div class=\"flex items-center gap-1 px-1\"><button class=\"border-border cursor-pointer rounded-full border px-2 py-0.5 text-[10px] font-medium tabular-nums\"> errors</button><button class=\"border-border cursor-pointer rounded-full border px-2 py-0.5 text-[10px] font-medium tabular-nums\"> warns"), l3 = /*#__PURE__*/ P("<div class=\"flex h-full flex-col gap-3 overflow-y-auto pt-3 pb-4 pr-3 pl-2\"><div class=\"flex items-center justify-between gap-2 px-1\"><div class=min-w-0><p class=\"text-text text-[12.5px] font-semibold\">Design genomes</p><p class=\"text-text-faint text-[10.5px] leading-snug\">Point at a component → get its structure, tokens and interaction states as a spec you can hand to an agent.</p></div></div><div class=\"border-border mt-1 flex flex-col gap-2 border-t pt-3\"><div class=\"flex items-center justify-between gap-2 px-1\"><div class=min-w-0><p class=\"text-text text-[12.5px] font-semibold\">CSS slowdowns</p><p class=\"text-text-faint text-[10.5px] leading-snug\">Transitions/delays over the 100ms house cap (§42) on interactive elements — feedback that animates instead of being instant. Live hits appear as you use the app; Audit sweeps the whole page.</p></div><div class=\"flex shrink-0 items-center gap-1\"></div></div></div><div class=\"border-border mt-1 flex flex-col gap-2 border-t pt-3\"><div class=\"flex items-center justify-between gap-2 px-1\"><div class=min-w-0><p class=\"text-text text-[12.5px] font-semibold\">Slop scan</p><p class=\"text-text-faint text-[10.5px] leading-snug\">Design-contract drift — Linear-primitives rules checked against the live DOM. Results accumulate per page as you navigate; re-scanning a page overwrites only that page's findings.</p></div><div class=\"flex shrink-0 items-center gap-1\">"), u3 = /*#__PURE__*/ P("<p class=\"text-text mt-1 text-[11px] font-semibold\">Interaction states"), d3 = /*#__PURE__*/ P("<svg width=12 height=12 viewBox=\"0 0 16 16\"aria-hidden><rect x=3.5 y=3.5 width=9 height=9 rx=1.5 fill=currentColor>"), f3 = /*#__PURE__*/ P("<span class=\"text-warn text-[10.5px] font-medium tabular-nums\">s · <!> states"), p3 = /*#__PURE__*/ P("<div class=\"border-border flex flex-col gap-2 border-t px-2.5 py-2\"><p class=\"text-text-faint truncate text-[10px]\"></p><div class=\"flex max-h-64 flex-col gap-2 overflow-y-auto pr-2\"></div><div class=\"flex items-center gap-1\">"), m3 = /*#__PURE__*/ P("<div class=relative><span class=\"border-border bg-surface absolute top-3 -left-[13.5px] size-[9px] rounded-full border\"aria-hidden></span><div class=\"bg-surface border-border flex flex-col rounded-lg border\"><button class=\"flex w-full cursor-pointer items-center gap-2 px-2.5 py-2 text-left\"><span class=\"text-accent min-w-0 truncate font-mono text-[12px]\"></span><span class=\"text-text-faint ml-auto shrink-0 text-[10.5px] tabular-nums\"> roles<!> · </span><svg width=10 height=10 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 class=\"text-text-faint shrink-0 transition-transform\"aria-hidden><path d=\"m4 6 4 4 4-4\">"), h3 = /*#__PURE__*/ P("<span class=text-text-faint> ×"), g3 = /*#__PURE__*/ P("<div class=\"flex flex-col gap-0.5\"><p class=\"text-text text-[11px] font-medium\">"), _3 = /*#__PURE__*/ P("<span class=text-accent> ← var(<!>)"), v3 = /*#__PURE__*/ P("<p class=\"text-text-dim font-mono text-[10px] leading-snug break-all\">: "), y3 = /*#__PURE__*/ P("<div class=\"flex flex-col gap-0.5\"><p class=\"text-warn text-[10.5px] font-medium\"> — "), b3 = /*#__PURE__*/ P("<p class=\"text-text-dim font-mono text-[10px] leading-snug break-all\">: <!> → "), x3 = /*#__PURE__*/ P("<svg width=13 height=13 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round aria-hidden><circle cx=8 cy=8 r=6></circle><circle cx=8 cy=8 r=2 fill=currentColor stroke=none>"), S3 = /*#__PURE__*/ P("<svg width=13 height=13 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linejoin=round aria-hidden><rect x=5.5 y=5.5 width=9 height=9 rx=1.5></rect><path d=\"M10.5 5.5v-2a2 2 0 0 0-2-2h-5a2 2 0 0 0-2 2v5a2 2 0 0 0 2 2h2\">"), C3 = /*#__PURE__*/ P("<svg width=12 height=12 viewBox=\"0 0 16 16\"fill=currentColor aria-hidden><path d=\"M4.5 2.5v11l9-5.5z\">"), w3 = /*#__PURE__*/ P("<p class=\"text-text-faint px-1 text-[10.5px]\">Nothing caught yet — interact with the app, or run Audit."), T3 = /*#__PURE__*/ P("<span class=\"text-text-dim font-mono text-[10px] break-all\">"), E3 = /*#__PURE__*/ P("<span class=\"text-danger text-[10px] leading-snug\">⚠ layout/paint transition: "), D3 = /*#__PURE__*/ P("<span class=\"text-danger text-[10px] leading-snug\">⚠ ease-in easing: "), O3 = /*#__PURE__*/ P("<div class=\"bg-surface border-border flex flex-col gap-0.5 rounded-lg border p-2\"><div class=\"flex items-center gap-2\"><span class=\"text-warn shrink-0 text-[10px] font-semibold tracking-wide uppercase\"></span><span class=\"text-accent min-w-0 truncate font-mono text-[11.5px]\"></span><span class=\"text-text ml-auto shrink-0 text-[11px] font-medium tabular-nums\">ms</span></div><span class=\"text-text-dim text-[10px] leading-snug\"></span><span class=\"text-text-faint text-[10px] leading-snug\">"), k3 = /*#__PURE__*/ P("<svg width=13 height=13 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round aria-hidden><path d=\"M8 1.5 9.6 6l4.4 1.6L9.6 9.2 8 13.7 6.4 9.2 2 7.6 6.4 6Z\"></path><path d=\"M13 11.5l.6 1.7 1.7.6-1.7.6-.6 1.7-.6-1.7-1.7-.6 1.7-.6Z\">"), A3 = /*#__PURE__*/ P("<p class=\"text-text-faint px-1 text-[10.5px]\">No scan yet — click Scan to audit this page against the contract."), j3 = /*#__PURE__*/ P("<div class=\"border-border flex flex-col gap-1 border-t px-2 py-1.5\"><p class=\"text-text-dim text-[10px] leading-snug\">"), M3 = /*#__PURE__*/ P("<div class=\"bg-surface border-border flex flex-col rounded-lg border\"><button class=\"flex w-full cursor-pointer items-center gap-2 px-2 py-1.5 text-left\"><span class=\"size-1.5 shrink-0 rounded-full\"aria-hidden></span><span class=\"text-accent min-w-0 truncate font-mono text-[11.5px]\"></span><span class=\"text-text-faint ml-auto shrink-0 text-[10.5px] tabular-nums\">×</span><svg width=10 height=10 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 class=\"text-text-faint shrink-0 transition-transform\"aria-hidden><path d=\"m4 6 4 4 4-4\">"), N3 = /*#__PURE__*/ P("<span class=text-accent> "), P3 = /*#__PURE__*/ P("<button class=\"hover:bg-surface-2 flex w-full cursor-pointer flex-col gap-0.5 rounded px-1 py-0.5 text-left\"title=\"Reveal on the page\"><span class=\"text-text min-w-0 truncate font-mono text-[10.5px]\"></span><span class=\"text-text-faint font-mono text-[10px] leading-snug break-all\">"),
|
|
47018
|
-
function
|
|
47047
|
+
var X4 = /*#__PURE__*/ P("<span class=\"inline-block min-w-[7ch] text-center\">Extract"), Z4 = /*#__PURE__*/ P("<div class=\"relative flex flex-col gap-2 pl-4\"><div class=\"bg-border absolute top-1 bottom-1 left-[5px] w-px\"aria-hidden>"), Q4 = /*#__PURE__*/ P("<span class=\"text-success text-[12px] leading-none\">✓"), $4 = /*#__PURE__*/ P("<svg width=12 height=12 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round aria-hidden><path d=\"M4 4l8 8M12 4l-8 8\">"), e3 = /*#__PURE__*/ P("<div class=\"flex items-center justify-end gap-1 px-1\">"), t3 = /*#__PURE__*/ P("<span class=\"relative inline-flex items-center justify-center\"><svg width=12 height=12 viewBox=\"0 0 16 16\"fill=currentColor aria-hidden><rect x=3.5 y=3 width=3.2 height=10 rx=1></rect><rect x=9.3 y=3 width=3.2 height=10 rx=1></rect></svg><span class=\"bg-success absolute -top-0.5 -right-0.5 size-1.5 animate-pulse rounded-full\"aria-hidden>"), n3 = /*#__PURE__*/ P("<span class=\"inline-block min-w-[5ch] text-center\">Audit"), r3 = /*#__PURE__*/ P("<div class=\"flex max-h-72 flex-col gap-1.5 overflow-y-auto pr-2\">"), i3 = /*#__PURE__*/ P("<span class=\"text-[12px] leading-none\">✓"), a3 = /*#__PURE__*/ P("<div class=\"flex items-center gap-1 px-1\">"), o3 = /*#__PURE__*/ P("<span class=\"text-text-faint font-normal tabular-nums\"> · <!> pages"), s3 = /*#__PURE__*/ P("<span class=\"inline-block min-w-[4ch] text-center\">Scan"), c3 = /*#__PURE__*/ P("<div class=\"flex items-center gap-1 px-1\"><button class=\"border-border cursor-pointer rounded-full border px-2 py-0.5 text-[10px] font-medium tabular-nums\"> errors</button><button class=\"border-border cursor-pointer rounded-full border px-2 py-0.5 text-[10px] font-medium tabular-nums\"> warns"), l3 = /*#__PURE__*/ P("<div class=\"flex h-full flex-col gap-3 overflow-y-auto pt-3 pb-4 pr-3 pl-2\"><div class=\"flex items-center justify-between gap-2 px-1\"><div class=min-w-0><p class=\"text-text text-[12.5px] font-semibold\">Design genomes</p><p class=\"text-text-faint text-[10.5px] leading-snug\">Point at a component → get its structure, tokens and interaction states as a spec you can hand to an agent.</p></div></div><div class=\"border-border mt-1 flex flex-col gap-2 border-t pt-3\"><div class=\"flex items-center justify-between gap-2 px-1\"><div class=min-w-0><p class=\"text-text text-[12.5px] font-semibold\">CSS slowdowns</p><p class=\"text-text-faint text-[10.5px] leading-snug\">Transitions/delays over the 100ms house cap (§42) on interactive elements — feedback that animates instead of being instant. Live hits appear as you use the app; Audit sweeps the whole page.</p></div><div class=\"flex shrink-0 items-center gap-1\"></div></div></div><div class=\"border-border mt-1 flex flex-col gap-2 border-t pt-3\"><div class=\"flex items-center justify-between gap-2 px-1\"><div class=min-w-0><p class=\"text-text text-[12.5px] font-semibold\">Slop scan</p><p class=\"text-text-faint text-[10.5px] leading-snug\">Design-contract drift — Linear-primitives rules checked against the live DOM. Results accumulate per page as you navigate; re-scanning a page overwrites only that page's findings.</p></div><div class=\"flex shrink-0 items-center gap-1\">"), u3 = /*#__PURE__*/ P("<p class=\"text-text mt-1 text-[11px] font-semibold\">Interaction states"), d3 = /*#__PURE__*/ P("<svg width=12 height=12 viewBox=\"0 0 16 16\"aria-hidden><rect x=3.5 y=3.5 width=9 height=9 rx=1.5 fill=currentColor>"), f3 = /*#__PURE__*/ P("<span class=\"text-warn text-[10.5px] font-medium tabular-nums\">s · <!> states"), p3 = /*#__PURE__*/ P("<div class=\"border-border flex flex-col gap-2 border-t px-2.5 py-2\"><p class=\"text-text-faint truncate text-[10px]\"></p><div class=\"flex max-h-64 flex-col gap-2 overflow-y-auto pr-2\"></div><div class=\"flex items-center gap-1\">"), m3 = /*#__PURE__*/ P("<div class=relative><span class=\"border-border bg-surface absolute top-3 -left-[13.5px] size-[9px] rounded-full border\"aria-hidden></span><div class=\"bg-surface border-border flex flex-col rounded-lg border\"><button class=\"flex w-full cursor-pointer items-center gap-2 px-2.5 py-2 text-left\"><span class=\"text-accent min-w-0 truncate font-mono text-[12px]\"></span><span class=\"text-text-faint ml-auto shrink-0 text-[10.5px] tabular-nums\"> roles<!> · </span><svg width=10 height=10 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 class=\"text-text-faint shrink-0 transition-transform\"aria-hidden><path d=\"m4 6 4 4 4-4\">"), h3 = /*#__PURE__*/ P("<span class=text-text-faint> ×"), g3 = /*#__PURE__*/ P("<div class=\"flex flex-col gap-0.5\"><p class=\"text-text text-[11px] font-medium\">"), _3 = /*#__PURE__*/ P("<span class=text-accent> ← var(<!>)"), v3 = /*#__PURE__*/ P("<p class=\"text-text-dim font-mono text-[10px] leading-snug break-all\">: "), y3 = /*#__PURE__*/ P("<div class=\"flex flex-col gap-0.5\"><p class=\"text-warn text-[10.5px] font-medium\"> — "), b3 = /*#__PURE__*/ P("<p class=\"text-text-dim font-mono text-[10px] leading-snug break-all\">: <!> → "), x3 = /*#__PURE__*/ P("<svg width=13 height=13 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round aria-hidden><circle cx=8 cy=8 r=6></circle><circle cx=8 cy=8 r=2 fill=currentColor stroke=none>"), S3 = /*#__PURE__*/ P("<svg width=13 height=13 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linejoin=round aria-hidden><rect x=5.5 y=5.5 width=9 height=9 rx=1.5></rect><path d=\"M10.5 5.5v-2a2 2 0 0 0-2-2h-5a2 2 0 0 0-2 2v5a2 2 0 0 0 2 2h2\">"), C3 = /*#__PURE__*/ P("<svg width=12 height=12 viewBox=\"0 0 16 16\"fill=currentColor aria-hidden><path d=\"M4.5 2.5v11l9-5.5z\">"), w3 = /*#__PURE__*/ P("<p class=\"text-text-faint px-1 text-[10.5px]\">Nothing caught yet — interact with the app, or run Audit."), T3 = /*#__PURE__*/ P("<span class=\"text-text-dim font-mono text-[10px] break-all\">"), E3 = /*#__PURE__*/ P("<span class=\"text-danger text-[10px] leading-snug\">⚠ layout/paint transition: "), D3 = /*#__PURE__*/ P("<span class=\"text-danger text-[10px] leading-snug\">⚠ ease-in easing: "), O3 = /*#__PURE__*/ P("<div class=\"bg-surface border-border flex flex-col gap-0.5 rounded-lg border p-2\"><div class=\"flex items-center gap-2\"><span class=\"text-warn shrink-0 text-[10px] font-semibold tracking-wide uppercase\"></span><span class=\"text-accent min-w-0 truncate font-mono text-[11.5px]\"></span><span class=\"text-text ml-auto shrink-0 text-[11px] font-medium tabular-nums\">ms</span></div><span class=\"text-text-dim text-[10px] leading-snug\"></span><span class=\"text-text-faint text-[10px] leading-snug\">"), k3 = /*#__PURE__*/ P("<svg width=13 height=13 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round aria-hidden><path d=\"M8 1.5 9.6 6l4.4 1.6L9.6 9.2 8 13.7 6.4 9.2 2 7.6 6.4 6Z\"></path><path d=\"M13 11.5l.6 1.7 1.7.6-1.7.6-.6 1.7-.6-1.7-1.7-.6 1.7-.6Z\">"), A3 = /*#__PURE__*/ P("<p class=\"text-text-faint px-1 text-[10.5px]\">No scan yet — click Scan to audit this page against the contract."), j3 = /*#__PURE__*/ P("<div class=\"border-border flex flex-col gap-1 border-t px-2 py-1.5\"><p class=\"text-text-dim text-[10px] leading-snug\">"), M3 = /*#__PURE__*/ P("<div class=\"bg-surface border-border flex flex-col rounded-lg border\"><button class=\"flex w-full cursor-pointer items-center gap-2 px-2 py-1.5 text-left\"><span class=\"size-1.5 shrink-0 rounded-full\"aria-hidden></span><span class=\"text-accent min-w-0 truncate font-mono text-[11.5px]\"></span><span class=\"text-text-faint ml-auto shrink-0 text-[10.5px] tabular-nums\">×</span><svg width=10 height=10 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 class=\"text-text-faint shrink-0 transition-transform\"aria-hidden><path d=\"m4 6 4 4 4-4\">"), N3 = /*#__PURE__*/ P("<span class=text-accent> "), P3 = /*#__PURE__*/ P("<span class=\"text-text-faint tabular-nums\"> ×"), F3 = /*#__PURE__*/ P("<button class=\"hover:bg-surface-2 flex w-full cursor-pointer flex-col gap-0.5 rounded px-1 py-0.5 text-left\"title=\"Reveal on the page\"><span class=\"text-text min-w-0 truncate font-mono text-[10.5px]\"></span><span class=\"text-text-faint font-mono text-[10px] leading-snug break-all\">"), I3 = "linear-grab:genomes:v1", L3 = 30;
|
|
47048
|
+
function R3() {
|
|
47019
47049
|
try {
|
|
47020
|
-
return JSON.parse(localStorage.getItem(
|
|
47050
|
+
return JSON.parse(localStorage.getItem(I3) ?? "[]");
|
|
47021
47051
|
} catch {
|
|
47022
47052
|
return [];
|
|
47023
47053
|
}
|
|
47024
47054
|
}
|
|
47025
|
-
function
|
|
47055
|
+
function z3(e) {
|
|
47026
47056
|
try {
|
|
47027
|
-
localStorage.setItem(
|
|
47057
|
+
localStorage.setItem(I3, JSON.stringify(e.slice(0, L3)));
|
|
47028
47058
|
} catch {}
|
|
47029
47059
|
}
|
|
47030
|
-
var
|
|
47031
|
-
function
|
|
47060
|
+
var B3 = /* @__PURE__ */ new Map();
|
|
47061
|
+
function V3(e) {
|
|
47032
47062
|
let t = e.el?.deref();
|
|
47033
47063
|
if (!(t instanceof HTMLElement) || !t.isConnected) return !1;
|
|
47034
47064
|
t.scrollIntoView({
|
|
@@ -47040,8 +47070,8 @@ function B3(e) {
|
|
|
47040
47070
|
t.style.outline = n, t.style.outlineOffset = r;
|
|
47041
47071
|
}, 1400), !0;
|
|
47042
47072
|
}
|
|
47043
|
-
function
|
|
47044
|
-
let [e, t] = T(
|
|
47073
|
+
function H3() {
|
|
47074
|
+
let [e, t] = T(R3()), [n, r] = T(null), [i, a] = T(null), [o, s] = T(null), [c, l] = T(null), [u, d] = T(null), [f, p] = T({
|
|
47045
47075
|
active: !1,
|
|
47046
47076
|
msLeft: 0,
|
|
47047
47077
|
total: 0,
|
|
@@ -47106,14 +47136,14 @@ function V3() {
|
|
|
47106
47136
|
l("Clipboard was blocked — click Copy again.");
|
|
47107
47137
|
}
|
|
47108
47138
|
}, Ce = (e) => {
|
|
47109
|
-
t(e),
|
|
47139
|
+
t(e), z3(e);
|
|
47110
47140
|
}, we = async () => {
|
|
47111
47141
|
l(null), a("extract"), window.dispatchEvent(new CustomEvent(BZ));
|
|
47112
47142
|
try {
|
|
47113
47143
|
let t = await u2();
|
|
47114
47144
|
if (!t) return;
|
|
47115
47145
|
let n = await e2(t), i = Date.now();
|
|
47116
|
-
|
|
47146
|
+
B3.set(i, new WeakRef(t)), Ce([{
|
|
47117
47147
|
id: i,
|
|
47118
47148
|
genome: n
|
|
47119
47149
|
}, ...e()]), r(i);
|
|
@@ -47125,10 +47155,10 @@ function V3() {
|
|
|
47125
47155
|
}, Te = async (t) => {
|
|
47126
47156
|
l(null), a(t.id), window.dispatchEvent(new CustomEvent(BZ));
|
|
47127
47157
|
try {
|
|
47128
|
-
let n =
|
|
47158
|
+
let n = B3.get(t.id)?.deref() ?? null;
|
|
47129
47159
|
if (!n || !n.isConnected) {
|
|
47130
47160
|
if (n = await u2(), !n) return;
|
|
47131
|
-
|
|
47161
|
+
B3.set(t.id, new WeakRef(n));
|
|
47132
47162
|
}
|
|
47133
47163
|
let r = await c2(n, 8e3, (e) => s(Math.ceil(e / 1e3)));
|
|
47134
47164
|
r.length === 0 && l("No state changes captured — hover/open the component while the 8s window runs."), Ce(e().map((e) => e.id === t.id ? {
|
|
@@ -47150,7 +47180,7 @@ function V3() {
|
|
|
47150
47180
|
l("Clipboard was blocked — click Copy again.");
|
|
47151
47181
|
}
|
|
47152
47182
|
}, De = (t) => {
|
|
47153
|
-
|
|
47183
|
+
B3.delete(t), Ce(e().filter((e) => e.id !== t));
|
|
47154
47184
|
}, [Oe, ke] = T(!1), Ae = async () => {
|
|
47155
47185
|
try {
|
|
47156
47186
|
let t = e().map((e) => l2(e.genome)).join("\n\n---\n\n");
|
|
@@ -47159,7 +47189,7 @@ function V3() {
|
|
|
47159
47189
|
l("Clipboard was blocked — click Copy again.");
|
|
47160
47190
|
}
|
|
47161
47191
|
}, je = () => {
|
|
47162
|
-
|
|
47192
|
+
B3.clear(), Ce([]), r(null);
|
|
47163
47193
|
};
|
|
47164
47194
|
return (() => {
|
|
47165
47195
|
var t = l3(), a = t.firstChild;
|
|
@@ -47620,7 +47650,7 @@ function V3() {
|
|
|
47620
47650
|
var r = M3(), i = r.firstChild, a = i.firstChild, o = a.nextSibling, s = o.nextSibling;
|
|
47621
47651
|
s.firstChild;
|
|
47622
47652
|
var c = s.nextSibling;
|
|
47623
|
-
return i.$$click = () => ae(n() ? null : t.ruleId), F(o, () => t.ruleId), F(s, () => e.
|
|
47653
|
+
return i.$$click = () => ae(n() ? null : t.ruleId), F(o, () => t.ruleId), F(s, () => e.reduce((e, t) => e + (t.count ?? 1), 0), null), F(r, M(N, {
|
|
47624
47654
|
get when() {
|
|
47625
47655
|
return n();
|
|
47626
47656
|
},
|
|
@@ -47629,9 +47659,9 @@ function V3() {
|
|
|
47629
47659
|
return F(r, () => t.description), F(n, M(Ue, {
|
|
47630
47660
|
each: e,
|
|
47631
47661
|
children: (e) => (() => {
|
|
47632
|
-
var t =
|
|
47662
|
+
var t = F3(), n = t.firstChild, r = n.nextSibling;
|
|
47633
47663
|
return t.$$click = () => {
|
|
47634
|
-
|
|
47664
|
+
V3(e) || l(e.page === location.pathname ? "Element is gone — run Scan again." : `This finding is on ${e.page} — navigate there to reveal it.`);
|
|
47635
47665
|
}, F(n, M(N, {
|
|
47636
47666
|
get when() {
|
|
47637
47667
|
return ge() > 1;
|
|
@@ -47648,7 +47678,15 @@ function V3() {
|
|
|
47648
47678
|
var t = N3(), n = t.firstChild;
|
|
47649
47679
|
return F(t, () => e.component, n), t;
|
|
47650
47680
|
}
|
|
47651
|
-
}), null), F(n, () => e.selector, null), F(
|
|
47681
|
+
}), null), F(n, () => e.selector, null), F(n, M(N, {
|
|
47682
|
+
get when() {
|
|
47683
|
+
return (e.count ?? 1) > 1;
|
|
47684
|
+
},
|
|
47685
|
+
get children() {
|
|
47686
|
+
var t = P3();
|
|
47687
|
+
return t.firstChild, F(t, () => e.count, null), t;
|
|
47688
|
+
}
|
|
47689
|
+
}), null), F(t, M(N, {
|
|
47652
47690
|
get when() {
|
|
47653
47691
|
return e.source;
|
|
47654
47692
|
},
|
|
@@ -47735,7 +47773,7 @@ function V3() {
|
|
|
47735
47773
|
nt(["click"]);
|
|
47736
47774
|
//#endregion
|
|
47737
47775
|
//#region src/lib/projectConfig.ts
|
|
47738
|
-
var
|
|
47776
|
+
var U3 = [
|
|
47739
47777
|
"defaultTeamId",
|
|
47740
47778
|
"defaultProjectId",
|
|
47741
47779
|
"defaultLabelIds",
|
|
@@ -47750,29 +47788,29 @@ var H3 = [
|
|
|
47750
47788
|
"issueTemplate",
|
|
47751
47789
|
"testUsername"
|
|
47752
47790
|
];
|
|
47753
|
-
function
|
|
47791
|
+
function W3(e) {
|
|
47754
47792
|
let t = {};
|
|
47755
|
-
for (let n of
|
|
47793
|
+
for (let n of U3) {
|
|
47756
47794
|
let r = e[n];
|
|
47757
47795
|
r !== void 0 && r !== "" && !(Array.isArray(r) && r.length === 0) && (t[n] = r);
|
|
47758
47796
|
}
|
|
47759
47797
|
return t;
|
|
47760
47798
|
}
|
|
47761
|
-
function
|
|
47799
|
+
function G3(e, t) {
|
|
47762
47800
|
let n = {};
|
|
47763
|
-
for (let r of
|
|
47801
|
+
for (let r of U3) e[r] === void 0 && t[r] !== void 0 && (n[r] = t[r]);
|
|
47764
47802
|
return Object.keys(n).length ? n : null;
|
|
47765
47803
|
}
|
|
47766
47804
|
//#endregion
|
|
47767
47805
|
//#region src/lib/linear/auth.ts
|
|
47768
47806
|
zr();
|
|
47769
|
-
function
|
|
47807
|
+
function K3(e) {
|
|
47770
47808
|
let t = "";
|
|
47771
47809
|
for (let n of e) t += String.fromCharCode(n);
|
|
47772
47810
|
return btoa(t).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
|
|
47773
47811
|
}
|
|
47774
|
-
async function
|
|
47775
|
-
let t =
|
|
47812
|
+
async function q3(e) {
|
|
47813
|
+
let t = K3(crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(32))), n = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(t)), r = K3(new Uint8Array(n)), i = K3(crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(16))), a = chrome.identity.getRedirectURL(), o = new URL("https://linear.app/oauth/authorize");
|
|
47776
47814
|
o.searchParams.set("client_id", e), o.searchParams.set("redirect_uri", a), o.searchParams.set("response_type", "code"), o.searchParams.set("scope", "read,write"), o.searchParams.set("state", i), o.searchParams.set("code_challenge", r), o.searchParams.set("code_challenge_method", "S256");
|
|
47777
47815
|
let s = await chrome.identity.launchWebAuthFlow({
|
|
47778
47816
|
url: o.toString(),
|
|
@@ -47800,15 +47838,15 @@ async function K3(e) {
|
|
|
47800
47838
|
linearOauthClientId: e
|
|
47801
47839
|
});
|
|
47802
47840
|
}
|
|
47803
|
-
async function
|
|
47841
|
+
async function J3() {
|
|
47804
47842
|
await Tr({
|
|
47805
47843
|
linearAccessToken: void 0,
|
|
47806
47844
|
linearApiKey: void 0
|
|
47807
47845
|
});
|
|
47808
47846
|
}
|
|
47809
47847
|
zr(), xr(), Fx(), gD();
|
|
47810
|
-
var
|
|
47811
|
-
function
|
|
47848
|
+
var Y3 = /*#__PURE__*/ P("<div class=\"bg-surface-2 border-border flex rounded-md border p-0.5\">"), X3 = /*#__PURE__*/ P("<span class=\"text-text-faint text-[10.5px] leading-snug\">Cloud: picking an element opens the panel to draft & delegate to the Cursor agent. Local (react-grab style): picking auto-copies the element's context — source, stack, and your skills/memory paths — straight to the clipboard for a local Claude Code or Cursor session; the panel stays out of the way. Both share the same picker; switch anytime."), Z3 = /*#__PURE__*/ P("<label class=\"flex cursor-pointer items-center gap-2 select-none\"><input type=checkbox class=\"accent-accent rounded\"><span class=\"text-text text-[12px]\">Element screenshots"), Q3 = /*#__PURE__*/ P("<span class=\"text-text-faint text-[10.5px] leading-snug\">Captures a highlighted screenshot of each picked element and attaches it to the issue. Costs a beat on huge pages — with this off, picking is instant (pure react-grab speed)."), $3 = /*#__PURE__*/ P("<span class=text-text>Connected as <span class=font-medium></span> · <span class=text-text-dim>"), e6 = /*#__PURE__*/ P("<div class=\"bg-surface border-border flex items-center justify-between rounded-lg border p-2.5\"><span class=\"text-text text-[12px]\">"), t6 = /*#__PURE__*/ P("<option value>Select a team…"), n6 = /*#__PURE__*/ P("<option value>No project"), r6 = /*#__PURE__*/ P("<div class=\"flex flex-wrap gap-1\">"), i6 = /*#__PURE__*/ P("<label class=\"flex items-start gap-2\"><input type=checkbox class=\"accent-accent mt-0.5\"><span class=\"flex flex-col gap-0.5\"><span class=text-[12px]>Let agents close out Linear themselves</span><span class=\"text-text-faint text-[10.5px] leading-snug\">Embeds your Linear API key + raw GraphQL closeout recipes in every issue's Agent instructions — cloud agent VMs have no authenticated Linear MCP, so without this they can't comment, attach media, or move the issue. The key is visible to anyone who can read the issue."), a6 = /*#__PURE__*/ P("<p class=\"text-text-dim text-[11px]\">No agents found — install the Cursor integration in Linear first."), o6 = /*#__PURE__*/ P("<span class=\"text-text-faint text-[10.5px] leading-snug\">Empty = the default above (computer-use testing, video demo, PR + review babysitting)."), s6 = /*#__PURE__*/ P("<div class=\"flex flex-col gap-1.5\">"), c6 = /*#__PURE__*/ P("<div class=\"flex flex-col gap-1\"><span class=\"text-text-dim text-[11px] font-medium\">Mode</span><div class=\"bg-surface-2 border-border flex rounded-md border p-0.5\"></div><span class=\"text-text-faint text-[10.5px] leading-snug\">Beside page squeezes the app next to the panel, DevTools-style — nothing gets covered. Also toggleable from the dock icon in the panel header."), l6 = /*#__PURE__*/ P("<div class=\"flex flex-col gap-1\"><span class=\"text-text-dim text-[11px] font-medium\">Dock side</span><div class=\"bg-surface-2 border-border flex rounded-md border p-0.5\"></div><span class=\"text-text-faint text-[10.5px] leading-snug\">The launcher pill is draggable — park it anywhere it doesn't cover your app."), u6 = /*#__PURE__*/ P("<p class=\"text-text-faint text-[10.5px] leading-snug\">A committed <code>.lineargrab.json</code> at the repo root (where the bridge runs) shares team/project/labels, skills, staging branch, and workflow defaults with every machine and teammate — it seeds any setting you haven't set locally. Secrets never belong in it."), d6 = /*#__PURE__*/ P("<span class=\"inline-block min-w-[10ch] text-center\">"), f6 = /*#__PURE__*/ P("<div class=\"flex items-center gap-2\">"), p6 = /*#__PURE__*/ P("<option value>Select a channel…"), m6 = /*#__PURE__*/ P("<label class=\"flex cursor-pointer items-center gap-2 select-none\"><input type=checkbox class=\"accent-accent rounded\"><span class=\"text-text text-[12px]\">Announce new issues on create"), h6 = /*#__PURE__*/ P("<span class=\"text-text-faint text-[10.5px] leading-snug\">⚠️ Tokens are embedded in issue Agent-instructions so agents can post the finished demo — everyone who can read the issue can read them. Use single-channel-scoped bots."), g6 = /*#__PURE__*/ P("<div class=\"flex flex-col gap-1\"><span class=\"text-text-dim text-[11px] font-medium\">Provider preference</span><div class=\"bg-surface-2 border-border flex rounded-md border p-0.5\"><button>Auto</button><button>OpenAI</button><button>Anthropic"), _6 = /*#__PURE__*/ P("<p class=\"text-text-dim text-[11px]\">"), v6 = /*#__PURE__*/ P("<div class=min-h-[2lh]>"), y6 = /*#__PURE__*/ P("<ol class=\"text-text-faint flex list-decimal flex-col gap-1 pl-4 text-[11px] leading-relaxed\"><li>Pick an element on your running dev app.</li><li>Draft the issue (AI optional).</li><li>Create + delegate — Cursor's cloud agent fixes it and opens a PR.</li><li>Track and steer it from Activity."), b6 = /*#__PURE__*/ P("<div class=\"flex h-full flex-col gap-5 overflow-y-auto pt-3 pb-6 pl-3 pr-4\">"), x6 = /*#__PURE__*/ P("<button>"), S6 = /*#__PURE__*/ P("<div class=\"flex gap-1.5\">"), C6 = /*#__PURE__*/ P("<p class=\"text-text-faint text-center text-[10.5px]\">or"), w6 = /*#__PURE__*/ P("<span class=\"text-text-faint text-[10.5px] leading-snug\">Register this callback URL in your Linear OAuth app config:<br><span class=\"font-mono text-[10.5px] break-all\">"), T6 = /*#__PURE__*/ P("<div class=\"flex flex-col gap-3\">"), E6 = /*#__PURE__*/ P("<span class=text-text-dim>Connected — verifying…"), D6 = /*#__PURE__*/ P("<option> (<!>)"), O6 = /*#__PURE__*/ P("<option>"), k6 = /*#__PURE__*/ P("<button type=button><span class=\"mr-1 inline-block size-2 rounded-full align-middle\">"), A6 = /*#__PURE__*/ P("<option value>Select the agent…"), j6 = /*#__PURE__*/ P("<option>#"), M6 = /*#__PURE__*/ P("<p class=\"text-text-dim text-[11px]\">No key set — AI drafting disabled, manual drafting still works.");
|
|
47849
|
+
function N6() {
|
|
47812
47850
|
let e = or(), t = gr(() => ({
|
|
47813
47851
|
queryKey: ["settings"],
|
|
47814
47852
|
queryFn: wr,
|
|
@@ -47836,13 +47874,13 @@ function M6() {
|
|
|
47836
47874
|
retry: 0
|
|
47837
47875
|
})), [l, u] = T(!1), d = async () => {
|
|
47838
47876
|
try {
|
|
47839
|
-
await navigator.clipboard.writeText(JSON.stringify(
|
|
47877
|
+
await navigator.clipboard.writeText(JSON.stringify(W3(n()), null, 2) + "\n"), u(!0), setTimeout(() => u(!1), 1800);
|
|
47840
47878
|
} catch {}
|
|
47841
47879
|
}, f = () => {
|
|
47842
47880
|
let e = c.data?.projectConfig;
|
|
47843
47881
|
if (!e) return;
|
|
47844
47882
|
let t = {};
|
|
47845
|
-
for (let n of
|
|
47883
|
+
for (let n of U3) e[n] !== void 0 && (t[n] = e[n]);
|
|
47846
47884
|
r(t);
|
|
47847
47885
|
}, p = gr(() => ({
|
|
47848
47886
|
queryKey: ["linear-labels"],
|
|
@@ -47875,7 +47913,7 @@ function M6() {
|
|
|
47875
47913
|
}
|
|
47876
47914
|
E(!0), ee("");
|
|
47877
47915
|
try {
|
|
47878
|
-
await
|
|
47916
|
+
await q3(t), await e.invalidateQueries({ queryKey: ["settings"] }), await e.invalidateQueries({ queryKey: ["viewer"] }), await e.invalidateQueries({ queryKey: ["teams"] }), await e.invalidateQueries({ queryKey: ["agents"] }), await e.invalidateQueries({ queryKey: ["my-issues"] });
|
|
47879
47917
|
} catch (e) {
|
|
47880
47918
|
ee(e instanceof Error ? e.message : "OAuth flow failed.");
|
|
47881
47919
|
} finally {
|
|
@@ -47886,7 +47924,7 @@ function M6() {
|
|
|
47886
47924
|
async function ne() {
|
|
47887
47925
|
te(!0);
|
|
47888
47926
|
try {
|
|
47889
|
-
await
|
|
47927
|
+
await J3(), await e.invalidateQueries({ queryKey: ["settings"] }), await e.invalidateQueries({ queryKey: ["viewer"] }), await e.invalidateQueries({ queryKey: ["teams"] }), await e.invalidateQueries({ queryKey: ["agents"] }), await e.invalidateQueries({ queryKey: ["my-issues"] });
|
|
47890
47928
|
} finally {
|
|
47891
47929
|
te(!1);
|
|
47892
47930
|
}
|
|
@@ -47902,12 +47940,12 @@ function M6() {
|
|
|
47902
47940
|
return e ? `Drafting with ${e} — ${Nx[e].fast} (fast) / ${Nx[e].best} (best)` : null;
|
|
47903
47941
|
});
|
|
47904
47942
|
return (() => {
|
|
47905
|
-
var e =
|
|
47943
|
+
var e = b6();
|
|
47906
47944
|
return F(e, M(Rj, {
|
|
47907
47945
|
title: "Workflow",
|
|
47908
47946
|
get children() {
|
|
47909
47947
|
return [(() => {
|
|
47910
|
-
var e =
|
|
47948
|
+
var e = Y3();
|
|
47911
47949
|
return F(e, M(Ue, {
|
|
47912
47950
|
each: [{
|
|
47913
47951
|
id: "cloud",
|
|
@@ -47917,19 +47955,19 @@ function M6() {
|
|
|
47917
47955
|
label: "Local · clipboard"
|
|
47918
47956
|
}],
|
|
47919
47957
|
children: (e) => (() => {
|
|
47920
|
-
var t =
|
|
47958
|
+
var t = x6();
|
|
47921
47959
|
return t.$$click = () => void r({ workflowMode: e.id }), F(t, () => e.label), D(() => ot(t, `flex-1 rounded-[5px] px-2 py-1 text-[11.5px] font-medium transition-colors ${(n().workflowMode ?? "cloud") === e.id ? "bg-surface-3 text-text" : "text-text-dim hover:text-text cursor-pointer"}`)), t;
|
|
47922
47960
|
})()
|
|
47923
47961
|
})), e;
|
|
47924
|
-
})(),
|
|
47962
|
+
})(), X3()];
|
|
47925
47963
|
}
|
|
47926
47964
|
}), null), F(e, M(Rj, {
|
|
47927
47965
|
title: "Capture",
|
|
47928
47966
|
get children() {
|
|
47929
47967
|
return [(() => {
|
|
47930
|
-
var e =
|
|
47968
|
+
var e = Z3(), t = e.firstChild;
|
|
47931
47969
|
return t.addEventListener("change", (e) => void r({ captureShots: e.currentTarget.checked || void 0 })), D(() => t.checked = !!n().captureShots), e;
|
|
47932
|
-
})(),
|
|
47970
|
+
})(), Q3()];
|
|
47933
47971
|
}
|
|
47934
47972
|
}), null), F(e, M(Rj, {
|
|
47935
47973
|
title: "Linear",
|
|
@@ -47940,13 +47978,13 @@ function M6() {
|
|
|
47940
47978
|
},
|
|
47941
47979
|
get fallback() {
|
|
47942
47980
|
return (() => {
|
|
47943
|
-
var e =
|
|
47981
|
+
var e = T6();
|
|
47944
47982
|
return F(e, M(Lj, {
|
|
47945
47983
|
label: "Personal API key",
|
|
47946
47984
|
hint: "Create one at linear.app → Settings → API — fastest path.",
|
|
47947
47985
|
get children() {
|
|
47948
47986
|
return [(() => {
|
|
47949
|
-
var e =
|
|
47987
|
+
var e = S6();
|
|
47950
47988
|
return F(e, M(jj, {
|
|
47951
47989
|
type: "password",
|
|
47952
47990
|
placeholder: "lin_api_…",
|
|
@@ -47983,12 +48021,12 @@ function M6() {
|
|
|
47983
48021
|
}), null), F(e, M(N, {
|
|
47984
48022
|
when: br,
|
|
47985
48023
|
get children() {
|
|
47986
|
-
return [
|
|
48024
|
+
return [C6(), M(Lj, {
|
|
47987
48025
|
label: "OAuth client ID",
|
|
47988
48026
|
get children() {
|
|
47989
48027
|
return [
|
|
47990
48028
|
(() => {
|
|
47991
|
-
var e =
|
|
48029
|
+
var e = S6();
|
|
47992
48030
|
return F(e, M(jj, {
|
|
47993
48031
|
placeholder: "your-client-id",
|
|
47994
48032
|
get value() {
|
|
@@ -48016,7 +48054,7 @@ function M6() {
|
|
|
48016
48054
|
}
|
|
48017
48055
|
}),
|
|
48018
48056
|
(() => {
|
|
48019
|
-
var e =
|
|
48057
|
+
var e = w6(), t = e.firstChild.nextSibling.nextSibling;
|
|
48020
48058
|
return F(t, re), e;
|
|
48021
48059
|
})()
|
|
48022
48060
|
];
|
|
@@ -48027,13 +48065,13 @@ function M6() {
|
|
|
48027
48065
|
})();
|
|
48028
48066
|
},
|
|
48029
48067
|
get children() {
|
|
48030
|
-
var e =
|
|
48068
|
+
var e = e6(), t = e.firstChild;
|
|
48031
48069
|
return F(t, M(N, {
|
|
48032
48070
|
get when() {
|
|
48033
48071
|
return !a.isLoading;
|
|
48034
48072
|
},
|
|
48035
48073
|
get fallback() {
|
|
48036
|
-
return
|
|
48074
|
+
return E6();
|
|
48037
48075
|
},
|
|
48038
48076
|
get children() {
|
|
48039
48077
|
return M(N, {
|
|
@@ -48046,7 +48084,7 @@ function M6() {
|
|
|
48046
48084
|
return a.isError;
|
|
48047
48085
|
},
|
|
48048
48086
|
get fallback() {
|
|
48049
|
-
return
|
|
48087
|
+
return E6();
|
|
48050
48088
|
},
|
|
48051
48089
|
get children() {
|
|
48052
48090
|
return M(Hj, { message: "Key rejected — reconnect" });
|
|
@@ -48054,7 +48092,7 @@ function M6() {
|
|
|
48054
48092
|
});
|
|
48055
48093
|
},
|
|
48056
48094
|
get children() {
|
|
48057
|
-
var e =
|
|
48095
|
+
var e = $3(), t = e.firstChild.nextSibling, n = t.nextSibling.nextSibling;
|
|
48058
48096
|
return F(t, () => a.data.name), F(n, () => a.data.email), e;
|
|
48059
48097
|
}
|
|
48060
48098
|
});
|
|
@@ -48095,7 +48133,7 @@ function M6() {
|
|
|
48095
48133
|
return o.isLoading;
|
|
48096
48134
|
},
|
|
48097
48135
|
get children() {
|
|
48098
|
-
return [
|
|
48136
|
+
return [t6(), M(N, {
|
|
48099
48137
|
get when() {
|
|
48100
48138
|
return o.data;
|
|
48101
48139
|
},
|
|
@@ -48105,7 +48143,7 @@ function M6() {
|
|
|
48105
48143
|
return o.data;
|
|
48106
48144
|
},
|
|
48107
48145
|
children: (e) => (() => {
|
|
48108
|
-
var t =
|
|
48146
|
+
var t = D6(), r = t.firstChild, i = r.nextSibling;
|
|
48109
48147
|
return i.nextSibling, F(t, () => e.name, r), F(t, () => e.key, i), D(() => t.selected = e.id === n().defaultTeamId), D(() => t.value = e.id), t;
|
|
48110
48148
|
})()
|
|
48111
48149
|
});
|
|
@@ -48129,14 +48167,14 @@ function M6() {
|
|
|
48129
48167
|
},
|
|
48130
48168
|
get children() {
|
|
48131
48169
|
return [(() => {
|
|
48132
|
-
var e =
|
|
48170
|
+
var e = n6();
|
|
48133
48171
|
return D(() => e.selected = !n().defaultProjectId), e;
|
|
48134
48172
|
})(), M(Ue, {
|
|
48135
48173
|
get each() {
|
|
48136
48174
|
return s.data ?? [];
|
|
48137
48175
|
},
|
|
48138
48176
|
children: (e) => (() => {
|
|
48139
|
-
var t =
|
|
48177
|
+
var t = O6();
|
|
48140
48178
|
return F(t, () => e.name), D(() => t.selected = e.id === n().defaultProjectId), D(() => t.value = e.id), t;
|
|
48141
48179
|
})()
|
|
48142
48180
|
})];
|
|
@@ -48148,7 +48186,7 @@ function M6() {
|
|
|
48148
48186
|
label: "Default labels",
|
|
48149
48187
|
hint: "Applied to every issue created from the panel.",
|
|
48150
48188
|
get children() {
|
|
48151
|
-
var e =
|
|
48189
|
+
var e = r6();
|
|
48152
48190
|
return F(e, M(Ue, {
|
|
48153
48191
|
get each() {
|
|
48154
48192
|
return p.data ?? [];
|
|
@@ -48156,7 +48194,7 @@ function M6() {
|
|
|
48156
48194
|
children: (e) => {
|
|
48157
48195
|
let t = () => (n().defaultLabelIds ?? []).includes(e.id);
|
|
48158
48196
|
return (() => {
|
|
48159
|
-
var i =
|
|
48197
|
+
var i = k6(), a = i.firstChild;
|
|
48160
48198
|
return i.$$click = () => {
|
|
48161
48199
|
let i = n().defaultLabelIds ?? [];
|
|
48162
48200
|
r({ defaultLabelIds: t() ? i.filter((t) => t !== e.id) : [...i, e.id] });
|
|
@@ -48173,7 +48211,7 @@ function M6() {
|
|
|
48173
48211
|
}
|
|
48174
48212
|
}),
|
|
48175
48213
|
(() => {
|
|
48176
|
-
var e =
|
|
48214
|
+
var e = i6(), t = e.firstChild;
|
|
48177
48215
|
return t.addEventListener("change", (e) => void r({ shareLinearKey: e.currentTarget.checked })), D(() => t.checked = !!n().shareLinearKey), e;
|
|
48178
48216
|
})(),
|
|
48179
48217
|
M(Lj, {
|
|
@@ -48223,7 +48261,7 @@ function M6() {
|
|
|
48223
48261
|
return m.isLoading;
|
|
48224
48262
|
},
|
|
48225
48263
|
get children() {
|
|
48226
|
-
return [
|
|
48264
|
+
return [A6(), M(N, {
|
|
48227
48265
|
get when() {
|
|
48228
48266
|
return m.data;
|
|
48229
48267
|
},
|
|
@@ -48233,7 +48271,7 @@ function M6() {
|
|
|
48233
48271
|
return m.data;
|
|
48234
48272
|
},
|
|
48235
48273
|
children: (e) => (() => {
|
|
48236
|
-
var t =
|
|
48274
|
+
var t = O6();
|
|
48237
48275
|
return F(t, () => e.displayName), D(() => t.selected = e.id === n().cursorAgentId), D(() => t.value = e.id), t;
|
|
48238
48276
|
})()
|
|
48239
48277
|
});
|
|
@@ -48243,7 +48281,7 @@ function M6() {
|
|
|
48243
48281
|
});
|
|
48244
48282
|
},
|
|
48245
48283
|
get children() {
|
|
48246
|
-
return
|
|
48284
|
+
return a6();
|
|
48247
48285
|
}
|
|
48248
48286
|
});
|
|
48249
48287
|
}
|
|
@@ -48291,7 +48329,7 @@ function M6() {
|
|
|
48291
48329
|
onBlur: (e) => {
|
|
48292
48330
|
r({ issueTemplate: e.currentTarget.value.trim() || void 0 });
|
|
48293
48331
|
}
|
|
48294
|
-
}),
|
|
48332
|
+
}), o6()];
|
|
48295
48333
|
}
|
|
48296
48334
|
}),
|
|
48297
48335
|
M(Lj, {
|
|
@@ -48348,7 +48386,7 @@ function M6() {
|
|
|
48348
48386
|
label: "Test account",
|
|
48349
48387
|
hint: "The cloud agent logs into the app with this while testing and recording its demo. Added to every issue's Agent instructions. Use a throwaway account — it's visible to everyone who can read the issue.",
|
|
48350
48388
|
get children() {
|
|
48351
|
-
var e =
|
|
48389
|
+
var e = s6();
|
|
48352
48390
|
return F(e, M(jj, {
|
|
48353
48391
|
placeholder: "Username or email (e.g. demo@yourapp.com)",
|
|
48354
48392
|
get value() {
|
|
@@ -48380,7 +48418,7 @@ function M6() {
|
|
|
48380
48418
|
title: "Panel",
|
|
48381
48419
|
get children() {
|
|
48382
48420
|
return [(() => {
|
|
48383
|
-
var e =
|
|
48421
|
+
var e = c6(), t = e.firstChild.nextSibling;
|
|
48384
48422
|
return F(t, M(Ue, {
|
|
48385
48423
|
each: [{
|
|
48386
48424
|
id: "overlay",
|
|
@@ -48390,7 +48428,7 @@ function M6() {
|
|
|
48390
48428
|
label: "Beside page"
|
|
48391
48429
|
}],
|
|
48392
48430
|
children: (e) => (() => {
|
|
48393
|
-
var t =
|
|
48431
|
+
var t = x6();
|
|
48394
48432
|
return t.$$click = () => void r({
|
|
48395
48433
|
panelMode: e.id,
|
|
48396
48434
|
panelPos: void 0
|
|
@@ -48398,11 +48436,11 @@ function M6() {
|
|
|
48398
48436
|
})()
|
|
48399
48437
|
})), e;
|
|
48400
48438
|
})(), (() => {
|
|
48401
|
-
var e =
|
|
48439
|
+
var e = l6(), t = e.firstChild.nextSibling;
|
|
48402
48440
|
return F(t, M(Ue, {
|
|
48403
48441
|
each: ["left", "right"],
|
|
48404
48442
|
children: (e) => (() => {
|
|
48405
|
-
var t =
|
|
48443
|
+
var t = x6();
|
|
48406
48444
|
return t.$$click = () => void r({ panelSide: e }), F(t, e === "left" ? "Left" : "Right"), D(() => ot(t, `flex-1 rounded-[5px] px-2 py-0.5 text-[11.5px] font-medium transition-colors ${(n().panelSide ?? "right") === e ? "bg-surface-3 text-text" : "text-text-dim hover:text-text cursor-pointer"}`)), t;
|
|
48407
48445
|
})()
|
|
48408
48446
|
})), e;
|
|
@@ -48432,8 +48470,8 @@ function M6() {
|
|
|
48432
48470
|
}), null), F(e, M(Rj, {
|
|
48433
48471
|
title: "Project config (.lineargrab.json)",
|
|
48434
48472
|
get children() {
|
|
48435
|
-
return [
|
|
48436
|
-
var e =
|
|
48473
|
+
return [u6(), (() => {
|
|
48474
|
+
var e = f6();
|
|
48437
48475
|
return F(e, M(N, {
|
|
48438
48476
|
get when() {
|
|
48439
48477
|
return c.data?.projectConfig;
|
|
@@ -48464,7 +48502,7 @@ function M6() {
|
|
|
48464
48502
|
},
|
|
48465
48503
|
onClick: () => void d(),
|
|
48466
48504
|
get children() {
|
|
48467
|
-
var e =
|
|
48505
|
+
var e = d6();
|
|
48468
48506
|
return F(e, () => l() ? "Copied ✓" : "Copy config"), e;
|
|
48469
48507
|
}
|
|
48470
48508
|
}), null), e;
|
|
@@ -48555,12 +48593,12 @@ function M6() {
|
|
|
48555
48593
|
});
|
|
48556
48594
|
},
|
|
48557
48595
|
get children() {
|
|
48558
|
-
return [
|
|
48596
|
+
return [p6(), M(Ue, {
|
|
48559
48597
|
get each() {
|
|
48560
48598
|
return ie.data ?? [];
|
|
48561
48599
|
},
|
|
48562
48600
|
children: (e) => (() => {
|
|
48563
|
-
var t =
|
|
48601
|
+
var t = j6();
|
|
48564
48602
|
return t.firstChild, F(t, () => e.name, null), D(() => t.selected = e.id === n().slackChannelId), D(() => t.value = e.id), t;
|
|
48565
48603
|
})()
|
|
48566
48604
|
})];
|
|
@@ -48611,10 +48649,10 @@ function M6() {
|
|
|
48611
48649
|
}
|
|
48612
48650
|
}),
|
|
48613
48651
|
(() => {
|
|
48614
|
-
var e =
|
|
48652
|
+
var e = m6(), t = e.firstChild;
|
|
48615
48653
|
return t.addEventListener("change", (e) => void r({ notifyOnCreate: e.currentTarget.checked ? void 0 : !1 })), D(() => t.checked = n().notifyOnCreate !== !1), e;
|
|
48616
48654
|
})(),
|
|
48617
|
-
|
|
48655
|
+
h6()
|
|
48618
48656
|
];
|
|
48619
48657
|
}
|
|
48620
48658
|
}), null), F(e, M(Rj, {
|
|
@@ -48652,7 +48690,7 @@ function M6() {
|
|
|
48652
48690
|
}
|
|
48653
48691
|
}),
|
|
48654
48692
|
(() => {
|
|
48655
|
-
var e =
|
|
48693
|
+
var e = g6(), t = e.firstChild.nextSibling.firstChild, i = t.nextSibling, a = i.nextSibling;
|
|
48656
48694
|
return t.$$click = () => void r({ preferredProvider: void 0 }), i.$$click = () => void r({ preferredProvider: "openai" }), a.$$click = () => void r({ preferredProvider: "anthropic" }), D((e) => {
|
|
48657
48695
|
var r = `flex-1 rounded-[5px] px-2 py-0.5 text-[11.5px] font-medium transition-colors ${n().preferredProvider === void 0 ? "bg-surface-3 text-text" : "text-text-dim hover:text-text cursor-pointer"}`, o = `flex-1 rounded-[5px] px-2 py-0.5 text-[11.5px] font-medium transition-colors disabled:cursor-not-allowed ${n().preferredProvider === "openai" ? "bg-surface-3 text-text" : "text-text-dim hover:text-text cursor-pointer disabled:text-text-faint"}`, s = !n().openaiKey, c = `flex-1 rounded-[5px] px-2 py-0.5 text-[11.5px] font-medium transition-colors disabled:cursor-not-allowed ${n().preferredProvider === "anthropic" ? "bg-surface-3 text-text" : "text-text-dim hover:text-text cursor-pointer disabled:text-text-faint"}`, l = !n().anthropicKey;
|
|
48658
48696
|
return r !== e.e && ot(t, e.e = r), o !== e.t && ot(i, e.t = o), s !== e.a && (i.disabled = e.a = s), c !== e.o && ot(a, e.o = c), l !== e.i && (a.disabled = e.i = l), e;
|
|
@@ -48665,16 +48703,16 @@ function M6() {
|
|
|
48665
48703
|
}), e;
|
|
48666
48704
|
})(),
|
|
48667
48705
|
(() => {
|
|
48668
|
-
var e =
|
|
48706
|
+
var e = v6();
|
|
48669
48707
|
return F(e, M(N, {
|
|
48670
48708
|
get when() {
|
|
48671
48709
|
return oe();
|
|
48672
48710
|
},
|
|
48673
48711
|
get fallback() {
|
|
48674
|
-
return
|
|
48712
|
+
return M6();
|
|
48675
48713
|
},
|
|
48676
48714
|
get children() {
|
|
48677
|
-
var e =
|
|
48715
|
+
var e = _6();
|
|
48678
48716
|
return F(e, oe), e;
|
|
48679
48717
|
}
|
|
48680
48718
|
})), e;
|
|
@@ -48684,7 +48722,7 @@ function M6() {
|
|
|
48684
48722
|
}), null), F(e, M(Rj, {
|
|
48685
48723
|
title: "How it works",
|
|
48686
48724
|
get children() {
|
|
48687
|
-
return
|
|
48725
|
+
return y6();
|
|
48688
48726
|
}
|
|
48689
48727
|
}), null), e;
|
|
48690
48728
|
})();
|
|
@@ -48692,38 +48730,38 @@ function M6() {
|
|
|
48692
48730
|
nt(["click"]);
|
|
48693
48731
|
//#endregion
|
|
48694
48732
|
//#region src/lib/idbCache.ts
|
|
48695
|
-
var
|
|
48733
|
+
var P6 = "linear-grab", F6 = "queries", I6 = [
|
|
48696
48734
|
"my-issues",
|
|
48697
48735
|
"issue",
|
|
48698
48736
|
"sessions",
|
|
48699
48737
|
"teams",
|
|
48700
48738
|
"agents"
|
|
48701
48739
|
];
|
|
48702
|
-
function
|
|
48740
|
+
function L6() {
|
|
48703
48741
|
return new Promise((e) => {
|
|
48704
48742
|
try {
|
|
48705
|
-
let t = indexedDB.open(
|
|
48706
|
-
t.onupgradeneeded = () => t.result.createObjectStore(
|
|
48743
|
+
let t = indexedDB.open(P6, 1);
|
|
48744
|
+
t.onupgradeneeded = () => t.result.createObjectStore(F6), t.onsuccess = () => e(t.result), t.onerror = () => e(null);
|
|
48707
48745
|
} catch {
|
|
48708
48746
|
e(null);
|
|
48709
48747
|
}
|
|
48710
48748
|
});
|
|
48711
48749
|
}
|
|
48712
|
-
function
|
|
48713
|
-
return typeof e[0] == "string" &&
|
|
48750
|
+
function R6(e) {
|
|
48751
|
+
return typeof e[0] == "string" && I6.includes(e[0]);
|
|
48714
48752
|
}
|
|
48715
|
-
async function
|
|
48716
|
-
let t = await
|
|
48753
|
+
async function z6(e) {
|
|
48754
|
+
let t = await L6();
|
|
48717
48755
|
if (!t) return () => {};
|
|
48718
48756
|
await new Promise((n) => {
|
|
48719
48757
|
try {
|
|
48720
|
-
let r = t.transaction(
|
|
48758
|
+
let r = t.transaction(F6, "readonly").objectStore(F6).openCursor();
|
|
48721
48759
|
r.onsuccess = () => {
|
|
48722
48760
|
let t = r.result;
|
|
48723
48761
|
if (!t) return n();
|
|
48724
48762
|
try {
|
|
48725
48763
|
let { queryKey: n, data: r } = t.value;
|
|
48726
|
-
|
|
48764
|
+
R6(n) && e.getQueryData(n) === void 0 && e.setQueryData(n, r, { updatedAt: 0 });
|
|
48727
48765
|
} catch {}
|
|
48728
48766
|
t.continue();
|
|
48729
48767
|
}, r.onerror = () => n();
|
|
@@ -48734,14 +48772,14 @@ async function R6(e) {
|
|
|
48734
48772
|
let n = /* @__PURE__ */ new Map(), r = e.getQueryCache().subscribe((r) => {
|
|
48735
48773
|
if (r.type !== "updated" || r.action.type !== "success") return;
|
|
48736
48774
|
let { queryKey: i, queryHash: a } = r.query;
|
|
48737
|
-
if (!
|
|
48775
|
+
if (!R6(i)) return;
|
|
48738
48776
|
let o = n.get(a);
|
|
48739
48777
|
o && clearTimeout(o), n.set(a, setTimeout(() => {
|
|
48740
48778
|
n.delete(a);
|
|
48741
48779
|
try {
|
|
48742
48780
|
let n = e.getQueryData(i);
|
|
48743
48781
|
if (n === void 0) return;
|
|
48744
|
-
t.transaction(
|
|
48782
|
+
t.transaction(F6, "readwrite").objectStore(F6).put({
|
|
48745
48783
|
queryKey: i,
|
|
48746
48784
|
data: n
|
|
48747
48785
|
}, a);
|
|
@@ -48757,7 +48795,7 @@ async function R6(e) {
|
|
|
48757
48795
|
//#endregion
|
|
48758
48796
|
//#region src/panel/App.tsx
|
|
48759
48797
|
zr();
|
|
48760
|
-
var
|
|
48798
|
+
var B6 = /*#__PURE__*/ P("<svg viewBox=\"0 0 100 100\"fill=currentColor aria-hidden><path d=\"M1.22541 61.5228c-.2225-.9485.90748-1.5459 1.59638-.857L39.3342 97.1782c.6889.6889.0915 1.8189-.857 1.5964C20.0515 94.4522 5.54779 79.9485 1.22541 61.5228ZM.00189135 46.8891c-.01764375.2833.08887215.5599.28957165.7606L52.3503 99.7085c.2007.2007.4773.3075.7606.2896 2.3692-.1476 4.6938-.46 6.9624-.9259.7645-.157 1.0301-1.0963.4782-1.6481L2.57595 39.4485c-.55186-.5519-1.49117-.2863-1.648174.4782-.465915 2.2686-.77832 4.5932-.92588465 6.9624ZM4.21093 29.7054c-.16649.3738-.08169.8106.20765 1.1l64.77602 64.776c.2894.2894.7262.3742 1.1.2077 1.7861-.7956 3.5171-1.6927 5.1855-2.684.5521-.328.6373-1.0867.1832-1.5407L8.43566 24.3367c-.45409-.4541-1.21271-.3689-1.54074.1832-.99132 1.6684-1.88843 3.3994-2.68399 5.1855ZM12.6587 18.074c-.3701-.3701-.393-.9637-.0443-1.3541C21.7795 6.45931 35.1114 0 49.9519 0 77.5927 0 100 22.4073 100 50.0481c0 14.8405-6.4593 28.1724-16.7199 37.3375-.3903.3487-.984.3258-1.3541-.0443L12.6587 18.074Z\">"), V6 = /*#__PURE__*/ P("<button><svg width=12 height=12 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 aria-hidden><rect x=1.5 y=2.5 width=13 height=11 rx=1.5></rect><path d=\"M10 2.5v11\">"), H6 = /*#__PURE__*/ P("<button aria-label=\"Minimize to launcher\"title=\"Minimize to launcher\"class=\"text-text-dim hover:text-text hover:bg-surface-3 grid size-6 shrink-0 cursor-pointer place-items-center rounded-md text-[15px] leading-none transition-colors\">–"), U6 = /*#__PURE__*/ P("<div class=\"bg-bg text-text flex h-full flex-col\"><header><span class=\"text-accent mr-0.5 inline-flex shrink-0\"title=\"Linear Grab\"></span><div class=\"no-scrollbar flex min-w-0 flex-1 items-center gap-1 overflow-x-auto\"></div></header><main class=\"min-h-0 flex-1\"><div class=h-full></div><div class=h-full></div><div class=h-full></div><div class=h-full></div><div class=h-full></div><div class=h-full></div><div class=h-full></div><div class=h-full></div><div class=h-full>"), W6 = /*#__PURE__*/ P("<button>"), G6 = [
|
|
48761
48799
|
{
|
|
48762
48800
|
id: "draft",
|
|
48763
48801
|
label: "Draft"
|
|
@@ -48794,35 +48832,35 @@ var z6 = /*#__PURE__*/ P("<svg viewBox=\"0 0 100 100\"fill=currentColor aria-hid
|
|
|
48794
48832
|
id: "settings",
|
|
48795
48833
|
label: "Settings"
|
|
48796
48834
|
}
|
|
48797
|
-
],
|
|
48798
|
-
function
|
|
48799
|
-
if (
|
|
48800
|
-
|
|
48835
|
+
], K6 = /* @__PURE__ */ new Set();
|
|
48836
|
+
function q6(e, t, n) {
|
|
48837
|
+
if (K6.has(e) || typeof Notification > "u") return;
|
|
48838
|
+
K6.add(e);
|
|
48801
48839
|
let r = () => new Notification(t, { body: n });
|
|
48802
48840
|
Notification.permission === "granted" ? r() : Notification.permission === "default" && Notification.requestPermission().then((e) => e === "granted" && r());
|
|
48803
48841
|
}
|
|
48804
|
-
function
|
|
48842
|
+
function J6() {
|
|
48805
48843
|
setInterval(() => {
|
|
48806
48844
|
NO().then((e) => {
|
|
48807
48845
|
for (let t of e) {
|
|
48808
48846
|
if (t.status !== "running") continue;
|
|
48809
48847
|
let e = t.lastEventAt ?? t.startedAt;
|
|
48810
|
-
Date.now() - e > 10 * 6e4 &&
|
|
48848
|
+
Date.now() - e > 10 * 6e4 && q6(`local-stuck:${t.id}:${e}`, "Local agent may be stuck", `${t.title.slice(0, 80)} — no output for ${Math.round((Date.now() - e) / 6e4)}m. Nudge or interrupt it in the Local tab.`);
|
|
48811
48849
|
}
|
|
48812
48850
|
}).catch(() => {}), gO().then((e) => {
|
|
48813
|
-
for (let t of e) /awaitingInput|elicit/i.test(t.status) &&
|
|
48851
|
+
for (let t of e) /awaitingInput|elicit/i.test(t.status) && q6(`cloud-input:${t.id}`, "Cloud agent needs input", `${t.issue?.identifier ?? "Session"} — ${t.issue?.title?.slice(0, 80) ?? "a Cursor agent"} is waiting for you.`);
|
|
48814
48852
|
}).catch(() => {});
|
|
48815
48853
|
}, 6e4);
|
|
48816
48854
|
}
|
|
48817
|
-
|
|
48818
|
-
var
|
|
48855
|
+
J6();
|
|
48856
|
+
var Y6 = new hr({ defaultOptions: { queries: {
|
|
48819
48857
|
retry: 1,
|
|
48820
48858
|
refetchOnWindowFocus: !1,
|
|
48821
48859
|
staleTime: 5e3
|
|
48822
48860
|
} } });
|
|
48823
|
-
function
|
|
48861
|
+
function X6(e) {
|
|
48824
48862
|
return (() => {
|
|
48825
|
-
var t =
|
|
48863
|
+
var t = B6();
|
|
48826
48864
|
return D((n) => {
|
|
48827
48865
|
var r = e.size ?? 14, i = e.size ?? 14;
|
|
48828
48866
|
return r !== n.e && rt(t, "width", n.e = r), i !== n.t && rt(t, "height", n.t = i), n;
|
|
@@ -48832,36 +48870,36 @@ function Y6(e) {
|
|
|
48832
48870
|
}), t;
|
|
48833
48871
|
})();
|
|
48834
48872
|
}
|
|
48835
|
-
function
|
|
48873
|
+
function Z6(e) {
|
|
48836
48874
|
let [t, n] = T("draft"), r = () => {
|
|
48837
|
-
|
|
48875
|
+
Y6.invalidateQueries({ queryKey: ["grab"] }), cj() === "capture" && n("capture"), e.onGrab?.();
|
|
48838
48876
|
};
|
|
48839
48877
|
return O(() => {
|
|
48840
48878
|
let e = nj();
|
|
48841
48879
|
e && n(e);
|
|
48842
48880
|
}), re(() => {
|
|
48843
|
-
let e =
|
|
48881
|
+
let e = z6(Y6), t = XZ(r), n = () => {
|
|
48844
48882
|
JO().then(y$), VO(), MO().then(async (e) => {
|
|
48845
48883
|
if (!e.projectConfig) return;
|
|
48846
|
-
let t =
|
|
48884
|
+
let t = G3(await wr(), e.projectConfig);
|
|
48847
48885
|
t && await Tr(t);
|
|
48848
48886
|
}).catch(() => {});
|
|
48849
48887
|
};
|
|
48850
48888
|
n();
|
|
48851
48889
|
let i = jr((e) => {
|
|
48852
|
-
e === "settings" && (
|
|
48890
|
+
e === "settings" && (Y6.invalidateQueries({ queryKey: ["settings"] }), n()), e === "grab" && r();
|
|
48853
48891
|
});
|
|
48854
48892
|
ie(() => {
|
|
48855
48893
|
t(), i(), e.then((e) => e());
|
|
48856
48894
|
});
|
|
48857
48895
|
}), M(sr, {
|
|
48858
|
-
client:
|
|
48896
|
+
client: Y6,
|
|
48859
48897
|
get children() {
|
|
48860
|
-
var r =
|
|
48861
|
-
return i.$$pointerdown = (t) => e.onHeaderPointerDown?.(t), F(a, M(
|
|
48862
|
-
each:
|
|
48898
|
+
var r = U6(), i = r.firstChild, a = i.firstChild, o = a.nextSibling, s = i.nextSibling.firstChild, c = s.nextSibling, l = c.nextSibling, u = l.nextSibling, d = u.nextSibling, f = d.nextSibling, p = f.nextSibling, m = p.nextSibling, h = m.nextSibling;
|
|
48899
|
+
return i.$$pointerdown = (t) => e.onHeaderPointerDown?.(t), F(a, M(X6, { size: 14 })), F(o, M(Ue, {
|
|
48900
|
+
each: G6,
|
|
48863
48901
|
children: (e) => (() => {
|
|
48864
|
-
var r =
|
|
48902
|
+
var r = W6();
|
|
48865
48903
|
return r.$$click = () => n(e.id), F(r, () => e.label), D(() => ot(r, `h-6 shrink-0 rounded-md px-2 text-[12px] font-medium whitespace-nowrap transition-colors ${t() === e.id ? "bg-surface-3 text-text" : "text-text-dim hover:text-text cursor-pointer"}`)), r;
|
|
48866
48904
|
})()
|
|
48867
48905
|
})), F(i, M(N, {
|
|
@@ -48869,7 +48907,7 @@ function X6(e) {
|
|
|
48869
48907
|
return e.onTogglePin;
|
|
48870
48908
|
},
|
|
48871
48909
|
get children() {
|
|
48872
|
-
var t =
|
|
48910
|
+
var t = V6();
|
|
48873
48911
|
return t.$$click = () => e.onTogglePin?.(), D((n) => {
|
|
48874
48912
|
var r = e.pinned ? "Switch to overlay" : "Dock beside page", i = e.pinned ? "Overlay the page" : "Dock beside page (squeezes the app, DevTools-style)", a = `hover:bg-surface-3 grid size-6 shrink-0 cursor-pointer place-items-center rounded-md transition-colors ${e.pinned ? "text-accent" : "text-text-dim hover:text-text"}`;
|
|
48875
48913
|
return r !== n.e && rt(t, "aria-label", n.e = r), i !== n.t && rt(t, "title", n.t = i), a !== n.a && ot(t, n.a = a), n;
|
|
@@ -48884,10 +48922,10 @@ function X6(e) {
|
|
|
48884
48922
|
return e.onClose;
|
|
48885
48923
|
},
|
|
48886
48924
|
get children() {
|
|
48887
|
-
var t =
|
|
48925
|
+
var t = H6();
|
|
48888
48926
|
return t.$$click = () => e.onClose?.(), t;
|
|
48889
48927
|
}
|
|
48890
|
-
}), null), F(s, M(wM, { onCreated: () => n("activity") })), F(c, M(TQ, {})), F(l, M(_1, {})), F(u, M(B1, {})), F(d, M(P1, {})), F(f, M(T0, {})), F(p, M(B0, { onOpenIssue: () => n("activity") })), F(m, M(
|
|
48928
|
+
}), null), F(s, M(wM, { onCreated: () => n("activity") })), F(c, M(TQ, {})), F(l, M(_1, {})), F(u, M(B1, {})), F(d, M(P1, {})), F(f, M(T0, {})), F(p, M(B0, { onOpenIssue: () => n("activity") })), F(m, M(H3, {})), F(h, M(N6, {})), D((n) => {
|
|
48891
48929
|
var r = `border-border bg-surface flex shrink-0 items-center gap-1 border-b px-2 py-1.5 select-none ${e.onHeaderPointerDown ? "cursor-grab active:cursor-grabbing" : ""}`, a = t() !== "draft", o = t() !== "capture", g = t() !== "activity", _ = t() !== "running", v = t() !== "cloud", y = t() !== "local", b = t() !== "prs", x = t() !== "design", S = t() !== "settings";
|
|
48892
48930
|
return r !== n.e && ot(i, n.e = r), a !== n.t && s.classList.toggle("hidden", n.t = a), o !== n.a && c.classList.toggle("hidden", n.a = o), g !== n.o && l.classList.toggle("hidden", n.o = g), _ !== n.i && u.classList.toggle("hidden", n.i = _), v !== n.n && d.classList.toggle("hidden", n.n = v), y !== n.s && f.classList.toggle("hidden", n.s = y), b !== n.h && p.classList.toggle("hidden", n.h = b), x !== n.r && m.classList.toggle("hidden", n.r = x), S !== n.d && h.classList.toggle("hidden", n.d = S), n;
|
|
48893
48931
|
}, {
|
|
@@ -48908,12 +48946,12 @@ function X6(e) {
|
|
|
48908
48946
|
nt(["pointerdown", "click"]);
|
|
48909
48947
|
//#endregion
|
|
48910
48948
|
//#region src/styles/app.css?inline
|
|
48911
|
-
var Z6 = "/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */\n@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-contain-size:initial;--tw-contain-layout:initial;--tw-contain-paint:initial;--tw-contain-style:initial}}}@layer theme{:root,:host{--font-sans:\"Inter\", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-serif:ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif;--font-mono:ui-monospace, \"SF Mono\", Menlo, monospace;--color-red-500:oklch(63.7% .237 25.331);--color-white:#fff;--spacing:.25rem;--font-weight-thin:100;--font-weight-extralight:200;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--font-weight-black:900;--tracking-wide:.025em;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--radius-xl:.75rem;--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-bg:#0b0c0e;--color-surface:#141517;--color-surface-2:#1c1d21;--color-surface-3:#24262b;--color-border:#26282d;--color-border-strong:#34363d;--color-text:#e8e9eb;--color-text-dim:#8b8e98;--color-text-faint:#5c5f6a;--color-accent:#5e6ad2;--color-accent-hover:#6e79e0;--color-accent-soft:#5e6ad226;--color-success:#4cb782;--color-warn:#f2c94c;--color-danger:#eb5757;--color-danger-soft:#eb575726}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.visible\\!{visibility:visible!important}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-y-0{inset-block:0}.-top-0{top:0}.-top-0\\.5{top:calc(var(--spacing) * -.5)}.top-0{top:0}.top-0\\.5{top:calc(var(--spacing) * .5)}.top-1{top:var(--spacing)}.top-1\\/2{top:50%}.top-3{top:calc(var(--spacing) * 3)}.top-\\[2px\\]{top:2px}.top-full{top:100%}.-right-0{right:0}.-right-0\\.5{right:calc(var(--spacing) * -.5)}.right-0{right:0}.right-0\\.5{right:calc(var(--spacing) * .5)}.right-4{right:calc(var(--spacing) * 4)}.right-full{right:100%}.bottom-0{bottom:0}.bottom-1{bottom:var(--spacing)}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-\\[2px\\]{bottom:2px}.bottom-full{bottom:100%}.-left-\\[13\\.5px\\]{left:-13.5px}.left-0{left:0}.left-1{left:var(--spacing)}.left-1\\/2{left:50%}.left-\\[5px\\]{left:5px}.left-full{left:100%}.z-1{z-index:1}.z-10{z-index:10}.z-\\[2147483645\\]{z-index:2147483645}.z-\\[2147483646\\]{z-index:2147483646}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.container\\!{width:100%!important}@media (width>=40rem){.container\\!{max-width:40rem!important}}@media (width>=48rem){.container\\!{max-width:48rem!important}}@media (width>=64rem){.container\\!{max-width:64rem!important}}@media (width>=80rem){.container\\!{max-width:80rem!important}}@media (width>=96rem){.container\\!{max-width:96rem!important}}.-m-0{margin:0}.-m-0\\.5{margin:calc(var(--spacing) * -.5)}.-m-4{margin:calc(var(--spacing) * -4)}.m-0{margin:0}.-mx-2{margin-inline:calc(var(--spacing) * -2)}.-my-1{margin-block:calc(var(--spacing) * -1)}.-my-1\\.5{margin-block:calc(var(--spacing) * -1.5)}.mt-0{margin-top:0}.mt-0\\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-px{margin-top:1px}.mr-0{margin-right:0}.mr-0\\.5{margin-right:calc(var(--spacing) * .5)}.mr-1{margin-right:var(--spacing)}.mr-1\\.5{margin-right:calc(var(--spacing) * 1.5)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-2\\.5{margin-right:calc(var(--spacing) * 2.5)}.-mb-4{margin-bottom:calc(var(--spacing) * -4)}.mb-0{margin-bottom:0}.mb-0\\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:var(--spacing)}.mb-1\\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-2\\.5{margin-bottom:calc(var(--spacing) * 2.5)}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-2\\.5{margin-left:calc(var(--spacing) * 2.5)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-auto{margin-left:auto}.ml-px{margin-left:1px}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-5{-webkit-line-clamp:5;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.list-item{display:list-item}.table{display:table}.size-0{width:0;height:0}.size-1{width:var(--spacing);height:var(--spacing)}.size-1\\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-\\[9px\\]{width:9px;height:9px}.size-\\[12px\\]{width:12px;height:12px}.size-\\[16px\\]{width:16px;height:16px}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-16{height:calc(var(--spacing) * 16)}.h-\\[8px\\]{height:8px}.h-\\[17px\\]{height:17px}.h-\\[18px\\]{height:18px}.h-\\[20px\\]{height:20px}.h-\\[24px\\]{height:24px}.h-fit{height:fit-content}.h-full{height:100%}.h-screen{height:100vh}.max-h-32{max-height:calc(var(--spacing) * 32)}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-44{max-height:calc(var(--spacing) * 44)}.max-h-56{max-height:calc(var(--spacing) * 56)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-\\[var\\(--rg-edit-list-max-h\\)\\]{max-height:var(--rg-edit-list-max-h)}.min-h-0{min-height:0}.min-h-4{min-height:calc(var(--spacing) * 4)}.min-h-\\[2lh\\]{min-height:2lh}.min-h-\\[28px\\]{min-height:28px}.w-1{width:var(--spacing)}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-16{width:calc(var(--spacing) * 16)}.w-28{width:calc(var(--spacing) * 28)}.w-72{width:calc(var(--spacing) * 72)}.w-\\[2px\\]{width:2px}.w-\\[Npx\\]{width:Npx}.w-\\[calc\\(100\\%\\+16px\\)\\]{width:calc(100% + 16px)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-\\[55\\%\\]{max-width:55%}.max-w-\\[100vw\\]{max-width:100vw}.max-w-\\[110px\\]{max-width:110px}.max-w-\\[280px\\]{max-width:280px}.max-w-full{max-width:100%}.min-w-0{min-width:0}.min-w-\\[3\\.5ch\\]{min-width:3.5ch}.min-w-\\[3ch\\]{min-width:3ch}.min-w-\\[4ch\\]{min-width:4ch}.min-w-\\[5ch\\]{min-width:5ch}.min-w-\\[6ch\\]{min-width:6ch}.min-w-\\[7ch\\]{min-width:7ch}.min-w-\\[8ch\\]{min-width:8ch}.min-w-\\[10ch\\]{min-width:10ch}.min-w-\\[12ch\\]{min-width:12ch}.min-w-\\[36px\\]{min-width:36px}.min-w-\\[52px\\]{min-width:52px}.min-w-\\[100px\\]{min-width:100px}.min-w-\\[150px\\]{min-width:150px}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-rotate-90{rotate:-90deg}.rotate-0{rotate:0deg}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.list-decimal{list-style-type:decimal}.grid-cols-\\[0fr\\]{grid-template-columns:0fr}.grid-cols-\\[1fr\\]{grid-template-columns:1fr}.grid-rows-\\[0fr\\]{grid-template-rows:0fr}.grid-rows-\\[1fr\\]{grid-template-rows:1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:0}.gap-0\\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-\\[5px\\]{gap:5px}.self-end{align-self:flex-end}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-clip{overflow:clip}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\\[1px\\]{border-radius:1px}.rounded-\\[3px\\]{border-radius:3px}.rounded-\\[4px\\]{border-radius:4px}.rounded-\\[5px\\]{border-radius:5px}.rounded-\\[6px\\]{border-radius:6px}.rounded-\\[13px\\]{border-radius:13px}.rounded-\\[14px\\]{border-radius:14px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-t-\\[10px\\]{border-top-left-radius:10px;border-top-right-radius:10px}.rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.rounded-l{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-l-\\[10px\\]{border-top-left-radius:10px;border-bottom-left-radius:10px}.rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.rounded-tl{border-top-left-radius:.25rem}.rounded-r{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-r-\\[10px\\]{border-top-right-radius:10px;border-bottom-right-radius:10px}.rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-tr{border-top-right-radius:.25rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-b-\\[6px\\]{border-bottom-right-radius:6px;border-bottom-left-radius:6px}.rounded-b-\\[10px\\]{border-bottom-right-radius:10px;border-bottom-left-radius:10px}.rounded-b-none{border-bottom-right-radius:0;border-bottom-left-radius:0}.rounded-br{border-bottom-right-radius:.25rem}.rounded-bl{border-bottom-left-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.\\[border-width\\:0\\.5px\\]{border-width:.5px}.border-x{border-inline-style:var(--tw-border-style);border-inline-width:1px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-s{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}.border-e{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-4{border-top-style:var(--tw-border-style);border-top-width:4px}.\\[border-top-width\\:0\\.5px\\]{border-top-width:.5px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-dotted{--tw-border-style:dotted;border-style:dotted}.border-none{--tw-border-style:none;border-style:none}.border-solid{--tw-border-style:solid;border-style:solid}.border-\\[var\\(--rg-border-button\\)\\]{border-color:var(--rg-border-button)}.border-accent{border-color:var(--color-accent)}.border-accent\\/40{border-color:#5e6ad266}@supports (color:color-mix(in lab, red, red)){.border-accent\\/40{border-color:color-mix(in oklab, var(--color-accent) 40%, transparent)}}.border-border{border-color:var(--color-border)}.border-danger{border-color:var(--color-danger)}.border-danger\\/40{border-color:#eb575766}@supports (color:color-mix(in lab, red, red)){.border-danger\\/40{border-color:color-mix(in oklab, var(--color-danger) 40%, transparent)}}.border-success{border-color:var(--color-success)}.border-success\\/40{border-color:#4cb78266}@supports (color:color-mix(in lab, red, red)){.border-success\\/40{border-color:color-mix(in oklab, var(--color-success) 40%, transparent)}}.border-text-dim{border-color:var(--color-text-dim)}.border-transparent{border-color:#0000}.border-warn{border-color:var(--color-warn)}.border-warn\\/40{border-color:#f2c94c66}@supports (color:color-mix(in lab, red, red)){.border-warn\\/40{border-color:color-mix(in oklab, var(--color-warn) 40%, transparent)}}.border-t-\\[var\\(--rg-border-subtle\\)\\]{border-top-color:var(--rg-border-subtle)}.border-t-transparent{border-top-color:#0000}.bg-\\[var\\(--rg-error-bg\\)\\]{background-color:var(--rg-error-bg)}.bg-\\[var\\(--rg-panel-bg\\)\\]{background-color:var(--rg-panel-bg)}.bg-\\[var\\(--rg-submit-bg\\)\\]{background-color:var(--rg-submit-bg)}.bg-\\[var\\(--rg-surface-active\\)\\]{background-color:var(--rg-surface-active)}.bg-\\[var\\(--rg-surface-hover\\)\\]{background-color:var(--rg-surface-hover)}.bg-\\[var\\(--rg-text-primary\\)\\]{background-color:var(--rg-text-primary)}.bg-\\[var\\(--rg-text-secondary\\)\\]{background-color:var(--rg-text-secondary)}.bg-accent{background-color:var(--color-accent)}.bg-accent-soft{background-color:var(--color-accent-soft)}.bg-bg{background-color:var(--color-bg)}.bg-bg\\/80{background-color:#0b0c0ecc}@supports (color:color-mix(in lab, red, red)){.bg-bg\\/80{background-color:color-mix(in oklab, var(--color-bg) 80%, transparent)}}.bg-border{background-color:var(--color-border)}.bg-current{background-color:currentColor}.bg-danger{background-color:var(--color-danger)}.bg-danger-soft{background-color:var(--color-danger-soft)}.bg-danger\\/10{background-color:#eb57571a}@supports (color:color-mix(in lab, red, red)){.bg-danger\\/10{background-color:color-mix(in oklab, var(--color-danger) 10%, transparent)}}.bg-red-500{background-color:var(--color-red-500)}.bg-success{background-color:var(--color-success)}.bg-surface{background-color:var(--color-surface)}.bg-surface-2{background-color:var(--color-surface-2)}.bg-surface-3{background-color:var(--color-surface-3)}.bg-text-faint{background-color:var(--color-text-faint)}.bg-transparent{background-color:#0000}.bg-warn{background-color:var(--color-warn)}.bg-warn\\/10{background-color:#f2c94c1a}@supports (color:color-mix(in lab, red, red)){.bg-warn\\/10{background-color:color-mix(in oklab, var(--color-warn) 10%, transparent)}}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:0}.p-0\\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\\.5{padding:calc(var(--spacing) * 2.5)}.p-6{padding:calc(var(--spacing) * 6)}.px-0{padding-inline:0}.px-0\\.25{padding-inline:calc(var(--spacing) * .25)}.px-1{padding-inline:var(--spacing)}.px-1\\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-\\[3px\\]{padding-inline:3px}.py-0{padding-block:0}.py-0\\.5{padding-block:calc(var(--spacing) * .5)}.py-0\\.25{padding-block:calc(var(--spacing) * .25)}.py-1{padding-block:var(--spacing)}.py-1\\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-px{padding-block:1px}.pt-0{padding-top:0}.pt-0\\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:var(--spacing)}.pt-1\\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pr-1{padding-right:var(--spacing)}.pr-1\\.5{padding-right:calc(var(--spacing) * 1.5)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pb-1{padding-bottom:var(--spacing)}.pb-1\\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pl-0{padding-left:0}.pl-0\\.5{padding-left:calc(var(--spacing) * .5)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-2\\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.text-center{text-align:center}.text-end{text-align:end}.text-justify{text-align:justify}.text-left{text-align:left}.text-right{text-align:right}.text-start{text-align:start}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.font-serif{font-family:var(--font-serif)}.text-\\[9\\.5px\\]{font-size:9.5px}.text-\\[9px\\]{font-size:9px}.text-\\[10\\.5px\\]{font-size:10.5px}.text-\\[10px\\]{font-size:10px}.text-\\[11\\.5px\\]{font-size:11.5px}.text-\\[11px\\]{font-size:11px}.text-\\[12\\.5px\\]{font-size:12.5px}.text-\\[12px\\]{font-size:12px}.text-\\[13px\\]{font-size:13px}.text-\\[15px\\]{font-size:15px}.leading-3{--tw-leading:calc(var(--spacing) * 3);line-height:calc(var(--spacing) * 3)}.leading-3\\.5{--tw-leading:calc(var(--spacing) * 3.5);line-height:calc(var(--spacing) * 3.5)}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-extralight{--tw-font-weight:var(--font-weight-extralight);font-weight:var(--font-weight-extralight)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.font-thin{--tw-font-weight:var(--font-weight-thin);font-weight:var(--font-weight-thin)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-normal{overflow-wrap:normal;word-break:normal}.break-words,.wrap-break-word{overflow-wrap:break-word}.break-all{word-break:break-all}.break-keep{word-break:keep-all}.text-ellipsis{text-overflow:ellipsis}.whitespace-break-spaces{white-space:break-spaces}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.text-\\[var\\(--rg-error-text\\)\\]{color:var(--rg-error-text)}.text-\\[var\\(--rg-submit-fg\\)\\]{color:var(--rg-submit-fg)}.text-\\[var\\(--rg-text-primary\\)\\]{color:var(--rg-text-primary)}.text-\\[var\\(--rg-text-primary-85\\)\\]{color:var(--rg-text-primary-85)}.text-\\[var\\(--rg-text-secondary\\)\\]{color:var(--rg-text-secondary)}.text-accent{color:var(--color-accent)}.text-danger{color:var(--color-danger)}.text-success{color:var(--color-success)}.text-text{color:var(--color-text)}.text-text-dim{color:var(--color-text-dim)}.text-text-faint{color:var(--color-text-faint)}.text-warn{color:var(--color-warn)}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.not-italic{font-style:normal}.lining-nums{--tw-numeric-figure:lining-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.oldstyle-nums{--tw-numeric-figure:oldstyle-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.proportional-nums{--tw-numeric-spacing:proportional-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.slashed-zero{--tw-slashed-zero:slashed-zero;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.accent-accent{accent-color:var(--color-accent)}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.\\[box-shadow\\:var\\(--rg-shadow\\)\\]{box-shadow:var(--rg-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.\\[filter\\:var\\(--rg-drop-shadow\\)\\]{filter:var(--rg-drop-shadow)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[grid-template-columns\\]{transition-property:grid-template-columns;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[grid-template-rows\\]{transition-property:grid-template-rows;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[opacity\\,transform\\]{transition-property:opacity,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[padding\\,border-radius\\,transform\\]{transition-property:padding,border-radius,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[top\\,left\\,width\\,height\\,opacity\\,border-radius\\]{transition-property:top,left,width,height,opacity,border-radius;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[transform\\,color\\]{transition-property:transform,color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[transform\\,opacity\\]{transition-property:transform,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.delay-\\[80ms\\]{transition-delay:80ms}.duration-60{--tw-duration:60ms;transition-duration:60ms}.duration-75{--tw-duration:75ms;transition-duration:75ms}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-120{--tw-duration:.12s;transition-duration:.12s}.duration-140{--tw-duration:.14s;transition-duration:.14s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-180{--tw-duration:.18s;transition-duration:.18s}.duration-220{--tw-duration:.22s;transition-duration:.22s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-400{--tw-duration:.4s;transition-duration:.4s}.ease-\\[cubic-bezier\\(0\\,0\\,0\\.2\\,1\\)\\]{--tw-ease:cubic-bezier(0,0,.2,1);transition-timing-function:cubic-bezier(0,0,.2,1)}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.will-change-\\[opacity\\,transform\\]{will-change:opacity,transform}.will-change-transform{will-change:transform}.contain-layout{--tw-contain-layout:layout;contain:var(--tw-contain-size,) var(--tw-contain-layout,) var(--tw-contain-paint,) var(--tw-contain-style,)}.outline-none{--tw-outline-style:none;outline-style:none}.select-all{-webkit-user-select:all;user-select:all}.select-none{-webkit-user-select:none;user-select:none}.\\[corner-shape\\:superellipse\\(1\\.25\\)\\]{corner-shape:superellipse(1.25)}.\\[font-synthesis\\:none\\]{font-synthesis:none}.group-open\\:rotate-90:is(:where(.group):is([open],:popover-open,:open) *){rotate:90deg}@media (hover:hover){.group-hover\\:text-\\[var\\(--rg-text-primary\\)\\]:is(:where(.group):hover *){color:var(--rg-text-primary)}.group-hover\\:opacity-100:is(:where(.group):hover *){opacity:1}}.placeholder\\:text-text-faint::placeholder{color:var(--color-text-faint)}@media (hover:hover){.hover\\:bg-\\[var\\(--rg-error-bg-hover\\)\\]:hover{background-color:var(--rg-error-bg-hover)}.hover\\:bg-\\[var\\(--rg-surface-active\\)\\]:hover{background-color:var(--rg-surface-active)}.hover\\:bg-\\[var\\(--rg-surface-hover\\)\\]:hover{background-color:var(--rg-surface-hover)}.hover\\:bg-accent-hover:hover{background-color:var(--color-accent-hover)}.hover\\:bg-accent\\/50:hover{background-color:#5e6ad280}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-accent\\/50:hover{background-color:color-mix(in oklab, var(--color-accent) 50%, transparent)}}.hover\\:bg-danger\\/30:hover{background-color:#eb57574d}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-danger\\/30:hover{background-color:color-mix(in oklab, var(--color-danger) 30%, transparent)}}.hover\\:bg-surface-2:hover{background-color:var(--color-surface-2)}.hover\\:bg-surface-3:hover{background-color:var(--color-surface-3)}.hover\\:text-\\[var\\(--rg-text-primary\\)\\]:hover{color:var(--rg-text-primary)}.hover\\:text-accent:hover{color:var(--color-accent)}.hover\\:text-danger:hover{color:var(--color-danger)}.hover\\:text-text:hover{color:var(--color-text)}.hover\\:underline:hover{text-decoration-line:underline}.hover\\:opacity-80:hover{opacity:.8}}.focus\\:border-accent:focus{border-color:var(--color-accent)}.active\\:cursor-grabbing:active{cursor:grabbing}.active\\:bg-accent:active{background-color:var(--color-accent)}.active\\:transition-none:active{transition-property:none}.disabled\\:cursor-default:disabled{cursor:default}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:bg-surface-3:disabled{background-color:var(--color-surface-3)}.disabled\\:text-text-faint:disabled{color:var(--color-text-faint)}.disabled\\:opacity-40:disabled{opacity:.4}@media (hover:hover){.disabled\\:hover\\:bg-surface-2:disabled:hover{background-color:var(--color-surface-2)}}.data-\\[state\\=on\\]\\:transition-none[data-state=on],.data-\\[state\\=open\\]\\:transition-none[data-state=open],.data-\\[state\\=…\\]\\:transition-none[data-state=…]{transition-property:none}}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=light],:host([data-theme=light]){--color-bg:#fbfbfc;--color-surface:#fff;--color-surface-2:#f4f4f6;--color-surface-3:#e9e9ee;--color-border:#e2e2e8;--color-border-strong:#cfcfd8;--color-text:#1b1c20;--color-text-dim:#5c5f6a;--color-text-faint:#9a9da8;--color-accent-soft:#5e6ad21f;--color-danger-soft:#eb57571a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--color-bg:#fbfbfc;--color-surface:#fff;--color-surface-2:#f4f4f6;--color-surface-3:#e9e9ee;--color-border:#e2e2e8;--color-border-strong:#cfcfd8;--color-text:#1b1c20;--color-text-dim:#5c5f6a;--color-text-faint:#9a9da8;--color-accent-soft:#5e6ad21f;--color-danger-soft:#eb57571a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}body{background-color:var(--color-bg);font-family:var(--font-sans);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-width:320px;margin:0;font-size:13px}@keyframes geist-spinner-fade{0%{opacity:1}to{opacity:.15}}[data-tip]{position:relative}[data-tip]:hover:after{content:attr(data-tip);color:#fff;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;z-index:60;background:#1b1c20;border-radius:6px;max-width:260px;padding:3px 8px;font-size:10.5px;font-weight:500;line-height:1.35;position:absolute;bottom:calc(100% + 6px);left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 4px 12px #0000004d}[data-tip][data-tip-pos~=right]:hover:after{left:0;transform:none}[data-tip][data-tip-pos~=left]:hover:after{left:auto;right:0;transform:none}[data-tip][data-tip-pos~=bottom]:hover:after{top:calc(100% + 6px);bottom:auto}.no-scrollbar{scrollbar-width:none}.no-scrollbar::-webkit-scrollbar{display:none}.lg-md p{margin:0 0 6px}.lg-md p:last-child{margin-bottom:0}.lg-md a{color:var(--color-accent);word-break:break-all;text-decoration:none}.lg-md a:hover{text-decoration:underline}.lg-md code{background:var(--color-surface-2);border:1px solid var(--color-border);font-family:var(--font-mono);border-radius:4px;padding:0 4px;font-size:11px}.lg-md pre{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:6px;margin:6px 0;padding:8px;overflow-x:auto}.lg-md pre code{white-space:pre;background:0 0;border:none;padding:0;font-size:11px}.lg-md ul,.lg-md ol{flex-direction:column;gap:2px;margin:4px 0 6px;padding-left:18px;display:flex}.lg-md ul{list-style:outside}.lg-md ol{list-style:decimal}.lg-md h4{margin:8px 0 4px;font-size:12px;font-weight:600}.lg-md lg-media{display:block}.lg-md lg-media img,.lg-md lg-media video{border:1px solid var(--color-border);border-radius:6px;max-width:100%;margin:4px 0}.lg-md video{border:1px solid var(--color-border);background:#000;border-radius:6px;max-width:100%;margin:4px 0}.lg-md img{border:1px solid var(--color-border);border-radius:6px;max-width:100%;margin:4px 0}.lg-md strong{font-weight:600}*{scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:4px}::-webkit-scrollbar-track{background:0 0}@property --tw-rotate-x{syntax:\"*\";inherits:false}@property --tw-rotate-y{syntax:\"*\";inherits:false}@property --tw-rotate-z{syntax:\"*\";inherits:false}@property --tw-skew-x{syntax:\"*\";inherits:false}@property --tw-skew-y{syntax:\"*\";inherits:false}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-leading{syntax:\"*\";inherits:false}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-tracking{syntax:\"*\";inherits:false}@property --tw-ordinal{syntax:\"*\";inherits:false}@property --tw-slashed-zero{syntax:\"*\";inherits:false}@property --tw-numeric-figure{syntax:\"*\";inherits:false}@property --tw-numeric-spacing{syntax:\"*\";inherits:false}@property --tw-numeric-fraction{syntax:\"*\";inherits:false}@property --tw-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\"*\";inherits:false}@property --tw-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\"*\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\"*\";inherits:false}@property --tw-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\"*\";inherits:false}@property --tw-inset-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\"*\";inherits:false}@property --tw-ring-offset-width{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\"*\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-blur{syntax:\"*\";inherits:false}@property --tw-brightness{syntax:\"*\";inherits:false}@property --tw-contrast{syntax:\"*\";inherits:false}@property --tw-grayscale{syntax:\"*\";inherits:false}@property --tw-hue-rotate{syntax:\"*\";inherits:false}@property --tw-invert{syntax:\"*\";inherits:false}@property --tw-opacity{syntax:\"*\";inherits:false}@property --tw-saturate{syntax:\"*\";inherits:false}@property --tw-sepia{syntax:\"*\";inherits:false}@property --tw-drop-shadow{syntax:\"*\";inherits:false}@property --tw-drop-shadow-color{syntax:\"*\";inherits:false}@property --tw-drop-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:\"*\";inherits:false}@property --tw-backdrop-blur{syntax:\"*\";inherits:false}@property --tw-backdrop-brightness{syntax:\"*\";inherits:false}@property --tw-backdrop-contrast{syntax:\"*\";inherits:false}@property --tw-backdrop-grayscale{syntax:\"*\";inherits:false}@property --tw-backdrop-hue-rotate{syntax:\"*\";inherits:false}@property --tw-backdrop-invert{syntax:\"*\";inherits:false}@property --tw-backdrop-opacity{syntax:\"*\";inherits:false}@property --tw-backdrop-saturate{syntax:\"*\";inherits:false}@property --tw-backdrop-sepia{syntax:\"*\";inherits:false}@property --tw-duration{syntax:\"*\";inherits:false}@property --tw-ease{syntax:\"*\";inherits:false}@property --tw-contain-size{syntax:\"*\";inherits:false}@property --tw-contain-layout{syntax:\"*\";inherits:false}@property --tw-contain-paint{syntax:\"*\";inherits:false}@property --tw-contain-style{syntax:\"*\";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}";
|
|
48949
|
+
var Q6 = "/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */\n@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-contain-size:initial;--tw-contain-layout:initial;--tw-contain-paint:initial;--tw-contain-style:initial}}}@layer theme{:root,:host{--font-sans:\"Inter\", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-serif:ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif;--font-mono:ui-monospace, \"SF Mono\", Menlo, monospace;--color-red-500:oklch(63.7% .237 25.331);--color-white:#fff;--spacing:.25rem;--font-weight-thin:100;--font-weight-extralight:200;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--font-weight-black:900;--tracking-wide:.025em;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--radius-xl:.75rem;--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-bg:#0b0c0e;--color-surface:#141517;--color-surface-2:#1c1d21;--color-surface-3:#24262b;--color-border:#26282d;--color-border-strong:#34363d;--color-text:#e8e9eb;--color-text-dim:#8b8e98;--color-text-faint:#5c5f6a;--color-accent:#5e6ad2;--color-accent-hover:#6e79e0;--color-accent-soft:#5e6ad226;--color-success:#4cb782;--color-warn:#f2c94c;--color-danger:#eb5757;--color-danger-soft:#eb575726}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.visible\\!{visibility:visible!important}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-y-0{inset-block:0}.-top-0{top:0}.-top-0\\.5{top:calc(var(--spacing) * -.5)}.top-0{top:0}.top-0\\.5{top:calc(var(--spacing) * .5)}.top-1{top:var(--spacing)}.top-1\\/2{top:50%}.top-3{top:calc(var(--spacing) * 3)}.top-\\[2px\\]{top:2px}.top-full{top:100%}.-right-0{right:0}.-right-0\\.5{right:calc(var(--spacing) * -.5)}.right-0{right:0}.right-0\\.5{right:calc(var(--spacing) * .5)}.right-4{right:calc(var(--spacing) * 4)}.right-full{right:100%}.bottom-0{bottom:0}.bottom-1{bottom:var(--spacing)}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-\\[2px\\]{bottom:2px}.bottom-full{bottom:100%}.-left-\\[13\\.5px\\]{left:-13.5px}.left-0{left:0}.left-1{left:var(--spacing)}.left-1\\/2{left:50%}.left-\\[5px\\]{left:5px}.left-full{left:100%}.z-1{z-index:1}.z-10{z-index:10}.z-\\[2147483645\\]{z-index:2147483645}.z-\\[2147483646\\]{z-index:2147483646}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.container\\!{width:100%!important}@media (width>=40rem){.container\\!{max-width:40rem!important}}@media (width>=48rem){.container\\!{max-width:48rem!important}}@media (width>=64rem){.container\\!{max-width:64rem!important}}@media (width>=80rem){.container\\!{max-width:80rem!important}}@media (width>=96rem){.container\\!{max-width:96rem!important}}.-m-0{margin:0}.-m-0\\.5{margin:calc(var(--spacing) * -.5)}.-m-4{margin:calc(var(--spacing) * -4)}.m-0{margin:0}.-mx-2{margin-inline:calc(var(--spacing) * -2)}.-my-1{margin-block:calc(var(--spacing) * -1)}.-my-1\\.5{margin-block:calc(var(--spacing) * -1.5)}.mt-0{margin-top:0}.mt-0\\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-px{margin-top:1px}.mr-0{margin-right:0}.mr-0\\.5{margin-right:calc(var(--spacing) * .5)}.mr-1{margin-right:var(--spacing)}.mr-1\\.5{margin-right:calc(var(--spacing) * 1.5)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-2\\.5{margin-right:calc(var(--spacing) * 2.5)}.-mb-4{margin-bottom:calc(var(--spacing) * -4)}.mb-0{margin-bottom:0}.mb-0\\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:var(--spacing)}.mb-1\\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-2\\.5{margin-bottom:calc(var(--spacing) * 2.5)}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-2\\.5{margin-left:calc(var(--spacing) * 2.5)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-auto{margin-left:auto}.ml-px{margin-left:1px}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-5{-webkit-line-clamp:5;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.list-item{display:list-item}.table{display:table}.size-0{width:0;height:0}.size-1{width:var(--spacing);height:var(--spacing)}.size-1\\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-\\[9px\\]{width:9px;height:9px}.size-\\[12px\\]{width:12px;height:12px}.size-\\[16px\\]{width:16px;height:16px}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-16{height:calc(var(--spacing) * 16)}.h-\\[8px\\]{height:8px}.h-\\[17px\\]{height:17px}.h-\\[18px\\]{height:18px}.h-\\[20px\\]{height:20px}.h-\\[24px\\]{height:24px}.h-fit{height:fit-content}.h-full{height:100%}.h-screen{height:100vh}.max-h-32{max-height:calc(var(--spacing) * 32)}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-44{max-height:calc(var(--spacing) * 44)}.max-h-56{max-height:calc(var(--spacing) * 56)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-\\[var\\(--rg-edit-list-max-h\\)\\]{max-height:var(--rg-edit-list-max-h)}.min-h-0{min-height:0}.min-h-4{min-height:calc(var(--spacing) * 4)}.min-h-\\[2lh\\]{min-height:2lh}.min-h-\\[28px\\]{min-height:28px}.w-1{width:var(--spacing)}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-16{width:calc(var(--spacing) * 16)}.w-28{width:calc(var(--spacing) * 28)}.w-72{width:calc(var(--spacing) * 72)}.w-\\[2px\\]{width:2px}.w-\\[Npx\\]{width:Npx}.w-\\[calc\\(100\\%\\+16px\\)\\]{width:calc(100% + 16px)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-\\[55\\%\\]{max-width:55%}.max-w-\\[100vw\\]{max-width:100vw}.max-w-\\[110px\\]{max-width:110px}.max-w-\\[280px\\]{max-width:280px}.max-w-full{max-width:100%}.min-w-0{min-width:0}.min-w-\\[3\\.5ch\\]{min-width:3.5ch}.min-w-\\[3ch\\]{min-width:3ch}.min-w-\\[4ch\\]{min-width:4ch}.min-w-\\[5ch\\]{min-width:5ch}.min-w-\\[6ch\\]{min-width:6ch}.min-w-\\[7ch\\]{min-width:7ch}.min-w-\\[8ch\\]{min-width:8ch}.min-w-\\[10ch\\]{min-width:10ch}.min-w-\\[12ch\\]{min-width:12ch}.min-w-\\[36px\\]{min-width:36px}.min-w-\\[52px\\]{min-width:52px}.min-w-\\[100px\\]{min-width:100px}.min-w-\\[150px\\]{min-width:150px}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-rotate-90{rotate:-90deg}.rotate-0{rotate:0deg}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.list-decimal{list-style-type:decimal}.grid-cols-\\[0fr\\]{grid-template-columns:0fr}.grid-cols-\\[1fr\\]{grid-template-columns:1fr}.grid-rows-\\[0fr\\]{grid-template-rows:0fr}.grid-rows-\\[1fr\\]{grid-template-rows:1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:0}.gap-0\\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-\\[5px\\]{gap:5px}.self-end{align-self:flex-end}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-clip{overflow:clip}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\\[1px\\]{border-radius:1px}.rounded-\\[3px\\]{border-radius:3px}.rounded-\\[4px\\]{border-radius:4px}.rounded-\\[5px\\]{border-radius:5px}.rounded-\\[6px\\]{border-radius:6px}.rounded-\\[13px\\]{border-radius:13px}.rounded-\\[14px\\]{border-radius:14px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-t-\\[10px\\]{border-top-left-radius:10px;border-top-right-radius:10px}.rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.rounded-l{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-l-\\[10px\\]{border-top-left-radius:10px;border-bottom-left-radius:10px}.rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.rounded-tl{border-top-left-radius:.25rem}.rounded-r{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-r-\\[10px\\]{border-top-right-radius:10px;border-bottom-right-radius:10px}.rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-tr{border-top-right-radius:.25rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-b-\\[6px\\]{border-bottom-right-radius:6px;border-bottom-left-radius:6px}.rounded-b-\\[10px\\]{border-bottom-right-radius:10px;border-bottom-left-radius:10px}.rounded-b-none{border-bottom-right-radius:0;border-bottom-left-radius:0}.rounded-br{border-bottom-right-radius:.25rem}.rounded-bl{border-bottom-left-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.\\[border-width\\:0\\.5px\\]{border-width:.5px}.border-x{border-inline-style:var(--tw-border-style);border-inline-width:1px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-s{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}.border-e{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-4{border-top-style:var(--tw-border-style);border-top-width:4px}.\\[border-top-width\\:0\\.5px\\]{border-top-width:.5px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-dotted{--tw-border-style:dotted;border-style:dotted}.border-none{--tw-border-style:none;border-style:none}.border-solid{--tw-border-style:solid;border-style:solid}.border-\\[var\\(--rg-border-button\\)\\]{border-color:var(--rg-border-button)}.border-accent{border-color:var(--color-accent)}.border-accent\\/40{border-color:#5e6ad266}@supports (color:color-mix(in lab, red, red)){.border-accent\\/40{border-color:color-mix(in oklab, var(--color-accent) 40%, transparent)}}.border-border{border-color:var(--color-border)}.border-danger{border-color:var(--color-danger)}.border-danger\\/40{border-color:#eb575766}@supports (color:color-mix(in lab, red, red)){.border-danger\\/40{border-color:color-mix(in oklab, var(--color-danger) 40%, transparent)}}.border-success{border-color:var(--color-success)}.border-success\\/40{border-color:#4cb78266}@supports (color:color-mix(in lab, red, red)){.border-success\\/40{border-color:color-mix(in oklab, var(--color-success) 40%, transparent)}}.border-text-dim{border-color:var(--color-text-dim)}.border-transparent{border-color:#0000}.border-warn{border-color:var(--color-warn)}.border-warn\\/40{border-color:#f2c94c66}@supports (color:color-mix(in lab, red, red)){.border-warn\\/40{border-color:color-mix(in oklab, var(--color-warn) 40%, transparent)}}.border-t-\\[var\\(--rg-border-subtle\\)\\]{border-top-color:var(--rg-border-subtle)}.border-t-transparent{border-top-color:#0000}.bg-\\[var\\(--rg-error-bg\\)\\]{background-color:var(--rg-error-bg)}.bg-\\[var\\(--rg-panel-bg\\)\\]{background-color:var(--rg-panel-bg)}.bg-\\[var\\(--rg-submit-bg\\)\\]{background-color:var(--rg-submit-bg)}.bg-\\[var\\(--rg-surface-active\\)\\]{background-color:var(--rg-surface-active)}.bg-\\[var\\(--rg-surface-hover\\)\\]{background-color:var(--rg-surface-hover)}.bg-\\[var\\(--rg-text-primary\\)\\]{background-color:var(--rg-text-primary)}.bg-\\[var\\(--rg-text-secondary\\)\\]{background-color:var(--rg-text-secondary)}.bg-accent{background-color:var(--color-accent)}.bg-accent-soft{background-color:var(--color-accent-soft)}.bg-bg{background-color:var(--color-bg)}.bg-bg\\/80{background-color:#0b0c0ecc}@supports (color:color-mix(in lab, red, red)){.bg-bg\\/80{background-color:color-mix(in oklab, var(--color-bg) 80%, transparent)}}.bg-border{background-color:var(--color-border)}.bg-current{background-color:currentColor}.bg-danger{background-color:var(--color-danger)}.bg-danger-soft{background-color:var(--color-danger-soft)}.bg-danger\\/10{background-color:#eb57571a}@supports (color:color-mix(in lab, red, red)){.bg-danger\\/10{background-color:color-mix(in oklab, var(--color-danger) 10%, transparent)}}.bg-red-500{background-color:var(--color-red-500)}.bg-success{background-color:var(--color-success)}.bg-surface{background-color:var(--color-surface)}.bg-surface-2{background-color:var(--color-surface-2)}.bg-surface-3{background-color:var(--color-surface-3)}.bg-text-faint{background-color:var(--color-text-faint)}.bg-transparent{background-color:#0000}.bg-warn{background-color:var(--color-warn)}.bg-warn\\/10{background-color:#f2c94c1a}@supports (color:color-mix(in lab, red, red)){.bg-warn\\/10{background-color:color-mix(in oklab, var(--color-warn) 10%, transparent)}}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:0}.p-0\\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\\.5{padding:calc(var(--spacing) * 2.5)}.p-6{padding:calc(var(--spacing) * 6)}.px-0{padding-inline:0}.px-0\\.25{padding-inline:calc(var(--spacing) * .25)}.px-1{padding-inline:var(--spacing)}.px-1\\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-\\[3px\\]{padding-inline:3px}.py-0{padding-block:0}.py-0\\.5{padding-block:calc(var(--spacing) * .5)}.py-0\\.25{padding-block:calc(var(--spacing) * .25)}.py-1{padding-block:var(--spacing)}.py-1\\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-px{padding-block:1px}.pt-0{padding-top:0}.pt-0\\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:var(--spacing)}.pt-1\\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pr-1{padding-right:var(--spacing)}.pr-1\\.5{padding-right:calc(var(--spacing) * 1.5)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pb-1{padding-bottom:var(--spacing)}.pb-1\\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pl-0{padding-left:0}.pl-0\\.5{padding-left:calc(var(--spacing) * .5)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-2\\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.text-center{text-align:center}.text-end{text-align:end}.text-justify{text-align:justify}.text-left{text-align:left}.text-right{text-align:right}.text-start{text-align:start}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.font-serif{font-family:var(--font-serif)}.text-\\[9\\.5px\\]{font-size:9.5px}.text-\\[9px\\]{font-size:9px}.text-\\[10\\.5px\\]{font-size:10.5px}.text-\\[10px\\]{font-size:10px}.text-\\[11\\.5px\\]{font-size:11.5px}.text-\\[11px\\]{font-size:11px}.text-\\[12\\.5px\\]{font-size:12.5px}.text-\\[12px\\]{font-size:12px}.text-\\[13px\\]{font-size:13px}.text-\\[15px\\]{font-size:15px}.leading-3{--tw-leading:calc(var(--spacing) * 3);line-height:calc(var(--spacing) * 3)}.leading-3\\.5{--tw-leading:calc(var(--spacing) * 3.5);line-height:calc(var(--spacing) * 3.5)}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-extralight{--tw-font-weight:var(--font-weight-extralight);font-weight:var(--font-weight-extralight)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.font-thin{--tw-font-weight:var(--font-weight-thin);font-weight:var(--font-weight-thin)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-normal{overflow-wrap:normal;word-break:normal}.break-words,.wrap-break-word{overflow-wrap:break-word}.break-all{word-break:break-all}.break-keep{word-break:keep-all}.text-ellipsis{text-overflow:ellipsis}.whitespace-break-spaces{white-space:break-spaces}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.text-\\[var\\(--rg-error-text\\)\\]{color:var(--rg-error-text)}.text-\\[var\\(--rg-submit-fg\\)\\]{color:var(--rg-submit-fg)}.text-\\[var\\(--rg-text-primary\\)\\]{color:var(--rg-text-primary)}.text-\\[var\\(--rg-text-primary-85\\)\\]{color:var(--rg-text-primary-85)}.text-\\[var\\(--rg-text-secondary\\)\\]{color:var(--rg-text-secondary)}.text-accent{color:var(--color-accent)}.text-danger{color:var(--color-danger)}.text-success{color:var(--color-success)}.text-text{color:var(--color-text)}.text-text-dim{color:var(--color-text-dim)}.text-text-faint{color:var(--color-text-faint)}.text-warn{color:var(--color-warn)}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.not-italic{font-style:normal}.lining-nums{--tw-numeric-figure:lining-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.oldstyle-nums{--tw-numeric-figure:oldstyle-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.proportional-nums{--tw-numeric-spacing:proportional-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.slashed-zero{--tw-slashed-zero:slashed-zero;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.accent-accent{accent-color:var(--color-accent)}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.\\[box-shadow\\:var\\(--rg-shadow\\)\\]{box-shadow:var(--rg-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.\\[filter\\:var\\(--rg-drop-shadow\\)\\]{filter:var(--rg-drop-shadow)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[grid-template-columns\\]{transition-property:grid-template-columns;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[grid-template-rows\\]{transition-property:grid-template-rows;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[opacity\\,transform\\]{transition-property:opacity,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[padding\\,border-radius\\,transform\\]{transition-property:padding,border-radius,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[top\\,left\\,width\\,height\\,opacity\\,border-radius\\]{transition-property:top,left,width,height,opacity,border-radius;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[transform\\,color\\]{transition-property:transform,color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[transform\\,opacity\\]{transition-property:transform,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.delay-\\[80ms\\]{transition-delay:80ms}.duration-60{--tw-duration:60ms;transition-duration:60ms}.duration-75{--tw-duration:75ms;transition-duration:75ms}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-120{--tw-duration:.12s;transition-duration:.12s}.duration-140{--tw-duration:.14s;transition-duration:.14s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-180{--tw-duration:.18s;transition-duration:.18s}.duration-220{--tw-duration:.22s;transition-duration:.22s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-400{--tw-duration:.4s;transition-duration:.4s}.ease-\\[cubic-bezier\\(0\\,0\\,0\\.2\\,1\\)\\]{--tw-ease:cubic-bezier(0,0,.2,1);transition-timing-function:cubic-bezier(0,0,.2,1)}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.will-change-\\[opacity\\,transform\\]{will-change:opacity,transform}.will-change-transform{will-change:transform}.contain-layout{--tw-contain-layout:layout;contain:var(--tw-contain-size,) var(--tw-contain-layout,) var(--tw-contain-paint,) var(--tw-contain-style,)}.outline-none{--tw-outline-style:none;outline-style:none}.select-all{-webkit-user-select:all;user-select:all}.select-none{-webkit-user-select:none;user-select:none}.\\[corner-shape\\:superellipse\\(1\\.25\\)\\]{corner-shape:superellipse(1.25)}.\\[font-synthesis\\:none\\]{font-synthesis:none}.group-open\\:rotate-90:is(:where(.group):is([open],:popover-open,:open) *){rotate:90deg}@media (hover:hover){.group-hover\\:text-\\[var\\(--rg-text-primary\\)\\]:is(:where(.group):hover *){color:var(--rg-text-primary)}.group-hover\\:opacity-100:is(:where(.group):hover *){opacity:1}}.placeholder\\:text-text-faint::placeholder{color:var(--color-text-faint)}@media (hover:hover){.hover\\:bg-\\[var\\(--rg-error-bg-hover\\)\\]:hover{background-color:var(--rg-error-bg-hover)}.hover\\:bg-\\[var\\(--rg-surface-active\\)\\]:hover{background-color:var(--rg-surface-active)}.hover\\:bg-\\[var\\(--rg-surface-hover\\)\\]:hover{background-color:var(--rg-surface-hover)}.hover\\:bg-accent-hover:hover{background-color:var(--color-accent-hover)}.hover\\:bg-accent\\/50:hover{background-color:#5e6ad280}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-accent\\/50:hover{background-color:color-mix(in oklab, var(--color-accent) 50%, transparent)}}.hover\\:bg-danger\\/30:hover{background-color:#eb57574d}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-danger\\/30:hover{background-color:color-mix(in oklab, var(--color-danger) 30%, transparent)}}.hover\\:bg-surface-2:hover{background-color:var(--color-surface-2)}.hover\\:bg-surface-3:hover{background-color:var(--color-surface-3)}.hover\\:text-\\[var\\(--rg-text-primary\\)\\]:hover{color:var(--rg-text-primary)}.hover\\:text-accent:hover{color:var(--color-accent)}.hover\\:text-danger:hover{color:var(--color-danger)}.hover\\:text-text:hover{color:var(--color-text)}.hover\\:underline:hover{text-decoration-line:underline}.hover\\:opacity-80:hover{opacity:.8}}.focus\\:border-accent:focus{border-color:var(--color-accent)}.active\\:cursor-grabbing:active{cursor:grabbing}.active\\:bg-accent:active{background-color:var(--color-accent)}.active\\:transition-none:active{transition-property:none}.disabled\\:cursor-default:disabled{cursor:default}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:bg-surface-3:disabled{background-color:var(--color-surface-3)}.disabled\\:text-text-faint:disabled{color:var(--color-text-faint)}.disabled\\:opacity-40:disabled{opacity:.4}@media (hover:hover){.disabled\\:hover\\:bg-surface-2:disabled:hover{background-color:var(--color-surface-2)}}.data-\\[state\\=on\\]\\:transition-none[data-state=on],.data-\\[state\\=open\\]\\:transition-none[data-state=open],.data-\\[state\\=…\\]\\:transition-none[data-state=…]{transition-property:none}}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=light],:host([data-theme=light]){--color-bg:#fbfbfc;--color-surface:#fff;--color-surface-2:#f4f4f6;--color-surface-3:#e9e9ee;--color-border:#e2e2e8;--color-border-strong:#cfcfd8;--color-text:#1b1c20;--color-text-dim:#5c5f6a;--color-text-faint:#9a9da8;--color-accent-soft:#5e6ad21f;--color-danger-soft:#eb57571a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--color-bg:#fbfbfc;--color-surface:#fff;--color-surface-2:#f4f4f6;--color-surface-3:#e9e9ee;--color-border:#e2e2e8;--color-border-strong:#cfcfd8;--color-text:#1b1c20;--color-text-dim:#5c5f6a;--color-text-faint:#9a9da8;--color-accent-soft:#5e6ad21f;--color-danger-soft:#eb57571a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}body{background-color:var(--color-bg);font-family:var(--font-sans);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-width:320px;margin:0;font-size:13px}@keyframes geist-spinner-fade{0%{opacity:1}to{opacity:.15}}[data-tip]{position:relative}[data-tip]:hover:after{content:attr(data-tip);color:#fff;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;z-index:60;background:#1b1c20;border-radius:6px;max-width:260px;padding:3px 8px;font-size:10.5px;font-weight:500;line-height:1.35;position:absolute;bottom:calc(100% + 6px);left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 4px 12px #0000004d}[data-tip][data-tip-pos~=right]:hover:after{left:0;transform:none}[data-tip][data-tip-pos~=left]:hover:after{left:auto;right:0;transform:none}[data-tip][data-tip-pos~=bottom]:hover:after{top:calc(100% + 6px);bottom:auto}.no-scrollbar{scrollbar-width:none}.no-scrollbar::-webkit-scrollbar{display:none}.lg-md p{margin:0 0 6px}.lg-md p:last-child{margin-bottom:0}.lg-md a{color:var(--color-accent);word-break:break-all;text-decoration:none}.lg-md a:hover{text-decoration:underline}.lg-md code{background:var(--color-surface-2);border:1px solid var(--color-border);font-family:var(--font-mono);border-radius:4px;padding:0 4px;font-size:11px}.lg-md pre{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:6px;margin:6px 0;padding:8px;overflow-x:auto}.lg-md pre code{white-space:pre;background:0 0;border:none;padding:0;font-size:11px}.lg-md ul,.lg-md ol{flex-direction:column;gap:2px;margin:4px 0 6px;padding-left:18px;display:flex}.lg-md ul{list-style:outside}.lg-md ol{list-style:decimal}.lg-md h4{margin:8px 0 4px;font-size:12px;font-weight:600}.lg-md lg-media{display:block}.lg-md lg-media img,.lg-md lg-media video{border:1px solid var(--color-border);border-radius:6px;max-width:100%;margin:4px 0}.lg-md video{border:1px solid var(--color-border);background:#000;border-radius:6px;max-width:100%;margin:4px 0}.lg-md img{border:1px solid var(--color-border);border-radius:6px;max-width:100%;margin:4px 0}.lg-md strong{font-weight:600}*{scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:4px}::-webkit-scrollbar-track{background:0 0}@property --tw-rotate-x{syntax:\"*\";inherits:false}@property --tw-rotate-y{syntax:\"*\";inherits:false}@property --tw-rotate-z{syntax:\"*\";inherits:false}@property --tw-skew-x{syntax:\"*\";inherits:false}@property --tw-skew-y{syntax:\"*\";inherits:false}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-leading{syntax:\"*\";inherits:false}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-tracking{syntax:\"*\";inherits:false}@property --tw-ordinal{syntax:\"*\";inherits:false}@property --tw-slashed-zero{syntax:\"*\";inherits:false}@property --tw-numeric-figure{syntax:\"*\";inherits:false}@property --tw-numeric-spacing{syntax:\"*\";inherits:false}@property --tw-numeric-fraction{syntax:\"*\";inherits:false}@property --tw-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\"*\";inherits:false}@property --tw-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\"*\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\"*\";inherits:false}@property --tw-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\"*\";inherits:false}@property --tw-inset-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\"*\";inherits:false}@property --tw-ring-offset-width{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\"*\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-blur{syntax:\"*\";inherits:false}@property --tw-brightness{syntax:\"*\";inherits:false}@property --tw-contrast{syntax:\"*\";inherits:false}@property --tw-grayscale{syntax:\"*\";inherits:false}@property --tw-hue-rotate{syntax:\"*\";inherits:false}@property --tw-invert{syntax:\"*\";inherits:false}@property --tw-opacity{syntax:\"*\";inherits:false}@property --tw-saturate{syntax:\"*\";inherits:false}@property --tw-sepia{syntax:\"*\";inherits:false}@property --tw-drop-shadow{syntax:\"*\";inherits:false}@property --tw-drop-shadow-color{syntax:\"*\";inherits:false}@property --tw-drop-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:\"*\";inherits:false}@property --tw-backdrop-blur{syntax:\"*\";inherits:false}@property --tw-backdrop-brightness{syntax:\"*\";inherits:false}@property --tw-backdrop-contrast{syntax:\"*\";inherits:false}@property --tw-backdrop-grayscale{syntax:\"*\";inherits:false}@property --tw-backdrop-hue-rotate{syntax:\"*\";inherits:false}@property --tw-backdrop-invert{syntax:\"*\";inherits:false}@property --tw-backdrop-opacity{syntax:\"*\";inherits:false}@property --tw-backdrop-saturate{syntax:\"*\";inherits:false}@property --tw-backdrop-sepia{syntax:\"*\";inherits:false}@property --tw-duration{syntax:\"*\";inherits:false}@property --tw-ease{syntax:\"*\";inherits:false}@property --tw-contain-size{syntax:\"*\";inherits:false}@property --tw-contain-layout{syntax:\"*\";inherits:false}@property --tw-contain-paint{syntax:\"*\";inherits:false}@property --tw-contain-style{syntax:\"*\";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}";
|
|
48912
48950
|
//#endregion
|
|
48913
48951
|
//#region src/page/index.tsx
|
|
48914
48952
|
zr();
|
|
48915
|
-
var
|
|
48916
|
-
function
|
|
48953
|
+
var $6 = /*#__PURE__*/ P("<span aria-hidden class=\"bg-danger size-2 shrink-0 animate-pulse rounded-full\">"), e8 = /*#__PURE__*/ P("<span class=\"text-text min-w-[5ch] text-[11px] font-medium tabular-nums\">"), t8 = /*#__PURE__*/ P("<button class=\"bg-accent hover:bg-accent-hover h-7 cursor-pointer rounded-full px-2.5 text-[11px] font-medium text-white transition-colors\"><span class=\"inline-block min-w-[4ch] text-center\">Stop"), n8 = /*#__PURE__*/ P("<p class=\"text-warn px-1.5 pt-1 pb-1.5 text-[10.5px] font-semibold tracking-wide uppercase\">Needs review"), r8 = /*#__PURE__*/ P("<div><p class=\"text-text-dim px-1.5 pt-1 pb-1.5 text-[10.5px] font-semibold tracking-wide uppercase\">Running agents"), i8 = /*#__PURE__*/ P("<div class=\"fixed z-[2147483646] select-none\"><div class=\"bg-surface border-border text-text flex h-9 cursor-grab items-center gap-1 rounded-full border py-1 pr-1 pl-2.5 font-sans shadow-lg active:cursor-grabbing\">"), a8 = /*#__PURE__*/ P("<div><div title=\"Drag to resize\">"), o8 = /*#__PURE__*/ P("<button title=\"Open Linear Grab\"aria-label=\"Open Linear Grab\"class=\"text-accent hover:opacity-80 inline-flex cursor-pointer items-center gap-1.5\">"), s8 = /*#__PURE__*/ P("<span class=\"bg-border h-4 w-px\"aria-hidden>"), c8 = /*#__PURE__*/ P("<span aria-hidden class=\"bg-warn size-2 rounded-full\">"), l8 = /*#__PURE__*/ P("<span class=\"text-warn min-w-[3.5ch] text-left text-[11px] font-medium tabular-nums\"> rev"), u8 = /*#__PURE__*/ P("<button title=\"Running agents\"aria-label=\"Running agents\"class=\"hover:bg-surface-2 flex h-7 cursor-pointer items-center gap-1.5 rounded-full px-2 transition-colors\"><span aria-hidden></span><span>"), d8 = /*#__PURE__*/ P("<span aria-hidden class=\"bg-accent size-2 shrink-0 animate-pulse rounded-full\">"), f8 = /*#__PURE__*/ P("<span class=\"text-text min-w-[3ch] text-[11px] font-medium tabular-nums\">s"), p8 = /*#__PURE__*/ P("<span class=\"text-text-dim min-w-[7ch] text-[11px] tabular-nums\"> states"), m8 = /*#__PURE__*/ P("<p class=\"text-text-faint px-1.5 pb-1.5 text-[11.5px]\">No agents running right now."), h8 = /*#__PURE__*/ P("<button class=\"hover:bg-surface-2 flex w-full cursor-pointer flex-col gap-0.5 rounded-md px-1.5 py-1.5 text-left transition-colors\"><span class=\"flex min-w-0 items-center gap-1.5\"><span aria-hidden class=\"size-1.5 shrink-0 rounded-full\"></span><span class=\"font-mono text-text-dim shrink-0 text-[10.5px]\"></span><span class=\"text-text truncate text-[11.5px]\"></span></span><span class=\"text-text-faint pl-3 text-[10.5px] tabular-nums\"> · <!> · ");
|
|
48954
|
+
function g8(e = {}) {
|
|
48917
48955
|
if (typeof window > "u" || window.__LINEAR_GRAB_PAGE__) return;
|
|
48918
48956
|
window.__LINEAR_GRAB_PAGE__ = !0;
|
|
48919
48957
|
let t = () => {
|
|
@@ -48945,17 +48983,17 @@ function h8(e = {}) {
|
|
|
48945
48983
|
"keypress"
|
|
48946
48984
|
]) window.addEventListener(e, n, { capture: !0 });
|
|
48947
48985
|
let r = t.attachShadow({ mode: "open" }), i = document.createElement("style");
|
|
48948
|
-
i.textContent =
|
|
48986
|
+
i.textContent = Q6, r.appendChild(i);
|
|
48949
48987
|
let a = document.createElement("div");
|
|
48950
48988
|
r.appendChild(a);
|
|
48951
|
-
let o = () => a.setAttribute("data-theme",
|
|
48952
|
-
o(), matchMedia("(prefers-color-scheme: light)").addEventListener("change", o), tt(() => M(
|
|
48989
|
+
let o = () => a.setAttribute("data-theme", _8());
|
|
48990
|
+
o(), matchMedia("(prefers-color-scheme: light)").addEventListener("change", o), tt(() => M(C8, { get defaultOpen() {
|
|
48953
48991
|
return e.defaultOpen ?? !1;
|
|
48954
48992
|
} }), a);
|
|
48955
48993
|
};
|
|
48956
48994
|
document.body ? t() : document.addEventListener("DOMContentLoaded", t, { once: !0 });
|
|
48957
48995
|
}
|
|
48958
|
-
function
|
|
48996
|
+
function _8() {
|
|
48959
48997
|
try {
|
|
48960
48998
|
let e = [document.body, document.documentElement];
|
|
48961
48999
|
for (let t of e) {
|
|
@@ -48965,11 +49003,11 @@ function g8() {
|
|
|
48965
49003
|
} catch {}
|
|
48966
49004
|
return matchMedia("(prefers-color-scheme: light)").matches ? "light" : "dark";
|
|
48967
49005
|
}
|
|
48968
|
-
var
|
|
48969
|
-
function
|
|
49006
|
+
var v8 = 130, y8 = 36, b8 = 380, x8 = 280, S8 = 720;
|
|
49007
|
+
function C8(e) {
|
|
48970
49008
|
let [t, n] = T(e.defaultOpen), [r, i] = T("right"), [a, o] = T({
|
|
48971
|
-
x: Math.max(8, window.innerWidth -
|
|
48972
|
-
y: Math.max(8, window.innerHeight -
|
|
49009
|
+
x: Math.max(8, window.innerWidth - v8 - 24),
|
|
49010
|
+
y: Math.max(8, window.innerHeight - y8 - 20)
|
|
48973
49011
|
}), [s, c] = T({
|
|
48974
49012
|
running: [],
|
|
48975
49013
|
review: []
|
|
@@ -48989,15 +49027,15 @@ function S8(e) {
|
|
|
48989
49027
|
let t = Math.floor(e / 1e3);
|
|
48990
49028
|
return `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
|
|
48991
49029
|
}, [b, x] = T(null), S = (e) => ({
|
|
48992
|
-
x: Math.min(Math.max(8, e.x), window.innerWidth -
|
|
48993
|
-
y: Math.min(Math.max(8, e.y), window.innerHeight -
|
|
49030
|
+
x: Math.min(Math.max(8, e.x), window.innerWidth - v8 - 8),
|
|
49031
|
+
y: Math.min(Math.max(8, e.y), window.innerHeight - y8 - 8)
|
|
48994
49032
|
}), C = (e) => ({
|
|
48995
49033
|
x: Math.min(Math.max(8 - (te() - 80), e.x), window.innerWidth - 80),
|
|
48996
49034
|
y: Math.min(Math.max(0, e.y), window.innerHeight - 80)
|
|
48997
|
-
}), [w, E] = T(!1), [k, ee] = T("cloud"), [A, j] = T(!1), [te, ne] = T(
|
|
49035
|
+
}), [w, E] = T(!1), [k, ee] = T("cloud"), [A, j] = T(!1), [te, ne] = T(b8), ae = (e) => Math.min(S8, Math.max(x8, Math.min(e, window.innerWidth - 60)));
|
|
48998
49036
|
O(() => {
|
|
48999
49037
|
let e = document.documentElement, n = t() && w();
|
|
49000
|
-
e.style.
|
|
49038
|
+
e.style.marginRight = n && r() === "right" ? `${te()}px` : "", e.style.marginLeft = n && r() === "left" ? `${te()}px` : "";
|
|
49001
49039
|
}), ie(() => {
|
|
49002
49040
|
document.documentElement.style.marginRight = "", document.documentElement.style.marginLeft = "";
|
|
49003
49041
|
});
|
|
@@ -49108,7 +49146,7 @@ function S8(e) {
|
|
|
49108
49146
|
return !t();
|
|
49109
49147
|
},
|
|
49110
49148
|
get children() {
|
|
49111
|
-
var e =
|
|
49149
|
+
var e = i8(), t = e.firstChild;
|
|
49112
49150
|
return t.$$click = () => {
|
|
49113
49151
|
se || p() === "recording" || h().active || (f(!1), n(!0));
|
|
49114
49152
|
}, t.$$pointerdown = ce, F(t, M(N, {
|
|
@@ -49118,14 +49156,14 @@ function S8(e) {
|
|
|
49118
49156
|
get fallback() {
|
|
49119
49157
|
return [
|
|
49120
49158
|
(() => {
|
|
49121
|
-
var e =
|
|
49159
|
+
var e = o8();
|
|
49122
49160
|
return e.$$click = () => {
|
|
49123
49161
|
se || (f(!1), n(!0));
|
|
49124
|
-
}, F(e, M(
|
|
49162
|
+
}, F(e, M(X6, { size: 13 })), e;
|
|
49125
49163
|
})(),
|
|
49126
|
-
|
|
49164
|
+
s8(),
|
|
49127
49165
|
(() => {
|
|
49128
|
-
var e =
|
|
49166
|
+
var e = u8(), t = e.firstChild, n = t.nextSibling;
|
|
49129
49167
|
return e.$$click = (e) => {
|
|
49130
49168
|
e.stopPropagation(), !se && f((e) => !e);
|
|
49131
49169
|
}, F(n, (() => {
|
|
@@ -49136,8 +49174,8 @@ function S8(e) {
|
|
|
49136
49174
|
return Qe(() => !A())() && u().length > 0;
|
|
49137
49175
|
},
|
|
49138
49176
|
get children() {
|
|
49139
|
-
return [
|
|
49140
|
-
var e =
|
|
49177
|
+
return [c8(), (() => {
|
|
49178
|
+
var e = l8(), t = e.firstChild;
|
|
49141
49179
|
return F(e, () => u().length, t), e;
|
|
49142
49180
|
})()];
|
|
49143
49181
|
}
|
|
@@ -49158,17 +49196,17 @@ function S8(e) {
|
|
|
49158
49196
|
},
|
|
49159
49197
|
get fallback() {
|
|
49160
49198
|
return [
|
|
49161
|
-
|
|
49199
|
+
d8(),
|
|
49162
49200
|
(() => {
|
|
49163
|
-
var e =
|
|
49201
|
+
var e = f8(), t = e.firstChild;
|
|
49164
49202
|
return F(e, () => Math.ceil(h().msLeft / 1e3), t), e;
|
|
49165
49203
|
})(),
|
|
49166
49204
|
(() => {
|
|
49167
|
-
var e =
|
|
49205
|
+
var e = p8(), t = e.firstChild;
|
|
49168
49206
|
return F(e, () => h().total, t), D(() => rt(e, "title", Object.entries(h().byTrigger).map(([e, t]) => `${t} ${e}`).join(" · ") || "hover / open the component to record its states")), e;
|
|
49169
49207
|
})(),
|
|
49170
49208
|
(() => {
|
|
49171
|
-
var e =
|
|
49209
|
+
var e = t8();
|
|
49172
49210
|
return e.$$click = (e) => {
|
|
49173
49211
|
e.stopPropagation(), !se && o2();
|
|
49174
49212
|
}, e;
|
|
@@ -49177,13 +49215,13 @@ function S8(e) {
|
|
|
49177
49215
|
},
|
|
49178
49216
|
get children() {
|
|
49179
49217
|
return [
|
|
49180
|
-
|
|
49218
|
+
$6(),
|
|
49181
49219
|
(() => {
|
|
49182
|
-
var e =
|
|
49220
|
+
var e = e8();
|
|
49183
49221
|
return F(e, () => y(_())), e;
|
|
49184
49222
|
})(),
|
|
49185
49223
|
(() => {
|
|
49186
|
-
var e =
|
|
49224
|
+
var e = t8();
|
|
49187
49225
|
return e.$$click = () => {
|
|
49188
49226
|
se || eO();
|
|
49189
49227
|
}, e;
|
|
@@ -49197,17 +49235,17 @@ function S8(e) {
|
|
|
49197
49235
|
return d();
|
|
49198
49236
|
},
|
|
49199
49237
|
get children() {
|
|
49200
|
-
var e =
|
|
49238
|
+
var e = r8(), t = e.firstChild;
|
|
49201
49239
|
return F(e, M(N, {
|
|
49202
49240
|
get when() {
|
|
49203
49241
|
return u().length > 0;
|
|
49204
49242
|
},
|
|
49205
49243
|
get children() {
|
|
49206
|
-
return [
|
|
49244
|
+
return [n8(), M(Ue, {
|
|
49207
49245
|
get each() {
|
|
49208
49246
|
return u();
|
|
49209
49247
|
},
|
|
49210
|
-
children: (e) => M(
|
|
49248
|
+
children: (e) => M(w8, {
|
|
49211
49249
|
agent: e,
|
|
49212
49250
|
review: !0,
|
|
49213
49251
|
onOpen: ue
|
|
@@ -49219,14 +49257,14 @@ function S8(e) {
|
|
|
49219
49257
|
return l().length > 0;
|
|
49220
49258
|
},
|
|
49221
49259
|
get fallback() {
|
|
49222
|
-
return
|
|
49260
|
+
return m8();
|
|
49223
49261
|
},
|
|
49224
49262
|
get children() {
|
|
49225
49263
|
return M(Ue, {
|
|
49226
49264
|
get each() {
|
|
49227
49265
|
return l();
|
|
49228
49266
|
},
|
|
49229
|
-
children: (e) => M(
|
|
49267
|
+
children: (e) => M(w8, {
|
|
49230
49268
|
agent: e,
|
|
49231
49269
|
onOpen: ue
|
|
49232
49270
|
})
|
|
@@ -49247,8 +49285,8 @@ function S8(e) {
|
|
|
49247
49285
|
return t();
|
|
49248
49286
|
},
|
|
49249
49287
|
get children() {
|
|
49250
|
-
var e =
|
|
49251
|
-
return t.$$pointerdown = de, F(e, M(
|
|
49288
|
+
var e = a8(), t = e.firstChild;
|
|
49289
|
+
return t.$$pointerdown = de, F(e, M(Z6, {
|
|
49252
49290
|
onGrab: () => n(!0),
|
|
49253
49291
|
onClose: () => n(!1),
|
|
49254
49292
|
get onHeaderPointerDown() {
|
|
@@ -49276,19 +49314,19 @@ function S8(e) {
|
|
|
49276
49314
|
}
|
|
49277
49315
|
})];
|
|
49278
49316
|
}
|
|
49279
|
-
function
|
|
49317
|
+
function w8(e) {
|
|
49280
49318
|
return (() => {
|
|
49281
|
-
var t =
|
|
49319
|
+
var t = h8(), n = t.firstChild, r = n.firstChild, i = r.nextSibling, a = i.nextSibling, o = n.nextSibling, s = o.firstChild, c = s.nextSibling;
|
|
49282
49320
|
return c.nextSibling, t.$$click = () => e.onOpen(e.agent.id), F(i, () => e.agent.identifier), F(a, () => e.agent.title), F(o, (() => {
|
|
49283
49321
|
var t = Qe(() => !!e.review);
|
|
49284
49322
|
return () => t() ? "PR ready · needs review" : e.agent.stateName;
|
|
49285
|
-
})(), s), F(o, () => e.agent.delegateName, c), F(o, () =>
|
|
49323
|
+
})(), s), F(o, () => e.agent.delegateName, c), F(o, () => T8(e.agent.updatedAt), null), D((t) => ut(r, "background", e.review ? "var(--color-warn)" : e.agent.stateColor)), t;
|
|
49286
49324
|
})();
|
|
49287
49325
|
}
|
|
49288
|
-
function
|
|
49326
|
+
function T8(e) {
|
|
49289
49327
|
let t = Math.max(0, Math.floor((Date.now() - Date.parse(e)) / 1e3));
|
|
49290
49328
|
return t < 60 ? "now" : t < 3600 ? `${Math.floor(t / 60)}m` : t < 86400 ? `${Math.floor(t / 3600)}h` : `${Math.floor(t / 86400)}d`;
|
|
49291
49329
|
}
|
|
49292
49330
|
nt(["pointerdown", "click"]);
|
|
49293
49331
|
//#endregion
|
|
49294
|
-
export {
|
|
49332
|
+
export { g8 as init };
|