linear-grab 0.17.3 → 0.17.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/bin/linear-grab-bridge.mjs +14 -5
- package/dist/index.global.js +7 -7
- package/dist/linear-grab.js +229 -190
- package/package.json +1 -1
package/dist/linear-grab.js
CHANGED
|
@@ -25699,7 +25699,7 @@ function lD(e) {
|
|
|
25699
25699
|
let i = [];
|
|
25700
25700
|
e.slackToken && e.slackChannelId && i.push(`- Slack: bot token \`${e.slackToken}\`, channel \`${e.slackChannelId}\`${e.slackChannelName ? ` (#${e.slackChannelName})` : ""}. Use \`chat.postMessage\` for the message and \`files.uploadV2\` (or getUploadURLExternal + completeUploadExternal) to upload the demo video into the channel.`), e.telegramToken && e.telegramChatId && i.push(`- Telegram: bot token \`${e.telegramToken}\`, chat id \`${e.telegramChatId}\`. Use \`sendMessage\` and \`sendVideo\` (multipart upload of the demo file).`), i.length && t.push(`**When the fix is complete and the PR is open, announce it yourself:**\n${i.join("\n")}\n\nMessage format — keep it short: what was broken → what you changed (one-line fix summary) → links to the Linear issue, the PR, and your agent run → attach/upload the demo video → end with the CTA "👉 Review the PR". You may also use these tokens to send yourself intermediate test notifications while verifying the integration works.`);
|
|
25701
25701
|
let a = ["- [ ] Tested the change hands-on in the RUNNING app (state what you exercised)", "- [ ] Demo media captured — GIF/video preferred; if recording is impossible in your environment, before/after screenshots + the stated reason"];
|
|
25702
|
-
return e.githubAssetsRepo?.trim() && a.push(`- [ ] Demo media committed to \`${e.githubAssetsRepo.trim()}\` and embedded via raw.githubusercontent.com URL in the Linear comment AND the PR body`), a.push("- [ ] Demo media attached to the Linear ISSUE itself (not only the PR)", "- [ ] PR opened and linked here", "- [ ] Issue moved to its review/done state"), i.length && a.push("- [ ] Announcement posted to the configured channel(s) with the demo attached"), t.push(`**DEFINITION OF DONE — acceptance checklist.** Copy this checklist VERBATIM into your Linear closeout comment and tick each box (\`- [x]\`) with a link or one-line evidence next to it. Any unchecked box means the work is NOT ACCEPTED — leave it unchecked and explain the blocker rather than omitting it:\n${a.join("\n")}`), t.join("\n\n");
|
|
25702
|
+
return e.githubAssetsRepo?.trim() && a.push(`- [ ] Demo media committed to \`${e.githubAssetsRepo.trim()}\` and embedded via raw.githubusercontent.com URL in the Linear comment AND the PR body`), a.push("- [ ] Demo media attached to the Linear ISSUE itself (not only the PR)", "- [ ] PR opened and linked here", "- [ ] Deploy-preview URL included, deep-linked to the changed page (if the repo has preview deployments, e.g. Vercel; otherwise state that it does not)", "- [ ] Issue moved to its review/done state"), i.length && a.push("- [ ] Announcement posted to the configured channel(s) with the demo attached"), t.push(`**DEFINITION OF DONE — acceptance checklist.** Copy this checklist VERBATIM into your Linear closeout comment and tick each box (\`- [x]\`) with a link or one-line evidence next to it. Any unchecked box means the work is NOT ACCEPTED — leave it unchecked and explain the blocker rather than omitting it:\n${a.join("\n")}`), t.join("\n\n");
|
|
25703
25703
|
}
|
|
25704
25704
|
function uD(e) {
|
|
25705
25705
|
let t = [];
|
|
@@ -25745,7 +25745,7 @@ function pD(e) {
|
|
|
25745
25745
|
return i.length && t.push(i.join(" ")), t.join("\n\n");
|
|
25746
25746
|
}
|
|
25747
25747
|
var mD, hD, gD = t((() => {
|
|
25748
|
-
mD = "You are an expert engineer drafting a Linear issue for a development team.\nYou are given a rough note from the reporter and, when available, the exact React source\nlocation of the UI element the issue is about (captured from a running dev build).\n\nWrite a crisp, actionable issue a coding agent can execute against with zero follow-up\nquestions. Be specific, never invent details you were not given, and keep the tone neutral\nand technical. If the note implies a bug, structure it as a bug; if it implies a change or\nfeature, keep reproSteps minimal and focus the description on the desired change.\n\nThe issue renders in this exact section order — fill each field for its section:\nSummary (description field) → Steps to Reproduce (reproSteps) → Expected Behavior\n(expected) → Actual Behavior (actual) → Impact (impact) → Analysis / Notes\n(analysisNotes, markdown bullets grounded in the provided source context) →\nSuggested Next Steps (suggestedNextSteps, markdown bullets with concrete fixes).\nThe Summary is a short plain-prose paragraph — no headings inside it, no repetition\nof the other sections.", hD = "- FIRST, self-orient in the repo checkout (skip any path that doesn't exist):\n 1. Read `CLAUDE.md` and `AGENTS.md` at the repo root — the master map of product rules, architecture, and memory/skill pointers.\n 2. Skim `.claude/memory/MEMORY.md` (the index) to learn what project memory exists; load the specific `.claude/memory/*.md` files the map names for the surface you're touching.\n 3. Load the matching `.claude/skills/<name>/SKILL.md` files before designing, building UI, or animating (if skills are symlinked, follow them into `.agents/skills/`).\n Treat all of this as authoritative — it overrides your defaults.\n- Keep going until the code works and you're happy with the implementation.\n- MANDATORY COMPLETION GATE — the task is NOT complete (and you may not call it complete) until every step below is done, in order. Skipping any step silently is a FAILED task:\n 1. RUN the app and TEST your change hands-on (computer use / a real browser against the running app). Code reading alone does not count as verification.\n 2. RECORD a demo video or GIF showing the fix working (before → after where possible). If your environment genuinely cannot record media, capture before/after screenshots instead AND state explicitly in your closeout comment why video was not possible — never just omit the demo.\n 3. Open the PR, babysit it for the first set of review comments, and address them.\n 4. CLOSE OUT THE LINEAR ISSUE: post a completion comment (one-line fix summary + PR link), attach the demo media to the ISSUE itself (not only the PR), and move the issue to its review/done state.";
|
|
25748
|
+
mD = "You are an expert engineer drafting a Linear issue for a development team.\nYou are given a rough note from the reporter and, when available, the exact React source\nlocation of the UI element the issue is about (captured from a running dev build).\n\nWrite a crisp, actionable issue a coding agent can execute against with zero follow-up\nquestions. Be specific, never invent details you were not given, and keep the tone neutral\nand technical. If the note implies a bug, structure it as a bug; if it implies a change or\nfeature, keep reproSteps minimal and focus the description on the desired change.\n\nThe issue renders in this exact section order — fill each field for its section:\nSummary (description field) → Steps to Reproduce (reproSteps) → Expected Behavior\n(expected) → Actual Behavior (actual) → Impact (impact) → Analysis / Notes\n(analysisNotes, markdown bullets grounded in the provided source context) →\nSuggested Next Steps (suggestedNextSteps, markdown bullets with concrete fixes).\nThe Summary is a short plain-prose paragraph — no headings inside it, no repetition\nof the other sections.", hD = "- FIRST, self-orient in the repo checkout (skip any path that doesn't exist):\n 1. Read `CLAUDE.md` and `AGENTS.md` at the repo root — the master map of product rules, architecture, and memory/skill pointers.\n 2. Skim `.claude/memory/MEMORY.md` (the index) to learn what project memory exists; load the specific `.claude/memory/*.md` files the map names for the surface you're touching.\n 3. Load the matching `.claude/skills/<name>/SKILL.md` files before designing, building UI, or animating (if skills are symlinked, follow them into `.agents/skills/`).\n Treat all of this as authoritative — it overrides your defaults.\n- Keep going until the code works and you're happy with the implementation.\n- MANDATORY COMPLETION GATE — the task is NOT complete (and you may not call it complete) until every step below is done, in order. Skipping any step silently is a FAILED task:\n 1. RUN the app and TEST your change hands-on (computer use / a real browser against the running app). Code reading alone does not count as verification.\n 2. RECORD a demo video or GIF showing the fix working (before → after where possible). If your environment genuinely cannot record media, capture before/after screenshots instead AND state explicitly in your closeout comment why video was not possible — never just omit the demo.\n 3. Open the PR, babysit it for the first set of review comments, and address them. If the repo has preview deployments (e.g. Vercel), wait for the preview to go green and include its URL — deep-linked to the changed page — in the PR body, the Linear closeout, and the announcement.\n 4. CLOSE OUT THE LINEAR ISSUE: post a completion comment (one-line fix summary + PR link), attach the demo media to the ISSUE itself (not only the PR), and move the issue to its review/done state.";
|
|
25749
25749
|
})), _D = /* @__PURE__ */ r({
|
|
25750
25750
|
describeAiError: () => bD,
|
|
25751
25751
|
executeDraft: () => vD
|
|
@@ -26748,10 +26748,18 @@ async function BO() {
|
|
|
26748
26748
|
}).catch(() => void 0);
|
|
26749
26749
|
}
|
|
26750
26750
|
async function VO(e) {
|
|
26751
|
-
|
|
26751
|
+
if (!e.length) return {
|
|
26752
|
+
statuses: {},
|
|
26753
|
+
previews: {}
|
|
26754
|
+
};
|
|
26755
|
+
let t = await AO("/pr/status", {
|
|
26752
26756
|
method: "POST",
|
|
26753
26757
|
body: JSON.stringify({ urls: e })
|
|
26754
|
-
})
|
|
26758
|
+
});
|
|
26759
|
+
return {
|
|
26760
|
+
statuses: t.statuses ?? {},
|
|
26761
|
+
previews: t.previews ?? {}
|
|
26762
|
+
};
|
|
26755
26763
|
}
|
|
26756
26764
|
function HO(e) {
|
|
26757
26765
|
return AO("/pr/merge", {
|
|
@@ -43346,7 +43354,7 @@ function Y$(e) {
|
|
|
43346
43354
|
refetchInterval: 3e4,
|
|
43347
43355
|
retry: 0,
|
|
43348
43356
|
enabled: ie().length > 0
|
|
43349
|
-
})), se = (e) => ue().has(e) ? "MERGED" : oe.data?.[e], [ce, le] = T(null), [ue, de] = T(/* @__PURE__ */ new Set()), [fe, pe] = T(null), me = async (n) => {
|
|
43357
|
+
})), se = (e) => ue().has(e) ? "MERGED" : oe.data?.statuses[e], [ce, le] = T(null), [ue, de] = T(/* @__PURE__ */ new Set()), [fe, pe] = T(null), me = async (n) => {
|
|
43350
43358
|
pe(null), le(n);
|
|
43351
43359
|
try {
|
|
43352
43360
|
await HO(n), de((e) => new Set(e).add(n)), t.invalidateQueries({ queryKey: ["issue", e.issueId] }), t.invalidateQueries({ queryKey: ["my-issues"] }), VQ();
|
|
@@ -43584,6 +43592,20 @@ function Y$(e) {
|
|
|
43584
43592
|
return (() => {
|
|
43585
43593
|
var n = F$(), r = n.firstChild;
|
|
43586
43594
|
return P(r, () => e.title), P(n, j(M, {
|
|
43595
|
+
get when() {
|
|
43596
|
+
return t && oe.data?.previews[e.url];
|
|
43597
|
+
},
|
|
43598
|
+
get children() {
|
|
43599
|
+
return j(Aj, {
|
|
43600
|
+
get href() {
|
|
43601
|
+
return oe.data.previews[e.url];
|
|
43602
|
+
},
|
|
43603
|
+
class: "shrink-0",
|
|
43604
|
+
title: "Vercel deploy preview of this PR's branch",
|
|
43605
|
+
children: "Preview"
|
|
43606
|
+
});
|
|
43607
|
+
}
|
|
43608
|
+
}), null), P(n, j(M, {
|
|
43587
43609
|
get when() {
|
|
43588
43610
|
return $e(() => !!(t && se(e.url)))() && se(e.url) !== "OPEN";
|
|
43589
43611
|
},
|
|
@@ -43893,8 +43915,8 @@ function X$(e) {
|
|
|
43893
43915
|
rt(["click"]);
|
|
43894
43916
|
//#endregion
|
|
43895
43917
|
//#region src/panel/views/CloudView.tsx
|
|
43896
|
-
var Z$ = /*#__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\">"), Q$ = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1.5\">"), $$ = /*#__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\">"), e1 = /*#__PURE__*/ N("<button>"), t1 = /*#__PURE__*/ N("<div class=\"grid place-items-center py-10\">"), n1 = /*#__PURE__*/ N("<span class=\"font-mono text-text-dim shrink-0 text-[11px]\">"), r1 = /*#__PURE__*/ N("<span class=\"text-text min-w-0 truncate text-[12.5px] font-medium\">"), i1 = /*#__PURE__*/ N("<p class=\"text-text-dim line-clamp-2 text-[11.5px] leading-snug break-words\">"), a1 = /*#__PURE__*/ N("<span class=\"text-text-dim text-[11px]\">"), o1 = /*#__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>"),
|
|
43897
|
-
function
|
|
43918
|
+
var Z$ = /*#__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\">"), Q$ = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1.5\">"), $$ = /*#__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\">"), e1 = /*#__PURE__*/ N("<button>"), t1 = /*#__PURE__*/ N("<div class=\"grid place-items-center py-10\">"), n1 = /*#__PURE__*/ N("<span class=\"font-mono text-text-dim shrink-0 text-[11px]\">"), r1 = /*#__PURE__*/ N("<span class=\"text-text min-w-0 truncate text-[12.5px] font-medium\">"), i1 = /*#__PURE__*/ N("<p class=\"text-text-dim line-clamp-2 text-[11.5px] leading-snug break-words\">"), a1 = /*#__PURE__*/ N("<span class=\"text-text-dim text-[11px]\">"), o1 = /*#__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>"), s1 = /*#__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>"), c1 = /*#__PURE__*/ N("<span aria-hidden class=\"size-2 shrink-0 rounded-full\">"), l1 = /*#__PURE__*/ N("<span class=\"text-text-dim text-[12.5px]\">Conversation session");
|
|
43919
|
+
function u1() {
|
|
43898
43920
|
let e = _r(() => ({
|
|
43899
43921
|
queryKey: ["cloud-sessions"],
|
|
43900
43922
|
queryFn: hO,
|
|
@@ -43991,14 +44013,14 @@ function l1() {
|
|
|
43991
44013
|
return i();
|
|
43992
44014
|
},
|
|
43993
44015
|
children: (e) => (() => {
|
|
43994
|
-
var t =
|
|
44016
|
+
var t = s1(), n = t.firstChild, r = n.firstChild, i = n.nextSibling, s = i.firstChild;
|
|
43995
44017
|
return P(n, j(M, {
|
|
43996
44018
|
get when() {
|
|
43997
44019
|
return /active|pending/i.test(e().status);
|
|
43998
44020
|
},
|
|
43999
44021
|
get fallback() {
|
|
44000
44022
|
return (() => {
|
|
44001
|
-
var t =
|
|
44023
|
+
var t = c1();
|
|
44002
44024
|
return D((n) => dt(t, "background", a(e().status).color)), t;
|
|
44003
44025
|
})();
|
|
44004
44026
|
},
|
|
@@ -44010,7 +44032,7 @@ function l1() {
|
|
|
44010
44032
|
return e().issue;
|
|
44011
44033
|
},
|
|
44012
44034
|
get fallback() {
|
|
44013
|
-
return
|
|
44035
|
+
return l1();
|
|
44014
44036
|
},
|
|
44015
44037
|
get children() {
|
|
44016
44038
|
return [(() => {
|
|
@@ -44055,10 +44077,13 @@ function l1() {
|
|
|
44055
44077
|
get children() {
|
|
44056
44078
|
return [j(Cj, {
|
|
44057
44079
|
variant: "ghost",
|
|
44058
|
-
class: "
|
|
44080
|
+
class: "size-6 shrink-0 px-0",
|
|
44059
44081
|
title: "Open the thread — steer this agent",
|
|
44082
|
+
"aria-label": "Open thread",
|
|
44060
44083
|
onClick: () => ej("activity", e().issue.id),
|
|
44061
|
-
children
|
|
44084
|
+
get children() {
|
|
44085
|
+
return o1();
|
|
44086
|
+
}
|
|
44062
44087
|
}), j(Aj, {
|
|
44063
44088
|
get href() {
|
|
44064
44089
|
return e().issue.url;
|
|
@@ -44077,7 +44102,7 @@ function l1() {
|
|
|
44077
44102
|
//#endregion
|
|
44078
44103
|
//#region src/panel/views/LocalView.tsx
|
|
44079
44104
|
rt(["click"]), Br();
|
|
44080
|
-
var
|
|
44105
|
+
var d1 = /*#__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\">"), p1 = /*#__PURE__*/ N("<p>"), m1 = /*#__PURE__*/ N("<span class=\"text-text-faint max-w-[55%] truncate text-[10.5px] tabular-nums\"> running · "), h1 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1.5\">"), g1 = /*#__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\">"), _1 = /*#__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 "), y1 = /*#__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]\">"), b1 = /*#__PURE__*/ N("<option selected>"), x1 = /*#__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\">"), S1 = /*#__PURE__*/ N("<span class=\"text-success text-[12px] leading-none\">✓"), C1 = /*#__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\">"), w1 = /*#__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>"), T1 = /*#__PURE__*/ N("<span class=\"font-mono text-text-faint min-w-0 truncate text-[10.5px]\">"), E1 = /*#__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>−"), D1 = /*#__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\">"), O1 = /*#__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\">"), k1 = /*#__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\">"), A1 = /*#__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\">"), j1 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[4ch] text-center\">Send"), M1 = /*#__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]\">"), N1 = /*#__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\">"), P1 = /*#__PURE__*/ N("<span aria-hidden class=\"size-2 shrink-0 rounded-full\">"), F1 = /*#__PURE__*/ N("<div class=\"flex min-w-0 items-center gap-1.5\">"), I1 = /*#__PURE__*/ N("<option>"), L1 = /*#__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>"), R1 = /*#__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\">"), z1 = /*#__PURE__*/ N("<span class=text-success>+"), B1 = /*#__PURE__*/ N("<span class=text-danger>−"), V1 = /*#__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\">"), H1 = /*#__PURE__*/ N("<span class=text-text-faint>bin"), U1 = /*#__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"), W1 = /*#__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\">"), G1 = /*#__PURE__*/ N("<p class=\"text-text-faint text-[11px]\">Waiting for output…"), K1 = [
|
|
44081
44106
|
{
|
|
44082
44107
|
id: "",
|
|
44083
44108
|
label: "Default model"
|
|
@@ -44099,13 +44124,13 @@ var u1 = /*#__PURE__*/ N("<div class=\"border-accent/40 bg-accent-soft self-end
|
|
|
44099
44124
|
label: "Haiku"
|
|
44100
44125
|
}
|
|
44101
44126
|
];
|
|
44102
|
-
function
|
|
44127
|
+
function q1(e, t) {
|
|
44103
44128
|
let n = e.split(".").map(Number), r = t.split(".").map(Number);
|
|
44104
44129
|
for (let e = 0; e < 3; e++) if ((n[e] ?? 0) !== (r[e] ?? 0)) return (n[e] ?? 0) < (r[e] ?? 0);
|
|
44105
44130
|
return !1;
|
|
44106
44131
|
}
|
|
44107
|
-
var
|
|
44108
|
-
function
|
|
44132
|
+
var J1 = (e) => e == null ? "–" : e >= 1e3 ? `${(e / 1e3).toFixed(e >= 1e5 ? 0 : 1)}k` : String(e);
|
|
44133
|
+
function Y1() {
|
|
44109
44134
|
let e = sr(), t = _r(() => ({
|
|
44110
44135
|
queryKey: ["bridge-health"],
|
|
44111
44136
|
queryFn: jO,
|
|
@@ -44192,18 +44217,18 @@ function J1() {
|
|
|
44192
44217
|
}, ne = (e) => e === "running" ? "var(--color-accent)" : e === "done" ? "var(--color-success)" : e === "stopped" ? "var(--color-warn)" : "var(--color-danger)", re = (e) => {
|
|
44193
44218
|
let t = e.line.kind, n = k(() => t$(e.line.text));
|
|
44194
44219
|
return t === "user" ? (() => {
|
|
44195
|
-
var e =
|
|
44220
|
+
var e = d1(), t = e.firstChild.nextSibling;
|
|
44196
44221
|
return D(() => t.innerHTML = n()), e;
|
|
44197
44222
|
})() : t === "assistant" || t === "result" ? (() => {
|
|
44198
|
-
var e =
|
|
44223
|
+
var e = f1(), r = e.firstChild, i = r.nextSibling;
|
|
44199
44224
|
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;
|
|
44200
44225
|
})() : (() => {
|
|
44201
|
-
var n =
|
|
44226
|
+
var n = p1();
|
|
44202
44227
|
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;
|
|
44203
44228
|
})();
|
|
44204
44229
|
};
|
|
44205
44230
|
return (() => {
|
|
44206
|
-
var e =
|
|
44231
|
+
var e = g1(), a = e.firstChild;
|
|
44207
44232
|
a.firstChild;
|
|
44208
44233
|
var l = a.nextSibling;
|
|
44209
44234
|
return P(a, j(M, {
|
|
@@ -44219,7 +44244,7 @@ function J1() {
|
|
|
44219
44244
|
get children() {
|
|
44220
44245
|
return [j(M, {
|
|
44221
44246
|
get when() {
|
|
44222
|
-
return
|
|
44247
|
+
return q1(t.data.version, "0.15.1");
|
|
44223
44248
|
},
|
|
44224
44249
|
get children() {
|
|
44225
44250
|
return j(Nj, {
|
|
@@ -44235,7 +44260,7 @@ function J1() {
|
|
|
44235
44260
|
});
|
|
44236
44261
|
}
|
|
44237
44262
|
}), (() => {
|
|
44238
|
-
var e =
|
|
44263
|
+
var e = m1(), n = e.firstChild;
|
|
44239
44264
|
return P(e, () => t.data.active, n), P(e, () => t.data.cwd.split("/").slice(-2).join("/"), null), D(() => it(e, "title", t.data?.cwd)), e;
|
|
44240
44265
|
})()];
|
|
44241
44266
|
}
|
|
@@ -44249,7 +44274,7 @@ function J1() {
|
|
|
44249
44274
|
get children() {
|
|
44250
44275
|
return [
|
|
44251
44276
|
"Start it in your repo's terminal:",
|
|
44252
|
-
|
|
44277
|
+
_1(),
|
|
44253
44278
|
"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."
|
|
44254
44279
|
];
|
|
44255
44280
|
}
|
|
@@ -44267,20 +44292,20 @@ function J1() {
|
|
|
44267
44292
|
});
|
|
44268
44293
|
},
|
|
44269
44294
|
get children() {
|
|
44270
|
-
var e =
|
|
44295
|
+
var e = h1();
|
|
44271
44296
|
return P(e, j(Ge, {
|
|
44272
44297
|
get each() {
|
|
44273
44298
|
return n.data;
|
|
44274
44299
|
},
|
|
44275
44300
|
children: (e) => (() => {
|
|
44276
|
-
var t =
|
|
44301
|
+
var t = N1(), n = t.firstChild, a = n.firstChild, l = a.nextSibling, m = n.nextSibling, h = m.nextSibling, g = h.nextSibling;
|
|
44277
44302
|
return P(n, j(M, {
|
|
44278
44303
|
get when() {
|
|
44279
44304
|
return e().status === "running";
|
|
44280
44305
|
},
|
|
44281
44306
|
get fallback() {
|
|
44282
44307
|
return (() => {
|
|
44283
|
-
var t =
|
|
44308
|
+
var t = P1();
|
|
44284
44309
|
return D((n) => dt(t, "background", ne(e().status))), t;
|
|
44285
44310
|
})();
|
|
44286
44311
|
},
|
|
@@ -44333,8 +44358,8 @@ function J1() {
|
|
|
44333
44358
|
return e().usage;
|
|
44334
44359
|
},
|
|
44335
44360
|
get children() {
|
|
44336
|
-
var t =
|
|
44337
|
-
return n.nextSibling, P(t, () =>
|
|
44361
|
+
var t = v1(), n = t.firstChild.nextSibling;
|
|
44362
|
+
return n.nextSibling, P(t, () => J1(e().usage.contextTokens), n), P(t, () => J1(e().usage.outputTokens), null), P(t, (() => {
|
|
44338
44363
|
var t = $e(() => !!e().usage.costUsd);
|
|
44339
44364
|
return () => t() ? ` · $${e().usage.costUsd.toFixed(2)}` : "";
|
|
44340
44365
|
})(), null), t;
|
|
@@ -44344,7 +44369,7 @@ function J1() {
|
|
|
44344
44369
|
return o(e());
|
|
44345
44370
|
},
|
|
44346
44371
|
children: (e) => (() => {
|
|
44347
|
-
var t =
|
|
44372
|
+
var t = F1();
|
|
44348
44373
|
return P(t, j(Nj, { get children() {
|
|
44349
44374
|
return e().state.name;
|
|
44350
44375
|
} }), null), P(t, j(Aj, {
|
|
@@ -44359,7 +44384,7 @@ function J1() {
|
|
|
44359
44384
|
return $e(() => !!e().worktree)() && !e().worktree.removed;
|
|
44360
44385
|
},
|
|
44361
44386
|
get children() {
|
|
44362
|
-
var t =
|
|
44387
|
+
var t = y1(), n = t.firstChild;
|
|
44363
44388
|
return P(t, j(Nj, {
|
|
44364
44389
|
class: "text-warn",
|
|
44365
44390
|
children: "⎇ worktree"
|
|
@@ -44395,17 +44420,17 @@ function J1() {
|
|
|
44395
44420
|
title: "Model — applies from the next message",
|
|
44396
44421
|
get children() {
|
|
44397
44422
|
return [j(We, {
|
|
44398
|
-
each:
|
|
44423
|
+
each: K1,
|
|
44399
44424
|
children: (t) => (() => {
|
|
44400
|
-
var n =
|
|
44425
|
+
var n = I1();
|
|
44401
44426
|
return P(n, () => t.label), D(() => n.selected = (e().pendingModel ?? e().model ?? "") === t.id), D(() => n.value = t.id), n;
|
|
44402
44427
|
})()
|
|
44403
44428
|
}), j(M, {
|
|
44404
44429
|
get when() {
|
|
44405
|
-
return !
|
|
44430
|
+
return !K1.some((t) => t.id === (e().pendingModel ?? e().model ?? ""));
|
|
44406
44431
|
},
|
|
44407
44432
|
get children() {
|
|
44408
|
-
var t =
|
|
44433
|
+
var t = b1();
|
|
44409
44434
|
return P(t, () => e().pendingModel ?? e().model), D(() => t.value = e().pendingModel ?? e().model ?? ""), t;
|
|
44410
44435
|
}
|
|
44411
44436
|
})];
|
|
@@ -44430,7 +44455,7 @@ function J1() {
|
|
|
44430
44455
|
text: "Continue where you left off. If the work is already complete, finish any remaining closeout steps (PR, Linear update, announcement)."
|
|
44431
44456
|
}),
|
|
44432
44457
|
get children() {
|
|
44433
|
-
return
|
|
44458
|
+
return x1();
|
|
44434
44459
|
}
|
|
44435
44460
|
});
|
|
44436
44461
|
}
|
|
@@ -44444,7 +44469,7 @@ function J1() {
|
|
|
44444
44469
|
title: "Open the issue's Activity thread",
|
|
44445
44470
|
onClick: () => ej("activity", e().id),
|
|
44446
44471
|
get children() {
|
|
44447
|
-
return
|
|
44472
|
+
return L1();
|
|
44448
44473
|
}
|
|
44449
44474
|
})
|
|
44450
44475
|
}), null), P(g, j(Cj, {
|
|
@@ -44463,10 +44488,10 @@ function J1() {
|
|
|
44463
44488
|
return ee() === e().id;
|
|
44464
44489
|
},
|
|
44465
44490
|
get fallback() {
|
|
44466
|
-
return
|
|
44491
|
+
return R1();
|
|
44467
44492
|
},
|
|
44468
44493
|
get children() {
|
|
44469
|
-
return
|
|
44494
|
+
return S1();
|
|
44470
44495
|
}
|
|
44471
44496
|
});
|
|
44472
44497
|
}
|
|
@@ -44478,7 +44503,7 @@ function J1() {
|
|
|
44478
44503
|
},
|
|
44479
44504
|
onClick: () => i(r() === e().id ? null : e().id),
|
|
44480
44505
|
get children() {
|
|
44481
|
-
return
|
|
44506
|
+
return C1();
|
|
44482
44507
|
}
|
|
44483
44508
|
}), null), P(g, j(M, {
|
|
44484
44509
|
get when() {
|
|
@@ -44494,7 +44519,7 @@ function J1() {
|
|
|
44494
44519
|
title: "Interrupt — the session stays resumable",
|
|
44495
44520
|
onClick: () => u.mutate(e().id),
|
|
44496
44521
|
get children() {
|
|
44497
|
-
return
|
|
44522
|
+
return w1();
|
|
44498
44523
|
}
|
|
44499
44524
|
});
|
|
44500
44525
|
}
|
|
@@ -44509,7 +44534,7 @@ function J1() {
|
|
|
44509
44534
|
return $e(() => !!c.data)() && (c.data.files.length || c.data.untracked.length || c.data.prs.length);
|
|
44510
44535
|
},
|
|
44511
44536
|
get children() {
|
|
44512
|
-
var e =
|
|
44537
|
+
var e = E1(), t = e.firstChild, n = t.firstChild.nextSibling, r = n.firstChild;
|
|
44513
44538
|
r.firstChild;
|
|
44514
44539
|
var i = r.nextSibling.nextSibling;
|
|
44515
44540
|
return i.firstChild, P(t, j(M, {
|
|
@@ -44517,7 +44542,7 @@ function J1() {
|
|
|
44517
44542
|
return c.data.branch;
|
|
44518
44543
|
},
|
|
44519
44544
|
get children() {
|
|
44520
|
-
var e =
|
|
44545
|
+
var e = T1();
|
|
44521
44546
|
return P(e, () => c.data.branch), e;
|
|
44522
44547
|
}
|
|
44523
44548
|
}), n), P(r, () => c.data.totalAdded, null), P(i, () => c.data.totalDeleted, null), P(e, j(We, {
|
|
@@ -44525,23 +44550,23 @@ function J1() {
|
|
|
44525
44550
|
return c.data.files;
|
|
44526
44551
|
},
|
|
44527
44552
|
children: (e) => (() => {
|
|
44528
|
-
var t =
|
|
44553
|
+
var t = V1(), n = t.firstChild, r = n.nextSibling;
|
|
44529
44554
|
return P(n, () => e.path), P(r, j(M, {
|
|
44530
44555
|
get when() {
|
|
44531
44556
|
return !e.binary;
|
|
44532
44557
|
},
|
|
44533
44558
|
get fallback() {
|
|
44534
|
-
return
|
|
44559
|
+
return H1();
|
|
44535
44560
|
},
|
|
44536
44561
|
get children() {
|
|
44537
44562
|
return [
|
|
44538
44563
|
(() => {
|
|
44539
|
-
var t =
|
|
44564
|
+
var t = z1();
|
|
44540
44565
|
return t.firstChild, P(t, () => e.added, null), t;
|
|
44541
44566
|
})(),
|
|
44542
44567
|
" ",
|
|
44543
44568
|
(() => {
|
|
44544
|
-
var t =
|
|
44569
|
+
var t = B1();
|
|
44545
44570
|
return t.firstChild, P(t, () => e.deleted, null), t;
|
|
44546
44571
|
})()
|
|
44547
44572
|
];
|
|
@@ -44553,7 +44578,7 @@ function J1() {
|
|
|
44553
44578
|
return c.data.untracked;
|
|
44554
44579
|
},
|
|
44555
44580
|
children: (e) => (() => {
|
|
44556
|
-
var t =
|
|
44581
|
+
var t = U1(), n = t.firstChild;
|
|
44557
44582
|
return it(n, "title", e), P(n, e), t;
|
|
44558
44583
|
})()
|
|
44559
44584
|
}), null), P(e, j(We, {
|
|
@@ -44561,7 +44586,7 @@ function J1() {
|
|
|
44561
44586
|
return c.data.prs;
|
|
44562
44587
|
},
|
|
44563
44588
|
children: (e) => (() => {
|
|
44564
|
-
var t =
|
|
44589
|
+
var t = W1(), n = t.firstChild;
|
|
44565
44590
|
return P(t, j(Nj, {
|
|
44566
44591
|
class: "text-accent",
|
|
44567
44592
|
get children() {
|
|
@@ -44579,7 +44604,7 @@ function J1() {
|
|
|
44579
44604
|
}
|
|
44580
44605
|
}),
|
|
44581
44606
|
(() => {
|
|
44582
|
-
var e =
|
|
44607
|
+
var e = D1();
|
|
44583
44608
|
return e.addEventListener("scroll", E), pt((e) => {
|
|
44584
44609
|
C = e, w = !0;
|
|
44585
44610
|
}, e), P(e, j(M, {
|
|
@@ -44587,7 +44612,7 @@ function J1() {
|
|
|
44587
44612
|
return (s.data?.tail ?? []).length > 0;
|
|
44588
44613
|
},
|
|
44589
44614
|
get fallback() {
|
|
44590
|
-
return
|
|
44615
|
+
return G1();
|
|
44591
44616
|
},
|
|
44592
44617
|
get children() {
|
|
44593
44618
|
return j(Ge, {
|
|
@@ -44602,7 +44627,7 @@ function J1() {
|
|
|
44602
44627
|
})), e;
|
|
44603
44628
|
})(),
|
|
44604
44629
|
(() => {
|
|
44605
|
-
var t =
|
|
44630
|
+
var t = M1(), n = t.firstChild, r = n.firstChild;
|
|
44606
44631
|
return P(t, j(Ej, {
|
|
44607
44632
|
rows: 2,
|
|
44608
44633
|
get placeholder() {
|
|
@@ -44622,7 +44647,7 @@ function J1() {
|
|
|
44622
44647
|
"aria-label": "Pick element",
|
|
44623
44648
|
onClick: v,
|
|
44624
44649
|
get children() {
|
|
44625
|
-
return
|
|
44650
|
+
return O1();
|
|
44626
44651
|
}
|
|
44627
44652
|
}), null), P(n, j(Cj, {
|
|
44628
44653
|
variant: "ghost",
|
|
@@ -44634,7 +44659,7 @@ function J1() {
|
|
|
44634
44659
|
"aria-label": "Attach captures",
|
|
44635
44660
|
onClick: () => void y(),
|
|
44636
44661
|
get children() {
|
|
44637
|
-
return
|
|
44662
|
+
return k1();
|
|
44638
44663
|
}
|
|
44639
44664
|
}), null), P(n, j(Cj, {
|
|
44640
44665
|
variant: "ghost",
|
|
@@ -44649,7 +44674,7 @@ function J1() {
|
|
|
44649
44674
|
text: "/compact"
|
|
44650
44675
|
}),
|
|
44651
44676
|
get children() {
|
|
44652
|
-
return
|
|
44677
|
+
return A1();
|
|
44653
44678
|
}
|
|
44654
44679
|
}), null), P(n, j(Cj, {
|
|
44655
44680
|
variant: "primary",
|
|
@@ -44665,7 +44690,7 @@ function J1() {
|
|
|
44665
44690
|
text: d().trim()
|
|
44666
44691
|
}),
|
|
44667
44692
|
get children() {
|
|
44668
|
-
return
|
|
44693
|
+
return j1();
|
|
44669
44694
|
}
|
|
44670
44695
|
}), null), t;
|
|
44671
44696
|
})()
|
|
@@ -44682,13 +44707,13 @@ function J1() {
|
|
|
44682
44707
|
}
|
|
44683
44708
|
//#endregion
|
|
44684
44709
|
//#region src/panel/views/PrsView.tsx
|
|
44685
|
-
var
|
|
44686
|
-
function
|
|
44710
|
+
var X1 = /*#__PURE__*/ N("<span class=\"text-text-faint text-[10.5px] tabular-nums\">/<!> from your issues"), Z1 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1.5\">"), Q1 = /*#__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\">"), $1 = /*#__PURE__*/ N("<span class=\"text-warn text-[10.5px]\"title=\"Merge states come from gh via the bridge\">states unknown — restart the bridge"), e0 = /*#__PURE__*/ N("<button>"), t0 = /*#__PURE__*/ N("<span class=\"text-[12px] leading-none\">✓"), n0 = /*#__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>"), r0 = /*#__PURE__*/ N("<span class=\"text-success text-[12px] leading-none\">✓"), i0 = /*#__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\">"), 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\">"), o0 = /*#__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\">"), s0 = /github\.com\/[^/]+\/[^/]+\/pull\/\d+/i;
|
|
44711
|
+
function c0(e) {
|
|
44687
44712
|
let t = _r(() => ({
|
|
44688
44713
|
queryKey: ["my-issues"],
|
|
44689
44714
|
queryFn: fO,
|
|
44690
44715
|
refetchInterval: 15e3
|
|
44691
|
-
})), n = k(() => (t.data ?? []).flatMap((e) => (e.attachments ?? []).filter((e) =>
|
|
44716
|
+
})), n = k(() => (t.data ?? []).flatMap((e) => (e.attachments ?? []).filter((e) => s0.test(e.url)).map((t) => ({
|
|
44692
44717
|
issue: e,
|
|
44693
44718
|
attachment: t
|
|
44694
44719
|
})))), r = _r(() => ({
|
|
@@ -44702,7 +44727,7 @@ function s0(e) {
|
|
|
44702
44727
|
refetchInterval: 3e4,
|
|
44703
44728
|
retry: 0,
|
|
44704
44729
|
enabled: n().length > 0
|
|
44705
|
-
})), a = (e) => g().has(e.attachment.url) ? "MERGED" : i.data?.[e.attachment.url], o = (e) => !!r.data?.some((t) => t.title.startsWith(e.issue.identifier)), [s, c] = T("all"), [l, u] = T(""), d = k(() => {
|
|
44730
|
+
})), a = (e) => g().has(e.attachment.url) ? "MERGED" : i.data?.statuses[e.attachment.url], o = (e) => !!r.data?.some((t) => t.title.startsWith(e.issue.identifier)), [s, c] = T("all"), [l, u] = T(""), d = k(() => {
|
|
44706
44731
|
let e = l().trim().toLowerCase();
|
|
44707
44732
|
return n().filter((t) => {
|
|
44708
44733
|
let n = t.issue.state.type;
|
|
@@ -44725,7 +44750,7 @@ function s0(e) {
|
|
|
44725
44750
|
} catch {}
|
|
44726
44751
|
};
|
|
44727
44752
|
return (() => {
|
|
44728
|
-
var r =
|
|
44753
|
+
var r = Q1(), p = r.firstChild;
|
|
44729
44754
|
p.firstChild;
|
|
44730
44755
|
var h = p.nextSibling, _ = h.firstChild, b = h.nextSibling;
|
|
44731
44756
|
return P(p, j(M, {
|
|
@@ -44733,10 +44758,10 @@ function s0(e) {
|
|
|
44733
44758
|
return !i.isError;
|
|
44734
44759
|
},
|
|
44735
44760
|
get fallback() {
|
|
44736
|
-
return
|
|
44761
|
+
return $1();
|
|
44737
44762
|
},
|
|
44738
44763
|
get children() {
|
|
44739
|
-
var e =
|
|
44764
|
+
var e = X1(), t = e.firstChild, r = t.nextSibling;
|
|
44740
44765
|
return r.nextSibling, P(e, () => d().length, t), P(e, () => n().length, r), e;
|
|
44741
44766
|
}
|
|
44742
44767
|
}), null), P(_, j(We, {
|
|
@@ -44759,7 +44784,7 @@ function s0(e) {
|
|
|
44759
44784
|
}
|
|
44760
44785
|
],
|
|
44761
44786
|
children: (e) => (() => {
|
|
44762
|
-
var t =
|
|
44787
|
+
var t = e0();
|
|
44763
44788
|
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;
|
|
44764
44789
|
})()
|
|
44765
44790
|
})), P(h, j(Tj, {
|
|
@@ -44782,18 +44807,32 @@ function s0(e) {
|
|
|
44782
44807
|
});
|
|
44783
44808
|
},
|
|
44784
44809
|
get children() {
|
|
44785
|
-
var t =
|
|
44810
|
+
var t = Z1();
|
|
44786
44811
|
return P(t, j(We, {
|
|
44787
44812
|
get each() {
|
|
44788
44813
|
return d();
|
|
44789
44814
|
},
|
|
44790
44815
|
children: (t) => (() => {
|
|
44791
|
-
var n =
|
|
44792
|
-
return P(r, () => t.attachment.title || t.attachment.url), P(
|
|
44816
|
+
var n = i0(), r = n.firstChild, s = r.nextSibling, c = s.firstChild, l = c.nextSibling, u = l.nextSibling, d = s.nextSibling, p = d.firstChild;
|
|
44817
|
+
return P(r, () => t.attachment.title || t.attachment.url), P(n, j(M, {
|
|
44818
|
+
get when() {
|
|
44819
|
+
return i.data?.previews[t.attachment.url];
|
|
44820
|
+
},
|
|
44821
|
+
get children() {
|
|
44822
|
+
return j(Aj, {
|
|
44823
|
+
get href() {
|
|
44824
|
+
return i.data.previews[t.attachment.url];
|
|
44825
|
+
},
|
|
44826
|
+
class: "shrink-0 self-start",
|
|
44827
|
+
title: "Vercel deploy preview of this PR's branch",
|
|
44828
|
+
children: "Preview"
|
|
44829
|
+
});
|
|
44830
|
+
}
|
|
44831
|
+
}), s), P(s, j(Pj, { get color() {
|
|
44793
44832
|
return t.issue.state.color;
|
|
44794
|
-
} }),
|
|
44833
|
+
} }), c), P(c, () => t.issue.identifier), P(l, () => t.issue.title), P(u, () => Rj(t.issue.updatedAt)), P(d, j(Nj, { get children() {
|
|
44795
44834
|
return t.issue.state.name;
|
|
44796
|
-
} }),
|
|
44835
|
+
} }), p), P(d, j(M, {
|
|
44797
44836
|
get when() {
|
|
44798
44837
|
return t.issue.delegate;
|
|
44799
44838
|
},
|
|
@@ -44809,7 +44848,7 @@ function s0(e) {
|
|
|
44809
44848
|
}
|
|
44810
44849
|
});
|
|
44811
44850
|
}
|
|
44812
|
-
}),
|
|
44851
|
+
}), p), P(d, j(M, {
|
|
44813
44852
|
get when() {
|
|
44814
44853
|
return o(t);
|
|
44815
44854
|
},
|
|
@@ -44821,14 +44860,14 @@ function s0(e) {
|
|
|
44821
44860
|
}
|
|
44822
44861
|
});
|
|
44823
44862
|
}
|
|
44824
|
-
}),
|
|
44863
|
+
}), p), P(d, j(Aj, {
|
|
44825
44864
|
get href() {
|
|
44826
44865
|
return t.issue.url;
|
|
44827
44866
|
},
|
|
44828
44867
|
class: "shrink-0",
|
|
44829
44868
|
title: "Open the issue in Linear",
|
|
44830
44869
|
children: "Linear"
|
|
44831
|
-
}),
|
|
44870
|
+
}), p), P(p, j(M, {
|
|
44832
44871
|
get when() {
|
|
44833
44872
|
return $e(() => !!a(t))() && a(t) !== "OPEN";
|
|
44834
44873
|
},
|
|
@@ -44842,7 +44881,7 @@ function s0(e) {
|
|
|
44842
44881
|
}
|
|
44843
44882
|
});
|
|
44844
44883
|
}
|
|
44845
|
-
}), null), P(
|
|
44884
|
+
}), null), P(p, j(Cj, {
|
|
44846
44885
|
variant: "primary",
|
|
44847
44886
|
class: "size-7 px-0",
|
|
44848
44887
|
get classList() {
|
|
@@ -44865,14 +44904,14 @@ function s0(e) {
|
|
|
44865
44904
|
return g().has(t.attachment.url);
|
|
44866
44905
|
},
|
|
44867
44906
|
get fallback() {
|
|
44868
|
-
return
|
|
44907
|
+
return a0();
|
|
44869
44908
|
},
|
|
44870
44909
|
get children() {
|
|
44871
|
-
return
|
|
44910
|
+
return t0();
|
|
44872
44911
|
}
|
|
44873
44912
|
});
|
|
44874
44913
|
}
|
|
44875
|
-
}), null), P(
|
|
44914
|
+
}), null), P(p, j(Cj, {
|
|
44876
44915
|
variant: "ghost",
|
|
44877
44916
|
class: "size-7 px-0",
|
|
44878
44917
|
title: "Open the issue's Activity thread",
|
|
@@ -44881,9 +44920,9 @@ function s0(e) {
|
|
|
44881
44920
|
ej("activity", t.issue.id), e.onOpenIssue();
|
|
44882
44921
|
},
|
|
44883
44922
|
get children() {
|
|
44884
|
-
return
|
|
44923
|
+
return n0();
|
|
44885
44924
|
}
|
|
44886
|
-
}), null), P(
|
|
44925
|
+
}), null), P(p, j(Cj, {
|
|
44887
44926
|
variant: "ghost",
|
|
44888
44927
|
class: "size-7 px-0",
|
|
44889
44928
|
title: "Copy PR URL",
|
|
@@ -44895,10 +44934,10 @@ function s0(e) {
|
|
|
44895
44934
|
return f() === t.attachment.id;
|
|
44896
44935
|
},
|
|
44897
44936
|
get fallback() {
|
|
44898
|
-
return
|
|
44937
|
+
return o0();
|
|
44899
44938
|
},
|
|
44900
44939
|
get children() {
|
|
44901
|
-
return
|
|
44940
|
+
return r0();
|
|
44902
44941
|
}
|
|
44903
44942
|
});
|
|
44904
44943
|
}
|
|
@@ -44918,13 +44957,13 @@ function s0(e) {
|
|
|
44918
44957
|
//#endregion
|
|
44919
44958
|
//#region src/lib/linear/auth.ts
|
|
44920
44959
|
rt(["click"]), Br();
|
|
44921
|
-
function
|
|
44960
|
+
function l0(e) {
|
|
44922
44961
|
let t = "";
|
|
44923
44962
|
for (let n of e) t += String.fromCharCode(n);
|
|
44924
44963
|
return btoa(t).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
|
|
44925
44964
|
}
|
|
44926
|
-
async function
|
|
44927
|
-
let t =
|
|
44965
|
+
async function u0(e) {
|
|
44966
|
+
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");
|
|
44928
44967
|
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");
|
|
44929
44968
|
let s = await chrome.identity.launchWebAuthFlow({
|
|
44930
44969
|
url: o.toString(),
|
|
@@ -44952,15 +44991,15 @@ async function l0(e) {
|
|
|
44952
44991
|
linearOauthClientId: e
|
|
44953
44992
|
});
|
|
44954
44993
|
}
|
|
44955
|
-
async function
|
|
44994
|
+
async function d0() {
|
|
44956
44995
|
await Er({
|
|
44957
44996
|
linearAccessToken: void 0,
|
|
44958
44997
|
linearApiKey: void 0
|
|
44959
44998
|
});
|
|
44960
44999
|
}
|
|
44961
45000
|
Br(), Sr(), Fx(), gD();
|
|
44962
|
-
var
|
|
44963
|
-
function
|
|
45001
|
+
var f0 = /*#__PURE__*/ N("<div class=\"bg-surface-2 border-border flex rounded-md border p-0.5\">"), p0 = /*#__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."), m0 = /*#__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"), h0 = /*#__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)."), g0 = /*#__PURE__*/ N("<span class=text-text>Connected as <span class=font-medium></span> · <span class=text-text-dim>"), _0 = /*#__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]\">"), v0 = /*#__PURE__*/ N("<option value>Select a team…"), y0 = /*#__PURE__*/ N("<option value>No project"), b0 = /*#__PURE__*/ N("<div class=\"flex flex-wrap gap-1\">"), x0 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">No agents found — install the Cursor integration in Linear first."), S0 = /*#__PURE__*/ N("<span class=\"text-text-faint text-[10.5px] leading-snug\">Empty = the default above (computer-use testing, video demo, PR + review babysitting)."), C0 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1.5\">"), w0 = /*#__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."), T0 = /*#__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."), E0 = /*#__PURE__*/ N("<option value>Select a channel…"), D0 = /*#__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"), O0 = /*#__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."), k0 = /*#__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"), A0 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">"), j0 = /*#__PURE__*/ N("<div class=min-h-[2lh]>"), M0 = /*#__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."), N0 = /*#__PURE__*/ N("<div class=\"flex h-full flex-col gap-5 overflow-y-auto pt-3 pb-6 pl-3 pr-4\">"), P0 = /*#__PURE__*/ N("<button>"), F0 = /*#__PURE__*/ N("<div class=\"flex gap-1.5\">"), I0 = /*#__PURE__*/ N("<p class=\"text-text-faint text-center text-[10.5px]\">or"), L0 = /*#__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\">"), R0 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-3\">"), z0 = /*#__PURE__*/ N("<span class=text-text-dim>Connected — verifying…"), B0 = /*#__PURE__*/ N("<option> (<!>)"), V0 = /*#__PURE__*/ N("<option>"), H0 = /*#__PURE__*/ N("<button type=button><span class=\"mr-1 inline-block size-2 rounded-full align-middle\">"), U0 = /*#__PURE__*/ N("<option value>Select the agent…"), W0 = /*#__PURE__*/ N("<option>#"), G0 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">No key set — AI drafting disabled, manual drafting still works.");
|
|
45002
|
+
function K0() {
|
|
44964
45003
|
let e = sr(), t = _r(() => ({
|
|
44965
45004
|
queryKey: ["settings"],
|
|
44966
45005
|
queryFn: Tr,
|
|
@@ -45013,7 +45052,7 @@ function G0() {
|
|
|
45013
45052
|
}
|
|
45014
45053
|
b(!0), S("");
|
|
45015
45054
|
try {
|
|
45016
|
-
await
|
|
45055
|
+
await u0(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"] });
|
|
45017
45056
|
} catch (e) {
|
|
45018
45057
|
S(e instanceof Error ? e.message : "OAuth flow failed.");
|
|
45019
45058
|
} finally {
|
|
@@ -45024,7 +45063,7 @@ function G0() {
|
|
|
45024
45063
|
async function O() {
|
|
45025
45064
|
E(!0);
|
|
45026
45065
|
try {
|
|
45027
|
-
await
|
|
45066
|
+
await d0(), 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"] });
|
|
45028
45067
|
} finally {
|
|
45029
45068
|
E(!1);
|
|
45030
45069
|
}
|
|
@@ -45040,12 +45079,12 @@ function G0() {
|
|
|
45040
45079
|
return e ? `Drafting with ${e} — ${Nx[e].fast} (fast) / ${Nx[e].best} (best)` : null;
|
|
45041
45080
|
});
|
|
45042
45081
|
return (() => {
|
|
45043
|
-
var e =
|
|
45082
|
+
var e = N0();
|
|
45044
45083
|
return P(e, j(Mj, {
|
|
45045
45084
|
title: "Workflow",
|
|
45046
45085
|
get children() {
|
|
45047
45086
|
return [(() => {
|
|
45048
|
-
var e =
|
|
45087
|
+
var e = f0();
|
|
45049
45088
|
return P(e, j(We, {
|
|
45050
45089
|
each: [{
|
|
45051
45090
|
id: "cloud",
|
|
@@ -45055,19 +45094,19 @@ function G0() {
|
|
|
45055
45094
|
label: "Local · clipboard"
|
|
45056
45095
|
}],
|
|
45057
45096
|
children: (e) => (() => {
|
|
45058
|
-
var t =
|
|
45097
|
+
var t = P0();
|
|
45059
45098
|
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;
|
|
45060
45099
|
})()
|
|
45061
45100
|
})), e;
|
|
45062
|
-
})(),
|
|
45101
|
+
})(), p0()];
|
|
45063
45102
|
}
|
|
45064
45103
|
}), null), P(e, j(Mj, {
|
|
45065
45104
|
title: "Capture",
|
|
45066
45105
|
get children() {
|
|
45067
45106
|
return [(() => {
|
|
45068
|
-
var e =
|
|
45107
|
+
var e = m0(), t = e.firstChild;
|
|
45069
45108
|
return t.addEventListener("change", (e) => void r({ captureShots: e.currentTarget.checked || void 0 })), D(() => t.checked = !!n().captureShots), e;
|
|
45070
|
-
})(),
|
|
45109
|
+
})(), h0()];
|
|
45071
45110
|
}
|
|
45072
45111
|
}), null), P(e, j(Mj, {
|
|
45073
45112
|
title: "Linear",
|
|
@@ -45078,13 +45117,13 @@ function G0() {
|
|
|
45078
45117
|
},
|
|
45079
45118
|
get fallback() {
|
|
45080
45119
|
return (() => {
|
|
45081
|
-
var e =
|
|
45120
|
+
var e = R0();
|
|
45082
45121
|
return P(e, j(jj, {
|
|
45083
45122
|
label: "Personal API key",
|
|
45084
45123
|
hint: "Create one at linear.app → Settings → API — fastest path.",
|
|
45085
45124
|
get children() {
|
|
45086
45125
|
return [(() => {
|
|
45087
|
-
var e =
|
|
45126
|
+
var e = F0();
|
|
45088
45127
|
return P(e, j(Tj, {
|
|
45089
45128
|
type: "password",
|
|
45090
45129
|
placeholder: "lin_api_…",
|
|
@@ -45121,12 +45160,12 @@ function G0() {
|
|
|
45121
45160
|
}), null), P(e, j(M, {
|
|
45122
45161
|
when: xr,
|
|
45123
45162
|
get children() {
|
|
45124
|
-
return [
|
|
45163
|
+
return [I0(), j(jj, {
|
|
45125
45164
|
label: "OAuth client ID",
|
|
45126
45165
|
get children() {
|
|
45127
45166
|
return [
|
|
45128
45167
|
(() => {
|
|
45129
|
-
var e =
|
|
45168
|
+
var e = F0();
|
|
45130
45169
|
return P(e, j(Tj, {
|
|
45131
45170
|
placeholder: "your-client-id",
|
|
45132
45171
|
get value() {
|
|
@@ -45154,7 +45193,7 @@ function G0() {
|
|
|
45154
45193
|
}
|
|
45155
45194
|
}),
|
|
45156
45195
|
(() => {
|
|
45157
|
-
var e =
|
|
45196
|
+
var e = L0(), t = e.firstChild.nextSibling.nextSibling;
|
|
45158
45197
|
return P(t, ee), e;
|
|
45159
45198
|
})()
|
|
45160
45199
|
];
|
|
@@ -45165,13 +45204,13 @@ function G0() {
|
|
|
45165
45204
|
})();
|
|
45166
45205
|
},
|
|
45167
45206
|
get children() {
|
|
45168
|
-
var e =
|
|
45207
|
+
var e = _0(), t = e.firstChild;
|
|
45169
45208
|
return P(t, j(M, {
|
|
45170
45209
|
get when() {
|
|
45171
45210
|
return !a.isLoading;
|
|
45172
45211
|
},
|
|
45173
45212
|
get fallback() {
|
|
45174
|
-
return
|
|
45213
|
+
return z0();
|
|
45175
45214
|
},
|
|
45176
45215
|
get children() {
|
|
45177
45216
|
return j(M, {
|
|
@@ -45184,7 +45223,7 @@ function G0() {
|
|
|
45184
45223
|
return a.isError;
|
|
45185
45224
|
},
|
|
45186
45225
|
get fallback() {
|
|
45187
|
-
return
|
|
45226
|
+
return z0();
|
|
45188
45227
|
},
|
|
45189
45228
|
get children() {
|
|
45190
45229
|
return j(Ij, { message: "Key rejected — reconnect" });
|
|
@@ -45192,7 +45231,7 @@ function G0() {
|
|
|
45192
45231
|
});
|
|
45193
45232
|
},
|
|
45194
45233
|
get children() {
|
|
45195
|
-
var e =
|
|
45234
|
+
var e = g0(), t = e.firstChild.nextSibling, n = t.nextSibling.nextSibling;
|
|
45196
45235
|
return P(t, () => a.data.name), P(n, () => a.data.email), e;
|
|
45197
45236
|
}
|
|
45198
45237
|
});
|
|
@@ -45233,7 +45272,7 @@ function G0() {
|
|
|
45233
45272
|
return o.isLoading;
|
|
45234
45273
|
},
|
|
45235
45274
|
get children() {
|
|
45236
|
-
return [
|
|
45275
|
+
return [v0(), j(M, {
|
|
45237
45276
|
get when() {
|
|
45238
45277
|
return o.data;
|
|
45239
45278
|
},
|
|
@@ -45243,7 +45282,7 @@ function G0() {
|
|
|
45243
45282
|
return o.data;
|
|
45244
45283
|
},
|
|
45245
45284
|
children: (e) => (() => {
|
|
45246
|
-
var t =
|
|
45285
|
+
var t = B0(), r = t.firstChild, i = r.nextSibling;
|
|
45247
45286
|
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;
|
|
45248
45287
|
})()
|
|
45249
45288
|
});
|
|
@@ -45267,14 +45306,14 @@ function G0() {
|
|
|
45267
45306
|
},
|
|
45268
45307
|
get children() {
|
|
45269
45308
|
return [(() => {
|
|
45270
|
-
var e =
|
|
45309
|
+
var e = y0();
|
|
45271
45310
|
return D(() => e.selected = !n().defaultProjectId), e;
|
|
45272
45311
|
})(), j(We, {
|
|
45273
45312
|
get each() {
|
|
45274
45313
|
return s.data ?? [];
|
|
45275
45314
|
},
|
|
45276
45315
|
children: (e) => (() => {
|
|
45277
|
-
var t =
|
|
45316
|
+
var t = V0();
|
|
45278
45317
|
return P(t, () => e.name), D(() => t.selected = e.id === n().defaultProjectId), D(() => t.value = e.id), t;
|
|
45279
45318
|
})()
|
|
45280
45319
|
})];
|
|
@@ -45286,7 +45325,7 @@ function G0() {
|
|
|
45286
45325
|
label: "Default labels",
|
|
45287
45326
|
hint: "Applied to every issue created from the panel.",
|
|
45288
45327
|
get children() {
|
|
45289
|
-
var e =
|
|
45328
|
+
var e = b0();
|
|
45290
45329
|
return P(e, j(We, {
|
|
45291
45330
|
get each() {
|
|
45292
45331
|
return c.data ?? [];
|
|
@@ -45294,7 +45333,7 @@ function G0() {
|
|
|
45294
45333
|
children: (e) => {
|
|
45295
45334
|
let t = () => (n().defaultLabelIds ?? []).includes(e.id);
|
|
45296
45335
|
return (() => {
|
|
45297
|
-
var i =
|
|
45336
|
+
var i = H0(), a = i.firstChild;
|
|
45298
45337
|
return i.$$click = () => {
|
|
45299
45338
|
let i = n().defaultLabelIds ?? [];
|
|
45300
45339
|
r({ defaultLabelIds: t() ? i.filter((t) => t !== e.id) : [...i, e.id] });
|
|
@@ -45344,7 +45383,7 @@ function G0() {
|
|
|
45344
45383
|
return l.isLoading;
|
|
45345
45384
|
},
|
|
45346
45385
|
get children() {
|
|
45347
|
-
return [
|
|
45386
|
+
return [U0(), j(M, {
|
|
45348
45387
|
get when() {
|
|
45349
45388
|
return l.data;
|
|
45350
45389
|
},
|
|
@@ -45354,7 +45393,7 @@ function G0() {
|
|
|
45354
45393
|
return l.data;
|
|
45355
45394
|
},
|
|
45356
45395
|
children: (e) => (() => {
|
|
45357
|
-
var t =
|
|
45396
|
+
var t = V0();
|
|
45358
45397
|
return P(t, () => e.displayName), D(() => t.selected = e.id === n().cursorAgentId), D(() => t.value = e.id), t;
|
|
45359
45398
|
})()
|
|
45360
45399
|
});
|
|
@@ -45364,7 +45403,7 @@ function G0() {
|
|
|
45364
45403
|
});
|
|
45365
45404
|
},
|
|
45366
45405
|
get children() {
|
|
45367
|
-
return
|
|
45406
|
+
return x0();
|
|
45368
45407
|
}
|
|
45369
45408
|
});
|
|
45370
45409
|
}
|
|
@@ -45412,7 +45451,7 @@ function G0() {
|
|
|
45412
45451
|
onBlur: (e) => {
|
|
45413
45452
|
r({ issueTemplate: e.currentTarget.value.trim() || void 0 });
|
|
45414
45453
|
}
|
|
45415
|
-
}),
|
|
45454
|
+
}), S0()];
|
|
45416
45455
|
}
|
|
45417
45456
|
}),
|
|
45418
45457
|
j(jj, {
|
|
@@ -45469,7 +45508,7 @@ function G0() {
|
|
|
45469
45508
|
label: "Test account",
|
|
45470
45509
|
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.",
|
|
45471
45510
|
get children() {
|
|
45472
|
-
var e =
|
|
45511
|
+
var e = C0();
|
|
45473
45512
|
return P(e, j(Tj, {
|
|
45474
45513
|
placeholder: "Username or email (e.g. demo@yourapp.com)",
|
|
45475
45514
|
get value() {
|
|
@@ -45501,7 +45540,7 @@ function G0() {
|
|
|
45501
45540
|
title: "Panel",
|
|
45502
45541
|
get children() {
|
|
45503
45542
|
return [(() => {
|
|
45504
|
-
var e =
|
|
45543
|
+
var e = w0(), t = e.firstChild.nextSibling;
|
|
45505
45544
|
return P(t, j(We, {
|
|
45506
45545
|
each: [{
|
|
45507
45546
|
id: "overlay",
|
|
@@ -45511,7 +45550,7 @@ function G0() {
|
|
|
45511
45550
|
label: "Beside page"
|
|
45512
45551
|
}],
|
|
45513
45552
|
children: (e) => (() => {
|
|
45514
|
-
var t =
|
|
45553
|
+
var t = P0();
|
|
45515
45554
|
return t.$$click = () => void r({
|
|
45516
45555
|
panelMode: e.id,
|
|
45517
45556
|
panelPos: void 0
|
|
@@ -45519,11 +45558,11 @@ function G0() {
|
|
|
45519
45558
|
})()
|
|
45520
45559
|
})), e;
|
|
45521
45560
|
})(), (() => {
|
|
45522
|
-
var e =
|
|
45561
|
+
var e = T0(), t = e.firstChild.nextSibling;
|
|
45523
45562
|
return P(t, j(We, {
|
|
45524
45563
|
each: ["left", "right"],
|
|
45525
45564
|
children: (e) => (() => {
|
|
45526
|
-
var t =
|
|
45565
|
+
var t = P0();
|
|
45527
45566
|
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;
|
|
45528
45567
|
})()
|
|
45529
45568
|
})), e;
|
|
@@ -45635,12 +45674,12 @@ function G0() {
|
|
|
45635
45674
|
});
|
|
45636
45675
|
},
|
|
45637
45676
|
get children() {
|
|
45638
|
-
return [
|
|
45677
|
+
return [E0(), j(We, {
|
|
45639
45678
|
get each() {
|
|
45640
45679
|
return te.data ?? [];
|
|
45641
45680
|
},
|
|
45642
45681
|
children: (e) => (() => {
|
|
45643
|
-
var t =
|
|
45682
|
+
var t = W0();
|
|
45644
45683
|
return t.firstChild, P(t, () => e.name, null), D(() => t.selected = e.id === n().slackChannelId), D(() => t.value = e.id), t;
|
|
45645
45684
|
})()
|
|
45646
45685
|
})];
|
|
@@ -45691,10 +45730,10 @@ function G0() {
|
|
|
45691
45730
|
}
|
|
45692
45731
|
}),
|
|
45693
45732
|
(() => {
|
|
45694
|
-
var e =
|
|
45733
|
+
var e = D0(), t = e.firstChild;
|
|
45695
45734
|
return t.addEventListener("change", (e) => void r({ notifyOnCreate: e.currentTarget.checked ? void 0 : !1 })), D(() => t.checked = n().notifyOnCreate !== !1), e;
|
|
45696
45735
|
})(),
|
|
45697
|
-
|
|
45736
|
+
O0()
|
|
45698
45737
|
];
|
|
45699
45738
|
}
|
|
45700
45739
|
}), null), P(e, j(Mj, {
|
|
@@ -45732,7 +45771,7 @@ function G0() {
|
|
|
45732
45771
|
}
|
|
45733
45772
|
}),
|
|
45734
45773
|
(() => {
|
|
45735
|
-
var e =
|
|
45774
|
+
var e = k0(), t = e.firstChild.nextSibling.firstChild, i = t.nextSibling, a = i.nextSibling;
|
|
45736
45775
|
return t.$$click = () => void r({ preferredProvider: void 0 }), i.$$click = () => void r({ preferredProvider: "openai" }), a.$$click = () => void r({ preferredProvider: "anthropic" }), D((e) => {
|
|
45737
45776
|
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;
|
|
45738
45777
|
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;
|
|
@@ -45745,16 +45784,16 @@ function G0() {
|
|
|
45745
45784
|
}), e;
|
|
45746
45785
|
})(),
|
|
45747
45786
|
(() => {
|
|
45748
|
-
var e =
|
|
45787
|
+
var e = j0();
|
|
45749
45788
|
return P(e, j(M, {
|
|
45750
45789
|
get when() {
|
|
45751
45790
|
return ne();
|
|
45752
45791
|
},
|
|
45753
45792
|
get fallback() {
|
|
45754
|
-
return
|
|
45793
|
+
return G0();
|
|
45755
45794
|
},
|
|
45756
45795
|
get children() {
|
|
45757
|
-
var e =
|
|
45796
|
+
var e = A0();
|
|
45758
45797
|
return P(e, ne), e;
|
|
45759
45798
|
}
|
|
45760
45799
|
})), e;
|
|
@@ -45764,7 +45803,7 @@ function G0() {
|
|
|
45764
45803
|
}), null), P(e, j(Mj, {
|
|
45765
45804
|
title: "How it works",
|
|
45766
45805
|
get children() {
|
|
45767
|
-
return
|
|
45806
|
+
return M0();
|
|
45768
45807
|
}
|
|
45769
45808
|
}), null), e;
|
|
45770
45809
|
})();
|
|
@@ -45772,38 +45811,38 @@ function G0() {
|
|
|
45772
45811
|
rt(["click"]);
|
|
45773
45812
|
//#endregion
|
|
45774
45813
|
//#region src/lib/idbCache.ts
|
|
45775
|
-
var
|
|
45814
|
+
var q0 = "linear-grab", J0 = "queries", Y0 = [
|
|
45776
45815
|
"my-issues",
|
|
45777
45816
|
"issue",
|
|
45778
45817
|
"sessions",
|
|
45779
45818
|
"teams",
|
|
45780
45819
|
"agents"
|
|
45781
45820
|
];
|
|
45782
|
-
function
|
|
45821
|
+
function X0() {
|
|
45783
45822
|
return new Promise((e) => {
|
|
45784
45823
|
try {
|
|
45785
|
-
let t = indexedDB.open(
|
|
45786
|
-
t.onupgradeneeded = () => t.result.createObjectStore(
|
|
45824
|
+
let t = indexedDB.open(q0, 1);
|
|
45825
|
+
t.onupgradeneeded = () => t.result.createObjectStore(J0), t.onsuccess = () => e(t.result), t.onerror = () => e(null);
|
|
45787
45826
|
} catch {
|
|
45788
45827
|
e(null);
|
|
45789
45828
|
}
|
|
45790
45829
|
});
|
|
45791
45830
|
}
|
|
45792
|
-
function
|
|
45793
|
-
return typeof e[0] == "string" &&
|
|
45831
|
+
function Z0(e) {
|
|
45832
|
+
return typeof e[0] == "string" && Y0.includes(e[0]);
|
|
45794
45833
|
}
|
|
45795
|
-
async function
|
|
45796
|
-
let t = await
|
|
45834
|
+
async function Q0(e) {
|
|
45835
|
+
let t = await X0();
|
|
45797
45836
|
if (!t) return () => {};
|
|
45798
45837
|
await new Promise((n) => {
|
|
45799
45838
|
try {
|
|
45800
|
-
let r = t.transaction(
|
|
45839
|
+
let r = t.transaction(J0, "readonly").objectStore(J0).openCursor();
|
|
45801
45840
|
r.onsuccess = () => {
|
|
45802
45841
|
let t = r.result;
|
|
45803
45842
|
if (!t) return n();
|
|
45804
45843
|
try {
|
|
45805
45844
|
let { queryKey: n, data: r } = t.value;
|
|
45806
|
-
|
|
45845
|
+
Z0(n) && e.getQueryData(n) === void 0 && e.setQueryData(n, r, { updatedAt: 0 });
|
|
45807
45846
|
} catch {}
|
|
45808
45847
|
t.continue();
|
|
45809
45848
|
}, r.onerror = () => n();
|
|
@@ -45814,14 +45853,14 @@ async function Z0(e) {
|
|
|
45814
45853
|
let n = /* @__PURE__ */ new Map(), r = e.getQueryCache().subscribe((r) => {
|
|
45815
45854
|
if (r.type !== "updated" || r.action.type !== "success") return;
|
|
45816
45855
|
let { queryKey: i, queryHash: a } = r.query;
|
|
45817
|
-
if (!
|
|
45856
|
+
if (!Z0(i)) return;
|
|
45818
45857
|
let o = n.get(a);
|
|
45819
45858
|
o && clearTimeout(o), n.set(a, setTimeout(() => {
|
|
45820
45859
|
n.delete(a);
|
|
45821
45860
|
try {
|
|
45822
45861
|
let n = e.getQueryData(i);
|
|
45823
45862
|
if (n === void 0) return;
|
|
45824
|
-
t.transaction(
|
|
45863
|
+
t.transaction(J0, "readwrite").objectStore(J0).put({
|
|
45825
45864
|
queryKey: i,
|
|
45826
45865
|
data: n
|
|
45827
45866
|
}, a);
|
|
@@ -45837,7 +45876,7 @@ async function Z0(e) {
|
|
|
45837
45876
|
//#endregion
|
|
45838
45877
|
//#region src/panel/App.tsx
|
|
45839
45878
|
Br();
|
|
45840
|
-
var
|
|
45879
|
+
var $0 = /*#__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\">"), e2 = /*#__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\">"), t2 = /*#__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\">–"), n2 = /*#__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>"), r2 = /*#__PURE__*/ N("<button>"), i2 = [
|
|
45841
45880
|
{
|
|
45842
45881
|
id: "draft",
|
|
45843
45882
|
label: "Draft"
|
|
@@ -45866,14 +45905,14 @@ var Q0 = /*#__PURE__*/ N("<svg viewBox=\"0 0 100 100\"fill=currentColor aria-hid
|
|
|
45866
45905
|
id: "settings",
|
|
45867
45906
|
label: "Settings"
|
|
45868
45907
|
}
|
|
45869
|
-
],
|
|
45908
|
+
], a2 = new gr({ defaultOptions: { queries: {
|
|
45870
45909
|
retry: 1,
|
|
45871
45910
|
refetchOnWindowFocus: !1,
|
|
45872
45911
|
staleTime: 5e3
|
|
45873
45912
|
} } });
|
|
45874
|
-
function
|
|
45913
|
+
function o2(e) {
|
|
45875
45914
|
return (() => {
|
|
45876
|
-
var t =
|
|
45915
|
+
var t = $0();
|
|
45877
45916
|
return D((n) => {
|
|
45878
45917
|
var r = e.size ?? 14, i = e.size ?? 14;
|
|
45879
45918
|
return r !== n.e && it(t, "width", n.e = r), i !== n.t && it(t, "height", n.t = i), n;
|
|
@@ -45883,32 +45922,32 @@ function a2(e) {
|
|
|
45883
45922
|
}), t;
|
|
45884
45923
|
})();
|
|
45885
45924
|
}
|
|
45886
|
-
function
|
|
45925
|
+
function s2(e) {
|
|
45887
45926
|
let [t, n] = T("draft"), r = () => {
|
|
45888
|
-
|
|
45927
|
+
a2.invalidateQueries({ queryKey: ["grab"] }), nj() === "capture" && n("capture"), e.onGrab?.();
|
|
45889
45928
|
};
|
|
45890
45929
|
return O(() => {
|
|
45891
45930
|
let e = XA();
|
|
45892
45931
|
e && n(e);
|
|
45893
45932
|
}), ie(() => {
|
|
45894
|
-
let e =
|
|
45933
|
+
let e = Q0(a2), t = VZ(r), n = () => {
|
|
45895
45934
|
UO().then(QQ), BO();
|
|
45896
45935
|
};
|
|
45897
45936
|
n();
|
|
45898
45937
|
let i = Mr((e) => {
|
|
45899
|
-
e === "settings" && (
|
|
45938
|
+
e === "settings" && (a2.invalidateQueries({ queryKey: ["settings"] }), n()), e === "grab" && r();
|
|
45900
45939
|
});
|
|
45901
45940
|
ae(() => {
|
|
45902
45941
|
t(), i(), e.then((e) => e());
|
|
45903
45942
|
});
|
|
45904
45943
|
}), j(cr, {
|
|
45905
|
-
client:
|
|
45944
|
+
client: a2,
|
|
45906
45945
|
get children() {
|
|
45907
|
-
var r =
|
|
45908
|
-
return i.$$pointerdown = (t) => e.onHeaderPointerDown?.(t), P(a, j(
|
|
45909
|
-
each:
|
|
45946
|
+
var r = n2(), 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;
|
|
45947
|
+
return i.$$pointerdown = (t) => e.onHeaderPointerDown?.(t), P(a, j(o2, { size: 14 })), P(o, j(We, {
|
|
45948
|
+
each: i2,
|
|
45910
45949
|
children: (e) => (() => {
|
|
45911
|
-
var r =
|
|
45950
|
+
var r = r2();
|
|
45912
45951
|
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;
|
|
45913
45952
|
})()
|
|
45914
45953
|
})), P(i, j(M, {
|
|
@@ -45916,7 +45955,7 @@ function o2(e) {
|
|
|
45916
45955
|
return e.onTogglePin;
|
|
45917
45956
|
},
|
|
45918
45957
|
get children() {
|
|
45919
|
-
var t =
|
|
45958
|
+
var t = e2();
|
|
45920
45959
|
return t.$$click = () => e.onTogglePin?.(), D((n) => {
|
|
45921
45960
|
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"}`;
|
|
45922
45961
|
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;
|
|
@@ -45931,10 +45970,10 @@ function o2(e) {
|
|
|
45931
45970
|
return e.onClose;
|
|
45932
45971
|
},
|
|
45933
45972
|
get children() {
|
|
45934
|
-
var t =
|
|
45973
|
+
var t = t2();
|
|
45935
45974
|
return t.$$click = () => e.onClose?.(), t;
|
|
45936
45975
|
}
|
|
45937
|
-
}), null), P(s, j(gM, { onCreated: () => n("activity") })), P(c, j(dQ, {})), P(l, j(K$, {})), P(u, j(
|
|
45976
|
+
}), null), P(s, j(gM, { onCreated: () => n("activity") })), P(c, j(dQ, {})), P(l, j(K$, {})), P(u, j(u1, {})), P(d, j(Y1, {})), P(f, j(c0, { onOpenIssue: () => n("activity") })), P(p, j(K0, {})), D((n) => {
|
|
45938
45977
|
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", m = t() !== "activity", h = t() !== "cloud", g = t() !== "local", _ = t() !== "prs", v = t() !== "settings";
|
|
45939
45978
|
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), m !== n.o && l.classList.toggle("hidden", n.o = m), h !== n.i && u.classList.toggle("hidden", n.i = h), g !== n.n && d.classList.toggle("hidden", n.n = g), _ !== n.s && f.classList.toggle("hidden", n.s = _), v !== n.h && p.classList.toggle("hidden", n.h = v), n;
|
|
45940
45979
|
}, {
|
|
@@ -45953,12 +45992,12 @@ function o2(e) {
|
|
|
45953
45992
|
rt(["pointerdown", "click"]);
|
|
45954
45993
|
//#endregion
|
|
45955
45994
|
//#region src/styles/app.css?inline
|
|
45956
|
-
var s2 = "/*! 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-\\[68px\\]{min-width:68px}.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-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-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-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}.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}}";
|
|
45995
|
+
var c2 = "/*! 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-\\[68px\\]{min-width:68px}.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-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-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-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}.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}}";
|
|
45957
45996
|
//#endregion
|
|
45958
45997
|
//#region src/page/index.tsx
|
|
45959
45998
|
Br();
|
|
45960
|
-
var
|
|
45961
|
-
function
|
|
45999
|
+
var l2 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-danger size-2 shrink-0 animate-pulse rounded-full\">"), u2 = /*#__PURE__*/ N("<span class=\"text-text min-w-[5ch] text-[11px] font-medium tabular-nums\">"), d2 = /*#__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"), f2 = /*#__PURE__*/ N("<p class=\"text-warn px-1.5 pt-1 pb-1.5 text-[10.5px] font-semibold tracking-wide uppercase\">Needs review"), p2 = /*#__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"), m2 = /*#__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\">"), h2 = /*#__PURE__*/ N("<div><div title=\"Drag to resize\">"), g2 = /*#__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\">"), _2 = /*#__PURE__*/ N("<span class=\"bg-border h-4 w-px\"aria-hidden>"), v2 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-warn size-2 rounded-full\">"), y2 = /*#__PURE__*/ N("<span class=\"text-warn min-w-[3.5ch] text-left text-[11px] font-medium tabular-nums\"> rev"), b2 = /*#__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>"), x2 = /*#__PURE__*/ N("<p class=\"text-text-faint px-1.5 pb-1.5 text-[11.5px]\">No agents running right now."), S2 = /*#__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\"> · <!> · ");
|
|
46000
|
+
function C2(e = {}) {
|
|
45962
46001
|
if (typeof window > "u" || window.__LINEAR_GRAB_PAGE__) return;
|
|
45963
46002
|
window.__LINEAR_GRAB_PAGE__ = !0;
|
|
45964
46003
|
let t = () => {
|
|
@@ -45990,17 +46029,17 @@ function S2(e = {}) {
|
|
|
45990
46029
|
"keypress"
|
|
45991
46030
|
]) window.addEventListener(e, n, { capture: !0 });
|
|
45992
46031
|
let r = t.attachShadow({ mode: "open" }), i = document.createElement("style");
|
|
45993
|
-
i.textContent =
|
|
46032
|
+
i.textContent = c2, r.appendChild(i);
|
|
45994
46033
|
let a = document.createElement("div");
|
|
45995
46034
|
r.appendChild(a);
|
|
45996
|
-
let o = () => a.setAttribute("data-theme",
|
|
45997
|
-
o(), matchMedia("(prefers-color-scheme: light)").addEventListener("change", o), nt(() => j(
|
|
46035
|
+
let o = () => a.setAttribute("data-theme", w2());
|
|
46036
|
+
o(), matchMedia("(prefers-color-scheme: light)").addEventListener("change", o), nt(() => j(A2, { get defaultOpen() {
|
|
45998
46037
|
return e.defaultOpen ?? !1;
|
|
45999
46038
|
} }), a);
|
|
46000
46039
|
};
|
|
46001
46040
|
document.body ? t() : document.addEventListener("DOMContentLoaded", t, { once: !0 });
|
|
46002
46041
|
}
|
|
46003
|
-
function
|
|
46042
|
+
function w2() {
|
|
46004
46043
|
try {
|
|
46005
46044
|
let e = [document.body, document.documentElement];
|
|
46006
46045
|
for (let t of e) {
|
|
@@ -46010,11 +46049,11 @@ function C2() {
|
|
|
46010
46049
|
} catch {}
|
|
46011
46050
|
return matchMedia("(prefers-color-scheme: light)").matches ? "light" : "dark";
|
|
46012
46051
|
}
|
|
46013
|
-
var
|
|
46014
|
-
function
|
|
46052
|
+
var T2 = 130, E2 = 36, D2 = 380, O2 = 280, k2 = 720;
|
|
46053
|
+
function A2(e) {
|
|
46015
46054
|
let [t, n] = T(e.defaultOpen), [r, i] = T("right"), [a, o] = T({
|
|
46016
|
-
x: Math.max(8, window.innerWidth -
|
|
46017
|
-
y: Math.max(8, window.innerHeight -
|
|
46055
|
+
x: Math.max(8, window.innerWidth - T2 - 24),
|
|
46056
|
+
y: Math.max(8, window.innerHeight - E2 - 20)
|
|
46018
46057
|
}), [s, c] = T({
|
|
46019
46058
|
running: [],
|
|
46020
46059
|
review: []
|
|
@@ -46029,12 +46068,12 @@ function k2(e) {
|
|
|
46029
46068
|
let t = Math.floor(e / 1e3);
|
|
46030
46069
|
return `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
|
|
46031
46070
|
}, [v, y] = T(null), b = (e) => ({
|
|
46032
|
-
x: Math.min(Math.max(8, e.x), window.innerWidth -
|
|
46033
|
-
y: Math.min(Math.max(8, e.y), window.innerHeight -
|
|
46071
|
+
x: Math.min(Math.max(8, e.x), window.innerWidth - T2 - 8),
|
|
46072
|
+
y: Math.min(Math.max(8, e.y), window.innerHeight - E2 - 8)
|
|
46034
46073
|
}), x = (e) => ({
|
|
46035
46074
|
x: Math.min(Math.max(8 - (te() - 80), e.x), window.innerWidth - 80),
|
|
46036
46075
|
y: Math.min(Math.max(0, e.y), window.innerHeight - 80)
|
|
46037
|
-
}), [S, C] = T(!1), [w, E] = T("cloud"), [k, ee] = T(!1), [te, A] = T(
|
|
46076
|
+
}), [S, C] = T(!1), [w, E] = T("cloud"), [k, ee] = T(!1), [te, A] = T(D2), ne = (e) => Math.min(k2, Math.max(O2, Math.min(e, window.innerWidth - 60)));
|
|
46038
46077
|
O(() => {
|
|
46039
46078
|
let e = document.documentElement, n = t() && S();
|
|
46040
46079
|
e.style.transition = "margin 0.2s ease", e.style.marginRight = n && r() === "right" ? `${te()}px` : "", e.style.marginLeft = n && r() === "left" ? `${te()}px` : "";
|
|
@@ -46142,7 +46181,7 @@ function k2(e) {
|
|
|
46142
46181
|
return !t();
|
|
46143
46182
|
},
|
|
46144
46183
|
get children() {
|
|
46145
|
-
var e =
|
|
46184
|
+
var e = m2(), t = e.firstChild;
|
|
46146
46185
|
return t.$$pointerdown = se, P(t, j(M, {
|
|
46147
46186
|
get when() {
|
|
46148
46187
|
return p() === "recording";
|
|
@@ -46150,14 +46189,14 @@ function k2(e) {
|
|
|
46150
46189
|
get fallback() {
|
|
46151
46190
|
return [
|
|
46152
46191
|
(() => {
|
|
46153
|
-
var e =
|
|
46192
|
+
var e = g2();
|
|
46154
46193
|
return e.$$click = () => {
|
|
46155
46194
|
oe || (f(!1), n(!0));
|
|
46156
|
-
}, P(e, j(
|
|
46195
|
+
}, P(e, j(o2, { size: 13 })), e;
|
|
46157
46196
|
})(),
|
|
46158
|
-
|
|
46197
|
+
_2(),
|
|
46159
46198
|
(() => {
|
|
46160
|
-
var e =
|
|
46199
|
+
var e = b2(), t = e.firstChild, n = t.nextSibling;
|
|
46161
46200
|
return e.$$click = () => {
|
|
46162
46201
|
oe || f((e) => !e);
|
|
46163
46202
|
}, P(n, (() => {
|
|
@@ -46168,8 +46207,8 @@ function k2(e) {
|
|
|
46168
46207
|
return $e(() => !k())() && u().length > 0;
|
|
46169
46208
|
},
|
|
46170
46209
|
get children() {
|
|
46171
|
-
return [
|
|
46172
|
-
var e =
|
|
46210
|
+
return [v2(), (() => {
|
|
46211
|
+
var e = y2(), t = e.firstChild;
|
|
46173
46212
|
return P(e, () => u().length, t), e;
|
|
46174
46213
|
})()];
|
|
46175
46214
|
}
|
|
@@ -46185,13 +46224,13 @@ function k2(e) {
|
|
|
46185
46224
|
},
|
|
46186
46225
|
get children() {
|
|
46187
46226
|
return [
|
|
46188
|
-
|
|
46227
|
+
l2(),
|
|
46189
46228
|
(() => {
|
|
46190
|
-
var e =
|
|
46229
|
+
var e = u2();
|
|
46191
46230
|
return P(e, () => _(h())), e;
|
|
46192
46231
|
})(),
|
|
46193
46232
|
(() => {
|
|
46194
|
-
var e =
|
|
46233
|
+
var e = d2();
|
|
46195
46234
|
return e.$$click = () => {
|
|
46196
46235
|
oe || eO();
|
|
46197
46236
|
}, e;
|
|
@@ -46203,17 +46242,17 @@ function k2(e) {
|
|
|
46203
46242
|
return d();
|
|
46204
46243
|
},
|
|
46205
46244
|
get children() {
|
|
46206
|
-
var e =
|
|
46245
|
+
var e = p2(), t = e.firstChild;
|
|
46207
46246
|
return P(e, j(M, {
|
|
46208
46247
|
get when() {
|
|
46209
46248
|
return u().length > 0;
|
|
46210
46249
|
},
|
|
46211
46250
|
get children() {
|
|
46212
|
-
return [
|
|
46251
|
+
return [f2(), j(We, {
|
|
46213
46252
|
get each() {
|
|
46214
46253
|
return u();
|
|
46215
46254
|
},
|
|
46216
|
-
children: (e) => j(
|
|
46255
|
+
children: (e) => j(j2, {
|
|
46217
46256
|
agent: e,
|
|
46218
46257
|
review: !0,
|
|
46219
46258
|
onOpen: le
|
|
@@ -46225,14 +46264,14 @@ function k2(e) {
|
|
|
46225
46264
|
return l().length > 0;
|
|
46226
46265
|
},
|
|
46227
46266
|
get fallback() {
|
|
46228
|
-
return
|
|
46267
|
+
return x2();
|
|
46229
46268
|
},
|
|
46230
46269
|
get children() {
|
|
46231
46270
|
return j(We, {
|
|
46232
46271
|
get each() {
|
|
46233
46272
|
return l();
|
|
46234
46273
|
},
|
|
46235
|
-
children: (e) => j(
|
|
46274
|
+
children: (e) => j(j2, {
|
|
46236
46275
|
agent: e,
|
|
46237
46276
|
onOpen: le
|
|
46238
46277
|
})
|
|
@@ -46253,8 +46292,8 @@ function k2(e) {
|
|
|
46253
46292
|
return t();
|
|
46254
46293
|
},
|
|
46255
46294
|
get children() {
|
|
46256
|
-
var e =
|
|
46257
|
-
return t.$$pointerdown = ue, P(e, j(
|
|
46295
|
+
var e = h2(), t = e.firstChild;
|
|
46296
|
+
return t.$$pointerdown = ue, P(e, j(s2, {
|
|
46258
46297
|
onGrab: () => n(!0),
|
|
46259
46298
|
onClose: () => n(!1),
|
|
46260
46299
|
get onHeaderPointerDown() {
|
|
@@ -46282,19 +46321,19 @@ function k2(e) {
|
|
|
46282
46321
|
}
|
|
46283
46322
|
})];
|
|
46284
46323
|
}
|
|
46285
|
-
function
|
|
46324
|
+
function j2(e) {
|
|
46286
46325
|
return (() => {
|
|
46287
|
-
var t =
|
|
46326
|
+
var t = S2(), n = t.firstChild, r = n.firstChild, i = r.nextSibling, a = i.nextSibling, o = n.nextSibling, s = o.firstChild, c = s.nextSibling;
|
|
46288
46327
|
return c.nextSibling, t.$$click = () => e.onOpen(e.agent.id), P(i, () => e.agent.identifier), P(a, () => e.agent.title), P(o, (() => {
|
|
46289
46328
|
var t = $e(() => !!e.review);
|
|
46290
46329
|
return () => t() ? "PR ready · needs review" : e.agent.stateName;
|
|
46291
|
-
})(), s), P(o, () => e.agent.delegateName, c), P(o, () =>
|
|
46330
|
+
})(), s), P(o, () => e.agent.delegateName, c), P(o, () => M2(e.agent.updatedAt), null), D((t) => dt(r, "background", e.review ? "var(--color-warn)" : e.agent.stateColor)), t;
|
|
46292
46331
|
})();
|
|
46293
46332
|
}
|
|
46294
|
-
function
|
|
46333
|
+
function M2(e) {
|
|
46295
46334
|
let t = Math.max(0, Math.floor((Date.now() - Date.parse(e)) / 1e3));
|
|
46296
46335
|
return t < 60 ? "now" : t < 3600 ? `${Math.floor(t / 60)}m` : t < 86400 ? `${Math.floor(t / 3600)}h` : `${Math.floor(t / 86400)}d`;
|
|
46297
46336
|
}
|
|
46298
46337
|
rt(["pointerdown", "click"]);
|
|
46299
46338
|
//#endregion
|
|
46300
|
-
export {
|
|
46339
|
+
export { C2 as init };
|