linear-grab 0.19.0 → 0.20.0
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/README.md +1 -1
- package/bin/linear-grab-bridge.mjs +9 -1
- package/dist/index.global.js +8 -5
- package/dist/linear-grab.js +556 -421
- package/package.json +1 -1
package/dist/linear-grab.js
CHANGED
|
@@ -26519,7 +26519,7 @@ async function fO() {
|
|
|
26519
26519
|
}));
|
|
26520
26520
|
}
|
|
26521
26521
|
async function pO(e) {
|
|
26522
|
-
let { comments: t, attachments: n, ...r } = (await cO("query($id: String!) {\n issue(id: $id) {\n id identifier title url updatedAt priority description branchName\n state { name color type }\n delegate { id name displayName }\n assignee { displayName }\n comments(first: 50) {\n nodes { id body createdAt parent { id } user { id name displayName app } }\n }\n attachments(first: 20) {\n nodes { id title url sourceType }\n }\n }\n }", { id: e })).issue;
|
|
26522
|
+
let { comments: t, attachments: n, ...r } = (await cO("query($id: String!) {\n issue(id: $id) {\n id identifier title url updatedAt priority description branchName\n team { id }\n state { name color type }\n delegate { id name displayName }\n assignee { displayName }\n comments(first: 50) {\n nodes { id body createdAt parent { id } user { id name displayName app } }\n }\n attachments(first: 20) {\n nodes { id title url sourceType }\n }\n }\n }", { id: e })).issue;
|
|
26523
26523
|
return {
|
|
26524
26524
|
...r,
|
|
26525
26525
|
comments: t.nodes,
|
|
@@ -43238,15 +43238,15 @@ function h$(e) {
|
|
|
43238
43238
|
//#endregion
|
|
43239
43239
|
//#region src/panel/views/ActivityView.tsx
|
|
43240
43240
|
Br();
|
|
43241
|
-
var g$ = /*#__PURE__*/ N("<div class=\"lg-md text-text text-[12px] leading-relaxed break-words\">"), _$ = /*#__PURE__*/ N("<div class=\"flex h-full flex-col\">"), v$ = /*#__PURE__*/ N("<span class=\"tabular-nums text-[10.5px] text-text-faint\">live · updated "), y$ = /*#__PURE__*/ N("<svg aria-hidden width=11 height=11 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round><path d=\"M1 4.5A7 7 0 0 1 13.5 3\"></path><path d=\"M15 11.5A7 7 0 0 1 2.5 13\"></path><polyline points=\"1 1 1 5 5 5\"></polyline><polyline points=\"15 11 15 15 11 15\">"), b$ = /*#__PURE__*/ N("<div class=\"flex-1 overflow-y-auto\">"), x$ = /*#__PURE__*/ N("<div class=\"min-h-0 flex-1 overflow-y-auto pl-2 pr-3\"><div style=position:relative>"), S$ = /*#__PURE__*/ N("<div class=\"flex h-full flex-col\"><div class=\"border-border flex shrink-0 items-center justify-between border-b px-3 py-2\"><span class=\"text-text text-[12px] font-semibold\">My issues</span><div class=\"flex items-center gap-2\"></div></div><div class=\"border-border flex shrink-0 items-center gap-1 border-b px-3 py-1.5\">"), C$ = /*#__PURE__*/ N("<button>"), w$ = /*#__PURE__*/ N("<div style=position:absolute;top:0;left:0;width:100%>"), T$ = /*#__PURE__*/ N("<button class=\"w-full cursor-pointer rounded-md px-2 py-1.5 text-left hover:bg-surface-2 transition-colors\"><div class=\"flex items-center gap-1.5 min-w-0\"><span class=\"font-mono text-[11px] text-text-dim shrink-0\"></span><span class=\"truncate text-[12.5px] text-text\"></span></div><div class=\"mt-0.5 flex items-center gap-1.5\"><span class=\"ml-auto tabular-nums text-[10.5px] text-text-faint\">"), E$ = /*#__PURE__*/ N("<svg width=13 height=13 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round aria-hidden><path d=\"M10.5 3.5 6 8l4.5 4.5\">"), D$ = /*#__PURE__*/ N("<span class=\"font-mono text-[11px] text-text-dim shrink-0\">"), O$ = /*#__PURE__*/ N("<span class=\"truncate text-[12px] font-medium text-text\">"), k$ = /*#__PURE__*/ N("<span class=\"text-[11.5px] text-text-faint\">Loading…"), A$ = /*#__PURE__*/ N("<div class=\"flex items-center gap-2\"><span class=\"text-[11px] text-text-dim\">"), j$ = /*#__PURE__*/ N("<div class=\"flex flex-col gap-2\">"), M$ = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1\"><span class=\"text-[10.5px] font-semibold uppercase tracking-wide text-text-dim\">Attachments</span><div class=\"flex flex-col gap-1\">"), N$ = /*#__PURE__*/ N("<div class=\"flex flex-col gap-2.5\"><span class=\"text-[10.5px] font-semibold uppercase tracking-wide text-text-dim\">Comments"), P$ = /*#__PURE__*/ N("<option value=local>Message local Claude Code session"), F$ = /*#__PURE__*/ N("<option value=new>Start NEW agent (@<!>)"), I$ = /*#__PURE__*/ N("<option value=comment>Comment only"), L$ = /*#__PURE__*/ N("<svg width=13 height=13 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round aria-hidden><circle cx=8 cy=8 r=2.2></circle><path d=\"M8 1v3M8 12v3M1 8h3M12 8h3\">"), R$ = /*#__PURE__*/ N("<svg width=11 height=11 viewBox=\"0 0 16 16\"fill=currentColor aria-hidden><rect x=3 y=3 width=10 height=10 rx=1.5>"), z$ = /*#__PURE__*/ N("<svg width=13 height=13 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round aria-hidden><path d=\"M13 7.5 8.2 12.3a3.2 3.2 0 0 1-4.5-4.5L8.9 2.6a2.1 2.1 0 0 1 3 3L7.1 10.4a1 1 0 0 1-1.5-1.5l4.3-4.3\">"), B$ = /*#__PURE__*/ N("<span class=\"inline-block min-w-[4ch] text-left\">Send"), V$ = /*#__PURE__*/ N("<div class=\"flex h-full flex-col\"><div class=\"border-border flex shrink-0 flex-col gap-1 border-b px-3 py-2\"><div class=\"flex items-center gap-2\"></div></div><div class=\"min-h-0 flex-1 overflow-y-auto pl-3 pr-4 py-3 flex flex-col gap-3\"></div><div class=\"border-border shrink-0 border-t p-2.5 flex flex-col gap-1.5\"><div class=\"flex items-center gap-2\">"), H$ = /*#__PURE__*/ N("<option selected>"), U$ = /*#__PURE__*/ N("<svg width=10 height=10 viewBox=\"0 0 16 16\"fill=currentColor aria-hidden><rect x=3 y=3 width=10 height=10 rx=1.5>"), W$ = /*#__PURE__*/ N("<svg width=11 height=11 viewBox=\"0 0 16 16\"fill=currentColor aria-hidden><path d=\"M4.5 2.8a.8.8 0 0 1 1.22-.68l8 5.2a.8.8 0 0 1 0 1.36l-8 5.2a.8.8 0 0 1-1.22-.68V2.8Z\">"), G$ = /*#__PURE__*/ N("<svg width=11 height=11 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round aria-hidden><path d=\"m2.5 4 3.5 4-3.5 4M8 12.5h5.5\">"), K$ = /*#__PURE__*/ N("<div class=\"bg-surface border-border overflow-clip rounded-lg border\"><div class=\"border-border flex h-9 min-w-0 items-center justify-between gap-2 border-b px-3\"><div class=\"flex min-w-0 items-center gap-1.5 text-[11.5px] font-medium\"><span aria-hidden class=\"text-text-dim inline-flex\"></span><span class=\"text-text shrink-0\">Local Claude Code</span><span class=\"text-text-dim shrink-0\">started by you</span><span class=\"text-text-faint shrink-0 tabular-nums\">· </span></div></div><div class=\"flex h-9 items-center gap-1 pr-2\"><button class=\"hover:bg-surface-2 flex h-full min-w-0 flex-1 cursor-pointer items-center gap-2 rounded-md px-3 text-left transition-colors\"title=\"Open the live thread in the Local tab\"><span></span><span class=\"text-text-faint min-w-0 flex-1 truncate text-[11.5px]\"></span><svg width=14 height=14 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round aria-hidden class=\"text-text-dim shrink-0\"><path d=\"m6 3.5 4.5 4.5L6 12.5\">"), q$ = /*#__PURE__*/ N("<option>"), J$ = /*#__PURE__*/ N("<span class=\"text-success text-[11px]\">✓"),
|
|
43242
|
-
function
|
|
43241
|
+
var g$ = /*#__PURE__*/ N("<div class=\"lg-md text-text text-[12px] leading-relaxed break-words\">"), _$ = /*#__PURE__*/ N("<div class=\"flex h-full flex-col\">"), v$ = /*#__PURE__*/ N("<span class=\"tabular-nums text-[10.5px] text-text-faint\">live · updated "), y$ = /*#__PURE__*/ N("<svg aria-hidden width=11 height=11 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round><path d=\"M1 4.5A7 7 0 0 1 13.5 3\"></path><path d=\"M15 11.5A7 7 0 0 1 2.5 13\"></path><polyline points=\"1 1 1 5 5 5\"></polyline><polyline points=\"15 11 15 15 11 15\">"), b$ = /*#__PURE__*/ N("<div class=\"flex-1 overflow-y-auto\">"), x$ = /*#__PURE__*/ N("<div class=\"min-h-0 flex-1 overflow-y-auto pl-2 pr-3\"><div style=position:relative>"), S$ = /*#__PURE__*/ N("<div class=\"flex h-full flex-col\"><div class=\"border-border flex shrink-0 items-center justify-between border-b px-3 py-2\"><span class=\"text-text text-[12px] font-semibold\">My issues</span><div class=\"flex items-center gap-2\"></div></div><div class=\"border-border flex shrink-0 items-center gap-1 border-b px-3 py-1.5\">"), C$ = /*#__PURE__*/ N("<button>"), w$ = /*#__PURE__*/ N("<div style=position:absolute;top:0;left:0;width:100%>"), T$ = /*#__PURE__*/ N("<button class=\"w-full cursor-pointer rounded-md px-2 py-1.5 text-left hover:bg-surface-2 transition-colors\"><div class=\"flex items-center gap-1.5 min-w-0\"><span class=\"font-mono text-[11px] text-text-dim shrink-0\"></span><span class=\"truncate text-[12.5px] text-text\"></span></div><div class=\"mt-0.5 flex items-center gap-1.5\"><span class=\"ml-auto tabular-nums text-[10.5px] text-text-faint\">"), E$ = /*#__PURE__*/ N("<svg width=13 height=13 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round aria-hidden><path d=\"M10.5 3.5 6 8l4.5 4.5\">"), D$ = /*#__PURE__*/ N("<span class=\"font-mono text-[11px] text-text-dim shrink-0\">"), O$ = /*#__PURE__*/ N("<span class=\"truncate text-[12px] font-medium text-text\">"), k$ = /*#__PURE__*/ N("<span class=\"text-[11.5px] text-text-faint\">Loading…"), A$ = /*#__PURE__*/ N("<div class=\"flex items-center gap-2\"><span class=\"text-[11px] text-text-dim\">"), j$ = /*#__PURE__*/ N("<div class=\"flex flex-col gap-2\">"), M$ = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1\"><span class=\"text-[10.5px] font-semibold uppercase tracking-wide text-text-dim\">Attachments</span><div class=\"flex flex-col gap-1\">"), N$ = /*#__PURE__*/ N("<div class=\"flex flex-col gap-2.5\"><span class=\"text-[10.5px] font-semibold uppercase tracking-wide text-text-dim\">Comments"), P$ = /*#__PURE__*/ N("<option value=local>Message local Claude Code session"), F$ = /*#__PURE__*/ N("<option value=new>Start NEW agent (@<!>)"), I$ = /*#__PURE__*/ N("<option value=comment>Comment only"), L$ = /*#__PURE__*/ N("<svg width=13 height=13 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round aria-hidden><circle cx=8 cy=8 r=2.2></circle><path d=\"M8 1v3M8 12v3M1 8h3M12 8h3\">"), R$ = /*#__PURE__*/ N("<svg width=11 height=11 viewBox=\"0 0 16 16\"fill=currentColor aria-hidden><rect x=3 y=3 width=10 height=10 rx=1.5>"), z$ = /*#__PURE__*/ N("<svg width=13 height=13 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round aria-hidden><path d=\"M13 7.5 8.2 12.3a3.2 3.2 0 0 1-4.5-4.5L8.9 2.6a2.1 2.1 0 0 1 3 3L7.1 10.4a1 1 0 0 1-1.5-1.5l4.3-4.3\">"), B$ = /*#__PURE__*/ N("<span class=\"inline-block min-w-[4ch] text-left\">Send"), V$ = /*#__PURE__*/ N("<div class=\"flex h-full flex-col\"><div class=\"border-border flex shrink-0 flex-col gap-1 border-b px-3 py-2\"><div class=\"flex items-center gap-2\"></div></div><div class=\"min-h-0 flex-1 overflow-y-auto pl-3 pr-4 py-3 flex flex-col gap-3\"></div><div class=\"border-border shrink-0 border-t p-2.5 flex flex-col gap-1.5\"><div class=\"flex items-center gap-2\">"), H$ = /*#__PURE__*/ N("<option selected>"), U$ = /*#__PURE__*/ N("<svg width=10 height=10 viewBox=\"0 0 16 16\"fill=currentColor aria-hidden><rect x=3 y=3 width=10 height=10 rx=1.5>"), W$ = /*#__PURE__*/ N("<svg width=11 height=11 viewBox=\"0 0 16 16\"fill=currentColor aria-hidden><path d=\"M4.5 2.8a.8.8 0 0 1 1.22-.68l8 5.2a.8.8 0 0 1 0 1.36l-8 5.2a.8.8 0 0 1-1.22-.68V2.8Z\">"), G$ = /*#__PURE__*/ N("<svg width=11 height=11 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round aria-hidden><path d=\"m2.5 4 3.5 4-3.5 4M8 12.5h5.5\">"), K$ = /*#__PURE__*/ N("<div class=\"bg-surface border-border overflow-clip rounded-lg border\"><div class=\"border-border flex h-9 min-w-0 items-center justify-between gap-2 border-b px-3\"><div class=\"flex min-w-0 items-center gap-1.5 text-[11.5px] font-medium\"><span aria-hidden class=\"text-text-dim inline-flex\"></span><span class=\"text-text shrink-0\">Local Claude Code</span><span class=\"text-text-dim shrink-0\">started by you</span><span class=\"text-text-faint shrink-0 tabular-nums\">· </span></div></div><div class=\"flex h-9 items-center gap-1 pr-2\"><button class=\"hover:bg-surface-2 flex h-full min-w-0 flex-1 cursor-pointer items-center gap-2 rounded-md px-3 text-left transition-colors\"title=\"Open the live thread in the Local tab\"><span></span><span class=\"text-text-faint min-w-0 flex-1 truncate text-[11.5px]\"></span><svg width=14 height=14 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round aria-hidden class=\"text-text-dim shrink-0\"><path d=\"m6 3.5 4.5 4.5L6 12.5\">"), q$ = /*#__PURE__*/ N("<option>"), J$ = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1.5\">"), Y$ = /*#__PURE__*/ N("<span class=\"text-success text-[11px]\">✓"), X$ = /*#__PURE__*/ N("<span class=\"inline-block min-w-[6ch] text-center\">Merge"), Z$ = /*#__PURE__*/ N("<div class=\"flex min-w-0 items-center gap-1.5\"><a target=_blank rel=noreferrer class=\"text-accent min-w-0 truncate text-[11.5px] hover:underline\">"), Q$ = /*#__PURE__*/ N("<svg width=12 height=12 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round aria-hidden><path d=\"M8 2 14 5.5 8 9 2 5.5 8 2Z\"></path><path d=\"M2 10.5 8 14l6-3.5\">"), $$ = /*#__PURE__*/ N("<div class=\"flex flex-col gap-0.5\"><div class=\"flex items-center gap-1.5\"><span class=\"text-[11px] font-medium text-text-dim\"></span><span class=\"ml-auto tabular-nums text-[10.5px] text-text-faint\">"), e1 = /*#__PURE__*/ N("<option>Steer running agent<!> · "), t1 = /*#__PURE__*/ N("<span class=\"bg-danger inline-block size-2.5 rounded-full\"aria-hidden>"), n1 = /*#__PURE__*/ N("<span class=\"text-[11px] text-text-dim\">"), r1 = /*#__PURE__*/ N("<svg width=12 height=12 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round aria-hidden class=transition-transform><path d=\"m3.5 6.5 4.5 4 4.5-4\">"), i1 = /*#__PURE__*/ N("<p class=\"text-[12px] text-text leading-relaxed whitespace-pre-wrap break-words\">"), a1 = /*#__PURE__*/ N("<div class=\"border-border mt-0.5 flex flex-col gap-1 overflow-y-auto border-t pt-1.5 pl-0.5 pr-3\">"), o1 = /*#__PURE__*/ N("<div class=\"bg-surface border-border rounded-lg border p-2.5 flex flex-col gap-1.5\"><div class=\"flex items-center gap-1.5 flex-wrap\"><span class=\"ml-auto tabular-nums text-[10.5px] text-text-faint\">"), s1 = /*#__PURE__*/ N("<p class=\"font-mono text-text-faint text-[10.5px] leading-relaxed break-words\">→ <!> "), c1 = /*#__PURE__*/ N("<div>");
|
|
43242
|
+
function l1(e) {
|
|
43243
43243
|
let t = k(() => h$(e.text));
|
|
43244
43244
|
return (() => {
|
|
43245
43245
|
var e = g$();
|
|
43246
43246
|
return D(() => e.innerHTML = t()), e;
|
|
43247
43247
|
})();
|
|
43248
43248
|
}
|
|
43249
|
-
function
|
|
43249
|
+
function u1() {
|
|
43250
43250
|
let [e, t] = T(null);
|
|
43251
43251
|
return O(() => {
|
|
43252
43252
|
let e = rj();
|
|
@@ -43258,7 +43258,7 @@ function l1() {
|
|
|
43258
43258
|
return e() === null;
|
|
43259
43259
|
},
|
|
43260
43260
|
get fallback() {
|
|
43261
|
-
return j(
|
|
43261
|
+
return j(p1, {
|
|
43262
43262
|
get issueId() {
|
|
43263
43263
|
return e();
|
|
43264
43264
|
},
|
|
@@ -43266,12 +43266,12 @@ function l1() {
|
|
|
43266
43266
|
});
|
|
43267
43267
|
},
|
|
43268
43268
|
get children() {
|
|
43269
|
-
return j(
|
|
43269
|
+
return j(d1, { onSelect: (e) => t(e) });
|
|
43270
43270
|
}
|
|
43271
43271
|
})), n;
|
|
43272
43272
|
})();
|
|
43273
43273
|
}
|
|
43274
|
-
function
|
|
43274
|
+
function d1(e) {
|
|
43275
43275
|
let t, n = _r(() => ({
|
|
43276
43276
|
queryKey: ["my-issues"],
|
|
43277
43277
|
queryFn: fO,
|
|
@@ -43403,7 +43403,7 @@ function u1(e) {
|
|
|
43403
43403
|
},
|
|
43404
43404
|
get children() {
|
|
43405
43405
|
var r = w$();
|
|
43406
|
-
return P(r, j(
|
|
43406
|
+
return P(r, j(f1, {
|
|
43407
43407
|
get issue() {
|
|
43408
43408
|
return n();
|
|
43409
43409
|
},
|
|
@@ -43422,7 +43422,7 @@ function u1(e) {
|
|
|
43422
43422
|
}), null), r;
|
|
43423
43423
|
})();
|
|
43424
43424
|
}
|
|
43425
|
-
function
|
|
43425
|
+
function f1(e) {
|
|
43426
43426
|
return (() => {
|
|
43427
43427
|
var t = T$(), n = t.firstChild, r = n.firstChild, i = r.nextSibling, a = n.nextSibling, o = a.firstChild;
|
|
43428
43428
|
return t.$$click = () => e.onSelect(e.issue.id), P(n, j(zj, { get color() {
|
|
@@ -43470,7 +43470,7 @@ function d1(e) {
|
|
|
43470
43470
|
}), o), P(o, () => Uj(e.issue.updatedAt)), t;
|
|
43471
43471
|
})();
|
|
43472
43472
|
}
|
|
43473
|
-
function
|
|
43473
|
+
function p1(e) {
|
|
43474
43474
|
let t = sr(), n = _r(() => ({
|
|
43475
43475
|
queryKey: ["issue", e.issueId],
|
|
43476
43476
|
queryFn: () => pO(e.issueId),
|
|
@@ -43511,24 +43511,50 @@ function f1(e) {
|
|
|
43511
43511
|
label: "Haiku"
|
|
43512
43512
|
}
|
|
43513
43513
|
], s = vr(() => ({
|
|
43514
|
+
mutationFn: async (t) => {
|
|
43515
|
+
let r = n.data?.attachments.find((e) => /github\.com\/[^/]+\/[^/]+\/pull\/\d+/i.test(e.url)), i = r ? se.data?.previews[r.url] : void 0, a = [...t.activities].reverse().find((e) => e.content.__typename === "AgentActivityResponseContent")?.content.body, o = [
|
|
43516
|
+
"✅ **Closeout** (posted from the panel — one-click acceptance)",
|
|
43517
|
+
"",
|
|
43518
|
+
`**Fix:** ${(t.summary ?? a ?? "Fix complete — see the PR.").slice(0, 600)}`,
|
|
43519
|
+
"",
|
|
43520
|
+
...r ? [`**PR:** ${r.url}`] : [],
|
|
43521
|
+
...i ? [`**Deploy preview:** ${i}`] : [],
|
|
43522
|
+
"",
|
|
43523
|
+
"**DEFINITION OF DONE — acceptance checklist**",
|
|
43524
|
+
`- [x] PR opened and linked${r ? ` — ${r.url}` : ""}`,
|
|
43525
|
+
i ? "- [x] Deploy-preview URL included (above)" : "- [ ] Deploy-preview URL — none found on the PR",
|
|
43526
|
+
"- [x] Issue moved to review state (this action)",
|
|
43527
|
+
"- [ ] Demo media on the issue — attach from the PR/agent artifacts if recorded"
|
|
43528
|
+
];
|
|
43529
|
+
await CO(e.issueId, o.join("\n"), t.comment?.id ?? void 0);
|
|
43530
|
+
let s = n.data?.team?.id;
|
|
43531
|
+
if (s) {
|
|
43532
|
+
let t = await vO(s), n = t.find((e) => e.type === "started" && /review/i.test(e.name)) ?? t.filter((e) => e.type === "completed").sort((e, t) => e.position - t.position)[0];
|
|
43533
|
+
n && await yO(e.issueId, n.id);
|
|
43534
|
+
}
|
|
43535
|
+
},
|
|
43536
|
+
onSuccess: () => {
|
|
43537
|
+
t.invalidateQueries({ queryKey: ["issue", e.issueId] }), t.invalidateQueries({ queryKey: ["sessions", e.issueId] });
|
|
43538
|
+
}
|
|
43539
|
+
})), c = vr(() => ({
|
|
43514
43540
|
mutationFn: (e) => LO(e.id, e.model),
|
|
43515
43541
|
onSuccess: (e) => {
|
|
43516
43542
|
t.setQueryData(["bridge-tasks"], (t) => t?.map((t) => t.id === e.id ? e : t));
|
|
43517
43543
|
}
|
|
43518
|
-
})),
|
|
43544
|
+
})), l = vr(() => ({
|
|
43519
43545
|
mutationFn: (e) => IO(e, "Continue where you left off. If the work is already complete, finish any remaining closeout steps (PR, Linear update, announcement)."),
|
|
43520
43546
|
onSuccess: () => void t.invalidateQueries({ queryKey: ["bridge-tasks"] })
|
|
43521
|
-
})),
|
|
43547
|
+
})), u = vr(() => ({
|
|
43522
43548
|
mutationFn: (e) => RO(e),
|
|
43523
43549
|
onSuccess: () => void t.invalidateQueries({ queryKey: ["bridge-tasks"] })
|
|
43524
|
-
})), [
|
|
43550
|
+
})), [d, f] = T(!1), p = async (e) => {
|
|
43525
43551
|
try {
|
|
43526
|
-
await navigator.clipboard.writeText(YO(e)),
|
|
43552
|
+
await navigator.clipboard.writeText(YO(e)), f(!0), setTimeout(() => f(!1), 1800);
|
|
43527
43553
|
} catch {}
|
|
43528
|
-
},
|
|
43554
|
+
}, m = k(() => {
|
|
43529
43555
|
let e = n.data?.identifier;
|
|
43530
43556
|
return e ? a.data?.find((t) => t.title.startsWith(e)) : void 0;
|
|
43531
|
-
}),
|
|
43557
|
+
}), h = (e) => e.status === "running" ? {
|
|
43532
43558
|
word: "Working…",
|
|
43533
43559
|
cls: "text-accent"
|
|
43534
43560
|
} : e.status === "done" ? {
|
|
@@ -43540,68 +43566,68 @@ function f1(e) {
|
|
|
43540
43566
|
} : {
|
|
43541
43567
|
word: "Error",
|
|
43542
43568
|
cls: "text-danger"
|
|
43543
|
-
}, [
|
|
43569
|
+
}, [g, _] = br(`activity-reply:${e.issueId}`, ""), [v, y] = T(null), [b, x] = T(0), S = _r(() => ({
|
|
43544
43570
|
queryKey: ["grab"],
|
|
43545
43571
|
queryFn: Dr,
|
|
43546
43572
|
enabled: sj() === "composer"
|
|
43547
|
-
})), [
|
|
43548
|
-
|
|
43573
|
+
})), [C, w] = T(!1), E = async () => {
|
|
43574
|
+
w(!0), y(null);
|
|
43549
43575
|
try {
|
|
43550
43576
|
let e = await a$();
|
|
43551
|
-
e ?
|
|
43577
|
+
e ? _((t) => `${t ? `${t}\n` : ""}${e}\n`) : y("Nothing captured yet — pick an element, capture a region, or record first.");
|
|
43552
43578
|
} catch (e) {
|
|
43553
|
-
|
|
43579
|
+
y(e instanceof Error ? e.message : "Attach failed.");
|
|
43554
43580
|
} finally {
|
|
43555
|
-
|
|
43581
|
+
w(!1);
|
|
43556
43582
|
}
|
|
43557
|
-
},
|
|
43583
|
+
}, ee = () => {
|
|
43558
43584
|
if (sj() === "composer") {
|
|
43559
43585
|
lj("capture");
|
|
43560
43586
|
return;
|
|
43561
43587
|
}
|
|
43562
|
-
|
|
43588
|
+
x(Date.now()), lj("composer"), qZ().catch(() => lj("capture"));
|
|
43563
43589
|
};
|
|
43564
43590
|
O(() => {
|
|
43565
43591
|
if (sj() !== "composer") return;
|
|
43566
|
-
let e = (
|
|
43592
|
+
let e = (S.data ?? []).filter((e) => e.grabbedAt > b());
|
|
43567
43593
|
if (!e.length) return;
|
|
43568
43594
|
let t = e.map((e) => {
|
|
43569
43595
|
let t = e.source?.filePath ? ` — \`${e.source.filePath}${e.source.lineNumber == null ? "" : `:${e.source.lineNumber}`}\`` : "";
|
|
43570
43596
|
return `- \`<${e.componentName ?? e.tagName ?? "element"}>\`${t}`;
|
|
43571
43597
|
}).join("\n");
|
|
43572
|
-
|
|
43598
|
+
_((e) => `${e ? `${e}\n` : ""}${t}\n`), x(Math.max(...e.map((e) => e.grabbedAt)));
|
|
43573
43599
|
});
|
|
43574
|
-
let [
|
|
43575
|
-
ae(UD(
|
|
43576
|
-
let
|
|
43600
|
+
let [te, A] = T(HD());
|
|
43601
|
+
ae(UD(A));
|
|
43602
|
+
let ne = !1;
|
|
43577
43603
|
O(() => {
|
|
43578
|
-
|
|
43604
|
+
te().phase === "ready" && ne && (ne = !1, E());
|
|
43579
43605
|
});
|
|
43580
|
-
let
|
|
43581
|
-
|
|
43582
|
-
},
|
|
43583
|
-
queryKey: ["pr-status",
|
|
43584
|
-
queryFn: () => HO(
|
|
43606
|
+
let re = () => {
|
|
43607
|
+
te().phase === "recording" ? eO() : (ne = !0, $D());
|
|
43608
|
+
}, ie = /github\.com\/[^/]+\/[^/]+\/pull\/\d+/i, oe = k(() => (n.data?.attachments ?? []).map((e) => e.url).filter((e) => ie.test(e))), se = _r(() => ({
|
|
43609
|
+
queryKey: ["pr-status", oe().sort().join("|")],
|
|
43610
|
+
queryFn: () => HO(oe()),
|
|
43585
43611
|
refetchInterval: 3e4,
|
|
43586
43612
|
retry: 0,
|
|
43587
|
-
enabled:
|
|
43588
|
-
})),
|
|
43589
|
-
|
|
43613
|
+
enabled: oe().length > 0
|
|
43614
|
+
})), ce = (e) => _e().has(e) ? "MERGED" : se.data?.statuses[e], [le, ue] = T(null), de = () => i.data?.stagingBranch?.trim() || "staging", [fe, pe] = T(null), [me, he] = T(/* @__PURE__ */ new Set()), ge = async (e) => {
|
|
43615
|
+
pe(e);
|
|
43590
43616
|
try {
|
|
43591
|
-
await UO(e,
|
|
43617
|
+
await UO(e, de()), he((t) => new Set(t).add(e));
|
|
43592
43618
|
} catch {} finally {
|
|
43593
|
-
|
|
43619
|
+
pe(null);
|
|
43594
43620
|
}
|
|
43595
|
-
}, [
|
|
43596
|
-
|
|
43621
|
+
}, [_e, ve] = T(/* @__PURE__ */ new Set()), [ye, be] = T(null), xe = async (n) => {
|
|
43622
|
+
be(null), ue(n);
|
|
43597
43623
|
try {
|
|
43598
|
-
await qO(n),
|
|
43624
|
+
await qO(n), ve((e) => new Set(e).add(n)), t.invalidateQueries({ queryKey: ["issue", e.issueId] }), t.invalidateQueries({ queryKey: ["my-issues"] }), JQ();
|
|
43599
43625
|
} catch (e) {
|
|
43600
|
-
|
|
43626
|
+
be(e instanceof Error ? `${e.message} (bridge must be running; gh needs merge rights)` : "Merge failed.");
|
|
43601
43627
|
} finally {
|
|
43602
|
-
|
|
43628
|
+
ue(null);
|
|
43603
43629
|
}
|
|
43604
|
-
},
|
|
43630
|
+
}, Se = k(() => {
|
|
43605
43631
|
let e = n.data ? TO(n.data.comments) : [], t = new Set(e.map((e) => e.id));
|
|
43606
43632
|
return [...(r.data ?? []).filter((e) => e.comment?.id && !t.has(e.comment.id)).map((e) => ({
|
|
43607
43633
|
id: e.comment.id,
|
|
@@ -43613,26 +43639,26 @@ function f1(e) {
|
|
|
43613
43639
|
},
|
|
43614
43640
|
parent: null
|
|
43615
43641
|
})), ...e];
|
|
43616
|
-
}), [
|
|
43642
|
+
}), [Ce, we] = T("comment"), Te = !1, Ee = !1;
|
|
43617
43643
|
O(() => {
|
|
43618
|
-
if (
|
|
43619
|
-
|
|
43620
|
-
let e =
|
|
43621
|
-
e.length ?
|
|
43644
|
+
if (Ee || !n.data || !i.data) return;
|
|
43645
|
+
Ee = !0;
|
|
43646
|
+
let e = Se();
|
|
43647
|
+
e.length ? we(`thread:${e[0].id}`) : n.data.delegate && i.data.cursorAgentId && we("new");
|
|
43622
43648
|
}), O(() => {
|
|
43623
|
-
|
|
43649
|
+
Te || m() && (Ce() === "comment" || Ce() === "new") && we("local");
|
|
43624
43650
|
}), O(() => {
|
|
43625
|
-
if (
|
|
43626
|
-
let e =
|
|
43627
|
-
e.length && (
|
|
43651
|
+
if (Te) return;
|
|
43652
|
+
let e = Se();
|
|
43653
|
+
e.length && (Ce() === "comment" || Ce() === "new") && we(`thread:${e[0].id}`);
|
|
43628
43654
|
});
|
|
43629
|
-
let
|
|
43655
|
+
let De = vr(() => ({
|
|
43630
43656
|
mutationFn: async () => {
|
|
43631
|
-
let t =
|
|
43657
|
+
let t = g().trim();
|
|
43632
43658
|
if (!t) throw Error("Message is empty");
|
|
43633
|
-
let n = i.data ?? {}, r =
|
|
43659
|
+
let n = i.data ?? {}, r = Ce();
|
|
43634
43660
|
if (r === "local") {
|
|
43635
|
-
let n =
|
|
43661
|
+
let n = m();
|
|
43636
43662
|
if (!n) throw Error("Local session not found — is the bridge running?");
|
|
43637
43663
|
await IO(n.id, t), await CO(e.issueId, `🖥️ **→ local agent:** ${t}`).catch(() => {});
|
|
43638
43664
|
} else r.startsWith("thread:") ? await CO(e.issueId, t, r.slice(7)) : r === "new" && n.cursorAgentId ? await wO(e.issueId, t, {
|
|
@@ -43642,14 +43668,14 @@ function f1(e) {
|
|
|
43642
43668
|
}) : await CO(e.issueId, t);
|
|
43643
43669
|
},
|
|
43644
43670
|
onSuccess: () => {
|
|
43645
|
-
|
|
43671
|
+
_(""), y(null), lj("capture"), t.invalidateQueries({ queryKey: ["issue", e.issueId] }), JQ();
|
|
43646
43672
|
},
|
|
43647
43673
|
onError: (e) => {
|
|
43648
|
-
|
|
43674
|
+
y(e.message ?? "Failed to send");
|
|
43649
43675
|
}
|
|
43650
|
-
})),
|
|
43676
|
+
})), Oe = k(() => n.data), ke = k(() => r.data ?? []);
|
|
43651
43677
|
return (() => {
|
|
43652
|
-
var t = V$(), r = t.firstChild, a = r.firstChild,
|
|
43678
|
+
var t = V$(), r = t.firstChild, a = r.firstChild, f = r.nextSibling, y = f.nextSibling, b = y.firstChild;
|
|
43653
43679
|
return P(a, j(Oj, {
|
|
43654
43680
|
variant: "ghost",
|
|
43655
43681
|
class: "size-7 shrink-0 px-0",
|
|
@@ -43664,56 +43690,56 @@ function f1(e) {
|
|
|
43664
43690
|
}
|
|
43665
43691
|
}), null), P(a, j(M, {
|
|
43666
43692
|
get when() {
|
|
43667
|
-
return
|
|
43693
|
+
return Oe();
|
|
43668
43694
|
},
|
|
43669
43695
|
get children() {
|
|
43670
43696
|
return [(() => {
|
|
43671
43697
|
var e = D$();
|
|
43672
|
-
return P(e, () =>
|
|
43698
|
+
return P(e, () => Oe().identifier), e;
|
|
43673
43699
|
})(), (() => {
|
|
43674
43700
|
var e = O$();
|
|
43675
|
-
return P(e, () =>
|
|
43701
|
+
return P(e, () => Oe().title), e;
|
|
43676
43702
|
})()];
|
|
43677
43703
|
}
|
|
43678
43704
|
}), null), P(a, j(M, {
|
|
43679
43705
|
get when() {
|
|
43680
|
-
return $e(() => !!n.isPending)() && !
|
|
43706
|
+
return $e(() => !!n.isPending)() && !Oe();
|
|
43681
43707
|
},
|
|
43682
43708
|
get children() {
|
|
43683
43709
|
return k$();
|
|
43684
43710
|
}
|
|
43685
43711
|
}), null), P(r, j(M, {
|
|
43686
43712
|
get when() {
|
|
43687
|
-
return
|
|
43713
|
+
return Oe();
|
|
43688
43714
|
},
|
|
43689
43715
|
get children() {
|
|
43690
43716
|
var e = A$(), t = e.firstChild;
|
|
43691
43717
|
return P(e, j(zj, { get color() {
|
|
43692
|
-
return
|
|
43693
|
-
} }), t), P(t, () =>
|
|
43718
|
+
return Oe().state.color;
|
|
43719
|
+
} }), t), P(t, () => Oe().state.name), P(e, j(Fj, {
|
|
43694
43720
|
get href() {
|
|
43695
|
-
return
|
|
43721
|
+
return Oe().url;
|
|
43696
43722
|
},
|
|
43697
43723
|
class: "ml-auto shrink-0",
|
|
43698
43724
|
children: "Open in Linear"
|
|
43699
43725
|
}), null), e;
|
|
43700
43726
|
}
|
|
43701
|
-
}), null), P(
|
|
43727
|
+
}), null), P(f, j(M, {
|
|
43702
43728
|
get when() {
|
|
43703
|
-
return
|
|
43729
|
+
return m();
|
|
43704
43730
|
},
|
|
43705
43731
|
children: (e) => {
|
|
43706
|
-
let t = () =>
|
|
43732
|
+
let t = () => h(e());
|
|
43707
43733
|
return (() => {
|
|
43708
43734
|
var n = K$(), r = n.firstChild, i = r.firstChild.firstChild, a = i.nextSibling.nextSibling.nextSibling;
|
|
43709
43735
|
a.firstChild;
|
|
43710
|
-
var
|
|
43736
|
+
var s = r.nextSibling, f = s.firstChild, m = f.firstChild, h = m.nextSibling;
|
|
43711
43737
|
return P(i, j(Pj, { size: 12 })), P(a, () => Uj(e().startedAt), null), P(r, j(Mj, {
|
|
43712
43738
|
class: "h-6 w-auto max-w-[110px] shrink-0 text-[10.5px]",
|
|
43713
43739
|
get value() {
|
|
43714
43740
|
return e().pendingModel ?? e().model ?? "";
|
|
43715
43741
|
},
|
|
43716
|
-
onChange: (t) =>
|
|
43742
|
+
onChange: (t) => c.mutate({
|
|
43717
43743
|
id: e().id,
|
|
43718
43744
|
model: t.currentTarget.value
|
|
43719
43745
|
}),
|
|
@@ -43735,7 +43761,7 @@ function f1(e) {
|
|
|
43735
43761
|
}
|
|
43736
43762
|
})];
|
|
43737
43763
|
}
|
|
43738
|
-
}), null),
|
|
43764
|
+
}), null), f.$$click = () => aj("local"), P(f, j(M, {
|
|
43739
43765
|
get when() {
|
|
43740
43766
|
return e().status === "running";
|
|
43741
43767
|
},
|
|
@@ -43745,7 +43771,7 @@ function f1(e) {
|
|
|
43745
43771
|
}), m), P(m, () => t().word), P(h, (() => {
|
|
43746
43772
|
var t = $e(() => e().status === "done");
|
|
43747
43773
|
return () => t() ? e().result ?? e().lastText : e().lastText;
|
|
43748
|
-
})()), P(
|
|
43774
|
+
})()), P(s, j(M, {
|
|
43749
43775
|
get when() {
|
|
43750
43776
|
return e().status === "running";
|
|
43751
43777
|
},
|
|
@@ -43754,17 +43780,17 @@ function f1(e) {
|
|
|
43754
43780
|
variant: "danger",
|
|
43755
43781
|
class: "size-6 shrink-0 px-0",
|
|
43756
43782
|
get loading() {
|
|
43757
|
-
return
|
|
43783
|
+
return u.isPending;
|
|
43758
43784
|
},
|
|
43759
43785
|
title: "Stop the session — resumable afterwards",
|
|
43760
43786
|
"aria-label": "Stop session",
|
|
43761
|
-
onClick: () =>
|
|
43787
|
+
onClick: () => u.mutate(e().id),
|
|
43762
43788
|
get children() {
|
|
43763
43789
|
return U$();
|
|
43764
43790
|
}
|
|
43765
43791
|
});
|
|
43766
43792
|
}
|
|
43767
|
-
}), null), P(
|
|
43793
|
+
}), null), P(s, j(M, {
|
|
43768
43794
|
get when() {
|
|
43769
43795
|
return $e(() => e().status !== "running")() && e().sessionId;
|
|
43770
43796
|
},
|
|
@@ -43773,19 +43799,19 @@ function f1(e) {
|
|
|
43773
43799
|
variant: "ghost",
|
|
43774
43800
|
class: "size-6 shrink-0 px-0",
|
|
43775
43801
|
get loading() {
|
|
43776
|
-
return
|
|
43802
|
+
return l.isPending;
|
|
43777
43803
|
},
|
|
43778
43804
|
get title() {
|
|
43779
43805
|
return `Run again — resumes this session${e().pendingModel ? ` on ${e().pendingModel}` : ""}`;
|
|
43780
43806
|
},
|
|
43781
43807
|
"aria-label": "Resume session",
|
|
43782
|
-
onClick: () =>
|
|
43808
|
+
onClick: () => l.mutate(e().id),
|
|
43783
43809
|
get children() {
|
|
43784
43810
|
return W$();
|
|
43785
43811
|
}
|
|
43786
43812
|
});
|
|
43787
43813
|
}
|
|
43788
|
-
}), null), P(
|
|
43814
|
+
}), null), P(s, j(M, {
|
|
43789
43815
|
get when() {
|
|
43790
43816
|
return e().sessionId;
|
|
43791
43817
|
},
|
|
@@ -43794,10 +43820,10 @@ function f1(e) {
|
|
|
43794
43820
|
variant: "ghost",
|
|
43795
43821
|
class: "size-6 shrink-0 px-0",
|
|
43796
43822
|
get title() {
|
|
43797
|
-
return
|
|
43823
|
+
return d() ? "Copied!" : "Copy terminal resume command (claude --resume …)";
|
|
43798
43824
|
},
|
|
43799
43825
|
"aria-label": "Copy resume command",
|
|
43800
|
-
onClick: () => void
|
|
43826
|
+
onClick: () => void p(e()),
|
|
43801
43827
|
get children() {
|
|
43802
43828
|
return G$();
|
|
43803
43829
|
}
|
|
@@ -43806,41 +43832,60 @@ function f1(e) {
|
|
|
43806
43832
|
}), null), D(() => st(m, `shrink-0 text-[11.5px] font-medium ${t().cls}`)), n;
|
|
43807
43833
|
})();
|
|
43808
43834
|
}
|
|
43809
|
-
}), null), P(
|
|
43835
|
+
}), null), P(f, j(M, {
|
|
43810
43836
|
get when() {
|
|
43811
|
-
return
|
|
43837
|
+
return ke().length > 0;
|
|
43812
43838
|
},
|
|
43813
43839
|
get children() {
|
|
43814
43840
|
var e = j$();
|
|
43815
43841
|
return P(e, j(We, {
|
|
43816
43842
|
get each() {
|
|
43817
|
-
return
|
|
43843
|
+
return ke();
|
|
43818
43844
|
},
|
|
43819
|
-
children: (e) =>
|
|
43845
|
+
children: (e) => (() => {
|
|
43846
|
+
var t = J$();
|
|
43847
|
+
return P(t, j(m1, { session: e }), null), P(t, j(M, {
|
|
43848
|
+
get when() {
|
|
43849
|
+
return $e(() => !!(/complete/i.test(e.status) && n.data?.state.type === "started"))() && !/review/i.test(n.data?.state.name ?? "");
|
|
43850
|
+
},
|
|
43851
|
+
get children() {
|
|
43852
|
+
return j(Oj, {
|
|
43853
|
+
variant: "primary",
|
|
43854
|
+
class: "self-start",
|
|
43855
|
+
get loading() {
|
|
43856
|
+
return s.isPending;
|
|
43857
|
+
},
|
|
43858
|
+
title: "Post the acceptance comment (fix summary, PR, preview, checklist) in the agent thread and move the issue to review",
|
|
43859
|
+
onClick: () => s.mutate(e),
|
|
43860
|
+
children: "Post closeout to Linear"
|
|
43861
|
+
});
|
|
43862
|
+
}
|
|
43863
|
+
}), null), t;
|
|
43864
|
+
})()
|
|
43820
43865
|
})), e;
|
|
43821
43866
|
}
|
|
43822
|
-
}), null), P(
|
|
43867
|
+
}), null), P(f, j(M, {
|
|
43823
43868
|
get when() {
|
|
43824
|
-
return $e(() => !!
|
|
43869
|
+
return $e(() => !!Oe())() && Oe().attachments.length > 0;
|
|
43825
43870
|
},
|
|
43826
43871
|
get children() {
|
|
43827
43872
|
var e = M$(), t = e.firstChild.nextSibling;
|
|
43828
43873
|
return P(t, j(We, {
|
|
43829
43874
|
get each() {
|
|
43830
|
-
return
|
|
43875
|
+
return Oe().attachments;
|
|
43831
43876
|
},
|
|
43832
43877
|
children: (e) => {
|
|
43833
43878
|
let t = /github\.com\/[^/]+\/[^/]+\/pull\/\d+/i.test(e.url);
|
|
43834
43879
|
return [(() => {
|
|
43835
|
-
var n =
|
|
43880
|
+
var n = Z$(), r = n.firstChild;
|
|
43836
43881
|
return P(r, () => e.title), P(n, j(M, {
|
|
43837
43882
|
get when() {
|
|
43838
|
-
return t &&
|
|
43883
|
+
return t && se.data?.previews[e.url];
|
|
43839
43884
|
},
|
|
43840
43885
|
get children() {
|
|
43841
43886
|
return j(Fj, {
|
|
43842
43887
|
get href() {
|
|
43843
|
-
return
|
|
43888
|
+
return se.data.previews[e.url];
|
|
43844
43889
|
},
|
|
43845
43890
|
class: "shrink-0",
|
|
43846
43891
|
title: "Vercel deploy preview of this PR's branch",
|
|
@@ -43849,47 +43894,47 @@ function f1(e) {
|
|
|
43849
43894
|
}
|
|
43850
43895
|
}), null), P(n, j(M, {
|
|
43851
43896
|
get when() {
|
|
43852
|
-
return $e(() => !!(t &&
|
|
43897
|
+
return $e(() => !!(t && ce(e.url)))() && ce(e.url) !== "OPEN";
|
|
43853
43898
|
},
|
|
43854
43899
|
get children() {
|
|
43855
43900
|
return j(Rj, {
|
|
43856
43901
|
get class() {
|
|
43857
|
-
return `ml-auto shrink-0 ${
|
|
43902
|
+
return `ml-auto shrink-0 ${ce(e.url) === "MERGED" ? "text-success" : "text-text-faint"}`;
|
|
43858
43903
|
},
|
|
43859
43904
|
get children() {
|
|
43860
|
-
return
|
|
43905
|
+
return ce(e.url) === "MERGED" ? "✓ merged" : "closed";
|
|
43861
43906
|
}
|
|
43862
43907
|
});
|
|
43863
43908
|
}
|
|
43864
43909
|
}), null), P(n, j(M, {
|
|
43865
43910
|
get when() {
|
|
43866
|
-
return t && (!
|
|
43911
|
+
return t && (!ce(e.url) || ce(e.url) === "OPEN");
|
|
43867
43912
|
},
|
|
43868
43913
|
get children() {
|
|
43869
43914
|
return [j(Oj, {
|
|
43870
43915
|
variant: "ghost",
|
|
43871
43916
|
class: "ml-auto size-6 shrink-0 px-0",
|
|
43872
43917
|
get loading() {
|
|
43873
|
-
return
|
|
43918
|
+
return fe() === e.url;
|
|
43874
43919
|
},
|
|
43875
43920
|
get disabled() {
|
|
43876
|
-
return
|
|
43921
|
+
return me().has(e.url);
|
|
43877
43922
|
},
|
|
43878
43923
|
get title() {
|
|
43879
|
-
return $e(() => !!
|
|
43924
|
+
return $e(() => !!me().has(e.url))() ? `On ${de()} — staging preview deploying` : `Merge into ${de()} — deploys the staging preview domain`;
|
|
43880
43925
|
},
|
|
43881
43926
|
"aria-label": "Merge to staging",
|
|
43882
|
-
onClick: () => void
|
|
43927
|
+
onClick: () => void ge(e.url),
|
|
43883
43928
|
get children() {
|
|
43884
43929
|
return j(M, {
|
|
43885
43930
|
get when() {
|
|
43886
|
-
return
|
|
43931
|
+
return me().has(e.url);
|
|
43887
43932
|
},
|
|
43888
43933
|
get fallback() {
|
|
43889
|
-
return
|
|
43934
|
+
return Q$();
|
|
43890
43935
|
},
|
|
43891
43936
|
get children() {
|
|
43892
|
-
return
|
|
43937
|
+
return Y$();
|
|
43893
43938
|
}
|
|
43894
43939
|
});
|
|
43895
43940
|
}
|
|
@@ -43897,14 +43942,14 @@ function f1(e) {
|
|
|
43897
43942
|
variant: "primary",
|
|
43898
43943
|
class: "h-6 shrink-0 px-2 text-[11px]",
|
|
43899
43944
|
get loading() {
|
|
43900
|
-
return
|
|
43945
|
+
return le() === e.url;
|
|
43901
43946
|
},
|
|
43902
43947
|
get title() {
|
|
43903
|
-
return
|
|
43948
|
+
return se.isError ? "PR state unknown — restart the bridge (npx linear-grab-bridge) for live merge status" : "Squash-merge this PR via the bridge gh — reviewed the demo? Ship it.";
|
|
43904
43949
|
},
|
|
43905
|
-
onClick: () => void
|
|
43950
|
+
onClick: () => void xe(e.url),
|
|
43906
43951
|
get children() {
|
|
43907
|
-
return
|
|
43952
|
+
return X$();
|
|
43908
43953
|
}
|
|
43909
43954
|
})];
|
|
43910
43955
|
}
|
|
@@ -43917,7 +43962,7 @@ function f1(e) {
|
|
|
43917
43962
|
}), n;
|
|
43918
43963
|
})(), j(M, {
|
|
43919
43964
|
get when() {
|
|
43920
|
-
return
|
|
43965
|
+
return me().has(e.url);
|
|
43921
43966
|
},
|
|
43922
43967
|
get children() {
|
|
43923
43968
|
return j(r$, {
|
|
@@ -43925,7 +43970,7 @@ function f1(e) {
|
|
|
43925
43970
|
return e.url;
|
|
43926
43971
|
},
|
|
43927
43972
|
get base() {
|
|
43928
|
-
return
|
|
43973
|
+
return de();
|
|
43929
43974
|
}
|
|
43930
43975
|
});
|
|
43931
43976
|
}
|
|
@@ -43933,29 +43978,29 @@ function f1(e) {
|
|
|
43933
43978
|
}
|
|
43934
43979
|
}), null), P(t, j(M, {
|
|
43935
43980
|
get when() {
|
|
43936
|
-
return
|
|
43981
|
+
return ye();
|
|
43937
43982
|
},
|
|
43938
43983
|
get children() {
|
|
43939
43984
|
return j(Vj, { get message() {
|
|
43940
|
-
return
|
|
43985
|
+
return ye();
|
|
43941
43986
|
} });
|
|
43942
43987
|
}
|
|
43943
43988
|
}), null), e;
|
|
43944
43989
|
}
|
|
43945
|
-
}), null), P(
|
|
43990
|
+
}), null), P(f, j(M, {
|
|
43946
43991
|
get when() {
|
|
43947
|
-
return $e(() => !!
|
|
43992
|
+
return $e(() => !!Oe())() && Oe().comments.length > 0;
|
|
43948
43993
|
},
|
|
43949
43994
|
get children() {
|
|
43950
43995
|
var e = N$();
|
|
43951
43996
|
return e.firstChild, P(e, j(Ge, {
|
|
43952
43997
|
get each() {
|
|
43953
|
-
return
|
|
43998
|
+
return Oe().comments;
|
|
43954
43999
|
},
|
|
43955
44000
|
children: (e) => {
|
|
43956
44001
|
let t = e();
|
|
43957
44002
|
return (() => {
|
|
43958
|
-
var e =
|
|
44003
|
+
var e = $$(), n = e.firstChild, r = n.firstChild, i = r.nextSibling;
|
|
43959
44004
|
return P(r, () => t.user?.displayName ?? t.user?.name ?? "Unknown"), P(n, j(M, {
|
|
43960
44005
|
get when() {
|
|
43961
44006
|
return t.user?.app;
|
|
@@ -43963,16 +44008,16 @@ function f1(e) {
|
|
|
43963
44008
|
get children() {
|
|
43964
44009
|
return j(Rj, { children: "agent" });
|
|
43965
44010
|
}
|
|
43966
|
-
}), i), P(i, () => Uj(t.createdAt)), P(e, j(
|
|
44011
|
+
}), i), P(i, () => Uj(t.createdAt)), P(e, j(l1, { get text() {
|
|
43967
44012
|
return t.body;
|
|
43968
44013
|
} }), null), e;
|
|
43969
44014
|
})();
|
|
43970
44015
|
}
|
|
43971
44016
|
}), null), e;
|
|
43972
44017
|
}
|
|
43973
|
-
}), null), P(
|
|
44018
|
+
}), null), P(f, j(M, {
|
|
43974
44019
|
get when() {
|
|
43975
|
-
return $e(() => !!(
|
|
44020
|
+
return $e(() => !!(Oe() && Oe().comments.length === 0))() && ke().length === 0;
|
|
43976
44021
|
},
|
|
43977
44022
|
get children() {
|
|
43978
44023
|
return j(Bj, {
|
|
@@ -43980,9 +44025,9 @@ function f1(e) {
|
|
|
43980
44025
|
children: "Comments and agent sessions will appear here."
|
|
43981
44026
|
});
|
|
43982
44027
|
}
|
|
43983
|
-
}), null), P(
|
|
44028
|
+
}), null), P(f, j(M, {
|
|
43984
44029
|
get when() {
|
|
43985
|
-
return $e(() => !!n.isError)() && !
|
|
44030
|
+
return $e(() => !!n.isError)() && !Oe();
|
|
43986
44031
|
},
|
|
43987
44032
|
get children() {
|
|
43988
44033
|
return j(Bj, {
|
|
@@ -43992,54 +44037,54 @@ function f1(e) {
|
|
|
43992
44037
|
}
|
|
43993
44038
|
});
|
|
43994
44039
|
}
|
|
43995
|
-
}), null), P(
|
|
44040
|
+
}), null), P(y, j(M, {
|
|
43996
44041
|
get when() {
|
|
43997
|
-
return
|
|
44042
|
+
return v();
|
|
43998
44043
|
},
|
|
43999
44044
|
get children() {
|
|
44000
44045
|
return j(Vj, { get message() {
|
|
44001
|
-
return
|
|
44046
|
+
return v();
|
|
44002
44047
|
} });
|
|
44003
44048
|
}
|
|
44004
|
-
}),
|
|
44049
|
+
}), b), P(y, j(jj, {
|
|
44005
44050
|
rows: 2,
|
|
44006
44051
|
placeholder: "Reply — steer the agent or add context…",
|
|
44007
44052
|
get value() {
|
|
44008
|
-
return
|
|
44053
|
+
return g();
|
|
44009
44054
|
},
|
|
44010
|
-
onInput: (e) =>
|
|
44055
|
+
onInput: (e) => _(e.target.value),
|
|
44011
44056
|
get disabled() {
|
|
44012
|
-
return
|
|
44057
|
+
return De.isPending;
|
|
44013
44058
|
}
|
|
44014
|
-
}),
|
|
44059
|
+
}), b), P(b, j(Mj, {
|
|
44015
44060
|
class: "min-w-0 flex-1",
|
|
44016
44061
|
get value() {
|
|
44017
|
-
return
|
|
44062
|
+
return Ce();
|
|
44018
44063
|
},
|
|
44019
44064
|
onChange: (e) => {
|
|
44020
|
-
|
|
44065
|
+
Te = !0, we(e.currentTarget.value);
|
|
44021
44066
|
},
|
|
44022
44067
|
get children() {
|
|
44023
44068
|
return [
|
|
44024
44069
|
j(M, {
|
|
44025
44070
|
get when() {
|
|
44026
|
-
return
|
|
44071
|
+
return m();
|
|
44027
44072
|
},
|
|
44028
44073
|
get children() {
|
|
44029
44074
|
var e = P$();
|
|
44030
|
-
return D(() => e.selected =
|
|
44075
|
+
return D(() => e.selected = Ce() === "local"), e;
|
|
44031
44076
|
}
|
|
44032
44077
|
}),
|
|
44033
44078
|
j(We, {
|
|
44034
44079
|
get each() {
|
|
44035
|
-
return
|
|
44080
|
+
return Se();
|
|
44036
44081
|
},
|
|
44037
44082
|
children: (e, t) => (() => {
|
|
44038
|
-
var n =
|
|
44083
|
+
var n = e1(), r = n.firstChild.nextSibling;
|
|
44039
44084
|
return r.nextSibling, P(n, (() => {
|
|
44040
|
-
var e = $e(() =>
|
|
44085
|
+
var e = $e(() => Se().length > 1);
|
|
44041
44086
|
return () => e() ? ` #${t() + 1}` : "";
|
|
44042
|
-
})(), r), P(n, () => Uj(e.createdAt), null), D(() => n.selected =
|
|
44087
|
+
})(), r), P(n, () => Uj(e.createdAt), null), D(() => n.selected = Ce() === `thread:${e.id}`), D(() => n.value = `thread:${e.id}`), n;
|
|
44043
44088
|
})()
|
|
44044
44089
|
}),
|
|
44045
44090
|
j(M, {
|
|
@@ -44048,16 +44093,16 @@ function f1(e) {
|
|
|
44048
44093
|
},
|
|
44049
44094
|
get children() {
|
|
44050
44095
|
var e = F$(), t = e.firstChild.nextSibling;
|
|
44051
|
-
return t.nextSibling, P(e, () => i.data?.cursorAgentName ?? "Cursor", t), D(() => e.selected =
|
|
44096
|
+
return t.nextSibling, P(e, () => i.data?.cursorAgentName ?? "Cursor", t), D(() => e.selected = Ce() === "new"), e;
|
|
44052
44097
|
}
|
|
44053
44098
|
}),
|
|
44054
44099
|
(() => {
|
|
44055
44100
|
var e = I$();
|
|
44056
|
-
return D(() => e.selected =
|
|
44101
|
+
return D(() => e.selected = Ce() === "comment"), e;
|
|
44057
44102
|
})()
|
|
44058
44103
|
];
|
|
44059
44104
|
}
|
|
44060
|
-
}), null), P(
|
|
44105
|
+
}), null), P(b, j(Oj, {
|
|
44061
44106
|
variant: "ghost",
|
|
44062
44107
|
get class() {
|
|
44063
44108
|
return `size-7 shrink-0 px-0 ${sj() === "composer" ? "text-accent" : ""}`;
|
|
@@ -44066,62 +44111,62 @@ function f1(e) {
|
|
|
44066
44111
|
return sj() === "composer" ? "Pick mode ON — every pick appends here. Click to stop." : "Pick elements — refs append to this reply (stays on until toggled off or sent)";
|
|
44067
44112
|
},
|
|
44068
44113
|
"aria-label": "Pick element for reply",
|
|
44069
|
-
onClick:
|
|
44114
|
+
onClick: ee,
|
|
44070
44115
|
get children() {
|
|
44071
44116
|
return L$();
|
|
44072
44117
|
}
|
|
44073
|
-
}), null), P(
|
|
44118
|
+
}), null), P(b, j(Oj, {
|
|
44074
44119
|
variant: "ghost",
|
|
44075
44120
|
get class() {
|
|
44076
|
-
return `size-7 shrink-0 px-0 ${
|
|
44121
|
+
return `size-7 shrink-0 px-0 ${te().phase === "recording" ? "text-danger" : ""}`;
|
|
44077
44122
|
},
|
|
44078
44123
|
get title() {
|
|
44079
|
-
return
|
|
44124
|
+
return te().phase === "recording" ? "Stop recording — the GIF auto-attaches to this reply" : "Record a GIF from this thread (auto-attaches when done)";
|
|
44080
44125
|
},
|
|
44081
44126
|
"aria-label": "Record GIF",
|
|
44082
|
-
onClick:
|
|
44127
|
+
onClick: re,
|
|
44083
44128
|
get children() {
|
|
44084
44129
|
return j(M, {
|
|
44085
44130
|
get when() {
|
|
44086
|
-
return
|
|
44131
|
+
return te().phase === "recording";
|
|
44087
44132
|
},
|
|
44088
44133
|
get fallback() {
|
|
44089
|
-
return
|
|
44134
|
+
return t1();
|
|
44090
44135
|
},
|
|
44091
44136
|
get children() {
|
|
44092
44137
|
return R$();
|
|
44093
44138
|
}
|
|
44094
44139
|
});
|
|
44095
44140
|
}
|
|
44096
|
-
}), null), P(
|
|
44141
|
+
}), null), P(b, j(Oj, {
|
|
44097
44142
|
variant: "ghost",
|
|
44098
44143
|
class: "size-7 shrink-0 px-0",
|
|
44099
44144
|
get loading() {
|
|
44100
|
-
return
|
|
44145
|
+
return C();
|
|
44101
44146
|
},
|
|
44102
44147
|
title: "Attach captures — element refs, screenshots, region shots, recording GIF",
|
|
44103
44148
|
"aria-label": "Attach captures",
|
|
44104
|
-
onClick: () => void
|
|
44149
|
+
onClick: () => void E(),
|
|
44105
44150
|
get children() {
|
|
44106
44151
|
return z$();
|
|
44107
44152
|
}
|
|
44108
|
-
}), null), P(
|
|
44153
|
+
}), null), P(b, j(Oj, {
|
|
44109
44154
|
class: "min-w-[52px] shrink-0",
|
|
44110
44155
|
variant: "primary",
|
|
44111
44156
|
get loading() {
|
|
44112
|
-
return
|
|
44157
|
+
return De.isPending;
|
|
44113
44158
|
},
|
|
44114
44159
|
get disabled() {
|
|
44115
|
-
return
|
|
44160
|
+
return g().trim().length === 0;
|
|
44116
44161
|
},
|
|
44117
|
-
onClick: () =>
|
|
44162
|
+
onClick: () => De.mutate(),
|
|
44118
44163
|
get children() {
|
|
44119
44164
|
return B$();
|
|
44120
44165
|
}
|
|
44121
44166
|
}), null), t;
|
|
44122
44167
|
})();
|
|
44123
44168
|
}
|
|
44124
|
-
function
|
|
44169
|
+
function m1(e) {
|
|
44125
44170
|
let t = k(() => {
|
|
44126
44171
|
let t = e.session.status;
|
|
44127
44172
|
return /complete|done/i.test(t) ? "var(--color-success)" : /await|pending|elicit/i.test(t) ? "var(--color-warn)" : "var(--color-accent)";
|
|
@@ -44137,7 +44182,7 @@ function p1(e) {
|
|
|
44137
44182
|
o && (o.scrollTop = o.scrollHeight);
|
|
44138
44183
|
});
|
|
44139
44184
|
}), (() => {
|
|
44140
|
-
var s =
|
|
44185
|
+
var s = o1(), l = s.firstChild, u = l.firstChild;
|
|
44141
44186
|
return P(l, j(M, {
|
|
44142
44187
|
get when() {
|
|
44143
44188
|
return /active|pending/i.test(e.session.status);
|
|
@@ -44157,7 +44202,7 @@ function p1(e) {
|
|
|
44157
44202
|
return e.session.appUser?.displayName;
|
|
44158
44203
|
},
|
|
44159
44204
|
get children() {
|
|
44160
|
-
var t =
|
|
44205
|
+
var t = n1();
|
|
44161
44206
|
return P(t, () => e.session.appUser.displayName), t;
|
|
44162
44207
|
}
|
|
44163
44208
|
}), u), P(u, () => Uj(e.session.updatedAt)), P(l, j(M, {
|
|
@@ -44185,7 +44230,7 @@ function p1(e) {
|
|
|
44185
44230
|
},
|
|
44186
44231
|
onClick: () => a((e) => !e),
|
|
44187
44232
|
get children() {
|
|
44188
|
-
var e =
|
|
44233
|
+
var e = r1();
|
|
44189
44234
|
return D((t) => dt(e, "transform", i() ? "rotate(180deg)" : "none")), e;
|
|
44190
44235
|
}
|
|
44191
44236
|
}), null), P(s, j(M, {
|
|
@@ -44193,7 +44238,7 @@ function p1(e) {
|
|
|
44193
44238
|
return e.session.summary;
|
|
44194
44239
|
},
|
|
44195
44240
|
get children() {
|
|
44196
|
-
var t =
|
|
44241
|
+
var t = i1();
|
|
44197
44242
|
return P(t, () => e.session.summary), t;
|
|
44198
44243
|
}
|
|
44199
44244
|
}), null), P(s, j(M, {
|
|
@@ -44201,7 +44246,7 @@ function p1(e) {
|
|
|
44201
44246
|
return r().length > 0;
|
|
44202
44247
|
},
|
|
44203
44248
|
get children() {
|
|
44204
|
-
var e =
|
|
44249
|
+
var e = a1();
|
|
44205
44250
|
e.addEventListener("scroll", c);
|
|
44206
44251
|
var t = o;
|
|
44207
44252
|
return typeof t == "function" ? pt(t, e) : o = e, P(e, j(Ge, {
|
|
@@ -44214,14 +44259,14 @@ function p1(e) {
|
|
|
44214
44259
|
},
|
|
44215
44260
|
get fallback() {
|
|
44216
44261
|
return (() => {
|
|
44217
|
-
var t =
|
|
44218
|
-
return P(t, j(
|
|
44262
|
+
var t = c1();
|
|
44263
|
+
return P(t, j(l1, { get text() {
|
|
44219
44264
|
return e().content.body ?? "";
|
|
44220
44265
|
} })), D(() => st(t, `lg-md text-[11.5px] leading-relaxed break-words ${e().content.__typename === "AgentActivityErrorContent" ? "text-danger" : "text-text"}`)), t;
|
|
44221
44266
|
})();
|
|
44222
44267
|
},
|
|
44223
44268
|
get children() {
|
|
44224
|
-
var t =
|
|
44269
|
+
var t = s1(), n = t.firstChild.nextSibling;
|
|
44225
44270
|
return n.nextSibling, P(t, () => e().content.action, n), P(t, () => e().content.parameter, null), t;
|
|
44226
44271
|
}
|
|
44227
44272
|
})
|
|
@@ -44233,8 +44278,8 @@ function p1(e) {
|
|
|
44233
44278
|
rt(["click"]);
|
|
44234
44279
|
//#endregion
|
|
44235
44280
|
//#region src/panel/views/CloudView.tsx
|
|
44236
|
-
var
|
|
44237
|
-
function
|
|
44281
|
+
var h1 = /*#__PURE__*/ N("<svg aria-hidden width=11 height=11 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round><path d=\"M1 4.5A7 7 0 0 1 13.5 3\"></path><path d=\"M15 11.5A7 7 0 0 1 2.5 13\"></path><polyline points=\"1 1 1 5 5 5\"></polyline><polyline points=\"15 11 15 15 11 15\">"), g1 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1.5\">"), _1 = /*#__PURE__*/ N("<div class=\"flex h-full flex-col\"><div class=\"border-border flex shrink-0 items-center justify-between border-b px-3 py-2\"><span class=\"text-text inline-flex items-center gap-1.5 text-[12px] font-semibold\"> Cloud agents</span><span class=\"text-text-faint text-[10.5px] tabular-nums\"> working · updated </span></div><div class=\"border-border flex shrink-0 items-center gap-1 border-b px-3 py-1.5\"></div><div class=\"min-h-0 flex-1 overflow-y-auto pt-2 pb-3 pl-2 pr-3\">"), v1 = /*#__PURE__*/ N("<button>"), y1 = /*#__PURE__*/ N("<div class=\"grid place-items-center py-10\">"), b1 = /*#__PURE__*/ N("<button class=\"flex min-w-0 flex-1 cursor-pointer items-center gap-1.5 text-left\"title=\"View the thread here\"><span class=\"font-mono text-text-dim shrink-0 text-[11px]\"></span><span class=\"text-text hover:text-accent min-w-0 truncate text-[12.5px] font-medium transition-colors\">"), x1 = /*#__PURE__*/ N("<p class=\"text-text-dim line-clamp-2 cursor-pointer text-[11.5px] leading-snug break-words\">"), S1 = /*#__PURE__*/ N("<span class=\"text-text-dim text-[11px]\">"), C1 = /*#__PURE__*/ N("<svg width=12 height=12 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 aria-hidden><circle cx=8 cy=8 r=6></circle><circle cx=8 cy=8 r=1.6 fill=currentColor stroke=none>"), w1 = /*#__PURE__*/ N("<div class=\"bg-surface border-border flex flex-col gap-1.5 rounded-lg border p-2.5\"><div class=\"flex min-w-0 items-center gap-1.5\"><span class=\"text-text-faint ml-auto shrink-0 text-[10.5px] tabular-nums\"></span></div><div class=\"flex min-w-0 items-center gap-1.5\"><span class=ml-auto>"), T1 = /*#__PURE__*/ N("<span aria-hidden class=\"size-2 shrink-0 rounded-full\">"), E1 = /*#__PURE__*/ N("<span class=\"text-text-dim text-[12.5px]\">Conversation session");
|
|
44282
|
+
function D1() {
|
|
44238
44283
|
let e = _r(() => ({
|
|
44239
44284
|
queryKey: ["cloud-sessions"],
|
|
44240
44285
|
queryFn: gO,
|
|
@@ -44287,7 +44332,7 @@ function E1() {
|
|
|
44287
44332
|
return !c();
|
|
44288
44333
|
},
|
|
44289
44334
|
get fallback() {
|
|
44290
|
-
return j(
|
|
44335
|
+
return j(p1, {
|
|
44291
44336
|
get issueId() {
|
|
44292
44337
|
return c();
|
|
44293
44338
|
},
|
|
@@ -44295,11 +44340,11 @@ function E1() {
|
|
|
44295
44340
|
});
|
|
44296
44341
|
},
|
|
44297
44342
|
get children() {
|
|
44298
|
-
var c =
|
|
44343
|
+
var c = _1(), u = c.firstChild, d = u.firstChild, f = d.firstChild, p = d.nextSibling, m = p.firstChild, h = u.nextSibling, g = h.nextSibling;
|
|
44299
44344
|
return P(d, j(Nj, { size: 13 }), f), P(p, s, m), P(p, () => Uj(e.dataUpdatedAt || Date.now()), null), P(h, j(We, {
|
|
44300
44345
|
each: t,
|
|
44301
44346
|
children: (e) => (() => {
|
|
44302
|
-
var t =
|
|
44347
|
+
var t = v1();
|
|
44303
44348
|
return t.$$click = () => r(e.id), P(t, () => e.label), D(() => st(t, `h-6 shrink-0 cursor-pointer rounded-md px-2 text-[11px] font-medium transition-colors ${n() === e.id ? "bg-accent-soft text-accent" : "text-text-dim hover:bg-surface-2"}`)), t;
|
|
44304
44349
|
})()
|
|
44305
44350
|
}), null), P(h, j(Oj, {
|
|
@@ -44311,7 +44356,7 @@ function E1() {
|
|
|
44311
44356
|
"aria-label": "Refresh sessions",
|
|
44312
44357
|
onClick: () => void e.refetch(),
|
|
44313
44358
|
get children() {
|
|
44314
|
-
return
|
|
44359
|
+
return h1();
|
|
44315
44360
|
}
|
|
44316
44361
|
}), null), P(g, j(M, {
|
|
44317
44362
|
get when() {
|
|
@@ -44324,7 +44369,7 @@ function E1() {
|
|
|
44324
44369
|
},
|
|
44325
44370
|
get fallback() {
|
|
44326
44371
|
return (() => {
|
|
44327
|
-
var e =
|
|
44372
|
+
var e = y1();
|
|
44328
44373
|
return P(e, j(kj, {})), e;
|
|
44329
44374
|
})();
|
|
44330
44375
|
},
|
|
@@ -44337,20 +44382,20 @@ function E1() {
|
|
|
44337
44382
|
});
|
|
44338
44383
|
},
|
|
44339
44384
|
get children() {
|
|
44340
|
-
var e =
|
|
44385
|
+
var e = g1();
|
|
44341
44386
|
return P(e, j(Ge, {
|
|
44342
44387
|
get each() {
|
|
44343
44388
|
return i();
|
|
44344
44389
|
},
|
|
44345
44390
|
children: (e) => (() => {
|
|
44346
|
-
var t =
|
|
44391
|
+
var t = w1(), n = t.firstChild, r = n.firstChild, i = n.nextSibling, s = i.firstChild;
|
|
44347
44392
|
return P(n, j(M, {
|
|
44348
44393
|
get when() {
|
|
44349
44394
|
return /active|pending/i.test(e().status);
|
|
44350
44395
|
},
|
|
44351
44396
|
get fallback() {
|
|
44352
44397
|
return (() => {
|
|
44353
|
-
var t =
|
|
44398
|
+
var t = T1();
|
|
44354
44399
|
return D((n) => dt(t, "background", a(e().status).color)), t;
|
|
44355
44400
|
})();
|
|
44356
44401
|
},
|
|
@@ -44362,10 +44407,10 @@ function E1() {
|
|
|
44362
44407
|
return e().issue;
|
|
44363
44408
|
},
|
|
44364
44409
|
get fallback() {
|
|
44365
|
-
return
|
|
44410
|
+
return E1();
|
|
44366
44411
|
},
|
|
44367
44412
|
get children() {
|
|
44368
|
-
var t =
|
|
44413
|
+
var t = b1(), n = t.firstChild, r = n.nextSibling;
|
|
44369
44414
|
return t.$$click = () => l(e().issue.id), P(n, () => e().issue.identifier), P(r, () => e().issue.title), t;
|
|
44370
44415
|
}
|
|
44371
44416
|
}), r), P(r, () => Uj(e().updatedAt)), P(t, j(M, {
|
|
@@ -44373,7 +44418,7 @@ function E1() {
|
|
|
44373
44418
|
return o(e());
|
|
44374
44419
|
},
|
|
44375
44420
|
get children() {
|
|
44376
|
-
var t =
|
|
44421
|
+
var t = x1();
|
|
44377
44422
|
return t.$$click = () => e().issue && l(e().issue.id), P(t, () => o(e())), t;
|
|
44378
44423
|
}
|
|
44379
44424
|
}), i), P(i, j(Rj, {
|
|
@@ -44391,7 +44436,7 @@ function E1() {
|
|
|
44391
44436
|
return [j(zj, { get color() {
|
|
44392
44437
|
return e().issue.state.color;
|
|
44393
44438
|
} }), (() => {
|
|
44394
|
-
var t =
|
|
44439
|
+
var t = S1();
|
|
44395
44440
|
return P(t, () => e().issue.state.name), t;
|
|
44396
44441
|
})()];
|
|
44397
44442
|
}
|
|
@@ -44407,7 +44452,7 @@ function E1() {
|
|
|
44407
44452
|
"aria-label": "Open thread",
|
|
44408
44453
|
onClick: () => l(e().issue.id),
|
|
44409
44454
|
get children() {
|
|
44410
|
-
return
|
|
44455
|
+
return C1();
|
|
44411
44456
|
}
|
|
44412
44457
|
}), j(Fj, {
|
|
44413
44458
|
get href() {
|
|
@@ -44428,8 +44473,8 @@ function E1() {
|
|
|
44428
44473
|
rt(["click"]);
|
|
44429
44474
|
//#endregion
|
|
44430
44475
|
//#region src/panel/views/RunningView.tsx
|
|
44431
|
-
var
|
|
44432
|
-
function
|
|
44476
|
+
var O1 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1.5\">"), k1 = /*#__PURE__*/ N("<div class=\"flex h-full flex-col\"><div class=\"border-border flex shrink-0 items-center justify-between border-b px-3 py-2\"><span class=\"text-text text-[12px] font-semibold\">Running now</span><span class=\"text-text-faint text-[10.5px] tabular-nums\"> agent<!> active</span></div><div class=\"min-h-0 flex-1 overflow-y-auto pt-2 pb-3 pl-2 pr-3\">"), A1 = /*#__PURE__*/ N("<span class=\"font-mono text-text-dim shrink-0 text-[11px]\">"), j1 = /*#__PURE__*/ N("<svg width=12 height=12 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 aria-hidden><circle cx=8 cy=8 r=6></circle><circle cx=8 cy=8 r=1.6 fill=currentColor stroke=none>"), M1 = /*#__PURE__*/ N("<div class=\"bg-surface border-border flex flex-col gap-1.5 rounded-lg border p-2.5\"><div class=\"flex min-w-0 items-center gap-1.5\"><button class=\"flex min-w-0 flex-1 cursor-pointer items-center gap-1.5 text-left\"><span class=\"text-text hover:text-accent min-w-0 truncate text-[12.5px] font-medium transition-colors\"></span></button><span class=\"text-text-faint ml-auto shrink-0 text-[10.5px] tabular-nums\"></span></div><p class=\"text-text-dim line-clamp-2 text-[11.5px] leading-snug break-words\"></p><div class=\"flex min-w-0 items-center gap-1.5\"><span class=ml-auto>");
|
|
44477
|
+
function N1() {
|
|
44433
44478
|
let e = _r(() => ({
|
|
44434
44479
|
queryKey: ["cloud-sessions"],
|
|
44435
44480
|
queryFn: gO,
|
|
@@ -44470,7 +44515,7 @@ function M1() {
|
|
|
44470
44515
|
return !i();
|
|
44471
44516
|
},
|
|
44472
44517
|
get fallback() {
|
|
44473
|
-
return j(
|
|
44518
|
+
return j(p1, {
|
|
44474
44519
|
get issueId() {
|
|
44475
44520
|
return i();
|
|
44476
44521
|
},
|
|
@@ -44478,7 +44523,7 @@ function M1() {
|
|
|
44478
44523
|
});
|
|
44479
44524
|
},
|
|
44480
44525
|
get children() {
|
|
44481
|
-
var e =
|
|
44526
|
+
var e = k1(), t = e.firstChild, n = t.firstChild.nextSibling, i = n.firstChild, c = i.nextSibling;
|
|
44482
44527
|
c.nextSibling;
|
|
44483
44528
|
var l = t.nextSibling;
|
|
44484
44529
|
return P(n, () => r().length, i), P(n, () => r().length === 1 ? "" : "s", c), P(l, j(M, {
|
|
@@ -44492,13 +44537,13 @@ function M1() {
|
|
|
44492
44537
|
});
|
|
44493
44538
|
},
|
|
44494
44539
|
get children() {
|
|
44495
|
-
var e =
|
|
44540
|
+
var e = O1();
|
|
44496
44541
|
return P(e, j(Ge, {
|
|
44497
44542
|
get each() {
|
|
44498
44543
|
return r();
|
|
44499
44544
|
},
|
|
44500
44545
|
children: (e) => (() => {
|
|
44501
|
-
var t =
|
|
44546
|
+
var t = M1(), n = t.firstChild, r = n.firstChild, i = r.firstChild, c = r.nextSibling, l = n.nextSibling, u = l.nextSibling, d = u.firstChild;
|
|
44502
44547
|
return P(n, j(kj, { size: 12 }), r), P(n, j(Rj, {
|
|
44503
44548
|
get title() {
|
|
44504
44549
|
return e().kind === "cloud" ? "Cursor cloud agent" : "Local Claude Code";
|
|
@@ -44514,7 +44559,7 @@ function M1() {
|
|
|
44514
44559
|
return e().kind === "cloud";
|
|
44515
44560
|
},
|
|
44516
44561
|
get children() {
|
|
44517
|
-
var t =
|
|
44562
|
+
var t = A1();
|
|
44518
44563
|
return P(t, () => e().session.issue?.identifier), t;
|
|
44519
44564
|
}
|
|
44520
44565
|
}), i), P(i, (() => {
|
|
@@ -44555,7 +44600,7 @@ function M1() {
|
|
|
44555
44600
|
t.kind === "cloud" && t.session.issue ? a(t.session.issue.id) : t.kind === "local" && aj("local");
|
|
44556
44601
|
},
|
|
44557
44602
|
get children() {
|
|
44558
|
-
return
|
|
44603
|
+
return j1();
|
|
44559
44604
|
}
|
|
44560
44605
|
}), null), D(() => it(r, "title", e().kind === "cloud" ? "View the thread here" : "Open the Local tab")), t;
|
|
44561
44606
|
})()
|
|
@@ -44568,7 +44613,7 @@ function M1() {
|
|
|
44568
44613
|
//#endregion
|
|
44569
44614
|
//#region src/panel/views/LocalView.tsx
|
|
44570
44615
|
rt(["click"]), Br();
|
|
44571
|
-
var
|
|
44616
|
+
var P1 = /*#__PURE__*/ N("<div class=\"border-accent/40 bg-accent-soft self-end rounded-lg border px-2.5 py-1.5\"><p class=\"text-accent mb-0.5 text-[9.5px] font-semibold tracking-wide uppercase\">You</p><div class=\"lg-md text-text text-[11.5px] leading-relaxed break-words\">"), F1 = /*#__PURE__*/ N("<div><p></p><div class=\"lg-md text-text text-[11.5px] leading-relaxed break-words\">"), I1 = /*#__PURE__*/ N("<p>"), L1 = /*#__PURE__*/ N("<span class=\"text-text-faint max-w-[55%] truncate text-[10.5px] tabular-nums\"> running<!> · "), R1 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1.5\">"), z1 = /*#__PURE__*/ N("<div class=\"flex h-full flex-col\"><div class=\"border-border flex shrink-0 items-center justify-between border-b px-3 py-2\"><span class=\"text-text text-[12px] font-semibold\">Local Claude Code</span></div><div class=\"min-h-0 flex-1 overflow-y-auto pt-2 pb-3 pl-2 pr-3\">"), B1 = /*#__PURE__*/ N("<span class=\"bg-surface-2 border-border font-mono mt-2 block rounded-md border px-2 py-1.5 text-[11px] select-all\">npx linear-grab-bridge"), V1 = /*#__PURE__*/ N("<span class=\"text-text-faint text-[10.5px] tabular-nums\">ctx <!> · out "), H1 = /*#__PURE__*/ N("<div class=\"flex min-w-0 items-center gap-1.5\"><span class=\"font-mono text-text-faint min-w-0 truncate text-[10.5px]\">"), U1 = /*#__PURE__*/ N("<option selected>"), W1 = /*#__PURE__*/ N("<svg width=13 height=13 viewBox=\"0 0 16 16\"fill=currentColor aria-hidden><path d=\"M4.5 2.8a.8.8 0 0 1 1.22-.68l8 5.2a.8.8 0 0 1 0 1.36l-8 5.2a.8.8 0 0 1-1.22-.68V2.8Z\">"), G1 = /*#__PURE__*/ N("<span class=\"text-success text-[12px] leading-none\">✓"), K1 = /*#__PURE__*/ N("<svg width=13 height=13 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linejoin=round aria-hidden><path d=\"M14 10a2 2 0 0 1-2 2H6l-3.5 2.5V4a2 2 0 0 1 2-2H12a2 2 0 0 1 2 2v6Z\">"), q1 = /*#__PURE__*/ N("<svg width=11 height=11 viewBox=\"0 0 16 16\"fill=currentColor aria-hidden><rect x=3 y=3 width=10 height=10 rx=1.5>"), J1 = /*#__PURE__*/ N("<span class=\"font-mono text-text-faint min-w-0 truncate text-[10.5px]\">"), Y1 = /*#__PURE__*/ N("<div class=\"border-border bg-bg flex flex-col gap-1 rounded-md border p-2\"><div class=\"flex min-w-0 items-center gap-1.5\"><span class=\"text-text-dim text-[10.5px] font-semibold tracking-wide uppercase\">Changes</span><span class=\"ml-auto shrink-0 text-[10.5px] tabular-nums\"><span class=text-success>+</span> <span class=text-danger>−"), X1 = /*#__PURE__*/ N("<div class=\"border-border bg-bg flex max-h-80 flex-col gap-1.5 overflow-y-auto rounded-md border py-2 pl-2 pr-3\">"), Z1 = /*#__PURE__*/ N("<svg width=13 height=13 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round aria-hidden><circle cx=8 cy=8 r=2.2></circle><path d=\"M8 1v3M8 12v3M1 8h3M12 8h3\">"), Q1 = /*#__PURE__*/ N("<svg width=13 height=13 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round aria-hidden><path d=\"M13 7.5 8.2 12.3a3.2 3.2 0 0 1-4.5-4.5L8.9 2.6a2.1 2.1 0 0 1 3 3L7.1 10.4a1 1 0 0 1-1.5-1.5l4.3-4.3\">"), $1 = /*#__PURE__*/ N("<svg width=13 height=13 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round aria-hidden><path d=\"M8 2v4M8 10v4M2 8h4M10 8h4M4.5 4.5 6 6M11.5 11.5 10 10M11.5 4.5 10 6M4.5 11.5 6 10\">"), e0 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[4ch] text-center\">Send"), t0 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1.5\"><div class=\"flex items-center gap-1\"><span class=\"text-text-faint min-w-0 flex-1 truncate text-[10.5px]\">"), n0 = /*#__PURE__*/ N("<div class=\"bg-surface border-border flex flex-col gap-1.5 rounded-lg border p-2.5\"><div class=\"flex min-w-0 items-center gap-1.5\"><span class=\"text-text min-w-0 truncate text-[12.5px] font-medium\"></span><span class=\"text-text-faint ml-auto shrink-0 text-[10.5px] tabular-nums\"></span></div><p class=\"text-text-dim text-[11.5px] leading-snug break-words\"></p><div class=\"flex flex-wrap items-center gap-1.5\"></div><div class=\"flex items-center gap-1\">"), r0 = /*#__PURE__*/ N("<span aria-hidden class=\"size-2 shrink-0 rounded-full\">"), i0 = /*#__PURE__*/ N("<div class=\"flex min-w-0 items-center gap-1.5\">"), a0 = /*#__PURE__*/ N("<option>"), o0 = /*#__PURE__*/ N("<svg width=13 height=13 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 aria-hidden><circle cx=8 cy=8 r=6></circle><circle cx=8 cy=8 r=1.6 fill=currentColor stroke=none>"), s0 = /*#__PURE__*/ N("<svg width=13 height=13 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round aria-hidden><path d=\"M2.5 3.5 6 7 2.5 10.5M7.5 12.5h6\">"), c0 = /*#__PURE__*/ N("<span class=text-success>+"), l0 = /*#__PURE__*/ N("<span class=text-danger>−"), u0 = /*#__PURE__*/ N("<div class=\"flex min-w-0 items-center gap-1.5\"><span class=\"font-mono text-text-dim min-w-0 flex-1 truncate text-[10.5px]\"></span><span class=\"shrink-0 text-[10px] tabular-nums\">"), d0 = /*#__PURE__*/ N("<span class=text-text-faint>bin"), f0 = /*#__PURE__*/ N("<div class=\"flex min-w-0 items-center gap-1.5\"><span class=\"font-mono text-text-dim min-w-0 flex-1 truncate text-[10.5px]\"></span><span class=\"text-success shrink-0 text-[10px]\">new"), p0 = /*#__PURE__*/ N("<div class=\"flex min-w-0 items-center gap-1.5 pt-0.5\"><a target=_blank rel=noreferrer class=\"text-accent min-w-0 truncate text-[11px] hover:underline\">"), m0 = /*#__PURE__*/ N("<p class=\"text-text-faint text-[11px]\">Waiting for output…"), h0 = [
|
|
44572
44617
|
{
|
|
44573
44618
|
id: "",
|
|
44574
44619
|
label: "Default model"
|
|
@@ -44590,13 +44635,13 @@ var N1 = /*#__PURE__*/ N("<div class=\"border-accent/40 bg-accent-soft self-end
|
|
|
44590
44635
|
label: "Haiku"
|
|
44591
44636
|
}
|
|
44592
44637
|
];
|
|
44593
|
-
function
|
|
44638
|
+
function g0(e, t) {
|
|
44594
44639
|
let n = e.split(".").map(Number), r = t.split(".").map(Number);
|
|
44595
44640
|
for (let e = 0; e < 3; e++) if ((n[e] ?? 0) !== (r[e] ?? 0)) return (n[e] ?? 0) < (r[e] ?? 0);
|
|
44596
44641
|
return !1;
|
|
44597
44642
|
}
|
|
44598
|
-
var
|
|
44599
|
-
function
|
|
44643
|
+
var _0 = (e) => e == null ? "–" : e >= 1e3 ? `${(e / 1e3).toFixed(e >= 1e5 ? 0 : 1)}k` : String(e);
|
|
44644
|
+
function v0() {
|
|
44600
44645
|
let e = sr(), t = _r(() => ({
|
|
44601
44646
|
queryKey: ["bridge-health"],
|
|
44602
44647
|
queryFn: MO,
|
|
@@ -44683,18 +44728,18 @@ function _0() {
|
|
|
44683
44728
|
}, ne = (e) => e === "running" ? "var(--color-accent)" : e === "done" ? "var(--color-success)" : e === "stopped" ? "var(--color-warn)" : "var(--color-danger)", re = (e) => {
|
|
44684
44729
|
let t = e.line.kind, n = k(() => h$(e.line.text));
|
|
44685
44730
|
return t === "user" ? (() => {
|
|
44686
|
-
var e =
|
|
44731
|
+
var e = P1(), t = e.firstChild.nextSibling;
|
|
44687
44732
|
return D(() => t.innerHTML = n()), e;
|
|
44688
44733
|
})() : t === "assistant" || t === "result" ? (() => {
|
|
44689
|
-
var e =
|
|
44734
|
+
var e = F1(), r = e.firstChild, i = r.nextSibling;
|
|
44690
44735
|
return st(e, `bg-surface rounded-lg border px-2.5 py-1.5 ${t === "result" ? "border-success/40" : "border-border"}`), st(r, `mb-0.5 text-[9.5px] font-semibold tracking-wide uppercase ${t === "result" ? "text-success" : "text-text-faint"}`), P(r, t === "result" ? "Result" : "Claude"), D(() => i.innerHTML = n()), e;
|
|
44691
44736
|
})() : (() => {
|
|
44692
|
-
var n =
|
|
44737
|
+
var n = I1();
|
|
44693
44738
|
return st(n, `font-mono px-1 text-[10px] leading-relaxed break-words ${t === "subagent" ? "text-warn" : t === "stderr" ? "text-danger" : "text-text-faint"}`), P(n, () => e.line.text), n;
|
|
44694
44739
|
})();
|
|
44695
44740
|
};
|
|
44696
44741
|
return (() => {
|
|
44697
|
-
var e =
|
|
44742
|
+
var e = z1(), a = e.firstChild;
|
|
44698
44743
|
a.firstChild;
|
|
44699
44744
|
var l = a.nextSibling;
|
|
44700
44745
|
return P(a, j(M, {
|
|
@@ -44710,7 +44755,7 @@ function _0() {
|
|
|
44710
44755
|
get children() {
|
|
44711
44756
|
return [j(M, {
|
|
44712
44757
|
get when() {
|
|
44713
|
-
return
|
|
44758
|
+
return g0(t.data.version, "0.15.1");
|
|
44714
44759
|
},
|
|
44715
44760
|
get children() {
|
|
44716
44761
|
return j(Rj, {
|
|
@@ -44726,7 +44771,7 @@ function _0() {
|
|
|
44726
44771
|
});
|
|
44727
44772
|
}
|
|
44728
44773
|
}), (() => {
|
|
44729
|
-
var e =
|
|
44774
|
+
var e = L1(), r = e.firstChild, i = r.nextSibling;
|
|
44730
44775
|
return i.nextSibling, P(e, () => t.data.active, r), P(e, () => {
|
|
44731
44776
|
let e = (n.data ?? []).reduce((e, t) => e + (t.usage?.costUsd ?? 0), 0);
|
|
44732
44777
|
return e > 0 ? ` · Σ $${e.toFixed(2)}` : "";
|
|
@@ -44743,7 +44788,7 @@ function _0() {
|
|
|
44743
44788
|
get children() {
|
|
44744
44789
|
return [
|
|
44745
44790
|
"Start it in your repo's terminal:",
|
|
44746
|
-
|
|
44791
|
+
B1(),
|
|
44747
44792
|
"Then delegate from the Draft tab (\"Local Claude Code\") or watch tasks here. Sessions stay interactive — send follow-ups, switch models, interrupt, resume in your terminal. History persists across restarts."
|
|
44748
44793
|
];
|
|
44749
44794
|
}
|
|
@@ -44761,20 +44806,20 @@ function _0() {
|
|
|
44761
44806
|
});
|
|
44762
44807
|
},
|
|
44763
44808
|
get children() {
|
|
44764
|
-
var e =
|
|
44809
|
+
var e = R1();
|
|
44765
44810
|
return P(e, j(Ge, {
|
|
44766
44811
|
get each() {
|
|
44767
44812
|
return n.data;
|
|
44768
44813
|
},
|
|
44769
44814
|
children: (e) => (() => {
|
|
44770
|
-
var t =
|
|
44815
|
+
var t = n0(), n = t.firstChild, a = n.firstChild, l = a.nextSibling, m = n.nextSibling, h = m.nextSibling, g = h.nextSibling;
|
|
44771
44816
|
return P(n, j(M, {
|
|
44772
44817
|
get when() {
|
|
44773
44818
|
return e().status === "running";
|
|
44774
44819
|
},
|
|
44775
44820
|
get fallback() {
|
|
44776
44821
|
return (() => {
|
|
44777
|
-
var t =
|
|
44822
|
+
var t = r0();
|
|
44778
44823
|
return D((n) => dt(t, "background", ne(e().status))), t;
|
|
44779
44824
|
})();
|
|
44780
44825
|
},
|
|
@@ -44827,8 +44872,8 @@ function _0() {
|
|
|
44827
44872
|
return e().usage;
|
|
44828
44873
|
},
|
|
44829
44874
|
get children() {
|
|
44830
|
-
var t =
|
|
44831
|
-
return n.nextSibling, P(t, () =>
|
|
44875
|
+
var t = V1(), n = t.firstChild.nextSibling;
|
|
44876
|
+
return n.nextSibling, P(t, () => _0(e().usage.contextTokens), n), P(t, () => _0(e().usage.outputTokens), null), P(t, (() => {
|
|
44832
44877
|
var t = $e(() => !!e().usage.costUsd);
|
|
44833
44878
|
return () => t() ? ` · $${e().usage.costUsd.toFixed(2)}` : "";
|
|
44834
44879
|
})(), null), t;
|
|
@@ -44838,7 +44883,7 @@ function _0() {
|
|
|
44838
44883
|
return o(e());
|
|
44839
44884
|
},
|
|
44840
44885
|
children: (e) => (() => {
|
|
44841
|
-
var t =
|
|
44886
|
+
var t = i0();
|
|
44842
44887
|
return P(t, j(Rj, { get children() {
|
|
44843
44888
|
return e().state.name;
|
|
44844
44889
|
} }), null), P(t, j(Fj, {
|
|
@@ -44853,7 +44898,7 @@ function _0() {
|
|
|
44853
44898
|
return $e(() => !!e().worktree)() && !e().worktree.removed;
|
|
44854
44899
|
},
|
|
44855
44900
|
get children() {
|
|
44856
|
-
var t =
|
|
44901
|
+
var t = H1(), n = t.firstChild;
|
|
44857
44902
|
return P(t, j(Rj, {
|
|
44858
44903
|
class: "text-warn",
|
|
44859
44904
|
children: "⎇ worktree"
|
|
@@ -44889,17 +44934,17 @@ function _0() {
|
|
|
44889
44934
|
title: "Model — applies from the next message",
|
|
44890
44935
|
get children() {
|
|
44891
44936
|
return [j(We, {
|
|
44892
|
-
each:
|
|
44937
|
+
each: h0,
|
|
44893
44938
|
children: (t) => (() => {
|
|
44894
|
-
var n =
|
|
44939
|
+
var n = a0();
|
|
44895
44940
|
return P(n, () => t.label), D(() => n.selected = (e().pendingModel ?? e().model ?? "") === t.id), D(() => n.value = t.id), n;
|
|
44896
44941
|
})()
|
|
44897
44942
|
}), j(M, {
|
|
44898
44943
|
get when() {
|
|
44899
|
-
return !
|
|
44944
|
+
return !h0.some((t) => t.id === (e().pendingModel ?? e().model ?? ""));
|
|
44900
44945
|
},
|
|
44901
44946
|
get children() {
|
|
44902
|
-
var t =
|
|
44947
|
+
var t = U1();
|
|
44903
44948
|
return P(t, () => e().pendingModel ?? e().model), D(() => t.value = e().pendingModel ?? e().model ?? ""), t;
|
|
44904
44949
|
}
|
|
44905
44950
|
})];
|
|
@@ -44924,7 +44969,7 @@ function _0() {
|
|
|
44924
44969
|
text: "Continue where you left off. If the work is already complete, finish any remaining closeout steps (PR, Linear update, announcement)."
|
|
44925
44970
|
}),
|
|
44926
44971
|
get children() {
|
|
44927
|
-
return
|
|
44972
|
+
return W1();
|
|
44928
44973
|
}
|
|
44929
44974
|
});
|
|
44930
44975
|
}
|
|
@@ -44938,7 +44983,7 @@ function _0() {
|
|
|
44938
44983
|
title: "Open the issue's Activity thread",
|
|
44939
44984
|
onClick: () => aj("activity", e().id),
|
|
44940
44985
|
get children() {
|
|
44941
|
-
return
|
|
44986
|
+
return o0();
|
|
44942
44987
|
}
|
|
44943
44988
|
})
|
|
44944
44989
|
}), null), P(g, j(Oj, {
|
|
@@ -44957,10 +45002,10 @@ function _0() {
|
|
|
44957
45002
|
return ee() === e().id;
|
|
44958
45003
|
},
|
|
44959
45004
|
get fallback() {
|
|
44960
|
-
return
|
|
45005
|
+
return s0();
|
|
44961
45006
|
},
|
|
44962
45007
|
get children() {
|
|
44963
|
-
return
|
|
45008
|
+
return G1();
|
|
44964
45009
|
}
|
|
44965
45010
|
});
|
|
44966
45011
|
}
|
|
@@ -44972,7 +45017,7 @@ function _0() {
|
|
|
44972
45017
|
},
|
|
44973
45018
|
onClick: () => i(r() === e().id ? null : e().id),
|
|
44974
45019
|
get children() {
|
|
44975
|
-
return
|
|
45020
|
+
return K1();
|
|
44976
45021
|
}
|
|
44977
45022
|
}), null), P(g, j(M, {
|
|
44978
45023
|
get when() {
|
|
@@ -44988,7 +45033,7 @@ function _0() {
|
|
|
44988
45033
|
title: "Interrupt — the session stays resumable",
|
|
44989
45034
|
onClick: () => u.mutate(e().id),
|
|
44990
45035
|
get children() {
|
|
44991
|
-
return
|
|
45036
|
+
return q1();
|
|
44992
45037
|
}
|
|
44993
45038
|
});
|
|
44994
45039
|
}
|
|
@@ -45003,7 +45048,7 @@ function _0() {
|
|
|
45003
45048
|
return $e(() => !!c.data)() && (c.data.files.length || c.data.untracked.length || c.data.prs.length);
|
|
45004
45049
|
},
|
|
45005
45050
|
get children() {
|
|
45006
|
-
var e =
|
|
45051
|
+
var e = Y1(), t = e.firstChild, n = t.firstChild.nextSibling, r = n.firstChild;
|
|
45007
45052
|
r.firstChild;
|
|
45008
45053
|
var i = r.nextSibling.nextSibling;
|
|
45009
45054
|
return i.firstChild, P(t, j(M, {
|
|
@@ -45011,7 +45056,7 @@ function _0() {
|
|
|
45011
45056
|
return c.data.branch;
|
|
45012
45057
|
},
|
|
45013
45058
|
get children() {
|
|
45014
|
-
var e =
|
|
45059
|
+
var e = J1();
|
|
45015
45060
|
return P(e, () => c.data.branch), e;
|
|
45016
45061
|
}
|
|
45017
45062
|
}), n), P(r, () => c.data.totalAdded, null), P(i, () => c.data.totalDeleted, null), P(e, j(We, {
|
|
@@ -45019,23 +45064,23 @@ function _0() {
|
|
|
45019
45064
|
return c.data.files;
|
|
45020
45065
|
},
|
|
45021
45066
|
children: (e) => (() => {
|
|
45022
|
-
var t =
|
|
45067
|
+
var t = u0(), n = t.firstChild, r = n.nextSibling;
|
|
45023
45068
|
return P(n, () => e.path), P(r, j(M, {
|
|
45024
45069
|
get when() {
|
|
45025
45070
|
return !e.binary;
|
|
45026
45071
|
},
|
|
45027
45072
|
get fallback() {
|
|
45028
|
-
return
|
|
45073
|
+
return d0();
|
|
45029
45074
|
},
|
|
45030
45075
|
get children() {
|
|
45031
45076
|
return [
|
|
45032
45077
|
(() => {
|
|
45033
|
-
var t =
|
|
45078
|
+
var t = c0();
|
|
45034
45079
|
return t.firstChild, P(t, () => e.added, null), t;
|
|
45035
45080
|
})(),
|
|
45036
45081
|
" ",
|
|
45037
45082
|
(() => {
|
|
45038
|
-
var t =
|
|
45083
|
+
var t = l0();
|
|
45039
45084
|
return t.firstChild, P(t, () => e.deleted, null), t;
|
|
45040
45085
|
})()
|
|
45041
45086
|
];
|
|
@@ -45047,7 +45092,7 @@ function _0() {
|
|
|
45047
45092
|
return c.data.untracked;
|
|
45048
45093
|
},
|
|
45049
45094
|
children: (e) => (() => {
|
|
45050
|
-
var t =
|
|
45095
|
+
var t = f0(), n = t.firstChild;
|
|
45051
45096
|
return it(n, "title", e), P(n, e), t;
|
|
45052
45097
|
})()
|
|
45053
45098
|
}), null), P(e, j(We, {
|
|
@@ -45055,7 +45100,7 @@ function _0() {
|
|
|
45055
45100
|
return c.data.prs;
|
|
45056
45101
|
},
|
|
45057
45102
|
children: (e) => (() => {
|
|
45058
|
-
var t =
|
|
45103
|
+
var t = p0(), n = t.firstChild;
|
|
45059
45104
|
return P(t, j(Rj, {
|
|
45060
45105
|
class: "text-accent",
|
|
45061
45106
|
get children() {
|
|
@@ -45073,7 +45118,7 @@ function _0() {
|
|
|
45073
45118
|
}
|
|
45074
45119
|
}),
|
|
45075
45120
|
(() => {
|
|
45076
|
-
var e =
|
|
45121
|
+
var e = X1();
|
|
45077
45122
|
return e.addEventListener("scroll", E), pt((e) => {
|
|
45078
45123
|
C = e, w = !0;
|
|
45079
45124
|
}, e), P(e, j(M, {
|
|
@@ -45081,7 +45126,7 @@ function _0() {
|
|
|
45081
45126
|
return (s.data?.tail ?? []).length > 0;
|
|
45082
45127
|
},
|
|
45083
45128
|
get fallback() {
|
|
45084
|
-
return
|
|
45129
|
+
return m0();
|
|
45085
45130
|
},
|
|
45086
45131
|
get children() {
|
|
45087
45132
|
return j(Ge, {
|
|
@@ -45096,7 +45141,7 @@ function _0() {
|
|
|
45096
45141
|
})), e;
|
|
45097
45142
|
})(),
|
|
45098
45143
|
(() => {
|
|
45099
|
-
var t =
|
|
45144
|
+
var t = t0(), n = t.firstChild, r = n.firstChild;
|
|
45100
45145
|
return P(t, j(jj, {
|
|
45101
45146
|
rows: 2,
|
|
45102
45147
|
get placeholder() {
|
|
@@ -45116,7 +45161,7 @@ function _0() {
|
|
|
45116
45161
|
"aria-label": "Pick element",
|
|
45117
45162
|
onClick: v,
|
|
45118
45163
|
get children() {
|
|
45119
|
-
return
|
|
45164
|
+
return Z1();
|
|
45120
45165
|
}
|
|
45121
45166
|
}), null), P(n, j(Oj, {
|
|
45122
45167
|
variant: "ghost",
|
|
@@ -45128,7 +45173,7 @@ function _0() {
|
|
|
45128
45173
|
"aria-label": "Attach captures",
|
|
45129
45174
|
onClick: () => void y(),
|
|
45130
45175
|
get children() {
|
|
45131
|
-
return
|
|
45176
|
+
return Q1();
|
|
45132
45177
|
}
|
|
45133
45178
|
}), null), P(n, j(Oj, {
|
|
45134
45179
|
variant: "ghost",
|
|
@@ -45143,7 +45188,7 @@ function _0() {
|
|
|
45143
45188
|
text: "/compact"
|
|
45144
45189
|
}),
|
|
45145
45190
|
get children() {
|
|
45146
|
-
return
|
|
45191
|
+
return $1();
|
|
45147
45192
|
}
|
|
45148
45193
|
}), null), P(n, j(Oj, {
|
|
45149
45194
|
variant: "primary",
|
|
@@ -45159,7 +45204,7 @@ function _0() {
|
|
|
45159
45204
|
text: d().trim()
|
|
45160
45205
|
}),
|
|
45161
45206
|
get children() {
|
|
45162
|
-
return
|
|
45207
|
+
return e0();
|
|
45163
45208
|
}
|
|
45164
45209
|
}), null), t;
|
|
45165
45210
|
})()
|
|
@@ -45177,13 +45222,13 @@ function _0() {
|
|
|
45177
45222
|
//#endregion
|
|
45178
45223
|
//#region src/panel/views/PrsView.tsx
|
|
45179
45224
|
Br();
|
|
45180
|
-
var
|
|
45181
|
-
function
|
|
45225
|
+
var y0 = /*#__PURE__*/ N("<span class=\"text-text-faint text-[10.5px] tabular-nums\">/<!> from your issues"), b0 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1.5\">"), x0 = /*#__PURE__*/ N("<div class=\"flex h-full flex-col\"><div class=\"border-border flex shrink-0 items-center justify-between border-b px-3 py-2\"><span class=\"text-text text-[12px] font-semibold\">Pull requests</span></div><div class=\"border-border flex shrink-0 items-center gap-1.5 border-b px-3 py-1.5\"><div class=\"bg-surface-2 border-border flex shrink-0 rounded-md border p-0.5\"></div></div><div class=\"min-h-0 flex-1 overflow-y-auto pt-2 pb-3 pl-2 pr-3\">"), S0 = /*#__PURE__*/ N("<span class=\"text-warn text-[10.5px]\"title=\"Merge states come from gh via the bridge\">states unknown — restart the bridge"), C0 = /*#__PURE__*/ N("<button>"), w0 = /*#__PURE__*/ N("<span class=\"text-success text-[11px]\">✓"), T0 = /*#__PURE__*/ N("<span class=\"text-[12px] leading-none\">✓"), E0 = /*#__PURE__*/ N("<svg width=13 height=13 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round aria-hidden><circle cx=8 cy=8 r=6></circle><circle cx=8 cy=8 r=1.6 fill=currentColor stroke=none>"), D0 = /*#__PURE__*/ N("<span class=\"text-success text-[12px] leading-none\">✓"), O0 = /*#__PURE__*/ N("<div class=\"bg-surface border-border flex flex-col gap-1.5 rounded-lg border p-2.5\"><a target=_blank rel=noreferrer class=\"text-accent truncate text-[12.5px] font-medium hover:underline\"></a><div class=\"flex min-w-0 items-center gap-1.5\"><span class=\"font-mono text-text-dim shrink-0 text-[11px]\"></span><span class=\"text-text-dim truncate text-[11.5px]\"></span><span class=\"text-text-faint ml-auto shrink-0 text-[10.5px] tabular-nums\"></span></div><div class=\"flex min-w-0 flex-wrap items-center gap-1.5\"><div class=\"ml-auto flex shrink-0 items-center gap-1\">"), k0 = /*#__PURE__*/ N("<svg width=12 height=12 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round aria-hidden><path d=\"M8 2 14 5.5 8 9 2 5.5 8 2Z\"></path><path d=\"M2 10.5 8 14l6-3.5\">"), A0 = /*#__PURE__*/ N("<svg width=13 height=13 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round aria-hidden><circle cx=4 cy=3.5 r=1.5></circle><circle cx=4 cy=12.5 r=1.5></circle><circle cx=12 cy=8 r=1.5></circle><path d=\"M4 5v6M4 6.5c0 2 2 3 4.5 3h2\">"), j0 = /*#__PURE__*/ N("<svg width=13 height=13 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linejoin=round aria-hidden><rect x=5.5 y=5.5 width=9 height=9 rx=1.5></rect><path d=\"M10.5 5.5v-2a2 2 0 0 0-2-2h-5a2 2 0 0 0-2 2v5a2 2 0 0 0 2 2h2\">"), M0 = /github\.com\/[^/]+\/[^/]+\/pull\/\d+/i;
|
|
45226
|
+
function N0(e) {
|
|
45182
45227
|
let t = _r(() => ({
|
|
45183
45228
|
queryKey: ["my-issues"],
|
|
45184
45229
|
queryFn: fO,
|
|
45185
45230
|
refetchInterval: 15e3
|
|
45186
|
-
})), n = k(() => (t.data ?? []).flatMap((e) => (e.attachments ?? []).filter((e) =>
|
|
45231
|
+
})), n = k(() => (t.data ?? []).flatMap((e) => (e.attachments ?? []).filter((e) => M0.test(e.url)).map((t) => ({
|
|
45187
45232
|
issue: e,
|
|
45188
45233
|
attachment: t
|
|
45189
45234
|
})))), r = _r(() => ({
|
|
@@ -45232,7 +45277,7 @@ function M0(e) {
|
|
|
45232
45277
|
} catch {}
|
|
45233
45278
|
};
|
|
45234
45279
|
return (() => {
|
|
45235
|
-
var r =
|
|
45280
|
+
var r = x0(), f = r.firstChild;
|
|
45236
45281
|
f.firstChild;
|
|
45237
45282
|
var h = f.nextSibling, _ = h.firstChild, v = h.nextSibling;
|
|
45238
45283
|
return P(f, j(M, {
|
|
@@ -45240,10 +45285,10 @@ function M0(e) {
|
|
|
45240
45285
|
return !i.isError;
|
|
45241
45286
|
},
|
|
45242
45287
|
get fallback() {
|
|
45243
|
-
return
|
|
45288
|
+
return S0();
|
|
45244
45289
|
},
|
|
45245
45290
|
get children() {
|
|
45246
|
-
var e =
|
|
45291
|
+
var e = y0(), t = e.firstChild, r = t.nextSibling;
|
|
45247
45292
|
return r.nextSibling, P(e, () => d().length, t), P(e, () => n().length, r), e;
|
|
45248
45293
|
}
|
|
45249
45294
|
}), null), P(_, j(We, {
|
|
@@ -45266,7 +45311,7 @@ function M0(e) {
|
|
|
45266
45311
|
}
|
|
45267
45312
|
],
|
|
45268
45313
|
children: (e) => (() => {
|
|
45269
|
-
var t =
|
|
45314
|
+
var t = C0();
|
|
45270
45315
|
return t.$$click = () => c(e.id), P(t, () => e.label), D(() => st(t, `rounded-[5px] px-2 py-0.5 text-[11px] font-medium transition-colors ${s() === e.id ? "bg-surface-3 text-text" : "text-text-dim hover:text-text cursor-pointer"}`)), t;
|
|
45271
45316
|
})()
|
|
45272
45317
|
})), P(h, j(Aj, {
|
|
@@ -45289,13 +45334,13 @@ function M0(e) {
|
|
|
45289
45334
|
});
|
|
45290
45335
|
},
|
|
45291
45336
|
get children() {
|
|
45292
|
-
var t =
|
|
45337
|
+
var t = b0();
|
|
45293
45338
|
return P(t, j(We, {
|
|
45294
45339
|
get each() {
|
|
45295
45340
|
return d();
|
|
45296
45341
|
},
|
|
45297
45342
|
children: (t) => (() => {
|
|
45298
|
-
var n =
|
|
45343
|
+
var n = O0(), r = n.firstChild, s = r.nextSibling, c = s.firstChild, l = c.nextSibling, u = l.nextSibling, d = s.nextSibling, f = d.firstChild;
|
|
45299
45344
|
return P(r, () => t.attachment.title || t.attachment.url), P(n, j(M, {
|
|
45300
45345
|
get when() {
|
|
45301
45346
|
return i.data?.previews[t.attachment.url];
|
|
@@ -45383,10 +45428,10 @@ function M0(e) {
|
|
|
45383
45428
|
return g().has(t.attachment.url);
|
|
45384
45429
|
},
|
|
45385
45430
|
get fallback() {
|
|
45386
|
-
return
|
|
45431
|
+
return k0();
|
|
45387
45432
|
},
|
|
45388
45433
|
get children() {
|
|
45389
|
-
return
|
|
45434
|
+
return w0();
|
|
45390
45435
|
}
|
|
45391
45436
|
});
|
|
45392
45437
|
}
|
|
@@ -45413,10 +45458,10 @@ function M0(e) {
|
|
|
45413
45458
|
return E().has(t.attachment.url);
|
|
45414
45459
|
},
|
|
45415
45460
|
get fallback() {
|
|
45416
|
-
return
|
|
45461
|
+
return A0();
|
|
45417
45462
|
},
|
|
45418
45463
|
get children() {
|
|
45419
|
-
return
|
|
45464
|
+
return T0();
|
|
45420
45465
|
}
|
|
45421
45466
|
});
|
|
45422
45467
|
}
|
|
@@ -45429,7 +45474,7 @@ function M0(e) {
|
|
|
45429
45474
|
aj("activity", t.issue.id), e.onOpenIssue();
|
|
45430
45475
|
},
|
|
45431
45476
|
get children() {
|
|
45432
|
-
return
|
|
45477
|
+
return E0();
|
|
45433
45478
|
}
|
|
45434
45479
|
}), null), P(f, j(Oj, {
|
|
45435
45480
|
variant: "ghost",
|
|
@@ -45443,10 +45488,10 @@ function M0(e) {
|
|
|
45443
45488
|
return x() === t.attachment.id;
|
|
45444
45489
|
},
|
|
45445
45490
|
get fallback() {
|
|
45446
|
-
return
|
|
45491
|
+
return j0();
|
|
45447
45492
|
},
|
|
45448
45493
|
get children() {
|
|
45449
|
-
return
|
|
45494
|
+
return D0();
|
|
45450
45495
|
}
|
|
45451
45496
|
});
|
|
45452
45497
|
}
|
|
@@ -45477,16 +45522,47 @@ function M0(e) {
|
|
|
45477
45522
|
})), r;
|
|
45478
45523
|
})();
|
|
45479
45524
|
}
|
|
45525
|
+
rt(["click"]);
|
|
45526
|
+
//#endregion
|
|
45527
|
+
//#region src/lib/projectConfig.ts
|
|
45528
|
+
var P0 = [
|
|
45529
|
+
"defaultTeamId",
|
|
45530
|
+
"defaultProjectId",
|
|
45531
|
+
"defaultLabelIds",
|
|
45532
|
+
"defaultRepo",
|
|
45533
|
+
"workflowMode",
|
|
45534
|
+
"cursorModel",
|
|
45535
|
+
"stagingBranch",
|
|
45536
|
+
"githubAssetsRepo",
|
|
45537
|
+
"skillPaths",
|
|
45538
|
+
"logUrl",
|
|
45539
|
+
"logLines",
|
|
45540
|
+
"issueTemplate",
|
|
45541
|
+
"testUsername"
|
|
45542
|
+
];
|
|
45543
|
+
function F0(e) {
|
|
45544
|
+
let t = {};
|
|
45545
|
+
for (let n of P0) {
|
|
45546
|
+
let r = e[n];
|
|
45547
|
+
r !== void 0 && r !== "" && !(Array.isArray(r) && r.length === 0) && (t[n] = r);
|
|
45548
|
+
}
|
|
45549
|
+
return t;
|
|
45550
|
+
}
|
|
45551
|
+
function I0(e, t) {
|
|
45552
|
+
let n = {};
|
|
45553
|
+
for (let r of P0) e[r] === void 0 && t[r] !== void 0 && (n[r] = t[r]);
|
|
45554
|
+
return Object.keys(n).length ? n : null;
|
|
45555
|
+
}
|
|
45480
45556
|
//#endregion
|
|
45481
45557
|
//#region src/lib/linear/auth.ts
|
|
45482
|
-
|
|
45483
|
-
function
|
|
45558
|
+
Br();
|
|
45559
|
+
function L0(e) {
|
|
45484
45560
|
let t = "";
|
|
45485
45561
|
for (let n of e) t += String.fromCharCode(n);
|
|
45486
45562
|
return btoa(t).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
|
|
45487
45563
|
}
|
|
45488
|
-
async function
|
|
45489
|
-
let t =
|
|
45564
|
+
async function R0(e) {
|
|
45565
|
+
let t = L0(crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(32))), n = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(t)), r = L0(new Uint8Array(n)), i = L0(crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(16))), a = chrome.identity.getRedirectURL(), o = new URL("https://linear.app/oauth/authorize");
|
|
45490
45566
|
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");
|
|
45491
45567
|
let s = await chrome.identity.launchWebAuthFlow({
|
|
45492
45568
|
url: o.toString(),
|
|
@@ -45514,15 +45590,15 @@ async function P0(e) {
|
|
|
45514
45590
|
linearOauthClientId: e
|
|
45515
45591
|
});
|
|
45516
45592
|
}
|
|
45517
|
-
async function
|
|
45593
|
+
async function z0() {
|
|
45518
45594
|
await Er({
|
|
45519
45595
|
linearAccessToken: void 0,
|
|
45520
45596
|
linearApiKey: void 0
|
|
45521
45597
|
});
|
|
45522
45598
|
}
|
|
45523
45599
|
Br(), Sr(), Fx(), gD();
|
|
45524
|
-
var
|
|
45525
|
-
function
|
|
45600
|
+
var B0 = /*#__PURE__*/ N("<div class=\"bg-surface-2 border-border flex rounded-md border p-0.5\">"), V0 = /*#__PURE__*/ N("<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."), H0 = /*#__PURE__*/ N("<label class=\"flex cursor-pointer items-center gap-2 select-none\"><input type=checkbox class=\"accent-accent rounded\"><span class=\"text-text text-[12px]\">Element screenshots"), U0 = /*#__PURE__*/ N("<span class=\"text-text-faint text-[10.5px] leading-snug\">Captures a highlighted screenshot of each picked element and attaches it to the issue. Costs a beat on huge pages — with this off, picking is instant (pure react-grab speed)."), W0 = /*#__PURE__*/ N("<span class=text-text>Connected as <span class=font-medium></span> · <span class=text-text-dim>"), G0 = /*#__PURE__*/ N("<div class=\"bg-surface border-border flex items-center justify-between rounded-lg border p-2.5\"><span class=\"text-text text-[12px]\">"), K0 = /*#__PURE__*/ N("<option value>Select a team…"), q0 = /*#__PURE__*/ N("<option value>No project"), J0 = /*#__PURE__*/ N("<div class=\"flex flex-wrap gap-1\">"), Y0 = /*#__PURE__*/ N("<label class=\"flex items-start gap-2\"><input type=checkbox class=\"accent-accent mt-0.5\"><span class=\"flex flex-col gap-0.5\"><span class=text-[12px]>Let agents close out Linear themselves</span><span class=\"text-text-faint text-[10.5px] leading-snug\">Embeds your Linear API key + raw GraphQL closeout recipes in every issue's Agent instructions — cloud agent VMs have no authenticated Linear MCP, so without this they can't comment, attach media, or move the issue. The key is visible to anyone who can read the issue."), X0 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">No agents found — install the Cursor integration in Linear first."), Z0 = /*#__PURE__*/ N("<span class=\"text-text-faint text-[10.5px] leading-snug\">Empty = the default above (computer-use testing, video demo, PR + review babysitting)."), Q0 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1.5\">"), $0 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1\"><span class=\"text-text-dim text-[11px] font-medium\">Mode</span><div class=\"bg-surface-2 border-border flex rounded-md border p-0.5\"></div><span class=\"text-text-faint text-[10.5px] leading-snug\">Beside page squeezes the app next to the panel, DevTools-style — nothing gets covered. Also toggleable from the dock icon in the panel header."), e2 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1\"><span class=\"text-text-dim text-[11px] font-medium\">Dock side</span><div class=\"bg-surface-2 border-border flex rounded-md border p-0.5\"></div><span class=\"text-text-faint text-[10.5px] leading-snug\">The launcher pill is draggable — park it anywhere it doesn't cover your app."), t2 = /*#__PURE__*/ N("<p class=\"text-text-faint text-[10.5px] leading-snug\">A committed <code>.lineargrab.json</code> at the repo root (where the bridge runs) shares team/project/labels, skills, staging branch, and workflow defaults with every machine and teammate — it seeds any setting you haven't set locally. Secrets never belong in it."), n2 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[10ch] text-center\">"), r2 = /*#__PURE__*/ N("<div class=\"flex items-center gap-2\">"), i2 = /*#__PURE__*/ N("<option value>Select a channel…"), a2 = /*#__PURE__*/ N("<label class=\"flex cursor-pointer items-center gap-2 select-none\"><input type=checkbox class=\"accent-accent rounded\"><span class=\"text-text text-[12px]\">Announce new issues on create"), o2 = /*#__PURE__*/ N("<span class=\"text-text-faint text-[10.5px] leading-snug\">⚠️ Tokens are embedded in issue Agent-instructions so agents can post the finished demo — everyone who can read the issue can read them. Use single-channel-scoped bots."), s2 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1\"><span class=\"text-text-dim text-[11px] font-medium\">Provider preference</span><div class=\"bg-surface-2 border-border flex rounded-md border p-0.5\"><button>Auto</button><button>OpenAI</button><button>Anthropic"), c2 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">"), l2 = /*#__PURE__*/ N("<div class=min-h-[2lh]>"), u2 = /*#__PURE__*/ N("<ol class=\"text-text-faint flex list-decimal flex-col gap-1 pl-4 text-[11px] leading-relaxed\"><li>Pick an element on your running dev app.</li><li>Draft the issue (AI optional).</li><li>Create + delegate — Cursor's cloud agent fixes it and opens a PR.</li><li>Track and steer it from Activity."), d2 = /*#__PURE__*/ N("<div class=\"flex h-full flex-col gap-5 overflow-y-auto pt-3 pb-6 pl-3 pr-4\">"), f2 = /*#__PURE__*/ N("<button>"), p2 = /*#__PURE__*/ N("<div class=\"flex gap-1.5\">"), m2 = /*#__PURE__*/ N("<p class=\"text-text-faint text-center text-[10.5px]\">or"), h2 = /*#__PURE__*/ N("<span class=\"text-text-faint text-[10.5px] leading-snug\">Register this callback URL in your Linear OAuth app config:<br><span class=\"font-mono text-[10.5px] break-all\">"), g2 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-3\">"), _2 = /*#__PURE__*/ N("<span class=text-text-dim>Connected — verifying…"), v2 = /*#__PURE__*/ N("<option> (<!>)"), y2 = /*#__PURE__*/ N("<option>"), b2 = /*#__PURE__*/ N("<button type=button><span class=\"mr-1 inline-block size-2 rounded-full align-middle\">"), x2 = /*#__PURE__*/ N("<option value>Select the agent…"), S2 = /*#__PURE__*/ N("<option>#"), C2 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">No key set — AI drafting disabled, manual drafting still works.");
|
|
45601
|
+
function w2() {
|
|
45526
45602
|
let e = sr(), t = _r(() => ({
|
|
45527
45603
|
queryKey: ["settings"],
|
|
45528
45604
|
queryFn: Tr,
|
|
@@ -45545,69 +45621,83 @@ function _2() {
|
|
|
45545
45621
|
queryFn: bO,
|
|
45546
45622
|
enabled: i()
|
|
45547
45623
|
})), c = _r(() => ({
|
|
45624
|
+
queryKey: ["bridge-health"],
|
|
45625
|
+
queryFn: MO,
|
|
45626
|
+
retry: 0
|
|
45627
|
+
})), [l, u] = T(!1), d = async () => {
|
|
45628
|
+
try {
|
|
45629
|
+
await navigator.clipboard.writeText(JSON.stringify(F0(n()), null, 2) + "\n"), u(!0), setTimeout(() => u(!1), 1800);
|
|
45630
|
+
} catch {}
|
|
45631
|
+
}, f = () => {
|
|
45632
|
+
let e = c.data?.projectConfig;
|
|
45633
|
+
if (!e) return;
|
|
45634
|
+
let t = {};
|
|
45635
|
+
for (let n of P0) e[n] !== void 0 && (t[n] = e[n]);
|
|
45636
|
+
r(t);
|
|
45637
|
+
}, p = _r(() => ({
|
|
45548
45638
|
queryKey: ["linear-labels"],
|
|
45549
45639
|
queryFn: xO,
|
|
45550
45640
|
enabled: i()
|
|
45551
|
-
})),
|
|
45641
|
+
})), m = _r(() => ({
|
|
45552
45642
|
queryKey: ["agents"],
|
|
45553
45643
|
queryFn: dO,
|
|
45554
45644
|
enabled: i()
|
|
45555
|
-
})), [
|
|
45556
|
-
async function
|
|
45557
|
-
let e =
|
|
45645
|
+
})), [h, g] = T(""), [_, v] = T(!1), [y, b] = T("");
|
|
45646
|
+
async function x() {
|
|
45647
|
+
let e = h().trim();
|
|
45558
45648
|
if (e) {
|
|
45559
|
-
|
|
45649
|
+
v(!0), b("");
|
|
45560
45650
|
try {
|
|
45561
|
-
await r({ linearApiKey: e }, !0), await lO(),
|
|
45651
|
+
await r({ linearApiKey: e }, !0), await lO(), g("");
|
|
45562
45652
|
} catch {
|
|
45563
|
-
|
|
45653
|
+
b("Key rejected — could not verify. Check the key and try again."), await r({ linearApiKey: void 0 }, !0);
|
|
45564
45654
|
} finally {
|
|
45565
|
-
|
|
45655
|
+
v(!1);
|
|
45566
45656
|
}
|
|
45567
45657
|
}
|
|
45568
45658
|
}
|
|
45569
|
-
let [
|
|
45570
|
-
async function
|
|
45571
|
-
let t = (
|
|
45659
|
+
let [S, C] = T(""), [w, E] = T(!1), [O, ee] = T("");
|
|
45660
|
+
async function te() {
|
|
45661
|
+
let t = (S() || n().linearOauthClientId || "").trim();
|
|
45572
45662
|
if (!t) {
|
|
45573
|
-
|
|
45663
|
+
ee("Enter an OAuth client ID first.");
|
|
45574
45664
|
return;
|
|
45575
45665
|
}
|
|
45576
|
-
|
|
45666
|
+
E(!0), ee("");
|
|
45577
45667
|
try {
|
|
45578
|
-
await
|
|
45668
|
+
await R0(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"] });
|
|
45579
45669
|
} catch (e) {
|
|
45580
|
-
|
|
45670
|
+
ee(e instanceof Error ? e.message : "OAuth flow failed.");
|
|
45581
45671
|
} finally {
|
|
45582
|
-
|
|
45672
|
+
E(!1);
|
|
45583
45673
|
}
|
|
45584
45674
|
}
|
|
45585
|
-
let [
|
|
45586
|
-
async function
|
|
45587
|
-
|
|
45675
|
+
let [A, ne] = T(!1);
|
|
45676
|
+
async function re() {
|
|
45677
|
+
ne(!0);
|
|
45588
45678
|
try {
|
|
45589
|
-
await
|
|
45679
|
+
await z0(), 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"] });
|
|
45590
45680
|
} finally {
|
|
45591
|
-
|
|
45681
|
+
ne(!1);
|
|
45592
45682
|
}
|
|
45593
45683
|
}
|
|
45594
|
-
let
|
|
45684
|
+
let ie = xr ? chrome.identity.getRedirectURL() : null, ae = _r(() => ({
|
|
45595
45685
|
queryKey: ["slack-channels", n().slackToken],
|
|
45596
45686
|
queryFn: () => ek(n().slackToken),
|
|
45597
45687
|
enabled: !!n().slackToken,
|
|
45598
45688
|
retry: 0,
|
|
45599
45689
|
staleTime: 6e4
|
|
45600
|
-
})),
|
|
45601
|
-
let e =
|
|
45690
|
+
})), oe = k(() => Ax(n())), se = k(() => {
|
|
45691
|
+
let e = oe();
|
|
45602
45692
|
return e ? `Drafting with ${e} — ${Nx[e].fast} (fast) / ${Nx[e].best} (best)` : null;
|
|
45603
45693
|
});
|
|
45604
45694
|
return (() => {
|
|
45605
|
-
var e =
|
|
45695
|
+
var e = d2();
|
|
45606
45696
|
return P(e, j(Lj, {
|
|
45607
45697
|
title: "Workflow",
|
|
45608
45698
|
get children() {
|
|
45609
45699
|
return [(() => {
|
|
45610
|
-
var e =
|
|
45700
|
+
var e = B0();
|
|
45611
45701
|
return P(e, j(We, {
|
|
45612
45702
|
each: [{
|
|
45613
45703
|
id: "cloud",
|
|
@@ -45617,19 +45707,19 @@ function _2() {
|
|
|
45617
45707
|
label: "Local · clipboard"
|
|
45618
45708
|
}],
|
|
45619
45709
|
children: (e) => (() => {
|
|
45620
|
-
var t =
|
|
45710
|
+
var t = f2();
|
|
45621
45711
|
return t.$$click = () => void r({ workflowMode: e.id }), P(t, () => e.label), D(() => st(t, `flex-1 rounded-[5px] px-2 py-1 text-[11.5px] font-medium transition-colors ${(n().workflowMode ?? "cloud") === e.id ? "bg-surface-3 text-text" : "text-text-dim hover:text-text cursor-pointer"}`)), t;
|
|
45622
45712
|
})()
|
|
45623
45713
|
})), e;
|
|
45624
|
-
})(),
|
|
45714
|
+
})(), V0()];
|
|
45625
45715
|
}
|
|
45626
45716
|
}), null), P(e, j(Lj, {
|
|
45627
45717
|
title: "Capture",
|
|
45628
45718
|
get children() {
|
|
45629
45719
|
return [(() => {
|
|
45630
|
-
var e =
|
|
45720
|
+
var e = H0(), t = e.firstChild;
|
|
45631
45721
|
return t.addEventListener("change", (e) => void r({ captureShots: e.currentTarget.checked || void 0 })), D(() => t.checked = !!n().captureShots), e;
|
|
45632
|
-
})(),
|
|
45722
|
+
})(), U0()];
|
|
45633
45723
|
}
|
|
45634
45724
|
}), null), P(e, j(Lj, {
|
|
45635
45725
|
title: "Linear",
|
|
@@ -45640,42 +45730,42 @@ function _2() {
|
|
|
45640
45730
|
},
|
|
45641
45731
|
get fallback() {
|
|
45642
45732
|
return (() => {
|
|
45643
|
-
var e =
|
|
45733
|
+
var e = g2();
|
|
45644
45734
|
return P(e, j(Ij, {
|
|
45645
45735
|
label: "Personal API key",
|
|
45646
45736
|
hint: "Create one at linear.app → Settings → API — fastest path.",
|
|
45647
45737
|
get children() {
|
|
45648
45738
|
return [(() => {
|
|
45649
|
-
var e =
|
|
45739
|
+
var e = p2();
|
|
45650
45740
|
return P(e, j(Aj, {
|
|
45651
45741
|
type: "password",
|
|
45652
45742
|
placeholder: "lin_api_…",
|
|
45653
45743
|
get value() {
|
|
45654
|
-
return
|
|
45744
|
+
return h();
|
|
45655
45745
|
},
|
|
45656
|
-
onInput: (e) =>
|
|
45746
|
+
onInput: (e) => g(e.currentTarget.value),
|
|
45657
45747
|
"on:keydown": (e) => {
|
|
45658
|
-
e.key === "Enter" &&
|
|
45748
|
+
e.key === "Enter" && x();
|
|
45659
45749
|
}
|
|
45660
45750
|
}), null), P(e, j(Oj, {
|
|
45661
45751
|
variant: "primary",
|
|
45662
45752
|
get loading() {
|
|
45663
|
-
return
|
|
45753
|
+
return _();
|
|
45664
45754
|
},
|
|
45665
45755
|
get disabled() {
|
|
45666
|
-
return !
|
|
45756
|
+
return !h().trim();
|
|
45667
45757
|
},
|
|
45668
|
-
onClick: () => void
|
|
45758
|
+
onClick: () => void x(),
|
|
45669
45759
|
class: "shrink-0",
|
|
45670
45760
|
children: "Connect"
|
|
45671
45761
|
}), null), e;
|
|
45672
45762
|
})(), j(M, {
|
|
45673
45763
|
get when() {
|
|
45674
|
-
return
|
|
45764
|
+
return y();
|
|
45675
45765
|
},
|
|
45676
45766
|
get children() {
|
|
45677
45767
|
return j(Vj, { get message() {
|
|
45678
|
-
return
|
|
45768
|
+
return y();
|
|
45679
45769
|
} });
|
|
45680
45770
|
}
|
|
45681
45771
|
})];
|
|
@@ -45683,41 +45773,41 @@ function _2() {
|
|
|
45683
45773
|
}), null), P(e, j(M, {
|
|
45684
45774
|
when: xr,
|
|
45685
45775
|
get children() {
|
|
45686
|
-
return [
|
|
45776
|
+
return [m2(), j(Ij, {
|
|
45687
45777
|
label: "OAuth client ID",
|
|
45688
45778
|
get children() {
|
|
45689
45779
|
return [
|
|
45690
45780
|
(() => {
|
|
45691
|
-
var e =
|
|
45781
|
+
var e = p2();
|
|
45692
45782
|
return P(e, j(Aj, {
|
|
45693
45783
|
placeholder: "your-client-id",
|
|
45694
45784
|
get value() {
|
|
45695
|
-
return
|
|
45785
|
+
return S() || n().linearOauthClientId || "";
|
|
45696
45786
|
},
|
|
45697
|
-
onInput: (e) =>
|
|
45787
|
+
onInput: (e) => C(e.currentTarget.value)
|
|
45698
45788
|
}), null), P(e, j(Oj, {
|
|
45699
45789
|
variant: "ghost",
|
|
45700
45790
|
get loading() {
|
|
45701
|
-
return
|
|
45791
|
+
return w();
|
|
45702
45792
|
},
|
|
45703
|
-
onClick: () => void
|
|
45793
|
+
onClick: () => void te(),
|
|
45704
45794
|
class: "shrink-0 whitespace-nowrap",
|
|
45705
45795
|
children: "Connect with OAuth"
|
|
45706
45796
|
}), null), e;
|
|
45707
45797
|
})(),
|
|
45708
45798
|
j(M, {
|
|
45709
45799
|
get when() {
|
|
45710
|
-
return
|
|
45800
|
+
return O();
|
|
45711
45801
|
},
|
|
45712
45802
|
get children() {
|
|
45713
45803
|
return j(Vj, { get message() {
|
|
45714
|
-
return
|
|
45804
|
+
return O();
|
|
45715
45805
|
} });
|
|
45716
45806
|
}
|
|
45717
45807
|
}),
|
|
45718
45808
|
(() => {
|
|
45719
|
-
var e =
|
|
45720
|
-
return P(t,
|
|
45809
|
+
var e = h2(), t = e.firstChild.nextSibling.nextSibling;
|
|
45810
|
+
return P(t, ie), e;
|
|
45721
45811
|
})()
|
|
45722
45812
|
];
|
|
45723
45813
|
}
|
|
@@ -45727,13 +45817,13 @@ function _2() {
|
|
|
45727
45817
|
})();
|
|
45728
45818
|
},
|
|
45729
45819
|
get children() {
|
|
45730
|
-
var e =
|
|
45820
|
+
var e = G0(), t = e.firstChild;
|
|
45731
45821
|
return P(t, j(M, {
|
|
45732
45822
|
get when() {
|
|
45733
45823
|
return !a.isLoading;
|
|
45734
45824
|
},
|
|
45735
45825
|
get fallback() {
|
|
45736
|
-
return
|
|
45826
|
+
return _2();
|
|
45737
45827
|
},
|
|
45738
45828
|
get children() {
|
|
45739
45829
|
return j(M, {
|
|
@@ -45746,7 +45836,7 @@ function _2() {
|
|
|
45746
45836
|
return a.isError;
|
|
45747
45837
|
},
|
|
45748
45838
|
get fallback() {
|
|
45749
|
-
return
|
|
45839
|
+
return _2();
|
|
45750
45840
|
},
|
|
45751
45841
|
get children() {
|
|
45752
45842
|
return j(Vj, { message: "Key rejected — reconnect" });
|
|
@@ -45754,7 +45844,7 @@ function _2() {
|
|
|
45754
45844
|
});
|
|
45755
45845
|
},
|
|
45756
45846
|
get children() {
|
|
45757
|
-
var e =
|
|
45847
|
+
var e = W0(), t = e.firstChild.nextSibling, n = t.nextSibling.nextSibling;
|
|
45758
45848
|
return P(t, () => a.data.name), P(n, () => a.data.email), e;
|
|
45759
45849
|
}
|
|
45760
45850
|
});
|
|
@@ -45762,9 +45852,9 @@ function _2() {
|
|
|
45762
45852
|
})), P(e, j(Oj, {
|
|
45763
45853
|
variant: "ghost",
|
|
45764
45854
|
get loading() {
|
|
45765
|
-
return
|
|
45855
|
+
return A();
|
|
45766
45856
|
},
|
|
45767
|
-
onClick: () => void
|
|
45857
|
+
onClick: () => void re(),
|
|
45768
45858
|
class: "ml-2 shrink-0",
|
|
45769
45859
|
children: "Disconnect"
|
|
45770
45860
|
}), null), e;
|
|
@@ -45795,7 +45885,7 @@ function _2() {
|
|
|
45795
45885
|
return o.isLoading;
|
|
45796
45886
|
},
|
|
45797
45887
|
get children() {
|
|
45798
|
-
return [
|
|
45888
|
+
return [K0(), j(M, {
|
|
45799
45889
|
get when() {
|
|
45800
45890
|
return o.data;
|
|
45801
45891
|
},
|
|
@@ -45805,7 +45895,7 @@ function _2() {
|
|
|
45805
45895
|
return o.data;
|
|
45806
45896
|
},
|
|
45807
45897
|
children: (e) => (() => {
|
|
45808
|
-
var t =
|
|
45898
|
+
var t = v2(), r = t.firstChild, i = r.nextSibling;
|
|
45809
45899
|
return i.nextSibling, P(t, () => e.name, r), P(t, () => e.key, i), D(() => t.selected = e.id === n().defaultTeamId), D(() => t.value = e.id), t;
|
|
45810
45900
|
})()
|
|
45811
45901
|
});
|
|
@@ -45829,14 +45919,14 @@ function _2() {
|
|
|
45829
45919
|
},
|
|
45830
45920
|
get children() {
|
|
45831
45921
|
return [(() => {
|
|
45832
|
-
var e =
|
|
45922
|
+
var e = q0();
|
|
45833
45923
|
return D(() => e.selected = !n().defaultProjectId), e;
|
|
45834
45924
|
})(), j(We, {
|
|
45835
45925
|
get each() {
|
|
45836
45926
|
return s.data ?? [];
|
|
45837
45927
|
},
|
|
45838
45928
|
children: (e) => (() => {
|
|
45839
|
-
var t =
|
|
45929
|
+
var t = y2();
|
|
45840
45930
|
return P(t, () => e.name), D(() => t.selected = e.id === n().defaultProjectId), D(() => t.value = e.id), t;
|
|
45841
45931
|
})()
|
|
45842
45932
|
})];
|
|
@@ -45848,15 +45938,15 @@ function _2() {
|
|
|
45848
45938
|
label: "Default labels",
|
|
45849
45939
|
hint: "Applied to every issue created from the panel.",
|
|
45850
45940
|
get children() {
|
|
45851
|
-
var e =
|
|
45941
|
+
var e = J0();
|
|
45852
45942
|
return P(e, j(We, {
|
|
45853
45943
|
get each() {
|
|
45854
|
-
return
|
|
45944
|
+
return p.data ?? [];
|
|
45855
45945
|
},
|
|
45856
45946
|
children: (e) => {
|
|
45857
45947
|
let t = () => (n().defaultLabelIds ?? []).includes(e.id);
|
|
45858
45948
|
return (() => {
|
|
45859
|
-
var i =
|
|
45949
|
+
var i = b2(), a = i.firstChild;
|
|
45860
45950
|
return i.$$click = () => {
|
|
45861
45951
|
let i = n().defaultLabelIds ?? [];
|
|
45862
45952
|
r({ defaultLabelIds: t() ? i.filter((t) => t !== e.id) : [...i, e.id] });
|
|
@@ -45873,7 +45963,7 @@ function _2() {
|
|
|
45873
45963
|
}
|
|
45874
45964
|
}),
|
|
45875
45965
|
(() => {
|
|
45876
|
-
var e =
|
|
45966
|
+
var e = Y0(), t = e.firstChild;
|
|
45877
45967
|
return t.addEventListener("change", (e) => void r({ shareLinearKey: e.currentTarget.checked })), D(() => t.checked = !!n().shareLinearKey), e;
|
|
45878
45968
|
})(),
|
|
45879
45969
|
j(Ij, {
|
|
@@ -45895,7 +45985,7 @@ function _2() {
|
|
|
45895
45985
|
get children() {
|
|
45896
45986
|
return j(M, {
|
|
45897
45987
|
get when() {
|
|
45898
|
-
return $e(() => !!
|
|
45988
|
+
return $e(() => !!m.data)() && m.data.length === 0;
|
|
45899
45989
|
},
|
|
45900
45990
|
get fallback() {
|
|
45901
45991
|
return j(Mj, {
|
|
@@ -45912,7 +46002,7 @@ function _2() {
|
|
|
45912
46002
|
});
|
|
45913
46003
|
return;
|
|
45914
46004
|
}
|
|
45915
|
-
let n =
|
|
46005
|
+
let n = m.data?.find((e) => e.id === t);
|
|
45916
46006
|
n && r({
|
|
45917
46007
|
cursorAgentId: n.id,
|
|
45918
46008
|
cursorAgentName: n.displayName,
|
|
@@ -45920,20 +46010,20 @@ function _2() {
|
|
|
45920
46010
|
});
|
|
45921
46011
|
},
|
|
45922
46012
|
get disabled() {
|
|
45923
|
-
return
|
|
46013
|
+
return m.isLoading;
|
|
45924
46014
|
},
|
|
45925
46015
|
get children() {
|
|
45926
|
-
return [
|
|
46016
|
+
return [x2(), j(M, {
|
|
45927
46017
|
get when() {
|
|
45928
|
-
return
|
|
46018
|
+
return m.data;
|
|
45929
46019
|
},
|
|
45930
46020
|
get children() {
|
|
45931
46021
|
return j(We, {
|
|
45932
46022
|
get each() {
|
|
45933
|
-
return
|
|
46023
|
+
return m.data;
|
|
45934
46024
|
},
|
|
45935
46025
|
children: (e) => (() => {
|
|
45936
|
-
var t =
|
|
46026
|
+
var t = y2();
|
|
45937
46027
|
return P(t, () => e.displayName), D(() => t.selected = e.id === n().cursorAgentId), D(() => t.value = e.id), t;
|
|
45938
46028
|
})()
|
|
45939
46029
|
});
|
|
@@ -45943,7 +46033,7 @@ function _2() {
|
|
|
45943
46033
|
});
|
|
45944
46034
|
},
|
|
45945
46035
|
get children() {
|
|
45946
|
-
return
|
|
46036
|
+
return X0();
|
|
45947
46037
|
}
|
|
45948
46038
|
});
|
|
45949
46039
|
}
|
|
@@ -45991,7 +46081,7 @@ function _2() {
|
|
|
45991
46081
|
onBlur: (e) => {
|
|
45992
46082
|
r({ issueTemplate: e.currentTarget.value.trim() || void 0 });
|
|
45993
46083
|
}
|
|
45994
|
-
}),
|
|
46084
|
+
}), Z0()];
|
|
45995
46085
|
}
|
|
45996
46086
|
}),
|
|
45997
46087
|
j(Ij, {
|
|
@@ -46048,7 +46138,7 @@ function _2() {
|
|
|
46048
46138
|
label: "Test account",
|
|
46049
46139
|
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.",
|
|
46050
46140
|
get children() {
|
|
46051
|
-
var e =
|
|
46141
|
+
var e = Q0();
|
|
46052
46142
|
return P(e, j(Aj, {
|
|
46053
46143
|
placeholder: "Username or email (e.g. demo@yourapp.com)",
|
|
46054
46144
|
get value() {
|
|
@@ -46080,7 +46170,7 @@ function _2() {
|
|
|
46080
46170
|
title: "Panel",
|
|
46081
46171
|
get children() {
|
|
46082
46172
|
return [(() => {
|
|
46083
|
-
var e =
|
|
46173
|
+
var e = $0(), t = e.firstChild.nextSibling;
|
|
46084
46174
|
return P(t, j(We, {
|
|
46085
46175
|
each: [{
|
|
46086
46176
|
id: "overlay",
|
|
@@ -46090,7 +46180,7 @@ function _2() {
|
|
|
46090
46180
|
label: "Beside page"
|
|
46091
46181
|
}],
|
|
46092
46182
|
children: (e) => (() => {
|
|
46093
|
-
var t =
|
|
46183
|
+
var t = f2();
|
|
46094
46184
|
return t.$$click = () => void r({
|
|
46095
46185
|
panelMode: e.id,
|
|
46096
46186
|
panelPos: void 0
|
|
@@ -46098,11 +46188,11 @@ function _2() {
|
|
|
46098
46188
|
})()
|
|
46099
46189
|
})), e;
|
|
46100
46190
|
})(), (() => {
|
|
46101
|
-
var e =
|
|
46191
|
+
var e = e2(), t = e.firstChild.nextSibling;
|
|
46102
46192
|
return P(t, j(We, {
|
|
46103
46193
|
each: ["left", "right"],
|
|
46104
46194
|
children: (e) => (() => {
|
|
46105
|
-
var t =
|
|
46195
|
+
var t = f2();
|
|
46106
46196
|
return t.$$click = () => void r({ panelSide: e }), P(t, e === "left" ? "Left" : "Right"), D(() => st(t, `flex-1 rounded-[5px] px-2 py-0.5 text-[11.5px] font-medium transition-colors ${(n().panelSide ?? "right") === e ? "bg-surface-3 text-text" : "text-text-dim hover:text-text cursor-pointer"}`)), t;
|
|
46107
46197
|
})()
|
|
46108
46198
|
})), e;
|
|
@@ -46129,6 +46219,47 @@ function _2() {
|
|
|
46129
46219
|
}
|
|
46130
46220
|
});
|
|
46131
46221
|
}
|
|
46222
|
+
}), null), P(e, j(Lj, {
|
|
46223
|
+
title: "Project config (.lineargrab.json)",
|
|
46224
|
+
get children() {
|
|
46225
|
+
return [t2(), (() => {
|
|
46226
|
+
var e = r2();
|
|
46227
|
+
return P(e, j(M, {
|
|
46228
|
+
get when() {
|
|
46229
|
+
return c.data?.projectConfig;
|
|
46230
|
+
},
|
|
46231
|
+
get fallback() {
|
|
46232
|
+
return j(Rj, {
|
|
46233
|
+
title: "No .lineargrab.json found at the bridge's cwd (or bridge offline / outdated)",
|
|
46234
|
+
children: "not detected"
|
|
46235
|
+
});
|
|
46236
|
+
},
|
|
46237
|
+
get children() {
|
|
46238
|
+
return [j(Rj, {
|
|
46239
|
+
class: "text-success",
|
|
46240
|
+
children: "detected"
|
|
46241
|
+
}), j(Oj, {
|
|
46242
|
+
variant: "ghost",
|
|
46243
|
+
class: "h-7 px-2 text-[11px]",
|
|
46244
|
+
title: "Overwrite your local settings with every value from the repo's config",
|
|
46245
|
+
onClick: f,
|
|
46246
|
+
children: "Apply all"
|
|
46247
|
+
})];
|
|
46248
|
+
}
|
|
46249
|
+
}), null), P(e, j(Oj, {
|
|
46250
|
+
variant: "ghost",
|
|
46251
|
+
class: "h-7 px-2 text-[11px]",
|
|
46252
|
+
get title() {
|
|
46253
|
+
return l() ? "Copied!" : "Copy your current shareable settings as .lineargrab.json — commit it to the repo root";
|
|
46254
|
+
},
|
|
46255
|
+
onClick: () => void d(),
|
|
46256
|
+
get children() {
|
|
46257
|
+
var e = n2();
|
|
46258
|
+
return P(e, () => l() ? "Copied ✓" : "Copy config"), e;
|
|
46259
|
+
}
|
|
46260
|
+
}), null), e;
|
|
46261
|
+
})()];
|
|
46262
|
+
}
|
|
46132
46263
|
}), null), P(e, j(Lj, {
|
|
46133
46264
|
title: "Asset uploads",
|
|
46134
46265
|
get children() {
|
|
@@ -46193,7 +46324,7 @@ function _2() {
|
|
|
46193
46324
|
get children() {
|
|
46194
46325
|
return j(M, {
|
|
46195
46326
|
get when() {
|
|
46196
|
-
return !
|
|
46327
|
+
return !ae.isError;
|
|
46197
46328
|
},
|
|
46198
46329
|
get fallback() {
|
|
46199
46330
|
return j(Vj, { message: "Couldn't list channels — check the token scopes (channels:read)." });
|
|
@@ -46204,22 +46335,22 @@ function _2() {
|
|
|
46204
46335
|
return n().slackChannelId ?? "";
|
|
46205
46336
|
},
|
|
46206
46337
|
get disabled() {
|
|
46207
|
-
return
|
|
46338
|
+
return ae.isLoading;
|
|
46208
46339
|
},
|
|
46209
46340
|
onChange: (e) => {
|
|
46210
|
-
let t = e.currentTarget.value, n =
|
|
46341
|
+
let t = e.currentTarget.value, n = ae.data?.find((e) => e.id === t);
|
|
46211
46342
|
r({
|
|
46212
46343
|
slackChannelId: t || void 0,
|
|
46213
46344
|
slackChannelName: n?.name
|
|
46214
46345
|
});
|
|
46215
46346
|
},
|
|
46216
46347
|
get children() {
|
|
46217
|
-
return [
|
|
46348
|
+
return [i2(), j(We, {
|
|
46218
46349
|
get each() {
|
|
46219
|
-
return
|
|
46350
|
+
return ae.data ?? [];
|
|
46220
46351
|
},
|
|
46221
46352
|
children: (e) => (() => {
|
|
46222
|
-
var t =
|
|
46353
|
+
var t = S2();
|
|
46223
46354
|
return t.firstChild, P(t, () => e.name, null), D(() => t.selected = e.id === n().slackChannelId), D(() => t.value = e.id), t;
|
|
46224
46355
|
})()
|
|
46225
46356
|
})];
|
|
@@ -46270,10 +46401,10 @@ function _2() {
|
|
|
46270
46401
|
}
|
|
46271
46402
|
}),
|
|
46272
46403
|
(() => {
|
|
46273
|
-
var e =
|
|
46404
|
+
var e = a2(), t = e.firstChild;
|
|
46274
46405
|
return t.addEventListener("change", (e) => void r({ notifyOnCreate: e.currentTarget.checked ? void 0 : !1 })), D(() => t.checked = n().notifyOnCreate !== !1), e;
|
|
46275
46406
|
})(),
|
|
46276
|
-
|
|
46407
|
+
o2()
|
|
46277
46408
|
];
|
|
46278
46409
|
}
|
|
46279
46410
|
}), null), P(e, j(Lj, {
|
|
@@ -46311,7 +46442,7 @@ function _2() {
|
|
|
46311
46442
|
}
|
|
46312
46443
|
}),
|
|
46313
46444
|
(() => {
|
|
46314
|
-
var e =
|
|
46445
|
+
var e = s2(), t = e.firstChild.nextSibling.firstChild, i = t.nextSibling, a = i.nextSibling;
|
|
46315
46446
|
return t.$$click = () => void r({ preferredProvider: void 0 }), i.$$click = () => void r({ preferredProvider: "openai" }), a.$$click = () => void r({ preferredProvider: "anthropic" }), D((e) => {
|
|
46316
46447
|
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;
|
|
46317
46448
|
return r !== e.e && st(t, e.e = r), o !== e.t && st(i, e.t = o), s !== e.a && (i.disabled = e.a = s), c !== e.o && st(a, e.o = c), l !== e.i && (a.disabled = e.i = l), e;
|
|
@@ -46324,17 +46455,17 @@ function _2() {
|
|
|
46324
46455
|
}), e;
|
|
46325
46456
|
})(),
|
|
46326
46457
|
(() => {
|
|
46327
|
-
var e =
|
|
46458
|
+
var e = l2();
|
|
46328
46459
|
return P(e, j(M, {
|
|
46329
46460
|
get when() {
|
|
46330
|
-
return
|
|
46461
|
+
return se();
|
|
46331
46462
|
},
|
|
46332
46463
|
get fallback() {
|
|
46333
|
-
return
|
|
46464
|
+
return C2();
|
|
46334
46465
|
},
|
|
46335
46466
|
get children() {
|
|
46336
|
-
var e =
|
|
46337
|
-
return P(e,
|
|
46467
|
+
var e = c2();
|
|
46468
|
+
return P(e, se), e;
|
|
46338
46469
|
}
|
|
46339
46470
|
})), e;
|
|
46340
46471
|
})()
|
|
@@ -46343,7 +46474,7 @@ function _2() {
|
|
|
46343
46474
|
}), null), P(e, j(Lj, {
|
|
46344
46475
|
title: "How it works",
|
|
46345
46476
|
get children() {
|
|
46346
|
-
return
|
|
46477
|
+
return u2();
|
|
46347
46478
|
}
|
|
46348
46479
|
}), null), e;
|
|
46349
46480
|
})();
|
|
@@ -46351,38 +46482,38 @@ function _2() {
|
|
|
46351
46482
|
rt(["click"]);
|
|
46352
46483
|
//#endregion
|
|
46353
46484
|
//#region src/lib/idbCache.ts
|
|
46354
|
-
var
|
|
46485
|
+
var T2 = "linear-grab", E2 = "queries", D2 = [
|
|
46355
46486
|
"my-issues",
|
|
46356
46487
|
"issue",
|
|
46357
46488
|
"sessions",
|
|
46358
46489
|
"teams",
|
|
46359
46490
|
"agents"
|
|
46360
46491
|
];
|
|
46361
|
-
function
|
|
46492
|
+
function O2() {
|
|
46362
46493
|
return new Promise((e) => {
|
|
46363
46494
|
try {
|
|
46364
|
-
let t = indexedDB.open(
|
|
46365
|
-
t.onupgradeneeded = () => t.result.createObjectStore(
|
|
46495
|
+
let t = indexedDB.open(T2, 1);
|
|
46496
|
+
t.onupgradeneeded = () => t.result.createObjectStore(E2), t.onsuccess = () => e(t.result), t.onerror = () => e(null);
|
|
46366
46497
|
} catch {
|
|
46367
46498
|
e(null);
|
|
46368
46499
|
}
|
|
46369
46500
|
});
|
|
46370
46501
|
}
|
|
46371
|
-
function
|
|
46372
|
-
return typeof e[0] == "string" &&
|
|
46502
|
+
function k2(e) {
|
|
46503
|
+
return typeof e[0] == "string" && D2.includes(e[0]);
|
|
46373
46504
|
}
|
|
46374
|
-
async function
|
|
46375
|
-
let t = await
|
|
46505
|
+
async function A2(e) {
|
|
46506
|
+
let t = await O2();
|
|
46376
46507
|
if (!t) return () => {};
|
|
46377
46508
|
await new Promise((n) => {
|
|
46378
46509
|
try {
|
|
46379
|
-
let r = t.transaction(
|
|
46510
|
+
let r = t.transaction(E2, "readonly").objectStore(E2).openCursor();
|
|
46380
46511
|
r.onsuccess = () => {
|
|
46381
46512
|
let t = r.result;
|
|
46382
46513
|
if (!t) return n();
|
|
46383
46514
|
try {
|
|
46384
46515
|
let { queryKey: n, data: r } = t.value;
|
|
46385
|
-
|
|
46516
|
+
k2(n) && e.getQueryData(n) === void 0 && e.setQueryData(n, r, { updatedAt: 0 });
|
|
46386
46517
|
} catch {}
|
|
46387
46518
|
t.continue();
|
|
46388
46519
|
}, r.onerror = () => n();
|
|
@@ -46393,14 +46524,14 @@ async function C2(e) {
|
|
|
46393
46524
|
let n = /* @__PURE__ */ new Map(), r = e.getQueryCache().subscribe((r) => {
|
|
46394
46525
|
if (r.type !== "updated" || r.action.type !== "success") return;
|
|
46395
46526
|
let { queryKey: i, queryHash: a } = r.query;
|
|
46396
|
-
if (!
|
|
46527
|
+
if (!k2(i)) return;
|
|
46397
46528
|
let o = n.get(a);
|
|
46398
46529
|
o && clearTimeout(o), n.set(a, setTimeout(() => {
|
|
46399
46530
|
n.delete(a);
|
|
46400
46531
|
try {
|
|
46401
46532
|
let n = e.getQueryData(i);
|
|
46402
46533
|
if (n === void 0) return;
|
|
46403
|
-
t.transaction(
|
|
46534
|
+
t.transaction(E2, "readwrite").objectStore(E2).put({
|
|
46404
46535
|
queryKey: i,
|
|
46405
46536
|
data: n
|
|
46406
46537
|
}, a);
|
|
@@ -46416,7 +46547,7 @@ async function C2(e) {
|
|
|
46416
46547
|
//#endregion
|
|
46417
46548
|
//#region src/panel/App.tsx
|
|
46418
46549
|
Br();
|
|
46419
|
-
var
|
|
46550
|
+
var j2 = /*#__PURE__*/ N("<svg viewBox=\"0 0 100 100\"fill=currentColor aria-hidden><path d=\"M1.22541 61.5228c-.2225-.9485.90748-1.5459 1.59638-.857L39.3342 97.1782c.6889.6889.0915 1.8189-.857 1.5964C20.0515 94.4522 5.54779 79.9485 1.22541 61.5228ZM.00189135 46.8891c-.01764375.2833.08887215.5599.28957165.7606L52.3503 99.7085c.2007.2007.4773.3075.7606.2896 2.3692-.1476 4.6938-.46 6.9624-.9259.7645-.157 1.0301-1.0963.4782-1.6481L2.57595 39.4485c-.55186-.5519-1.49117-.2863-1.648174.4782-.465915 2.2686-.77832 4.5932-.92588465 6.9624ZM4.21093 29.7054c-.16649.3738-.08169.8106.20765 1.1l64.77602 64.776c.2894.2894.7262.3742 1.1.2077 1.7861-.7956 3.5171-1.6927 5.1855-2.684.5521-.328.6373-1.0867.1832-1.5407L8.43566 24.3367c-.45409-.4541-1.21271-.3689-1.54074.1832-.99132 1.6684-1.88843 3.3994-2.68399 5.1855ZM12.6587 18.074c-.3701-.3701-.393-.9637-.0443-1.3541C21.7795 6.45931 35.1114 0 49.9519 0 77.5927 0 100 22.4073 100 50.0481c0 14.8405-6.4593 28.1724-16.7199 37.3375-.3903.3487-.984.3258-1.3541-.0443L12.6587 18.074Z\">"), M2 = /*#__PURE__*/ N("<button><svg width=12 height=12 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 aria-hidden><rect x=1.5 y=2.5 width=13 height=11 rx=1.5></rect><path d=\"M10 2.5v11\">"), N2 = /*#__PURE__*/ N("<button aria-label=\"Minimize to launcher\"title=\"Minimize to launcher\"class=\"text-text-dim hover:text-text hover:bg-surface-3 grid size-6 shrink-0 cursor-pointer place-items-center rounded-md text-[15px] leading-none transition-colors\">–"), P2 = /*#__PURE__*/ N("<div class=\"bg-bg text-text flex h-full flex-col\"><header><span class=\"text-accent mr-0.5 inline-flex shrink-0\"title=\"Linear Grab\"></span><div class=\"no-scrollbar flex min-w-0 flex-1 items-center gap-1 overflow-x-auto\"></div></header><main class=\"min-h-0 flex-1\"><div class=h-full></div><div class=h-full></div><div class=h-full></div><div class=h-full></div><div class=h-full></div><div class=h-full></div><div class=h-full></div><div class=h-full>"), F2 = /*#__PURE__*/ N("<button>"), I2 = [
|
|
46420
46551
|
{
|
|
46421
46552
|
id: "draft",
|
|
46422
46553
|
label: "Draft"
|
|
@@ -46449,35 +46580,35 @@ var w2 = /*#__PURE__*/ N("<svg viewBox=\"0 0 100 100\"fill=currentColor aria-hid
|
|
|
46449
46580
|
id: "settings",
|
|
46450
46581
|
label: "Settings"
|
|
46451
46582
|
}
|
|
46452
|
-
],
|
|
46453
|
-
function
|
|
46454
|
-
if (
|
|
46455
|
-
|
|
46583
|
+
], L2 = /* @__PURE__ */ new Set();
|
|
46584
|
+
function R2(e, t, n) {
|
|
46585
|
+
if (L2.has(e) || typeof Notification > "u") return;
|
|
46586
|
+
L2.add(e);
|
|
46456
46587
|
let r = () => new Notification(t, { body: n });
|
|
46457
46588
|
Notification.permission === "granted" ? r() : Notification.permission === "default" && Notification.requestPermission().then((e) => e === "granted" && r());
|
|
46458
46589
|
}
|
|
46459
|
-
function
|
|
46590
|
+
function z2() {
|
|
46460
46591
|
setInterval(() => {
|
|
46461
46592
|
NO().then((e) => {
|
|
46462
46593
|
for (let t of e) {
|
|
46463
46594
|
if (t.status !== "running") continue;
|
|
46464
46595
|
let e = t.lastEventAt ?? t.startedAt;
|
|
46465
|
-
Date.now() - e > 10 * 6e4 &&
|
|
46596
|
+
Date.now() - e > 10 * 6e4 && R2(`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.`);
|
|
46466
46597
|
}
|
|
46467
46598
|
}).catch(() => {}), gO().then((e) => {
|
|
46468
|
-
for (let t of e) /awaitingInput|elicit/i.test(t.status) &&
|
|
46599
|
+
for (let t of e) /awaitingInput|elicit/i.test(t.status) && R2(`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.`);
|
|
46469
46600
|
}).catch(() => {});
|
|
46470
46601
|
}, 6e4);
|
|
46471
46602
|
}
|
|
46472
|
-
|
|
46473
|
-
var
|
|
46603
|
+
z2();
|
|
46604
|
+
var B2 = new gr({ defaultOptions: { queries: {
|
|
46474
46605
|
retry: 1,
|
|
46475
46606
|
refetchOnWindowFocus: !1,
|
|
46476
46607
|
staleTime: 5e3
|
|
46477
46608
|
} } });
|
|
46478
|
-
function
|
|
46609
|
+
function V2(e) {
|
|
46479
46610
|
return (() => {
|
|
46480
|
-
var t =
|
|
46611
|
+
var t = j2();
|
|
46481
46612
|
return D((n) => {
|
|
46482
46613
|
var r = e.size ?? 14, i = e.size ?? 14;
|
|
46483
46614
|
return r !== n.e && it(t, "width", n.e = r), i !== n.t && it(t, "height", n.t = i), n;
|
|
@@ -46487,32 +46618,36 @@ function P2(e) {
|
|
|
46487
46618
|
}), t;
|
|
46488
46619
|
})();
|
|
46489
46620
|
}
|
|
46490
|
-
function
|
|
46621
|
+
function H2(e) {
|
|
46491
46622
|
let [t, n] = T("draft"), r = () => {
|
|
46492
|
-
|
|
46623
|
+
B2.invalidateQueries({ queryKey: ["grab"] }), sj() === "capture" && n("capture"), e.onGrab?.();
|
|
46493
46624
|
};
|
|
46494
46625
|
return O(() => {
|
|
46495
46626
|
let e = tj();
|
|
46496
46627
|
e && n(e);
|
|
46497
46628
|
}), ie(() => {
|
|
46498
|
-
let e =
|
|
46499
|
-
JO().then(f$), VO()
|
|
46629
|
+
let e = A2(B2), t = JZ(r), n = () => {
|
|
46630
|
+
JO().then(f$), VO(), MO().then(async (e) => {
|
|
46631
|
+
if (!e.projectConfig) return;
|
|
46632
|
+
let t = I0(await Tr(), e.projectConfig);
|
|
46633
|
+
t && await Er(t);
|
|
46634
|
+
}).catch(() => {});
|
|
46500
46635
|
};
|
|
46501
46636
|
n();
|
|
46502
46637
|
let i = Mr((e) => {
|
|
46503
|
-
e === "settings" && (
|
|
46638
|
+
e === "settings" && (B2.invalidateQueries({ queryKey: ["settings"] }), n()), e === "grab" && r();
|
|
46504
46639
|
});
|
|
46505
46640
|
ae(() => {
|
|
46506
46641
|
t(), i(), e.then((e) => e());
|
|
46507
46642
|
});
|
|
46508
46643
|
}), j(cr, {
|
|
46509
|
-
client:
|
|
46644
|
+
client: B2,
|
|
46510
46645
|
get children() {
|
|
46511
|
-
var r =
|
|
46512
|
-
return i.$$pointerdown = (t) => e.onHeaderPointerDown?.(t), P(a, j(
|
|
46513
|
-
each:
|
|
46646
|
+
var r = P2(), 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;
|
|
46647
|
+
return i.$$pointerdown = (t) => e.onHeaderPointerDown?.(t), P(a, j(V2, { size: 14 })), P(o, j(We, {
|
|
46648
|
+
each: I2,
|
|
46514
46649
|
children: (e) => (() => {
|
|
46515
|
-
var r =
|
|
46650
|
+
var r = F2();
|
|
46516
46651
|
return r.$$click = () => n(e.id), P(r, () => e.label), D(() => st(r, `h-6 shrink-0 rounded-md px-2 text-[12px] font-medium whitespace-nowrap transition-colors ${t() === e.id ? "bg-surface-3 text-text" : "text-text-dim hover:text-text cursor-pointer"}`)), r;
|
|
46517
46652
|
})()
|
|
46518
46653
|
})), P(i, j(M, {
|
|
@@ -46520,7 +46655,7 @@ function F2(e) {
|
|
|
46520
46655
|
return e.onTogglePin;
|
|
46521
46656
|
},
|
|
46522
46657
|
get children() {
|
|
46523
|
-
var t =
|
|
46658
|
+
var t = M2();
|
|
46524
46659
|
return t.$$click = () => e.onTogglePin?.(), D((n) => {
|
|
46525
46660
|
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"}`;
|
|
46526
46661
|
return r !== n.e && it(t, "aria-label", n.e = r), i !== n.t && it(t, "title", n.t = i), a !== n.a && st(t, n.a = a), n;
|
|
@@ -46535,10 +46670,10 @@ function F2(e) {
|
|
|
46535
46670
|
return e.onClose;
|
|
46536
46671
|
},
|
|
46537
46672
|
get children() {
|
|
46538
|
-
var t =
|
|
46673
|
+
var t = N2();
|
|
46539
46674
|
return t.$$click = () => e.onClose?.(), t;
|
|
46540
46675
|
}
|
|
46541
|
-
}), null), P(s, j(CM, { onCreated: () => n("activity") })), P(c, j(vQ, {})), P(l, j(
|
|
46676
|
+
}), null), P(s, j(CM, { onCreated: () => n("activity") })), P(c, j(vQ, {})), P(l, j(u1, {})), P(u, j(N1, {})), P(d, j(D1, {})), P(f, j(v0, {})), P(p, j(N0, { onOpenIssue: () => n("activity") })), P(m, j(w2, {})), D((n) => {
|
|
46542
46677
|
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", h = t() !== "activity", g = t() !== "running", _ = t() !== "cloud", v = t() !== "local", y = t() !== "prs", b = t() !== "settings";
|
|
46543
46678
|
return r !== n.e && st(i, n.e = r), a !== n.t && s.classList.toggle("hidden", n.t = a), o !== n.a && c.classList.toggle("hidden", n.a = o), h !== n.o && l.classList.toggle("hidden", n.o = h), g !== n.i && u.classList.toggle("hidden", n.i = g), _ !== n.n && d.classList.toggle("hidden", n.n = _), v !== n.s && f.classList.toggle("hidden", n.s = v), y !== n.h && p.classList.toggle("hidden", n.h = y), b !== n.r && m.classList.toggle("hidden", n.r = b), n;
|
|
46544
46679
|
}, {
|
|
@@ -46558,12 +46693,12 @@ function F2(e) {
|
|
|
46558
46693
|
rt(["pointerdown", "click"]);
|
|
46559
46694
|
//#endregion
|
|
46560
46695
|
//#region src/styles/app.css?inline
|
|
46561
|
-
var I2 = "/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */\n@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-contain-size:initial;--tw-contain-layout:initial;--tw-contain-paint:initial;--tw-contain-style:initial}}}@layer theme{:root,:host{--font-sans:\"Inter\", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-serif:ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif;--font-mono:ui-monospace, \"SF Mono\", Menlo, monospace;--color-red-500:oklch(63.7% .237 25.331);--color-white:#fff;--spacing:.25rem;--font-weight-thin:100;--font-weight-extralight:200;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--font-weight-black:900;--tracking-wide:.025em;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--radius-xl:.75rem;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-bg:#0b0c0e;--color-surface:#141517;--color-surface-2:#1c1d21;--color-surface-3:#24262b;--color-border:#26282d;--color-border-strong:#34363d;--color-text:#e8e9eb;--color-text-dim:#8b8e98;--color-text-faint:#5c5f6a;--color-accent:#5e6ad2;--color-accent-hover:#6e79e0;--color-accent-soft:#5e6ad226;--color-success:#4cb782;--color-warn:#f2c94c;--color-danger:#eb5757;--color-danger-soft:#eb575726}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.visible\\!{visibility:visible!important}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-y-0{inset-block:0}.top-0{top:0}.top-0\\.5{top:calc(var(--spacing) * .5)}.top-1{top:var(--spacing)}.top-1\\/2{top:50%}.top-\\[2px\\]{top:2px}.top-full{top:100%}.right-0{right:0}.right-0\\.5{right:calc(var(--spacing) * .5)}.right-4{right:calc(var(--spacing) * 4)}.right-full{right:100%}.bottom-0{bottom:0}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-\\[2px\\]{bottom:2px}.bottom-full{bottom:100%}.left-0{left:0}.left-1{left:var(--spacing)}.left-1\\/2{left:50%}.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-\\[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-80{max-height:calc(var(--spacing) * 80)}.max-h-\\[var\\(--rg-edit-list-max-h\\)\\]{max-height:var(--rg-edit-list-max-h)}.min-h-0{min-height:0}.min-h-4{min-height:calc(var(--spacing) * 4)}.min-h-\\[2lh\\]{min-height:2lh}.min-h-\\[28px\\]{min-height:28px}.w-1{width:var(--spacing)}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-16{width:calc(var(--spacing) * 16)}.w-28{width:calc(var(--spacing) * 28)}.w-72{width:calc(var(--spacing) * 72)}.w-\\[2px\\]{width:2px}.w-\\[calc\\(100\\%\\+16px\\)\\]{width:calc(100% + 16px)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-\\[55\\%\\]{max-width:55%}.max-w-\\[100vw\\]{max-width:100vw}.max-w-\\[110px\\]{max-width:110px}.max-w-\\[280px\\]{max-width:280px}.max-w-full{max-width:100%}.min-w-0{min-width:0}.min-w-\\[3\\.5ch\\]{min-width:3.5ch}.min-w-\\[4ch\\]{min-width:4ch}.min-w-\\[5ch\\]{min-width:5ch}.min-w-\\[6ch\\]{min-width:6ch}.min-w-\\[12ch\\]{min-width:12ch}.min-w-\\[36px\\]{min-width:36px}.min-w-\\[52px\\]{min-width:52px}.min-w-\\[100px\\]{min-width:100px}.min-w-\\[150px\\]{min-width:150px}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-rotate-90{rotate:-90deg}.rotate-0{rotate:0deg}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.list-decimal{list-style-type:decimal}.grid-cols-\\[0fr\\]{grid-template-columns:0fr}.grid-cols-\\[1fr\\]{grid-template-columns:1fr}.grid-rows-\\[0fr\\]{grid-template-rows:0fr}.grid-rows-\\[1fr\\]{grid-template-rows:1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:0}.gap-0\\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-\\[5px\\]{gap:5px}.self-end{align-self:flex-end}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-clip{overflow:clip}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\\[1px\\]{border-radius:1px}.rounded-\\[3px\\]{border-radius:3px}.rounded-\\[4px\\]{border-radius:4px}.rounded-\\[5px\\]{border-radius:5px}.rounded-\\[6px\\]{border-radius:6px}.rounded-\\[13px\\]{border-radius:13px}.rounded-\\[14px\\]{border-radius:14px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-t-\\[10px\\]{border-top-left-radius:10px;border-top-right-radius:10px}.rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.rounded-l{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-l-\\[10px\\]{border-top-left-radius:10px;border-bottom-left-radius:10px}.rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.rounded-tl{border-top-left-radius:.25rem}.rounded-r{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-r-\\[10px\\]{border-top-right-radius:10px;border-bottom-right-radius:10px}.rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-tr{border-top-right-radius:.25rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-b-\\[6px\\]{border-bottom-right-radius:6px;border-bottom-left-radius:6px}.rounded-b-\\[10px\\]{border-bottom-right-radius:10px;border-bottom-left-radius:10px}.rounded-b-none{border-bottom-right-radius:0;border-bottom-left-radius:0}.rounded-br{border-bottom-right-radius:.25rem}.rounded-bl{border-bottom-left-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.\\[border-width\\:0\\.5px\\]{border-width:.5px}.border-x{border-inline-style:var(--tw-border-style);border-inline-width:1px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-s{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}.border-e{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-4{border-top-style:var(--tw-border-style);border-top-width:4px}.\\[border-top-width\\:0\\.5px\\]{border-top-width:.5px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-dotted{--tw-border-style:dotted;border-style:dotted}.border-none{--tw-border-style:none;border-style:none}.border-solid{--tw-border-style:solid;border-style:solid}.border-\\[var\\(--rg-border-button\\)\\]{border-color:var(--rg-border-button)}.border-accent{border-color:var(--color-accent)}.border-accent\\/40{border-color:#5e6ad266}@supports (color:color-mix(in lab, red, red)){.border-accent\\/40{border-color:color-mix(in oklab, var(--color-accent) 40%, transparent)}}.border-border{border-color:var(--color-border)}.border-success{border-color:var(--color-success)}.border-success\\/40{border-color:#4cb78266}@supports (color:color-mix(in lab, red, red)){.border-success\\/40{border-color:color-mix(in oklab, var(--color-success) 40%, transparent)}}.border-text-dim{border-color:var(--color-text-dim)}.border-transparent{border-color:#0000}.border-warn{border-color:var(--color-warn)}.border-warn\\/40{border-color:#f2c94c66}@supports (color:color-mix(in lab, red, red)){.border-warn\\/40{border-color:color-mix(in oklab, var(--color-warn) 40%, transparent)}}.border-t-\\[var\\(--rg-border-subtle\\)\\]{border-top-color:var(--rg-border-subtle)}.border-t-transparent{border-top-color:#0000}.bg-\\[var\\(--rg-error-bg\\)\\]{background-color:var(--rg-error-bg)}.bg-\\[var\\(--rg-panel-bg\\)\\]{background-color:var(--rg-panel-bg)}.bg-\\[var\\(--rg-submit-bg\\)\\]{background-color:var(--rg-submit-bg)}.bg-\\[var\\(--rg-surface-active\\)\\]{background-color:var(--rg-surface-active)}.bg-\\[var\\(--rg-surface-hover\\)\\]{background-color:var(--rg-surface-hover)}.bg-\\[var\\(--rg-text-primary\\)\\]{background-color:var(--rg-text-primary)}.bg-\\[var\\(--rg-text-secondary\\)\\]{background-color:var(--rg-text-secondary)}.bg-accent{background-color:var(--color-accent)}.bg-accent-soft{background-color:var(--color-accent-soft)}.bg-bg{background-color:var(--color-bg)}.bg-bg\\/80{background-color:#0b0c0ecc}@supports (color:color-mix(in lab, red, red)){.bg-bg\\/80{background-color:color-mix(in oklab, var(--color-bg) 80%, transparent)}}.bg-border{background-color:var(--color-border)}.bg-current{background-color:currentColor}.bg-danger{background-color:var(--color-danger)}.bg-danger-soft{background-color:var(--color-danger-soft)}.bg-red-500{background-color:var(--color-red-500)}.bg-success{background-color:var(--color-success)}.bg-surface{background-color:var(--color-surface)}.bg-surface-2{background-color:var(--color-surface-2)}.bg-surface-3{background-color:var(--color-surface-3)}.bg-text-faint{background-color:var(--color-text-faint)}.bg-transparent{background-color:#0000}.bg-warn{background-color:var(--color-warn)}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:0}.p-0\\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\\.5{padding:calc(var(--spacing) * 2.5)}.p-6{padding:calc(var(--spacing) * 6)}.px-0{padding-inline:0}.px-0\\.25{padding-inline:calc(var(--spacing) * .25)}.px-1{padding-inline:var(--spacing)}.px-1\\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-\\[3px\\]{padding-inline:3px}.py-0{padding-block:0}.py-0\\.5{padding-block:calc(var(--spacing) * .5)}.py-0\\.25{padding-block:calc(var(--spacing) * .25)}.py-1{padding-block:var(--spacing)}.py-1\\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-px{padding-block:1px}.pt-0{padding-top:0}.pt-0\\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:var(--spacing)}.pt-1\\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pr-1{padding-right:var(--spacing)}.pr-1\\.5{padding-right:calc(var(--spacing) * 1.5)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pb-1{padding-bottom:var(--spacing)}.pb-1\\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pl-0{padding-left:0}.pl-0\\.5{padding-left:calc(var(--spacing) * .5)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-2\\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.text-center{text-align:center}.text-end{text-align:end}.text-justify{text-align:justify}.text-left{text-align:left}.text-right{text-align:right}.text-start{text-align:start}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.font-serif{font-family:var(--font-serif)}.text-\\[9\\.5px\\]{font-size:9.5px}.text-\\[9px\\]{font-size:9px}.text-\\[10\\.5px\\]{font-size:10.5px}.text-\\[10px\\]{font-size:10px}.text-\\[11\\.5px\\]{font-size:11.5px}.text-\\[11px\\]{font-size:11px}.text-\\[12\\.5px\\]{font-size:12.5px}.text-\\[12px\\]{font-size:12px}.text-\\[13px\\]{font-size:13px}.text-\\[15px\\]{font-size:15px}.leading-3{--tw-leading:calc(var(--spacing) * 3);line-height:calc(var(--spacing) * 3)}.leading-3\\.5{--tw-leading:calc(var(--spacing) * 3.5);line-height:calc(var(--spacing) * 3.5)}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-extralight{--tw-font-weight:var(--font-weight-extralight);font-weight:var(--font-weight-extralight)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.font-thin{--tw-font-weight:var(--font-weight-thin);font-weight:var(--font-weight-thin)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-normal{overflow-wrap:normal;word-break:normal}.break-words,.wrap-break-word{overflow-wrap:break-word}.break-all{word-break:break-all}.break-keep{word-break:keep-all}.text-ellipsis{text-overflow:ellipsis}.whitespace-break-spaces{white-space:break-spaces}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.text-\\[var\\(--rg-error-text\\)\\]{color:var(--rg-error-text)}.text-\\[var\\(--rg-submit-fg\\)\\]{color:var(--rg-submit-fg)}.text-\\[var\\(--rg-text-primary\\)\\]{color:var(--rg-text-primary)}.text-\\[var\\(--rg-text-primary-85\\)\\]{color:var(--rg-text-primary-85)}.text-\\[var\\(--rg-text-secondary\\)\\]{color:var(--rg-text-secondary)}.text-accent{color:var(--color-accent)}.text-danger{color:var(--color-danger)}.text-success{color:var(--color-success)}.text-text{color:var(--color-text)}.text-text-dim{color:var(--color-text-dim)}.text-text-faint{color:var(--color-text-faint)}.text-warn{color:var(--color-warn)}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.not-italic{font-style:normal}.lining-nums{--tw-numeric-figure:lining-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.oldstyle-nums{--tw-numeric-figure:oldstyle-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.proportional-nums{--tw-numeric-spacing:proportional-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.slashed-zero{--tw-slashed-zero:slashed-zero;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.accent-accent{accent-color:var(--color-accent)}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.\\[box-shadow\\:var\\(--rg-shadow\\)\\]{box-shadow:var(--rg-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.\\[filter\\:var\\(--rg-drop-shadow\\)\\]{filter:var(--rg-drop-shadow)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[grid-template-columns\\]{transition-property:grid-template-columns;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[grid-template-rows\\]{transition-property:grid-template-rows;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[opacity\\,transform\\]{transition-property:opacity,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[padding\\,border-radius\\,transform\\]{transition-property:padding,border-radius,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[top\\,left\\,width\\,height\\,opacity\\,border-radius\\]{transition-property:top,left,width,height,opacity,border-radius;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[transform\\,color\\]{transition-property:transform,color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[transform\\,opacity\\]{transition-property:transform,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.delay-\\[80ms\\]{transition-delay:80ms}.duration-60{--tw-duration:60ms;transition-duration:60ms}.duration-75{--tw-duration:75ms;transition-duration:75ms}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-120{--tw-duration:.12s;transition-duration:.12s}.duration-140{--tw-duration:.14s;transition-duration:.14s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-180{--tw-duration:.18s;transition-duration:.18s}.duration-220{--tw-duration:.22s;transition-duration:.22s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-400{--tw-duration:.4s;transition-duration:.4s}.ease-\\[cubic-bezier\\(0\\,0\\,0\\.2\\,1\\)\\]{--tw-ease:cubic-bezier(0,0,.2,1);transition-timing-function:cubic-bezier(0,0,.2,1)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.will-change-\\[opacity\\,transform\\]{will-change:opacity,transform}.will-change-transform{will-change:transform}.contain-layout{--tw-contain-layout:layout;contain:var(--tw-contain-size,) var(--tw-contain-layout,) var(--tw-contain-paint,) var(--tw-contain-style,)}.outline-none{--tw-outline-style:none;outline-style:none}.select-all{-webkit-user-select:all;user-select:all}.select-none{-webkit-user-select:none;user-select:none}.\\[corner-shape\\:superellipse\\(1\\.25\\)\\]{corner-shape:superellipse(1.25)}.\\[font-synthesis\\:none\\]{font-synthesis:none}.group-open\\:rotate-90:is(:where(.group):is([open],:popover-open,:open) *){rotate:90deg}@media (hover:hover){.group-hover\\:text-\\[var\\(--rg-text-primary\\)\\]:is(:where(.group):hover *){color:var(--rg-text-primary)}.group-hover\\:opacity-100:is(:where(.group):hover *){opacity:1}}.placeholder\\:text-text-faint::placeholder{color:var(--color-text-faint)}@media (hover:hover){.hover\\:bg-\\[var\\(--rg-error-bg-hover\\)\\]:hover{background-color:var(--rg-error-bg-hover)}.hover\\:bg-\\[var\\(--rg-surface-active\\)\\]:hover{background-color:var(--rg-surface-active)}.hover\\:bg-\\[var\\(--rg-surface-hover\\)\\]:hover{background-color:var(--rg-surface-hover)}.hover\\:bg-accent-hover:hover{background-color:var(--color-accent-hover)}.hover\\:bg-accent\\/50:hover{background-color:#5e6ad280}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-accent\\/50:hover{background-color:color-mix(in oklab, var(--color-accent) 50%, transparent)}}.hover\\:bg-danger\\/30:hover{background-color:#eb57574d}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-danger\\/30:hover{background-color:color-mix(in oklab, var(--color-danger) 30%, transparent)}}.hover\\:bg-surface-2:hover{background-color:var(--color-surface-2)}.hover\\:bg-surface-3:hover{background-color:var(--color-surface-3)}.hover\\:text-\\[var\\(--rg-text-primary\\)\\]:hover{color:var(--rg-text-primary)}.hover\\:text-accent:hover{color:var(--color-accent)}.hover\\:text-danger:hover{color:var(--color-danger)}.hover\\:text-text:hover{color:var(--color-text)}.hover\\:underline:hover{text-decoration-line:underline}.hover\\:opacity-80:hover{opacity:.8}}.focus\\:border-accent:focus{border-color:var(--color-accent)}.active\\:cursor-grabbing:active{cursor:grabbing}.active\\:bg-accent:active{background-color:var(--color-accent)}.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)}}}: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}}";
|
|
46696
|
+
var U2 = "/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */\n@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-contain-size:initial;--tw-contain-layout:initial;--tw-contain-paint:initial;--tw-contain-style:initial}}}@layer theme{:root,:host{--font-sans:\"Inter\", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-serif:ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif;--font-mono:ui-monospace, \"SF Mono\", Menlo, monospace;--color-red-500:oklch(63.7% .237 25.331);--color-white:#fff;--spacing:.25rem;--font-weight-thin:100;--font-weight-extralight:200;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--font-weight-black:900;--tracking-wide:.025em;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--radius-xl:.75rem;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-bg:#0b0c0e;--color-surface:#141517;--color-surface-2:#1c1d21;--color-surface-3:#24262b;--color-border:#26282d;--color-border-strong:#34363d;--color-text:#e8e9eb;--color-text-dim:#8b8e98;--color-text-faint:#5c5f6a;--color-accent:#5e6ad2;--color-accent-hover:#6e79e0;--color-accent-soft:#5e6ad226;--color-success:#4cb782;--color-warn:#f2c94c;--color-danger:#eb5757;--color-danger-soft:#eb575726}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.visible\\!{visibility:visible!important}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-y-0{inset-block:0}.top-0{top:0}.top-0\\.5{top:calc(var(--spacing) * .5)}.top-1{top:var(--spacing)}.top-1\\/2{top:50%}.top-\\[2px\\]{top:2px}.top-full{top:100%}.right-0{right:0}.right-0\\.5{right:calc(var(--spacing) * .5)}.right-4{right:calc(var(--spacing) * 4)}.right-full{right:100%}.bottom-0{bottom:0}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-\\[2px\\]{bottom:2px}.bottom-full{bottom:100%}.left-0{left:0}.left-1{left:var(--spacing)}.left-1\\/2{left:50%}.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-\\[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-80{max-height:calc(var(--spacing) * 80)}.max-h-\\[var\\(--rg-edit-list-max-h\\)\\]{max-height:var(--rg-edit-list-max-h)}.min-h-0{min-height:0}.min-h-4{min-height:calc(var(--spacing) * 4)}.min-h-\\[2lh\\]{min-height:2lh}.min-h-\\[28px\\]{min-height:28px}.w-1{width:var(--spacing)}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-16{width:calc(var(--spacing) * 16)}.w-28{width:calc(var(--spacing) * 28)}.w-72{width:calc(var(--spacing) * 72)}.w-\\[2px\\]{width:2px}.w-\\[calc\\(100\\%\\+16px\\)\\]{width:calc(100% + 16px)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-\\[55\\%\\]{max-width:55%}.max-w-\\[100vw\\]{max-width:100vw}.max-w-\\[110px\\]{max-width:110px}.max-w-\\[280px\\]{max-width:280px}.max-w-full{max-width:100%}.min-w-0{min-width:0}.min-w-\\[3\\.5ch\\]{min-width:3.5ch}.min-w-\\[4ch\\]{min-width:4ch}.min-w-\\[5ch\\]{min-width:5ch}.min-w-\\[6ch\\]{min-width:6ch}.min-w-\\[10ch\\]{min-width:10ch}.min-w-\\[12ch\\]{min-width:12ch}.min-w-\\[36px\\]{min-width:36px}.min-w-\\[52px\\]{min-width:52px}.min-w-\\[100px\\]{min-width:100px}.min-w-\\[150px\\]{min-width:150px}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-rotate-90{rotate:-90deg}.rotate-0{rotate:0deg}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.list-decimal{list-style-type:decimal}.grid-cols-\\[0fr\\]{grid-template-columns:0fr}.grid-cols-\\[1fr\\]{grid-template-columns:1fr}.grid-rows-\\[0fr\\]{grid-template-rows:0fr}.grid-rows-\\[1fr\\]{grid-template-rows:1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:0}.gap-0\\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-\\[5px\\]{gap:5px}.self-end{align-self:flex-end}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-clip{overflow:clip}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\\[1px\\]{border-radius:1px}.rounded-\\[3px\\]{border-radius:3px}.rounded-\\[4px\\]{border-radius:4px}.rounded-\\[5px\\]{border-radius:5px}.rounded-\\[6px\\]{border-radius:6px}.rounded-\\[13px\\]{border-radius:13px}.rounded-\\[14px\\]{border-radius:14px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-t-\\[10px\\]{border-top-left-radius:10px;border-top-right-radius:10px}.rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.rounded-l{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-l-\\[10px\\]{border-top-left-radius:10px;border-bottom-left-radius:10px}.rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.rounded-tl{border-top-left-radius:.25rem}.rounded-r{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-r-\\[10px\\]{border-top-right-radius:10px;border-bottom-right-radius:10px}.rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-tr{border-top-right-radius:.25rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-b-\\[6px\\]{border-bottom-right-radius:6px;border-bottom-left-radius:6px}.rounded-b-\\[10px\\]{border-bottom-right-radius:10px;border-bottom-left-radius:10px}.rounded-b-none{border-bottom-right-radius:0;border-bottom-left-radius:0}.rounded-br{border-bottom-right-radius:.25rem}.rounded-bl{border-bottom-left-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.\\[border-width\\:0\\.5px\\]{border-width:.5px}.border-x{border-inline-style:var(--tw-border-style);border-inline-width:1px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-s{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}.border-e{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-4{border-top-style:var(--tw-border-style);border-top-width:4px}.\\[border-top-width\\:0\\.5px\\]{border-top-width:.5px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-dotted{--tw-border-style:dotted;border-style:dotted}.border-none{--tw-border-style:none;border-style:none}.border-solid{--tw-border-style:solid;border-style:solid}.border-\\[var\\(--rg-border-button\\)\\]{border-color:var(--rg-border-button)}.border-accent{border-color:var(--color-accent)}.border-accent\\/40{border-color:#5e6ad266}@supports (color:color-mix(in lab, red, red)){.border-accent\\/40{border-color:color-mix(in oklab, var(--color-accent) 40%, transparent)}}.border-border{border-color:var(--color-border)}.border-success{border-color:var(--color-success)}.border-success\\/40{border-color:#4cb78266}@supports (color:color-mix(in lab, red, red)){.border-success\\/40{border-color:color-mix(in oklab, var(--color-success) 40%, transparent)}}.border-text-dim{border-color:var(--color-text-dim)}.border-transparent{border-color:#0000}.border-warn{border-color:var(--color-warn)}.border-warn\\/40{border-color:#f2c94c66}@supports (color:color-mix(in lab, red, red)){.border-warn\\/40{border-color:color-mix(in oklab, var(--color-warn) 40%, transparent)}}.border-t-\\[var\\(--rg-border-subtle\\)\\]{border-top-color:var(--rg-border-subtle)}.border-t-transparent{border-top-color:#0000}.bg-\\[var\\(--rg-error-bg\\)\\]{background-color:var(--rg-error-bg)}.bg-\\[var\\(--rg-panel-bg\\)\\]{background-color:var(--rg-panel-bg)}.bg-\\[var\\(--rg-submit-bg\\)\\]{background-color:var(--rg-submit-bg)}.bg-\\[var\\(--rg-surface-active\\)\\]{background-color:var(--rg-surface-active)}.bg-\\[var\\(--rg-surface-hover\\)\\]{background-color:var(--rg-surface-hover)}.bg-\\[var\\(--rg-text-primary\\)\\]{background-color:var(--rg-text-primary)}.bg-\\[var\\(--rg-text-secondary\\)\\]{background-color:var(--rg-text-secondary)}.bg-accent{background-color:var(--color-accent)}.bg-accent-soft{background-color:var(--color-accent-soft)}.bg-bg{background-color:var(--color-bg)}.bg-bg\\/80{background-color:#0b0c0ecc}@supports (color:color-mix(in lab, red, red)){.bg-bg\\/80{background-color:color-mix(in oklab, var(--color-bg) 80%, transparent)}}.bg-border{background-color:var(--color-border)}.bg-current{background-color:currentColor}.bg-danger{background-color:var(--color-danger)}.bg-danger-soft{background-color:var(--color-danger-soft)}.bg-red-500{background-color:var(--color-red-500)}.bg-success{background-color:var(--color-success)}.bg-surface{background-color:var(--color-surface)}.bg-surface-2{background-color:var(--color-surface-2)}.bg-surface-3{background-color:var(--color-surface-3)}.bg-text-faint{background-color:var(--color-text-faint)}.bg-transparent{background-color:#0000}.bg-warn{background-color:var(--color-warn)}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:0}.p-0\\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\\.5{padding:calc(var(--spacing) * 2.5)}.p-6{padding:calc(var(--spacing) * 6)}.px-0{padding-inline:0}.px-0\\.25{padding-inline:calc(var(--spacing) * .25)}.px-1{padding-inline:var(--spacing)}.px-1\\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-\\[3px\\]{padding-inline:3px}.py-0{padding-block:0}.py-0\\.5{padding-block:calc(var(--spacing) * .5)}.py-0\\.25{padding-block:calc(var(--spacing) * .25)}.py-1{padding-block:var(--spacing)}.py-1\\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-px{padding-block:1px}.pt-0{padding-top:0}.pt-0\\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:var(--spacing)}.pt-1\\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pr-1{padding-right:var(--spacing)}.pr-1\\.5{padding-right:calc(var(--spacing) * 1.5)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pb-1{padding-bottom:var(--spacing)}.pb-1\\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pl-0{padding-left:0}.pl-0\\.5{padding-left:calc(var(--spacing) * .5)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-2\\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.text-center{text-align:center}.text-end{text-align:end}.text-justify{text-align:justify}.text-left{text-align:left}.text-right{text-align:right}.text-start{text-align:start}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.font-serif{font-family:var(--font-serif)}.text-\\[9\\.5px\\]{font-size:9.5px}.text-\\[9px\\]{font-size:9px}.text-\\[10\\.5px\\]{font-size:10.5px}.text-\\[10px\\]{font-size:10px}.text-\\[11\\.5px\\]{font-size:11.5px}.text-\\[11px\\]{font-size:11px}.text-\\[12\\.5px\\]{font-size:12.5px}.text-\\[12px\\]{font-size:12px}.text-\\[13px\\]{font-size:13px}.text-\\[15px\\]{font-size:15px}.leading-3{--tw-leading:calc(var(--spacing) * 3);line-height:calc(var(--spacing) * 3)}.leading-3\\.5{--tw-leading:calc(var(--spacing) * 3.5);line-height:calc(var(--spacing) * 3.5)}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-extralight{--tw-font-weight:var(--font-weight-extralight);font-weight:var(--font-weight-extralight)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.font-thin{--tw-font-weight:var(--font-weight-thin);font-weight:var(--font-weight-thin)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-normal{overflow-wrap:normal;word-break:normal}.break-words,.wrap-break-word{overflow-wrap:break-word}.break-all{word-break:break-all}.break-keep{word-break:keep-all}.text-ellipsis{text-overflow:ellipsis}.whitespace-break-spaces{white-space:break-spaces}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.text-\\[var\\(--rg-error-text\\)\\]{color:var(--rg-error-text)}.text-\\[var\\(--rg-submit-fg\\)\\]{color:var(--rg-submit-fg)}.text-\\[var\\(--rg-text-primary\\)\\]{color:var(--rg-text-primary)}.text-\\[var\\(--rg-text-primary-85\\)\\]{color:var(--rg-text-primary-85)}.text-\\[var\\(--rg-text-secondary\\)\\]{color:var(--rg-text-secondary)}.text-accent{color:var(--color-accent)}.text-danger{color:var(--color-danger)}.text-success{color:var(--color-success)}.text-text{color:var(--color-text)}.text-text-dim{color:var(--color-text-dim)}.text-text-faint{color:var(--color-text-faint)}.text-warn{color:var(--color-warn)}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.not-italic{font-style:normal}.lining-nums{--tw-numeric-figure:lining-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.oldstyle-nums{--tw-numeric-figure:oldstyle-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.proportional-nums{--tw-numeric-spacing:proportional-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.slashed-zero{--tw-slashed-zero:slashed-zero;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.accent-accent{accent-color:var(--color-accent)}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.\\[box-shadow\\:var\\(--rg-shadow\\)\\]{box-shadow:var(--rg-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.\\[filter\\:var\\(--rg-drop-shadow\\)\\]{filter:var(--rg-drop-shadow)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[grid-template-columns\\]{transition-property:grid-template-columns;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[grid-template-rows\\]{transition-property:grid-template-rows;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[opacity\\,transform\\]{transition-property:opacity,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[padding\\,border-radius\\,transform\\]{transition-property:padding,border-radius,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[top\\,left\\,width\\,height\\,opacity\\,border-radius\\]{transition-property:top,left,width,height,opacity,border-radius;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[transform\\,color\\]{transition-property:transform,color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[transform\\,opacity\\]{transition-property:transform,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.delay-\\[80ms\\]{transition-delay:80ms}.duration-60{--tw-duration:60ms;transition-duration:60ms}.duration-75{--tw-duration:75ms;transition-duration:75ms}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-120{--tw-duration:.12s;transition-duration:.12s}.duration-140{--tw-duration:.14s;transition-duration:.14s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-180{--tw-duration:.18s;transition-duration:.18s}.duration-220{--tw-duration:.22s;transition-duration:.22s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-400{--tw-duration:.4s;transition-duration:.4s}.ease-\\[cubic-bezier\\(0\\,0\\,0\\.2\\,1\\)\\]{--tw-ease:cubic-bezier(0,0,.2,1);transition-timing-function:cubic-bezier(0,0,.2,1)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.will-change-\\[opacity\\,transform\\]{will-change:opacity,transform}.will-change-transform{will-change:transform}.contain-layout{--tw-contain-layout:layout;contain:var(--tw-contain-size,) var(--tw-contain-layout,) var(--tw-contain-paint,) var(--tw-contain-style,)}.outline-none{--tw-outline-style:none;outline-style:none}.select-all{-webkit-user-select:all;user-select:all}.select-none{-webkit-user-select:none;user-select:none}.\\[corner-shape\\:superellipse\\(1\\.25\\)\\]{corner-shape:superellipse(1.25)}.\\[font-synthesis\\:none\\]{font-synthesis:none}.group-open\\:rotate-90:is(:where(.group):is([open],:popover-open,:open) *){rotate:90deg}@media (hover:hover){.group-hover\\:text-\\[var\\(--rg-text-primary\\)\\]:is(:where(.group):hover *){color:var(--rg-text-primary)}.group-hover\\:opacity-100:is(:where(.group):hover *){opacity:1}}.placeholder\\:text-text-faint::placeholder{color:var(--color-text-faint)}@media (hover:hover){.hover\\:bg-\\[var\\(--rg-error-bg-hover\\)\\]:hover{background-color:var(--rg-error-bg-hover)}.hover\\:bg-\\[var\\(--rg-surface-active\\)\\]:hover{background-color:var(--rg-surface-active)}.hover\\:bg-\\[var\\(--rg-surface-hover\\)\\]:hover{background-color:var(--rg-surface-hover)}.hover\\:bg-accent-hover:hover{background-color:var(--color-accent-hover)}.hover\\:bg-accent\\/50:hover{background-color:#5e6ad280}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-accent\\/50:hover{background-color:color-mix(in oklab, var(--color-accent) 50%, transparent)}}.hover\\:bg-danger\\/30:hover{background-color:#eb57574d}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-danger\\/30:hover{background-color:color-mix(in oklab, var(--color-danger) 30%, transparent)}}.hover\\:bg-surface-2:hover{background-color:var(--color-surface-2)}.hover\\:bg-surface-3:hover{background-color:var(--color-surface-3)}.hover\\:text-\\[var\\(--rg-text-primary\\)\\]:hover{color:var(--rg-text-primary)}.hover\\:text-accent:hover{color:var(--color-accent)}.hover\\:text-danger:hover{color:var(--color-danger)}.hover\\:text-text:hover{color:var(--color-text)}.hover\\:underline:hover{text-decoration-line:underline}.hover\\:opacity-80:hover{opacity:.8}}.focus\\:border-accent:focus{border-color:var(--color-accent)}.active\\:cursor-grabbing:active{cursor:grabbing}.active\\:bg-accent:active{background-color:var(--color-accent)}.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)}}}: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}}";
|
|
46562
46697
|
//#endregion
|
|
46563
46698
|
//#region src/page/index.tsx
|
|
46564
46699
|
Br();
|
|
46565
|
-
var
|
|
46566
|
-
function
|
|
46700
|
+
var W2 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-danger size-2 shrink-0 animate-pulse rounded-full\">"), G2 = /*#__PURE__*/ N("<span class=\"text-text min-w-[5ch] text-[11px] font-medium tabular-nums\">"), K2 = /*#__PURE__*/ N("<button class=\"bg-accent hover:bg-accent-hover h-7 cursor-pointer rounded-full px-2.5 text-[11px] font-medium text-white transition-colors\"><span class=\"inline-block min-w-[4ch] text-center\">Stop"), q2 = /*#__PURE__*/ N("<p class=\"text-warn px-1.5 pt-1 pb-1.5 text-[10.5px] font-semibold tracking-wide uppercase\">Needs review"), J2 = /*#__PURE__*/ N("<div><p class=\"text-text-dim px-1.5 pt-1 pb-1.5 text-[10.5px] font-semibold tracking-wide uppercase\">Running agents"), Y2 = /*#__PURE__*/ N("<div class=\"fixed z-[2147483646] select-none\"><div class=\"bg-surface border-border text-text flex h-9 cursor-grab items-center gap-1 rounded-full border py-1 pr-1 pl-2.5 font-sans shadow-lg active:cursor-grabbing\">"), X2 = /*#__PURE__*/ N("<div><div title=\"Drag to resize\">"), Z2 = /*#__PURE__*/ N("<button title=\"Open Linear Grab\"aria-label=\"Open Linear Grab\"class=\"text-accent hover:opacity-80 inline-flex cursor-pointer items-center gap-1.5\">"), Q2 = /*#__PURE__*/ N("<span class=\"bg-border h-4 w-px\"aria-hidden>"), $2 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-warn size-2 rounded-full\">"), e4 = /*#__PURE__*/ N("<span class=\"text-warn min-w-[3.5ch] text-left text-[11px] font-medium tabular-nums\"> rev"), t4 = /*#__PURE__*/ N("<button title=\"Running agents\"aria-label=\"Running agents\"class=\"hover:bg-surface-2 flex h-7 cursor-pointer items-center gap-1.5 rounded-full px-2 transition-colors\"><span aria-hidden></span><span>"), n4 = /*#__PURE__*/ N("<p class=\"text-text-faint px-1.5 pb-1.5 text-[11.5px]\">No agents running right now."), r4 = /*#__PURE__*/ N("<button class=\"hover:bg-surface-2 flex w-full cursor-pointer flex-col gap-0.5 rounded-md px-1.5 py-1.5 text-left transition-colors\"><span class=\"flex min-w-0 items-center gap-1.5\"><span aria-hidden class=\"size-1.5 shrink-0 rounded-full\"></span><span class=\"font-mono text-text-dim shrink-0 text-[10.5px]\"></span><span class=\"text-text truncate text-[11.5px]\"></span></span><span class=\"text-text-faint pl-3 text-[10.5px] tabular-nums\"> · <!> · ");
|
|
46701
|
+
function i4(e = {}) {
|
|
46567
46702
|
if (typeof window > "u" || window.__LINEAR_GRAB_PAGE__) return;
|
|
46568
46703
|
window.__LINEAR_GRAB_PAGE__ = !0;
|
|
46569
46704
|
let t = () => {
|
|
@@ -46595,17 +46730,17 @@ function Z2(e = {}) {
|
|
|
46595
46730
|
"keypress"
|
|
46596
46731
|
]) window.addEventListener(e, n, { capture: !0 });
|
|
46597
46732
|
let r = t.attachShadow({ mode: "open" }), i = document.createElement("style");
|
|
46598
|
-
i.textContent =
|
|
46733
|
+
i.textContent = U2, r.appendChild(i);
|
|
46599
46734
|
let a = document.createElement("div");
|
|
46600
46735
|
r.appendChild(a);
|
|
46601
|
-
let o = () => a.setAttribute("data-theme",
|
|
46602
|
-
o(), matchMedia("(prefers-color-scheme: light)").addEventListener("change", o), nt(() => j(
|
|
46736
|
+
let o = () => a.setAttribute("data-theme", a4());
|
|
46737
|
+
o(), matchMedia("(prefers-color-scheme: light)").addEventListener("change", o), nt(() => j(d4, { get defaultOpen() {
|
|
46603
46738
|
return e.defaultOpen ?? !1;
|
|
46604
46739
|
} }), a);
|
|
46605
46740
|
};
|
|
46606
46741
|
document.body ? t() : document.addEventListener("DOMContentLoaded", t, { once: !0 });
|
|
46607
46742
|
}
|
|
46608
|
-
function
|
|
46743
|
+
function a4() {
|
|
46609
46744
|
try {
|
|
46610
46745
|
let e = [document.body, document.documentElement];
|
|
46611
46746
|
for (let t of e) {
|
|
@@ -46615,11 +46750,11 @@ function Q2() {
|
|
|
46615
46750
|
} catch {}
|
|
46616
46751
|
return matchMedia("(prefers-color-scheme: light)").matches ? "light" : "dark";
|
|
46617
46752
|
}
|
|
46618
|
-
var
|
|
46619
|
-
function
|
|
46753
|
+
var o4 = 130, s4 = 36, c4 = 380, l4 = 280, u4 = 720;
|
|
46754
|
+
function d4(e) {
|
|
46620
46755
|
let [t, n] = T(e.defaultOpen), [r, i] = T("right"), [a, o] = T({
|
|
46621
|
-
x: Math.max(8, window.innerWidth -
|
|
46622
|
-
y: Math.max(8, window.innerHeight -
|
|
46756
|
+
x: Math.max(8, window.innerWidth - o4 - 24),
|
|
46757
|
+
y: Math.max(8, window.innerHeight - s4 - 20)
|
|
46623
46758
|
}), [s, c] = T({
|
|
46624
46759
|
running: [],
|
|
46625
46760
|
review: []
|
|
@@ -46634,12 +46769,12 @@ function i4(e) {
|
|
|
46634
46769
|
let t = Math.floor(e / 1e3);
|
|
46635
46770
|
return `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
|
|
46636
46771
|
}, [v, y] = T(null), b = (e) => ({
|
|
46637
|
-
x: Math.min(Math.max(8, e.x), window.innerWidth -
|
|
46638
|
-
y: Math.min(Math.max(8, e.y), window.innerHeight -
|
|
46772
|
+
x: Math.min(Math.max(8, e.x), window.innerWidth - o4 - 8),
|
|
46773
|
+
y: Math.min(Math.max(8, e.y), window.innerHeight - s4 - 8)
|
|
46639
46774
|
}), x = (e) => ({
|
|
46640
46775
|
x: Math.min(Math.max(8 - (te() - 80), e.x), window.innerWidth - 80),
|
|
46641
46776
|
y: Math.min(Math.max(0, e.y), window.innerHeight - 80)
|
|
46642
|
-
}), [S, C] = T(!1), [w, E] = T("cloud"), [k, ee] = T(!1), [te, A] = T(
|
|
46777
|
+
}), [S, C] = T(!1), [w, E] = T("cloud"), [k, ee] = T(!1), [te, A] = T(c4), ne = (e) => Math.min(u4, Math.max(l4, Math.min(e, window.innerWidth - 60)));
|
|
46643
46778
|
O(() => {
|
|
46644
46779
|
let e = document.documentElement, n = t() && S();
|
|
46645
46780
|
e.style.transition = "margin 0.2s ease", e.style.marginRight = n && r() === "right" ? `${te()}px` : "", e.style.marginLeft = n && r() === "left" ? `${te()}px` : "";
|
|
@@ -46747,7 +46882,7 @@ function i4(e) {
|
|
|
46747
46882
|
return !t();
|
|
46748
46883
|
},
|
|
46749
46884
|
get children() {
|
|
46750
|
-
var e =
|
|
46885
|
+
var e = Y2(), t = e.firstChild;
|
|
46751
46886
|
return t.$$pointerdown = se, P(t, j(M, {
|
|
46752
46887
|
get when() {
|
|
46753
46888
|
return p() === "recording";
|
|
@@ -46755,14 +46890,14 @@ function i4(e) {
|
|
|
46755
46890
|
get fallback() {
|
|
46756
46891
|
return [
|
|
46757
46892
|
(() => {
|
|
46758
|
-
var e =
|
|
46893
|
+
var e = Z2();
|
|
46759
46894
|
return e.$$click = () => {
|
|
46760
46895
|
oe || (f(!1), n(!0));
|
|
46761
|
-
}, P(e, j(
|
|
46896
|
+
}, P(e, j(V2, { size: 13 })), e;
|
|
46762
46897
|
})(),
|
|
46763
|
-
|
|
46898
|
+
Q2(),
|
|
46764
46899
|
(() => {
|
|
46765
|
-
var e =
|
|
46900
|
+
var e = t4(), t = e.firstChild, n = t.nextSibling;
|
|
46766
46901
|
return e.$$click = () => {
|
|
46767
46902
|
oe || f((e) => !e);
|
|
46768
46903
|
}, P(n, (() => {
|
|
@@ -46773,8 +46908,8 @@ function i4(e) {
|
|
|
46773
46908
|
return $e(() => !k())() && u().length > 0;
|
|
46774
46909
|
},
|
|
46775
46910
|
get children() {
|
|
46776
|
-
return [
|
|
46777
|
-
var e =
|
|
46911
|
+
return [$2(), (() => {
|
|
46912
|
+
var e = e4(), t = e.firstChild;
|
|
46778
46913
|
return P(e, () => u().length, t), e;
|
|
46779
46914
|
})()];
|
|
46780
46915
|
}
|
|
@@ -46790,13 +46925,13 @@ function i4(e) {
|
|
|
46790
46925
|
},
|
|
46791
46926
|
get children() {
|
|
46792
46927
|
return [
|
|
46793
|
-
|
|
46928
|
+
W2(),
|
|
46794
46929
|
(() => {
|
|
46795
|
-
var e =
|
|
46930
|
+
var e = G2();
|
|
46796
46931
|
return P(e, () => _(h())), e;
|
|
46797
46932
|
})(),
|
|
46798
46933
|
(() => {
|
|
46799
|
-
var e =
|
|
46934
|
+
var e = K2();
|
|
46800
46935
|
return e.$$click = () => {
|
|
46801
46936
|
oe || eO();
|
|
46802
46937
|
}, e;
|
|
@@ -46808,17 +46943,17 @@ function i4(e) {
|
|
|
46808
46943
|
return d();
|
|
46809
46944
|
},
|
|
46810
46945
|
get children() {
|
|
46811
|
-
var e =
|
|
46946
|
+
var e = J2(), t = e.firstChild;
|
|
46812
46947
|
return P(e, j(M, {
|
|
46813
46948
|
get when() {
|
|
46814
46949
|
return u().length > 0;
|
|
46815
46950
|
},
|
|
46816
46951
|
get children() {
|
|
46817
|
-
return [
|
|
46952
|
+
return [q2(), j(We, {
|
|
46818
46953
|
get each() {
|
|
46819
46954
|
return u();
|
|
46820
46955
|
},
|
|
46821
|
-
children: (e) => j(
|
|
46956
|
+
children: (e) => j(f4, {
|
|
46822
46957
|
agent: e,
|
|
46823
46958
|
review: !0,
|
|
46824
46959
|
onOpen: le
|
|
@@ -46830,14 +46965,14 @@ function i4(e) {
|
|
|
46830
46965
|
return l().length > 0;
|
|
46831
46966
|
},
|
|
46832
46967
|
get fallback() {
|
|
46833
|
-
return
|
|
46968
|
+
return n4();
|
|
46834
46969
|
},
|
|
46835
46970
|
get children() {
|
|
46836
46971
|
return j(We, {
|
|
46837
46972
|
get each() {
|
|
46838
46973
|
return l();
|
|
46839
46974
|
},
|
|
46840
|
-
children: (e) => j(
|
|
46975
|
+
children: (e) => j(f4, {
|
|
46841
46976
|
agent: e,
|
|
46842
46977
|
onOpen: le
|
|
46843
46978
|
})
|
|
@@ -46858,8 +46993,8 @@ function i4(e) {
|
|
|
46858
46993
|
return t();
|
|
46859
46994
|
},
|
|
46860
46995
|
get children() {
|
|
46861
|
-
var e =
|
|
46862
|
-
return t.$$pointerdown = ue, P(e, j(
|
|
46996
|
+
var e = X2(), t = e.firstChild;
|
|
46997
|
+
return t.$$pointerdown = ue, P(e, j(H2, {
|
|
46863
46998
|
onGrab: () => n(!0),
|
|
46864
46999
|
onClose: () => n(!1),
|
|
46865
47000
|
get onHeaderPointerDown() {
|
|
@@ -46887,19 +47022,19 @@ function i4(e) {
|
|
|
46887
47022
|
}
|
|
46888
47023
|
})];
|
|
46889
47024
|
}
|
|
46890
|
-
function
|
|
47025
|
+
function f4(e) {
|
|
46891
47026
|
return (() => {
|
|
46892
|
-
var t =
|
|
47027
|
+
var t = r4(), n = t.firstChild, r = n.firstChild, i = r.nextSibling, a = i.nextSibling, o = n.nextSibling, s = o.firstChild, c = s.nextSibling;
|
|
46893
47028
|
return c.nextSibling, t.$$click = () => e.onOpen(e.agent.id), P(i, () => e.agent.identifier), P(a, () => e.agent.title), P(o, (() => {
|
|
46894
47029
|
var t = $e(() => !!e.review);
|
|
46895
47030
|
return () => t() ? "PR ready · needs review" : e.agent.stateName;
|
|
46896
|
-
})(), s), P(o, () => e.agent.delegateName, c), P(o, () =>
|
|
47031
|
+
})(), s), P(o, () => e.agent.delegateName, c), P(o, () => p4(e.agent.updatedAt), null), D((t) => dt(r, "background", e.review ? "var(--color-warn)" : e.agent.stateColor)), t;
|
|
46897
47032
|
})();
|
|
46898
47033
|
}
|
|
46899
|
-
function
|
|
47034
|
+
function p4(e) {
|
|
46900
47035
|
let t = Math.max(0, Math.floor((Date.now() - Date.parse(e)) / 1e3));
|
|
46901
47036
|
return t < 60 ? "now" : t < 3600 ? `${Math.floor(t / 60)}m` : t < 86400 ? `${Math.floor(t / 3600)}h` : `${Math.floor(t / 86400)}d`;
|
|
46902
47037
|
}
|
|
46903
47038
|
rt(["pointerdown", "click"]);
|
|
46904
47039
|
//#endregion
|
|
46905
|
-
export {
|
|
47040
|
+
export { i4 as init };
|