linear-grab 0.16.3 → 0.16.4
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 +4 -4
- package/dist/linear-grab.js +182 -153
- package/package.json +1 -1
package/dist/linear-grab.js
CHANGED
|
@@ -43659,7 +43659,7 @@ function B$(e) {
|
|
|
43659
43659
|
//#endregion
|
|
43660
43660
|
//#region src/panel/views/LocalView.tsx
|
|
43661
43661
|
rt(["click"]), Rr();
|
|
43662
|
-
var V$ = /*#__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\">"), H$ = /*#__PURE__*/ N("<div><p></p><div class=\"lg-md text-text text-[11.5px] leading-relaxed break-words\">"), U$ = /*#__PURE__*/ N("<p>"), W$ = /*#__PURE__*/ N("<span class=\"text-text-faint max-w-[55%] truncate text-[10.5px] tabular-nums\"> running · "), G$ = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1.5\">"), K$ = /*#__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\">"), q$ = /*#__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"), J$ = /*#__PURE__*/ N("<span class=\"text-text-faint text-[10.5px] tabular-nums\">ctx <!> · out "), Y$ = /*#__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]\">"), X$ = /*#__PURE__*/ N("<option selected>"), Z$ = /*#__PURE__*/ N("<span class=\"text-success text-[12px] leading-none\">✓"),
|
|
43662
|
+
var V$ = /*#__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\">"), H$ = /*#__PURE__*/ N("<div><p></p><div class=\"lg-md text-text text-[11.5px] leading-relaxed break-words\">"), U$ = /*#__PURE__*/ N("<p>"), W$ = /*#__PURE__*/ N("<span class=\"text-text-faint max-w-[55%] truncate text-[10.5px] tabular-nums\"> running · "), G$ = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1.5\">"), K$ = /*#__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\">"), q$ = /*#__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"), J$ = /*#__PURE__*/ N("<span class=\"text-text-faint text-[10.5px] tabular-nums\">ctx <!> · out "), Y$ = /*#__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]\">"), X$ = /*#__PURE__*/ N("<option selected>"), Z$ = /*#__PURE__*/ N("<svg width=13 height=13 viewBox=\"0 0 16 16\"fill=currentColor aria-hidden><path d=\"M4.5 2.8a.8.8 0 0 1 1.22-.68l8 5.2a.8.8 0 0 1 0 1.36l-8 5.2a.8.8 0 0 1-1.22-.68V2.8Z\">"), Q$ = /*#__PURE__*/ N("<span class=\"text-success text-[12px] leading-none\">✓"), $$ = /*#__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\">"), e1 = /*#__PURE__*/ N("<svg width=11 height=11 viewBox=\"0 0 16 16\"fill=currentColor aria-hidden><rect x=3 y=3 width=10 height=10 rx=1.5>"), t1 = /*#__PURE__*/ N("<span class=\"font-mono text-text-faint min-w-0 truncate text-[10.5px]\">"), n1 = /*#__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>−"), r1 = /*#__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\">"), i1 = /*#__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\">"), a1 = /*#__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\">"), o1 = /*#__PURE__*/ N("<svg width=13 height=13 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round aria-hidden><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\">"), s1 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[4ch] text-center\">Send"), c1 = /*#__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]\">"), l1 = /*#__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\">"), u1 = /*#__PURE__*/ N("<span aria-hidden class=\"size-2 shrink-0 rounded-full\">"), d1 = /*#__PURE__*/ N("<div class=\"flex min-w-0 items-center gap-1.5\">"), f1 = /*#__PURE__*/ N("<option>"), p1 = /*#__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>"), m1 = /*#__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\">"), h1 = /*#__PURE__*/ N("<span class=text-success>+"), g1 = /*#__PURE__*/ N("<span class=text-danger>−"), _1 = /*#__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\">"), v1 = /*#__PURE__*/ N("<span class=text-text-faint>bin"), y1 = /*#__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"), b1 = /*#__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\">"), x1 = /*#__PURE__*/ N("<p class=\"text-text-faint text-[11px]\">Waiting for output…"), S1 = [
|
|
43663
43663
|
{
|
|
43664
43664
|
id: "",
|
|
43665
43665
|
label: "Default model"
|
|
@@ -43681,13 +43681,13 @@ var V$ = /*#__PURE__*/ N("<div class=\"border-accent/40 bg-accent-soft self-end
|
|
|
43681
43681
|
label: "Haiku"
|
|
43682
43682
|
}
|
|
43683
43683
|
];
|
|
43684
|
-
function
|
|
43684
|
+
function C1(e, t) {
|
|
43685
43685
|
let n = e.split(".").map(Number), r = t.split(".").map(Number);
|
|
43686
43686
|
for (let e = 0; e < 3; e++) if ((n[e] ?? 0) !== (r[e] ?? 0)) return (n[e] ?? 0) < (r[e] ?? 0);
|
|
43687
43687
|
return !1;
|
|
43688
43688
|
}
|
|
43689
|
-
var
|
|
43690
|
-
function
|
|
43689
|
+
var w1 = (e) => e == null ? "–" : e >= 1e3 ? `${(e / 1e3).toFixed(e >= 1e5 ? 0 : 1)}k` : String(e);
|
|
43690
|
+
function T1() {
|
|
43691
43691
|
let e = sr(), t = _r(() => ({
|
|
43692
43692
|
queryKey: ["bridge-health"],
|
|
43693
43693
|
queryFn: EO,
|
|
@@ -43801,7 +43801,7 @@ function w1() {
|
|
|
43801
43801
|
get children() {
|
|
43802
43802
|
return [j(M, {
|
|
43803
43803
|
get when() {
|
|
43804
|
-
return
|
|
43804
|
+
return C1(t.data.version, "0.15.1");
|
|
43805
43805
|
},
|
|
43806
43806
|
get children() {
|
|
43807
43807
|
return j(Oj, {
|
|
@@ -43855,14 +43855,14 @@ function w1() {
|
|
|
43855
43855
|
return n.data;
|
|
43856
43856
|
},
|
|
43857
43857
|
children: (e) => (() => {
|
|
43858
|
-
var t =
|
|
43858
|
+
var t = l1(), n = t.firstChild, a = n.firstChild, l = a.nextSibling, m = n.nextSibling, h = m.nextSibling, g = h.nextSibling;
|
|
43859
43859
|
return P(n, j(M, {
|
|
43860
43860
|
get when() {
|
|
43861
43861
|
return e().status === "running";
|
|
43862
43862
|
},
|
|
43863
43863
|
get fallback() {
|
|
43864
43864
|
return (() => {
|
|
43865
|
-
var t =
|
|
43865
|
+
var t = u1();
|
|
43866
43866
|
return D((n) => dt(t, "background", ne(e().status))), t;
|
|
43867
43867
|
})();
|
|
43868
43868
|
},
|
|
@@ -43916,7 +43916,7 @@ function w1() {
|
|
|
43916
43916
|
},
|
|
43917
43917
|
get children() {
|
|
43918
43918
|
var t = J$(), n = t.firstChild.nextSibling;
|
|
43919
|
-
return n.nextSibling, P(t, () =>
|
|
43919
|
+
return n.nextSibling, P(t, () => w1(e().usage.contextTokens), n), P(t, () => w1(e().usage.outputTokens), null), P(t, (() => {
|
|
43920
43920
|
var t = $e(() => !!e().usage.costUsd);
|
|
43921
43921
|
return () => t() ? ` · $${e().usage.costUsd.toFixed(2)}` : "";
|
|
43922
43922
|
})(), null), t;
|
|
@@ -43926,7 +43926,7 @@ function w1() {
|
|
|
43926
43926
|
return o(e());
|
|
43927
43927
|
},
|
|
43928
43928
|
children: (e) => (() => {
|
|
43929
|
-
var t =
|
|
43929
|
+
var t = d1();
|
|
43930
43930
|
return P(t, j(Oj, { get children() {
|
|
43931
43931
|
return e().state.name;
|
|
43932
43932
|
} }), null), P(t, j(Tj, {
|
|
@@ -43977,14 +43977,14 @@ function w1() {
|
|
|
43977
43977
|
title: "Model — applies from the next message",
|
|
43978
43978
|
get children() {
|
|
43979
43979
|
return [j(We, {
|
|
43980
|
-
each:
|
|
43980
|
+
each: S1,
|
|
43981
43981
|
children: (t) => (() => {
|
|
43982
|
-
var n =
|
|
43982
|
+
var n = f1();
|
|
43983
43983
|
return P(n, () => t.label), D(() => n.selected = (e().pendingModel ?? e().model ?? "") === t.id), D(() => n.value = t.id), n;
|
|
43984
43984
|
})()
|
|
43985
43985
|
}), j(M, {
|
|
43986
43986
|
get when() {
|
|
43987
|
-
return !
|
|
43987
|
+
return !S1.some((t) => t.id === (e().pendingModel ?? e().model ?? ""));
|
|
43988
43988
|
},
|
|
43989
43989
|
get children() {
|
|
43990
43990
|
var t = X$();
|
|
@@ -43992,6 +43992,30 @@ function w1() {
|
|
|
43992
43992
|
}
|
|
43993
43993
|
})];
|
|
43994
43994
|
}
|
|
43995
|
+
}), null), P(g, j(M, {
|
|
43996
|
+
get when() {
|
|
43997
|
+
return $e(() => e().status !== "running")() && e().sessionId;
|
|
43998
|
+
},
|
|
43999
|
+
get children() {
|
|
44000
|
+
return j(vj, {
|
|
44001
|
+
variant: "ghost",
|
|
44002
|
+
class: "size-7 px-0",
|
|
44003
|
+
get loading() {
|
|
44004
|
+
return b.isPending;
|
|
44005
|
+
},
|
|
44006
|
+
get title() {
|
|
44007
|
+
return `Resume — continues this session${e().pendingModel ? ` on ${e().pendingModel}` : ""}`;
|
|
44008
|
+
},
|
|
44009
|
+
"aria-label": "Resume session",
|
|
44010
|
+
onClick: () => b.mutate({
|
|
44011
|
+
id: e().id,
|
|
44012
|
+
text: "Continue where you left off. If the work is already complete, finish any remaining closeout steps (PR, Linear update, announcement)."
|
|
44013
|
+
}),
|
|
44014
|
+
get children() {
|
|
44015
|
+
return Z$();
|
|
44016
|
+
}
|
|
44017
|
+
});
|
|
44018
|
+
}
|
|
43995
44019
|
}), null), P(g, j(M, {
|
|
43996
44020
|
get when() {
|
|
43997
44021
|
return o(e());
|
|
@@ -44002,7 +44026,7 @@ function w1() {
|
|
|
44002
44026
|
title: "Open the issue's Activity thread",
|
|
44003
44027
|
onClick: () => YA("activity", e().id),
|
|
44004
44028
|
get children() {
|
|
44005
|
-
return
|
|
44029
|
+
return p1();
|
|
44006
44030
|
}
|
|
44007
44031
|
})
|
|
44008
44032
|
}), null), P(g, j(vj, {
|
|
@@ -44021,10 +44045,10 @@ function w1() {
|
|
|
44021
44045
|
return ee() === e().id;
|
|
44022
44046
|
},
|
|
44023
44047
|
get fallback() {
|
|
44024
|
-
return
|
|
44048
|
+
return m1();
|
|
44025
44049
|
},
|
|
44026
44050
|
get children() {
|
|
44027
|
-
return
|
|
44051
|
+
return Q$();
|
|
44028
44052
|
}
|
|
44029
44053
|
});
|
|
44030
44054
|
}
|
|
@@ -44036,7 +44060,7 @@ function w1() {
|
|
|
44036
44060
|
},
|
|
44037
44061
|
onClick: () => i(r() === e().id ? null : e().id),
|
|
44038
44062
|
get children() {
|
|
44039
|
-
return
|
|
44063
|
+
return $$();
|
|
44040
44064
|
}
|
|
44041
44065
|
}), null), P(g, j(M, {
|
|
44042
44066
|
get when() {
|
|
@@ -44052,7 +44076,7 @@ function w1() {
|
|
|
44052
44076
|
title: "Interrupt — the session stays resumable",
|
|
44053
44077
|
onClick: () => u.mutate(e().id),
|
|
44054
44078
|
get children() {
|
|
44055
|
-
return
|
|
44079
|
+
return e1();
|
|
44056
44080
|
}
|
|
44057
44081
|
});
|
|
44058
44082
|
}
|
|
@@ -44067,7 +44091,7 @@ function w1() {
|
|
|
44067
44091
|
return $e(() => !!c.data)() && (c.data.files.length || c.data.untracked.length || c.data.prs.length);
|
|
44068
44092
|
},
|
|
44069
44093
|
get children() {
|
|
44070
|
-
var e =
|
|
44094
|
+
var e = n1(), t = e.firstChild, n = t.firstChild.nextSibling, r = n.firstChild;
|
|
44071
44095
|
r.firstChild;
|
|
44072
44096
|
var i = r.nextSibling.nextSibling;
|
|
44073
44097
|
return i.firstChild, P(t, j(M, {
|
|
@@ -44075,7 +44099,7 @@ function w1() {
|
|
|
44075
44099
|
return c.data.branch;
|
|
44076
44100
|
},
|
|
44077
44101
|
get children() {
|
|
44078
|
-
var e =
|
|
44102
|
+
var e = t1();
|
|
44079
44103
|
return P(e, () => c.data.branch), e;
|
|
44080
44104
|
}
|
|
44081
44105
|
}), n), P(r, () => c.data.totalAdded, null), P(i, () => c.data.totalDeleted, null), P(e, j(We, {
|
|
@@ -44083,23 +44107,23 @@ function w1() {
|
|
|
44083
44107
|
return c.data.files;
|
|
44084
44108
|
},
|
|
44085
44109
|
children: (e) => (() => {
|
|
44086
|
-
var t =
|
|
44110
|
+
var t = _1(), n = t.firstChild, r = n.nextSibling;
|
|
44087
44111
|
return P(n, () => e.path), P(r, j(M, {
|
|
44088
44112
|
get when() {
|
|
44089
44113
|
return !e.binary;
|
|
44090
44114
|
},
|
|
44091
44115
|
get fallback() {
|
|
44092
|
-
return
|
|
44116
|
+
return v1();
|
|
44093
44117
|
},
|
|
44094
44118
|
get children() {
|
|
44095
44119
|
return [
|
|
44096
44120
|
(() => {
|
|
44097
|
-
var t =
|
|
44121
|
+
var t = h1();
|
|
44098
44122
|
return t.firstChild, P(t, () => e.added, null), t;
|
|
44099
44123
|
})(),
|
|
44100
44124
|
" ",
|
|
44101
44125
|
(() => {
|
|
44102
|
-
var t =
|
|
44126
|
+
var t = g1();
|
|
44103
44127
|
return t.firstChild, P(t, () => e.deleted, null), t;
|
|
44104
44128
|
})()
|
|
44105
44129
|
];
|
|
@@ -44111,7 +44135,7 @@ function w1() {
|
|
|
44111
44135
|
return c.data.untracked;
|
|
44112
44136
|
},
|
|
44113
44137
|
children: (e) => (() => {
|
|
44114
|
-
var t =
|
|
44138
|
+
var t = y1(), n = t.firstChild;
|
|
44115
44139
|
return it(n, "title", e), P(n, e), t;
|
|
44116
44140
|
})()
|
|
44117
44141
|
}), null), P(e, j(We, {
|
|
@@ -44119,7 +44143,7 @@ function w1() {
|
|
|
44119
44143
|
return c.data.prs;
|
|
44120
44144
|
},
|
|
44121
44145
|
children: (e) => (() => {
|
|
44122
|
-
var t =
|
|
44146
|
+
var t = b1(), n = t.firstChild;
|
|
44123
44147
|
return P(t, j(Oj, {
|
|
44124
44148
|
class: "text-accent",
|
|
44125
44149
|
get children() {
|
|
@@ -44137,7 +44161,7 @@ function w1() {
|
|
|
44137
44161
|
}
|
|
44138
44162
|
}),
|
|
44139
44163
|
(() => {
|
|
44140
|
-
var e =
|
|
44164
|
+
var e = r1();
|
|
44141
44165
|
return e.addEventListener("scroll", E), pt((e) => {
|
|
44142
44166
|
C = e, w = !0;
|
|
44143
44167
|
}, e), P(e, j(M, {
|
|
@@ -44145,7 +44169,7 @@ function w1() {
|
|
|
44145
44169
|
return (s.data?.tail ?? []).length > 0;
|
|
44146
44170
|
},
|
|
44147
44171
|
get fallback() {
|
|
44148
|
-
return
|
|
44172
|
+
return x1();
|
|
44149
44173
|
},
|
|
44150
44174
|
get children() {
|
|
44151
44175
|
return j(Ge, {
|
|
@@ -44160,7 +44184,7 @@ function w1() {
|
|
|
44160
44184
|
})), e;
|
|
44161
44185
|
})(),
|
|
44162
44186
|
(() => {
|
|
44163
|
-
var t =
|
|
44187
|
+
var t = c1(), n = t.firstChild, r = n.firstChild;
|
|
44164
44188
|
return P(t, j(xj, {
|
|
44165
44189
|
rows: 2,
|
|
44166
44190
|
get placeholder() {
|
|
@@ -44180,7 +44204,7 @@ function w1() {
|
|
|
44180
44204
|
"aria-label": "Pick element",
|
|
44181
44205
|
onClick: v,
|
|
44182
44206
|
get children() {
|
|
44183
|
-
return
|
|
44207
|
+
return i1();
|
|
44184
44208
|
}
|
|
44185
44209
|
}), null), P(n, j(vj, {
|
|
44186
44210
|
variant: "ghost",
|
|
@@ -44192,7 +44216,7 @@ function w1() {
|
|
|
44192
44216
|
"aria-label": "Attach captures",
|
|
44193
44217
|
onClick: () => void y(),
|
|
44194
44218
|
get children() {
|
|
44195
|
-
return
|
|
44219
|
+
return a1();
|
|
44196
44220
|
}
|
|
44197
44221
|
}), null), P(n, j(vj, {
|
|
44198
44222
|
variant: "ghost",
|
|
@@ -44207,7 +44231,7 @@ function w1() {
|
|
|
44207
44231
|
text: "/compact"
|
|
44208
44232
|
}),
|
|
44209
44233
|
get children() {
|
|
44210
|
-
return
|
|
44234
|
+
return o1();
|
|
44211
44235
|
}
|
|
44212
44236
|
}), null), P(n, j(vj, {
|
|
44213
44237
|
variant: "primary",
|
|
@@ -44223,7 +44247,7 @@ function w1() {
|
|
|
44223
44247
|
text: d().trim()
|
|
44224
44248
|
}),
|
|
44225
44249
|
get children() {
|
|
44226
|
-
return
|
|
44250
|
+
return s1();
|
|
44227
44251
|
}
|
|
44228
44252
|
}), null), t;
|
|
44229
44253
|
})()
|
|
@@ -44240,13 +44264,13 @@ function w1() {
|
|
|
44240
44264
|
}
|
|
44241
44265
|
//#endregion
|
|
44242
44266
|
//#region src/panel/views/PrsView.tsx
|
|
44243
|
-
var
|
|
44244
|
-
function
|
|
44267
|
+
var E1 = /*#__PURE__*/ N("<span class=\"text-text-faint text-[10.5px] tabular-nums\">/<!> from your issues"), D1 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1.5\">"), O1 = /*#__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\">"), k1 = /*#__PURE__*/ N("<span class=\"text-warn text-[10.5px]\"title=\"Merge states come from gh via the bridge\">states unknown — restart the bridge"), A1 = /*#__PURE__*/ N("<button>"), j1 = /*#__PURE__*/ N("<span class=\"text-[12px] leading-none\">✓"), M1 = /*#__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>"), N1 = /*#__PURE__*/ N("<span class=\"text-success text-[12px] leading-none\">✓"), P1 = /*#__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\">"), F1 = /*#__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\">"), I1 = /*#__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\">"), L1 = /github\.com\/[^/]+\/[^/]+\/pull\/\d+/i;
|
|
44268
|
+
function R1(e) {
|
|
44245
44269
|
let t = _r(() => ({
|
|
44246
44270
|
queryKey: ["my-issues"],
|
|
44247
44271
|
queryFn: uO,
|
|
44248
44272
|
refetchInterval: 15e3
|
|
44249
|
-
})), n = k(() => (t.data ?? []).flatMap((e) => (e.attachments ?? []).filter((e) =>
|
|
44273
|
+
})), n = k(() => (t.data ?? []).flatMap((e) => (e.attachments ?? []).filter((e) => L1.test(e.url)).map((t) => ({
|
|
44250
44274
|
issue: e,
|
|
44251
44275
|
attachment: t
|
|
44252
44276
|
})))), r = _r(() => ({
|
|
@@ -44283,7 +44307,7 @@ function L1(e) {
|
|
|
44283
44307
|
} catch {}
|
|
44284
44308
|
};
|
|
44285
44309
|
return (() => {
|
|
44286
|
-
var r =
|
|
44310
|
+
var r = O1(), p = r.firstChild;
|
|
44287
44311
|
p.firstChild;
|
|
44288
44312
|
var h = p.nextSibling, _ = h.firstChild, b = h.nextSibling;
|
|
44289
44313
|
return P(p, j(M, {
|
|
@@ -44291,10 +44315,10 @@ function L1(e) {
|
|
|
44291
44315
|
return !i.isError;
|
|
44292
44316
|
},
|
|
44293
44317
|
get fallback() {
|
|
44294
|
-
return
|
|
44318
|
+
return k1();
|
|
44295
44319
|
},
|
|
44296
44320
|
get children() {
|
|
44297
|
-
var e =
|
|
44321
|
+
var e = E1(), t = e.firstChild, r = t.nextSibling;
|
|
44298
44322
|
return r.nextSibling, P(e, () => d().length, t), P(e, () => n().length, r), e;
|
|
44299
44323
|
}
|
|
44300
44324
|
}), null), P(_, j(We, {
|
|
@@ -44317,7 +44341,7 @@ function L1(e) {
|
|
|
44317
44341
|
}
|
|
44318
44342
|
],
|
|
44319
44343
|
children: (e) => (() => {
|
|
44320
|
-
var t =
|
|
44344
|
+
var t = A1();
|
|
44321
44345
|
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;
|
|
44322
44346
|
})()
|
|
44323
44347
|
})), P(h, j(bj, {
|
|
@@ -44340,13 +44364,13 @@ function L1(e) {
|
|
|
44340
44364
|
});
|
|
44341
44365
|
},
|
|
44342
44366
|
get children() {
|
|
44343
|
-
var t =
|
|
44367
|
+
var t = D1();
|
|
44344
44368
|
return P(t, j(We, {
|
|
44345
44369
|
get each() {
|
|
44346
44370
|
return d();
|
|
44347
44371
|
},
|
|
44348
44372
|
children: (t) => (() => {
|
|
44349
|
-
var n =
|
|
44373
|
+
var n = P1(), r = n.firstChild, i = r.nextSibling, s = i.firstChild, c = s.nextSibling, l = c.nextSibling, u = i.nextSibling, d = u.firstChild;
|
|
44350
44374
|
return P(r, () => t.attachment.title || t.attachment.url), P(i, j(kj, { get color() {
|
|
44351
44375
|
return t.issue.state.color;
|
|
44352
44376
|
} }), s), P(s, () => t.issue.identifier), P(c, () => t.issue.title), P(l, () => Nj(t.issue.updatedAt)), P(u, j(Oj, { get children() {
|
|
@@ -44423,10 +44447,10 @@ function L1(e) {
|
|
|
44423
44447
|
return g().has(t.attachment.url);
|
|
44424
44448
|
},
|
|
44425
44449
|
get fallback() {
|
|
44426
|
-
return
|
|
44450
|
+
return F1();
|
|
44427
44451
|
},
|
|
44428
44452
|
get children() {
|
|
44429
|
-
return
|
|
44453
|
+
return j1();
|
|
44430
44454
|
}
|
|
44431
44455
|
});
|
|
44432
44456
|
}
|
|
@@ -44439,7 +44463,7 @@ function L1(e) {
|
|
|
44439
44463
|
YA("activity", t.issue.id), e.onOpenIssue();
|
|
44440
44464
|
},
|
|
44441
44465
|
get children() {
|
|
44442
|
-
return
|
|
44466
|
+
return M1();
|
|
44443
44467
|
}
|
|
44444
44468
|
}), null), P(d, j(vj, {
|
|
44445
44469
|
variant: "ghost",
|
|
@@ -44453,10 +44477,10 @@ function L1(e) {
|
|
|
44453
44477
|
return f() === t.attachment.id;
|
|
44454
44478
|
},
|
|
44455
44479
|
get fallback() {
|
|
44456
|
-
return
|
|
44480
|
+
return I1();
|
|
44457
44481
|
},
|
|
44458
44482
|
get children() {
|
|
44459
|
-
return
|
|
44483
|
+
return N1();
|
|
44460
44484
|
}
|
|
44461
44485
|
});
|
|
44462
44486
|
}
|
|
@@ -44476,13 +44500,13 @@ function L1(e) {
|
|
|
44476
44500
|
//#endregion
|
|
44477
44501
|
//#region src/lib/linear/auth.ts
|
|
44478
44502
|
rt(["click"]), Rr();
|
|
44479
|
-
function
|
|
44503
|
+
function z1(e) {
|
|
44480
44504
|
let t = "";
|
|
44481
44505
|
for (let n of e) t += String.fromCharCode(n);
|
|
44482
44506
|
return btoa(t).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
|
|
44483
44507
|
}
|
|
44484
|
-
async function
|
|
44485
|
-
let t =
|
|
44508
|
+
async function B1(e) {
|
|
44509
|
+
let t = z1(crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(32))), n = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(t)), r = z1(new Uint8Array(n)), i = z1(crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(16))), a = chrome.identity.getRedirectURL(), o = new URL("https://linear.app/oauth/authorize");
|
|
44486
44510
|
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");
|
|
44487
44511
|
let s = await chrome.identity.launchWebAuthFlow({
|
|
44488
44512
|
url: o.toString(),
|
|
@@ -44510,15 +44534,15 @@ async function z1(e) {
|
|
|
44510
44534
|
linearOauthClientId: e
|
|
44511
44535
|
});
|
|
44512
44536
|
}
|
|
44513
|
-
async function
|
|
44537
|
+
async function V1() {
|
|
44514
44538
|
await wr({
|
|
44515
44539
|
linearAccessToken: void 0,
|
|
44516
44540
|
linearApiKey: void 0
|
|
44517
44541
|
});
|
|
44518
44542
|
}
|
|
44519
44543
|
Rr(), br(), Nx(), mD();
|
|
44520
|
-
var
|
|
44521
|
-
function
|
|
44544
|
+
var H1 = /*#__PURE__*/ N("<div class=\"bg-surface-2 border-border flex rounded-md border p-0.5\">"), U1 = /*#__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."), W1 = /*#__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"), G1 = /*#__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)."), K1 = /*#__PURE__*/ N("<span class=text-text>Connected as <span class=font-medium></span> · <span class=text-text-dim>"), q1 = /*#__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]\">"), J1 = /*#__PURE__*/ N("<option value>Select a team…"), Y1 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">No agents found — install the Cursor integration in Linear first."), X1 = /*#__PURE__*/ N("<span class=\"text-text-faint text-[10.5px] leading-snug\">Empty = the default above (computer-use testing, video demo, PR + review babysitting)."), Z1 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1.5\">"), Q1 = /*#__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."), $1 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1\"><span class=\"text-text-dim text-[11px] font-medium\">Dock side</span><div class=\"bg-surface-2 border-border flex rounded-md border p-0.5\"></div><span class=\"text-text-faint text-[10.5px] leading-snug\">The launcher pill is draggable — park it anywhere it doesn't cover your app."), e0 = /*#__PURE__*/ N("<option value>Select a channel…"), t0 = /*#__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"), n0 = /*#__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."), r0 = /*#__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"), i0 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">"), a0 = /*#__PURE__*/ N("<div class=min-h-[2lh]>"), o0 = /*#__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."), s0 = /*#__PURE__*/ N("<div class=\"flex h-full flex-col gap-5 overflow-y-auto pt-3 pb-6 pl-3 pr-4\">"), c0 = /*#__PURE__*/ N("<button>"), l0 = /*#__PURE__*/ N("<div class=\"flex gap-1.5\">"), u0 = /*#__PURE__*/ N("<p class=\"text-text-faint text-center text-[10.5px]\">or"), d0 = /*#__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\">"), f0 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-3\">"), p0 = /*#__PURE__*/ N("<span class=text-text-dim>Connected — verifying…"), m0 = /*#__PURE__*/ N("<option> (<!>)"), h0 = /*#__PURE__*/ N("<option value>Select the agent…"), g0 = /*#__PURE__*/ N("<option>"), _0 = /*#__PURE__*/ N("<option>#"), v0 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">No key set — AI drafting disabled, manual drafting still works.");
|
|
44545
|
+
function y0() {
|
|
44522
44546
|
let e = sr(), t = _r(() => ({
|
|
44523
44547
|
queryKey: ["settings"],
|
|
44524
44548
|
queryFn: Cr,
|
|
@@ -44563,7 +44587,7 @@ function v0() {
|
|
|
44563
44587
|
}
|
|
44564
44588
|
v(!0), b("");
|
|
44565
44589
|
try {
|
|
44566
|
-
await
|
|
44590
|
+
await B1(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"] });
|
|
44567
44591
|
} catch (e) {
|
|
44568
44592
|
b(e instanceof Error ? e.message : "OAuth flow failed.");
|
|
44569
44593
|
} finally {
|
|
@@ -44574,7 +44598,7 @@ function v0() {
|
|
|
44574
44598
|
async function w() {
|
|
44575
44599
|
C(!0);
|
|
44576
44600
|
try {
|
|
44577
|
-
await
|
|
44601
|
+
await V1(), 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"] });
|
|
44578
44602
|
} finally {
|
|
44579
44603
|
C(!1);
|
|
44580
44604
|
}
|
|
@@ -44590,12 +44614,12 @@ function v0() {
|
|
|
44590
44614
|
return e ? `Drafting with ${e} — ${jx[e].fast} (fast) / ${jx[e].best} (best)` : null;
|
|
44591
44615
|
});
|
|
44592
44616
|
return (() => {
|
|
44593
|
-
var e =
|
|
44617
|
+
var e = s0();
|
|
44594
44618
|
return P(e, j(Dj, {
|
|
44595
44619
|
title: "Workflow",
|
|
44596
44620
|
get children() {
|
|
44597
44621
|
return [(() => {
|
|
44598
|
-
var e =
|
|
44622
|
+
var e = H1();
|
|
44599
44623
|
return P(e, j(We, {
|
|
44600
44624
|
each: [{
|
|
44601
44625
|
id: "cloud",
|
|
@@ -44605,19 +44629,19 @@ function v0() {
|
|
|
44605
44629
|
label: "Local · clipboard"
|
|
44606
44630
|
}],
|
|
44607
44631
|
children: (e) => (() => {
|
|
44608
|
-
var t =
|
|
44632
|
+
var t = c0();
|
|
44609
44633
|
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;
|
|
44610
44634
|
})()
|
|
44611
44635
|
})), e;
|
|
44612
|
-
})(),
|
|
44636
|
+
})(), U1()];
|
|
44613
44637
|
}
|
|
44614
44638
|
}), null), P(e, j(Dj, {
|
|
44615
44639
|
title: "Capture",
|
|
44616
44640
|
get children() {
|
|
44617
44641
|
return [(() => {
|
|
44618
|
-
var e =
|
|
44642
|
+
var e = W1(), t = e.firstChild;
|
|
44619
44643
|
return t.addEventListener("change", (e) => void r({ captureShots: e.currentTarget.checked || void 0 })), D(() => t.checked = !!n().captureShots), e;
|
|
44620
|
-
})(),
|
|
44644
|
+
})(), G1()];
|
|
44621
44645
|
}
|
|
44622
44646
|
}), null), P(e, j(Dj, {
|
|
44623
44647
|
title: "Linear",
|
|
@@ -44628,13 +44652,13 @@ function v0() {
|
|
|
44628
44652
|
},
|
|
44629
44653
|
get fallback() {
|
|
44630
44654
|
return (() => {
|
|
44631
|
-
var e =
|
|
44655
|
+
var e = f0();
|
|
44632
44656
|
return P(e, j(Ej, {
|
|
44633
44657
|
label: "Personal API key",
|
|
44634
44658
|
hint: "Create one at linear.app → Settings → API — fastest path.",
|
|
44635
44659
|
get children() {
|
|
44636
44660
|
return [(() => {
|
|
44637
|
-
var e =
|
|
44661
|
+
var e = l0();
|
|
44638
44662
|
return P(e, j(bj, {
|
|
44639
44663
|
type: "password",
|
|
44640
44664
|
placeholder: "lin_api_…",
|
|
@@ -44671,12 +44695,12 @@ function v0() {
|
|
|
44671
44695
|
}), null), P(e, j(M, {
|
|
44672
44696
|
when: yr,
|
|
44673
44697
|
get children() {
|
|
44674
|
-
return [
|
|
44698
|
+
return [u0(), j(Ej, {
|
|
44675
44699
|
label: "OAuth client ID",
|
|
44676
44700
|
get children() {
|
|
44677
44701
|
return [
|
|
44678
44702
|
(() => {
|
|
44679
|
-
var e =
|
|
44703
|
+
var e = l0();
|
|
44680
44704
|
return P(e, j(bj, {
|
|
44681
44705
|
placeholder: "your-client-id",
|
|
44682
44706
|
get value() {
|
|
@@ -44704,7 +44728,7 @@ function v0() {
|
|
|
44704
44728
|
}
|
|
44705
44729
|
}),
|
|
44706
44730
|
(() => {
|
|
44707
|
-
var e =
|
|
44731
|
+
var e = d0(), t = e.firstChild.nextSibling.nextSibling;
|
|
44708
44732
|
return P(t, E), e;
|
|
44709
44733
|
})()
|
|
44710
44734
|
];
|
|
@@ -44715,13 +44739,13 @@ function v0() {
|
|
|
44715
44739
|
})();
|
|
44716
44740
|
},
|
|
44717
44741
|
get children() {
|
|
44718
|
-
var e =
|
|
44742
|
+
var e = q1(), t = e.firstChild;
|
|
44719
44743
|
return P(t, j(M, {
|
|
44720
44744
|
get when() {
|
|
44721
44745
|
return !a.isLoading;
|
|
44722
44746
|
},
|
|
44723
44747
|
get fallback() {
|
|
44724
|
-
return
|
|
44748
|
+
return p0();
|
|
44725
44749
|
},
|
|
44726
44750
|
get children() {
|
|
44727
44751
|
return j(M, {
|
|
@@ -44734,7 +44758,7 @@ function v0() {
|
|
|
44734
44758
|
return a.isError;
|
|
44735
44759
|
},
|
|
44736
44760
|
get fallback() {
|
|
44737
|
-
return
|
|
44761
|
+
return p0();
|
|
44738
44762
|
},
|
|
44739
44763
|
get children() {
|
|
44740
44764
|
return j(jj, { message: "Key rejected — reconnect" });
|
|
@@ -44742,7 +44766,7 @@ function v0() {
|
|
|
44742
44766
|
});
|
|
44743
44767
|
},
|
|
44744
44768
|
get children() {
|
|
44745
|
-
var e =
|
|
44769
|
+
var e = K1(), t = e.firstChild.nextSibling, n = t.nextSibling.nextSibling;
|
|
44746
44770
|
return P(t, () => a.data.name), P(n, () => a.data.email), e;
|
|
44747
44771
|
}
|
|
44748
44772
|
});
|
|
@@ -44783,7 +44807,7 @@ function v0() {
|
|
|
44783
44807
|
return o.isLoading;
|
|
44784
44808
|
},
|
|
44785
44809
|
get children() {
|
|
44786
|
-
return [
|
|
44810
|
+
return [J1(), j(M, {
|
|
44787
44811
|
get when() {
|
|
44788
44812
|
return o.data;
|
|
44789
44813
|
},
|
|
@@ -44793,7 +44817,7 @@ function v0() {
|
|
|
44793
44817
|
return o.data;
|
|
44794
44818
|
},
|
|
44795
44819
|
children: (e) => (() => {
|
|
44796
|
-
var t =
|
|
44820
|
+
var t = m0(), r = t.firstChild, i = r.nextSibling;
|
|
44797
44821
|
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;
|
|
44798
44822
|
})()
|
|
44799
44823
|
});
|
|
@@ -44837,7 +44861,7 @@ function v0() {
|
|
|
44837
44861
|
return s.isLoading;
|
|
44838
44862
|
},
|
|
44839
44863
|
get children() {
|
|
44840
|
-
return [
|
|
44864
|
+
return [h0(), j(M, {
|
|
44841
44865
|
get when() {
|
|
44842
44866
|
return s.data;
|
|
44843
44867
|
},
|
|
@@ -44847,7 +44871,7 @@ function v0() {
|
|
|
44847
44871
|
return s.data;
|
|
44848
44872
|
},
|
|
44849
44873
|
children: (e) => (() => {
|
|
44850
|
-
var t =
|
|
44874
|
+
var t = g0();
|
|
44851
44875
|
return P(t, () => e.displayName), D(() => t.selected = e.id === n().cursorAgentId), D(() => t.value = e.id), t;
|
|
44852
44876
|
})()
|
|
44853
44877
|
});
|
|
@@ -44857,7 +44881,7 @@ function v0() {
|
|
|
44857
44881
|
});
|
|
44858
44882
|
},
|
|
44859
44883
|
get children() {
|
|
44860
|
-
return
|
|
44884
|
+
return Y1();
|
|
44861
44885
|
}
|
|
44862
44886
|
});
|
|
44863
44887
|
}
|
|
@@ -44905,7 +44929,7 @@ function v0() {
|
|
|
44905
44929
|
onBlur: (e) => {
|
|
44906
44930
|
r({ issueTemplate: e.currentTarget.value.trim() || void 0 });
|
|
44907
44931
|
}
|
|
44908
|
-
}),
|
|
44932
|
+
}), X1()];
|
|
44909
44933
|
}
|
|
44910
44934
|
}),
|
|
44911
44935
|
j(Ej, {
|
|
@@ -44962,7 +44986,7 @@ function v0() {
|
|
|
44962
44986
|
label: "Test account",
|
|
44963
44987
|
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.",
|
|
44964
44988
|
get children() {
|
|
44965
|
-
var e =
|
|
44989
|
+
var e = Z1();
|
|
44966
44990
|
return P(e, j(bj, {
|
|
44967
44991
|
placeholder: "Username or email (e.g. demo@yourapp.com)",
|
|
44968
44992
|
get value() {
|
|
@@ -44994,7 +45018,7 @@ function v0() {
|
|
|
44994
45018
|
title: "Panel",
|
|
44995
45019
|
get children() {
|
|
44996
45020
|
return [(() => {
|
|
44997
|
-
var e =
|
|
45021
|
+
var e = Q1(), t = e.firstChild.nextSibling;
|
|
44998
45022
|
return P(t, j(We, {
|
|
44999
45023
|
each: [{
|
|
45000
45024
|
id: "overlay",
|
|
@@ -45004,7 +45028,7 @@ function v0() {
|
|
|
45004
45028
|
label: "Beside page"
|
|
45005
45029
|
}],
|
|
45006
45030
|
children: (e) => (() => {
|
|
45007
|
-
var t =
|
|
45031
|
+
var t = c0();
|
|
45008
45032
|
return t.$$click = () => void r({
|
|
45009
45033
|
panelMode: e.id,
|
|
45010
45034
|
panelPos: void 0
|
|
@@ -45012,11 +45036,11 @@ function v0() {
|
|
|
45012
45036
|
})()
|
|
45013
45037
|
})), e;
|
|
45014
45038
|
})(), (() => {
|
|
45015
|
-
var e =
|
|
45039
|
+
var e = $1(), t = e.firstChild.nextSibling;
|
|
45016
45040
|
return P(t, j(We, {
|
|
45017
45041
|
each: ["left", "right"],
|
|
45018
45042
|
children: (e) => (() => {
|
|
45019
|
-
var t =
|
|
45043
|
+
var t = c0();
|
|
45020
45044
|
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;
|
|
45021
45045
|
})()
|
|
45022
45046
|
})), e;
|
|
@@ -45128,12 +45152,12 @@ function v0() {
|
|
|
45128
45152
|
});
|
|
45129
45153
|
},
|
|
45130
45154
|
get children() {
|
|
45131
|
-
return [
|
|
45155
|
+
return [e0(), j(We, {
|
|
45132
45156
|
get each() {
|
|
45133
45157
|
return O.data ?? [];
|
|
45134
45158
|
},
|
|
45135
45159
|
children: (e) => (() => {
|
|
45136
|
-
var t =
|
|
45160
|
+
var t = _0();
|
|
45137
45161
|
return t.firstChild, P(t, () => e.name, null), D(() => t.selected = e.id === n().slackChannelId), D(() => t.value = e.id), t;
|
|
45138
45162
|
})()
|
|
45139
45163
|
})];
|
|
@@ -45184,10 +45208,10 @@ function v0() {
|
|
|
45184
45208
|
}
|
|
45185
45209
|
}),
|
|
45186
45210
|
(() => {
|
|
45187
|
-
var e =
|
|
45211
|
+
var e = t0(), t = e.firstChild;
|
|
45188
45212
|
return t.addEventListener("change", (e) => void r({ notifyOnCreate: e.currentTarget.checked ? void 0 : !1 })), D(() => t.checked = n().notifyOnCreate !== !1), e;
|
|
45189
45213
|
})(),
|
|
45190
|
-
|
|
45214
|
+
n0()
|
|
45191
45215
|
];
|
|
45192
45216
|
}
|
|
45193
45217
|
}), null), P(e, j(Dj, {
|
|
@@ -45225,7 +45249,7 @@ function v0() {
|
|
|
45225
45249
|
}
|
|
45226
45250
|
}),
|
|
45227
45251
|
(() => {
|
|
45228
|
-
var e =
|
|
45252
|
+
var e = r0(), t = e.firstChild.nextSibling.firstChild, i = t.nextSibling, a = i.nextSibling;
|
|
45229
45253
|
return t.$$click = () => void r({ preferredProvider: void 0 }), i.$$click = () => void r({ preferredProvider: "openai" }), a.$$click = () => void r({ preferredProvider: "anthropic" }), D((e) => {
|
|
45230
45254
|
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;
|
|
45231
45255
|
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;
|
|
@@ -45238,16 +45262,16 @@ function v0() {
|
|
|
45238
45262
|
}), e;
|
|
45239
45263
|
})(),
|
|
45240
45264
|
(() => {
|
|
45241
|
-
var e =
|
|
45265
|
+
var e = a0();
|
|
45242
45266
|
return P(e, j(M, {
|
|
45243
45267
|
get when() {
|
|
45244
45268
|
return te();
|
|
45245
45269
|
},
|
|
45246
45270
|
get fallback() {
|
|
45247
|
-
return
|
|
45271
|
+
return v0();
|
|
45248
45272
|
},
|
|
45249
45273
|
get children() {
|
|
45250
|
-
var e =
|
|
45274
|
+
var e = i0();
|
|
45251
45275
|
return P(e, te), e;
|
|
45252
45276
|
}
|
|
45253
45277
|
})), e;
|
|
@@ -45257,7 +45281,7 @@ function v0() {
|
|
|
45257
45281
|
}), null), P(e, j(Dj, {
|
|
45258
45282
|
title: "How it works",
|
|
45259
45283
|
get children() {
|
|
45260
|
-
return
|
|
45284
|
+
return o0();
|
|
45261
45285
|
}
|
|
45262
45286
|
}), null), e;
|
|
45263
45287
|
})();
|
|
@@ -45265,38 +45289,38 @@ function v0() {
|
|
|
45265
45289
|
rt(["click"]);
|
|
45266
45290
|
//#endregion
|
|
45267
45291
|
//#region src/lib/idbCache.ts
|
|
45268
|
-
var
|
|
45292
|
+
var b0 = "linear-grab", x0 = "queries", S0 = [
|
|
45269
45293
|
"my-issues",
|
|
45270
45294
|
"issue",
|
|
45271
45295
|
"sessions",
|
|
45272
45296
|
"teams",
|
|
45273
45297
|
"agents"
|
|
45274
45298
|
];
|
|
45275
|
-
function
|
|
45299
|
+
function C0() {
|
|
45276
45300
|
return new Promise((e) => {
|
|
45277
45301
|
try {
|
|
45278
|
-
let t = indexedDB.open(
|
|
45279
|
-
t.onupgradeneeded = () => t.result.createObjectStore(
|
|
45302
|
+
let t = indexedDB.open(b0, 1);
|
|
45303
|
+
t.onupgradeneeded = () => t.result.createObjectStore(x0), t.onsuccess = () => e(t.result), t.onerror = () => e(null);
|
|
45280
45304
|
} catch {
|
|
45281
45305
|
e(null);
|
|
45282
45306
|
}
|
|
45283
45307
|
});
|
|
45284
45308
|
}
|
|
45285
|
-
function
|
|
45286
|
-
return typeof e[0] == "string" &&
|
|
45309
|
+
function w0(e) {
|
|
45310
|
+
return typeof e[0] == "string" && S0.includes(e[0]);
|
|
45287
45311
|
}
|
|
45288
|
-
async function
|
|
45289
|
-
let t = await
|
|
45312
|
+
async function T0(e) {
|
|
45313
|
+
let t = await C0();
|
|
45290
45314
|
if (!t) return () => {};
|
|
45291
45315
|
await new Promise((n) => {
|
|
45292
45316
|
try {
|
|
45293
|
-
let r = t.transaction(
|
|
45317
|
+
let r = t.transaction(x0, "readonly").objectStore(x0).openCursor();
|
|
45294
45318
|
r.onsuccess = () => {
|
|
45295
45319
|
let t = r.result;
|
|
45296
45320
|
if (!t) return n();
|
|
45297
45321
|
try {
|
|
45298
45322
|
let { queryKey: n, data: r } = t.value;
|
|
45299
|
-
|
|
45323
|
+
w0(n) && e.getQueryData(n) === void 0 && e.setQueryData(n, r, { updatedAt: 0 });
|
|
45300
45324
|
} catch {}
|
|
45301
45325
|
t.continue();
|
|
45302
45326
|
}, r.onerror = () => n();
|
|
@@ -45307,14 +45331,14 @@ async function w0(e) {
|
|
|
45307
45331
|
let n = /* @__PURE__ */ new Map(), r = e.getQueryCache().subscribe((r) => {
|
|
45308
45332
|
if (r.type !== "updated" || r.action.type !== "success") return;
|
|
45309
45333
|
let { queryKey: i, queryHash: a } = r.query;
|
|
45310
|
-
if (!
|
|
45334
|
+
if (!w0(i)) return;
|
|
45311
45335
|
let o = n.get(a);
|
|
45312
45336
|
o && clearTimeout(o), n.set(a, setTimeout(() => {
|
|
45313
45337
|
n.delete(a);
|
|
45314
45338
|
try {
|
|
45315
45339
|
let n = e.getQueryData(i);
|
|
45316
45340
|
if (n === void 0) return;
|
|
45317
|
-
t.transaction(
|
|
45341
|
+
t.transaction(x0, "readwrite").objectStore(x0).put({
|
|
45318
45342
|
queryKey: i,
|
|
45319
45343
|
data: n
|
|
45320
45344
|
}, a);
|
|
@@ -45330,7 +45354,7 @@ async function w0(e) {
|
|
|
45330
45354
|
//#endregion
|
|
45331
45355
|
//#region src/panel/App.tsx
|
|
45332
45356
|
Rr();
|
|
45333
|
-
var
|
|
45357
|
+
var E0 = /*#__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\">"), D0 = /*#__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\">"), O0 = /*#__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\">–"), k0 = /*#__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>"), A0 = /*#__PURE__*/ N("<button>"), j0 = [
|
|
45334
45358
|
{
|
|
45335
45359
|
id: "draft",
|
|
45336
45360
|
label: "Draft"
|
|
@@ -45355,14 +45379,14 @@ var T0 = /*#__PURE__*/ N("<svg viewBox=\"0 0 100 100\"fill=currentColor aria-hid
|
|
|
45355
45379
|
id: "settings",
|
|
45356
45380
|
label: "Settings"
|
|
45357
45381
|
}
|
|
45358
|
-
],
|
|
45382
|
+
], M0 = new gr({ defaultOptions: { queries: {
|
|
45359
45383
|
retry: 1,
|
|
45360
45384
|
refetchOnWindowFocus: !1,
|
|
45361
45385
|
staleTime: 5e3
|
|
45362
45386
|
} } });
|
|
45363
|
-
function
|
|
45387
|
+
function N0(e) {
|
|
45364
45388
|
return (() => {
|
|
45365
|
-
var t =
|
|
45389
|
+
var t = E0();
|
|
45366
45390
|
return D((n) => {
|
|
45367
45391
|
var r = e.size ?? 14, i = e.size ?? 14;
|
|
45368
45392
|
return r !== n.e && it(t, "width", n.e = r), i !== n.t && it(t, "height", n.t = i), n;
|
|
@@ -45372,32 +45396,32 @@ function M0(e) {
|
|
|
45372
45396
|
}), t;
|
|
45373
45397
|
})();
|
|
45374
45398
|
}
|
|
45375
|
-
function
|
|
45399
|
+
function P0(e) {
|
|
45376
45400
|
let [t, n] = T("draft"), r = () => {
|
|
45377
|
-
|
|
45401
|
+
M0.invalidateQueries({ queryKey: ["grab"] }), ZA() === "capture" && n("capture"), e.onGrab?.();
|
|
45378
45402
|
};
|
|
45379
45403
|
return O(() => {
|
|
45380
45404
|
let e = GA();
|
|
45381
45405
|
e && n(e);
|
|
45382
45406
|
}), ie(() => {
|
|
45383
|
-
let e =
|
|
45407
|
+
let e = T0(M0), t = IZ(r), n = () => {
|
|
45384
45408
|
RO().then(qQ), FO();
|
|
45385
45409
|
};
|
|
45386
45410
|
n();
|
|
45387
45411
|
let i = Ar((e) => {
|
|
45388
|
-
e === "settings" && (
|
|
45412
|
+
e === "settings" && (M0.invalidateQueries({ queryKey: ["settings"] }), n()), e === "grab" && r();
|
|
45389
45413
|
});
|
|
45390
45414
|
ae(() => {
|
|
45391
45415
|
t(), i(), e.then((e) => e());
|
|
45392
45416
|
});
|
|
45393
45417
|
}), j(cr, {
|
|
45394
|
-
client:
|
|
45418
|
+
client: M0,
|
|
45395
45419
|
get children() {
|
|
45396
|
-
var r =
|
|
45397
|
-
return i.$$pointerdown = (t) => e.onHeaderPointerDown?.(t), P(a, j(
|
|
45398
|
-
each:
|
|
45420
|
+
var r = k0(), 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;
|
|
45421
|
+
return i.$$pointerdown = (t) => e.onHeaderPointerDown?.(t), P(a, j(N0, { size: 14 })), P(o, j(We, {
|
|
45422
|
+
each: j0,
|
|
45399
45423
|
children: (e) => (() => {
|
|
45400
|
-
var r =
|
|
45424
|
+
var r = A0();
|
|
45401
45425
|
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;
|
|
45402
45426
|
})()
|
|
45403
45427
|
})), P(i, j(M, {
|
|
@@ -45405,7 +45429,7 @@ function N0(e) {
|
|
|
45405
45429
|
return e.onTogglePin;
|
|
45406
45430
|
},
|
|
45407
45431
|
get children() {
|
|
45408
|
-
var t =
|
|
45432
|
+
var t = D0();
|
|
45409
45433
|
return t.$$click = () => e.onTogglePin?.(), D((n) => {
|
|
45410
45434
|
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"}`;
|
|
45411
45435
|
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;
|
|
@@ -45420,10 +45444,10 @@ function N0(e) {
|
|
|
45420
45444
|
return e.onClose;
|
|
45421
45445
|
},
|
|
45422
45446
|
get children() {
|
|
45423
|
-
var t =
|
|
45447
|
+
var t = O0();
|
|
45424
45448
|
return t.$$click = () => e.onClose?.(), t;
|
|
45425
45449
|
}
|
|
45426
|
-
}), null), P(s, j(dM, { onCreated: () => n("activity") })), P(c, j(oQ, {})), P(l, j(I$, {})), P(u, j(
|
|
45450
|
+
}), null), P(s, j(dM, { onCreated: () => n("activity") })), P(c, j(oQ, {})), P(l, j(I$, {})), P(u, j(T1, {})), P(d, j(R1, { onOpenIssue: () => n("activity") })), P(f, j(y0, {})), D((n) => {
|
|
45427
45451
|
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";
|
|
45428
45452
|
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;
|
|
45429
45453
|
}, {
|
|
@@ -45441,30 +45465,35 @@ function N0(e) {
|
|
|
45441
45465
|
rt(["pointerdown", "click"]);
|
|
45442
45466
|
//#endregion
|
|
45443
45467
|
//#region src/styles/app.css?inline
|
|
45444
|
-
var P0 = "/*! 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-\\[40\\%\\]{max-width:40%}.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}}";
|
|
45468
|
+
var F0 = "/*! 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-\\[40\\%\\]{max-width:40%}.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}}";
|
|
45445
45469
|
//#endregion
|
|
45446
45470
|
//#region src/page/index.tsx
|
|
45447
45471
|
Rr();
|
|
45448
|
-
var
|
|
45449
|
-
function
|
|
45472
|
+
var I0 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-danger size-2 shrink-0 animate-pulse rounded-full\">"), L0 = /*#__PURE__*/ N("<span class=\"text-text min-w-[5ch] text-[11px] font-medium tabular-nums\">"), R0 = /*#__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"), z0 = /*#__PURE__*/ N("<p class=\"text-warn px-1.5 pt-1 pb-1.5 text-[10.5px] font-semibold tracking-wide uppercase\">Needs review"), B0 = /*#__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"), V0 = /*#__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\">"), H0 = /*#__PURE__*/ N("<div><div title=\"Drag to resize\">"), U0 = /*#__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\">"), W0 = /*#__PURE__*/ N("<span class=\"bg-border h-4 w-px\"aria-hidden>"), G0 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-warn size-2 rounded-full\">"), K0 = /*#__PURE__*/ N("<span class=\"text-warn min-w-[3.5ch] text-left text-[11px] font-medium tabular-nums\"> rev"), q0 = /*#__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>"), J0 = /*#__PURE__*/ N("<p class=\"text-text-faint px-1.5 pb-1.5 text-[11.5px]\">No agents running right now."), Y0 = /*#__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\"> · <!> · ");
|
|
45473
|
+
function X0(e = {}) {
|
|
45450
45474
|
if (typeof window > "u" || window.__LINEAR_GRAB_PAGE__) return;
|
|
45451
45475
|
window.__LINEAR_GRAB_PAGE__ = !0;
|
|
45452
45476
|
let t = () => {
|
|
45453
45477
|
$O(), PZ();
|
|
45454
45478
|
let t = document.createElement("div");
|
|
45455
45479
|
t.id = "linear-grab-root", document.body.appendChild(t);
|
|
45480
|
+
for (let e of [
|
|
45481
|
+
"keydown",
|
|
45482
|
+
"keyup",
|
|
45483
|
+
"keypress"
|
|
45484
|
+
]) t.addEventListener(e, (e) => e.stopPropagation());
|
|
45456
45485
|
let n = t.attachShadow({ mode: "open" }), r = document.createElement("style");
|
|
45457
|
-
r.textContent =
|
|
45486
|
+
r.textContent = F0, n.appendChild(r);
|
|
45458
45487
|
let i = document.createElement("div");
|
|
45459
45488
|
n.appendChild(i);
|
|
45460
|
-
let a = () => i.setAttribute("data-theme",
|
|
45461
|
-
a(), matchMedia("(prefers-color-scheme: light)").addEventListener("change", a), nt(() => j(
|
|
45489
|
+
let a = () => i.setAttribute("data-theme", Z0());
|
|
45490
|
+
a(), matchMedia("(prefers-color-scheme: light)").addEventListener("change", a), nt(() => j(r2, { get defaultOpen() {
|
|
45462
45491
|
return e.defaultOpen ?? !1;
|
|
45463
45492
|
} }), i);
|
|
45464
45493
|
};
|
|
45465
45494
|
document.body ? t() : document.addEventListener("DOMContentLoaded", t, { once: !0 });
|
|
45466
45495
|
}
|
|
45467
|
-
function
|
|
45496
|
+
function Z0() {
|
|
45468
45497
|
try {
|
|
45469
45498
|
let e = [document.body, document.documentElement];
|
|
45470
45499
|
for (let t of e) {
|
|
@@ -45474,11 +45503,11 @@ function X0() {
|
|
|
45474
45503
|
} catch {}
|
|
45475
45504
|
return matchMedia("(prefers-color-scheme: light)").matches ? "light" : "dark";
|
|
45476
45505
|
}
|
|
45477
|
-
var
|
|
45478
|
-
function
|
|
45506
|
+
var Q0 = 130, $0 = 36, e2 = 380, t2 = 280, n2 = 720;
|
|
45507
|
+
function r2(e) {
|
|
45479
45508
|
let [t, n] = T(e.defaultOpen), [r, i] = T("right"), [a, o] = T({
|
|
45480
|
-
x: Math.max(8, window.innerWidth -
|
|
45481
|
-
y: Math.max(8, window.innerHeight -
|
|
45509
|
+
x: Math.max(8, window.innerWidth - Q0 - 24),
|
|
45510
|
+
y: Math.max(8, window.innerHeight - $0 - 20)
|
|
45482
45511
|
}), [s, c] = T({
|
|
45483
45512
|
running: [],
|
|
45484
45513
|
review: []
|
|
@@ -45493,12 +45522,12 @@ function n2(e) {
|
|
|
45493
45522
|
let t = Math.floor(e / 1e3);
|
|
45494
45523
|
return `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
|
|
45495
45524
|
}, [v, y] = T(null), b = (e) => ({
|
|
45496
|
-
x: Math.min(Math.max(8, e.x), window.innerWidth -
|
|
45497
|
-
y: Math.min(Math.max(8, e.y), window.innerHeight -
|
|
45525
|
+
x: Math.min(Math.max(8, e.x), window.innerWidth - Q0 - 8),
|
|
45526
|
+
y: Math.min(Math.max(8, e.y), window.innerHeight - $0 - 8)
|
|
45498
45527
|
}), x = (e) => ({
|
|
45499
45528
|
x: Math.min(Math.max(8 - (te() - 80), e.x), window.innerWidth - 80),
|
|
45500
45529
|
y: Math.min(Math.max(0, e.y), window.innerHeight - 80)
|
|
45501
|
-
}), [S, C] = T(!1), [w, E] = T("cloud"), [k, ee] = T(!1), [te, A] = T(
|
|
45530
|
+
}), [S, C] = T(!1), [w, E] = T("cloud"), [k, ee] = T(!1), [te, A] = T(e2), ne = (e) => Math.min(n2, Math.max(t2, Math.min(e, window.innerWidth - 60)));
|
|
45502
45531
|
O(() => {
|
|
45503
45532
|
let e = document.documentElement, n = t() && S();
|
|
45504
45533
|
e.style.transition = "margin 0.2s ease", e.style.marginRight = n && r() === "right" ? `${te()}px` : "", e.style.marginLeft = n && r() === "left" ? `${te()}px` : "";
|
|
@@ -45606,7 +45635,7 @@ function n2(e) {
|
|
|
45606
45635
|
return !t();
|
|
45607
45636
|
},
|
|
45608
45637
|
get children() {
|
|
45609
|
-
var e =
|
|
45638
|
+
var e = V0(), t = e.firstChild;
|
|
45610
45639
|
return t.$$pointerdown = se, P(t, j(M, {
|
|
45611
45640
|
get when() {
|
|
45612
45641
|
return p() === "recording";
|
|
@@ -45614,14 +45643,14 @@ function n2(e) {
|
|
|
45614
45643
|
get fallback() {
|
|
45615
45644
|
return [
|
|
45616
45645
|
(() => {
|
|
45617
|
-
var e =
|
|
45646
|
+
var e = U0();
|
|
45618
45647
|
return e.$$click = () => {
|
|
45619
45648
|
oe || (f(!1), n(!0));
|
|
45620
|
-
}, P(e, j(
|
|
45649
|
+
}, P(e, j(N0, { size: 13 })), e;
|
|
45621
45650
|
})(),
|
|
45622
|
-
|
|
45651
|
+
W0(),
|
|
45623
45652
|
(() => {
|
|
45624
|
-
var e =
|
|
45653
|
+
var e = q0(), t = e.firstChild, n = t.nextSibling;
|
|
45625
45654
|
return e.$$click = () => {
|
|
45626
45655
|
oe || f((e) => !e);
|
|
45627
45656
|
}, P(n, (() => {
|
|
@@ -45632,8 +45661,8 @@ function n2(e) {
|
|
|
45632
45661
|
return $e(() => !k())() && u().length > 0;
|
|
45633
45662
|
},
|
|
45634
45663
|
get children() {
|
|
45635
|
-
return [
|
|
45636
|
-
var e =
|
|
45664
|
+
return [G0(), (() => {
|
|
45665
|
+
var e = K0(), t = e.firstChild;
|
|
45637
45666
|
return P(e, () => u().length, t), e;
|
|
45638
45667
|
})()];
|
|
45639
45668
|
}
|
|
@@ -45649,13 +45678,13 @@ function n2(e) {
|
|
|
45649
45678
|
},
|
|
45650
45679
|
get children() {
|
|
45651
45680
|
return [
|
|
45652
|
-
|
|
45681
|
+
I0(),
|
|
45653
45682
|
(() => {
|
|
45654
|
-
var e =
|
|
45683
|
+
var e = L0();
|
|
45655
45684
|
return P(e, () => _(h())), e;
|
|
45656
45685
|
})(),
|
|
45657
45686
|
(() => {
|
|
45658
|
-
var e =
|
|
45687
|
+
var e = R0();
|
|
45659
45688
|
return e.$$click = () => {
|
|
45660
45689
|
oe || QD();
|
|
45661
45690
|
}, e;
|
|
@@ -45667,17 +45696,17 @@ function n2(e) {
|
|
|
45667
45696
|
return d();
|
|
45668
45697
|
},
|
|
45669
45698
|
get children() {
|
|
45670
|
-
var e =
|
|
45699
|
+
var e = B0(), t = e.firstChild;
|
|
45671
45700
|
return P(e, j(M, {
|
|
45672
45701
|
get when() {
|
|
45673
45702
|
return u().length > 0;
|
|
45674
45703
|
},
|
|
45675
45704
|
get children() {
|
|
45676
|
-
return [
|
|
45705
|
+
return [z0(), j(We, {
|
|
45677
45706
|
get each() {
|
|
45678
45707
|
return u();
|
|
45679
45708
|
},
|
|
45680
|
-
children: (e) => j(
|
|
45709
|
+
children: (e) => j(i2, {
|
|
45681
45710
|
agent: e,
|
|
45682
45711
|
review: !0,
|
|
45683
45712
|
onOpen: le
|
|
@@ -45689,14 +45718,14 @@ function n2(e) {
|
|
|
45689
45718
|
return l().length > 0;
|
|
45690
45719
|
},
|
|
45691
45720
|
get fallback() {
|
|
45692
|
-
return
|
|
45721
|
+
return J0();
|
|
45693
45722
|
},
|
|
45694
45723
|
get children() {
|
|
45695
45724
|
return j(We, {
|
|
45696
45725
|
get each() {
|
|
45697
45726
|
return l();
|
|
45698
45727
|
},
|
|
45699
|
-
children: (e) => j(
|
|
45728
|
+
children: (e) => j(i2, {
|
|
45700
45729
|
agent: e,
|
|
45701
45730
|
onOpen: le
|
|
45702
45731
|
})
|
|
@@ -45717,8 +45746,8 @@ function n2(e) {
|
|
|
45717
45746
|
return t();
|
|
45718
45747
|
},
|
|
45719
45748
|
get children() {
|
|
45720
|
-
var e =
|
|
45721
|
-
return t.$$pointerdown = ue, P(e, j(
|
|
45749
|
+
var e = H0(), t = e.firstChild;
|
|
45750
|
+
return t.$$pointerdown = ue, P(e, j(P0, {
|
|
45722
45751
|
onGrab: () => n(!0),
|
|
45723
45752
|
onClose: () => n(!1),
|
|
45724
45753
|
get onHeaderPointerDown() {
|
|
@@ -45746,19 +45775,19 @@ function n2(e) {
|
|
|
45746
45775
|
}
|
|
45747
45776
|
})];
|
|
45748
45777
|
}
|
|
45749
|
-
function
|
|
45778
|
+
function i2(e) {
|
|
45750
45779
|
return (() => {
|
|
45751
|
-
var t =
|
|
45780
|
+
var t = Y0(), n = t.firstChild, r = n.firstChild, i = r.nextSibling, a = i.nextSibling, o = n.nextSibling, s = o.firstChild, c = s.nextSibling;
|
|
45752
45781
|
return c.nextSibling, t.$$click = () => e.onOpen(e.agent.id), P(i, () => e.agent.identifier), P(a, () => e.agent.title), P(o, (() => {
|
|
45753
45782
|
var t = $e(() => !!e.review);
|
|
45754
45783
|
return () => t() ? "PR ready · needs review" : e.agent.stateName;
|
|
45755
|
-
})(), s), P(o, () => e.agent.delegateName, c), P(o, () =>
|
|
45784
|
+
})(), s), P(o, () => e.agent.delegateName, c), P(o, () => a2(e.agent.updatedAt), null), D((t) => dt(r, "background", e.review ? "var(--color-warn)" : e.agent.stateColor)), t;
|
|
45756
45785
|
})();
|
|
45757
45786
|
}
|
|
45758
|
-
function
|
|
45787
|
+
function a2(e) {
|
|
45759
45788
|
let t = Math.max(0, Math.floor((Date.now() - Date.parse(e)) / 1e3));
|
|
45760
45789
|
return t < 60 ? "now" : t < 3600 ? `${Math.floor(t / 60)}m` : t < 86400 ? `${Math.floor(t / 3600)}h` : `${Math.floor(t / 86400)}d`;
|
|
45761
45790
|
}
|
|
45762
45791
|
rt(["pointerdown", "click"]);
|
|
45763
45792
|
//#endregion
|
|
45764
|
-
export {
|
|
45793
|
+
export { X0 as init };
|