linear-grab 0.15.5 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/index.global.js +7 -7
- package/dist/linear-grab.js +356 -300
- package/package.json +1 -1
package/dist/linear-grab.js
CHANGED
|
@@ -42838,28 +42838,31 @@ async function LQ() {
|
|
|
42838
42838
|
//#endregion
|
|
42839
42839
|
//#region src/lib/captureShare.ts
|
|
42840
42840
|
Rr();
|
|
42841
|
-
|
|
42841
|
+
function RQ(e, t = 6e3) {
|
|
42842
|
+
return Promise.race([e, new Promise((e, n) => setTimeout(() => n(/* @__PURE__ */ Error("upload timeout")), t))]);
|
|
42843
|
+
}
|
|
42844
|
+
async function zQ() {
|
|
42842
42845
|
let e = [];
|
|
42843
42846
|
for (let t of await Tr() ?? []) {
|
|
42844
42847
|
let n = t.source?.filePath ? ` — \`${t.source.filePath}${t.source.lineNumber == null ? "" : `:${t.source.lineNumber}`}\`` : "";
|
|
42845
42848
|
if (e.push(`- \`<${t.componentName ?? t.tagName ?? "element"}>\`${n}`), t.screenshotDataUrl) try {
|
|
42846
|
-
let n = await xO(WA(t.screenshotDataUrl), `capture-${t.grabbedAt}.png`);
|
|
42849
|
+
let n = await RQ(xO(WA(t.screenshotDataUrl), `capture-${t.grabbedAt}.png`));
|
|
42847
42850
|
e.push(` `);
|
|
42848
42851
|
} catch {}
|
|
42849
42852
|
}
|
|
42850
42853
|
let t = BD();
|
|
42851
42854
|
if (t.result) try {
|
|
42852
|
-
let n = t.result.assetUrl ?? await xO(t.result.blob, `recording-${Date.now()}.gif`);
|
|
42855
|
+
let n = t.result.assetUrl ?? await RQ(xO(t.result.blob, `recording-${Date.now()}.gif`));
|
|
42853
42856
|
tO(n), e.push(``);
|
|
42854
42857
|
} catch {}
|
|
42855
42858
|
return e.length ? `Captured context:\n${e.join("\n")}` : null;
|
|
42856
42859
|
}
|
|
42857
42860
|
//#endregion
|
|
42858
42861
|
//#region src/panel/components/markdown.ts
|
|
42859
|
-
function
|
|
42862
|
+
function BQ(e) {
|
|
42860
42863
|
return e.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """);
|
|
42861
42864
|
}
|
|
42862
|
-
var
|
|
42865
|
+
var VQ = /^(https?:\/\/|mailto:)/i, HQ = /\.(mp4|mov|webm|m4v)(\?|#|$)/i, UQ = /\.(png|jpe?g|gif|webp|avif|svg)(\?|#|$)/i, WQ = class extends HTMLElement {
|
|
42863
42866
|
objectUrl = null;
|
|
42864
42867
|
connectedCallback() {
|
|
42865
42868
|
let e = this.getAttribute("src") ?? "", t = this.getAttribute("alt") ?? "";
|
|
@@ -42886,27 +42889,27 @@ var BQ = /^(https?:\/\/|mailto:)/i, VQ = /\.(mp4|mov|webm|m4v)(\?|#|$)/i, HQ = /
|
|
|
42886
42889
|
this.objectUrl && URL.revokeObjectURL(this.objectUrl);
|
|
42887
42890
|
}
|
|
42888
42891
|
};
|
|
42889
|
-
typeof customElements < "u" && !customElements.get("lg-media") && customElements.define("lg-media",
|
|
42890
|
-
var
|
|
42891
|
-
function GQ(e) {
|
|
42892
|
-
WQ = e ? e.replace(/\/$/, "") : null;
|
|
42893
|
-
}
|
|
42892
|
+
typeof customElements < "u" && !customElements.get("lg-media") && customElements.define("lg-media", WQ);
|
|
42893
|
+
var GQ = null;
|
|
42894
42894
|
function KQ(e) {
|
|
42895
|
+
GQ = e ? e.replace(/\/$/, "") : null;
|
|
42896
|
+
}
|
|
42897
|
+
function qQ(e) {
|
|
42895
42898
|
try {
|
|
42896
|
-
if (
|
|
42899
|
+
if (GQ && new URL(e).hostname.endsWith("uploads.linear.app")) return `${GQ}/fetch?url=${encodeURIComponent(e)}`;
|
|
42897
42900
|
} catch {}
|
|
42898
42901
|
return e;
|
|
42899
42902
|
}
|
|
42900
|
-
function
|
|
42903
|
+
function JQ(e) {
|
|
42901
42904
|
let t = e;
|
|
42902
42905
|
return t = t.replace(/`([^`]+)`/g, (e, t) => `<code>${t}</code>`), t = t.replace(/!\[([^\]]*)\]\((?:<)?([^()\s]+?)(?:>)?\)/g, (e, t, n) => {
|
|
42903
|
-
if (!
|
|
42904
|
-
let r =
|
|
42905
|
-
return
|
|
42906
|
-
}), t = t.replace(/\[([^\]]+)\]\((?:<)?([^()\s]+?)(?:>)?\)/g, (e, t, n) =>
|
|
42906
|
+
if (!VQ.test(n)) return t;
|
|
42907
|
+
let r = qQ(n);
|
|
42908
|
+
return HQ.test(n) ? `<video controls preload="metadata" src="${r}"></video>` : r !== n && !UQ.test(n) ? `<lg-media src="${r}" alt="${t}"></lg-media>` : `<img src="${r}" alt="${t}" loading="lazy" />`;
|
|
42909
|
+
}), t = t.replace(/\[([^\]]+)\]\((?:<)?([^()\s]+?)(?:>)?\)/g, (e, t, n) => VQ.test(n) ? `<a href="${n}" target="_blank" rel="noopener noreferrer">${t}</a>` : t), t = t.replace(/<(https?:\/\/[^\s&]+)>/g, "<a href=\"$1\" target=\"_blank\" rel=\"noopener noreferrer\">$1</a>"), t = t.replace(/(^|[\s(])((?:https?:\/\/)[^\s<>()"']+)/g, (e, t, n) => `${t}<a href="${n}" target="_blank" rel="noopener noreferrer">${n}</a>`), t = t.replace(/\*\*([^*]+)\*\*/g, "<strong>$1</strong>"), t = t.replace(/(^|\W)\*([^*\n]+)\*(?=\W|$)/g, "$1<em>$2</em>"), t;
|
|
42907
42910
|
}
|
|
42908
|
-
function
|
|
42909
|
-
let t =
|
|
42911
|
+
function YQ(e) {
|
|
42912
|
+
let t = BQ(e.trim()).split("\n"), n = [], r = 0;
|
|
42910
42913
|
for (; r < t.length;) {
|
|
42911
42914
|
let e = t[r];
|
|
42912
42915
|
if (!e.trim()) {
|
|
@@ -42921,44 +42924,51 @@ function JQ(e) {
|
|
|
42921
42924
|
}
|
|
42922
42925
|
let i = e.match(/^(#{1,6})\s+(.*)$/);
|
|
42923
42926
|
if (i) {
|
|
42924
|
-
n.push(`<h4>${
|
|
42927
|
+
n.push(`<h4>${JQ(i[2])}</h4>`), r++;
|
|
42925
42928
|
continue;
|
|
42926
42929
|
}
|
|
42927
42930
|
if (/^\s*[-*]\s+/.test(e)) {
|
|
42928
42931
|
let e = [];
|
|
42929
|
-
for (; r < t.length && /^\s*[-*]\s+/.test(t[r]);) e.push(`<li>${
|
|
42932
|
+
for (; r < t.length && /^\s*[-*]\s+/.test(t[r]);) e.push(`<li>${JQ(t[r].replace(/^\s*[-*]\s+/, ""))}</li>`), r++;
|
|
42930
42933
|
n.push(`<ul>${e.join("")}</ul>`);
|
|
42931
42934
|
continue;
|
|
42932
42935
|
}
|
|
42933
42936
|
if (/^\s*\d+[.)]\s+/.test(e)) {
|
|
42934
42937
|
let e = [];
|
|
42935
|
-
for (; r < t.length && /^\s*\d+[.)]\s+/.test(t[r]);) e.push(`<li>${
|
|
42938
|
+
for (; r < t.length && /^\s*\d+[.)]\s+/.test(t[r]);) e.push(`<li>${JQ(t[r].replace(/^\s*\d+[.)]\s+/, ""))}</li>`), r++;
|
|
42936
42939
|
n.push(`<ol>${e.join("")}</ol>`);
|
|
42937
42940
|
continue;
|
|
42938
42941
|
}
|
|
42939
42942
|
let a = [];
|
|
42940
42943
|
for (; r < t.length && t[r].trim() && !/^(#{1,6}\s|```|\s*[-*]\s+|\s*\d+[.)]\s+)/.test(t[r]);) a.push(t[r]), r++;
|
|
42941
|
-
n.push(`<p>${
|
|
42944
|
+
n.push(`<p>${JQ(a.join("<br />"))}</p>`);
|
|
42942
42945
|
}
|
|
42943
42946
|
return n.join("");
|
|
42944
42947
|
}
|
|
42945
42948
|
//#endregion
|
|
42946
42949
|
//#region src/panel/views/ActivityView.tsx
|
|
42947
42950
|
Rr();
|
|
42948
|
-
var
|
|
42949
|
-
function
|
|
42951
|
+
var XQ = /*#__PURE__*/ N("<div class=\"lg-md text-text text-[12px] leading-relaxed break-words\">"), ZQ = /*#__PURE__*/ N("<div class=\"flex h-full flex-col\">"), QQ = /*#__PURE__*/ N("<span class=\"tabular-nums text-[10.5px] text-text-faint\">live · updated "), $Q = /*#__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\">"), e$ = /*#__PURE__*/ N("<div class=\"flex-1 overflow-y-auto\">"), t$ = /*#__PURE__*/ N("<div class=\"min-h-0 flex-1 overflow-y-auto pl-2 pr-3\"><div style=position:relative>"), n$ = /*#__PURE__*/ N("<div class=\"flex h-full flex-col\"><div class=\"border-border flex shrink-0 items-center justify-between border-b px-3 py-2\"><span class=\"text-text text-[12px] font-semibold\">My issues</span><div class=\"flex items-center gap-2\">"), r$ = /*#__PURE__*/ N("<div style=position:absolute;top:0;left:0;width:100%>"), i$ = /*#__PURE__*/ N("<button class=\"w-full cursor-pointer rounded-md px-2 py-1.5 text-left hover:bg-surface-2 transition-colors\"><div class=\"flex items-center gap-1.5 min-w-0\"><span class=\"font-mono text-[11px] text-text-dim shrink-0\"></span><span class=\"truncate text-[12.5px] text-text\"></span></div><div class=\"mt-0.5 flex items-center gap-1.5\"><span class=\"ml-auto tabular-nums text-[10.5px] text-text-faint\">"), a$ = /*#__PURE__*/ N("<span class=\"inline-block min-w-[6ch] text-left\">← Back"), o$ = /*#__PURE__*/ N("<span class=\"font-mono text-[11px] text-text-dim shrink-0\">"), s$ = /*#__PURE__*/ N("<span class=\"truncate text-[12px] font-medium text-text\">"), c$ = /*#__PURE__*/ N("<span class=\"text-[11.5px] text-text-faint\">Loading…"), l$ = /*#__PURE__*/ N("<div class=\"flex items-center gap-2\"><span class=\"text-[11px] text-text-dim\">"), u$ = /*#__PURE__*/ N("<div class=\"flex flex-col gap-2\">"), d$ = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1\"><span class=\"text-[10.5px] font-semibold uppercase tracking-wide text-text-dim\">Attachments</span><div class=\"flex flex-col gap-1\">"), f$ = /*#__PURE__*/ N("<div class=\"flex flex-col gap-2.5\"><span class=\"text-[10.5px] font-semibold uppercase tracking-wide text-text-dim\">Comments"), p$ = /*#__PURE__*/ N("<option value=new>Start NEW agent (@<!>)"), m$ = /*#__PURE__*/ N("<option value=comment>Comment only"), h$ = /*#__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\">"), g$ = /*#__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>"), _$ = /*#__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\">"), v$ = /*#__PURE__*/ N("<span class=\"inline-block min-w-[4ch] text-left\">Send"), y$ = /*#__PURE__*/ N("<div class=\"flex h-full flex-col\"><div class=\"border-border flex shrink-0 flex-col gap-1 border-b px-3 py-2\"><div class=\"flex items-center gap-2\"></div></div><div class=\"min-h-0 flex-1 overflow-y-auto pl-3 pr-4 py-3 flex flex-col gap-3\"></div><div class=\"border-border shrink-0 border-t p-2.5 flex flex-col gap-1.5\"><div class=\"flex items-center gap-2\">"), b$ = /*#__PURE__*/ N("<div class=\"bg-surface border-border overflow-clip rounded-lg border\"><div class=\"border-border flex h-9 min-w-0 items-center justify-between gap-2 border-b px-3\"><div class=\"flex min-w-0 items-center gap-1.5 text-[11.5px] font-medium\"><span aria-hidden class=\"text-text-dim inline-flex\"></span><span class=\"text-text shrink-0\">Local Claude Code</span><span class=\"text-text-dim shrink-0\">started by you</span><span class=\"text-text-faint shrink-0 tabular-nums\">· </span></div></div><button class=\"hover:bg-surface-2 flex h-9 w-full min-w-0 cursor-pointer items-center gap-2 px-3 text-left transition-colors\"title=\"Open the live thread in the Local tab\"><span></span><span class=\"text-text-faint min-w-0 flex-1 truncate text-[11.5px]\"></span><svg width=14 height=14 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round aria-hidden class=\"text-text-dim shrink-0\"><path d=\"m6 3.5 4.5 4.5L6 12.5\">"), x$ = /*#__PURE__*/ N("<span class=\"inline-block min-w-[6ch] text-center\">Merge"), S$ = /*#__PURE__*/ N("<div class=\"flex min-w-0 items-center gap-1.5\"><a target=_blank rel=noreferrer class=\"text-accent min-w-0 truncate text-[11.5px] hover:underline\">"), C$ = /*#__PURE__*/ N("<div class=\"flex flex-col gap-0.5\"><div class=\"flex items-center gap-1.5\"><span class=\"text-[11px] font-medium text-text-dim\"></span><span class=\"ml-auto tabular-nums text-[10.5px] text-text-faint\">"), w$ = /*#__PURE__*/ N("<option>Steer running agent<!> · "), T$ = /*#__PURE__*/ N("<span class=\"bg-danger inline-block size-2.5 rounded-full\"aria-hidden>"), E$ = /*#__PURE__*/ N("<span class=\"text-[11px] text-text-dim\">"), D$ = /*#__PURE__*/ N("<p class=\"text-[12px] text-text leading-relaxed whitespace-pre-wrap break-words\">"), O$ = /*#__PURE__*/ N("<div class=\"flex flex-col gap-0.5 border-t border-border pt-1.5 mt-0.5\">"), k$ = /*#__PURE__*/ N("<div class=\"bg-surface border-border rounded-lg border p-2.5 flex flex-col gap-1.5\"><div class=\"flex items-center gap-1.5 flex-wrap\"><span class=\"ml-auto tabular-nums text-[10.5px] text-text-faint\">"), A$ = /*#__PURE__*/ N("<div class=\"flex items-start gap-1.5\"><span class=\"tabular-nums text-[10px] text-text-faint shrink-0 mt-px\"></span><span class=\"text-[11px] text-text-dim break-words min-w-0\">");
|
|
42952
|
+
function j$(e) {
|
|
42953
|
+
let t = k(() => YQ(e.text));
|
|
42954
|
+
return (() => {
|
|
42955
|
+
var e = XQ();
|
|
42956
|
+
return D(() => e.innerHTML = t()), e;
|
|
42957
|
+
})();
|
|
42958
|
+
}
|
|
42959
|
+
function M$() {
|
|
42950
42960
|
let [e, t] = T(null);
|
|
42951
42961
|
return O(() => {
|
|
42952
42962
|
let e = qA();
|
|
42953
42963
|
e && (t(e), XA());
|
|
42954
42964
|
}), (() => {
|
|
42955
|
-
var n =
|
|
42965
|
+
var n = ZQ();
|
|
42956
42966
|
return P(n, j(M, {
|
|
42957
42967
|
get when() {
|
|
42958
42968
|
return e() === null;
|
|
42959
42969
|
},
|
|
42960
42970
|
get fallback() {
|
|
42961
|
-
return j(
|
|
42971
|
+
return j(F$, {
|
|
42962
42972
|
get issueId() {
|
|
42963
42973
|
return e();
|
|
42964
42974
|
},
|
|
@@ -42966,12 +42976,12 @@ function D$() {
|
|
|
42966
42976
|
});
|
|
42967
42977
|
},
|
|
42968
42978
|
get children() {
|
|
42969
|
-
return j(
|
|
42979
|
+
return j(N$, { onSelect: (e) => t(e) });
|
|
42970
42980
|
}
|
|
42971
42981
|
})), n;
|
|
42972
42982
|
})();
|
|
42973
42983
|
}
|
|
42974
|
-
function
|
|
42984
|
+
function N$(e) {
|
|
42975
42985
|
let t, n = _r(() => ({
|
|
42976
42986
|
queryKey: ["my-issues"],
|
|
42977
42987
|
queryFn: uO,
|
|
@@ -42985,13 +42995,13 @@ function O$(e) {
|
|
|
42985
42995
|
overscan: 5
|
|
42986
42996
|
});
|
|
42987
42997
|
return (() => {
|
|
42988
|
-
var a =
|
|
42998
|
+
var a = n$(), o = a.firstChild.firstChild.nextSibling;
|
|
42989
42999
|
return P(o, j(M, {
|
|
42990
43000
|
get when() {
|
|
42991
43001
|
return n.dataUpdatedAt > 0;
|
|
42992
43002
|
},
|
|
42993
43003
|
get children() {
|
|
42994
|
-
var e =
|
|
43004
|
+
var e = QQ();
|
|
42995
43005
|
return e.firstChild, P(e, () => Nj(n.dataUpdatedAt), null), e;
|
|
42996
43006
|
}
|
|
42997
43007
|
}), null), P(o, j(vj, {
|
|
@@ -43003,14 +43013,14 @@ function O$(e) {
|
|
|
43003
43013
|
title: "Refresh",
|
|
43004
43014
|
"aria-label": "Refresh issues",
|
|
43005
43015
|
get children() {
|
|
43006
|
-
return
|
|
43016
|
+
return $Q();
|
|
43007
43017
|
}
|
|
43008
43018
|
}), null), P(a, j(M, {
|
|
43009
43019
|
get when() {
|
|
43010
43020
|
return n.isError;
|
|
43011
43021
|
},
|
|
43012
43022
|
get children() {
|
|
43013
|
-
var e =
|
|
43023
|
+
var e = e$();
|
|
43014
43024
|
return P(e, j(Aj, {
|
|
43015
43025
|
title: "Connect Linear in Settings",
|
|
43016
43026
|
get children() {
|
|
@@ -43023,7 +43033,7 @@ function O$(e) {
|
|
|
43023
43033
|
return $e(() => !n.isError && !n.isPending)() && r().length === 0;
|
|
43024
43034
|
},
|
|
43025
43035
|
get children() {
|
|
43026
|
-
var e =
|
|
43036
|
+
var e = e$();
|
|
43027
43037
|
return P(e, j(Aj, {
|
|
43028
43038
|
title: "No issues found",
|
|
43029
43039
|
children: "Issues you create will appear here."
|
|
@@ -43034,7 +43044,7 @@ function O$(e) {
|
|
|
43034
43044
|
return $e(() => !n.isError)() && r().length > 0;
|
|
43035
43045
|
},
|
|
43036
43046
|
get children() {
|
|
43037
|
-
var n = $
|
|
43047
|
+
var n = t$(), a = n.firstChild, o = t;
|
|
43038
43048
|
return typeof o == "function" ? pt(o, n) : t = n, P(a, j(We, {
|
|
43039
43049
|
get each() {
|
|
43040
43050
|
return i.getVirtualItems();
|
|
@@ -43042,8 +43052,8 @@ function O$(e) {
|
|
|
43042
43052
|
children: (t) => {
|
|
43043
43053
|
let n = k(() => r()[t.index]);
|
|
43044
43054
|
return (() => {
|
|
43045
|
-
var r =
|
|
43046
|
-
return P(r, j(
|
|
43055
|
+
var r = r$();
|
|
43056
|
+
return P(r, j(P$, {
|
|
43047
43057
|
get issue() {
|
|
43048
43058
|
return n();
|
|
43049
43059
|
},
|
|
@@ -43058,9 +43068,9 @@ function O$(e) {
|
|
|
43058
43068
|
}), null), a;
|
|
43059
43069
|
})();
|
|
43060
43070
|
}
|
|
43061
|
-
function
|
|
43071
|
+
function P$(e) {
|
|
43062
43072
|
return (() => {
|
|
43063
|
-
var t =
|
|
43073
|
+
var t = i$(), n = t.firstChild, r = n.firstChild, i = r.nextSibling, a = n.nextSibling, o = a.firstChild;
|
|
43064
43074
|
return t.$$click = () => e.onSelect(e.issue.id), P(n, j(kj, { get color() {
|
|
43065
43075
|
return e.issue.state.color;
|
|
43066
43076
|
} }), r), P(r, () => e.issue.identifier), P(i, () => e.issue.title), P(a, j(Oj, { get children() {
|
|
@@ -43094,7 +43104,7 @@ function k$(e) {
|
|
|
43094
43104
|
}), o), P(o, () => Nj(e.issue.updatedAt)), t;
|
|
43095
43105
|
})();
|
|
43096
43106
|
}
|
|
43097
|
-
function
|
|
43107
|
+
function F$(e) {
|
|
43098
43108
|
let t = sr(), n = _r(() => ({
|
|
43099
43109
|
queryKey: ["issue", e.issueId],
|
|
43100
43110
|
queryFn: () => dO(e.issueId),
|
|
@@ -43133,53 +43143,67 @@ function A$(e) {
|
|
|
43133
43143
|
queryFn: Tr,
|
|
43134
43144
|
enabled: ZA() === "composer"
|
|
43135
43145
|
})), [h, g] = T(!1), _ = async () => {
|
|
43136
|
-
g(!0);
|
|
43146
|
+
g(!0), d(null);
|
|
43137
43147
|
try {
|
|
43138
|
-
let e = await
|
|
43139
|
-
e
|
|
43148
|
+
let e = await zQ();
|
|
43149
|
+
e ? l((t) => `${t ? `${t}\n` : ""}${e}\n`) : d("Nothing captured yet — pick an element, capture a region, or record first.");
|
|
43150
|
+
} catch (e) {
|
|
43151
|
+
d(e instanceof Error ? e.message : "Attach failed.");
|
|
43140
43152
|
} finally {
|
|
43141
43153
|
g(!1);
|
|
43142
43154
|
}
|
|
43143
43155
|
}, v = () => {
|
|
43156
|
+
if (ZA() === "composer") {
|
|
43157
|
+
$A("capture");
|
|
43158
|
+
return;
|
|
43159
|
+
}
|
|
43144
43160
|
p(Date.now()), $A("composer"), FZ().catch(() => $A("capture"));
|
|
43145
43161
|
};
|
|
43146
43162
|
O(() => {
|
|
43147
43163
|
if (ZA() !== "composer") return;
|
|
43148
|
-
let e = (m.data ?? []).filter((e) => e.grabbedAt
|
|
43164
|
+
let e = (m.data ?? []).filter((e) => e.grabbedAt > f());
|
|
43149
43165
|
if (!e.length) return;
|
|
43150
43166
|
let t = e.map((e) => {
|
|
43151
43167
|
let t = e.source?.filePath ? ` — \`${e.source.filePath}${e.source.lineNumber == null ? "" : `:${e.source.lineNumber}`}\`` : "";
|
|
43152
43168
|
return `- \`<${e.componentName ?? e.tagName ?? "element"}>\`${t}`;
|
|
43153
43169
|
}).join("\n");
|
|
43154
|
-
l((e) => `${e ? `${e}\n` : ""}${t}\n`),
|
|
43170
|
+
l((e) => `${e ? `${e}\n` : ""}${t}\n`), p(Math.max(...e.map((e) => e.grabbedAt)));
|
|
43171
|
+
});
|
|
43172
|
+
let [y, b] = T(BD());
|
|
43173
|
+
ae(VD(b));
|
|
43174
|
+
let x = !1;
|
|
43175
|
+
O(() => {
|
|
43176
|
+
y().phase === "ready" && x && (x = !1, _());
|
|
43155
43177
|
});
|
|
43156
|
-
let
|
|
43157
|
-
|
|
43158
|
-
|
|
43178
|
+
let S = () => {
|
|
43179
|
+
y().phase === "recording" ? QD() : (x = !0, ZD());
|
|
43180
|
+
}, C = /github\.com\/[^/]+\/[^/]+\/pull\/\d+/i, w = k(() => (n.data?.attachments ?? []).map((e) => e.url).filter((e) => C.test(e))), E = _r(() => ({
|
|
43181
|
+
queryKey: ["pr-status", w().sort().join("|")],
|
|
43182
|
+
queryFn: () => IO(w()),
|
|
43159
43183
|
refetchInterval: 3e4,
|
|
43160
43184
|
retry: 0,
|
|
43161
|
-
enabled:
|
|
43162
|
-
})),
|
|
43163
|
-
|
|
43185
|
+
enabled: w().length > 0
|
|
43186
|
+
})), ee = (e) => ne().has(e) ? "MERGED" : E.data?.[e], [te, A] = T(null), [ne, re] = T(/* @__PURE__ */ new Set()), [ie, oe] = T(null), se = async (n) => {
|
|
43187
|
+
oe(null), A(n);
|
|
43164
43188
|
try {
|
|
43165
|
-
await LO(n),
|
|
43189
|
+
await LO(n), re((e) => new Set(e).add(n)), t.invalidateQueries({ queryKey: ["issue", e.issueId] }), t.invalidateQueries({ queryKey: ["my-issues"] }), FQ();
|
|
43166
43190
|
} catch (e) {
|
|
43167
|
-
|
|
43191
|
+
oe(e instanceof Error ? `${e.message} (bridge must be running; gh needs merge rights)` : "Merge failed.");
|
|
43168
43192
|
} finally {
|
|
43169
|
-
|
|
43193
|
+
A(null);
|
|
43170
43194
|
}
|
|
43171
|
-
},
|
|
43195
|
+
}, ce = k(() => n.data ? yO(n.data.comments) : []), [le, ue] = T("comment"), de = !1;
|
|
43172
43196
|
O(() => {
|
|
43173
|
-
if (
|
|
43174
|
-
|
|
43175
|
-
let e =
|
|
43176
|
-
e.length ?
|
|
43197
|
+
if (de || !n.data || !i.data) return;
|
|
43198
|
+
de = !0;
|
|
43199
|
+
let e = ce();
|
|
43200
|
+
e.length ? ue(`thread:${e[0].id}`) : n.data.delegate && i.data.cursorAgentId && ue("new");
|
|
43177
43201
|
});
|
|
43178
|
-
let
|
|
43202
|
+
let fe = vr(() => ({
|
|
43179
43203
|
mutationFn: async () => {
|
|
43180
43204
|
let t = c().trim();
|
|
43181
43205
|
if (!t) throw Error("Message is empty");
|
|
43182
|
-
let n = i.data ?? {}, r =
|
|
43206
|
+
let n = i.data ?? {}, r = le();
|
|
43183
43207
|
r.startsWith("thread:") ? await _O(e.issueId, t, r.slice(7)) : r === "new" && n.cursorAgentId ? await vO(e.issueId, t, {
|
|
43184
43208
|
name: n.cursorAgentName,
|
|
43185
43209
|
displayName: n.cursorAgentName ?? "Cursor",
|
|
@@ -43187,53 +43211,53 @@ function A$(e) {
|
|
|
43187
43211
|
}) : await _O(e.issueId, t);
|
|
43188
43212
|
},
|
|
43189
43213
|
onSuccess: () => {
|
|
43190
|
-
l(""), d(null), t.invalidateQueries({ queryKey: ["issue", e.issueId] }), FQ();
|
|
43214
|
+
l(""), d(null), $A("capture"), t.invalidateQueries({ queryKey: ["issue", e.issueId] }), FQ();
|
|
43191
43215
|
},
|
|
43192
43216
|
onError: (e) => {
|
|
43193
43217
|
d(e.message ?? "Failed to send");
|
|
43194
43218
|
}
|
|
43195
|
-
})),
|
|
43219
|
+
})), pe = k(() => n.data), me = k(() => r.data ?? []);
|
|
43196
43220
|
return (() => {
|
|
43197
|
-
var t =
|
|
43221
|
+
var t = y$(), r = t.firstChild, a = r.firstChild, d = r.nextSibling, f = d.nextSibling, p = f.firstChild;
|
|
43198
43222
|
return P(a, j(vj, {
|
|
43199
43223
|
class: "min-w-[68px] shrink-0 text-[11px]",
|
|
43200
43224
|
get onClick() {
|
|
43201
43225
|
return e.onBack;
|
|
43202
43226
|
},
|
|
43203
43227
|
get children() {
|
|
43204
|
-
return
|
|
43228
|
+
return a$();
|
|
43205
43229
|
}
|
|
43206
43230
|
}), null), P(a, j(M, {
|
|
43207
43231
|
get when() {
|
|
43208
|
-
return
|
|
43232
|
+
return pe();
|
|
43209
43233
|
},
|
|
43210
43234
|
get children() {
|
|
43211
43235
|
return [(() => {
|
|
43212
|
-
var e =
|
|
43213
|
-
return P(e, () =>
|
|
43236
|
+
var e = o$();
|
|
43237
|
+
return P(e, () => pe().identifier), e;
|
|
43214
43238
|
})(), (() => {
|
|
43215
|
-
var e =
|
|
43216
|
-
return P(e, () =>
|
|
43239
|
+
var e = s$();
|
|
43240
|
+
return P(e, () => pe().title), e;
|
|
43217
43241
|
})()];
|
|
43218
43242
|
}
|
|
43219
43243
|
}), null), P(a, j(M, {
|
|
43220
43244
|
get when() {
|
|
43221
|
-
return $e(() => !!n.isPending)() && !
|
|
43245
|
+
return $e(() => !!n.isPending)() && !pe();
|
|
43222
43246
|
},
|
|
43223
43247
|
get children() {
|
|
43224
|
-
return
|
|
43248
|
+
return c$();
|
|
43225
43249
|
}
|
|
43226
43250
|
}), null), P(r, j(M, {
|
|
43227
43251
|
get when() {
|
|
43228
|
-
return
|
|
43252
|
+
return pe();
|
|
43229
43253
|
},
|
|
43230
43254
|
get children() {
|
|
43231
|
-
var e =
|
|
43255
|
+
var e = l$(), t = e.firstChild;
|
|
43232
43256
|
return P(e, j(kj, { get color() {
|
|
43233
|
-
return
|
|
43234
|
-
} }), t), P(t, () =>
|
|
43257
|
+
return pe().state.color;
|
|
43258
|
+
} }), t), P(t, () => pe().state.name), P(e, j(Tj, {
|
|
43235
43259
|
get href() {
|
|
43236
|
-
return
|
|
43260
|
+
return pe().url;
|
|
43237
43261
|
},
|
|
43238
43262
|
class: "ml-auto shrink-0",
|
|
43239
43263
|
children: "Open in Linear"
|
|
@@ -43246,7 +43270,7 @@ function A$(e) {
|
|
|
43246
43270
|
children: (e) => {
|
|
43247
43271
|
let t = () => s(e());
|
|
43248
43272
|
return (() => {
|
|
43249
|
-
var n =
|
|
43273
|
+
var n = b$(), r = n.firstChild, i = r.firstChild.firstChild, a = i.nextSibling.nextSibling.nextSibling;
|
|
43250
43274
|
a.firstChild;
|
|
43251
43275
|
var o = r.nextSibling, s = o.firstChild, c = s.nextSibling;
|
|
43252
43276
|
return P(i, j(wj, { size: 12 })), P(a, () => Nj(e().startedAt), null), P(r, j(Oj, { get children() {
|
|
@@ -43266,62 +43290,62 @@ function A$(e) {
|
|
|
43266
43290
|
}
|
|
43267
43291
|
}), null), P(d, j(M, {
|
|
43268
43292
|
get when() {
|
|
43269
|
-
return
|
|
43293
|
+
return me().length > 0;
|
|
43270
43294
|
},
|
|
43271
43295
|
get children() {
|
|
43272
|
-
var e =
|
|
43296
|
+
var e = u$();
|
|
43273
43297
|
return P(e, j(We, {
|
|
43274
43298
|
get each() {
|
|
43275
|
-
return
|
|
43299
|
+
return me();
|
|
43276
43300
|
},
|
|
43277
|
-
children: (e) => j(
|
|
43301
|
+
children: (e) => j(I$, { session: e })
|
|
43278
43302
|
})), e;
|
|
43279
43303
|
}
|
|
43280
43304
|
}), null), P(d, j(M, {
|
|
43281
43305
|
get when() {
|
|
43282
|
-
return $e(() => !!
|
|
43306
|
+
return $e(() => !!pe())() && pe().attachments.length > 0;
|
|
43283
43307
|
},
|
|
43284
43308
|
get children() {
|
|
43285
|
-
var e =
|
|
43309
|
+
var e = d$(), t = e.firstChild.nextSibling;
|
|
43286
43310
|
return P(t, j(We, {
|
|
43287
43311
|
get each() {
|
|
43288
|
-
return
|
|
43312
|
+
return pe().attachments;
|
|
43289
43313
|
},
|
|
43290
43314
|
children: (e) => {
|
|
43291
43315
|
let t = /github\.com\/[^/]+\/[^/]+\/pull\/\d+/i.test(e.url);
|
|
43292
43316
|
return (() => {
|
|
43293
|
-
var n =
|
|
43317
|
+
var n = S$(), r = n.firstChild;
|
|
43294
43318
|
return P(r, () => e.title), P(n, j(M, {
|
|
43295
43319
|
get when() {
|
|
43296
|
-
return $e(() => !!(t &&
|
|
43320
|
+
return $e(() => !!(t && ee(e.url)))() && ee(e.url) !== "OPEN";
|
|
43297
43321
|
},
|
|
43298
43322
|
get children() {
|
|
43299
43323
|
return j(Oj, {
|
|
43300
43324
|
get class() {
|
|
43301
|
-
return `ml-auto shrink-0 ${
|
|
43325
|
+
return `ml-auto shrink-0 ${ee(e.url) === "MERGED" ? "text-success" : "text-text-faint"}`;
|
|
43302
43326
|
},
|
|
43303
43327
|
get children() {
|
|
43304
|
-
return
|
|
43328
|
+
return ee(e.url) === "MERGED" ? "✓ merged" : "closed";
|
|
43305
43329
|
}
|
|
43306
43330
|
});
|
|
43307
43331
|
}
|
|
43308
43332
|
}), null), P(n, j(M, {
|
|
43309
43333
|
get when() {
|
|
43310
|
-
return t && (!
|
|
43334
|
+
return t && (!ee(e.url) || ee(e.url) === "OPEN");
|
|
43311
43335
|
},
|
|
43312
43336
|
get children() {
|
|
43313
43337
|
return j(vj, {
|
|
43314
43338
|
variant: "primary",
|
|
43315
43339
|
class: "ml-auto h-6 shrink-0 px-2 text-[11px]",
|
|
43316
43340
|
get loading() {
|
|
43317
|
-
return
|
|
43341
|
+
return te() === e.url;
|
|
43318
43342
|
},
|
|
43319
43343
|
get title() {
|
|
43320
|
-
return
|
|
43344
|
+
return E.isError ? "PR state unknown — restart the bridge (npx linear-grab-bridge) for live merge status" : "Squash-merge this PR via the bridge gh — reviewed the demo? Ship it.";
|
|
43321
43345
|
},
|
|
43322
|
-
onClick: () => void
|
|
43346
|
+
onClick: () => void se(e.url),
|
|
43323
43347
|
get children() {
|
|
43324
|
-
return
|
|
43348
|
+
return x$();
|
|
43325
43349
|
}
|
|
43326
43350
|
});
|
|
43327
43351
|
}
|
|
@@ -43336,41 +43360,46 @@ function A$(e) {
|
|
|
43336
43360
|
}
|
|
43337
43361
|
}), null), P(t, j(M, {
|
|
43338
43362
|
get when() {
|
|
43339
|
-
return
|
|
43363
|
+
return ie();
|
|
43340
43364
|
},
|
|
43341
43365
|
get children() {
|
|
43342
43366
|
return j(jj, { get message() {
|
|
43343
|
-
return
|
|
43367
|
+
return ie();
|
|
43344
43368
|
} });
|
|
43345
43369
|
}
|
|
43346
43370
|
}), null), e;
|
|
43347
43371
|
}
|
|
43348
43372
|
}), null), P(d, j(M, {
|
|
43349
43373
|
get when() {
|
|
43350
|
-
return $e(() => !!
|
|
43374
|
+
return $e(() => !!pe())() && pe().comments.length > 0;
|
|
43351
43375
|
},
|
|
43352
43376
|
get children() {
|
|
43353
|
-
var e =
|
|
43354
|
-
return e.firstChild, P(e, j(
|
|
43377
|
+
var e = f$();
|
|
43378
|
+
return e.firstChild, P(e, j(Ge, {
|
|
43355
43379
|
get each() {
|
|
43356
|
-
return
|
|
43380
|
+
return pe().comments;
|
|
43357
43381
|
},
|
|
43358
|
-
children: (e) =>
|
|
43359
|
-
|
|
43360
|
-
return
|
|
43361
|
-
|
|
43362
|
-
|
|
43363
|
-
|
|
43364
|
-
|
|
43365
|
-
|
|
43366
|
-
|
|
43367
|
-
|
|
43368
|
-
|
|
43382
|
+
children: (e) => {
|
|
43383
|
+
let t = e();
|
|
43384
|
+
return (() => {
|
|
43385
|
+
var e = C$(), n = e.firstChild, r = n.firstChild, i = r.nextSibling;
|
|
43386
|
+
return P(r, () => t.user?.displayName ?? t.user?.name ?? "Unknown"), P(n, j(M, {
|
|
43387
|
+
get when() {
|
|
43388
|
+
return t.user?.app;
|
|
43389
|
+
},
|
|
43390
|
+
get children() {
|
|
43391
|
+
return j(Oj, { children: "agent" });
|
|
43392
|
+
}
|
|
43393
|
+
}), i), P(i, () => Nj(t.createdAt)), P(e, j(j$, { get text() {
|
|
43394
|
+
return t.body;
|
|
43395
|
+
} }), null), e;
|
|
43396
|
+
})();
|
|
43397
|
+
}
|
|
43369
43398
|
}), null), e;
|
|
43370
43399
|
}
|
|
43371
43400
|
}), null), P(d, j(M, {
|
|
43372
43401
|
get when() {
|
|
43373
|
-
return $e(() => !!(
|
|
43402
|
+
return $e(() => !!(pe() && pe().comments.length === 0))() && me().length === 0;
|
|
43374
43403
|
},
|
|
43375
43404
|
get children() {
|
|
43376
43405
|
return j(Aj, {
|
|
@@ -43380,7 +43409,7 @@ function A$(e) {
|
|
|
43380
43409
|
}
|
|
43381
43410
|
}), null), P(d, j(M, {
|
|
43382
43411
|
get when() {
|
|
43383
|
-
return $e(() => !!n.isError)() && !
|
|
43412
|
+
return $e(() => !!n.isError)() && !pe();
|
|
43384
43413
|
},
|
|
43385
43414
|
get children() {
|
|
43386
43415
|
return j(Aj, {
|
|
@@ -43407,26 +43436,26 @@ function A$(e) {
|
|
|
43407
43436
|
},
|
|
43408
43437
|
onInput: (e) => l(e.target.value),
|
|
43409
43438
|
get disabled() {
|
|
43410
|
-
return
|
|
43439
|
+
return fe.isPending;
|
|
43411
43440
|
}
|
|
43412
43441
|
}), p), P(p, j(Sj, {
|
|
43413
43442
|
class: "min-w-0 flex-1",
|
|
43414
43443
|
get value() {
|
|
43415
|
-
return
|
|
43444
|
+
return le();
|
|
43416
43445
|
},
|
|
43417
|
-
onChange: (e) =>
|
|
43446
|
+
onChange: (e) => ue(e.currentTarget.value),
|
|
43418
43447
|
get children() {
|
|
43419
43448
|
return [
|
|
43420
43449
|
j(We, {
|
|
43421
43450
|
get each() {
|
|
43422
|
-
return
|
|
43451
|
+
return ce();
|
|
43423
43452
|
},
|
|
43424
43453
|
children: (e, t) => (() => {
|
|
43425
|
-
var n =
|
|
43454
|
+
var n = w$(), r = n.firstChild.nextSibling;
|
|
43426
43455
|
return r.nextSibling, P(n, (() => {
|
|
43427
|
-
var e = $e(() =>
|
|
43456
|
+
var e = $e(() => ce().length > 1);
|
|
43428
43457
|
return () => e() ? ` #${t() + 1}` : "";
|
|
43429
|
-
})(), r), P(n, () => Nj(e.createdAt), null), D(() => n.selected =
|
|
43458
|
+
})(), r), P(n, () => Nj(e.createdAt), null), D(() => n.selected = le() === `thread:${e.id}`), D(() => n.value = `thread:${e.id}`), n;
|
|
43430
43459
|
})()
|
|
43431
43460
|
}),
|
|
43432
43461
|
j(M, {
|
|
@@ -43434,24 +43463,51 @@ function A$(e) {
|
|
|
43434
43463
|
return i.data?.cursorAgentId;
|
|
43435
43464
|
},
|
|
43436
43465
|
get children() {
|
|
43437
|
-
var e =
|
|
43438
|
-
return t.nextSibling, P(e, () => i.data?.cursorAgentName ?? "Cursor", t), D(() => e.selected =
|
|
43466
|
+
var e = p$(), t = e.firstChild.nextSibling;
|
|
43467
|
+
return t.nextSibling, P(e, () => i.data?.cursorAgentName ?? "Cursor", t), D(() => e.selected = le() === "new"), e;
|
|
43439
43468
|
}
|
|
43440
43469
|
}),
|
|
43441
43470
|
(() => {
|
|
43442
|
-
var e =
|
|
43443
|
-
return D(() => e.selected =
|
|
43471
|
+
var e = m$();
|
|
43472
|
+
return D(() => e.selected = le() === "comment"), e;
|
|
43444
43473
|
})()
|
|
43445
43474
|
];
|
|
43446
43475
|
}
|
|
43447
43476
|
}), null), P(p, j(vj, {
|
|
43448
43477
|
variant: "ghost",
|
|
43449
|
-
class
|
|
43450
|
-
|
|
43478
|
+
get class() {
|
|
43479
|
+
return `size-7 shrink-0 px-0 ${ZA() === "composer" ? "text-accent" : ""}`;
|
|
43480
|
+
},
|
|
43481
|
+
get title() {
|
|
43482
|
+
return ZA() === "composer" ? "Pick mode ON — every pick appends here. Click to stop." : "Pick elements — refs append to this reply (stays on until toggled off or sent)";
|
|
43483
|
+
},
|
|
43451
43484
|
"aria-label": "Pick element for reply",
|
|
43452
43485
|
onClick: v,
|
|
43453
43486
|
get children() {
|
|
43454
|
-
return
|
|
43487
|
+
return h$();
|
|
43488
|
+
}
|
|
43489
|
+
}), null), P(p, j(vj, {
|
|
43490
|
+
variant: "ghost",
|
|
43491
|
+
get class() {
|
|
43492
|
+
return `size-7 shrink-0 px-0 ${y().phase === "recording" ? "text-danger" : ""}`;
|
|
43493
|
+
},
|
|
43494
|
+
get title() {
|
|
43495
|
+
return y().phase === "recording" ? "Stop recording — the GIF auto-attaches to this reply" : "Record a GIF from this thread (auto-attaches when done)";
|
|
43496
|
+
},
|
|
43497
|
+
"aria-label": "Record GIF",
|
|
43498
|
+
onClick: S,
|
|
43499
|
+
get children() {
|
|
43500
|
+
return j(M, {
|
|
43501
|
+
get when() {
|
|
43502
|
+
return y().phase === "recording";
|
|
43503
|
+
},
|
|
43504
|
+
get fallback() {
|
|
43505
|
+
return T$();
|
|
43506
|
+
},
|
|
43507
|
+
get children() {
|
|
43508
|
+
return g$();
|
|
43509
|
+
}
|
|
43510
|
+
});
|
|
43455
43511
|
}
|
|
43456
43512
|
}), null), P(p, j(vj, {
|
|
43457
43513
|
variant: "ghost",
|
|
@@ -43463,31 +43519,31 @@ function A$(e) {
|
|
|
43463
43519
|
"aria-label": "Attach captures",
|
|
43464
43520
|
onClick: () => void _(),
|
|
43465
43521
|
get children() {
|
|
43466
|
-
return
|
|
43522
|
+
return _$();
|
|
43467
43523
|
}
|
|
43468
43524
|
}), null), P(p, j(vj, {
|
|
43469
43525
|
class: "min-w-[52px] shrink-0",
|
|
43470
43526
|
variant: "primary",
|
|
43471
43527
|
get loading() {
|
|
43472
|
-
return
|
|
43528
|
+
return fe.isPending;
|
|
43473
43529
|
},
|
|
43474
43530
|
get disabled() {
|
|
43475
43531
|
return c().trim().length === 0;
|
|
43476
43532
|
},
|
|
43477
|
-
onClick: () =>
|
|
43533
|
+
onClick: () => fe.mutate(),
|
|
43478
43534
|
get children() {
|
|
43479
|
-
return
|
|
43535
|
+
return v$();
|
|
43480
43536
|
}
|
|
43481
43537
|
}), null), t;
|
|
43482
43538
|
})();
|
|
43483
43539
|
}
|
|
43484
|
-
function
|
|
43540
|
+
function I$(e) {
|
|
43485
43541
|
let t = k(() => {
|
|
43486
43542
|
let t = e.session.status;
|
|
43487
43543
|
return /complete|done/i.test(t) ? "var(--color-success)" : /await|pending|elicit/i.test(t) ? "var(--color-warn)" : "var(--color-accent)";
|
|
43488
43544
|
}), n = k(() => e.session.activities.slice(-10));
|
|
43489
43545
|
return (() => {
|
|
43490
|
-
var r =
|
|
43546
|
+
var r = k$(), i = r.firstChild, a = i.firstChild;
|
|
43491
43547
|
return P(i, j(Oj, {
|
|
43492
43548
|
get color() {
|
|
43493
43549
|
return t();
|
|
@@ -43500,7 +43556,7 @@ function j$(e) {
|
|
|
43500
43556
|
return e.session.appUser?.displayName;
|
|
43501
43557
|
},
|
|
43502
43558
|
get children() {
|
|
43503
|
-
var t =
|
|
43559
|
+
var t = E$();
|
|
43504
43560
|
return P(t, () => e.session.appUser.displayName), t;
|
|
43505
43561
|
}
|
|
43506
43562
|
}), a), P(a, () => Nj(e.session.updatedAt)), P(r, j(M, {
|
|
@@ -43508,7 +43564,7 @@ function j$(e) {
|
|
|
43508
43564
|
return e.session.summary;
|
|
43509
43565
|
},
|
|
43510
43566
|
get children() {
|
|
43511
|
-
var t =
|
|
43567
|
+
var t = D$();
|
|
43512
43568
|
return P(t, () => e.session.summary), t;
|
|
43513
43569
|
}
|
|
43514
43570
|
}), null), P(r, j(M, {
|
|
@@ -43516,7 +43572,7 @@ function j$(e) {
|
|
|
43516
43572
|
return n().length > 0;
|
|
43517
43573
|
},
|
|
43518
43574
|
get children() {
|
|
43519
|
-
var e =
|
|
43575
|
+
var e = O$();
|
|
43520
43576
|
return P(e, j(We, {
|
|
43521
43577
|
get each() {
|
|
43522
43578
|
return n();
|
|
@@ -43524,7 +43580,7 @@ function j$(e) {
|
|
|
43524
43580
|
children: (e) => {
|
|
43525
43581
|
let t = e.content, n = String(t?.body ?? t?.text ?? t?.type ?? JSON.stringify(t)).slice(0, 300);
|
|
43526
43582
|
return (() => {
|
|
43527
|
-
var t =
|
|
43583
|
+
var t = A$(), r = t.firstChild, i = r.nextSibling;
|
|
43528
43584
|
return P(r, () => Nj(e.createdAt)), P(i, n), t;
|
|
43529
43585
|
})();
|
|
43530
43586
|
}
|
|
@@ -43536,7 +43592,7 @@ function j$(e) {
|
|
|
43536
43592
|
//#endregion
|
|
43537
43593
|
//#region src/panel/views/LocalView.tsx
|
|
43538
43594
|
rt(["click"]), Rr();
|
|
43539
|
-
var
|
|
43595
|
+
var L$ = /*#__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\">"), R$ = /*#__PURE__*/ N("<div><p></p><div class=\"lg-md text-text text-[11.5px] leading-relaxed break-words\">"), z$ = /*#__PURE__*/ N("<p>"), B$ = /*#__PURE__*/ N("<span class=\"text-text-faint max-w-[55%] truncate text-[10.5px] tabular-nums\"> running · "), V$ = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1.5\">"), H$ = /*#__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\">"), U$ = /*#__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"), W$ = /*#__PURE__*/ N("<span class=\"text-text-faint text-[10.5px] tabular-nums\">ctx <!> · out "), G$ = /*#__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]\">"), K$ = /*#__PURE__*/ N("<span class=\"text-success text-[12px] leading-none\">✓"), q$ = /*#__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\">"), J$ = /*#__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>"), Y$ = /*#__PURE__*/ N("<span class=\"font-mono text-text-faint min-w-0 truncate text-[10.5px]\">"), X$ = /*#__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>−"), Z$ = /*#__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\">"), Q$ = /*#__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\">"), $$ = /*#__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\">"), e1 = /*#__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\">"), t1 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[4ch] text-center\">Send"), n1 = /*#__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]\">"), r1 = /*#__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\">"), i1 = /*#__PURE__*/ N("<span aria-hidden class=\"size-2 shrink-0 rounded-full\">"), a1 = /*#__PURE__*/ N("<div class=\"flex min-w-0 items-center gap-1.5\">"), o1 = /*#__PURE__*/ N("<option>"), s1 = /*#__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>"), c1 = /*#__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\">"), l1 = /*#__PURE__*/ N("<span class=text-success>+"), u1 = /*#__PURE__*/ N("<span class=text-danger>−"), d1 = /*#__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\">"), f1 = /*#__PURE__*/ N("<span class=text-text-faint>bin"), p1 = /*#__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"), m1 = /*#__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\">"), h1 = /*#__PURE__*/ N("<p class=\"text-text-faint text-[11px]\">Waiting for output…"), g1 = [
|
|
43540
43596
|
{
|
|
43541
43597
|
id: "",
|
|
43542
43598
|
label: "Default model"
|
|
@@ -43558,13 +43614,13 @@ var M$ = /*#__PURE__*/ N("<div class=\"border-accent/40 bg-accent-soft self-end
|
|
|
43558
43614
|
label: "Haiku"
|
|
43559
43615
|
}
|
|
43560
43616
|
];
|
|
43561
|
-
function
|
|
43617
|
+
function _1(e, t) {
|
|
43562
43618
|
let n = e.split(".").map(Number), r = t.split(".").map(Number);
|
|
43563
43619
|
for (let e = 0; e < 3; e++) if ((n[e] ?? 0) !== (r[e] ?? 0)) return (n[e] ?? 0) < (r[e] ?? 0);
|
|
43564
43620
|
return !1;
|
|
43565
43621
|
}
|
|
43566
|
-
var
|
|
43567
|
-
function
|
|
43622
|
+
var v1 = (e) => e == null ? "–" : e >= 1e3 ? `${(e / 1e3).toFixed(e >= 1e5 ? 0 : 1)}k` : String(e);
|
|
43623
|
+
function y1() {
|
|
43568
43624
|
let e = sr(), t = _r(() => ({
|
|
43569
43625
|
queryKey: ["bridge-health"],
|
|
43570
43626
|
queryFn: EO,
|
|
@@ -43617,7 +43673,7 @@ function m1() {
|
|
|
43617
43673
|
let y = async () => {
|
|
43618
43674
|
m(!0);
|
|
43619
43675
|
try {
|
|
43620
|
-
let e = await
|
|
43676
|
+
let e = await zQ();
|
|
43621
43677
|
e && f((t) => `${t ? `${t}\n` : ""}${e}\n`);
|
|
43622
43678
|
} finally {
|
|
43623
43679
|
m(!1);
|
|
@@ -43647,20 +43703,20 @@ function m1() {
|
|
|
43647
43703
|
await navigator.clipboard.writeText(zO(e)), te(e.id), setTimeout(() => te(null), 1800);
|
|
43648
43704
|
} catch {}
|
|
43649
43705
|
}, ne = (e) => e === "running" ? "var(--color-accent)" : e === "done" ? "var(--color-success)" : e === "stopped" ? "var(--color-warn)" : "var(--color-danger)", re = (e) => {
|
|
43650
|
-
let t = e.line.kind, n = k(() =>
|
|
43706
|
+
let t = e.line.kind, n = k(() => YQ(e.line.text));
|
|
43651
43707
|
return t === "user" ? (() => {
|
|
43652
|
-
var e =
|
|
43708
|
+
var e = L$(), t = e.firstChild.nextSibling;
|
|
43653
43709
|
return D(() => t.innerHTML = n()), e;
|
|
43654
43710
|
})() : t === "assistant" || t === "result" ? (() => {
|
|
43655
|
-
var e =
|
|
43711
|
+
var e = R$(), r = e.firstChild, i = r.nextSibling;
|
|
43656
43712
|
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;
|
|
43657
43713
|
})() : (() => {
|
|
43658
|
-
var n =
|
|
43714
|
+
var n = z$();
|
|
43659
43715
|
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;
|
|
43660
43716
|
})();
|
|
43661
43717
|
};
|
|
43662
43718
|
return (() => {
|
|
43663
|
-
var e =
|
|
43719
|
+
var e = H$(), a = e.firstChild;
|
|
43664
43720
|
a.firstChild;
|
|
43665
43721
|
var l = a.nextSibling;
|
|
43666
43722
|
return P(a, j(M, {
|
|
@@ -43676,7 +43732,7 @@ function m1() {
|
|
|
43676
43732
|
get children() {
|
|
43677
43733
|
return [j(M, {
|
|
43678
43734
|
get when() {
|
|
43679
|
-
return
|
|
43735
|
+
return _1(t.data.version, "0.15.1");
|
|
43680
43736
|
},
|
|
43681
43737
|
get children() {
|
|
43682
43738
|
return j(Oj, {
|
|
@@ -43692,7 +43748,7 @@ function m1() {
|
|
|
43692
43748
|
});
|
|
43693
43749
|
}
|
|
43694
43750
|
}), (() => {
|
|
43695
|
-
var e =
|
|
43751
|
+
var e = B$(), n = e.firstChild;
|
|
43696
43752
|
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;
|
|
43697
43753
|
})()];
|
|
43698
43754
|
}
|
|
@@ -43706,7 +43762,7 @@ function m1() {
|
|
|
43706
43762
|
get children() {
|
|
43707
43763
|
return [
|
|
43708
43764
|
"Start it in your repo's terminal:",
|
|
43709
|
-
|
|
43765
|
+
U$(),
|
|
43710
43766
|
"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."
|
|
43711
43767
|
];
|
|
43712
43768
|
}
|
|
@@ -43724,20 +43780,20 @@ function m1() {
|
|
|
43724
43780
|
});
|
|
43725
43781
|
},
|
|
43726
43782
|
get children() {
|
|
43727
|
-
var e =
|
|
43783
|
+
var e = V$();
|
|
43728
43784
|
return P(e, j(We, {
|
|
43729
43785
|
get each() {
|
|
43730
43786
|
return n.data;
|
|
43731
43787
|
},
|
|
43732
43788
|
children: (e) => (() => {
|
|
43733
|
-
var t =
|
|
43789
|
+
var t = r1(), n = t.firstChild, a = n.firstChild, l = a.nextSibling, m = n.nextSibling, h = m.nextSibling, g = h.nextSibling;
|
|
43734
43790
|
return P(n, j(M, {
|
|
43735
43791
|
get when() {
|
|
43736
43792
|
return e.status === "running";
|
|
43737
43793
|
},
|
|
43738
43794
|
get fallback() {
|
|
43739
43795
|
return (() => {
|
|
43740
|
-
var t =
|
|
43796
|
+
var t = i1();
|
|
43741
43797
|
return D((n) => dt(t, "background", ne(e.status))), t;
|
|
43742
43798
|
})();
|
|
43743
43799
|
},
|
|
@@ -43790,8 +43846,8 @@ function m1() {
|
|
|
43790
43846
|
return e.usage;
|
|
43791
43847
|
},
|
|
43792
43848
|
get children() {
|
|
43793
|
-
var t =
|
|
43794
|
-
return n.nextSibling, P(t, () =>
|
|
43849
|
+
var t = W$(), n = t.firstChild.nextSibling;
|
|
43850
|
+
return n.nextSibling, P(t, () => v1(e.usage.contextTokens), n), P(t, () => v1(e.usage.outputTokens), null), P(t, (() => {
|
|
43795
43851
|
var t = $e(() => !!e.usage.costUsd);
|
|
43796
43852
|
return () => t() ? ` · $${e.usage.costUsd.toFixed(2)}` : "";
|
|
43797
43853
|
})(), null), t;
|
|
@@ -43801,7 +43857,7 @@ function m1() {
|
|
|
43801
43857
|
return o(e);
|
|
43802
43858
|
},
|
|
43803
43859
|
children: (e) => (() => {
|
|
43804
|
-
var t =
|
|
43860
|
+
var t = a1();
|
|
43805
43861
|
return P(t, j(Oj, { get children() {
|
|
43806
43862
|
return e().state.name;
|
|
43807
43863
|
} }), null), P(t, j(Tj, {
|
|
@@ -43816,7 +43872,7 @@ function m1() {
|
|
|
43816
43872
|
return $e(() => !!e.worktree)() && !e.worktree.removed;
|
|
43817
43873
|
},
|
|
43818
43874
|
get children() {
|
|
43819
|
-
var t =
|
|
43875
|
+
var t = G$(), n = t.firstChild;
|
|
43820
43876
|
return P(t, j(Oj, {
|
|
43821
43877
|
class: "text-warn",
|
|
43822
43878
|
children: "⎇ worktree"
|
|
@@ -43852,9 +43908,9 @@ function m1() {
|
|
|
43852
43908
|
title: "Model — applies from the next message",
|
|
43853
43909
|
get children() {
|
|
43854
43910
|
return j(We, {
|
|
43855
|
-
each:
|
|
43911
|
+
each: g1,
|
|
43856
43912
|
children: (t) => (() => {
|
|
43857
|
-
var n =
|
|
43913
|
+
var n = o1();
|
|
43858
43914
|
return P(n, () => t.label), D(() => n.selected = (e.pendingModel ?? e.model ?? "") === t.id), D(() => n.value = t.id), n;
|
|
43859
43915
|
})()
|
|
43860
43916
|
});
|
|
@@ -43869,7 +43925,7 @@ function m1() {
|
|
|
43869
43925
|
title: "Open the issue's Activity thread",
|
|
43870
43926
|
onClick: () => YA("activity", e().id),
|
|
43871
43927
|
get children() {
|
|
43872
|
-
return
|
|
43928
|
+
return s1();
|
|
43873
43929
|
}
|
|
43874
43930
|
})
|
|
43875
43931
|
}), null), P(g, j(vj, {
|
|
@@ -43888,10 +43944,10 @@ function m1() {
|
|
|
43888
43944
|
return ee() === e.id;
|
|
43889
43945
|
},
|
|
43890
43946
|
get fallback() {
|
|
43891
|
-
return
|
|
43947
|
+
return c1();
|
|
43892
43948
|
},
|
|
43893
43949
|
get children() {
|
|
43894
|
-
return
|
|
43950
|
+
return K$();
|
|
43895
43951
|
}
|
|
43896
43952
|
});
|
|
43897
43953
|
}
|
|
@@ -43903,7 +43959,7 @@ function m1() {
|
|
|
43903
43959
|
},
|
|
43904
43960
|
onClick: () => i(r() === e.id ? null : e.id),
|
|
43905
43961
|
get children() {
|
|
43906
|
-
return
|
|
43962
|
+
return q$();
|
|
43907
43963
|
}
|
|
43908
43964
|
}), null), P(g, j(M, {
|
|
43909
43965
|
get when() {
|
|
@@ -43919,7 +43975,7 @@ function m1() {
|
|
|
43919
43975
|
title: "Interrupt — the session stays resumable",
|
|
43920
43976
|
onClick: () => u.mutate(e.id),
|
|
43921
43977
|
get children() {
|
|
43922
|
-
return
|
|
43978
|
+
return J$();
|
|
43923
43979
|
}
|
|
43924
43980
|
});
|
|
43925
43981
|
}
|
|
@@ -43934,7 +43990,7 @@ function m1() {
|
|
|
43934
43990
|
return $e(() => !!c.data)() && (c.data.files.length || c.data.untracked.length || c.data.prs.length);
|
|
43935
43991
|
},
|
|
43936
43992
|
get children() {
|
|
43937
|
-
var e =
|
|
43993
|
+
var e = X$(), t = e.firstChild, n = t.firstChild.nextSibling, r = n.firstChild;
|
|
43938
43994
|
r.firstChild;
|
|
43939
43995
|
var i = r.nextSibling.nextSibling;
|
|
43940
43996
|
return i.firstChild, P(t, j(M, {
|
|
@@ -43942,7 +43998,7 @@ function m1() {
|
|
|
43942
43998
|
return c.data.branch;
|
|
43943
43999
|
},
|
|
43944
44000
|
get children() {
|
|
43945
|
-
var e =
|
|
44001
|
+
var e = Y$();
|
|
43946
44002
|
return P(e, () => c.data.branch), e;
|
|
43947
44003
|
}
|
|
43948
44004
|
}), n), P(r, () => c.data.totalAdded, null), P(i, () => c.data.totalDeleted, null), P(e, j(We, {
|
|
@@ -43950,23 +44006,23 @@ function m1() {
|
|
|
43950
44006
|
return c.data.files;
|
|
43951
44007
|
},
|
|
43952
44008
|
children: (e) => (() => {
|
|
43953
|
-
var t =
|
|
44009
|
+
var t = d1(), n = t.firstChild, r = n.nextSibling;
|
|
43954
44010
|
return P(n, () => e.path), P(r, j(M, {
|
|
43955
44011
|
get when() {
|
|
43956
44012
|
return !e.binary;
|
|
43957
44013
|
},
|
|
43958
44014
|
get fallback() {
|
|
43959
|
-
return
|
|
44015
|
+
return f1();
|
|
43960
44016
|
},
|
|
43961
44017
|
get children() {
|
|
43962
44018
|
return [
|
|
43963
44019
|
(() => {
|
|
43964
|
-
var t =
|
|
44020
|
+
var t = l1();
|
|
43965
44021
|
return t.firstChild, P(t, () => e.added, null), t;
|
|
43966
44022
|
})(),
|
|
43967
44023
|
" ",
|
|
43968
44024
|
(() => {
|
|
43969
|
-
var t =
|
|
44025
|
+
var t = u1();
|
|
43970
44026
|
return t.firstChild, P(t, () => e.deleted, null), t;
|
|
43971
44027
|
})()
|
|
43972
44028
|
];
|
|
@@ -43978,7 +44034,7 @@ function m1() {
|
|
|
43978
44034
|
return c.data.untracked;
|
|
43979
44035
|
},
|
|
43980
44036
|
children: (e) => (() => {
|
|
43981
|
-
var t =
|
|
44037
|
+
var t = p1(), n = t.firstChild;
|
|
43982
44038
|
return it(n, "title", e), P(n, e), t;
|
|
43983
44039
|
})()
|
|
43984
44040
|
}), null), P(e, j(We, {
|
|
@@ -43986,7 +44042,7 @@ function m1() {
|
|
|
43986
44042
|
return c.data.prs;
|
|
43987
44043
|
},
|
|
43988
44044
|
children: (e) => (() => {
|
|
43989
|
-
var t =
|
|
44045
|
+
var t = m1(), n = t.firstChild;
|
|
43990
44046
|
return P(t, j(Oj, {
|
|
43991
44047
|
class: "text-accent",
|
|
43992
44048
|
get children() {
|
|
@@ -44004,7 +44060,7 @@ function m1() {
|
|
|
44004
44060
|
}
|
|
44005
44061
|
}),
|
|
44006
44062
|
(() => {
|
|
44007
|
-
var e =
|
|
44063
|
+
var e = Z$();
|
|
44008
44064
|
return e.addEventListener("scroll", E), pt((e) => {
|
|
44009
44065
|
C = e, w = !0;
|
|
44010
44066
|
}, e), P(e, j(M, {
|
|
@@ -44012,7 +44068,7 @@ function m1() {
|
|
|
44012
44068
|
return (s.data?.tail ?? []).length > 0;
|
|
44013
44069
|
},
|
|
44014
44070
|
get fallback() {
|
|
44015
|
-
return
|
|
44071
|
+
return h1();
|
|
44016
44072
|
},
|
|
44017
44073
|
get children() {
|
|
44018
44074
|
return j(Ge, {
|
|
@@ -44027,7 +44083,7 @@ function m1() {
|
|
|
44027
44083
|
})), e;
|
|
44028
44084
|
})(),
|
|
44029
44085
|
(() => {
|
|
44030
|
-
var t =
|
|
44086
|
+
var t = n1(), n = t.firstChild, r = n.firstChild;
|
|
44031
44087
|
return P(t, j(xj, {
|
|
44032
44088
|
rows: 2,
|
|
44033
44089
|
get placeholder() {
|
|
@@ -44047,7 +44103,7 @@ function m1() {
|
|
|
44047
44103
|
"aria-label": "Pick element",
|
|
44048
44104
|
onClick: v,
|
|
44049
44105
|
get children() {
|
|
44050
|
-
return
|
|
44106
|
+
return Q$();
|
|
44051
44107
|
}
|
|
44052
44108
|
}), null), P(n, j(vj, {
|
|
44053
44109
|
variant: "ghost",
|
|
@@ -44059,7 +44115,7 @@ function m1() {
|
|
|
44059
44115
|
"aria-label": "Attach captures",
|
|
44060
44116
|
onClick: () => void y(),
|
|
44061
44117
|
get children() {
|
|
44062
|
-
return
|
|
44118
|
+
return $$();
|
|
44063
44119
|
}
|
|
44064
44120
|
}), null), P(n, j(vj, {
|
|
44065
44121
|
variant: "ghost",
|
|
@@ -44074,7 +44130,7 @@ function m1() {
|
|
|
44074
44130
|
text: "/compact"
|
|
44075
44131
|
}),
|
|
44076
44132
|
get children() {
|
|
44077
|
-
return
|
|
44133
|
+
return e1();
|
|
44078
44134
|
}
|
|
44079
44135
|
}), null), P(n, j(vj, {
|
|
44080
44136
|
variant: "primary",
|
|
@@ -44090,7 +44146,7 @@ function m1() {
|
|
|
44090
44146
|
text: d().trim()
|
|
44091
44147
|
}),
|
|
44092
44148
|
get children() {
|
|
44093
|
-
return
|
|
44149
|
+
return t1();
|
|
44094
44150
|
}
|
|
44095
44151
|
}), null), t;
|
|
44096
44152
|
})()
|
|
@@ -44107,13 +44163,13 @@ function m1() {
|
|
|
44107
44163
|
}
|
|
44108
44164
|
//#endregion
|
|
44109
44165
|
//#region src/panel/views/PrsView.tsx
|
|
44110
|
-
var
|
|
44111
|
-
function
|
|
44166
|
+
var b1 = /*#__PURE__*/ N("<span class=\"text-text-faint text-[10.5px] tabular-nums\">/<!> from your issues"), x1 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1.5\">"), S1 = /*#__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\">"), C1 = /*#__PURE__*/ N("<span class=\"text-warn text-[10.5px]\"title=\"Merge states come from gh via the bridge\">states unknown — restart the bridge"), w1 = /*#__PURE__*/ N("<button>"), T1 = /*#__PURE__*/ N("<span class=\"text-[12px] leading-none\">✓"), E1 = /*#__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>"), D1 = /*#__PURE__*/ N("<span class=\"text-success text-[12px] leading-none\">✓"), O1 = /*#__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\">"), k1 = /*#__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\">"), A1 = /*#__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\">"), j1 = /github\.com\/[^/]+\/[^/]+\/pull\/\d+/i;
|
|
44167
|
+
function M1(e) {
|
|
44112
44168
|
let t = _r(() => ({
|
|
44113
44169
|
queryKey: ["my-issues"],
|
|
44114
44170
|
queryFn: uO,
|
|
44115
44171
|
refetchInterval: 15e3
|
|
44116
|
-
})), n = k(() => (t.data ?? []).flatMap((e) => (e.attachments ?? []).filter((e) =>
|
|
44172
|
+
})), n = k(() => (t.data ?? []).flatMap((e) => (e.attachments ?? []).filter((e) => j1.test(e.url)).map((t) => ({
|
|
44117
44173
|
issue: e,
|
|
44118
44174
|
attachment: t
|
|
44119
44175
|
})))), r = _r(() => ({
|
|
@@ -44150,7 +44206,7 @@ function D1(e) {
|
|
|
44150
44206
|
} catch {}
|
|
44151
44207
|
};
|
|
44152
44208
|
return (() => {
|
|
44153
|
-
var r =
|
|
44209
|
+
var r = S1(), p = r.firstChild;
|
|
44154
44210
|
p.firstChild;
|
|
44155
44211
|
var h = p.nextSibling, _ = h.firstChild, b = h.nextSibling;
|
|
44156
44212
|
return P(p, j(M, {
|
|
@@ -44158,10 +44214,10 @@ function D1(e) {
|
|
|
44158
44214
|
return !i.isError;
|
|
44159
44215
|
},
|
|
44160
44216
|
get fallback() {
|
|
44161
|
-
return
|
|
44217
|
+
return C1();
|
|
44162
44218
|
},
|
|
44163
44219
|
get children() {
|
|
44164
|
-
var e =
|
|
44220
|
+
var e = b1(), t = e.firstChild, r = t.nextSibling;
|
|
44165
44221
|
return r.nextSibling, P(e, () => d().length, t), P(e, () => n().length, r), e;
|
|
44166
44222
|
}
|
|
44167
44223
|
}), null), P(_, j(We, {
|
|
@@ -44184,7 +44240,7 @@ function D1(e) {
|
|
|
44184
44240
|
}
|
|
44185
44241
|
],
|
|
44186
44242
|
children: (e) => (() => {
|
|
44187
|
-
var t =
|
|
44243
|
+
var t = w1();
|
|
44188
44244
|
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;
|
|
44189
44245
|
})()
|
|
44190
44246
|
})), P(h, j(bj, {
|
|
@@ -44207,13 +44263,13 @@ function D1(e) {
|
|
|
44207
44263
|
});
|
|
44208
44264
|
},
|
|
44209
44265
|
get children() {
|
|
44210
|
-
var t =
|
|
44266
|
+
var t = x1();
|
|
44211
44267
|
return P(t, j(We, {
|
|
44212
44268
|
get each() {
|
|
44213
44269
|
return d();
|
|
44214
44270
|
},
|
|
44215
44271
|
children: (t) => (() => {
|
|
44216
|
-
var n =
|
|
44272
|
+
var n = O1(), r = n.firstChild, i = r.nextSibling, s = i.firstChild, c = s.nextSibling, l = c.nextSibling, u = i.nextSibling, d = u.firstChild;
|
|
44217
44273
|
return P(r, () => t.attachment.title || t.attachment.url), P(i, j(kj, { get color() {
|
|
44218
44274
|
return t.issue.state.color;
|
|
44219
44275
|
} }), s), P(s, () => t.issue.identifier), P(c, () => t.issue.title), P(l, () => Nj(t.issue.updatedAt)), P(u, j(Oj, { get children() {
|
|
@@ -44290,10 +44346,10 @@ function D1(e) {
|
|
|
44290
44346
|
return g().has(t.attachment.url);
|
|
44291
44347
|
},
|
|
44292
44348
|
get fallback() {
|
|
44293
|
-
return
|
|
44349
|
+
return k1();
|
|
44294
44350
|
},
|
|
44295
44351
|
get children() {
|
|
44296
|
-
return
|
|
44352
|
+
return T1();
|
|
44297
44353
|
}
|
|
44298
44354
|
});
|
|
44299
44355
|
}
|
|
@@ -44306,7 +44362,7 @@ function D1(e) {
|
|
|
44306
44362
|
YA("activity", t.issue.id), e.onOpenIssue();
|
|
44307
44363
|
},
|
|
44308
44364
|
get children() {
|
|
44309
|
-
return
|
|
44365
|
+
return E1();
|
|
44310
44366
|
}
|
|
44311
44367
|
}), null), P(d, j(vj, {
|
|
44312
44368
|
variant: "ghost",
|
|
@@ -44320,10 +44376,10 @@ function D1(e) {
|
|
|
44320
44376
|
return f() === t.attachment.id;
|
|
44321
44377
|
},
|
|
44322
44378
|
get fallback() {
|
|
44323
|
-
return
|
|
44379
|
+
return A1();
|
|
44324
44380
|
},
|
|
44325
44381
|
get children() {
|
|
44326
|
-
return
|
|
44382
|
+
return D1();
|
|
44327
44383
|
}
|
|
44328
44384
|
});
|
|
44329
44385
|
}
|
|
@@ -44343,13 +44399,13 @@ function D1(e) {
|
|
|
44343
44399
|
//#endregion
|
|
44344
44400
|
//#region src/lib/linear/auth.ts
|
|
44345
44401
|
rt(["click"]), Rr();
|
|
44346
|
-
function
|
|
44402
|
+
function N1(e) {
|
|
44347
44403
|
let t = "";
|
|
44348
44404
|
for (let n of e) t += String.fromCharCode(n);
|
|
44349
44405
|
return btoa(t).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
|
|
44350
44406
|
}
|
|
44351
|
-
async function
|
|
44352
|
-
let t =
|
|
44407
|
+
async function P1(e) {
|
|
44408
|
+
let t = N1(crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(32))), n = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(t)), r = N1(new Uint8Array(n)), i = N1(crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(16))), a = chrome.identity.getRedirectURL(), o = new URL("https://linear.app/oauth/authorize");
|
|
44353
44409
|
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");
|
|
44354
44410
|
let s = await chrome.identity.launchWebAuthFlow({
|
|
44355
44411
|
url: o.toString(),
|
|
@@ -44377,15 +44433,15 @@ async function k1(e) {
|
|
|
44377
44433
|
linearOauthClientId: e
|
|
44378
44434
|
});
|
|
44379
44435
|
}
|
|
44380
|
-
async function
|
|
44436
|
+
async function F1() {
|
|
44381
44437
|
await wr({
|
|
44382
44438
|
linearAccessToken: void 0,
|
|
44383
44439
|
linearApiKey: void 0
|
|
44384
44440
|
});
|
|
44385
44441
|
}
|
|
44386
44442
|
Rr(), br(), Nx(), mD();
|
|
44387
|
-
var
|
|
44388
|
-
function
|
|
44443
|
+
var I1 = /*#__PURE__*/ N("<div class=\"bg-surface-2 border-border flex rounded-md border p-0.5\">"), L1 = /*#__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."), R1 = /*#__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"), z1 = /*#__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)."), B1 = /*#__PURE__*/ N("<span class=text-text>Connected as <span class=font-medium></span> · <span class=text-text-dim>"), V1 = /*#__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]\">"), H1 = /*#__PURE__*/ N("<option value>Select a team…"), U1 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">No agents found — install the Cursor integration in Linear first."), W1 = /*#__PURE__*/ N("<span class=\"text-text-faint text-[10.5px] leading-snug\">Empty = the default above (computer-use testing, video demo, PR + review babysitting)."), G1 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1.5\">"), K1 = /*#__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."), q1 = /*#__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."), J1 = /*#__PURE__*/ N("<option value>Select a channel…"), Y1 = /*#__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"), X1 = /*#__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."), Z1 = /*#__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"), Q1 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">"), $1 = /*#__PURE__*/ N("<div class=min-h-[2lh]>"), e0 = /*#__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."), t0 = /*#__PURE__*/ N("<div class=\"flex h-full flex-col gap-5 overflow-y-auto pt-3 pb-6 pl-3 pr-4\">"), n0 = /*#__PURE__*/ N("<button>"), r0 = /*#__PURE__*/ N("<div class=\"flex gap-1.5\">"), i0 = /*#__PURE__*/ N("<p class=\"text-text-faint text-center text-[10.5px]\">or"), a0 = /*#__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\">"), o0 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-3\">"), s0 = /*#__PURE__*/ N("<span class=text-text-dim>Connected — verifying…"), c0 = /*#__PURE__*/ N("<option> (<!>)"), l0 = /*#__PURE__*/ N("<option value>Select the agent…"), u0 = /*#__PURE__*/ N("<option>"), d0 = /*#__PURE__*/ N("<option>#"), f0 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">No key set — AI drafting disabled, manual drafting still works.");
|
|
44444
|
+
function p0() {
|
|
44389
44445
|
let e = sr(), t = _r(() => ({
|
|
44390
44446
|
queryKey: ["settings"],
|
|
44391
44447
|
queryFn: Cr,
|
|
@@ -44430,7 +44486,7 @@ function c0() {
|
|
|
44430
44486
|
}
|
|
44431
44487
|
v(!0), b("");
|
|
44432
44488
|
try {
|
|
44433
|
-
await
|
|
44489
|
+
await P1(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"] });
|
|
44434
44490
|
} catch (e) {
|
|
44435
44491
|
b(e instanceof Error ? e.message : "OAuth flow failed.");
|
|
44436
44492
|
} finally {
|
|
@@ -44441,7 +44497,7 @@ function c0() {
|
|
|
44441
44497
|
async function w() {
|
|
44442
44498
|
C(!0);
|
|
44443
44499
|
try {
|
|
44444
|
-
await
|
|
44500
|
+
await F1(), 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"] });
|
|
44445
44501
|
} finally {
|
|
44446
44502
|
C(!1);
|
|
44447
44503
|
}
|
|
@@ -44457,12 +44513,12 @@ function c0() {
|
|
|
44457
44513
|
return e ? `Drafting with ${e} — ${jx[e].fast} (fast) / ${jx[e].best} (best)` : null;
|
|
44458
44514
|
});
|
|
44459
44515
|
return (() => {
|
|
44460
|
-
var e =
|
|
44516
|
+
var e = t0();
|
|
44461
44517
|
return P(e, j(Dj, {
|
|
44462
44518
|
title: "Workflow",
|
|
44463
44519
|
get children() {
|
|
44464
44520
|
return [(() => {
|
|
44465
|
-
var e =
|
|
44521
|
+
var e = I1();
|
|
44466
44522
|
return P(e, j(We, {
|
|
44467
44523
|
each: [{
|
|
44468
44524
|
id: "cloud",
|
|
@@ -44472,19 +44528,19 @@ function c0() {
|
|
|
44472
44528
|
label: "Local · clipboard"
|
|
44473
44529
|
}],
|
|
44474
44530
|
children: (e) => (() => {
|
|
44475
|
-
var t =
|
|
44531
|
+
var t = n0();
|
|
44476
44532
|
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;
|
|
44477
44533
|
})()
|
|
44478
44534
|
})), e;
|
|
44479
|
-
})(),
|
|
44535
|
+
})(), L1()];
|
|
44480
44536
|
}
|
|
44481
44537
|
}), null), P(e, j(Dj, {
|
|
44482
44538
|
title: "Capture",
|
|
44483
44539
|
get children() {
|
|
44484
44540
|
return [(() => {
|
|
44485
|
-
var e =
|
|
44541
|
+
var e = R1(), t = e.firstChild;
|
|
44486
44542
|
return t.addEventListener("change", (e) => void r({ captureShots: e.currentTarget.checked || void 0 })), D(() => t.checked = !!n().captureShots), e;
|
|
44487
|
-
})(),
|
|
44543
|
+
})(), z1()];
|
|
44488
44544
|
}
|
|
44489
44545
|
}), null), P(e, j(Dj, {
|
|
44490
44546
|
title: "Linear",
|
|
@@ -44495,13 +44551,13 @@ function c0() {
|
|
|
44495
44551
|
},
|
|
44496
44552
|
get fallback() {
|
|
44497
44553
|
return (() => {
|
|
44498
|
-
var e =
|
|
44554
|
+
var e = o0();
|
|
44499
44555
|
return P(e, j(Ej, {
|
|
44500
44556
|
label: "Personal API key",
|
|
44501
44557
|
hint: "Create one at linear.app → Settings → API — fastest path.",
|
|
44502
44558
|
get children() {
|
|
44503
44559
|
return [(() => {
|
|
44504
|
-
var e =
|
|
44560
|
+
var e = r0();
|
|
44505
44561
|
return P(e, j(bj, {
|
|
44506
44562
|
type: "password",
|
|
44507
44563
|
placeholder: "lin_api_…",
|
|
@@ -44538,12 +44594,12 @@ function c0() {
|
|
|
44538
44594
|
}), null), P(e, j(M, {
|
|
44539
44595
|
when: yr,
|
|
44540
44596
|
get children() {
|
|
44541
|
-
return [
|
|
44597
|
+
return [i0(), j(Ej, {
|
|
44542
44598
|
label: "OAuth client ID",
|
|
44543
44599
|
get children() {
|
|
44544
44600
|
return [
|
|
44545
44601
|
(() => {
|
|
44546
|
-
var e =
|
|
44602
|
+
var e = r0();
|
|
44547
44603
|
return P(e, j(bj, {
|
|
44548
44604
|
placeholder: "your-client-id",
|
|
44549
44605
|
get value() {
|
|
@@ -44571,7 +44627,7 @@ function c0() {
|
|
|
44571
44627
|
}
|
|
44572
44628
|
}),
|
|
44573
44629
|
(() => {
|
|
44574
|
-
var e =
|
|
44630
|
+
var e = a0(), t = e.firstChild.nextSibling.nextSibling;
|
|
44575
44631
|
return P(t, E), e;
|
|
44576
44632
|
})()
|
|
44577
44633
|
];
|
|
@@ -44582,13 +44638,13 @@ function c0() {
|
|
|
44582
44638
|
})();
|
|
44583
44639
|
},
|
|
44584
44640
|
get children() {
|
|
44585
|
-
var e =
|
|
44641
|
+
var e = V1(), t = e.firstChild;
|
|
44586
44642
|
return P(t, j(M, {
|
|
44587
44643
|
get when() {
|
|
44588
44644
|
return !a.isLoading;
|
|
44589
44645
|
},
|
|
44590
44646
|
get fallback() {
|
|
44591
|
-
return
|
|
44647
|
+
return s0();
|
|
44592
44648
|
},
|
|
44593
44649
|
get children() {
|
|
44594
44650
|
return j(M, {
|
|
@@ -44601,7 +44657,7 @@ function c0() {
|
|
|
44601
44657
|
return a.isError;
|
|
44602
44658
|
},
|
|
44603
44659
|
get fallback() {
|
|
44604
|
-
return
|
|
44660
|
+
return s0();
|
|
44605
44661
|
},
|
|
44606
44662
|
get children() {
|
|
44607
44663
|
return j(jj, { message: "Key rejected — reconnect" });
|
|
@@ -44609,7 +44665,7 @@ function c0() {
|
|
|
44609
44665
|
});
|
|
44610
44666
|
},
|
|
44611
44667
|
get children() {
|
|
44612
|
-
var e =
|
|
44668
|
+
var e = B1(), t = e.firstChild.nextSibling, n = t.nextSibling.nextSibling;
|
|
44613
44669
|
return P(t, () => a.data.name), P(n, () => a.data.email), e;
|
|
44614
44670
|
}
|
|
44615
44671
|
});
|
|
@@ -44650,7 +44706,7 @@ function c0() {
|
|
|
44650
44706
|
return o.isLoading;
|
|
44651
44707
|
},
|
|
44652
44708
|
get children() {
|
|
44653
|
-
return [
|
|
44709
|
+
return [H1(), j(M, {
|
|
44654
44710
|
get when() {
|
|
44655
44711
|
return o.data;
|
|
44656
44712
|
},
|
|
@@ -44660,7 +44716,7 @@ function c0() {
|
|
|
44660
44716
|
return o.data;
|
|
44661
44717
|
},
|
|
44662
44718
|
children: (e) => (() => {
|
|
44663
|
-
var t =
|
|
44719
|
+
var t = c0(), r = t.firstChild, i = r.nextSibling;
|
|
44664
44720
|
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;
|
|
44665
44721
|
})()
|
|
44666
44722
|
});
|
|
@@ -44704,7 +44760,7 @@ function c0() {
|
|
|
44704
44760
|
return s.isLoading;
|
|
44705
44761
|
},
|
|
44706
44762
|
get children() {
|
|
44707
|
-
return [
|
|
44763
|
+
return [l0(), j(M, {
|
|
44708
44764
|
get when() {
|
|
44709
44765
|
return s.data;
|
|
44710
44766
|
},
|
|
@@ -44714,7 +44770,7 @@ function c0() {
|
|
|
44714
44770
|
return s.data;
|
|
44715
44771
|
},
|
|
44716
44772
|
children: (e) => (() => {
|
|
44717
|
-
var t =
|
|
44773
|
+
var t = u0();
|
|
44718
44774
|
return P(t, () => e.displayName), D(() => t.selected = e.id === n().cursorAgentId), D(() => t.value = e.id), t;
|
|
44719
44775
|
})()
|
|
44720
44776
|
});
|
|
@@ -44724,7 +44780,7 @@ function c0() {
|
|
|
44724
44780
|
});
|
|
44725
44781
|
},
|
|
44726
44782
|
get children() {
|
|
44727
|
-
return
|
|
44783
|
+
return U1();
|
|
44728
44784
|
}
|
|
44729
44785
|
});
|
|
44730
44786
|
}
|
|
@@ -44772,7 +44828,7 @@ function c0() {
|
|
|
44772
44828
|
onBlur: (e) => {
|
|
44773
44829
|
r({ issueTemplate: e.currentTarget.value.trim() || void 0 });
|
|
44774
44830
|
}
|
|
44775
|
-
}),
|
|
44831
|
+
}), W1()];
|
|
44776
44832
|
}
|
|
44777
44833
|
}),
|
|
44778
44834
|
j(Ej, {
|
|
@@ -44829,7 +44885,7 @@ function c0() {
|
|
|
44829
44885
|
label: "Test account",
|
|
44830
44886
|
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.",
|
|
44831
44887
|
get children() {
|
|
44832
|
-
var e =
|
|
44888
|
+
var e = G1();
|
|
44833
44889
|
return P(e, j(bj, {
|
|
44834
44890
|
placeholder: "Username or email (e.g. demo@yourapp.com)",
|
|
44835
44891
|
get value() {
|
|
@@ -44861,7 +44917,7 @@ function c0() {
|
|
|
44861
44917
|
title: "Panel",
|
|
44862
44918
|
get children() {
|
|
44863
44919
|
return [(() => {
|
|
44864
|
-
var e =
|
|
44920
|
+
var e = K1(), t = e.firstChild.nextSibling;
|
|
44865
44921
|
return P(t, j(We, {
|
|
44866
44922
|
each: [{
|
|
44867
44923
|
id: "overlay",
|
|
@@ -44871,7 +44927,7 @@ function c0() {
|
|
|
44871
44927
|
label: "Beside page"
|
|
44872
44928
|
}],
|
|
44873
44929
|
children: (e) => (() => {
|
|
44874
|
-
var t =
|
|
44930
|
+
var t = n0();
|
|
44875
44931
|
return t.$$click = () => void r({
|
|
44876
44932
|
panelMode: e.id,
|
|
44877
44933
|
panelPos: void 0
|
|
@@ -44879,11 +44935,11 @@ function c0() {
|
|
|
44879
44935
|
})()
|
|
44880
44936
|
})), e;
|
|
44881
44937
|
})(), (() => {
|
|
44882
|
-
var e =
|
|
44938
|
+
var e = q1(), t = e.firstChild.nextSibling;
|
|
44883
44939
|
return P(t, j(We, {
|
|
44884
44940
|
each: ["left", "right"],
|
|
44885
44941
|
children: (e) => (() => {
|
|
44886
|
-
var t =
|
|
44942
|
+
var t = n0();
|
|
44887
44943
|
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;
|
|
44888
44944
|
})()
|
|
44889
44945
|
})), e;
|
|
@@ -44995,12 +45051,12 @@ function c0() {
|
|
|
44995
45051
|
});
|
|
44996
45052
|
},
|
|
44997
45053
|
get children() {
|
|
44998
|
-
return [
|
|
45054
|
+
return [J1(), j(We, {
|
|
44999
45055
|
get each() {
|
|
45000
45056
|
return O.data ?? [];
|
|
45001
45057
|
},
|
|
45002
45058
|
children: (e) => (() => {
|
|
45003
|
-
var t =
|
|
45059
|
+
var t = d0();
|
|
45004
45060
|
return t.firstChild, P(t, () => e.name, null), D(() => t.selected = e.id === n().slackChannelId), D(() => t.value = e.id), t;
|
|
45005
45061
|
})()
|
|
45006
45062
|
})];
|
|
@@ -45051,10 +45107,10 @@ function c0() {
|
|
|
45051
45107
|
}
|
|
45052
45108
|
}),
|
|
45053
45109
|
(() => {
|
|
45054
|
-
var e =
|
|
45110
|
+
var e = Y1(), t = e.firstChild;
|
|
45055
45111
|
return t.addEventListener("change", (e) => void r({ notifyOnCreate: e.currentTarget.checked ? void 0 : !1 })), D(() => t.checked = n().notifyOnCreate !== !1), e;
|
|
45056
45112
|
})(),
|
|
45057
|
-
|
|
45113
|
+
X1()
|
|
45058
45114
|
];
|
|
45059
45115
|
}
|
|
45060
45116
|
}), null), P(e, j(Dj, {
|
|
@@ -45092,7 +45148,7 @@ function c0() {
|
|
|
45092
45148
|
}
|
|
45093
45149
|
}),
|
|
45094
45150
|
(() => {
|
|
45095
|
-
var e =
|
|
45151
|
+
var e = Z1(), t = e.firstChild.nextSibling.firstChild, i = t.nextSibling, a = i.nextSibling;
|
|
45096
45152
|
return t.$$click = () => void r({ preferredProvider: void 0 }), i.$$click = () => void r({ preferredProvider: "openai" }), a.$$click = () => void r({ preferredProvider: "anthropic" }), D((e) => {
|
|
45097
45153
|
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;
|
|
45098
45154
|
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;
|
|
@@ -45105,16 +45161,16 @@ function c0() {
|
|
|
45105
45161
|
}), e;
|
|
45106
45162
|
})(),
|
|
45107
45163
|
(() => {
|
|
45108
|
-
var e =
|
|
45164
|
+
var e = $1();
|
|
45109
45165
|
return P(e, j(M, {
|
|
45110
45166
|
get when() {
|
|
45111
45167
|
return te();
|
|
45112
45168
|
},
|
|
45113
45169
|
get fallback() {
|
|
45114
|
-
return
|
|
45170
|
+
return f0();
|
|
45115
45171
|
},
|
|
45116
45172
|
get children() {
|
|
45117
|
-
var e =
|
|
45173
|
+
var e = Q1();
|
|
45118
45174
|
return P(e, te), e;
|
|
45119
45175
|
}
|
|
45120
45176
|
})), e;
|
|
@@ -45124,7 +45180,7 @@ function c0() {
|
|
|
45124
45180
|
}), null), P(e, j(Dj, {
|
|
45125
45181
|
title: "How it works",
|
|
45126
45182
|
get children() {
|
|
45127
|
-
return
|
|
45183
|
+
return e0();
|
|
45128
45184
|
}
|
|
45129
45185
|
}), null), e;
|
|
45130
45186
|
})();
|
|
@@ -45132,38 +45188,38 @@ function c0() {
|
|
|
45132
45188
|
rt(["click"]);
|
|
45133
45189
|
//#endregion
|
|
45134
45190
|
//#region src/lib/idbCache.ts
|
|
45135
|
-
var
|
|
45191
|
+
var m0 = "linear-grab", h0 = "queries", g0 = [
|
|
45136
45192
|
"my-issues",
|
|
45137
45193
|
"issue",
|
|
45138
45194
|
"sessions",
|
|
45139
45195
|
"teams",
|
|
45140
45196
|
"agents"
|
|
45141
45197
|
];
|
|
45142
|
-
function
|
|
45198
|
+
function _0() {
|
|
45143
45199
|
return new Promise((e) => {
|
|
45144
45200
|
try {
|
|
45145
|
-
let t = indexedDB.open(
|
|
45146
|
-
t.onupgradeneeded = () => t.result.createObjectStore(
|
|
45201
|
+
let t = indexedDB.open(m0, 1);
|
|
45202
|
+
t.onupgradeneeded = () => t.result.createObjectStore(h0), t.onsuccess = () => e(t.result), t.onerror = () => e(null);
|
|
45147
45203
|
} catch {
|
|
45148
45204
|
e(null);
|
|
45149
45205
|
}
|
|
45150
45206
|
});
|
|
45151
45207
|
}
|
|
45152
|
-
function
|
|
45153
|
-
return typeof e[0] == "string" &&
|
|
45208
|
+
function v0(e) {
|
|
45209
|
+
return typeof e[0] == "string" && g0.includes(e[0]);
|
|
45154
45210
|
}
|
|
45155
|
-
async function
|
|
45156
|
-
let t = await
|
|
45211
|
+
async function y0(e) {
|
|
45212
|
+
let t = await _0();
|
|
45157
45213
|
if (!t) return () => {};
|
|
45158
45214
|
await new Promise((n) => {
|
|
45159
45215
|
try {
|
|
45160
|
-
let r = t.transaction(
|
|
45216
|
+
let r = t.transaction(h0, "readonly").objectStore(h0).openCursor();
|
|
45161
45217
|
r.onsuccess = () => {
|
|
45162
45218
|
let t = r.result;
|
|
45163
45219
|
if (!t) return n();
|
|
45164
45220
|
try {
|
|
45165
45221
|
let { queryKey: n, data: r } = t.value;
|
|
45166
|
-
|
|
45222
|
+
v0(n) && e.getQueryData(n) === void 0 && e.setQueryData(n, r, { updatedAt: 0 });
|
|
45167
45223
|
} catch {}
|
|
45168
45224
|
t.continue();
|
|
45169
45225
|
}, r.onerror = () => n();
|
|
@@ -45174,14 +45230,14 @@ async function m0(e) {
|
|
|
45174
45230
|
let n = /* @__PURE__ */ new Map(), r = e.getQueryCache().subscribe((r) => {
|
|
45175
45231
|
if (r.type !== "updated" || r.action.type !== "success") return;
|
|
45176
45232
|
let { queryKey: i, queryHash: a } = r.query;
|
|
45177
|
-
if (!
|
|
45233
|
+
if (!v0(i)) return;
|
|
45178
45234
|
let o = n.get(a);
|
|
45179
45235
|
o && clearTimeout(o), n.set(a, setTimeout(() => {
|
|
45180
45236
|
n.delete(a);
|
|
45181
45237
|
try {
|
|
45182
45238
|
let n = e.getQueryData(i);
|
|
45183
45239
|
if (n === void 0) return;
|
|
45184
|
-
t.transaction(
|
|
45240
|
+
t.transaction(h0, "readwrite").objectStore(h0).put({
|
|
45185
45241
|
queryKey: i,
|
|
45186
45242
|
data: n
|
|
45187
45243
|
}, a);
|
|
@@ -45197,7 +45253,7 @@ async function m0(e) {
|
|
|
45197
45253
|
//#endregion
|
|
45198
45254
|
//#region src/panel/App.tsx
|
|
45199
45255
|
Rr();
|
|
45200
|
-
var
|
|
45256
|
+
var b0 = /*#__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\">"), x0 = /*#__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\">"), S0 = /*#__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\">–"), C0 = /*#__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>"), w0 = /*#__PURE__*/ N("<button>"), T0 = [
|
|
45201
45257
|
{
|
|
45202
45258
|
id: "draft",
|
|
45203
45259
|
label: "Draft"
|
|
@@ -45222,14 +45278,14 @@ var h0 = /*#__PURE__*/ N("<svg viewBox=\"0 0 100 100\"fill=currentColor aria-hid
|
|
|
45222
45278
|
id: "settings",
|
|
45223
45279
|
label: "Settings"
|
|
45224
45280
|
}
|
|
45225
|
-
],
|
|
45281
|
+
], E0 = new gr({ defaultOptions: { queries: {
|
|
45226
45282
|
retry: 1,
|
|
45227
45283
|
refetchOnWindowFocus: !1,
|
|
45228
45284
|
staleTime: 5e3
|
|
45229
45285
|
} } });
|
|
45230
|
-
function
|
|
45286
|
+
function D0(e) {
|
|
45231
45287
|
return (() => {
|
|
45232
|
-
var t =
|
|
45288
|
+
var t = b0();
|
|
45233
45289
|
return D((n) => {
|
|
45234
45290
|
var r = e.size ?? 14, i = e.size ?? 14;
|
|
45235
45291
|
return r !== n.e && it(t, "width", n.e = r), i !== n.t && it(t, "height", n.t = i), n;
|
|
@@ -45239,32 +45295,32 @@ function S0(e) {
|
|
|
45239
45295
|
}), t;
|
|
45240
45296
|
})();
|
|
45241
45297
|
}
|
|
45242
|
-
function
|
|
45298
|
+
function O0(e) {
|
|
45243
45299
|
let [t, n] = T("draft"), r = () => {
|
|
45244
|
-
|
|
45300
|
+
E0.invalidateQueries({ queryKey: ["grab"] }), ZA() === "capture" && n("capture"), e.onGrab?.();
|
|
45245
45301
|
};
|
|
45246
45302
|
return O(() => {
|
|
45247
45303
|
let e = GA();
|
|
45248
45304
|
e && n(e);
|
|
45249
45305
|
}), ie(() => {
|
|
45250
|
-
let e =
|
|
45251
|
-
RO().then(
|
|
45306
|
+
let e = y0(E0), t = IZ(r), n = () => {
|
|
45307
|
+
RO().then(KQ), FO();
|
|
45252
45308
|
};
|
|
45253
45309
|
n();
|
|
45254
45310
|
let i = Ar((e) => {
|
|
45255
|
-
e === "settings" && (
|
|
45311
|
+
e === "settings" && (E0.invalidateQueries({ queryKey: ["settings"] }), n()), e === "grab" && r();
|
|
45256
45312
|
});
|
|
45257
45313
|
ae(() => {
|
|
45258
45314
|
t(), i(), e.then((e) => e());
|
|
45259
45315
|
});
|
|
45260
45316
|
}), j(cr, {
|
|
45261
|
-
client:
|
|
45317
|
+
client: E0,
|
|
45262
45318
|
get children() {
|
|
45263
|
-
var r =
|
|
45264
|
-
return i.$$pointerdown = (t) => e.onHeaderPointerDown?.(t), P(a, j(
|
|
45265
|
-
each:
|
|
45319
|
+
var r = C0(), 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;
|
|
45320
|
+
return i.$$pointerdown = (t) => e.onHeaderPointerDown?.(t), P(a, j(D0, { size: 14 })), P(o, j(We, {
|
|
45321
|
+
each: T0,
|
|
45266
45322
|
children: (e) => (() => {
|
|
45267
|
-
var r =
|
|
45323
|
+
var r = w0();
|
|
45268
45324
|
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;
|
|
45269
45325
|
})()
|
|
45270
45326
|
})), P(i, j(M, {
|
|
@@ -45272,7 +45328,7 @@ function C0(e) {
|
|
|
45272
45328
|
return e.onTogglePin;
|
|
45273
45329
|
},
|
|
45274
45330
|
get children() {
|
|
45275
|
-
var t =
|
|
45331
|
+
var t = x0();
|
|
45276
45332
|
return t.$$click = () => e.onTogglePin?.(), D((n) => {
|
|
45277
45333
|
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"}`;
|
|
45278
45334
|
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;
|
|
@@ -45287,10 +45343,10 @@ function C0(e) {
|
|
|
45287
45343
|
return e.onClose;
|
|
45288
45344
|
},
|
|
45289
45345
|
get children() {
|
|
45290
|
-
var t =
|
|
45346
|
+
var t = S0();
|
|
45291
45347
|
return t.$$click = () => e.onClose?.(), t;
|
|
45292
45348
|
}
|
|
45293
|
-
}), null), P(s, j(dM, { onCreated: () => n("activity") })), P(c, j(aQ, {})), P(l, j(
|
|
45349
|
+
}), null), P(s, j(dM, { onCreated: () => n("activity") })), P(c, j(aQ, {})), P(l, j(M$, {})), P(u, j(y1, {})), P(d, j(M1, { onOpenIssue: () => n("activity") })), P(f, j(p0, {})), D((n) => {
|
|
45294
45350
|
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", p = t() !== "activity", m = t() !== "local", h = t() !== "prs", g = t() !== "settings";
|
|
45295
45351
|
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), p !== n.o && l.classList.toggle("hidden", n.o = p), m !== n.i && u.classList.toggle("hidden", n.i = m), h !== n.n && d.classList.toggle("hidden", n.n = h), g !== n.s && f.classList.toggle("hidden", n.s = g), n;
|
|
45296
45352
|
}, {
|
|
@@ -45308,12 +45364,12 @@ function C0(e) {
|
|
|
45308
45364
|
rt(["pointerdown", "click"]);
|
|
45309
45365
|
//#endregion
|
|
45310
45366
|
//#region src/styles/app.css?inline
|
|
45311
|
-
var w0 = "/*! 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-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-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-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-\\[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-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-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}.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}}";
|
|
45367
|
+
var k0 = "/*! 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-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-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-\\[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-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-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}.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}}";
|
|
45312
45368
|
//#endregion
|
|
45313
45369
|
//#region src/page/index.tsx
|
|
45314
45370
|
Rr();
|
|
45315
|
-
var
|
|
45316
|
-
function
|
|
45371
|
+
var A0 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-danger size-2 shrink-0 animate-pulse rounded-full\">"), j0 = /*#__PURE__*/ N("<span class=\"text-text min-w-[5ch] text-[11px] font-medium tabular-nums\">"), M0 = /*#__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"), N0 = /*#__PURE__*/ N("<p class=\"text-warn px-1.5 pt-1 pb-1.5 text-[10.5px] font-semibold tracking-wide uppercase\">Needs review"), P0 = /*#__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"), F0 = /*#__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\">"), I0 = /*#__PURE__*/ N("<div><div title=\"Drag to resize\">"), L0 = /*#__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\">"), R0 = /*#__PURE__*/ N("<span class=\"bg-border h-4 w-px\"aria-hidden>"), z0 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-warn size-2 rounded-full\">"), B0 = /*#__PURE__*/ N("<span class=\"text-warn min-w-[3.5ch] text-left text-[11px] font-medium tabular-nums\"> rev"), V0 = /*#__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>"), H0 = /*#__PURE__*/ N("<p class=\"text-text-faint px-1.5 pb-1.5 text-[11.5px]\">No agents running right now."), U0 = /*#__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\"> · <!> · ");
|
|
45372
|
+
function W0(e = {}) {
|
|
45317
45373
|
if (typeof window > "u" || window.__LINEAR_GRAB_PAGE__) return;
|
|
45318
45374
|
window.__LINEAR_GRAB_PAGE__ = !0;
|
|
45319
45375
|
let t = () => {
|
|
@@ -45321,17 +45377,17 @@ function z0(e = {}) {
|
|
|
45321
45377
|
let t = document.createElement("div");
|
|
45322
45378
|
t.id = "linear-grab-root", document.body.appendChild(t);
|
|
45323
45379
|
let n = t.attachShadow({ mode: "open" }), r = document.createElement("style");
|
|
45324
|
-
r.textContent =
|
|
45380
|
+
r.textContent = k0, n.appendChild(r);
|
|
45325
45381
|
let i = document.createElement("div");
|
|
45326
45382
|
n.appendChild(i);
|
|
45327
|
-
let a = () => i.setAttribute("data-theme",
|
|
45328
|
-
a(), matchMedia("(prefers-color-scheme: light)").addEventListener("change", a), nt(() => j(
|
|
45383
|
+
let a = () => i.setAttribute("data-theme", G0());
|
|
45384
|
+
a(), matchMedia("(prefers-color-scheme: light)").addEventListener("change", a), nt(() => j(Z0, { get defaultOpen() {
|
|
45329
45385
|
return e.defaultOpen ?? !1;
|
|
45330
45386
|
} }), i);
|
|
45331
45387
|
};
|
|
45332
45388
|
document.body ? t() : document.addEventListener("DOMContentLoaded", t, { once: !0 });
|
|
45333
45389
|
}
|
|
45334
|
-
function
|
|
45390
|
+
function G0() {
|
|
45335
45391
|
try {
|
|
45336
45392
|
let e = [document.body, document.documentElement];
|
|
45337
45393
|
for (let t of e) {
|
|
@@ -45341,11 +45397,11 @@ function B0() {
|
|
|
45341
45397
|
} catch {}
|
|
45342
45398
|
return matchMedia("(prefers-color-scheme: light)").matches ? "light" : "dark";
|
|
45343
45399
|
}
|
|
45344
|
-
var
|
|
45345
|
-
function
|
|
45400
|
+
var K0 = 130, q0 = 36, J0 = 380, Y0 = 280, X0 = 720;
|
|
45401
|
+
function Z0(e) {
|
|
45346
45402
|
let [t, n] = T(e.defaultOpen), [r, i] = T("right"), [a, o] = T({
|
|
45347
|
-
x: Math.max(8, window.innerWidth -
|
|
45348
|
-
y: Math.max(8, window.innerHeight -
|
|
45403
|
+
x: Math.max(8, window.innerWidth - K0 - 24),
|
|
45404
|
+
y: Math.max(8, window.innerHeight - q0 - 20)
|
|
45349
45405
|
}), [s, c] = T({
|
|
45350
45406
|
running: [],
|
|
45351
45407
|
review: []
|
|
@@ -45360,12 +45416,12 @@ function K0(e) {
|
|
|
45360
45416
|
let t = Math.floor(e / 1e3);
|
|
45361
45417
|
return `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
|
|
45362
45418
|
}, [v, y] = T(null), b = (e) => ({
|
|
45363
|
-
x: Math.min(Math.max(8, e.x), window.innerWidth -
|
|
45364
|
-
y: Math.min(Math.max(8, e.y), window.innerHeight -
|
|
45419
|
+
x: Math.min(Math.max(8, e.x), window.innerWidth - K0 - 8),
|
|
45420
|
+
y: Math.min(Math.max(8, e.y), window.innerHeight - q0 - 8)
|
|
45365
45421
|
}), x = (e) => ({
|
|
45366
45422
|
x: Math.min(Math.max(8 - (te() - 80), e.x), window.innerWidth - 80),
|
|
45367
45423
|
y: Math.min(Math.max(0, e.y), window.innerHeight - 80)
|
|
45368
|
-
}), [S, C] = T(!1), [w, E] = T("cloud"), [k, ee] = T(!1), [te, A] = T(
|
|
45424
|
+
}), [S, C] = T(!1), [w, E] = T("cloud"), [k, ee] = T(!1), [te, A] = T(J0), ne = (e) => Math.min(X0, Math.max(Y0, Math.min(e, window.innerWidth - 60)));
|
|
45369
45425
|
O(() => {
|
|
45370
45426
|
let e = document.documentElement, n = t() && S();
|
|
45371
45427
|
e.style.transition = "margin 0.2s ease", e.style.marginRight = n && r() === "right" ? `${te()}px` : "", e.style.marginLeft = n && r() === "left" ? `${te()}px` : "";
|
|
@@ -45473,7 +45529,7 @@ function K0(e) {
|
|
|
45473
45529
|
return !t();
|
|
45474
45530
|
},
|
|
45475
45531
|
get children() {
|
|
45476
|
-
var e =
|
|
45532
|
+
var e = F0(), t = e.firstChild;
|
|
45477
45533
|
return t.$$pointerdown = se, P(t, j(M, {
|
|
45478
45534
|
get when() {
|
|
45479
45535
|
return p() === "recording";
|
|
@@ -45481,14 +45537,14 @@ function K0(e) {
|
|
|
45481
45537
|
get fallback() {
|
|
45482
45538
|
return [
|
|
45483
45539
|
(() => {
|
|
45484
|
-
var e =
|
|
45540
|
+
var e = L0();
|
|
45485
45541
|
return e.$$click = () => {
|
|
45486
45542
|
oe || (f(!1), n(!0));
|
|
45487
|
-
}, P(e, j(
|
|
45543
|
+
}, P(e, j(D0, { size: 13 })), e;
|
|
45488
45544
|
})(),
|
|
45489
|
-
|
|
45545
|
+
R0(),
|
|
45490
45546
|
(() => {
|
|
45491
|
-
var e =
|
|
45547
|
+
var e = V0(), t = e.firstChild, n = t.nextSibling;
|
|
45492
45548
|
return e.$$click = () => {
|
|
45493
45549
|
oe || f((e) => !e);
|
|
45494
45550
|
}, P(n, (() => {
|
|
@@ -45499,8 +45555,8 @@ function K0(e) {
|
|
|
45499
45555
|
return $e(() => !k())() && u().length > 0;
|
|
45500
45556
|
},
|
|
45501
45557
|
get children() {
|
|
45502
|
-
return [
|
|
45503
|
-
var e =
|
|
45558
|
+
return [z0(), (() => {
|
|
45559
|
+
var e = B0(), t = e.firstChild;
|
|
45504
45560
|
return P(e, () => u().length, t), e;
|
|
45505
45561
|
})()];
|
|
45506
45562
|
}
|
|
@@ -45516,13 +45572,13 @@ function K0(e) {
|
|
|
45516
45572
|
},
|
|
45517
45573
|
get children() {
|
|
45518
45574
|
return [
|
|
45519
|
-
|
|
45575
|
+
A0(),
|
|
45520
45576
|
(() => {
|
|
45521
|
-
var e =
|
|
45577
|
+
var e = j0();
|
|
45522
45578
|
return P(e, () => _(h())), e;
|
|
45523
45579
|
})(),
|
|
45524
45580
|
(() => {
|
|
45525
|
-
var e =
|
|
45581
|
+
var e = M0();
|
|
45526
45582
|
return e.$$click = () => {
|
|
45527
45583
|
oe || QD();
|
|
45528
45584
|
}, e;
|
|
@@ -45534,17 +45590,17 @@ function K0(e) {
|
|
|
45534
45590
|
return d();
|
|
45535
45591
|
},
|
|
45536
45592
|
get children() {
|
|
45537
|
-
var e =
|
|
45593
|
+
var e = P0(), t = e.firstChild;
|
|
45538
45594
|
return P(e, j(M, {
|
|
45539
45595
|
get when() {
|
|
45540
45596
|
return u().length > 0;
|
|
45541
45597
|
},
|
|
45542
45598
|
get children() {
|
|
45543
|
-
return [
|
|
45599
|
+
return [N0(), j(We, {
|
|
45544
45600
|
get each() {
|
|
45545
45601
|
return u();
|
|
45546
45602
|
},
|
|
45547
|
-
children: (e) => j(
|
|
45603
|
+
children: (e) => j(Q0, {
|
|
45548
45604
|
agent: e,
|
|
45549
45605
|
review: !0,
|
|
45550
45606
|
onOpen: le
|
|
@@ -45556,14 +45612,14 @@ function K0(e) {
|
|
|
45556
45612
|
return l().length > 0;
|
|
45557
45613
|
},
|
|
45558
45614
|
get fallback() {
|
|
45559
|
-
return
|
|
45615
|
+
return H0();
|
|
45560
45616
|
},
|
|
45561
45617
|
get children() {
|
|
45562
45618
|
return j(We, {
|
|
45563
45619
|
get each() {
|
|
45564
45620
|
return l();
|
|
45565
45621
|
},
|
|
45566
|
-
children: (e) => j(
|
|
45622
|
+
children: (e) => j(Q0, {
|
|
45567
45623
|
agent: e,
|
|
45568
45624
|
onOpen: le
|
|
45569
45625
|
})
|
|
@@ -45584,8 +45640,8 @@ function K0(e) {
|
|
|
45584
45640
|
return t();
|
|
45585
45641
|
},
|
|
45586
45642
|
get children() {
|
|
45587
|
-
var e =
|
|
45588
|
-
return t.$$pointerdown = ue, P(e, j(
|
|
45643
|
+
var e = I0(), t = e.firstChild;
|
|
45644
|
+
return t.$$pointerdown = ue, P(e, j(O0, {
|
|
45589
45645
|
onGrab: () => n(!0),
|
|
45590
45646
|
onClose: () => n(!1),
|
|
45591
45647
|
get onHeaderPointerDown() {
|
|
@@ -45613,19 +45669,19 @@ function K0(e) {
|
|
|
45613
45669
|
}
|
|
45614
45670
|
})];
|
|
45615
45671
|
}
|
|
45616
|
-
function
|
|
45672
|
+
function Q0(e) {
|
|
45617
45673
|
return (() => {
|
|
45618
|
-
var t =
|
|
45674
|
+
var t = U0(), n = t.firstChild, r = n.firstChild, i = r.nextSibling, a = i.nextSibling, o = n.nextSibling, s = o.firstChild, c = s.nextSibling;
|
|
45619
45675
|
return c.nextSibling, t.$$click = () => e.onOpen(e.agent.id), P(i, () => e.agent.identifier), P(a, () => e.agent.title), P(o, (() => {
|
|
45620
45676
|
var t = $e(() => !!e.review);
|
|
45621
45677
|
return () => t() ? "PR ready · needs review" : e.agent.stateName;
|
|
45622
|
-
})(), s), P(o, () => e.agent.delegateName, c), P(o, () =>
|
|
45678
|
+
})(), s), P(o, () => e.agent.delegateName, c), P(o, () => $0(e.agent.updatedAt), null), D((t) => dt(r, "background", e.review ? "var(--color-warn)" : e.agent.stateColor)), t;
|
|
45623
45679
|
})();
|
|
45624
45680
|
}
|
|
45625
|
-
function
|
|
45681
|
+
function $0(e) {
|
|
45626
45682
|
let t = Math.max(0, Math.floor((Date.now() - Date.parse(e)) / 1e3));
|
|
45627
45683
|
return t < 60 ? "now" : t < 3600 ? `${Math.floor(t / 60)}m` : t < 86400 ? `${Math.floor(t / 3600)}h` : `${Math.floor(t / 86400)}d`;
|
|
45628
45684
|
}
|
|
45629
45685
|
rt(["pointerdown", "click"]);
|
|
45630
45686
|
//#endregion
|
|
45631
|
-
export {
|
|
45687
|
+
export { W0 as init };
|