linear-grab 0.22.0 → 0.22.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.global.js +5 -5
- package/dist/linear-grab.js +354 -259
- package/package.json +1 -1
package/dist/linear-grab.js
CHANGED
|
@@ -45784,7 +45784,30 @@ async function e2(e) {
|
|
|
45784
45784
|
states: []
|
|
45785
45785
|
};
|
|
45786
45786
|
}
|
|
45787
|
-
|
|
45787
|
+
var t2 = {
|
|
45788
|
+
active: !1,
|
|
45789
|
+
msLeft: 0,
|
|
45790
|
+
total: 0,
|
|
45791
|
+
byTrigger: {}
|
|
45792
|
+
}, n2 = /* @__PURE__ */ new Set();
|
|
45793
|
+
function r2(e) {
|
|
45794
|
+
t2 = {
|
|
45795
|
+
...t2,
|
|
45796
|
+
...e
|
|
45797
|
+
};
|
|
45798
|
+
for (let e of n2) e(t2);
|
|
45799
|
+
}
|
|
45800
|
+
function i2(e) {
|
|
45801
|
+
return n2.add(e), e(t2), () => void n2.delete(e);
|
|
45802
|
+
}
|
|
45803
|
+
var a2 = null;
|
|
45804
|
+
function o2() {
|
|
45805
|
+
a2?.();
|
|
45806
|
+
}
|
|
45807
|
+
function s2(e) {
|
|
45808
|
+
return e === "hover" || e === "focus" ? e : "open";
|
|
45809
|
+
}
|
|
45810
|
+
async function c2(e, t, n) {
|
|
45788
45811
|
let r = q0(), i = await X0(), a = [], o = /* @__PURE__ */ new Set(), s = /* @__PURE__ */ new Map(), c = (e) => Q0(e, r).styles, l = (e) => {
|
|
45789
45812
|
if (!(s.size >= 120)) {
|
|
45790
45813
|
s.set(e, c(e));
|
|
@@ -45805,24 +45828,33 @@ async function t2(e, t, n) {
|
|
|
45805
45828
|
}
|
|
45806
45829
|
if (Object.keys(l).length === 0) return;
|
|
45807
45830
|
let u = Z0(e, i), d = `${t}|${u}|${Object.keys(l).join(",")}`;
|
|
45808
|
-
|
|
45831
|
+
if (o.has(d)) return;
|
|
45832
|
+
o.add(d), a.push({
|
|
45809
45833
|
trigger: t,
|
|
45810
45834
|
label: u,
|
|
45811
45835
|
changed: l
|
|
45812
|
-
})
|
|
45836
|
+
});
|
|
45837
|
+
let f = s2(t);
|
|
45838
|
+
r2({
|
|
45839
|
+
total: t2.total + 1,
|
|
45840
|
+
byTrigger: {
|
|
45841
|
+
...t2.byTrigger,
|
|
45842
|
+
[f]: (t2.byTrigger[f] ?? 0) + 1
|
|
45843
|
+
}
|
|
45844
|
+
});
|
|
45813
45845
|
}, d = (e) => {
|
|
45814
45846
|
let t = e.target;
|
|
45815
|
-
t instanceof Element && s.has(t) &&
|
|
45847
|
+
t instanceof Element && s.has(t) && setTimeout(() => u(t, "hover"), 50);
|
|
45816
45848
|
}, f = (e) => {
|
|
45817
45849
|
let t = e.target;
|
|
45818
|
-
t instanceof Element && s.has(t) &&
|
|
45850
|
+
t instanceof Element && s.has(t) && setTimeout(() => u(t, "focus"), 50);
|
|
45819
45851
|
};
|
|
45820
45852
|
e.addEventListener("pointerover", d, !0), e.addEventListener("focusin", f, !0);
|
|
45821
45853
|
let p = new MutationObserver((e) => {
|
|
45822
45854
|
for (let t of e) {
|
|
45823
45855
|
if (t.type !== "attributes" || !(t.target instanceof Element)) continue;
|
|
45824
45856
|
let e = t.target, n = t.attributeName ?? "", r = e.getAttribute(n) ?? "";
|
|
45825
|
-
|
|
45857
|
+
setTimeout(() => u(e, `attr:${n}=${r || "true"}`), 50);
|
|
45826
45858
|
}
|
|
45827
45859
|
});
|
|
45828
45860
|
p.observe(e, {
|
|
@@ -45838,7 +45870,7 @@ async function t2(e, t, n) {
|
|
|
45838
45870
|
]
|
|
45839
45871
|
});
|
|
45840
45872
|
let m = new MutationObserver((t) => {
|
|
45841
|
-
for (let n of t) for (let t of Array.from(n.addedNodes)) !(t instanceof Element) || e.contains(t) || t.id === "linear-grab-root" || t.closest?.("#linear-grab-root") ||
|
|
45873
|
+
for (let n of t) for (let t of Array.from(n.addedNodes)) !(t instanceof Element) || e.contains(t) || t.id === "linear-grab-root" || t.closest?.("#linear-grab-root") || setTimeout(() => {
|
|
45842
45874
|
if (!t.isConnected || !J0(t)) return;
|
|
45843
45875
|
let { styles: e } = Q0(t, r);
|
|
45844
45876
|
if (Object.keys(e).length === 0) return;
|
|
@@ -45854,20 +45886,39 @@ async function t2(e, t, n) {
|
|
|
45854
45886
|
trigger: "appeared (portal/open)",
|
|
45855
45887
|
label: n,
|
|
45856
45888
|
changed: c
|
|
45889
|
+
}), r2({
|
|
45890
|
+
total: t2.total + 1,
|
|
45891
|
+
byTrigger: {
|
|
45892
|
+
...t2.byTrigger,
|
|
45893
|
+
open: (t2.byTrigger.open ?? 0) + 1
|
|
45894
|
+
}
|
|
45857
45895
|
});
|
|
45858
|
-
});
|
|
45896
|
+
}, 50);
|
|
45859
45897
|
});
|
|
45860
45898
|
m.observe(document.body, {
|
|
45861
45899
|
childList: !0,
|
|
45862
45900
|
subtree: !1
|
|
45901
|
+
}), r2({
|
|
45902
|
+
active: !0,
|
|
45903
|
+
msLeft: t,
|
|
45904
|
+
total: 0,
|
|
45905
|
+
byTrigger: {}
|
|
45863
45906
|
});
|
|
45864
45907
|
let h = setInterval(() => {
|
|
45865
45908
|
let e = t - (Date.now() - g);
|
|
45866
|
-
n?.(Math.max(0, e));
|
|
45909
|
+
n?.(Math.max(0, e)), r2({ msLeft: Math.max(0, e) });
|
|
45867
45910
|
}, 250), g = Date.now();
|
|
45868
|
-
return await new Promise((e) =>
|
|
45911
|
+
return await new Promise((e) => {
|
|
45912
|
+
let n = setTimeout(e, t);
|
|
45913
|
+
a2 = () => {
|
|
45914
|
+
clearTimeout(n), e();
|
|
45915
|
+
};
|
|
45916
|
+
}), a2 = null, r2({
|
|
45917
|
+
active: !1,
|
|
45918
|
+
msLeft: 0
|
|
45919
|
+
}), clearInterval(h), e.removeEventListener("pointerover", d, !0), e.removeEventListener("focusin", f, !0), p.disconnect(), m.disconnect(), a;
|
|
45869
45920
|
}
|
|
45870
|
-
function
|
|
45921
|
+
function l2(e) {
|
|
45871
45922
|
let t = [
|
|
45872
45923
|
`# Design genome: ${e.title}`,
|
|
45873
45924
|
`Extracted from ${e.pageUrl}`,
|
|
@@ -45888,7 +45939,7 @@ function n2(e) {
|
|
|
45888
45939
|
}
|
|
45889
45940
|
return t.join("\n");
|
|
45890
45941
|
}
|
|
45891
|
-
function
|
|
45942
|
+
function u2() {
|
|
45892
45943
|
return new Promise((e) => {
|
|
45893
45944
|
let t = document.createElement("div");
|
|
45894
45945
|
t.style.cssText = "position:fixed;z-index:2147483647;pointer-events:none;border:1.5px solid #5e6ad2;border-radius:4px;background:rgba(94,106,210,0.08);display:none;", document.body.appendChild(t);
|
|
@@ -45915,47 +45966,47 @@ function r2() {
|
|
|
45915
45966
|
}
|
|
45916
45967
|
//#endregion
|
|
45917
45968
|
//#region src/panel/views/DesignView.tsx
|
|
45918
|
-
var
|
|
45919
|
-
function
|
|
45969
|
+
var d2 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[7ch] text-center\">Extract"), f2 = /*#__PURE__*/ N("<div class=\"relative flex flex-col gap-2 pl-4\"><div class=\"bg-border absolute top-1 bottom-1 left-[5px] w-px\"aria-hidden>"), p2 = /*#__PURE__*/ N("<div class=\"flex h-full flex-col gap-3 overflow-y-auto pt-3 pb-4 pr-3 pl-2\"><div class=\"flex items-center justify-between gap-2 px-1\"><div class=min-w-0><p class=\"text-text text-[12.5px] font-semibold\">Design genomes</p><p class=\"text-text-faint text-[10.5px] leading-snug\">Point at a component → get its structure, tokens and interaction states as a spec you can hand to an agent."), m2 = /*#__PURE__*/ N("<p class=\"text-text mt-1 text-[11px] font-semibold\">Interaction states"), h2 = /*#__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=2 fill=currentColor stroke=none>"), g2 = /*#__PURE__*/ N("<span class=\"text-success text-[12px] leading-none\">✓"), _2 = /*#__PURE__*/ N("<svg width=12 height=12 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round aria-hidden><path d=\"M4 4l8 8M12 4l-8 8\">"), v2 = /*#__PURE__*/ N("<div class=\"border-border flex flex-col gap-2 border-t px-2.5 py-2\"><p class=\"text-text-faint truncate text-[10px]\"></p><div class=\"flex max-h-64 flex-col gap-2 overflow-y-auto pr-2\"></div><div class=\"flex items-center gap-1\">"), y2 = /*#__PURE__*/ N("<div class=relative><span class=\"border-border bg-surface absolute top-3 -left-[13.5px] size-[9px] rounded-full border\"aria-hidden></span><div class=\"bg-surface border-border flex flex-col rounded-lg border\"><button class=\"flex w-full cursor-pointer items-center gap-2 px-2.5 py-2 text-left\"><span class=\"text-accent min-w-0 truncate font-mono text-[12px]\"></span><span class=\"text-text-faint ml-auto shrink-0 text-[10.5px] tabular-nums\"> roles<!> · </span><svg width=10 height=10 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 class=\"text-text-faint shrink-0 transition-transform\"aria-hidden><path d=\"m4 6 4 4 4-4\">"), b2 = /*#__PURE__*/ N("<span class=text-text-faint> ×"), x2 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-0.5\"><p class=\"text-text text-[11px] font-medium\">"), S2 = /*#__PURE__*/ N("<span class=text-accent> ← var(<!>)"), C2 = /*#__PURE__*/ N("<p class=\"text-text-dim font-mono text-[10px] leading-snug break-all\">: "), w2 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-0.5\"><p class=\"text-warn text-[10.5px] font-medium\"> — "), T2 = /*#__PURE__*/ N("<p class=\"text-text-dim font-mono text-[10px] leading-snug break-all\">: <!> → "), E2 = /*#__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\">"), D2 = "linear-grab:genomes:v1", O2 = 30;
|
|
45970
|
+
function k2() {
|
|
45920
45971
|
try {
|
|
45921
|
-
return JSON.parse(localStorage.getItem(
|
|
45972
|
+
return JSON.parse(localStorage.getItem(D2) ?? "[]");
|
|
45922
45973
|
} catch {
|
|
45923
45974
|
return [];
|
|
45924
45975
|
}
|
|
45925
45976
|
}
|
|
45926
|
-
function
|
|
45977
|
+
function A2(e) {
|
|
45927
45978
|
try {
|
|
45928
|
-
localStorage.setItem(
|
|
45979
|
+
localStorage.setItem(D2, JSON.stringify(e.slice(0, O2)));
|
|
45929
45980
|
} catch {}
|
|
45930
45981
|
}
|
|
45931
|
-
var
|
|
45932
|
-
function
|
|
45933
|
-
let [e, t] = T(
|
|
45934
|
-
t(e),
|
|
45982
|
+
var j2 = /* @__PURE__ */ new Map();
|
|
45983
|
+
function M2() {
|
|
45984
|
+
let [e, t] = T(k2()), [n, r] = T(null), [i, a] = T(null), [o, s] = T(null), [c, l] = T(null), [u, d] = T(null), f = (e) => {
|
|
45985
|
+
t(e), A2(e);
|
|
45935
45986
|
}, p = async () => {
|
|
45936
45987
|
l(null), a("extract"), window.dispatchEvent(new CustomEvent(BZ));
|
|
45937
45988
|
try {
|
|
45938
|
-
let t = await
|
|
45989
|
+
let t = await u2();
|
|
45939
45990
|
if (!t) return;
|
|
45940
45991
|
let n = await e2(t), i = Date.now();
|
|
45941
|
-
|
|
45992
|
+
j2.set(i, new WeakRef(t)), f([{
|
|
45942
45993
|
id: i,
|
|
45943
45994
|
genome: n
|
|
45944
45995
|
}, ...e()]), r(i);
|
|
45945
45996
|
} catch (e) {
|
|
45946
45997
|
l(e instanceof Error ? e.message : String(e));
|
|
45947
45998
|
} finally {
|
|
45948
|
-
a(null), window.dispatchEvent(new CustomEvent(VZ));
|
|
45999
|
+
a(null), oj("design"), window.dispatchEvent(new CustomEvent(VZ));
|
|
45949
46000
|
}
|
|
45950
46001
|
}, m = async (t) => {
|
|
45951
46002
|
l(null), a(t.id), window.dispatchEvent(new CustomEvent(BZ));
|
|
45952
46003
|
try {
|
|
45953
|
-
let n =
|
|
46004
|
+
let n = j2.get(t.id)?.deref() ?? null;
|
|
45954
46005
|
if (!n || !n.isConnected) {
|
|
45955
|
-
if (n = await
|
|
45956
|
-
|
|
46006
|
+
if (n = await u2(), !n) return;
|
|
46007
|
+
j2.set(t.id, new WeakRef(n));
|
|
45957
46008
|
}
|
|
45958
|
-
let r = await
|
|
46009
|
+
let r = await c2(n, 8e3, (e) => s(Math.ceil(e / 1e3)));
|
|
45959
46010
|
r.length === 0 && l("No state changes captured — hover/open the component while the 8s window runs."), f(e().map((e) => e.id === t.id ? {
|
|
45960
46011
|
...e,
|
|
45961
46012
|
genome: {
|
|
@@ -45966,19 +46017,19 @@ function C2() {
|
|
|
45966
46017
|
} catch (e) {
|
|
45967
46018
|
l(e instanceof Error ? e.message : String(e));
|
|
45968
46019
|
} finally {
|
|
45969
|
-
a(null), s(null), window.dispatchEvent(new CustomEvent(VZ));
|
|
46020
|
+
a(null), s(null), oj("design"), window.dispatchEvent(new CustomEvent(VZ));
|
|
45970
46021
|
}
|
|
45971
46022
|
}, h = async (e) => {
|
|
45972
46023
|
try {
|
|
45973
|
-
await navigator.clipboard.writeText(
|
|
46024
|
+
await navigator.clipboard.writeText(l2(e.genome)), d(e.id), setTimeout(() => d(null), 1600);
|
|
45974
46025
|
} catch {
|
|
45975
46026
|
l("Clipboard was blocked — click Copy again.");
|
|
45976
46027
|
}
|
|
45977
46028
|
}, g = (t) => {
|
|
45978
|
-
|
|
46029
|
+
j2.delete(t), f(e().filter((e) => e.id !== t));
|
|
45979
46030
|
};
|
|
45980
46031
|
return (() => {
|
|
45981
|
-
var t =
|
|
46032
|
+
var t = p2(), a = t.firstChild;
|
|
45982
46033
|
return a.firstChild, P(a, j(kj, {
|
|
45983
46034
|
variant: "primary",
|
|
45984
46035
|
class: "h-7 shrink-0 px-2.5 text-[11.5px]",
|
|
@@ -45987,15 +46038,7 @@ function C2() {
|
|
|
45987
46038
|
},
|
|
45988
46039
|
onClick: () => void p(),
|
|
45989
46040
|
get children() {
|
|
45990
|
-
return
|
|
45991
|
-
}
|
|
45992
|
-
}), null), P(t, j(M, {
|
|
45993
|
-
get when() {
|
|
45994
|
-
return o() !== null;
|
|
45995
|
-
},
|
|
45996
|
-
get children() {
|
|
45997
|
-
var e = a2(), t = e.firstChild.nextSibling, n = t.firstChild;
|
|
45998
|
-
return P(t, o, n), e;
|
|
46041
|
+
return d2();
|
|
45999
46042
|
}
|
|
46000
46043
|
}), null), P(t, j(M, {
|
|
46001
46044
|
get when() {
|
|
@@ -46017,7 +46060,7 @@ function C2() {
|
|
|
46017
46060
|
});
|
|
46018
46061
|
},
|
|
46019
46062
|
get children() {
|
|
46020
|
-
var t =
|
|
46063
|
+
var t = f2();
|
|
46021
46064
|
return t.firstChild, P(t, j(We, {
|
|
46022
46065
|
get each() {
|
|
46023
46066
|
return e();
|
|
@@ -46025,7 +46068,7 @@ function C2() {
|
|
|
46025
46068
|
children: (e) => {
|
|
46026
46069
|
let t = () => n() === e.id;
|
|
46027
46070
|
return (() => {
|
|
46028
|
-
var n =
|
|
46071
|
+
var n = y2(), a = n.firstChild, o = a.nextSibling, s = o.firstChild, c = s.firstChild, l = c.nextSibling, d = l.firstChild, f = d.nextSibling;
|
|
46029
46072
|
f.nextSibling;
|
|
46030
46073
|
var p = l.nextSibling;
|
|
46031
46074
|
return s.$$click = () => r(t() ? null : e.id), P(c, () => e.genome.title), P(l, () => e.genome.nodes.length, d), P(l, (() => {
|
|
@@ -46036,19 +46079,19 @@ function C2() {
|
|
|
46036
46079
|
return t();
|
|
46037
46080
|
},
|
|
46038
46081
|
get children() {
|
|
46039
|
-
var t =
|
|
46082
|
+
var t = v2(), n = t.firstChild, r = n.nextSibling, a = r.nextSibling;
|
|
46040
46083
|
return P(n, () => e.genome.pageUrl), P(r, j(We, {
|
|
46041
46084
|
get each() {
|
|
46042
46085
|
return e.genome.nodes;
|
|
46043
46086
|
},
|
|
46044
46087
|
children: (e) => (() => {
|
|
46045
|
-
var t =
|
|
46088
|
+
var t = x2(), n = t.firstChild;
|
|
46046
46089
|
return P(n, () => e.label, null), P(n, j(M, {
|
|
46047
46090
|
get when() {
|
|
46048
46091
|
return e.count > 1;
|
|
46049
46092
|
},
|
|
46050
46093
|
get children() {
|
|
46051
|
-
var t =
|
|
46094
|
+
var t = b2();
|
|
46052
46095
|
return t.firstChild, P(t, () => e.count, null), t;
|
|
46053
46096
|
}
|
|
46054
46097
|
}), null), P(t, j(We, {
|
|
@@ -46056,13 +46099,13 @@ function C2() {
|
|
|
46056
46099
|
return Object.entries(e.styles);
|
|
46057
46100
|
},
|
|
46058
46101
|
children: ([t, n]) => (() => {
|
|
46059
|
-
var r =
|
|
46102
|
+
var r = C2(), i = r.firstChild;
|
|
46060
46103
|
return P(r, t, i), P(r, n, null), P(r, j(M, {
|
|
46061
46104
|
get when() {
|
|
46062
46105
|
return e.tokens[t];
|
|
46063
46106
|
},
|
|
46064
46107
|
get children() {
|
|
46065
|
-
var n =
|
|
46108
|
+
var n = S2(), r = n.firstChild.nextSibling;
|
|
46066
46109
|
return r.nextSibling, P(n, () => e.tokens[t], r), n;
|
|
46067
46110
|
}
|
|
46068
46111
|
}), null), r;
|
|
@@ -46074,18 +46117,18 @@ function C2() {
|
|
|
46074
46117
|
return e.genome.states.length > 0;
|
|
46075
46118
|
},
|
|
46076
46119
|
get children() {
|
|
46077
|
-
return [
|
|
46120
|
+
return [m2(), j(We, {
|
|
46078
46121
|
get each() {
|
|
46079
46122
|
return e.genome.states;
|
|
46080
46123
|
},
|
|
46081
46124
|
children: (e) => (() => {
|
|
46082
|
-
var t =
|
|
46125
|
+
var t = w2(), n = t.firstChild, r = n.firstChild;
|
|
46083
46126
|
return P(n, () => e.label, r), P(n, () => e.trigger, null), P(t, j(We, {
|
|
46084
46127
|
get each() {
|
|
46085
46128
|
return Object.entries(e.changed);
|
|
46086
46129
|
},
|
|
46087
46130
|
children: ([e, t]) => (() => {
|
|
46088
|
-
var n =
|
|
46131
|
+
var n = T2(), r = n.firstChild, i = r.nextSibling;
|
|
46089
46132
|
return i.nextSibling, P(n, e, r), P(n, () => t.from, i), P(n, () => t.to, null), n;
|
|
46090
46133
|
})()
|
|
46091
46134
|
}), null), t;
|
|
@@ -46093,28 +46136,47 @@ function C2() {
|
|
|
46093
46136
|
})];
|
|
46094
46137
|
}
|
|
46095
46138
|
}), null), P(a, j(kj, {
|
|
46096
|
-
class: "
|
|
46139
|
+
class: "size-7 px-0",
|
|
46097
46140
|
variant: "ghost",
|
|
46098
46141
|
get loading() {
|
|
46099
46142
|
return i() === e.id;
|
|
46100
46143
|
},
|
|
46101
|
-
title: "
|
|
46144
|
+
title: "Capture states — records hover/focus/open styles for 8s while you interact; the pill shows the timer and Stop",
|
|
46145
|
+
"aria-label": "Capture interaction states",
|
|
46102
46146
|
onClick: () => void m(e),
|
|
46103
|
-
children
|
|
46147
|
+
get children() {
|
|
46148
|
+
return h2();
|
|
46149
|
+
}
|
|
46104
46150
|
}), null), P(a, j(kj, {
|
|
46105
|
-
class: "
|
|
46151
|
+
class: "size-7 px-0",
|
|
46106
46152
|
variant: "ghost",
|
|
46107
|
-
title
|
|
46153
|
+
get title() {
|
|
46154
|
+
return u() === e.id ? "Copied!" : "Copy spec — markdown for an agent or issue";
|
|
46155
|
+
},
|
|
46156
|
+
"aria-label": "Copy genome spec",
|
|
46108
46157
|
onClick: () => void h(e),
|
|
46109
46158
|
get children() {
|
|
46110
|
-
|
|
46111
|
-
|
|
46159
|
+
return j(M, {
|
|
46160
|
+
get when() {
|
|
46161
|
+
return u() === e.id;
|
|
46162
|
+
},
|
|
46163
|
+
get fallback() {
|
|
46164
|
+
return E2();
|
|
46165
|
+
},
|
|
46166
|
+
get children() {
|
|
46167
|
+
return g2();
|
|
46168
|
+
}
|
|
46169
|
+
});
|
|
46112
46170
|
}
|
|
46113
46171
|
}), null), P(a, j(kj, {
|
|
46114
|
-
class: "text-danger ml-auto
|
|
46172
|
+
class: "text-danger ml-auto size-7 px-0",
|
|
46115
46173
|
variant: "ghost",
|
|
46174
|
+
title: "Delete this genome",
|
|
46175
|
+
"aria-label": "Delete genome",
|
|
46116
46176
|
onClick: () => g(e.id),
|
|
46117
|
-
children
|
|
46177
|
+
get children() {
|
|
46178
|
+
return _2();
|
|
46179
|
+
}
|
|
46118
46180
|
}), null), t;
|
|
46119
46181
|
}
|
|
46120
46182
|
}), null), D((e) => {
|
|
@@ -46134,7 +46196,7 @@ function C2() {
|
|
|
46134
46196
|
rt(["click"]);
|
|
46135
46197
|
//#endregion
|
|
46136
46198
|
//#region src/lib/projectConfig.ts
|
|
46137
|
-
var
|
|
46199
|
+
var N2 = [
|
|
46138
46200
|
"defaultTeamId",
|
|
46139
46201
|
"defaultProjectId",
|
|
46140
46202
|
"defaultLabelIds",
|
|
@@ -46149,29 +46211,29 @@ var w2 = [
|
|
|
46149
46211
|
"issueTemplate",
|
|
46150
46212
|
"testUsername"
|
|
46151
46213
|
];
|
|
46152
|
-
function
|
|
46214
|
+
function P2(e) {
|
|
46153
46215
|
let t = {};
|
|
46154
|
-
for (let n of
|
|
46216
|
+
for (let n of N2) {
|
|
46155
46217
|
let r = e[n];
|
|
46156
46218
|
r !== void 0 && r !== "" && !(Array.isArray(r) && r.length === 0) && (t[n] = r);
|
|
46157
46219
|
}
|
|
46158
46220
|
return t;
|
|
46159
46221
|
}
|
|
46160
|
-
function
|
|
46222
|
+
function F2(e, t) {
|
|
46161
46223
|
let n = {};
|
|
46162
|
-
for (let r of
|
|
46224
|
+
for (let r of N2) e[r] === void 0 && t[r] !== void 0 && (n[r] = t[r]);
|
|
46163
46225
|
return Object.keys(n).length ? n : null;
|
|
46164
46226
|
}
|
|
46165
46227
|
//#endregion
|
|
46166
46228
|
//#region src/lib/linear/auth.ts
|
|
46167
46229
|
Br();
|
|
46168
|
-
function
|
|
46230
|
+
function I2(e) {
|
|
46169
46231
|
let t = "";
|
|
46170
46232
|
for (let n of e) t += String.fromCharCode(n);
|
|
46171
46233
|
return btoa(t).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
|
|
46172
46234
|
}
|
|
46173
|
-
async function
|
|
46174
|
-
let t =
|
|
46235
|
+
async function L2(e) {
|
|
46236
|
+
let t = I2(crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(32))), n = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(t)), r = I2(new Uint8Array(n)), i = I2(crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(16))), a = chrome.identity.getRedirectURL(), o = new URL("https://linear.app/oauth/authorize");
|
|
46175
46237
|
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");
|
|
46176
46238
|
let s = await chrome.identity.launchWebAuthFlow({
|
|
46177
46239
|
url: o.toString(),
|
|
@@ -46199,15 +46261,15 @@ async function O2(e) {
|
|
|
46199
46261
|
linearOauthClientId: e
|
|
46200
46262
|
});
|
|
46201
46263
|
}
|
|
46202
|
-
async function
|
|
46264
|
+
async function R2() {
|
|
46203
46265
|
await Er({
|
|
46204
46266
|
linearAccessToken: void 0,
|
|
46205
46267
|
linearApiKey: void 0
|
|
46206
46268
|
});
|
|
46207
46269
|
}
|
|
46208
46270
|
Br(), Sr(), Fx(), gD();
|
|
46209
|
-
var
|
|
46210
|
-
function
|
|
46271
|
+
var z2 = /*#__PURE__*/ N("<div class=\"bg-surface-2 border-border flex rounded-md border p-0.5\">"), B2 = /*#__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."), V2 = /*#__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"), H2 = /*#__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)."), U2 = /*#__PURE__*/ N("<span class=text-text>Connected as <span class=font-medium></span> · <span class=text-text-dim>"), W2 = /*#__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]\">"), G2 = /*#__PURE__*/ N("<option value>Select a team…"), K2 = /*#__PURE__*/ N("<option value>No project"), q2 = /*#__PURE__*/ N("<div class=\"flex flex-wrap gap-1\">"), J2 = /*#__PURE__*/ N("<label class=\"flex items-start gap-2\"><input type=checkbox class=\"accent-accent mt-0.5\"><span class=\"flex flex-col gap-0.5\"><span class=text-[12px]>Let agents close out Linear themselves</span><span class=\"text-text-faint text-[10.5px] leading-snug\">Embeds your Linear API key + raw GraphQL closeout recipes in every issue's Agent instructions — cloud agent VMs have no authenticated Linear MCP, so without this they can't comment, attach media, or move the issue. The key is visible to anyone who can read the issue."), Y2 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">No agents found — install the Cursor integration in Linear first."), X2 = /*#__PURE__*/ N("<span class=\"text-text-faint text-[10.5px] leading-snug\">Empty = the default above (computer-use testing, video demo, PR + review babysitting)."), Z2 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1.5\">"), Q2 = /*#__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."), $2 = /*#__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."), e4 = /*#__PURE__*/ N("<p class=\"text-text-faint text-[10.5px] leading-snug\">A committed <code>.lineargrab.json</code> at the repo root (where the bridge runs) shares team/project/labels, skills, staging branch, and workflow defaults with every machine and teammate — it seeds any setting you haven't set locally. Secrets never belong in it."), t4 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[10ch] text-center\">"), n4 = /*#__PURE__*/ N("<div class=\"flex items-center gap-2\">"), r4 = /*#__PURE__*/ N("<option value>Select a channel…"), i4 = /*#__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"), a4 = /*#__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."), o4 = /*#__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"), s4 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">"), c4 = /*#__PURE__*/ N("<div class=min-h-[2lh]>"), l4 = /*#__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."), u4 = /*#__PURE__*/ N("<div class=\"flex h-full flex-col gap-5 overflow-y-auto pt-3 pb-6 pl-3 pr-4\">"), d4 = /*#__PURE__*/ N("<button>"), f4 = /*#__PURE__*/ N("<div class=\"flex gap-1.5\">"), p4 = /*#__PURE__*/ N("<p class=\"text-text-faint text-center text-[10.5px]\">or"), m4 = /*#__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\">"), h4 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-3\">"), g4 = /*#__PURE__*/ N("<span class=text-text-dim>Connected — verifying…"), _4 = /*#__PURE__*/ N("<option> (<!>)"), v4 = /*#__PURE__*/ N("<option>"), y4 = /*#__PURE__*/ N("<button type=button><span class=\"mr-1 inline-block size-2 rounded-full align-middle\">"), b4 = /*#__PURE__*/ N("<option value>Select the agent…"), x4 = /*#__PURE__*/ N("<option>#"), S4 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">No key set — AI drafting disabled, manual drafting still works.");
|
|
46272
|
+
function C4() {
|
|
46211
46273
|
let e = sr(), t = _r(() => ({
|
|
46212
46274
|
queryKey: ["settings"],
|
|
46213
46275
|
queryFn: Tr,
|
|
@@ -46235,13 +46297,13 @@ function m4() {
|
|
|
46235
46297
|
retry: 0
|
|
46236
46298
|
})), [l, u] = T(!1), d = async () => {
|
|
46237
46299
|
try {
|
|
46238
|
-
await navigator.clipboard.writeText(JSON.stringify(
|
|
46300
|
+
await navigator.clipboard.writeText(JSON.stringify(P2(n()), null, 2) + "\n"), u(!0), setTimeout(() => u(!1), 1800);
|
|
46239
46301
|
} catch {}
|
|
46240
46302
|
}, f = () => {
|
|
46241
46303
|
let e = c.data?.projectConfig;
|
|
46242
46304
|
if (!e) return;
|
|
46243
46305
|
let t = {};
|
|
46244
|
-
for (let n of
|
|
46306
|
+
for (let n of N2) e[n] !== void 0 && (t[n] = e[n]);
|
|
46245
46307
|
r(t);
|
|
46246
46308
|
}, p = _r(() => ({
|
|
46247
46309
|
queryKey: ["linear-labels"],
|
|
@@ -46274,7 +46336,7 @@ function m4() {
|
|
|
46274
46336
|
}
|
|
46275
46337
|
E(!0), ee("");
|
|
46276
46338
|
try {
|
|
46277
|
-
await
|
|
46339
|
+
await L2(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"] });
|
|
46278
46340
|
} catch (e) {
|
|
46279
46341
|
ee(e instanceof Error ? e.message : "OAuth flow failed.");
|
|
46280
46342
|
} finally {
|
|
@@ -46285,7 +46347,7 @@ function m4() {
|
|
|
46285
46347
|
async function re() {
|
|
46286
46348
|
ne(!0);
|
|
46287
46349
|
try {
|
|
46288
|
-
await
|
|
46350
|
+
await R2(), 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"] });
|
|
46289
46351
|
} finally {
|
|
46290
46352
|
ne(!1);
|
|
46291
46353
|
}
|
|
@@ -46301,12 +46363,12 @@ function m4() {
|
|
|
46301
46363
|
return e ? `Drafting with ${e} — ${Nx[e].fast} (fast) / ${Nx[e].best} (best)` : null;
|
|
46302
46364
|
});
|
|
46303
46365
|
return (() => {
|
|
46304
|
-
var e =
|
|
46366
|
+
var e = u4();
|
|
46305
46367
|
return P(e, j(Rj, {
|
|
46306
46368
|
title: "Workflow",
|
|
46307
46369
|
get children() {
|
|
46308
46370
|
return [(() => {
|
|
46309
|
-
var e =
|
|
46371
|
+
var e = z2();
|
|
46310
46372
|
return P(e, j(We, {
|
|
46311
46373
|
each: [{
|
|
46312
46374
|
id: "cloud",
|
|
@@ -46316,19 +46378,19 @@ function m4() {
|
|
|
46316
46378
|
label: "Local · clipboard"
|
|
46317
46379
|
}],
|
|
46318
46380
|
children: (e) => (() => {
|
|
46319
|
-
var t =
|
|
46381
|
+
var t = d4();
|
|
46320
46382
|
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;
|
|
46321
46383
|
})()
|
|
46322
46384
|
})), e;
|
|
46323
|
-
})(),
|
|
46385
|
+
})(), B2()];
|
|
46324
46386
|
}
|
|
46325
46387
|
}), null), P(e, j(Rj, {
|
|
46326
46388
|
title: "Capture",
|
|
46327
46389
|
get children() {
|
|
46328
46390
|
return [(() => {
|
|
46329
|
-
var e =
|
|
46391
|
+
var e = V2(), t = e.firstChild;
|
|
46330
46392
|
return t.addEventListener("change", (e) => void r({ captureShots: e.currentTarget.checked || void 0 })), D(() => t.checked = !!n().captureShots), e;
|
|
46331
|
-
})(),
|
|
46393
|
+
})(), H2()];
|
|
46332
46394
|
}
|
|
46333
46395
|
}), null), P(e, j(Rj, {
|
|
46334
46396
|
title: "Linear",
|
|
@@ -46339,13 +46401,13 @@ function m4() {
|
|
|
46339
46401
|
},
|
|
46340
46402
|
get fallback() {
|
|
46341
46403
|
return (() => {
|
|
46342
|
-
var e =
|
|
46404
|
+
var e = h4();
|
|
46343
46405
|
return P(e, j(Lj, {
|
|
46344
46406
|
label: "Personal API key",
|
|
46345
46407
|
hint: "Create one at linear.app → Settings → API — fastest path.",
|
|
46346
46408
|
get children() {
|
|
46347
46409
|
return [(() => {
|
|
46348
|
-
var e =
|
|
46410
|
+
var e = f4();
|
|
46349
46411
|
return P(e, j(jj, {
|
|
46350
46412
|
type: "password",
|
|
46351
46413
|
placeholder: "lin_api_…",
|
|
@@ -46382,12 +46444,12 @@ function m4() {
|
|
|
46382
46444
|
}), null), P(e, j(M, {
|
|
46383
46445
|
when: xr,
|
|
46384
46446
|
get children() {
|
|
46385
|
-
return [
|
|
46447
|
+
return [p4(), j(Lj, {
|
|
46386
46448
|
label: "OAuth client ID",
|
|
46387
46449
|
get children() {
|
|
46388
46450
|
return [
|
|
46389
46451
|
(() => {
|
|
46390
|
-
var e =
|
|
46452
|
+
var e = f4();
|
|
46391
46453
|
return P(e, j(jj, {
|
|
46392
46454
|
placeholder: "your-client-id",
|
|
46393
46455
|
get value() {
|
|
@@ -46415,7 +46477,7 @@ function m4() {
|
|
|
46415
46477
|
}
|
|
46416
46478
|
}),
|
|
46417
46479
|
(() => {
|
|
46418
|
-
var e =
|
|
46480
|
+
var e = m4(), t = e.firstChild.nextSibling.nextSibling;
|
|
46419
46481
|
return P(t, ie), e;
|
|
46420
46482
|
})()
|
|
46421
46483
|
];
|
|
@@ -46426,13 +46488,13 @@ function m4() {
|
|
|
46426
46488
|
})();
|
|
46427
46489
|
},
|
|
46428
46490
|
get children() {
|
|
46429
|
-
var e =
|
|
46491
|
+
var e = W2(), t = e.firstChild;
|
|
46430
46492
|
return P(t, j(M, {
|
|
46431
46493
|
get when() {
|
|
46432
46494
|
return !a.isLoading;
|
|
46433
46495
|
},
|
|
46434
46496
|
get fallback() {
|
|
46435
|
-
return
|
|
46497
|
+
return g4();
|
|
46436
46498
|
},
|
|
46437
46499
|
get children() {
|
|
46438
46500
|
return j(M, {
|
|
@@ -46445,7 +46507,7 @@ function m4() {
|
|
|
46445
46507
|
return a.isError;
|
|
46446
46508
|
},
|
|
46447
46509
|
get fallback() {
|
|
46448
|
-
return
|
|
46510
|
+
return g4();
|
|
46449
46511
|
},
|
|
46450
46512
|
get children() {
|
|
46451
46513
|
return j(Hj, { message: "Key rejected — reconnect" });
|
|
@@ -46453,7 +46515,7 @@ function m4() {
|
|
|
46453
46515
|
});
|
|
46454
46516
|
},
|
|
46455
46517
|
get children() {
|
|
46456
|
-
var e =
|
|
46518
|
+
var e = U2(), t = e.firstChild.nextSibling, n = t.nextSibling.nextSibling;
|
|
46457
46519
|
return P(t, () => a.data.name), P(n, () => a.data.email), e;
|
|
46458
46520
|
}
|
|
46459
46521
|
});
|
|
@@ -46494,7 +46556,7 @@ function m4() {
|
|
|
46494
46556
|
return o.isLoading;
|
|
46495
46557
|
},
|
|
46496
46558
|
get children() {
|
|
46497
|
-
return [
|
|
46559
|
+
return [G2(), j(M, {
|
|
46498
46560
|
get when() {
|
|
46499
46561
|
return o.data;
|
|
46500
46562
|
},
|
|
@@ -46504,7 +46566,7 @@ function m4() {
|
|
|
46504
46566
|
return o.data;
|
|
46505
46567
|
},
|
|
46506
46568
|
children: (e) => (() => {
|
|
46507
|
-
var t =
|
|
46569
|
+
var t = _4(), r = t.firstChild, i = r.nextSibling;
|
|
46508
46570
|
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;
|
|
46509
46571
|
})()
|
|
46510
46572
|
});
|
|
@@ -46528,14 +46590,14 @@ function m4() {
|
|
|
46528
46590
|
},
|
|
46529
46591
|
get children() {
|
|
46530
46592
|
return [(() => {
|
|
46531
|
-
var e =
|
|
46593
|
+
var e = K2();
|
|
46532
46594
|
return D(() => e.selected = !n().defaultProjectId), e;
|
|
46533
46595
|
})(), j(We, {
|
|
46534
46596
|
get each() {
|
|
46535
46597
|
return s.data ?? [];
|
|
46536
46598
|
},
|
|
46537
46599
|
children: (e) => (() => {
|
|
46538
|
-
var t =
|
|
46600
|
+
var t = v4();
|
|
46539
46601
|
return P(t, () => e.name), D(() => t.selected = e.id === n().defaultProjectId), D(() => t.value = e.id), t;
|
|
46540
46602
|
})()
|
|
46541
46603
|
})];
|
|
@@ -46547,7 +46609,7 @@ function m4() {
|
|
|
46547
46609
|
label: "Default labels",
|
|
46548
46610
|
hint: "Applied to every issue created from the panel.",
|
|
46549
46611
|
get children() {
|
|
46550
|
-
var e =
|
|
46612
|
+
var e = q2();
|
|
46551
46613
|
return P(e, j(We, {
|
|
46552
46614
|
get each() {
|
|
46553
46615
|
return p.data ?? [];
|
|
@@ -46555,7 +46617,7 @@ function m4() {
|
|
|
46555
46617
|
children: (e) => {
|
|
46556
46618
|
let t = () => (n().defaultLabelIds ?? []).includes(e.id);
|
|
46557
46619
|
return (() => {
|
|
46558
|
-
var i =
|
|
46620
|
+
var i = y4(), a = i.firstChild;
|
|
46559
46621
|
return i.$$click = () => {
|
|
46560
46622
|
let i = n().defaultLabelIds ?? [];
|
|
46561
46623
|
r({ defaultLabelIds: t() ? i.filter((t) => t !== e.id) : [...i, e.id] });
|
|
@@ -46572,7 +46634,7 @@ function m4() {
|
|
|
46572
46634
|
}
|
|
46573
46635
|
}),
|
|
46574
46636
|
(() => {
|
|
46575
|
-
var e =
|
|
46637
|
+
var e = J2(), t = e.firstChild;
|
|
46576
46638
|
return t.addEventListener("change", (e) => void r({ shareLinearKey: e.currentTarget.checked })), D(() => t.checked = !!n().shareLinearKey), e;
|
|
46577
46639
|
})(),
|
|
46578
46640
|
j(Lj, {
|
|
@@ -46622,7 +46684,7 @@ function m4() {
|
|
|
46622
46684
|
return m.isLoading;
|
|
46623
46685
|
},
|
|
46624
46686
|
get children() {
|
|
46625
|
-
return [
|
|
46687
|
+
return [b4(), j(M, {
|
|
46626
46688
|
get when() {
|
|
46627
46689
|
return m.data;
|
|
46628
46690
|
},
|
|
@@ -46632,7 +46694,7 @@ function m4() {
|
|
|
46632
46694
|
return m.data;
|
|
46633
46695
|
},
|
|
46634
46696
|
children: (e) => (() => {
|
|
46635
|
-
var t =
|
|
46697
|
+
var t = v4();
|
|
46636
46698
|
return P(t, () => e.displayName), D(() => t.selected = e.id === n().cursorAgentId), D(() => t.value = e.id), t;
|
|
46637
46699
|
})()
|
|
46638
46700
|
});
|
|
@@ -46642,7 +46704,7 @@ function m4() {
|
|
|
46642
46704
|
});
|
|
46643
46705
|
},
|
|
46644
46706
|
get children() {
|
|
46645
|
-
return
|
|
46707
|
+
return Y2();
|
|
46646
46708
|
}
|
|
46647
46709
|
});
|
|
46648
46710
|
}
|
|
@@ -46690,7 +46752,7 @@ function m4() {
|
|
|
46690
46752
|
onBlur: (e) => {
|
|
46691
46753
|
r({ issueTemplate: e.currentTarget.value.trim() || void 0 });
|
|
46692
46754
|
}
|
|
46693
|
-
}),
|
|
46755
|
+
}), X2()];
|
|
46694
46756
|
}
|
|
46695
46757
|
}),
|
|
46696
46758
|
j(Lj, {
|
|
@@ -46747,7 +46809,7 @@ function m4() {
|
|
|
46747
46809
|
label: "Test account",
|
|
46748
46810
|
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.",
|
|
46749
46811
|
get children() {
|
|
46750
|
-
var e =
|
|
46812
|
+
var e = Z2();
|
|
46751
46813
|
return P(e, j(jj, {
|
|
46752
46814
|
placeholder: "Username or email (e.g. demo@yourapp.com)",
|
|
46753
46815
|
get value() {
|
|
@@ -46779,7 +46841,7 @@ function m4() {
|
|
|
46779
46841
|
title: "Panel",
|
|
46780
46842
|
get children() {
|
|
46781
46843
|
return [(() => {
|
|
46782
|
-
var e =
|
|
46844
|
+
var e = Q2(), t = e.firstChild.nextSibling;
|
|
46783
46845
|
return P(t, j(We, {
|
|
46784
46846
|
each: [{
|
|
46785
46847
|
id: "overlay",
|
|
@@ -46789,7 +46851,7 @@ function m4() {
|
|
|
46789
46851
|
label: "Beside page"
|
|
46790
46852
|
}],
|
|
46791
46853
|
children: (e) => (() => {
|
|
46792
|
-
var t =
|
|
46854
|
+
var t = d4();
|
|
46793
46855
|
return t.$$click = () => void r({
|
|
46794
46856
|
panelMode: e.id,
|
|
46795
46857
|
panelPos: void 0
|
|
@@ -46797,11 +46859,11 @@ function m4() {
|
|
|
46797
46859
|
})()
|
|
46798
46860
|
})), e;
|
|
46799
46861
|
})(), (() => {
|
|
46800
|
-
var e =
|
|
46862
|
+
var e = $2(), t = e.firstChild.nextSibling;
|
|
46801
46863
|
return P(t, j(We, {
|
|
46802
46864
|
each: ["left", "right"],
|
|
46803
46865
|
children: (e) => (() => {
|
|
46804
|
-
var t =
|
|
46866
|
+
var t = d4();
|
|
46805
46867
|
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;
|
|
46806
46868
|
})()
|
|
46807
46869
|
})), e;
|
|
@@ -46831,8 +46893,8 @@ function m4() {
|
|
|
46831
46893
|
}), null), P(e, j(Rj, {
|
|
46832
46894
|
title: "Project config (.lineargrab.json)",
|
|
46833
46895
|
get children() {
|
|
46834
|
-
return [
|
|
46835
|
-
var e =
|
|
46896
|
+
return [e4(), (() => {
|
|
46897
|
+
var e = n4();
|
|
46836
46898
|
return P(e, j(M, {
|
|
46837
46899
|
get when() {
|
|
46838
46900
|
return c.data?.projectConfig;
|
|
@@ -46863,7 +46925,7 @@ function m4() {
|
|
|
46863
46925
|
},
|
|
46864
46926
|
onClick: () => void d(),
|
|
46865
46927
|
get children() {
|
|
46866
|
-
var e =
|
|
46928
|
+
var e = t4();
|
|
46867
46929
|
return P(e, () => l() ? "Copied ✓" : "Copy config"), e;
|
|
46868
46930
|
}
|
|
46869
46931
|
}), null), e;
|
|
@@ -46954,12 +47016,12 @@ function m4() {
|
|
|
46954
47016
|
});
|
|
46955
47017
|
},
|
|
46956
47018
|
get children() {
|
|
46957
|
-
return [
|
|
47019
|
+
return [r4(), j(We, {
|
|
46958
47020
|
get each() {
|
|
46959
47021
|
return ae.data ?? [];
|
|
46960
47022
|
},
|
|
46961
47023
|
children: (e) => (() => {
|
|
46962
|
-
var t =
|
|
47024
|
+
var t = x4();
|
|
46963
47025
|
return t.firstChild, P(t, () => e.name, null), D(() => t.selected = e.id === n().slackChannelId), D(() => t.value = e.id), t;
|
|
46964
47026
|
})()
|
|
46965
47027
|
})];
|
|
@@ -47010,10 +47072,10 @@ function m4() {
|
|
|
47010
47072
|
}
|
|
47011
47073
|
}),
|
|
47012
47074
|
(() => {
|
|
47013
|
-
var e =
|
|
47075
|
+
var e = i4(), t = e.firstChild;
|
|
47014
47076
|
return t.addEventListener("change", (e) => void r({ notifyOnCreate: e.currentTarget.checked ? void 0 : !1 })), D(() => t.checked = n().notifyOnCreate !== !1), e;
|
|
47015
47077
|
})(),
|
|
47016
|
-
|
|
47078
|
+
a4()
|
|
47017
47079
|
];
|
|
47018
47080
|
}
|
|
47019
47081
|
}), null), P(e, j(Rj, {
|
|
@@ -47051,7 +47113,7 @@ function m4() {
|
|
|
47051
47113
|
}
|
|
47052
47114
|
}),
|
|
47053
47115
|
(() => {
|
|
47054
|
-
var e =
|
|
47116
|
+
var e = o4(), t = e.firstChild.nextSibling.firstChild, i = t.nextSibling, a = i.nextSibling;
|
|
47055
47117
|
return t.$$click = () => void r({ preferredProvider: void 0 }), i.$$click = () => void r({ preferredProvider: "openai" }), a.$$click = () => void r({ preferredProvider: "anthropic" }), D((e) => {
|
|
47056
47118
|
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;
|
|
47057
47119
|
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;
|
|
@@ -47064,16 +47126,16 @@ function m4() {
|
|
|
47064
47126
|
}), e;
|
|
47065
47127
|
})(),
|
|
47066
47128
|
(() => {
|
|
47067
|
-
var e =
|
|
47129
|
+
var e = c4();
|
|
47068
47130
|
return P(e, j(M, {
|
|
47069
47131
|
get when() {
|
|
47070
47132
|
return se();
|
|
47071
47133
|
},
|
|
47072
47134
|
get fallback() {
|
|
47073
|
-
return
|
|
47135
|
+
return S4();
|
|
47074
47136
|
},
|
|
47075
47137
|
get children() {
|
|
47076
|
-
var e =
|
|
47138
|
+
var e = s4();
|
|
47077
47139
|
return P(e, se), e;
|
|
47078
47140
|
}
|
|
47079
47141
|
})), e;
|
|
@@ -47083,7 +47145,7 @@ function m4() {
|
|
|
47083
47145
|
}), null), P(e, j(Rj, {
|
|
47084
47146
|
title: "How it works",
|
|
47085
47147
|
get children() {
|
|
47086
|
-
return
|
|
47148
|
+
return l4();
|
|
47087
47149
|
}
|
|
47088
47150
|
}), null), e;
|
|
47089
47151
|
})();
|
|
@@ -47091,38 +47153,38 @@ function m4() {
|
|
|
47091
47153
|
rt(["click"]);
|
|
47092
47154
|
//#endregion
|
|
47093
47155
|
//#region src/lib/idbCache.ts
|
|
47094
|
-
var
|
|
47156
|
+
var w4 = "linear-grab", T4 = "queries", E4 = [
|
|
47095
47157
|
"my-issues",
|
|
47096
47158
|
"issue",
|
|
47097
47159
|
"sessions",
|
|
47098
47160
|
"teams",
|
|
47099
47161
|
"agents"
|
|
47100
47162
|
];
|
|
47101
|
-
function
|
|
47163
|
+
function D4() {
|
|
47102
47164
|
return new Promise((e) => {
|
|
47103
47165
|
try {
|
|
47104
|
-
let t = indexedDB.open(
|
|
47105
|
-
t.onupgradeneeded = () => t.result.createObjectStore(
|
|
47166
|
+
let t = indexedDB.open(w4, 1);
|
|
47167
|
+
t.onupgradeneeded = () => t.result.createObjectStore(T4), t.onsuccess = () => e(t.result), t.onerror = () => e(null);
|
|
47106
47168
|
} catch {
|
|
47107
47169
|
e(null);
|
|
47108
47170
|
}
|
|
47109
47171
|
});
|
|
47110
47172
|
}
|
|
47111
|
-
function
|
|
47112
|
-
return typeof e[0] == "string" &&
|
|
47173
|
+
function O4(e) {
|
|
47174
|
+
return typeof e[0] == "string" && E4.includes(e[0]);
|
|
47113
47175
|
}
|
|
47114
|
-
async function
|
|
47115
|
-
let t = await
|
|
47176
|
+
async function k4(e) {
|
|
47177
|
+
let t = await D4();
|
|
47116
47178
|
if (!t) return () => {};
|
|
47117
47179
|
await new Promise((n) => {
|
|
47118
47180
|
try {
|
|
47119
|
-
let r = t.transaction(
|
|
47181
|
+
let r = t.transaction(T4, "readonly").objectStore(T4).openCursor();
|
|
47120
47182
|
r.onsuccess = () => {
|
|
47121
47183
|
let t = r.result;
|
|
47122
47184
|
if (!t) return n();
|
|
47123
47185
|
try {
|
|
47124
47186
|
let { queryKey: n, data: r } = t.value;
|
|
47125
|
-
|
|
47187
|
+
O4(n) && e.getQueryData(n) === void 0 && e.setQueryData(n, r, { updatedAt: 0 });
|
|
47126
47188
|
} catch {}
|
|
47127
47189
|
t.continue();
|
|
47128
47190
|
}, r.onerror = () => n();
|
|
@@ -47133,14 +47195,14 @@ async function b4(e) {
|
|
|
47133
47195
|
let n = /* @__PURE__ */ new Map(), r = e.getQueryCache().subscribe((r) => {
|
|
47134
47196
|
if (r.type !== "updated" || r.action.type !== "success") return;
|
|
47135
47197
|
let { queryKey: i, queryHash: a } = r.query;
|
|
47136
|
-
if (!
|
|
47198
|
+
if (!O4(i)) return;
|
|
47137
47199
|
let o = n.get(a);
|
|
47138
47200
|
o && clearTimeout(o), n.set(a, setTimeout(() => {
|
|
47139
47201
|
n.delete(a);
|
|
47140
47202
|
try {
|
|
47141
47203
|
let n = e.getQueryData(i);
|
|
47142
47204
|
if (n === void 0) return;
|
|
47143
|
-
t.transaction(
|
|
47205
|
+
t.transaction(T4, "readwrite").objectStore(T4).put({
|
|
47144
47206
|
queryKey: i,
|
|
47145
47207
|
data: n
|
|
47146
47208
|
}, a);
|
|
@@ -47156,7 +47218,7 @@ async function b4(e) {
|
|
|
47156
47218
|
//#endregion
|
|
47157
47219
|
//#region src/panel/App.tsx
|
|
47158
47220
|
Br();
|
|
47159
|
-
var
|
|
47221
|
+
var A4 = /*#__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\">"), j4 = /*#__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\">"), M4 = /*#__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\">–"), N4 = /*#__PURE__*/ N("<div class=\"bg-bg text-text flex h-full flex-col\"><header><span class=\"text-accent mr-0.5 inline-flex shrink-0\"title=\"Linear Grab\"></span><div class=\"no-scrollbar flex min-w-0 flex-1 items-center gap-1 overflow-x-auto\"></div></header><main class=\"min-h-0 flex-1\"><div class=h-full></div><div class=h-full></div><div class=h-full></div><div class=h-full></div><div class=h-full></div><div class=h-full></div><div class=h-full></div><div class=h-full></div><div class=h-full>"), P4 = /*#__PURE__*/ N("<button>"), F4 = [
|
|
47160
47222
|
{
|
|
47161
47223
|
id: "draft",
|
|
47162
47224
|
label: "Draft"
|
|
@@ -47193,35 +47255,35 @@ var x4 = /*#__PURE__*/ N("<svg viewBox=\"0 0 100 100\"fill=currentColor aria-hid
|
|
|
47193
47255
|
id: "settings",
|
|
47194
47256
|
label: "Settings"
|
|
47195
47257
|
}
|
|
47196
|
-
],
|
|
47197
|
-
function
|
|
47198
|
-
if (
|
|
47199
|
-
|
|
47258
|
+
], I4 = /* @__PURE__ */ new Set();
|
|
47259
|
+
function L4(e, t, n) {
|
|
47260
|
+
if (I4.has(e) || typeof Notification > "u") return;
|
|
47261
|
+
I4.add(e);
|
|
47200
47262
|
let r = () => new Notification(t, { body: n });
|
|
47201
47263
|
Notification.permission === "granted" ? r() : Notification.permission === "default" && Notification.requestPermission().then((e) => e === "granted" && r());
|
|
47202
47264
|
}
|
|
47203
|
-
function
|
|
47265
|
+
function R4() {
|
|
47204
47266
|
setInterval(() => {
|
|
47205
47267
|
NO().then((e) => {
|
|
47206
47268
|
for (let t of e) {
|
|
47207
47269
|
if (t.status !== "running") continue;
|
|
47208
47270
|
let e = t.lastEventAt ?? t.startedAt;
|
|
47209
|
-
Date.now() - e > 10 * 6e4 &&
|
|
47271
|
+
Date.now() - e > 10 * 6e4 && L4(`local-stuck:${t.id}:${e}`, "Local agent may be stuck", `${t.title.slice(0, 80)} — no output for ${Math.round((Date.now() - e) / 6e4)}m. Nudge or interrupt it in the Local tab.`);
|
|
47210
47272
|
}
|
|
47211
47273
|
}).catch(() => {}), gO().then((e) => {
|
|
47212
|
-
for (let t of e) /awaitingInput|elicit/i.test(t.status) &&
|
|
47274
|
+
for (let t of e) /awaitingInput|elicit/i.test(t.status) && L4(`cloud-input:${t.id}`, "Cloud agent needs input", `${t.issue?.identifier ?? "Session"} — ${t.issue?.title?.slice(0, 80) ?? "a Cursor agent"} is waiting for you.`);
|
|
47213
47275
|
}).catch(() => {});
|
|
47214
47276
|
}, 6e4);
|
|
47215
47277
|
}
|
|
47216
|
-
|
|
47217
|
-
var
|
|
47278
|
+
R4();
|
|
47279
|
+
var z4 = new gr({ defaultOptions: { queries: {
|
|
47218
47280
|
retry: 1,
|
|
47219
47281
|
refetchOnWindowFocus: !1,
|
|
47220
47282
|
staleTime: 5e3
|
|
47221
47283
|
} } });
|
|
47222
|
-
function
|
|
47284
|
+
function B4(e) {
|
|
47223
47285
|
return (() => {
|
|
47224
|
-
var t =
|
|
47286
|
+
var t = A4();
|
|
47225
47287
|
return D((n) => {
|
|
47226
47288
|
var r = e.size ?? 14, i = e.size ?? 14;
|
|
47227
47289
|
return r !== n.e && it(t, "width", n.e = r), i !== n.t && it(t, "height", n.t = i), n;
|
|
@@ -47231,36 +47293,36 @@ function j4(e) {
|
|
|
47231
47293
|
}), t;
|
|
47232
47294
|
})();
|
|
47233
47295
|
}
|
|
47234
|
-
function
|
|
47296
|
+
function V4(e) {
|
|
47235
47297
|
let [t, n] = T("draft"), r = () => {
|
|
47236
|
-
|
|
47298
|
+
z4.invalidateQueries({ queryKey: ["grab"] }), cj() === "capture" && n("capture"), e.onGrab?.();
|
|
47237
47299
|
};
|
|
47238
47300
|
return O(() => {
|
|
47239
47301
|
let e = nj();
|
|
47240
47302
|
e && n(e);
|
|
47241
47303
|
}), ie(() => {
|
|
47242
|
-
let e =
|
|
47304
|
+
let e = k4(z4), t = XZ(r), n = () => {
|
|
47243
47305
|
JO().then(y$), VO(), MO().then(async (e) => {
|
|
47244
47306
|
if (!e.projectConfig) return;
|
|
47245
|
-
let t =
|
|
47307
|
+
let t = F2(await Tr(), e.projectConfig);
|
|
47246
47308
|
t && await Er(t);
|
|
47247
47309
|
}).catch(() => {});
|
|
47248
47310
|
};
|
|
47249
47311
|
n();
|
|
47250
47312
|
let i = Mr((e) => {
|
|
47251
|
-
e === "settings" && (
|
|
47313
|
+
e === "settings" && (z4.invalidateQueries({ queryKey: ["settings"] }), n()), e === "grab" && r();
|
|
47252
47314
|
});
|
|
47253
47315
|
ae(() => {
|
|
47254
47316
|
t(), i(), e.then((e) => e());
|
|
47255
47317
|
});
|
|
47256
47318
|
}), j(cr, {
|
|
47257
|
-
client:
|
|
47319
|
+
client: z4,
|
|
47258
47320
|
get children() {
|
|
47259
|
-
var r =
|
|
47260
|
-
return i.$$pointerdown = (t) => e.onHeaderPointerDown?.(t), P(a, j(
|
|
47261
|
-
each:
|
|
47321
|
+
var r = N4(), i = r.firstChild, a = i.firstChild, o = a.nextSibling, s = i.nextSibling.firstChild, c = s.nextSibling, l = c.nextSibling, u = l.nextSibling, d = u.nextSibling, f = d.nextSibling, p = f.nextSibling, m = p.nextSibling, h = m.nextSibling;
|
|
47322
|
+
return i.$$pointerdown = (t) => e.onHeaderPointerDown?.(t), P(a, j(B4, { size: 14 })), P(o, j(We, {
|
|
47323
|
+
each: F4,
|
|
47262
47324
|
children: (e) => (() => {
|
|
47263
|
-
var r =
|
|
47325
|
+
var r = P4();
|
|
47264
47326
|
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;
|
|
47265
47327
|
})()
|
|
47266
47328
|
})), P(i, j(M, {
|
|
@@ -47268,7 +47330,7 @@ function M4(e) {
|
|
|
47268
47330
|
return e.onTogglePin;
|
|
47269
47331
|
},
|
|
47270
47332
|
get children() {
|
|
47271
|
-
var t =
|
|
47333
|
+
var t = j4();
|
|
47272
47334
|
return t.$$click = () => e.onTogglePin?.(), D((n) => {
|
|
47273
47335
|
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"}`;
|
|
47274
47336
|
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;
|
|
@@ -47283,10 +47345,10 @@ function M4(e) {
|
|
|
47283
47345
|
return e.onClose;
|
|
47284
47346
|
},
|
|
47285
47347
|
get children() {
|
|
47286
|
-
var t =
|
|
47348
|
+
var t = M4();
|
|
47287
47349
|
return t.$$click = () => e.onClose?.(), t;
|
|
47288
47350
|
}
|
|
47289
|
-
}), null), P(s, j(wM, { onCreated: () => n("activity") })), P(c, j(TQ, {})), P(l, j(_1, {})), P(u, j(B1, {})), P(d, j(P1, {})), P(f, j(T0, {})), P(p, j(B0, { onOpenIssue: () => n("activity") })), P(m, j(
|
|
47351
|
+
}), null), P(s, j(wM, { onCreated: () => n("activity") })), P(c, j(TQ, {})), P(l, j(_1, {})), P(u, j(B1, {})), P(d, j(P1, {})), P(f, j(T0, {})), P(p, j(B0, { onOpenIssue: () => n("activity") })), P(m, j(M2, {})), P(h, j(C4, {})), D((n) => {
|
|
47290
47352
|
var r = `border-border bg-surface flex shrink-0 items-center gap-1 border-b px-2 py-1.5 select-none ${e.onHeaderPointerDown ? "cursor-grab active:cursor-grabbing" : ""}`, a = t() !== "draft", o = t() !== "capture", g = t() !== "activity", _ = t() !== "running", v = t() !== "cloud", y = t() !== "local", b = t() !== "prs", x = t() !== "design", S = t() !== "settings";
|
|
47291
47353
|
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), g !== n.o && l.classList.toggle("hidden", n.o = g), _ !== n.i && u.classList.toggle("hidden", n.i = _), v !== n.n && d.classList.toggle("hidden", n.n = v), y !== n.s && f.classList.toggle("hidden", n.s = y), b !== n.h && p.classList.toggle("hidden", n.h = b), x !== n.r && m.classList.toggle("hidden", n.r = x), S !== n.d && h.classList.toggle("hidden", n.d = S), n;
|
|
47292
47354
|
}, {
|
|
@@ -47307,12 +47369,12 @@ function M4(e) {
|
|
|
47307
47369
|
rt(["pointerdown", "click"]);
|
|
47308
47370
|
//#endregion
|
|
47309
47371
|
//#region src/styles/app.css?inline
|
|
47310
|
-
var N4 = "/*! 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-3{top:calc(var(--spacing) * 3)}.top-\\[2px\\]{top:2px}.top-full{top:100%}.right-0{right:0}.right-0\\.5{right:calc(var(--spacing) * .5)}.right-4{right:calc(var(--spacing) * 4)}.right-full{right:100%}.bottom-0{bottom:0}.bottom-1{bottom:var(--spacing)}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-\\[2px\\]{bottom:2px}.bottom-full{bottom:100%}.-left-\\[13\\.5px\\]{left:-13.5px}.left-0{left:0}.left-1{left:var(--spacing)}.left-1\\/2{left:50%}.left-\\[5px\\]{left:5px}.left-full{left:100%}.z-1{z-index:1}.z-10{z-index:10}.z-\\[2147483645\\]{z-index:2147483645}.z-\\[2147483646\\]{z-index:2147483646}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.container\\!{width:100%!important}@media (width>=40rem){.container\\!{max-width:40rem!important}}@media (width>=48rem){.container\\!{max-width:48rem!important}}@media (width>=64rem){.container\\!{max-width:64rem!important}}@media (width>=80rem){.container\\!{max-width:80rem!important}}@media (width>=96rem){.container\\!{max-width:96rem!important}}.-m-0{margin:0}.-m-0\\.5{margin:calc(var(--spacing) * -.5)}.-m-4{margin:calc(var(--spacing) * -4)}.m-0{margin:0}.-mx-2{margin-inline:calc(var(--spacing) * -2)}.-my-1{margin-block:calc(var(--spacing) * -1)}.-my-1\\.5{margin-block:calc(var(--spacing) * -1.5)}.mt-0{margin-top:0}.mt-0\\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-px{margin-top:1px}.mr-0{margin-right:0}.mr-0\\.5{margin-right:calc(var(--spacing) * .5)}.mr-1{margin-right:var(--spacing)}.mr-1\\.5{margin-right:calc(var(--spacing) * 1.5)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-2\\.5{margin-right:calc(var(--spacing) * 2.5)}.-mb-4{margin-bottom:calc(var(--spacing) * -4)}.mb-0{margin-bottom:0}.mb-0\\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:var(--spacing)}.mb-1\\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-2\\.5{margin-bottom:calc(var(--spacing) * 2.5)}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-2\\.5{margin-left:calc(var(--spacing) * 2.5)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-auto{margin-left:auto}.ml-px{margin-left:1px}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-5{-webkit-line-clamp:5;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.list-item{display:list-item}.table{display:table}.size-0{width:0;height:0}.size-1{width:var(--spacing);height:var(--spacing)}.size-1\\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-\\[9px\\]{width:9px;height:9px}.size-\\[12px\\]{width:12px;height:12px}.size-\\[16px\\]{width:16px;height:16px}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-16{height:calc(var(--spacing) * 16)}.h-\\[8px\\]{height:8px}.h-\\[17px\\]{height:17px}.h-\\[18px\\]{height:18px}.h-\\[20px\\]{height:20px}.h-\\[24px\\]{height:24px}.h-fit{height:fit-content}.h-full{height:100%}.h-screen{height:100vh}.max-h-32{max-height:calc(var(--spacing) * 32)}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-44{max-height:calc(var(--spacing) * 44)}.max-h-56{max-height:calc(var(--spacing) * 56)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-\\[var\\(--rg-edit-list-max-h\\)\\]{max-height:var(--rg-edit-list-max-h)}.min-h-0{min-height:0}.min-h-4{min-height:calc(var(--spacing) * 4)}.min-h-\\[2lh\\]{min-height:2lh}.min-h-\\[28px\\]{min-height:28px}.w-1{width:var(--spacing)}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-16{width:calc(var(--spacing) * 16)}.w-28{width:calc(var(--spacing) * 28)}.w-72{width:calc(var(--spacing) * 72)}.w-\\[2px\\]{width:2px}.w-\\[calc\\(100\\%\\+16px\\)\\]{width:calc(100% + 16px)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-\\[55\\%\\]{max-width:55%}.max-w-\\[100vw\\]{max-width:100vw}.max-w-\\[110px\\]{max-width:110px}.max-w-\\[280px\\]{max-width:280px}.max-w-full{max-width:100%}.min-w-0{min-width:0}.min-w-\\[3\\.5ch\\]{min-width:3.5ch}.min-w-\\[4ch\\]{min-width:4ch}.min-w-\\[5ch\\]{min-width:5ch}.min-w-\\[6ch\\]{min-width:6ch}.min-w-\\[7ch\\]{min-width:7ch}.min-w-\\[8ch\\]{min-width:8ch}.min-w-\\[10ch\\]{min-width:10ch}.min-w-\\[12ch\\]{min-width:12ch}.min-w-\\[36px\\]{min-width:36px}.min-w-\\[52px\\]{min-width:52px}.min-w-\\[100px\\]{min-width:100px}.min-w-\\[150px\\]{min-width:150px}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-rotate-90{rotate:-90deg}.rotate-0{rotate:0deg}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.list-decimal{list-style-type:decimal}.grid-cols-\\[0fr\\]{grid-template-columns:0fr}.grid-cols-\\[1fr\\]{grid-template-columns:1fr}.grid-rows-\\[0fr\\]{grid-template-rows:0fr}.grid-rows-\\[1fr\\]{grid-template-rows:1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:0}.gap-0\\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-\\[5px\\]{gap:5px}.self-end{align-self:flex-end}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-clip{overflow:clip}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\\[1px\\]{border-radius:1px}.rounded-\\[3px\\]{border-radius:3px}.rounded-\\[4px\\]{border-radius:4px}.rounded-\\[5px\\]{border-radius:5px}.rounded-\\[6px\\]{border-radius:6px}.rounded-\\[13px\\]{border-radius:13px}.rounded-\\[14px\\]{border-radius:14px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-t-\\[10px\\]{border-top-left-radius:10px;border-top-right-radius:10px}.rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.rounded-l{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-l-\\[10px\\]{border-top-left-radius:10px;border-bottom-left-radius:10px}.rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.rounded-tl{border-top-left-radius:.25rem}.rounded-r{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-r-\\[10px\\]{border-top-right-radius:10px;border-bottom-right-radius:10px}.rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-tr{border-top-right-radius:.25rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-b-\\[6px\\]{border-bottom-right-radius:6px;border-bottom-left-radius:6px}.rounded-b-\\[10px\\]{border-bottom-right-radius:10px;border-bottom-left-radius:10px}.rounded-b-none{border-bottom-right-radius:0;border-bottom-left-radius:0}.rounded-br{border-bottom-right-radius:.25rem}.rounded-bl{border-bottom-left-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.\\[border-width\\:0\\.5px\\]{border-width:.5px}.border-x{border-inline-style:var(--tw-border-style);border-inline-width:1px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-s{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}.border-e{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-4{border-top-style:var(--tw-border-style);border-top-width:4px}.\\[border-top-width\\:0\\.5px\\]{border-top-width:.5px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-dotted{--tw-border-style:dotted;border-style:dotted}.border-none{--tw-border-style:none;border-style:none}.border-solid{--tw-border-style:solid;border-style:solid}.border-\\[var\\(--rg-border-button\\)\\]{border-color:var(--rg-border-button)}.border-accent{border-color:var(--color-accent)}.border-accent\\/40{border-color:#5e6ad266}@supports (color:color-mix(in lab, red, red)){.border-accent\\/40{border-color:color-mix(in oklab, var(--color-accent) 40%, transparent)}}.border-border{border-color:var(--color-border)}.border-success{border-color:var(--color-success)}.border-success\\/40{border-color:#4cb78266}@supports (color:color-mix(in lab, red, red)){.border-success\\/40{border-color:color-mix(in oklab, var(--color-success) 40%, transparent)}}.border-text-dim{border-color:var(--color-text-dim)}.border-transparent{border-color:#0000}.border-warn{border-color:var(--color-warn)}.border-warn\\/40{border-color:#f2c94c66}@supports (color:color-mix(in lab, red, red)){.border-warn\\/40{border-color:color-mix(in oklab, var(--color-warn) 40%, transparent)}}.border-t-\\[var\\(--rg-border-subtle\\)\\]{border-top-color:var(--rg-border-subtle)}.border-t-transparent{border-top-color:#0000}.bg-\\[var\\(--rg-error-bg\\)\\]{background-color:var(--rg-error-bg)}.bg-\\[var\\(--rg-panel-bg\\)\\]{background-color:var(--rg-panel-bg)}.bg-\\[var\\(--rg-submit-bg\\)\\]{background-color:var(--rg-submit-bg)}.bg-\\[var\\(--rg-surface-active\\)\\]{background-color:var(--rg-surface-active)}.bg-\\[var\\(--rg-surface-hover\\)\\]{background-color:var(--rg-surface-hover)}.bg-\\[var\\(--rg-text-primary\\)\\]{background-color:var(--rg-text-primary)}.bg-\\[var\\(--rg-text-secondary\\)\\]{background-color:var(--rg-text-secondary)}.bg-accent{background-color:var(--color-accent)}.bg-accent-soft{background-color:var(--color-accent-soft)}.bg-bg{background-color:var(--color-bg)}.bg-bg\\/80{background-color:#0b0c0ecc}@supports (color:color-mix(in lab, red, red)){.bg-bg\\/80{background-color:color-mix(in oklab, var(--color-bg) 80%, transparent)}}.bg-border{background-color:var(--color-border)}.bg-current{background-color:currentColor}.bg-danger{background-color:var(--color-danger)}.bg-danger-soft{background-color:var(--color-danger-soft)}.bg-red-500{background-color:var(--color-red-500)}.bg-success{background-color:var(--color-success)}.bg-surface{background-color:var(--color-surface)}.bg-surface-2{background-color:var(--color-surface-2)}.bg-surface-3{background-color:var(--color-surface-3)}.bg-text-faint{background-color:var(--color-text-faint)}.bg-transparent{background-color:#0000}.bg-warn{background-color:var(--color-warn)}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:0}.p-0\\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\\.5{padding:calc(var(--spacing) * 2.5)}.p-6{padding:calc(var(--spacing) * 6)}.px-0{padding-inline:0}.px-0\\.25{padding-inline:calc(var(--spacing) * .25)}.px-1{padding-inline:var(--spacing)}.px-1\\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-\\[3px\\]{padding-inline:3px}.py-0{padding-block:0}.py-0\\.5{padding-block:calc(var(--spacing) * .5)}.py-0\\.25{padding-block:calc(var(--spacing) * .25)}.py-1{padding-block:var(--spacing)}.py-1\\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-px{padding-block:1px}.pt-0{padding-top:0}.pt-0\\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:var(--spacing)}.pt-1\\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pr-1{padding-right:var(--spacing)}.pr-1\\.5{padding-right:calc(var(--spacing) * 1.5)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pb-1{padding-bottom:var(--spacing)}.pb-1\\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pl-0{padding-left:0}.pl-0\\.5{padding-left:calc(var(--spacing) * .5)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-2\\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.text-center{text-align:center}.text-end{text-align:end}.text-justify{text-align:justify}.text-left{text-align:left}.text-right{text-align:right}.text-start{text-align:start}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.font-serif{font-family:var(--font-serif)}.text-\\[9\\.5px\\]{font-size:9.5px}.text-\\[9px\\]{font-size:9px}.text-\\[10\\.5px\\]{font-size:10.5px}.text-\\[10px\\]{font-size:10px}.text-\\[11\\.5px\\]{font-size:11.5px}.text-\\[11px\\]{font-size:11px}.text-\\[12\\.5px\\]{font-size:12.5px}.text-\\[12px\\]{font-size:12px}.text-\\[13px\\]{font-size:13px}.text-\\[15px\\]{font-size:15px}.leading-3{--tw-leading:calc(var(--spacing) * 3);line-height:calc(var(--spacing) * 3)}.leading-3\\.5{--tw-leading:calc(var(--spacing) * 3.5);line-height:calc(var(--spacing) * 3.5)}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-extralight{--tw-font-weight:var(--font-weight-extralight);font-weight:var(--font-weight-extralight)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.font-thin{--tw-font-weight:var(--font-weight-thin);font-weight:var(--font-weight-thin)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-normal{overflow-wrap:normal;word-break:normal}.break-words,.wrap-break-word{overflow-wrap:break-word}.break-all{word-break:break-all}.break-keep{word-break:keep-all}.text-ellipsis{text-overflow:ellipsis}.whitespace-break-spaces{white-space:break-spaces}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.text-\\[var\\(--rg-error-text\\)\\]{color:var(--rg-error-text)}.text-\\[var\\(--rg-submit-fg\\)\\]{color:var(--rg-submit-fg)}.text-\\[var\\(--rg-text-primary\\)\\]{color:var(--rg-text-primary)}.text-\\[var\\(--rg-text-primary-85\\)\\]{color:var(--rg-text-primary-85)}.text-\\[var\\(--rg-text-secondary\\)\\]{color:var(--rg-text-secondary)}.text-accent{color:var(--color-accent)}.text-danger{color:var(--color-danger)}.text-success{color:var(--color-success)}.text-text{color:var(--color-text)}.text-text-dim{color:var(--color-text-dim)}.text-text-faint{color:var(--color-text-faint)}.text-warn{color:var(--color-warn)}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.not-italic{font-style:normal}.lining-nums{--tw-numeric-figure:lining-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.oldstyle-nums{--tw-numeric-figure:oldstyle-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.proportional-nums{--tw-numeric-spacing:proportional-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.slashed-zero{--tw-slashed-zero:slashed-zero;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.accent-accent{accent-color:var(--color-accent)}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.\\[box-shadow\\:var\\(--rg-shadow\\)\\]{box-shadow:var(--rg-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.\\[filter\\:var\\(--rg-drop-shadow\\)\\]{filter:var(--rg-drop-shadow)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[grid-template-columns\\]{transition-property:grid-template-columns;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[grid-template-rows\\]{transition-property:grid-template-rows;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[opacity\\,transform\\]{transition-property:opacity,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[padding\\,border-radius\\,transform\\]{transition-property:padding,border-radius,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[top\\,left\\,width\\,height\\,opacity\\,border-radius\\]{transition-property:top,left,width,height,opacity,border-radius;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[transform\\,color\\]{transition-property:transform,color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[transform\\,opacity\\]{transition-property:transform,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.delay-\\[80ms\\]{transition-delay:80ms}.duration-60{--tw-duration:60ms;transition-duration:60ms}.duration-75{--tw-duration:75ms;transition-duration:75ms}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-120{--tw-duration:.12s;transition-duration:.12s}.duration-140{--tw-duration:.14s;transition-duration:.14s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-180{--tw-duration:.18s;transition-duration:.18s}.duration-220{--tw-duration:.22s;transition-duration:.22s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-400{--tw-duration:.4s;transition-duration:.4s}.ease-\\[cubic-bezier\\(0\\,0\\,0\\.2\\,1\\)\\]{--tw-ease:cubic-bezier(0,0,.2,1);transition-timing-function:cubic-bezier(0,0,.2,1)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.will-change-\\[opacity\\,transform\\]{will-change:opacity,transform}.will-change-transform{will-change:transform}.contain-layout{--tw-contain-layout:layout;contain:var(--tw-contain-size,) var(--tw-contain-layout,) var(--tw-contain-paint,) var(--tw-contain-style,)}.outline-none{--tw-outline-style:none;outline-style:none}.select-all{-webkit-user-select:all;user-select:all}.select-none{-webkit-user-select:none;user-select:none}.\\[corner-shape\\:superellipse\\(1\\.25\\)\\]{corner-shape:superellipse(1.25)}.\\[font-synthesis\\:none\\]{font-synthesis:none}.group-open\\:rotate-90:is(:where(.group):is([open],:popover-open,:open) *){rotate:90deg}@media (hover:hover){.group-hover\\:text-\\[var\\(--rg-text-primary\\)\\]:is(:where(.group):hover *){color:var(--rg-text-primary)}.group-hover\\:opacity-100:is(:where(.group):hover *){opacity:1}}.placeholder\\:text-text-faint::placeholder{color:var(--color-text-faint)}@media (hover:hover){.hover\\:bg-\\[var\\(--rg-error-bg-hover\\)\\]:hover{background-color:var(--rg-error-bg-hover)}.hover\\:bg-\\[var\\(--rg-surface-active\\)\\]:hover{background-color:var(--rg-surface-active)}.hover\\:bg-\\[var\\(--rg-surface-hover\\)\\]:hover{background-color:var(--rg-surface-hover)}.hover\\:bg-accent-hover:hover{background-color:var(--color-accent-hover)}.hover\\:bg-accent\\/50:hover{background-color:#5e6ad280}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-accent\\/50:hover{background-color:color-mix(in oklab, var(--color-accent) 50%, transparent)}}.hover\\:bg-danger\\/30:hover{background-color:#eb57574d}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-danger\\/30:hover{background-color:color-mix(in oklab, var(--color-danger) 30%, transparent)}}.hover\\:bg-surface-2:hover{background-color:var(--color-surface-2)}.hover\\:bg-surface-3:hover{background-color:var(--color-surface-3)}.hover\\:text-\\[var\\(--rg-text-primary\\)\\]:hover{color:var(--rg-text-primary)}.hover\\:text-accent:hover{color:var(--color-accent)}.hover\\:text-danger:hover{color:var(--color-danger)}.hover\\:text-text:hover{color:var(--color-text)}.hover\\:underline:hover{text-decoration-line:underline}.hover\\:opacity-80:hover{opacity:.8}}.focus\\:border-accent:focus{border-color:var(--color-accent)}.active\\:cursor-grabbing:active{cursor:grabbing}.active\\:bg-accent:active{background-color:var(--color-accent)}.disabled\\:cursor-default:disabled{cursor:default}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:bg-surface-3:disabled{background-color:var(--color-surface-3)}.disabled\\:text-text-faint:disabled{color:var(--color-text-faint)}.disabled\\:opacity-40:disabled{opacity:.4}@media (hover:hover){.disabled\\:hover\\:bg-surface-2:disabled:hover{background-color:var(--color-surface-2)}}}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=light],:host([data-theme=light]){--color-bg:#fbfbfc;--color-surface:#fff;--color-surface-2:#f4f4f6;--color-surface-3:#e9e9ee;--color-border:#e2e2e8;--color-border-strong:#cfcfd8;--color-text:#1b1c20;--color-text-dim:#5c5f6a;--color-text-faint:#9a9da8;--color-accent-soft:#5e6ad21f;--color-danger-soft:#eb57571a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--color-bg:#fbfbfc;--color-surface:#fff;--color-surface-2:#f4f4f6;--color-surface-3:#e9e9ee;--color-border:#e2e2e8;--color-border-strong:#cfcfd8;--color-text:#1b1c20;--color-text-dim:#5c5f6a;--color-text-faint:#9a9da8;--color-accent-soft:#5e6ad21f;--color-danger-soft:#eb57571a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}body{background-color:var(--color-bg);font-family:var(--font-sans);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-width:320px;margin:0;font-size:13px}@keyframes geist-spinner-fade{0%{opacity:1}to{opacity:.15}}[data-tip]{position:relative}[data-tip]:hover:after{content:attr(data-tip);color:#fff;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;z-index:60;background:#1b1c20;border-radius:6px;max-width:260px;padding:3px 8px;font-size:10.5px;font-weight:500;line-height:1.35;position:absolute;bottom:calc(100% + 6px);left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 4px 12px #0000004d}[data-tip][data-tip-pos~=right]:hover:after{left:0;transform:none}[data-tip][data-tip-pos~=left]:hover:after{left:auto;right:0;transform:none}[data-tip][data-tip-pos~=bottom]:hover:after{top:calc(100% + 6px);bottom:auto}.no-scrollbar{scrollbar-width:none}.no-scrollbar::-webkit-scrollbar{display:none}.lg-md p{margin:0 0 6px}.lg-md p:last-child{margin-bottom:0}.lg-md a{color:var(--color-accent);word-break:break-all;text-decoration:none}.lg-md a:hover{text-decoration:underline}.lg-md code{background:var(--color-surface-2);border:1px solid var(--color-border);font-family:var(--font-mono);border-radius:4px;padding:0 4px;font-size:11px}.lg-md pre{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:6px;margin:6px 0;padding:8px;overflow-x:auto}.lg-md pre code{white-space:pre;background:0 0;border:none;padding:0;font-size:11px}.lg-md ul,.lg-md ol{flex-direction:column;gap:2px;margin:4px 0 6px;padding-left:18px;display:flex}.lg-md ul{list-style:outside}.lg-md ol{list-style:decimal}.lg-md h4{margin:8px 0 4px;font-size:12px;font-weight:600}.lg-md lg-media{display:block}.lg-md lg-media img,.lg-md lg-media video{border:1px solid var(--color-border);border-radius:6px;max-width:100%;margin:4px 0}.lg-md video{border:1px solid var(--color-border);background:#000;border-radius:6px;max-width:100%;margin:4px 0}.lg-md img{border:1px solid var(--color-border);border-radius:6px;max-width:100%;margin:4px 0}.lg-md strong{font-weight:600}*{scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:4px}::-webkit-scrollbar-track{background:0 0}@property --tw-rotate-x{syntax:\"*\";inherits:false}@property --tw-rotate-y{syntax:\"*\";inherits:false}@property --tw-rotate-z{syntax:\"*\";inherits:false}@property --tw-skew-x{syntax:\"*\";inherits:false}@property --tw-skew-y{syntax:\"*\";inherits:false}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-leading{syntax:\"*\";inherits:false}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-tracking{syntax:\"*\";inherits:false}@property --tw-ordinal{syntax:\"*\";inherits:false}@property --tw-slashed-zero{syntax:\"*\";inherits:false}@property --tw-numeric-figure{syntax:\"*\";inherits:false}@property --tw-numeric-spacing{syntax:\"*\";inherits:false}@property --tw-numeric-fraction{syntax:\"*\";inherits:false}@property --tw-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\"*\";inherits:false}@property --tw-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\"*\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\"*\";inherits:false}@property --tw-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\"*\";inherits:false}@property --tw-inset-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\"*\";inherits:false}@property --tw-ring-offset-width{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\"*\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-blur{syntax:\"*\";inherits:false}@property --tw-brightness{syntax:\"*\";inherits:false}@property --tw-contrast{syntax:\"*\";inherits:false}@property --tw-grayscale{syntax:\"*\";inherits:false}@property --tw-hue-rotate{syntax:\"*\";inherits:false}@property --tw-invert{syntax:\"*\";inherits:false}@property --tw-opacity{syntax:\"*\";inherits:false}@property --tw-saturate{syntax:\"*\";inherits:false}@property --tw-sepia{syntax:\"*\";inherits:false}@property --tw-drop-shadow{syntax:\"*\";inherits:false}@property --tw-drop-shadow-color{syntax:\"*\";inherits:false}@property --tw-drop-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:\"*\";inherits:false}@property --tw-backdrop-blur{syntax:\"*\";inherits:false}@property --tw-backdrop-brightness{syntax:\"*\";inherits:false}@property --tw-backdrop-contrast{syntax:\"*\";inherits:false}@property --tw-backdrop-grayscale{syntax:\"*\";inherits:false}@property --tw-backdrop-hue-rotate{syntax:\"*\";inherits:false}@property --tw-backdrop-invert{syntax:\"*\";inherits:false}@property --tw-backdrop-opacity{syntax:\"*\";inherits:false}@property --tw-backdrop-saturate{syntax:\"*\";inherits:false}@property --tw-backdrop-sepia{syntax:\"*\";inherits:false}@property --tw-duration{syntax:\"*\";inherits:false}@property --tw-ease{syntax:\"*\";inherits:false}@property --tw-contain-size{syntax:\"*\";inherits:false}@property --tw-contain-layout{syntax:\"*\";inherits:false}@property --tw-contain-paint{syntax:\"*\";inherits:false}@property --tw-contain-style{syntax:\"*\";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}";
|
|
47372
|
+
var H4 = "/*! 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-3{top:calc(var(--spacing) * 3)}.top-\\[2px\\]{top:2px}.top-full{top:100%}.right-0{right:0}.right-0\\.5{right:calc(var(--spacing) * .5)}.right-4{right:calc(var(--spacing) * 4)}.right-full{right:100%}.bottom-0{bottom:0}.bottom-1{bottom:var(--spacing)}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-\\[2px\\]{bottom:2px}.bottom-full{bottom:100%}.-left-\\[13\\.5px\\]{left:-13.5px}.left-0{left:0}.left-1{left:var(--spacing)}.left-1\\/2{left:50%}.left-\\[5px\\]{left:5px}.left-full{left:100%}.z-1{z-index:1}.z-10{z-index:10}.z-\\[2147483645\\]{z-index:2147483645}.z-\\[2147483646\\]{z-index:2147483646}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.container\\!{width:100%!important}@media (width>=40rem){.container\\!{max-width:40rem!important}}@media (width>=48rem){.container\\!{max-width:48rem!important}}@media (width>=64rem){.container\\!{max-width:64rem!important}}@media (width>=80rem){.container\\!{max-width:80rem!important}}@media (width>=96rem){.container\\!{max-width:96rem!important}}.-m-0{margin:0}.-m-0\\.5{margin:calc(var(--spacing) * -.5)}.-m-4{margin:calc(var(--spacing) * -4)}.m-0{margin:0}.-mx-2{margin-inline:calc(var(--spacing) * -2)}.-my-1{margin-block:calc(var(--spacing) * -1)}.-my-1\\.5{margin-block:calc(var(--spacing) * -1.5)}.mt-0{margin-top:0}.mt-0\\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-px{margin-top:1px}.mr-0{margin-right:0}.mr-0\\.5{margin-right:calc(var(--spacing) * .5)}.mr-1{margin-right:var(--spacing)}.mr-1\\.5{margin-right:calc(var(--spacing) * 1.5)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-2\\.5{margin-right:calc(var(--spacing) * 2.5)}.-mb-4{margin-bottom:calc(var(--spacing) * -4)}.mb-0{margin-bottom:0}.mb-0\\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:var(--spacing)}.mb-1\\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-2\\.5{margin-bottom:calc(var(--spacing) * 2.5)}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-2\\.5{margin-left:calc(var(--spacing) * 2.5)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-auto{margin-left:auto}.ml-px{margin-left:1px}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-5{-webkit-line-clamp:5;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.list-item{display:list-item}.table{display:table}.size-0{width:0;height:0}.size-1{width:var(--spacing);height:var(--spacing)}.size-1\\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-\\[9px\\]{width:9px;height:9px}.size-\\[12px\\]{width:12px;height:12px}.size-\\[16px\\]{width:16px;height:16px}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-16{height:calc(var(--spacing) * 16)}.h-\\[8px\\]{height:8px}.h-\\[17px\\]{height:17px}.h-\\[18px\\]{height:18px}.h-\\[20px\\]{height:20px}.h-\\[24px\\]{height:24px}.h-fit{height:fit-content}.h-full{height:100%}.h-screen{height:100vh}.max-h-32{max-height:calc(var(--spacing) * 32)}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-44{max-height:calc(var(--spacing) * 44)}.max-h-56{max-height:calc(var(--spacing) * 56)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-\\[var\\(--rg-edit-list-max-h\\)\\]{max-height:var(--rg-edit-list-max-h)}.min-h-0{min-height:0}.min-h-4{min-height:calc(var(--spacing) * 4)}.min-h-\\[2lh\\]{min-height:2lh}.min-h-\\[28px\\]{min-height:28px}.w-1{width:var(--spacing)}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-16{width:calc(var(--spacing) * 16)}.w-28{width:calc(var(--spacing) * 28)}.w-72{width:calc(var(--spacing) * 72)}.w-\\[2px\\]{width:2px}.w-\\[calc\\(100\\%\\+16px\\)\\]{width:calc(100% + 16px)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-\\[55\\%\\]{max-width:55%}.max-w-\\[100vw\\]{max-width:100vw}.max-w-\\[110px\\]{max-width:110px}.max-w-\\[280px\\]{max-width:280px}.max-w-full{max-width:100%}.min-w-0{min-width:0}.min-w-\\[3\\.5ch\\]{min-width:3.5ch}.min-w-\\[3ch\\]{min-width:3ch}.min-w-\\[4ch\\]{min-width:4ch}.min-w-\\[5ch\\]{min-width:5ch}.min-w-\\[6ch\\]{min-width:6ch}.min-w-\\[7ch\\]{min-width:7ch}.min-w-\\[8ch\\]{min-width:8ch}.min-w-\\[10ch\\]{min-width:10ch}.min-w-\\[12ch\\]{min-width:12ch}.min-w-\\[36px\\]{min-width:36px}.min-w-\\[52px\\]{min-width:52px}.min-w-\\[100px\\]{min-width:100px}.min-w-\\[150px\\]{min-width:150px}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-rotate-90{rotate:-90deg}.rotate-0{rotate:0deg}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.list-decimal{list-style-type:decimal}.grid-cols-\\[0fr\\]{grid-template-columns:0fr}.grid-cols-\\[1fr\\]{grid-template-columns:1fr}.grid-rows-\\[0fr\\]{grid-template-rows:0fr}.grid-rows-\\[1fr\\]{grid-template-rows:1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:0}.gap-0\\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-\\[5px\\]{gap:5px}.self-end{align-self:flex-end}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-clip{overflow:clip}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\\[1px\\]{border-radius:1px}.rounded-\\[3px\\]{border-radius:3px}.rounded-\\[4px\\]{border-radius:4px}.rounded-\\[5px\\]{border-radius:5px}.rounded-\\[6px\\]{border-radius:6px}.rounded-\\[13px\\]{border-radius:13px}.rounded-\\[14px\\]{border-radius:14px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-t-\\[10px\\]{border-top-left-radius:10px;border-top-right-radius:10px}.rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.rounded-l{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-l-\\[10px\\]{border-top-left-radius:10px;border-bottom-left-radius:10px}.rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.rounded-tl{border-top-left-radius:.25rem}.rounded-r{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-r-\\[10px\\]{border-top-right-radius:10px;border-bottom-right-radius:10px}.rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-tr{border-top-right-radius:.25rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-b-\\[6px\\]{border-bottom-right-radius:6px;border-bottom-left-radius:6px}.rounded-b-\\[10px\\]{border-bottom-right-radius:10px;border-bottom-left-radius:10px}.rounded-b-none{border-bottom-right-radius:0;border-bottom-left-radius:0}.rounded-br{border-bottom-right-radius:.25rem}.rounded-bl{border-bottom-left-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.\\[border-width\\:0\\.5px\\]{border-width:.5px}.border-x{border-inline-style:var(--tw-border-style);border-inline-width:1px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-s{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}.border-e{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-4{border-top-style:var(--tw-border-style);border-top-width:4px}.\\[border-top-width\\:0\\.5px\\]{border-top-width:.5px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-dotted{--tw-border-style:dotted;border-style:dotted}.border-none{--tw-border-style:none;border-style:none}.border-solid{--tw-border-style:solid;border-style:solid}.border-\\[var\\(--rg-border-button\\)\\]{border-color:var(--rg-border-button)}.border-accent{border-color:var(--color-accent)}.border-accent\\/40{border-color:#5e6ad266}@supports (color:color-mix(in lab, red, red)){.border-accent\\/40{border-color:color-mix(in oklab, var(--color-accent) 40%, transparent)}}.border-border{border-color:var(--color-border)}.border-success{border-color:var(--color-success)}.border-success\\/40{border-color:#4cb78266}@supports (color:color-mix(in lab, red, red)){.border-success\\/40{border-color:color-mix(in oklab, var(--color-success) 40%, transparent)}}.border-text-dim{border-color:var(--color-text-dim)}.border-transparent{border-color:#0000}.border-warn{border-color:var(--color-warn)}.border-warn\\/40{border-color:#f2c94c66}@supports (color:color-mix(in lab, red, red)){.border-warn\\/40{border-color:color-mix(in oklab, var(--color-warn) 40%, transparent)}}.border-t-\\[var\\(--rg-border-subtle\\)\\]{border-top-color:var(--rg-border-subtle)}.border-t-transparent{border-top-color:#0000}.bg-\\[var\\(--rg-error-bg\\)\\]{background-color:var(--rg-error-bg)}.bg-\\[var\\(--rg-panel-bg\\)\\]{background-color:var(--rg-panel-bg)}.bg-\\[var\\(--rg-submit-bg\\)\\]{background-color:var(--rg-submit-bg)}.bg-\\[var\\(--rg-surface-active\\)\\]{background-color:var(--rg-surface-active)}.bg-\\[var\\(--rg-surface-hover\\)\\]{background-color:var(--rg-surface-hover)}.bg-\\[var\\(--rg-text-primary\\)\\]{background-color:var(--rg-text-primary)}.bg-\\[var\\(--rg-text-secondary\\)\\]{background-color:var(--rg-text-secondary)}.bg-accent{background-color:var(--color-accent)}.bg-accent-soft{background-color:var(--color-accent-soft)}.bg-bg{background-color:var(--color-bg)}.bg-bg\\/80{background-color:#0b0c0ecc}@supports (color:color-mix(in lab, red, red)){.bg-bg\\/80{background-color:color-mix(in oklab, var(--color-bg) 80%, transparent)}}.bg-border{background-color:var(--color-border)}.bg-current{background-color:currentColor}.bg-danger{background-color:var(--color-danger)}.bg-danger-soft{background-color:var(--color-danger-soft)}.bg-red-500{background-color:var(--color-red-500)}.bg-success{background-color:var(--color-success)}.bg-surface{background-color:var(--color-surface)}.bg-surface-2{background-color:var(--color-surface-2)}.bg-surface-3{background-color:var(--color-surface-3)}.bg-text-faint{background-color:var(--color-text-faint)}.bg-transparent{background-color:#0000}.bg-warn{background-color:var(--color-warn)}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:0}.p-0\\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\\.5{padding:calc(var(--spacing) * 2.5)}.p-6{padding:calc(var(--spacing) * 6)}.px-0{padding-inline:0}.px-0\\.25{padding-inline:calc(var(--spacing) * .25)}.px-1{padding-inline:var(--spacing)}.px-1\\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-\\[3px\\]{padding-inline:3px}.py-0{padding-block:0}.py-0\\.5{padding-block:calc(var(--spacing) * .5)}.py-0\\.25{padding-block:calc(var(--spacing) * .25)}.py-1{padding-block:var(--spacing)}.py-1\\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-px{padding-block:1px}.pt-0{padding-top:0}.pt-0\\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:var(--spacing)}.pt-1\\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pr-1{padding-right:var(--spacing)}.pr-1\\.5{padding-right:calc(var(--spacing) * 1.5)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pb-1{padding-bottom:var(--spacing)}.pb-1\\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pl-0{padding-left:0}.pl-0\\.5{padding-left:calc(var(--spacing) * .5)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-2\\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.text-center{text-align:center}.text-end{text-align:end}.text-justify{text-align:justify}.text-left{text-align:left}.text-right{text-align:right}.text-start{text-align:start}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.font-serif{font-family:var(--font-serif)}.text-\\[9\\.5px\\]{font-size:9.5px}.text-\\[9px\\]{font-size:9px}.text-\\[10\\.5px\\]{font-size:10.5px}.text-\\[10px\\]{font-size:10px}.text-\\[11\\.5px\\]{font-size:11.5px}.text-\\[11px\\]{font-size:11px}.text-\\[12\\.5px\\]{font-size:12.5px}.text-\\[12px\\]{font-size:12px}.text-\\[13px\\]{font-size:13px}.text-\\[15px\\]{font-size:15px}.leading-3{--tw-leading:calc(var(--spacing) * 3);line-height:calc(var(--spacing) * 3)}.leading-3\\.5{--tw-leading:calc(var(--spacing) * 3.5);line-height:calc(var(--spacing) * 3.5)}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-extralight{--tw-font-weight:var(--font-weight-extralight);font-weight:var(--font-weight-extralight)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.font-thin{--tw-font-weight:var(--font-weight-thin);font-weight:var(--font-weight-thin)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-normal{overflow-wrap:normal;word-break:normal}.break-words,.wrap-break-word{overflow-wrap:break-word}.break-all{word-break:break-all}.break-keep{word-break:keep-all}.text-ellipsis{text-overflow:ellipsis}.whitespace-break-spaces{white-space:break-spaces}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.text-\\[var\\(--rg-error-text\\)\\]{color:var(--rg-error-text)}.text-\\[var\\(--rg-submit-fg\\)\\]{color:var(--rg-submit-fg)}.text-\\[var\\(--rg-text-primary\\)\\]{color:var(--rg-text-primary)}.text-\\[var\\(--rg-text-primary-85\\)\\]{color:var(--rg-text-primary-85)}.text-\\[var\\(--rg-text-secondary\\)\\]{color:var(--rg-text-secondary)}.text-accent{color:var(--color-accent)}.text-danger{color:var(--color-danger)}.text-success{color:var(--color-success)}.text-text{color:var(--color-text)}.text-text-dim{color:var(--color-text-dim)}.text-text-faint{color:var(--color-text-faint)}.text-warn{color:var(--color-warn)}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.not-italic{font-style:normal}.lining-nums{--tw-numeric-figure:lining-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.oldstyle-nums{--tw-numeric-figure:oldstyle-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.proportional-nums{--tw-numeric-spacing:proportional-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.slashed-zero{--tw-slashed-zero:slashed-zero;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.accent-accent{accent-color:var(--color-accent)}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.\\[box-shadow\\:var\\(--rg-shadow\\)\\]{box-shadow:var(--rg-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.\\[filter\\:var\\(--rg-drop-shadow\\)\\]{filter:var(--rg-drop-shadow)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[grid-template-columns\\]{transition-property:grid-template-columns;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[grid-template-rows\\]{transition-property:grid-template-rows;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[opacity\\,transform\\]{transition-property:opacity,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[padding\\,border-radius\\,transform\\]{transition-property:padding,border-radius,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[top\\,left\\,width\\,height\\,opacity\\,border-radius\\]{transition-property:top,left,width,height,opacity,border-radius;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[transform\\,color\\]{transition-property:transform,color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[transform\\,opacity\\]{transition-property:transform,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.delay-\\[80ms\\]{transition-delay:80ms}.duration-60{--tw-duration:60ms;transition-duration:60ms}.duration-75{--tw-duration:75ms;transition-duration:75ms}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-120{--tw-duration:.12s;transition-duration:.12s}.duration-140{--tw-duration:.14s;transition-duration:.14s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-180{--tw-duration:.18s;transition-duration:.18s}.duration-220{--tw-duration:.22s;transition-duration:.22s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-400{--tw-duration:.4s;transition-duration:.4s}.ease-\\[cubic-bezier\\(0\\,0\\,0\\.2\\,1\\)\\]{--tw-ease:cubic-bezier(0,0,.2,1);transition-timing-function:cubic-bezier(0,0,.2,1)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.will-change-\\[opacity\\,transform\\]{will-change:opacity,transform}.will-change-transform{will-change:transform}.contain-layout{--tw-contain-layout:layout;contain:var(--tw-contain-size,) var(--tw-contain-layout,) var(--tw-contain-paint,) var(--tw-contain-style,)}.outline-none{--tw-outline-style:none;outline-style:none}.select-all{-webkit-user-select:all;user-select:all}.select-none{-webkit-user-select:none;user-select:none}.\\[corner-shape\\:superellipse\\(1\\.25\\)\\]{corner-shape:superellipse(1.25)}.\\[font-synthesis\\:none\\]{font-synthesis:none}.group-open\\:rotate-90:is(:where(.group):is([open],:popover-open,:open) *){rotate:90deg}@media (hover:hover){.group-hover\\:text-\\[var\\(--rg-text-primary\\)\\]:is(:where(.group):hover *){color:var(--rg-text-primary)}.group-hover\\:opacity-100:is(:where(.group):hover *){opacity:1}}.placeholder\\:text-text-faint::placeholder{color:var(--color-text-faint)}@media (hover:hover){.hover\\:bg-\\[var\\(--rg-error-bg-hover\\)\\]:hover{background-color:var(--rg-error-bg-hover)}.hover\\:bg-\\[var\\(--rg-surface-active\\)\\]:hover{background-color:var(--rg-surface-active)}.hover\\:bg-\\[var\\(--rg-surface-hover\\)\\]:hover{background-color:var(--rg-surface-hover)}.hover\\:bg-accent-hover:hover{background-color:var(--color-accent-hover)}.hover\\:bg-accent\\/50:hover{background-color:#5e6ad280}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-accent\\/50:hover{background-color:color-mix(in oklab, var(--color-accent) 50%, transparent)}}.hover\\:bg-danger\\/30:hover{background-color:#eb57574d}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-danger\\/30:hover{background-color:color-mix(in oklab, var(--color-danger) 30%, transparent)}}.hover\\:bg-surface-2:hover{background-color:var(--color-surface-2)}.hover\\:bg-surface-3:hover{background-color:var(--color-surface-3)}.hover\\:text-\\[var\\(--rg-text-primary\\)\\]:hover{color:var(--rg-text-primary)}.hover\\:text-accent:hover{color:var(--color-accent)}.hover\\:text-danger:hover{color:var(--color-danger)}.hover\\:text-text:hover{color:var(--color-text)}.hover\\:underline:hover{text-decoration-line:underline}.hover\\:opacity-80:hover{opacity:.8}}.focus\\:border-accent:focus{border-color:var(--color-accent)}.active\\:cursor-grabbing:active{cursor:grabbing}.active\\:bg-accent:active{background-color:var(--color-accent)}.disabled\\:cursor-default:disabled{cursor:default}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:bg-surface-3:disabled{background-color:var(--color-surface-3)}.disabled\\:text-text-faint:disabled{color:var(--color-text-faint)}.disabled\\:opacity-40:disabled{opacity:.4}@media (hover:hover){.disabled\\:hover\\:bg-surface-2:disabled:hover{background-color:var(--color-surface-2)}}}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=light],:host([data-theme=light]){--color-bg:#fbfbfc;--color-surface:#fff;--color-surface-2:#f4f4f6;--color-surface-3:#e9e9ee;--color-border:#e2e2e8;--color-border-strong:#cfcfd8;--color-text:#1b1c20;--color-text-dim:#5c5f6a;--color-text-faint:#9a9da8;--color-accent-soft:#5e6ad21f;--color-danger-soft:#eb57571a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--color-bg:#fbfbfc;--color-surface:#fff;--color-surface-2:#f4f4f6;--color-surface-3:#e9e9ee;--color-border:#e2e2e8;--color-border-strong:#cfcfd8;--color-text:#1b1c20;--color-text-dim:#5c5f6a;--color-text-faint:#9a9da8;--color-accent-soft:#5e6ad21f;--color-danger-soft:#eb57571a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}body{background-color:var(--color-bg);font-family:var(--font-sans);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-width:320px;margin:0;font-size:13px}@keyframes geist-spinner-fade{0%{opacity:1}to{opacity:.15}}[data-tip]{position:relative}[data-tip]:hover:after{content:attr(data-tip);color:#fff;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;z-index:60;background:#1b1c20;border-radius:6px;max-width:260px;padding:3px 8px;font-size:10.5px;font-weight:500;line-height:1.35;position:absolute;bottom:calc(100% + 6px);left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 4px 12px #0000004d}[data-tip][data-tip-pos~=right]:hover:after{left:0;transform:none}[data-tip][data-tip-pos~=left]:hover:after{left:auto;right:0;transform:none}[data-tip][data-tip-pos~=bottom]:hover:after{top:calc(100% + 6px);bottom:auto}.no-scrollbar{scrollbar-width:none}.no-scrollbar::-webkit-scrollbar{display:none}.lg-md p{margin:0 0 6px}.lg-md p:last-child{margin-bottom:0}.lg-md a{color:var(--color-accent);word-break:break-all;text-decoration:none}.lg-md a:hover{text-decoration:underline}.lg-md code{background:var(--color-surface-2);border:1px solid var(--color-border);font-family:var(--font-mono);border-radius:4px;padding:0 4px;font-size:11px}.lg-md pre{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:6px;margin:6px 0;padding:8px;overflow-x:auto}.lg-md pre code{white-space:pre;background:0 0;border:none;padding:0;font-size:11px}.lg-md ul,.lg-md ol{flex-direction:column;gap:2px;margin:4px 0 6px;padding-left:18px;display:flex}.lg-md ul{list-style:outside}.lg-md ol{list-style:decimal}.lg-md h4{margin:8px 0 4px;font-size:12px;font-weight:600}.lg-md lg-media{display:block}.lg-md lg-media img,.lg-md lg-media video{border:1px solid var(--color-border);border-radius:6px;max-width:100%;margin:4px 0}.lg-md video{border:1px solid var(--color-border);background:#000;border-radius:6px;max-width:100%;margin:4px 0}.lg-md img{border:1px solid var(--color-border);border-radius:6px;max-width:100%;margin:4px 0}.lg-md strong{font-weight:600}*{scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:4px}::-webkit-scrollbar-track{background:0 0}@property --tw-rotate-x{syntax:\"*\";inherits:false}@property --tw-rotate-y{syntax:\"*\";inherits:false}@property --tw-rotate-z{syntax:\"*\";inherits:false}@property --tw-skew-x{syntax:\"*\";inherits:false}@property --tw-skew-y{syntax:\"*\";inherits:false}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-leading{syntax:\"*\";inherits:false}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-tracking{syntax:\"*\";inherits:false}@property --tw-ordinal{syntax:\"*\";inherits:false}@property --tw-slashed-zero{syntax:\"*\";inherits:false}@property --tw-numeric-figure{syntax:\"*\";inherits:false}@property --tw-numeric-spacing{syntax:\"*\";inherits:false}@property --tw-numeric-fraction{syntax:\"*\";inherits:false}@property --tw-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\"*\";inherits:false}@property --tw-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\"*\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\"*\";inherits:false}@property --tw-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\"*\";inherits:false}@property --tw-inset-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\"*\";inherits:false}@property --tw-ring-offset-width{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\"*\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-blur{syntax:\"*\";inherits:false}@property --tw-brightness{syntax:\"*\";inherits:false}@property --tw-contrast{syntax:\"*\";inherits:false}@property --tw-grayscale{syntax:\"*\";inherits:false}@property --tw-hue-rotate{syntax:\"*\";inherits:false}@property --tw-invert{syntax:\"*\";inherits:false}@property --tw-opacity{syntax:\"*\";inherits:false}@property --tw-saturate{syntax:\"*\";inherits:false}@property --tw-sepia{syntax:\"*\";inherits:false}@property --tw-drop-shadow{syntax:\"*\";inherits:false}@property --tw-drop-shadow-color{syntax:\"*\";inherits:false}@property --tw-drop-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:\"*\";inherits:false}@property --tw-backdrop-blur{syntax:\"*\";inherits:false}@property --tw-backdrop-brightness{syntax:\"*\";inherits:false}@property --tw-backdrop-contrast{syntax:\"*\";inherits:false}@property --tw-backdrop-grayscale{syntax:\"*\";inherits:false}@property --tw-backdrop-hue-rotate{syntax:\"*\";inherits:false}@property --tw-backdrop-invert{syntax:\"*\";inherits:false}@property --tw-backdrop-opacity{syntax:\"*\";inherits:false}@property --tw-backdrop-saturate{syntax:\"*\";inherits:false}@property --tw-backdrop-sepia{syntax:\"*\";inherits:false}@property --tw-duration{syntax:\"*\";inherits:false}@property --tw-ease{syntax:\"*\";inherits:false}@property --tw-contain-size{syntax:\"*\";inherits:false}@property --tw-contain-layout{syntax:\"*\";inherits:false}@property --tw-contain-paint{syntax:\"*\";inherits:false}@property --tw-contain-style{syntax:\"*\";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}";
|
|
47311
47373
|
//#endregion
|
|
47312
47374
|
//#region src/page/index.tsx
|
|
47313
47375
|
Br();
|
|
47314
|
-
var
|
|
47315
|
-
function
|
|
47376
|
+
var U4 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-danger size-2 shrink-0 animate-pulse rounded-full\">"), W4 = /*#__PURE__*/ N("<span class=\"text-text min-w-[5ch] text-[11px] font-medium tabular-nums\">"), G4 = /*#__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"), K4 = /*#__PURE__*/ N("<p class=\"text-warn px-1.5 pt-1 pb-1.5 text-[10.5px] font-semibold tracking-wide uppercase\">Needs review"), q4 = /*#__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"), J4 = /*#__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\">"), Y4 = /*#__PURE__*/ N("<div><div title=\"Drag to resize\">"), X4 = /*#__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\">"), Z4 = /*#__PURE__*/ N("<span class=\"bg-border h-4 w-px\"aria-hidden>"), Q4 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-warn size-2 rounded-full\">"), $4 = /*#__PURE__*/ N("<span class=\"text-warn min-w-[3.5ch] text-left text-[11px] font-medium tabular-nums\"> rev"), e3 = /*#__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>"), t3 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-accent size-2 shrink-0 animate-pulse rounded-full\">"), n3 = /*#__PURE__*/ N("<span class=\"text-text min-w-[3ch] text-[11px] font-medium tabular-nums\">s"), r3 = /*#__PURE__*/ N("<span class=\"text-text-dim min-w-[7ch] text-[11px] tabular-nums\"> states"), i3 = /*#__PURE__*/ N("<p class=\"text-text-faint px-1.5 pb-1.5 text-[11.5px]\">No agents running right now."), a3 = /*#__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\"> · <!> · ");
|
|
47377
|
+
function o3(e = {}) {
|
|
47316
47378
|
if (typeof window > "u" || window.__LINEAR_GRAB_PAGE__) return;
|
|
47317
47379
|
window.__LINEAR_GRAB_PAGE__ = !0;
|
|
47318
47380
|
let t = () => {
|
|
@@ -47344,17 +47406,17 @@ function J4(e = {}) {
|
|
|
47344
47406
|
"keypress"
|
|
47345
47407
|
]) window.addEventListener(e, n, { capture: !0 });
|
|
47346
47408
|
let r = t.attachShadow({ mode: "open" }), i = document.createElement("style");
|
|
47347
|
-
i.textContent =
|
|
47409
|
+
i.textContent = H4, r.appendChild(i);
|
|
47348
47410
|
let a = document.createElement("div");
|
|
47349
47411
|
r.appendChild(a);
|
|
47350
|
-
let o = () => a.setAttribute("data-theme",
|
|
47351
|
-
o(), matchMedia("(prefers-color-scheme: light)").addEventListener("change", o), nt(() => j(
|
|
47412
|
+
let o = () => a.setAttribute("data-theme", s3());
|
|
47413
|
+
o(), matchMedia("(prefers-color-scheme: light)").addEventListener("change", o), nt(() => j(p3, { get defaultOpen() {
|
|
47352
47414
|
return e.defaultOpen ?? !1;
|
|
47353
47415
|
} }), a);
|
|
47354
47416
|
};
|
|
47355
47417
|
document.body ? t() : document.addEventListener("DOMContentLoaded", t, { once: !0 });
|
|
47356
47418
|
}
|
|
47357
|
-
function
|
|
47419
|
+
function s3() {
|
|
47358
47420
|
try {
|
|
47359
47421
|
let e = [document.body, document.documentElement];
|
|
47360
47422
|
for (let t of e) {
|
|
@@ -47364,133 +47426,140 @@ function Y4() {
|
|
|
47364
47426
|
} catch {}
|
|
47365
47427
|
return matchMedia("(prefers-color-scheme: light)").matches ? "light" : "dark";
|
|
47366
47428
|
}
|
|
47367
|
-
var
|
|
47368
|
-
function
|
|
47429
|
+
var c3 = 130, l3 = 36, u3 = 380, d3 = 280, f3 = 720;
|
|
47430
|
+
function p3(e) {
|
|
47369
47431
|
let [t, n] = T(e.defaultOpen), [r, i] = T("right"), [a, o] = T({
|
|
47370
|
-
x: Math.max(8, window.innerWidth -
|
|
47371
|
-
y: Math.max(8, window.innerHeight -
|
|
47432
|
+
x: Math.max(8, window.innerWidth - c3 - 24),
|
|
47433
|
+
y: Math.max(8, window.innerHeight - l3 - 20)
|
|
47372
47434
|
}), [s, c] = T({
|
|
47373
47435
|
running: [],
|
|
47374
47436
|
review: []
|
|
47375
|
-
}), l = () => s().running, u = () => s().review, [d, f] = T(!1), [p, m] = T(HD().phase), [h, g] = T(
|
|
47437
|
+
}), l = () => s().running, u = () => s().review, [d, f] = T(!1), [p, m] = T(HD().phase), [h, g] = T({
|
|
47438
|
+
active: !1,
|
|
47439
|
+
msLeft: 0,
|
|
47440
|
+
total: 0,
|
|
47441
|
+
byTrigger: {}
|
|
47442
|
+
}), [_, v] = T(0);
|
|
47376
47443
|
ie(() => {
|
|
47377
47444
|
let e = setInterval(() => {
|
|
47378
|
-
p() === "recording" &&
|
|
47445
|
+
p() === "recording" && v(Date.now() - (HD().startedAt ?? Date.now()));
|
|
47379
47446
|
}, 250);
|
|
47380
47447
|
ae(() => clearInterval(e));
|
|
47381
47448
|
});
|
|
47382
|
-
let
|
|
47449
|
+
let y = (e) => {
|
|
47383
47450
|
let t = Math.floor(e / 1e3);
|
|
47384
47451
|
return `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
|
|
47385
|
-
}, [
|
|
47386
|
-
x: Math.min(Math.max(8, e.x), window.innerWidth -
|
|
47387
|
-
y: Math.min(Math.max(8, e.y), window.innerHeight -
|
|
47388
|
-
}),
|
|
47389
|
-
x: Math.min(Math.max(8 - (
|
|
47452
|
+
}, [b, x] = T(null), S = (e) => ({
|
|
47453
|
+
x: Math.min(Math.max(8, e.x), window.innerWidth - c3 - 8),
|
|
47454
|
+
y: Math.min(Math.max(8, e.y), window.innerHeight - l3 - 8)
|
|
47455
|
+
}), C = (e) => ({
|
|
47456
|
+
x: Math.min(Math.max(8 - (ne() - 80), e.x), window.innerWidth - 80),
|
|
47390
47457
|
y: Math.min(Math.max(0, e.y), window.innerHeight - 80)
|
|
47391
|
-
}), [
|
|
47458
|
+
}), [w, E] = T(!1), [k, ee] = T("cloud"), [te, A] = T(!1), [ne, re] = T(u3), oe = (e) => Math.min(f3, Math.max(d3, Math.min(e, window.innerWidth - 60)));
|
|
47392
47459
|
O(() => {
|
|
47393
|
-
let e = document.documentElement, n = t() &&
|
|
47394
|
-
e.style.transition = "margin 0.2s ease", e.style.marginRight = n && r() === "right" ? `${
|
|
47460
|
+
let e = document.documentElement, n = t() && w();
|
|
47461
|
+
e.style.transition = "margin 0.2s ease", e.style.marginRight = n && r() === "right" ? `${ne()}px` : "", e.style.marginLeft = n && r() === "left" ? `${ne()}px` : "";
|
|
47395
47462
|
}), ae(() => {
|
|
47396
47463
|
document.documentElement.style.marginRight = "", document.documentElement.style.marginLeft = "";
|
|
47397
47464
|
});
|
|
47398
|
-
let
|
|
47399
|
-
let e = !
|
|
47400
|
-
|
|
47465
|
+
let se = () => {
|
|
47466
|
+
let e = !w();
|
|
47467
|
+
E(e), e && x(null), Er({
|
|
47401
47468
|
panelMode: e ? "pinned" : "overlay",
|
|
47402
47469
|
panelPos: void 0
|
|
47403
47470
|
});
|
|
47404
47471
|
};
|
|
47405
47472
|
ie(() => {
|
|
47406
47473
|
Tr().then((e) => {
|
|
47407
|
-
e.panelSide && i(e.panelSide), e.launcherPos && o(
|
|
47474
|
+
e.panelSide && i(e.panelSide), e.launcherPos && o(S(e.launcherPos)), e.panelPos && x(C(e.panelPos)), e.panelWidth && re(oe(e.panelWidth)), E(e.panelMode === "pinned"), ee(e.workflowMode ?? "cloud");
|
|
47408
47475
|
});
|
|
47409
47476
|
let e = Mr((e) => {
|
|
47410
47477
|
e === "settings" && Tr().then((e) => {
|
|
47411
|
-
i(e.panelSide ?? "right"),
|
|
47412
|
-
}), e === "grab" &&
|
|
47478
|
+
i(e.panelSide ?? "right"), E(e.panelMode === "pinned"), ee(e.workflowMode ?? "cloud");
|
|
47479
|
+
}), e === "grab" && k() !== "local" && n(!0);
|
|
47413
47480
|
}), t = () => {
|
|
47414
|
-
|
|
47481
|
+
A(!0), setTimeout(() => A(!1), 1600);
|
|
47415
47482
|
};
|
|
47416
47483
|
window.addEventListener(zZ, t);
|
|
47417
47484
|
let r = () => {
|
|
47418
|
-
f(!1),
|
|
47485
|
+
f(!1), w() || n(!1);
|
|
47419
47486
|
};
|
|
47420
47487
|
window.addEventListener(BZ, r);
|
|
47421
47488
|
let s = () => n(!0);
|
|
47422
47489
|
window.addEventListener("linear-grab:picker-finished", s), ae(() => {
|
|
47423
47490
|
window.removeEventListener(zZ, t), window.removeEventListener(BZ, r), window.removeEventListener("linear-grab:picker-finished", s);
|
|
47424
47491
|
});
|
|
47425
|
-
let l = e$(c)
|
|
47426
|
-
|
|
47492
|
+
let l = e$(c);
|
|
47493
|
+
ae(i2(g));
|
|
47494
|
+
let u = HD().phase, d = UD((e) => {
|
|
47495
|
+
m(e.phase), e.phase === "recording" && u !== "recording" && !w() && n(!1), e.phase === "ready" && u !== "ready" && (oj("capture"), n(!0)), u = e.phase;
|
|
47427
47496
|
}), p = () => {
|
|
47428
|
-
o(
|
|
47429
|
-
let e =
|
|
47430
|
-
e &&
|
|
47497
|
+
o(S(a()));
|
|
47498
|
+
let e = b();
|
|
47499
|
+
e && x(C(e));
|
|
47431
47500
|
};
|
|
47432
47501
|
window.addEventListener("resize", p), ae(() => {
|
|
47433
47502
|
e(), l(), d(), window.removeEventListener("resize", p);
|
|
47434
47503
|
});
|
|
47435
47504
|
});
|
|
47436
|
-
let
|
|
47505
|
+
let ce = !1, le = (e) => {
|
|
47437
47506
|
if (e.button !== 0) return;
|
|
47438
47507
|
let t = {
|
|
47439
47508
|
x: e.clientX,
|
|
47440
47509
|
y: e.clientY
|
|
47441
47510
|
}, n = a();
|
|
47442
|
-
|
|
47511
|
+
ce = !1;
|
|
47443
47512
|
let r = (e) => {
|
|
47444
47513
|
let r = e.clientX - t.x, i = e.clientY - t.y;
|
|
47445
|
-
Math.abs(r) + Math.abs(i) > 4 && (
|
|
47514
|
+
Math.abs(r) + Math.abs(i) > 4 && (ce = !0), ce && o(S({
|
|
47446
47515
|
x: n.x + r,
|
|
47447
47516
|
y: n.y + i
|
|
47448
47517
|
}));
|
|
47449
47518
|
}, i = () => {
|
|
47450
|
-
window.removeEventListener("pointermove", r), window.removeEventListener("pointerup", i),
|
|
47451
|
-
|
|
47519
|
+
window.removeEventListener("pointermove", r), window.removeEventListener("pointerup", i), ce && Er({ launcherPos: a() }), setTimeout(() => {
|
|
47520
|
+
ce = !1;
|
|
47452
47521
|
}, 0);
|
|
47453
47522
|
};
|
|
47454
47523
|
window.addEventListener("pointermove", r), window.addEventListener("pointerup", i);
|
|
47455
|
-
},
|
|
47524
|
+
}, ue = () => a().y > 260, de = (e) => {
|
|
47456
47525
|
f(!1), oj("activity", e), n(!0);
|
|
47457
|
-
},
|
|
47526
|
+
}, fe = (e) => {
|
|
47458
47527
|
if (e.button !== 0) return;
|
|
47459
47528
|
e.preventDefault(), e.stopPropagation();
|
|
47460
|
-
let t = e.clientX, n =
|
|
47461
|
-
let a = e.clientX - t, o = r() === "right" ? -a : a, s =
|
|
47462
|
-
|
|
47529
|
+
let t = e.clientX, n = ne(), i = b(), a = (e) => {
|
|
47530
|
+
let a = e.clientX - t, o = r() === "right" ? -a : a, s = oe(n + o);
|
|
47531
|
+
re(s), i && r() === "right" && x(C({
|
|
47463
47532
|
x: i.x + (n - s),
|
|
47464
47533
|
y: i.y
|
|
47465
47534
|
}));
|
|
47466
47535
|
}, o = () => {
|
|
47467
47536
|
window.removeEventListener("pointermove", a), window.removeEventListener("pointerup", o), Er({
|
|
47468
|
-
panelWidth:
|
|
47469
|
-
...
|
|
47537
|
+
panelWidth: ne(),
|
|
47538
|
+
...b() ? { panelPos: b() } : {}
|
|
47470
47539
|
});
|
|
47471
47540
|
};
|
|
47472
47541
|
window.addEventListener("pointermove", a), window.addEventListener("pointerup", o);
|
|
47473
|
-
},
|
|
47542
|
+
}, pe = (e) => {
|
|
47474
47543
|
if (e.button !== 0) return;
|
|
47475
47544
|
if (e.detail === 2) {
|
|
47476
|
-
|
|
47545
|
+
x(null), Er({ panelPos: void 0 });
|
|
47477
47546
|
return;
|
|
47478
47547
|
}
|
|
47479
47548
|
let t = {
|
|
47480
47549
|
x: e.clientX,
|
|
47481
47550
|
y: e.clientY
|
|
47482
|
-
}, n =
|
|
47483
|
-
x: r() === "right" ? window.innerWidth -
|
|
47551
|
+
}, n = b() ?? {
|
|
47552
|
+
x: r() === "right" ? window.innerWidth - ne() : 0,
|
|
47484
47553
|
y: 0
|
|
47485
47554
|
}, i = !1, a = (e) => {
|
|
47486
47555
|
let r = e.clientX - t.x, a = e.clientY - t.y;
|
|
47487
|
-
Math.abs(r) + Math.abs(a) > 4 && (i = !0), i &&
|
|
47556
|
+
Math.abs(r) + Math.abs(a) > 4 && (i = !0), i && x(C({
|
|
47488
47557
|
x: n.x + r,
|
|
47489
47558
|
y: n.y + a
|
|
47490
47559
|
}));
|
|
47491
47560
|
}, o = () => {
|
|
47492
47561
|
window.removeEventListener("pointermove", a), window.removeEventListener("pointerup", o);
|
|
47493
|
-
let e =
|
|
47562
|
+
let e = b();
|
|
47494
47563
|
i && e && Er({ panelPos: e });
|
|
47495
47564
|
};
|
|
47496
47565
|
window.addEventListener("pointermove", a), window.addEventListener("pointerup", o);
|
|
@@ -47500,41 +47569,41 @@ function t3(e) {
|
|
|
47500
47569
|
return !t();
|
|
47501
47570
|
},
|
|
47502
47571
|
get children() {
|
|
47503
|
-
var e =
|
|
47572
|
+
var e = J4(), t = e.firstChild;
|
|
47504
47573
|
return t.$$click = () => {
|
|
47505
|
-
|
|
47506
|
-
}, t.$$pointerdown =
|
|
47574
|
+
ce || p() === "recording" || h().active || (f(!1), n(!0));
|
|
47575
|
+
}, t.$$pointerdown = le, P(t, j(M, {
|
|
47507
47576
|
get when() {
|
|
47508
|
-
return p() === "recording";
|
|
47577
|
+
return p() === "recording" || h().active;
|
|
47509
47578
|
},
|
|
47510
47579
|
get fallback() {
|
|
47511
47580
|
return [
|
|
47512
47581
|
(() => {
|
|
47513
|
-
var e =
|
|
47582
|
+
var e = X4();
|
|
47514
47583
|
return e.$$click = () => {
|
|
47515
|
-
|
|
47516
|
-
}, P(e, j(
|
|
47584
|
+
ce || (f(!1), n(!0));
|
|
47585
|
+
}, P(e, j(B4, { size: 13 })), e;
|
|
47517
47586
|
})(),
|
|
47518
|
-
|
|
47587
|
+
Z4(),
|
|
47519
47588
|
(() => {
|
|
47520
|
-
var e =
|
|
47589
|
+
var e = e3(), t = e.firstChild, n = t.nextSibling;
|
|
47521
47590
|
return e.$$click = (e) => {
|
|
47522
|
-
e.stopPropagation(), !
|
|
47591
|
+
e.stopPropagation(), !ce && f((e) => !e);
|
|
47523
47592
|
}, P(n, (() => {
|
|
47524
|
-
var e = $e(() => !!
|
|
47593
|
+
var e = $e(() => !!te());
|
|
47525
47594
|
return () => e() ? "Copied ✓" : `${l().length} run`;
|
|
47526
47595
|
})()), P(e, j(M, {
|
|
47527
47596
|
get when() {
|
|
47528
|
-
return $e(() => !
|
|
47597
|
+
return $e(() => !te())() && u().length > 0;
|
|
47529
47598
|
},
|
|
47530
47599
|
get children() {
|
|
47531
|
-
return [
|
|
47532
|
-
var e =
|
|
47600
|
+
return [Q4(), (() => {
|
|
47601
|
+
var e = $4(), t = e.firstChild;
|
|
47533
47602
|
return P(e, () => u().length, t), e;
|
|
47534
47603
|
})()];
|
|
47535
47604
|
}
|
|
47536
47605
|
}), null), D((e) => {
|
|
47537
|
-
var r = `size-2 rounded-full ${
|
|
47606
|
+
var r = `size-2 rounded-full ${te() ? "bg-success" : l().length ? "bg-success animate-pulse" : "bg-text-faint"}`, i = `min-w-[3.5ch] text-left text-[11px] font-medium tabular-nums ${te() ? "text-success" : "text-text-dim"}`;
|
|
47538
47607
|
return r !== e.e && st(t, e.e = r), i !== e.t && st(n, e.t = i), e;
|
|
47539
47608
|
}, {
|
|
47540
47609
|
e: void 0,
|
|
@@ -47544,39 +47613,65 @@ function t3(e) {
|
|
|
47544
47613
|
];
|
|
47545
47614
|
},
|
|
47546
47615
|
get children() {
|
|
47547
|
-
return
|
|
47548
|
-
|
|
47549
|
-
|
|
47550
|
-
|
|
47551
|
-
|
|
47552
|
-
|
|
47553
|
-
|
|
47554
|
-
|
|
47555
|
-
|
|
47556
|
-
|
|
47557
|
-
|
|
47558
|
-
|
|
47559
|
-
|
|
47616
|
+
return j(M, {
|
|
47617
|
+
get when() {
|
|
47618
|
+
return p() === "recording";
|
|
47619
|
+
},
|
|
47620
|
+
get fallback() {
|
|
47621
|
+
return [
|
|
47622
|
+
t3(),
|
|
47623
|
+
(() => {
|
|
47624
|
+
var e = n3(), t = e.firstChild;
|
|
47625
|
+
return P(e, () => Math.ceil(h().msLeft / 1e3), t), e;
|
|
47626
|
+
})(),
|
|
47627
|
+
(() => {
|
|
47628
|
+
var e = r3(), t = e.firstChild;
|
|
47629
|
+
return P(e, () => h().total, t), D(() => it(e, "title", Object.entries(h().byTrigger).map(([e, t]) => `${t} ${e}`).join(" · ") || "hover / open the component to record its states")), e;
|
|
47630
|
+
})(),
|
|
47631
|
+
(() => {
|
|
47632
|
+
var e = G4();
|
|
47633
|
+
return e.$$click = (e) => {
|
|
47634
|
+
e.stopPropagation(), !ce && o2();
|
|
47635
|
+
}, e;
|
|
47636
|
+
})()
|
|
47637
|
+
];
|
|
47638
|
+
},
|
|
47639
|
+
get children() {
|
|
47640
|
+
return [
|
|
47641
|
+
U4(),
|
|
47642
|
+
(() => {
|
|
47643
|
+
var e = W4();
|
|
47644
|
+
return P(e, () => y(_())), e;
|
|
47645
|
+
})(),
|
|
47646
|
+
(() => {
|
|
47647
|
+
var e = G4();
|
|
47648
|
+
return e.$$click = () => {
|
|
47649
|
+
ce || eO();
|
|
47650
|
+
}, e;
|
|
47651
|
+
})()
|
|
47652
|
+
];
|
|
47653
|
+
}
|
|
47654
|
+
});
|
|
47560
47655
|
}
|
|
47561
47656
|
})), P(e, j(M, {
|
|
47562
47657
|
get when() {
|
|
47563
47658
|
return d();
|
|
47564
47659
|
},
|
|
47565
47660
|
get children() {
|
|
47566
|
-
var e =
|
|
47661
|
+
var e = q4(), t = e.firstChild;
|
|
47567
47662
|
return P(e, j(M, {
|
|
47568
47663
|
get when() {
|
|
47569
47664
|
return u().length > 0;
|
|
47570
47665
|
},
|
|
47571
47666
|
get children() {
|
|
47572
|
-
return [
|
|
47667
|
+
return [K4(), j(We, {
|
|
47573
47668
|
get each() {
|
|
47574
47669
|
return u();
|
|
47575
47670
|
},
|
|
47576
|
-
children: (e) => j(
|
|
47671
|
+
children: (e) => j(m3, {
|
|
47577
47672
|
agent: e,
|
|
47578
47673
|
review: !0,
|
|
47579
|
-
onOpen:
|
|
47674
|
+
onOpen: de
|
|
47580
47675
|
})
|
|
47581
47676
|
})];
|
|
47582
47677
|
}
|
|
@@ -47585,20 +47680,20 @@ function t3(e) {
|
|
|
47585
47680
|
return l().length > 0;
|
|
47586
47681
|
},
|
|
47587
47682
|
get fallback() {
|
|
47588
|
-
return
|
|
47683
|
+
return i3();
|
|
47589
47684
|
},
|
|
47590
47685
|
get children() {
|
|
47591
47686
|
return j(We, {
|
|
47592
47687
|
get each() {
|
|
47593
47688
|
return l();
|
|
47594
47689
|
},
|
|
47595
|
-
children: (e) => j(
|
|
47690
|
+
children: (e) => j(m3, {
|
|
47596
47691
|
agent: e,
|
|
47597
|
-
onOpen:
|
|
47692
|
+
onOpen: de
|
|
47598
47693
|
})
|
|
47599
47694
|
});
|
|
47600
47695
|
}
|
|
47601
|
-
}), null), D(() => st(e, `bg-surface border-border absolute w-72 rounded-lg border p-1.5 font-sans shadow-2xl ${
|
|
47696
|
+
}), null), D(() => st(e, `bg-surface border-border absolute w-72 rounded-lg border p-1.5 font-sans shadow-2xl ${ue() ? "bottom-full mb-2" : "top-full mt-2"} ${a().x > window.innerWidth - 300 ? "right-0" : "left-0"}`)), e;
|
|
47602
47697
|
}
|
|
47603
47698
|
}), null), D((t) => {
|
|
47604
47699
|
var n = `${a().x}px`, r = `${a().y}px`;
|
|
@@ -47613,23 +47708,23 @@ function t3(e) {
|
|
|
47613
47708
|
return t();
|
|
47614
47709
|
},
|
|
47615
47710
|
get children() {
|
|
47616
|
-
var e =
|
|
47617
|
-
return t.$$pointerdown =
|
|
47711
|
+
var e = Y4(), t = e.firstChild;
|
|
47712
|
+
return t.$$pointerdown = fe, P(e, j(V4, {
|
|
47618
47713
|
onGrab: () => n(!0),
|
|
47619
47714
|
onClose: () => n(!1),
|
|
47620
47715
|
get onHeaderPointerDown() {
|
|
47621
|
-
return
|
|
47716
|
+
return w() ? void 0 : pe;
|
|
47622
47717
|
},
|
|
47623
47718
|
get pinned() {
|
|
47624
|
-
return
|
|
47719
|
+
return w();
|
|
47625
47720
|
},
|
|
47626
|
-
onTogglePin:
|
|
47721
|
+
onTogglePin: se
|
|
47627
47722
|
}), null), D((n) => {
|
|
47628
|
-
var i = `bg-bg text-text border-border fixed z-[2147483645] flex max-w-[100vw] flex-col overflow-hidden font-sans text-[13px] antialiased ${
|
|
47629
|
-
width: `${
|
|
47630
|
-
...!
|
|
47631
|
-
left: `${
|
|
47632
|
-
top: `${
|
|
47723
|
+
var i = `bg-bg text-text border-border fixed z-[2147483645] flex max-w-[100vw] flex-col overflow-hidden font-sans text-[13px] antialiased ${w() ? "" : "shadow-2xl"} ${!w() && b() ? "rounded-xl border" : r() === "right" ? "top-0 right-0 h-screen border-l" : "top-0 left-0 h-screen border-r"}`, a = {
|
|
47724
|
+
width: `${ne()}px`,
|
|
47725
|
+
...!w() && b() ? {
|
|
47726
|
+
left: `${b().x}px`,
|
|
47727
|
+
top: `${b().y}px`,
|
|
47633
47728
|
height: `${Math.min(680, window.innerHeight - 16)}px`
|
|
47634
47729
|
} : {}
|
|
47635
47730
|
}, o = `hover:bg-accent/50 active:bg-accent absolute top-0 z-10 h-full w-1 cursor-col-resize transition-colors ${r() === "right" ? "left-0" : "right-0"}`;
|
|
@@ -47642,19 +47737,19 @@ function t3(e) {
|
|
|
47642
47737
|
}
|
|
47643
47738
|
})];
|
|
47644
47739
|
}
|
|
47645
|
-
function
|
|
47740
|
+
function m3(e) {
|
|
47646
47741
|
return (() => {
|
|
47647
|
-
var t =
|
|
47742
|
+
var t = a3(), n = t.firstChild, r = n.firstChild, i = r.nextSibling, a = i.nextSibling, o = n.nextSibling, s = o.firstChild, c = s.nextSibling;
|
|
47648
47743
|
return c.nextSibling, t.$$click = () => e.onOpen(e.agent.id), P(i, () => e.agent.identifier), P(a, () => e.agent.title), P(o, (() => {
|
|
47649
47744
|
var t = $e(() => !!e.review);
|
|
47650
47745
|
return () => t() ? "PR ready · needs review" : e.agent.stateName;
|
|
47651
|
-
})(), s), P(o, () => e.agent.delegateName, c), P(o, () =>
|
|
47746
|
+
})(), s), P(o, () => e.agent.delegateName, c), P(o, () => h3(e.agent.updatedAt), null), D((t) => dt(r, "background", e.review ? "var(--color-warn)" : e.agent.stateColor)), t;
|
|
47652
47747
|
})();
|
|
47653
47748
|
}
|
|
47654
|
-
function
|
|
47749
|
+
function h3(e) {
|
|
47655
47750
|
let t = Math.max(0, Math.floor((Date.now() - Date.parse(e)) / 1e3));
|
|
47656
47751
|
return t < 60 ? "now" : t < 3600 ? `${Math.floor(t / 60)}m` : t < 86400 ? `${Math.floor(t / 3600)}h` : `${Math.floor(t / 86400)}d`;
|
|
47657
47752
|
}
|
|
47658
47753
|
rt(["pointerdown", "click"]);
|
|
47659
47754
|
//#endregion
|
|
47660
|
-
export {
|
|
47755
|
+
export { o3 as init };
|