linear-grab 0.22.3 → 0.23.1
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 -4
- package/dist/linear-grab.js +459 -179
- package/package.json +1 -1
package/dist/linear-grab.js
CHANGED
|
@@ -45964,39 +45964,241 @@ function u2() {
|
|
|
45964
45964
|
window.addEventListener("mousemove", i, !0), window.addEventListener("click", o, !0), window.addEventListener("keydown", s, !0);
|
|
45965
45965
|
});
|
|
45966
45966
|
}
|
|
45967
|
+
var d2 = 200;
|
|
45968
|
+
function f2(e) {
|
|
45969
|
+
return e.split(",").map((e) => {
|
|
45970
|
+
let t = e.trim();
|
|
45971
|
+
return t.endsWith("ms") ? parseFloat(t) || 0 : t.endsWith("s") ? (parseFloat(t) || 0) * 1e3 : 0;
|
|
45972
|
+
});
|
|
45973
|
+
}
|
|
45974
|
+
function p2(e) {
|
|
45975
|
+
let t = e.id ? `#${e.id}` : "", n = typeof e.className == "string" && e.className ? `.${e.className.split(/\s+/).filter(Boolean).slice(0, 2).join(".")}` : "";
|
|
45976
|
+
return `${e.tagName.toLowerCase()}${t}${n}`;
|
|
45977
|
+
}
|
|
45978
|
+
function m2(e) {
|
|
45979
|
+
if (typeof e.className != "string") return;
|
|
45980
|
+
let t = e.className.split(/\s+/).filter((e) => /^(transition|duration-|delay-|ease-)/.test(e));
|
|
45981
|
+
return t.length ? t.join(" ") : void 0;
|
|
45982
|
+
}
|
|
45983
|
+
function h2(e, t, n, r) {
|
|
45984
|
+
let i = [];
|
|
45985
|
+
return n > 0 && i.push(`remove the ${Math.round(n)}ms transition-delay`), (r?.includes("transition-all") || e.includes("all")) && i.push("scope 'transition-all' to the intended properties (e.g. transition-colors)"), t > 100 && i.push(`shorten ${Math.round(t)}ms → ≤100ms`), i.push("make PRESS feedback instant: 'active:transition-none' (and data-[state=…]:transition-none for toggles) — animate only hover in/out"), i.join("; ");
|
|
45986
|
+
}
|
|
45987
|
+
async function g2() {
|
|
45988
|
+
try {
|
|
45989
|
+
return (await Promise.resolve().then(() => (RZ(), AZ))).getGlobalApi() ?? null;
|
|
45990
|
+
} catch {
|
|
45991
|
+
return null;
|
|
45992
|
+
}
|
|
45993
|
+
}
|
|
45994
|
+
async function _2(e) {
|
|
45995
|
+
let t = await g2(), n = null, r = null;
|
|
45996
|
+
try {
|
|
45997
|
+
n = t?.getDisplayName?.(e) ?? null;
|
|
45998
|
+
} catch {}
|
|
45999
|
+
try {
|
|
46000
|
+
let n = await t?.getSource?.(e);
|
|
46001
|
+
n?.filePath && (r = `${n.filePath}${n.lineNumber == null ? "" : `:${n.lineNumber}`}`);
|
|
46002
|
+
} catch {}
|
|
46003
|
+
return {
|
|
46004
|
+
component: n,
|
|
46005
|
+
source: r
|
|
46006
|
+
};
|
|
46007
|
+
}
|
|
46008
|
+
var v2 = [], y2 = null;
|
|
46009
|
+
function b2(e) {
|
|
46010
|
+
v2.push(e), y2 ??= setTimeout(() => {
|
|
46011
|
+
y2 = null;
|
|
46012
|
+
let e = v2.slice(0, 50).map((e) => ({
|
|
46013
|
+
kind: "css-slowdown",
|
|
46014
|
+
...e
|
|
46015
|
+
}));
|
|
46016
|
+
v2 = [], JO().then((t) => fetch(`${t}/scan/events`, {
|
|
46017
|
+
method: "POST",
|
|
46018
|
+
headers: { "Content-Type": "application/json" },
|
|
46019
|
+
body: JSON.stringify({ events: e }),
|
|
46020
|
+
keepalive: !0
|
|
46021
|
+
})).catch(() => {});
|
|
46022
|
+
}, 1500);
|
|
46023
|
+
}
|
|
46024
|
+
var x2 = [], S2 = /* @__PURE__ */ new Set();
|
|
46025
|
+
function C2(e) {
|
|
46026
|
+
x2 = [e, ...x2].slice(0, 100);
|
|
46027
|
+
for (let e of S2) e(x2);
|
|
46028
|
+
b2(e);
|
|
46029
|
+
}
|
|
46030
|
+
function w2(e) {
|
|
46031
|
+
return S2.add(e), e(x2), () => void S2.delete(e);
|
|
46032
|
+
}
|
|
46033
|
+
function T2() {
|
|
46034
|
+
x2 = x2.filter((e) => e.mode !== "audit");
|
|
46035
|
+
for (let e of S2) e(x2);
|
|
46036
|
+
}
|
|
46037
|
+
var E2 = !1;
|
|
46038
|
+
function D2() {
|
|
46039
|
+
if (E2 || typeof window > "u") return;
|
|
46040
|
+
E2 = !0;
|
|
46041
|
+
let e = 0, t = () => {
|
|
46042
|
+
e = performance.now();
|
|
46043
|
+
};
|
|
46044
|
+
for (let e of [
|
|
46045
|
+
"pointerdown",
|
|
46046
|
+
"pointerup",
|
|
46047
|
+
"keydown"
|
|
46048
|
+
]) window.addEventListener(e, t, {
|
|
46049
|
+
capture: !0,
|
|
46050
|
+
passive: !0
|
|
46051
|
+
});
|
|
46052
|
+
let n = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map();
|
|
46053
|
+
window.addEventListener("transitionrun", (t) => {
|
|
46054
|
+
let i = performance.now() - e;
|
|
46055
|
+
if (i > d2) return;
|
|
46056
|
+
let a = t.target;
|
|
46057
|
+
if (!(a instanceof Element) || a.closest("#linear-grab-root") || a === document.documentElement || a === document.body || t.propertyName.startsWith("--")) return;
|
|
46058
|
+
let o = getComputedStyle(a), s = o.transitionProperty.split(",").map((e) => e.trim()), c = f2(o.transitionDuration), l = f2(o.transitionDelay), u = Math.max(0, s.indexOf(t.propertyName)), d = c[u % c.length] ?? c[0] ?? 0, f = l[u % l.length] ?? l[0] ?? 0;
|
|
46059
|
+
if (d + f < 50) return;
|
|
46060
|
+
let p = r.get(a);
|
|
46061
|
+
if (p) {
|
|
46062
|
+
p.props.add(t.propertyName), p.duration = Math.max(p.duration, d), p.delay = Math.max(p.delay, f);
|
|
46063
|
+
return;
|
|
46064
|
+
}
|
|
46065
|
+
let m = {
|
|
46066
|
+
props: /* @__PURE__ */ new Set([t.propertyName]),
|
|
46067
|
+
duration: d,
|
|
46068
|
+
delay: f,
|
|
46069
|
+
since: i,
|
|
46070
|
+
timer: setTimeout(() => {
|
|
46071
|
+
r.delete(a);
|
|
46072
|
+
let e = p2(a), t = Date.now();
|
|
46073
|
+
if (t - (n.get(e) ?? 0) < 5e3) return;
|
|
46074
|
+
n.set(e, t);
|
|
46075
|
+
let i = m2(a), o = [...m.props];
|
|
46076
|
+
_2(a).then(({ component: n, source: r }) => {
|
|
46077
|
+
C2({
|
|
46078
|
+
mode: "live",
|
|
46079
|
+
page: location.pathname,
|
|
46080
|
+
element: e,
|
|
46081
|
+
component: n,
|
|
46082
|
+
source: r,
|
|
46083
|
+
properties: o,
|
|
46084
|
+
durationMs: Math.round(m.duration),
|
|
46085
|
+
delayMs: Math.round(m.delay),
|
|
46086
|
+
sinceInputMs: Math.round(m.since),
|
|
46087
|
+
count: 1,
|
|
46088
|
+
classHint: i,
|
|
46089
|
+
suggestion: h2(o, m.duration, m.delay, i),
|
|
46090
|
+
at: t
|
|
46091
|
+
});
|
|
46092
|
+
});
|
|
46093
|
+
}, 300)
|
|
46094
|
+
};
|
|
46095
|
+
r.set(a, m);
|
|
46096
|
+
}, {
|
|
46097
|
+
capture: !0,
|
|
46098
|
+
passive: !0
|
|
46099
|
+
});
|
|
46100
|
+
}
|
|
46101
|
+
var O2 = "button, a, input, select, textarea, [role], [tabindex], [data-state], [aria-expanded]";
|
|
46102
|
+
async function k2() {
|
|
46103
|
+
let e = /* @__PURE__ */ new Map(), t = Array.from(document.querySelectorAll(O2)).slice(0, 3e3);
|
|
46104
|
+
for (let n of t) {
|
|
46105
|
+
if (n.closest("#linear-grab-root")) continue;
|
|
46106
|
+
let t = n.getBoundingClientRect();
|
|
46107
|
+
if (t.width < 2 && t.height < 2) continue;
|
|
46108
|
+
let r = getComputedStyle(n);
|
|
46109
|
+
if (r.cursor !== "pointer" && !n.matches("button, a, input, select, textarea")) continue;
|
|
46110
|
+
let i = f2(r.transitionDuration), a = f2(r.transitionDelay), o = Math.max(...i, 0) + Math.max(...a, 0);
|
|
46111
|
+
if (o < 50) continue;
|
|
46112
|
+
let s = r.transitionProperty.split(",").map((e) => e.trim()), c = m2(n), l = `${n.tagName}|${c ?? s.join()}|${Math.round(o)}`, u = e.get(l);
|
|
46113
|
+
if (u) {
|
|
46114
|
+
u.finding.count += 1;
|
|
46115
|
+
continue;
|
|
46116
|
+
}
|
|
46117
|
+
e.set(l, {
|
|
46118
|
+
example: n,
|
|
46119
|
+
finding: {
|
|
46120
|
+
mode: "audit",
|
|
46121
|
+
page: location.pathname,
|
|
46122
|
+
element: p2(n),
|
|
46123
|
+
component: null,
|
|
46124
|
+
source: null,
|
|
46125
|
+
properties: s,
|
|
46126
|
+
durationMs: Math.round(Math.max(...i, 0)),
|
|
46127
|
+
delayMs: Math.round(Math.max(...a, 0)),
|
|
46128
|
+
count: 1,
|
|
46129
|
+
classHint: c,
|
|
46130
|
+
suggestion: h2(s, Math.max(...i, 0), Math.max(...a, 0), c),
|
|
46131
|
+
at: Date.now()
|
|
46132
|
+
}
|
|
46133
|
+
});
|
|
46134
|
+
}
|
|
46135
|
+
let n = [];
|
|
46136
|
+
for (let { finding: t, example: r } of e.values()) {
|
|
46137
|
+
let { component: e, source: i } = await _2(r);
|
|
46138
|
+
t.component = e, t.source = i, n.push(t);
|
|
46139
|
+
}
|
|
46140
|
+
n.sort((e, t) => t.durationMs + t.delayMs - (e.durationMs + e.delayMs) || t.count - e.count), x2 = [...n, ...x2.filter((e) => e.mode === "live")].slice(0, 100);
|
|
46141
|
+
for (let e of S2) e(x2);
|
|
46142
|
+
for (let e of n) b2(e);
|
|
46143
|
+
return n;
|
|
46144
|
+
}
|
|
46145
|
+
function A2(e) {
|
|
46146
|
+
let t = [
|
|
46147
|
+
`# CSS slowdowns on ${location.host}${location.pathname}`,
|
|
46148
|
+
"Threshold: 50ms (interaction feedback should be instant).",
|
|
46149
|
+
""
|
|
46150
|
+
];
|
|
46151
|
+
for (let n of e) t.push(`## ${n.component ?? n.element}${n.count > 1 ? ` ×${n.count}` : ""} — ${n.durationMs}ms${n.delayMs ? ` +${n.delayMs}ms delay` : ""}`), n.source && t.push(`- source: ${n.source}`), t.push(`- transitions: ${n.properties.join(", ")}`), n.classHint && t.push(`- classes: \`${n.classHint}\``), n.sinceInputMs != null && t.push(`- fired ${n.sinceInputMs}ms after user input (live capture)`), t.push(`- fix: ${n.suggestion}`, "");
|
|
46152
|
+
return t.join("\n");
|
|
46153
|
+
}
|
|
45967
46154
|
//#endregion
|
|
45968
46155
|
//#region src/panel/views/DesignView.tsx
|
|
45969
|
-
var
|
|
45970
|
-
function
|
|
46156
|
+
var j2 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[7ch] text-center\">Extract"), M2 = /*#__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>"), N2 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[5ch] text-center\">Audit"), P2 = /*#__PURE__*/ N("<div class=\"flex max-h-72 flex-col gap-1.5 overflow-y-auto pr-2\">"), F2 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[10ch] text-center\">"), I2 = /*#__PURE__*/ N("<div class=\"flex items-center gap-1.5 px-1\">"), L2 = /*#__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.</p></div></div><div class=\"border-border mt-1 flex flex-col gap-2 border-t pt-3\"><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\">CSS slowdowns</p><p class=\"text-text-faint text-[10.5px] leading-snug\">Transitions/delays ≥50ms on interactive elements — feedback that animates instead of being instant. Live hits appear as you use the app; Audit sweeps the whole page."), R2 = /*#__PURE__*/ N("<p class=\"text-text mt-1 text-[11px] font-semibold\">Interaction states"), z2 = /*#__PURE__*/ N("<svg width=12 height=12 viewBox=\"0 0 16 16\"aria-hidden><rect x=3.5 y=3.5 width=9 height=9 rx=1.5 fill=currentColor>"), B2 = /*#__PURE__*/ N("<span class=\"text-warn text-[10.5px] font-medium tabular-nums\">s · <!> states"), V2 = /*#__PURE__*/ N("<span class=\"text-success text-[12px] leading-none\">✓"), H2 = /*#__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\">"), U2 = /*#__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\">"), W2 = /*#__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\">"), G2 = /*#__PURE__*/ N("<span class=text-text-faint> ×"), K2 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-0.5\"><p class=\"text-text text-[11px] font-medium\">"), q2 = /*#__PURE__*/ N("<span class=text-accent> ← var(<!>)"), J2 = /*#__PURE__*/ N("<p class=\"text-text-dim font-mono text-[10px] leading-snug break-all\">: "), Y2 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-0.5\"><p class=\"text-warn text-[10.5px] font-medium\"> — "), X2 = /*#__PURE__*/ N("<p class=\"text-text-dim font-mono text-[10px] leading-snug break-all\">: <!> → "), Z2 = /*#__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>"), Q2 = /*#__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\">"), $2 = /*#__PURE__*/ N("<p class=\"text-text-faint px-1 text-[10.5px]\">Nothing caught yet — interact with the app, or run Audit."), e4 = /*#__PURE__*/ N("<span class=\"text-text-dim font-mono text-[10px] break-all\">"), t4 = /*#__PURE__*/ N("<div class=\"bg-surface border-border flex flex-col gap-0.5 rounded-lg border p-2\"><div class=\"flex items-center gap-2\"><span class=\"text-warn shrink-0 text-[10px] font-semibold tracking-wide uppercase\"></span><span class=\"text-accent min-w-0 truncate font-mono text-[11.5px]\"></span><span class=\"text-text ml-auto shrink-0 text-[11px] font-medium tabular-nums\">ms</span></div><span class=\"text-text-dim text-[10px] leading-snug\"></span><span class=\"text-text-faint text-[10px] leading-snug\">"), n4 = "linear-grab:genomes:v1", r4 = 30;
|
|
46157
|
+
function i4() {
|
|
45971
46158
|
try {
|
|
45972
|
-
return JSON.parse(localStorage.getItem(
|
|
46159
|
+
return JSON.parse(localStorage.getItem(n4) ?? "[]");
|
|
45973
46160
|
} catch {
|
|
45974
46161
|
return [];
|
|
45975
46162
|
}
|
|
45976
46163
|
}
|
|
45977
|
-
function
|
|
46164
|
+
function a4(e) {
|
|
45978
46165
|
try {
|
|
45979
|
-
localStorage.setItem(
|
|
46166
|
+
localStorage.setItem(n4, JSON.stringify(e.slice(0, r4)));
|
|
45980
46167
|
} catch {}
|
|
45981
46168
|
}
|
|
45982
|
-
var
|
|
45983
|
-
function
|
|
45984
|
-
let [e, t] = T(
|
|
46169
|
+
var o4 = /* @__PURE__ */ new Map();
|
|
46170
|
+
function s4() {
|
|
46171
|
+
let [e, t] = T(i4()), [n, r] = T(null), [i, a] = T(null), [o, s] = T(null), [c, l] = T(null), [u, d] = T(null), [f, p] = T({
|
|
45985
46172
|
active: !1,
|
|
45986
46173
|
msLeft: 0,
|
|
45987
46174
|
total: 0,
|
|
45988
46175
|
byTrigger: {}
|
|
45989
46176
|
});
|
|
45990
46177
|
ae(i2(p));
|
|
45991
|
-
let m = (
|
|
45992
|
-
|
|
45993
|
-
|
|
46178
|
+
let [m, h] = T([]);
|
|
46179
|
+
ae(w2(h));
|
|
46180
|
+
let [g, _] = T(!1), [v, y] = T(!1), b = async () => {
|
|
46181
|
+
_(!0);
|
|
46182
|
+
try {
|
|
46183
|
+
await k2();
|
|
46184
|
+
} finally {
|
|
46185
|
+
_(!1);
|
|
46186
|
+
}
|
|
46187
|
+
}, x = async () => {
|
|
46188
|
+
try {
|
|
46189
|
+
await navigator.clipboard.writeText(A2(m())), y(!0), setTimeout(() => y(!1), 1600);
|
|
46190
|
+
} catch {
|
|
46191
|
+
l("Clipboard was blocked — click Copy again.");
|
|
46192
|
+
}
|
|
46193
|
+
}, S = (e) => {
|
|
46194
|
+
t(e), a4(e);
|
|
46195
|
+
}, C = async () => {
|
|
45994
46196
|
l(null), a("extract"), window.dispatchEvent(new CustomEvent(BZ));
|
|
45995
46197
|
try {
|
|
45996
46198
|
let t = await u2();
|
|
45997
46199
|
if (!t) return;
|
|
45998
46200
|
let n = await e2(t), i = Date.now();
|
|
45999
|
-
|
|
46201
|
+
o4.set(i, new WeakRef(t)), S([{
|
|
46000
46202
|
id: i,
|
|
46001
46203
|
genome: n
|
|
46002
46204
|
}, ...e()]), r(i);
|
|
@@ -46005,16 +46207,16 @@ function P2() {
|
|
|
46005
46207
|
} finally {
|
|
46006
46208
|
a(null), oj("design"), window.dispatchEvent(new CustomEvent(VZ));
|
|
46007
46209
|
}
|
|
46008
|
-
},
|
|
46210
|
+
}, w = async (t) => {
|
|
46009
46211
|
l(null), a(t.id), window.dispatchEvent(new CustomEvent(BZ));
|
|
46010
46212
|
try {
|
|
46011
|
-
let n =
|
|
46213
|
+
let n = o4.get(t.id)?.deref() ?? null;
|
|
46012
46214
|
if (!n || !n.isConnected) {
|
|
46013
46215
|
if (n = await u2(), !n) return;
|
|
46014
|
-
|
|
46216
|
+
o4.set(t.id, new WeakRef(n));
|
|
46015
46217
|
}
|
|
46016
46218
|
let r = await c2(n, 8e3, (e) => s(Math.ceil(e / 1e3)));
|
|
46017
|
-
r.length === 0 && l("No state changes captured — hover/open the component while the 8s window runs."),
|
|
46219
|
+
r.length === 0 && l("No state changes captured — hover/open the component while the 8s window runs."), S(e().map((e) => e.id === t.id ? {
|
|
46018
46220
|
...e,
|
|
46019
46221
|
genome: {
|
|
46020
46222
|
...e.genome,
|
|
@@ -46026,26 +46228,28 @@ function P2() {
|
|
|
46026
46228
|
} finally {
|
|
46027
46229
|
a(null), s(null), oj("design"), window.dispatchEvent(new CustomEvent(VZ));
|
|
46028
46230
|
}
|
|
46029
|
-
},
|
|
46231
|
+
}, E = async (e) => {
|
|
46030
46232
|
try {
|
|
46031
46233
|
await navigator.clipboard.writeText(l2(e.genome)), d(e.id), setTimeout(() => d(null), 1600);
|
|
46032
46234
|
} catch {
|
|
46033
46235
|
l("Clipboard was blocked — click Copy again.");
|
|
46034
46236
|
}
|
|
46035
|
-
},
|
|
46036
|
-
|
|
46237
|
+
}, O = (t) => {
|
|
46238
|
+
o4.delete(t), S(e().filter((e) => e.id !== t));
|
|
46037
46239
|
};
|
|
46038
46240
|
return (() => {
|
|
46039
|
-
var t =
|
|
46040
|
-
|
|
46241
|
+
var t = L2(), a = t.firstChild;
|
|
46242
|
+
a.firstChild;
|
|
46243
|
+
var o = a.nextSibling, s = o.firstChild;
|
|
46244
|
+
return s.firstChild, P(a, j(kj, {
|
|
46041
46245
|
variant: "primary",
|
|
46042
46246
|
class: "h-7 shrink-0 px-2.5 text-[11.5px]",
|
|
46043
46247
|
get loading() {
|
|
46044
46248
|
return i() === "extract";
|
|
46045
46249
|
},
|
|
46046
|
-
onClick: () => void
|
|
46250
|
+
onClick: () => void C(),
|
|
46047
46251
|
get children() {
|
|
46048
|
-
return
|
|
46252
|
+
return j2();
|
|
46049
46253
|
}
|
|
46050
46254
|
}), null), P(t, j(M, {
|
|
46051
46255
|
get when() {
|
|
@@ -46056,7 +46260,7 @@ function P2() {
|
|
|
46056
46260
|
return c();
|
|
46057
46261
|
} });
|
|
46058
46262
|
}
|
|
46059
|
-
}),
|
|
46263
|
+
}), o), P(t, j(M, {
|
|
46060
46264
|
get when() {
|
|
46061
46265
|
return e().length > 0;
|
|
46062
46266
|
},
|
|
@@ -46067,7 +46271,7 @@ function P2() {
|
|
|
46067
46271
|
});
|
|
46068
46272
|
},
|
|
46069
46273
|
get children() {
|
|
46070
|
-
var t =
|
|
46274
|
+
var t = M2();
|
|
46071
46275
|
return t.firstChild, P(t, j(We, {
|
|
46072
46276
|
get each() {
|
|
46073
46277
|
return e();
|
|
@@ -46075,7 +46279,7 @@ function P2() {
|
|
|
46075
46279
|
children: (e) => {
|
|
46076
46280
|
let t = () => n() === e.id;
|
|
46077
46281
|
return (() => {
|
|
46078
|
-
var n =
|
|
46282
|
+
var n = W2(), a = n.firstChild, o = a.nextSibling, s = o.firstChild, c = s.firstChild, l = c.nextSibling, d = l.firstChild, p = d.nextSibling;
|
|
46079
46283
|
p.nextSibling;
|
|
46080
46284
|
var m = l.nextSibling;
|
|
46081
46285
|
return s.$$click = () => r(t() ? null : e.id), P(c, () => e.genome.title), P(l, () => e.genome.nodes.length, d), P(l, (() => {
|
|
@@ -46086,19 +46290,19 @@ function P2() {
|
|
|
46086
46290
|
return t();
|
|
46087
46291
|
},
|
|
46088
46292
|
get children() {
|
|
46089
|
-
var t =
|
|
46293
|
+
var t = U2(), n = t.firstChild, r = n.nextSibling, a = r.nextSibling;
|
|
46090
46294
|
return P(n, () => e.genome.pageUrl), P(r, j(We, {
|
|
46091
46295
|
get each() {
|
|
46092
46296
|
return e.genome.nodes;
|
|
46093
46297
|
},
|
|
46094
46298
|
children: (e) => (() => {
|
|
46095
|
-
var t =
|
|
46299
|
+
var t = K2(), n = t.firstChild;
|
|
46096
46300
|
return P(n, () => e.label, null), P(n, j(M, {
|
|
46097
46301
|
get when() {
|
|
46098
46302
|
return e.count > 1;
|
|
46099
46303
|
},
|
|
46100
46304
|
get children() {
|
|
46101
|
-
var t =
|
|
46305
|
+
var t = G2();
|
|
46102
46306
|
return t.firstChild, P(t, () => e.count, null), t;
|
|
46103
46307
|
}
|
|
46104
46308
|
}), null), P(t, j(We, {
|
|
@@ -46106,13 +46310,13 @@ function P2() {
|
|
|
46106
46310
|
return Object.entries(e.styles);
|
|
46107
46311
|
},
|
|
46108
46312
|
children: ([t, n]) => (() => {
|
|
46109
|
-
var r =
|
|
46313
|
+
var r = J2(), i = r.firstChild;
|
|
46110
46314
|
return P(r, t, i), P(r, n, null), P(r, j(M, {
|
|
46111
46315
|
get when() {
|
|
46112
46316
|
return e.tokens[t];
|
|
46113
46317
|
},
|
|
46114
46318
|
get children() {
|
|
46115
|
-
var n =
|
|
46319
|
+
var n = q2(), r = n.firstChild.nextSibling;
|
|
46116
46320
|
return r.nextSibling, P(n, () => e.tokens[t], r), n;
|
|
46117
46321
|
}
|
|
46118
46322
|
}), null), r;
|
|
@@ -46124,18 +46328,18 @@ function P2() {
|
|
|
46124
46328
|
return e.genome.states.length > 0;
|
|
46125
46329
|
},
|
|
46126
46330
|
get children() {
|
|
46127
|
-
return [
|
|
46331
|
+
return [R2(), j(We, {
|
|
46128
46332
|
get each() {
|
|
46129
46333
|
return e.genome.states;
|
|
46130
46334
|
},
|
|
46131
46335
|
children: (e) => (() => {
|
|
46132
|
-
var t =
|
|
46336
|
+
var t = Y2(), n = t.firstChild, r = n.firstChild;
|
|
46133
46337
|
return P(n, () => e.label, r), P(n, () => e.trigger, null), P(t, j(We, {
|
|
46134
46338
|
get each() {
|
|
46135
46339
|
return Object.entries(e.changed);
|
|
46136
46340
|
},
|
|
46137
46341
|
children: ([e, t]) => (() => {
|
|
46138
|
-
var n =
|
|
46342
|
+
var n = X2(), r = n.firstChild, i = r.nextSibling;
|
|
46139
46343
|
return i.nextSibling, P(n, e, r), P(n, () => t.from, i), P(n, () => t.to, null), n;
|
|
46140
46344
|
})()
|
|
46141
46345
|
}), null), t;
|
|
@@ -46155,9 +46359,9 @@ function P2() {
|
|
|
46155
46359
|
},
|
|
46156
46360
|
title: "Capture states — records hover/focus/open styles for 8s while you interact; the pill shows the timer and Stop",
|
|
46157
46361
|
"aria-label": "Capture interaction states",
|
|
46158
|
-
onClick: () => void
|
|
46362
|
+
onClick: () => void w(e),
|
|
46159
46363
|
get children() {
|
|
46160
|
-
return
|
|
46364
|
+
return Z2();
|
|
46161
46365
|
}
|
|
46162
46366
|
});
|
|
46163
46367
|
},
|
|
@@ -46171,10 +46375,10 @@ function P2() {
|
|
|
46171
46375
|
"aria-label": "Stop recording states",
|
|
46172
46376
|
onClick: () => o2(),
|
|
46173
46377
|
get children() {
|
|
46174
|
-
return
|
|
46378
|
+
return z2();
|
|
46175
46379
|
}
|
|
46176
46380
|
}), (() => {
|
|
46177
|
-
var e =
|
|
46381
|
+
var e = B2(), t = e.firstChild, n = t.nextSibling;
|
|
46178
46382
|
return n.nextSibling, P(e, () => Math.ceil(f().msLeft / 1e3), t), P(e, () => f().total, n), e;
|
|
46179
46383
|
})()];
|
|
46180
46384
|
}
|
|
@@ -46185,17 +46389,17 @@ function P2() {
|
|
|
46185
46389
|
return u() === e.id ? "Copied!" : "Copy spec — markdown for an agent or issue";
|
|
46186
46390
|
},
|
|
46187
46391
|
"aria-label": "Copy genome spec",
|
|
46188
|
-
onClick: () => void
|
|
46392
|
+
onClick: () => void E(e),
|
|
46189
46393
|
get children() {
|
|
46190
46394
|
return j(M, {
|
|
46191
46395
|
get when() {
|
|
46192
46396
|
return u() === e.id;
|
|
46193
46397
|
},
|
|
46194
46398
|
get fallback() {
|
|
46195
|
-
return
|
|
46399
|
+
return Q2();
|
|
46196
46400
|
},
|
|
46197
46401
|
get children() {
|
|
46198
|
-
return
|
|
46402
|
+
return V2();
|
|
46199
46403
|
}
|
|
46200
46404
|
});
|
|
46201
46405
|
}
|
|
@@ -46204,9 +46408,9 @@ function P2() {
|
|
|
46204
46408
|
variant: "ghost",
|
|
46205
46409
|
title: "Delete this genome",
|
|
46206
46410
|
"aria-label": "Delete genome",
|
|
46207
|
-
onClick: () =>
|
|
46411
|
+
onClick: () => O(e.id),
|
|
46208
46412
|
get children() {
|
|
46209
|
-
return
|
|
46413
|
+
return H2();
|
|
46210
46414
|
}
|
|
46211
46415
|
}), null), t;
|
|
46212
46416
|
}
|
|
@@ -46221,13 +46425,89 @@ function P2() {
|
|
|
46221
46425
|
}
|
|
46222
46426
|
}), null), t;
|
|
46223
46427
|
}
|
|
46428
|
+
}), o), P(s, j(kj, {
|
|
46429
|
+
variant: "ghost",
|
|
46430
|
+
class: "h-7 shrink-0 px-2.5 text-[11.5px]",
|
|
46431
|
+
get loading() {
|
|
46432
|
+
return g();
|
|
46433
|
+
},
|
|
46434
|
+
onClick: () => void b(),
|
|
46435
|
+
get children() {
|
|
46436
|
+
return N2();
|
|
46437
|
+
}
|
|
46438
|
+
}), null), P(o, j(M, {
|
|
46439
|
+
get when() {
|
|
46440
|
+
return m().length > 0;
|
|
46441
|
+
},
|
|
46442
|
+
get fallback() {
|
|
46443
|
+
return $2();
|
|
46444
|
+
},
|
|
46445
|
+
get children() {
|
|
46446
|
+
return [(() => {
|
|
46447
|
+
var e = P2();
|
|
46448
|
+
return P(e, j(We, {
|
|
46449
|
+
get each() {
|
|
46450
|
+
return m();
|
|
46451
|
+
},
|
|
46452
|
+
children: (e) => (() => {
|
|
46453
|
+
var t = t4(), n = t.firstChild, r = n.firstChild, i = r.nextSibling, a = i.nextSibling, o = a.firstChild, s = n.nextSibling, c = s.nextSibling;
|
|
46454
|
+
return P(r, () => e.mode === "live" ? "live" : "audit"), P(i, () => e.component ?? e.element, null), P(i, j(M, {
|
|
46455
|
+
get when() {
|
|
46456
|
+
return e.count > 1;
|
|
46457
|
+
},
|
|
46458
|
+
get children() {
|
|
46459
|
+
return [" ×", $e(() => e.count)];
|
|
46460
|
+
}
|
|
46461
|
+
}), null), P(a, () => e.durationMs, o), P(a, (() => {
|
|
46462
|
+
var t = $e(() => !!e.delayMs);
|
|
46463
|
+
return () => t() ? ` +${e.delayMs}` : "";
|
|
46464
|
+
})(), null), P(t, j(M, {
|
|
46465
|
+
get when() {
|
|
46466
|
+
return e.source;
|
|
46467
|
+
},
|
|
46468
|
+
get children() {
|
|
46469
|
+
var t = e4();
|
|
46470
|
+
return P(t, () => e.source), t;
|
|
46471
|
+
}
|
|
46472
|
+
}), s), P(s, () => e.properties.join(", "), null), P(s, j(M, {
|
|
46473
|
+
get when() {
|
|
46474
|
+
return e.sinceInputMs != null;
|
|
46475
|
+
},
|
|
46476
|
+
get children() {
|
|
46477
|
+
return [
|
|
46478
|
+
" — fired ",
|
|
46479
|
+
$e(() => e.sinceInputMs),
|
|
46480
|
+
"ms after input"
|
|
46481
|
+
];
|
|
46482
|
+
}
|
|
46483
|
+
}), null), P(c, () => e.suggestion), t;
|
|
46484
|
+
})()
|
|
46485
|
+
})), e;
|
|
46486
|
+
})(), (() => {
|
|
46487
|
+
var e = I2();
|
|
46488
|
+
return P(e, j(kj, {
|
|
46489
|
+
class: "h-6 px-2 text-[11px]",
|
|
46490
|
+
variant: "ghost",
|
|
46491
|
+
onClick: () => void x(),
|
|
46492
|
+
get children() {
|
|
46493
|
+
var e = F2();
|
|
46494
|
+
return P(e, () => v() ? "Copied ✓" : "Copy report"), e;
|
|
46495
|
+
}
|
|
46496
|
+
}), null), P(e, j(kj, {
|
|
46497
|
+
class: "h-6 px-2 text-[11px]",
|
|
46498
|
+
variant: "ghost",
|
|
46499
|
+
onClick: T2,
|
|
46500
|
+
children: "Clear audit"
|
|
46501
|
+
}), null), e;
|
|
46502
|
+
})()];
|
|
46503
|
+
}
|
|
46224
46504
|
}), null), t;
|
|
46225
46505
|
})();
|
|
46226
46506
|
}
|
|
46227
46507
|
rt(["click"]);
|
|
46228
46508
|
//#endregion
|
|
46229
46509
|
//#region src/lib/projectConfig.ts
|
|
46230
|
-
var
|
|
46510
|
+
var c4 = [
|
|
46231
46511
|
"defaultTeamId",
|
|
46232
46512
|
"defaultProjectId",
|
|
46233
46513
|
"defaultLabelIds",
|
|
@@ -46242,29 +46522,29 @@ var F2 = [
|
|
|
46242
46522
|
"issueTemplate",
|
|
46243
46523
|
"testUsername"
|
|
46244
46524
|
];
|
|
46245
|
-
function
|
|
46525
|
+
function l4(e) {
|
|
46246
46526
|
let t = {};
|
|
46247
|
-
for (let n of
|
|
46527
|
+
for (let n of c4) {
|
|
46248
46528
|
let r = e[n];
|
|
46249
46529
|
r !== void 0 && r !== "" && !(Array.isArray(r) && r.length === 0) && (t[n] = r);
|
|
46250
46530
|
}
|
|
46251
46531
|
return t;
|
|
46252
46532
|
}
|
|
46253
|
-
function
|
|
46533
|
+
function u4(e, t) {
|
|
46254
46534
|
let n = {};
|
|
46255
|
-
for (let r of
|
|
46535
|
+
for (let r of c4) e[r] === void 0 && t[r] !== void 0 && (n[r] = t[r]);
|
|
46256
46536
|
return Object.keys(n).length ? n : null;
|
|
46257
46537
|
}
|
|
46258
46538
|
//#endregion
|
|
46259
46539
|
//#region src/lib/linear/auth.ts
|
|
46260
46540
|
Br();
|
|
46261
|
-
function
|
|
46541
|
+
function d4(e) {
|
|
46262
46542
|
let t = "";
|
|
46263
46543
|
for (let n of e) t += String.fromCharCode(n);
|
|
46264
46544
|
return btoa(t).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
|
|
46265
46545
|
}
|
|
46266
|
-
async function
|
|
46267
|
-
let t =
|
|
46546
|
+
async function f4(e) {
|
|
46547
|
+
let t = d4(crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(32))), n = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(t)), r = d4(new Uint8Array(n)), i = d4(crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(16))), a = chrome.identity.getRedirectURL(), o = new URL("https://linear.app/oauth/authorize");
|
|
46268
46548
|
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");
|
|
46269
46549
|
let s = await chrome.identity.launchWebAuthFlow({
|
|
46270
46550
|
url: o.toString(),
|
|
@@ -46292,15 +46572,15 @@ async function z2(e) {
|
|
|
46292
46572
|
linearOauthClientId: e
|
|
46293
46573
|
});
|
|
46294
46574
|
}
|
|
46295
|
-
async function
|
|
46575
|
+
async function p4() {
|
|
46296
46576
|
await Er({
|
|
46297
46577
|
linearAccessToken: void 0,
|
|
46298
46578
|
linearApiKey: void 0
|
|
46299
46579
|
});
|
|
46300
46580
|
}
|
|
46301
46581
|
Br(), Sr(), Fx(), gD();
|
|
46302
|
-
var
|
|
46303
|
-
function
|
|
46582
|
+
var m4 = /*#__PURE__*/ N("<div class=\"bg-surface-2 border-border flex rounded-md border p-0.5\">"), h4 = /*#__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."), g4 = /*#__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"), _4 = /*#__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)."), v4 = /*#__PURE__*/ N("<span class=text-text>Connected as <span class=font-medium></span> · <span class=text-text-dim>"), y4 = /*#__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]\">"), b4 = /*#__PURE__*/ N("<option value>Select a team…"), x4 = /*#__PURE__*/ N("<option value>No project"), S4 = /*#__PURE__*/ N("<div class=\"flex flex-wrap gap-1\">"), C4 = /*#__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."), w4 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">No agents found — install the Cursor integration in Linear first."), T4 = /*#__PURE__*/ N("<span class=\"text-text-faint text-[10.5px] leading-snug\">Empty = the default above (computer-use testing, video demo, PR + review babysitting)."), E4 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1.5\">"), D4 = /*#__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."), O4 = /*#__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."), k4 = /*#__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."), A4 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[10ch] text-center\">"), j4 = /*#__PURE__*/ N("<div class=\"flex items-center gap-2\">"), M4 = /*#__PURE__*/ N("<option value>Select a channel…"), N4 = /*#__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"), P4 = /*#__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."), F4 = /*#__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"), I4 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">"), L4 = /*#__PURE__*/ N("<div class=min-h-[2lh]>"), R4 = /*#__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."), z4 = /*#__PURE__*/ N("<div class=\"flex h-full flex-col gap-5 overflow-y-auto pt-3 pb-6 pl-3 pr-4\">"), B4 = /*#__PURE__*/ N("<button>"), V4 = /*#__PURE__*/ N("<div class=\"flex gap-1.5\">"), H4 = /*#__PURE__*/ N("<p class=\"text-text-faint text-center text-[10.5px]\">or"), U4 = /*#__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\">"), W4 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-3\">"), G4 = /*#__PURE__*/ N("<span class=text-text-dim>Connected — verifying…"), K4 = /*#__PURE__*/ N("<option> (<!>)"), q4 = /*#__PURE__*/ N("<option>"), J4 = /*#__PURE__*/ N("<button type=button><span class=\"mr-1 inline-block size-2 rounded-full align-middle\">"), Y4 = /*#__PURE__*/ N("<option value>Select the agent…"), X4 = /*#__PURE__*/ N("<option>#"), Z4 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">No key set — AI drafting disabled, manual drafting still works.");
|
|
46583
|
+
function Q4() {
|
|
46304
46584
|
let e = sr(), t = _r(() => ({
|
|
46305
46585
|
queryKey: ["settings"],
|
|
46306
46586
|
queryFn: Tr,
|
|
@@ -46328,13 +46608,13 @@ function T4() {
|
|
|
46328
46608
|
retry: 0
|
|
46329
46609
|
})), [l, u] = T(!1), d = async () => {
|
|
46330
46610
|
try {
|
|
46331
|
-
await navigator.clipboard.writeText(JSON.stringify(
|
|
46611
|
+
await navigator.clipboard.writeText(JSON.stringify(l4(n()), null, 2) + "\n"), u(!0), setTimeout(() => u(!1), 1800);
|
|
46332
46612
|
} catch {}
|
|
46333
46613
|
}, f = () => {
|
|
46334
46614
|
let e = c.data?.projectConfig;
|
|
46335
46615
|
if (!e) return;
|
|
46336
46616
|
let t = {};
|
|
46337
|
-
for (let n of
|
|
46617
|
+
for (let n of c4) e[n] !== void 0 && (t[n] = e[n]);
|
|
46338
46618
|
r(t);
|
|
46339
46619
|
}, p = _r(() => ({
|
|
46340
46620
|
queryKey: ["linear-labels"],
|
|
@@ -46367,7 +46647,7 @@ function T4() {
|
|
|
46367
46647
|
}
|
|
46368
46648
|
E(!0), ee("");
|
|
46369
46649
|
try {
|
|
46370
|
-
await
|
|
46650
|
+
await f4(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"] });
|
|
46371
46651
|
} catch (e) {
|
|
46372
46652
|
ee(e instanceof Error ? e.message : "OAuth flow failed.");
|
|
46373
46653
|
} finally {
|
|
@@ -46378,7 +46658,7 @@ function T4() {
|
|
|
46378
46658
|
async function re() {
|
|
46379
46659
|
ne(!0);
|
|
46380
46660
|
try {
|
|
46381
|
-
await
|
|
46661
|
+
await p4(), 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"] });
|
|
46382
46662
|
} finally {
|
|
46383
46663
|
ne(!1);
|
|
46384
46664
|
}
|
|
@@ -46394,12 +46674,12 @@ function T4() {
|
|
|
46394
46674
|
return e ? `Drafting with ${e} — ${Nx[e].fast} (fast) / ${Nx[e].best} (best)` : null;
|
|
46395
46675
|
});
|
|
46396
46676
|
return (() => {
|
|
46397
|
-
var e =
|
|
46677
|
+
var e = z4();
|
|
46398
46678
|
return P(e, j(Rj, {
|
|
46399
46679
|
title: "Workflow",
|
|
46400
46680
|
get children() {
|
|
46401
46681
|
return [(() => {
|
|
46402
|
-
var e =
|
|
46682
|
+
var e = m4();
|
|
46403
46683
|
return P(e, j(We, {
|
|
46404
46684
|
each: [{
|
|
46405
46685
|
id: "cloud",
|
|
@@ -46409,19 +46689,19 @@ function T4() {
|
|
|
46409
46689
|
label: "Local · clipboard"
|
|
46410
46690
|
}],
|
|
46411
46691
|
children: (e) => (() => {
|
|
46412
|
-
var t =
|
|
46692
|
+
var t = B4();
|
|
46413
46693
|
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;
|
|
46414
46694
|
})()
|
|
46415
46695
|
})), e;
|
|
46416
|
-
})(),
|
|
46696
|
+
})(), h4()];
|
|
46417
46697
|
}
|
|
46418
46698
|
}), null), P(e, j(Rj, {
|
|
46419
46699
|
title: "Capture",
|
|
46420
46700
|
get children() {
|
|
46421
46701
|
return [(() => {
|
|
46422
|
-
var e =
|
|
46702
|
+
var e = g4(), t = e.firstChild;
|
|
46423
46703
|
return t.addEventListener("change", (e) => void r({ captureShots: e.currentTarget.checked || void 0 })), D(() => t.checked = !!n().captureShots), e;
|
|
46424
|
-
})(),
|
|
46704
|
+
})(), _4()];
|
|
46425
46705
|
}
|
|
46426
46706
|
}), null), P(e, j(Rj, {
|
|
46427
46707
|
title: "Linear",
|
|
@@ -46432,13 +46712,13 @@ function T4() {
|
|
|
46432
46712
|
},
|
|
46433
46713
|
get fallback() {
|
|
46434
46714
|
return (() => {
|
|
46435
|
-
var e =
|
|
46715
|
+
var e = W4();
|
|
46436
46716
|
return P(e, j(Lj, {
|
|
46437
46717
|
label: "Personal API key",
|
|
46438
46718
|
hint: "Create one at linear.app → Settings → API — fastest path.",
|
|
46439
46719
|
get children() {
|
|
46440
46720
|
return [(() => {
|
|
46441
|
-
var e =
|
|
46721
|
+
var e = V4();
|
|
46442
46722
|
return P(e, j(jj, {
|
|
46443
46723
|
type: "password",
|
|
46444
46724
|
placeholder: "lin_api_…",
|
|
@@ -46475,12 +46755,12 @@ function T4() {
|
|
|
46475
46755
|
}), null), P(e, j(M, {
|
|
46476
46756
|
when: xr,
|
|
46477
46757
|
get children() {
|
|
46478
|
-
return [
|
|
46758
|
+
return [H4(), j(Lj, {
|
|
46479
46759
|
label: "OAuth client ID",
|
|
46480
46760
|
get children() {
|
|
46481
46761
|
return [
|
|
46482
46762
|
(() => {
|
|
46483
|
-
var e =
|
|
46763
|
+
var e = V4();
|
|
46484
46764
|
return P(e, j(jj, {
|
|
46485
46765
|
placeholder: "your-client-id",
|
|
46486
46766
|
get value() {
|
|
@@ -46508,7 +46788,7 @@ function T4() {
|
|
|
46508
46788
|
}
|
|
46509
46789
|
}),
|
|
46510
46790
|
(() => {
|
|
46511
|
-
var e =
|
|
46791
|
+
var e = U4(), t = e.firstChild.nextSibling.nextSibling;
|
|
46512
46792
|
return P(t, ie), e;
|
|
46513
46793
|
})()
|
|
46514
46794
|
];
|
|
@@ -46519,13 +46799,13 @@ function T4() {
|
|
|
46519
46799
|
})();
|
|
46520
46800
|
},
|
|
46521
46801
|
get children() {
|
|
46522
|
-
var e =
|
|
46802
|
+
var e = y4(), t = e.firstChild;
|
|
46523
46803
|
return P(t, j(M, {
|
|
46524
46804
|
get when() {
|
|
46525
46805
|
return !a.isLoading;
|
|
46526
46806
|
},
|
|
46527
46807
|
get fallback() {
|
|
46528
|
-
return
|
|
46808
|
+
return G4();
|
|
46529
46809
|
},
|
|
46530
46810
|
get children() {
|
|
46531
46811
|
return j(M, {
|
|
@@ -46538,7 +46818,7 @@ function T4() {
|
|
|
46538
46818
|
return a.isError;
|
|
46539
46819
|
},
|
|
46540
46820
|
get fallback() {
|
|
46541
|
-
return
|
|
46821
|
+
return G4();
|
|
46542
46822
|
},
|
|
46543
46823
|
get children() {
|
|
46544
46824
|
return j(Hj, { message: "Key rejected — reconnect" });
|
|
@@ -46546,7 +46826,7 @@ function T4() {
|
|
|
46546
46826
|
});
|
|
46547
46827
|
},
|
|
46548
46828
|
get children() {
|
|
46549
|
-
var e =
|
|
46829
|
+
var e = v4(), t = e.firstChild.nextSibling, n = t.nextSibling.nextSibling;
|
|
46550
46830
|
return P(t, () => a.data.name), P(n, () => a.data.email), e;
|
|
46551
46831
|
}
|
|
46552
46832
|
});
|
|
@@ -46587,7 +46867,7 @@ function T4() {
|
|
|
46587
46867
|
return o.isLoading;
|
|
46588
46868
|
},
|
|
46589
46869
|
get children() {
|
|
46590
|
-
return [
|
|
46870
|
+
return [b4(), j(M, {
|
|
46591
46871
|
get when() {
|
|
46592
46872
|
return o.data;
|
|
46593
46873
|
},
|
|
@@ -46597,7 +46877,7 @@ function T4() {
|
|
|
46597
46877
|
return o.data;
|
|
46598
46878
|
},
|
|
46599
46879
|
children: (e) => (() => {
|
|
46600
|
-
var t =
|
|
46880
|
+
var t = K4(), r = t.firstChild, i = r.nextSibling;
|
|
46601
46881
|
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;
|
|
46602
46882
|
})()
|
|
46603
46883
|
});
|
|
@@ -46621,14 +46901,14 @@ function T4() {
|
|
|
46621
46901
|
},
|
|
46622
46902
|
get children() {
|
|
46623
46903
|
return [(() => {
|
|
46624
|
-
var e =
|
|
46904
|
+
var e = x4();
|
|
46625
46905
|
return D(() => e.selected = !n().defaultProjectId), e;
|
|
46626
46906
|
})(), j(We, {
|
|
46627
46907
|
get each() {
|
|
46628
46908
|
return s.data ?? [];
|
|
46629
46909
|
},
|
|
46630
46910
|
children: (e) => (() => {
|
|
46631
|
-
var t =
|
|
46911
|
+
var t = q4();
|
|
46632
46912
|
return P(t, () => e.name), D(() => t.selected = e.id === n().defaultProjectId), D(() => t.value = e.id), t;
|
|
46633
46913
|
})()
|
|
46634
46914
|
})];
|
|
@@ -46640,7 +46920,7 @@ function T4() {
|
|
|
46640
46920
|
label: "Default labels",
|
|
46641
46921
|
hint: "Applied to every issue created from the panel.",
|
|
46642
46922
|
get children() {
|
|
46643
|
-
var e =
|
|
46923
|
+
var e = S4();
|
|
46644
46924
|
return P(e, j(We, {
|
|
46645
46925
|
get each() {
|
|
46646
46926
|
return p.data ?? [];
|
|
@@ -46648,7 +46928,7 @@ function T4() {
|
|
|
46648
46928
|
children: (e) => {
|
|
46649
46929
|
let t = () => (n().defaultLabelIds ?? []).includes(e.id);
|
|
46650
46930
|
return (() => {
|
|
46651
|
-
var i =
|
|
46931
|
+
var i = J4(), a = i.firstChild;
|
|
46652
46932
|
return i.$$click = () => {
|
|
46653
46933
|
let i = n().defaultLabelIds ?? [];
|
|
46654
46934
|
r({ defaultLabelIds: t() ? i.filter((t) => t !== e.id) : [...i, e.id] });
|
|
@@ -46665,7 +46945,7 @@ function T4() {
|
|
|
46665
46945
|
}
|
|
46666
46946
|
}),
|
|
46667
46947
|
(() => {
|
|
46668
|
-
var e =
|
|
46948
|
+
var e = C4(), t = e.firstChild;
|
|
46669
46949
|
return t.addEventListener("change", (e) => void r({ shareLinearKey: e.currentTarget.checked })), D(() => t.checked = !!n().shareLinearKey), e;
|
|
46670
46950
|
})(),
|
|
46671
46951
|
j(Lj, {
|
|
@@ -46715,7 +46995,7 @@ function T4() {
|
|
|
46715
46995
|
return m.isLoading;
|
|
46716
46996
|
},
|
|
46717
46997
|
get children() {
|
|
46718
|
-
return [
|
|
46998
|
+
return [Y4(), j(M, {
|
|
46719
46999
|
get when() {
|
|
46720
47000
|
return m.data;
|
|
46721
47001
|
},
|
|
@@ -46725,7 +47005,7 @@ function T4() {
|
|
|
46725
47005
|
return m.data;
|
|
46726
47006
|
},
|
|
46727
47007
|
children: (e) => (() => {
|
|
46728
|
-
var t =
|
|
47008
|
+
var t = q4();
|
|
46729
47009
|
return P(t, () => e.displayName), D(() => t.selected = e.id === n().cursorAgentId), D(() => t.value = e.id), t;
|
|
46730
47010
|
})()
|
|
46731
47011
|
});
|
|
@@ -46735,7 +47015,7 @@ function T4() {
|
|
|
46735
47015
|
});
|
|
46736
47016
|
},
|
|
46737
47017
|
get children() {
|
|
46738
|
-
return
|
|
47018
|
+
return w4();
|
|
46739
47019
|
}
|
|
46740
47020
|
});
|
|
46741
47021
|
}
|
|
@@ -46783,7 +47063,7 @@ function T4() {
|
|
|
46783
47063
|
onBlur: (e) => {
|
|
46784
47064
|
r({ issueTemplate: e.currentTarget.value.trim() || void 0 });
|
|
46785
47065
|
}
|
|
46786
|
-
}),
|
|
47066
|
+
}), T4()];
|
|
46787
47067
|
}
|
|
46788
47068
|
}),
|
|
46789
47069
|
j(Lj, {
|
|
@@ -46840,7 +47120,7 @@ function T4() {
|
|
|
46840
47120
|
label: "Test account",
|
|
46841
47121
|
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.",
|
|
46842
47122
|
get children() {
|
|
46843
|
-
var e =
|
|
47123
|
+
var e = E4();
|
|
46844
47124
|
return P(e, j(jj, {
|
|
46845
47125
|
placeholder: "Username or email (e.g. demo@yourapp.com)",
|
|
46846
47126
|
get value() {
|
|
@@ -46872,7 +47152,7 @@ function T4() {
|
|
|
46872
47152
|
title: "Panel",
|
|
46873
47153
|
get children() {
|
|
46874
47154
|
return [(() => {
|
|
46875
|
-
var e =
|
|
47155
|
+
var e = D4(), t = e.firstChild.nextSibling;
|
|
46876
47156
|
return P(t, j(We, {
|
|
46877
47157
|
each: [{
|
|
46878
47158
|
id: "overlay",
|
|
@@ -46882,7 +47162,7 @@ function T4() {
|
|
|
46882
47162
|
label: "Beside page"
|
|
46883
47163
|
}],
|
|
46884
47164
|
children: (e) => (() => {
|
|
46885
|
-
var t =
|
|
47165
|
+
var t = B4();
|
|
46886
47166
|
return t.$$click = () => void r({
|
|
46887
47167
|
panelMode: e.id,
|
|
46888
47168
|
panelPos: void 0
|
|
@@ -46890,11 +47170,11 @@ function T4() {
|
|
|
46890
47170
|
})()
|
|
46891
47171
|
})), e;
|
|
46892
47172
|
})(), (() => {
|
|
46893
|
-
var e =
|
|
47173
|
+
var e = O4(), t = e.firstChild.nextSibling;
|
|
46894
47174
|
return P(t, j(We, {
|
|
46895
47175
|
each: ["left", "right"],
|
|
46896
47176
|
children: (e) => (() => {
|
|
46897
|
-
var t =
|
|
47177
|
+
var t = B4();
|
|
46898
47178
|
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;
|
|
46899
47179
|
})()
|
|
46900
47180
|
})), e;
|
|
@@ -46924,8 +47204,8 @@ function T4() {
|
|
|
46924
47204
|
}), null), P(e, j(Rj, {
|
|
46925
47205
|
title: "Project config (.lineargrab.json)",
|
|
46926
47206
|
get children() {
|
|
46927
|
-
return [
|
|
46928
|
-
var e =
|
|
47207
|
+
return [k4(), (() => {
|
|
47208
|
+
var e = j4();
|
|
46929
47209
|
return P(e, j(M, {
|
|
46930
47210
|
get when() {
|
|
46931
47211
|
return c.data?.projectConfig;
|
|
@@ -46956,7 +47236,7 @@ function T4() {
|
|
|
46956
47236
|
},
|
|
46957
47237
|
onClick: () => void d(),
|
|
46958
47238
|
get children() {
|
|
46959
|
-
var e =
|
|
47239
|
+
var e = A4();
|
|
46960
47240
|
return P(e, () => l() ? "Copied ✓" : "Copy config"), e;
|
|
46961
47241
|
}
|
|
46962
47242
|
}), null), e;
|
|
@@ -47047,12 +47327,12 @@ function T4() {
|
|
|
47047
47327
|
});
|
|
47048
47328
|
},
|
|
47049
47329
|
get children() {
|
|
47050
|
-
return [
|
|
47330
|
+
return [M4(), j(We, {
|
|
47051
47331
|
get each() {
|
|
47052
47332
|
return ae.data ?? [];
|
|
47053
47333
|
},
|
|
47054
47334
|
children: (e) => (() => {
|
|
47055
|
-
var t =
|
|
47335
|
+
var t = X4();
|
|
47056
47336
|
return t.firstChild, P(t, () => e.name, null), D(() => t.selected = e.id === n().slackChannelId), D(() => t.value = e.id), t;
|
|
47057
47337
|
})()
|
|
47058
47338
|
})];
|
|
@@ -47103,10 +47383,10 @@ function T4() {
|
|
|
47103
47383
|
}
|
|
47104
47384
|
}),
|
|
47105
47385
|
(() => {
|
|
47106
|
-
var e =
|
|
47386
|
+
var e = N4(), t = e.firstChild;
|
|
47107
47387
|
return t.addEventListener("change", (e) => void r({ notifyOnCreate: e.currentTarget.checked ? void 0 : !1 })), D(() => t.checked = n().notifyOnCreate !== !1), e;
|
|
47108
47388
|
})(),
|
|
47109
|
-
|
|
47389
|
+
P4()
|
|
47110
47390
|
];
|
|
47111
47391
|
}
|
|
47112
47392
|
}), null), P(e, j(Rj, {
|
|
@@ -47144,7 +47424,7 @@ function T4() {
|
|
|
47144
47424
|
}
|
|
47145
47425
|
}),
|
|
47146
47426
|
(() => {
|
|
47147
|
-
var e =
|
|
47427
|
+
var e = F4(), t = e.firstChild.nextSibling.firstChild, i = t.nextSibling, a = i.nextSibling;
|
|
47148
47428
|
return t.$$click = () => void r({ preferredProvider: void 0 }), i.$$click = () => void r({ preferredProvider: "openai" }), a.$$click = () => void r({ preferredProvider: "anthropic" }), D((e) => {
|
|
47149
47429
|
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;
|
|
47150
47430
|
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;
|
|
@@ -47157,16 +47437,16 @@ function T4() {
|
|
|
47157
47437
|
}), e;
|
|
47158
47438
|
})(),
|
|
47159
47439
|
(() => {
|
|
47160
|
-
var e =
|
|
47440
|
+
var e = L4();
|
|
47161
47441
|
return P(e, j(M, {
|
|
47162
47442
|
get when() {
|
|
47163
47443
|
return se();
|
|
47164
47444
|
},
|
|
47165
47445
|
get fallback() {
|
|
47166
|
-
return
|
|
47446
|
+
return Z4();
|
|
47167
47447
|
},
|
|
47168
47448
|
get children() {
|
|
47169
|
-
var e =
|
|
47449
|
+
var e = I4();
|
|
47170
47450
|
return P(e, se), e;
|
|
47171
47451
|
}
|
|
47172
47452
|
})), e;
|
|
@@ -47176,7 +47456,7 @@ function T4() {
|
|
|
47176
47456
|
}), null), P(e, j(Rj, {
|
|
47177
47457
|
title: "How it works",
|
|
47178
47458
|
get children() {
|
|
47179
|
-
return
|
|
47459
|
+
return R4();
|
|
47180
47460
|
}
|
|
47181
47461
|
}), null), e;
|
|
47182
47462
|
})();
|
|
@@ -47184,38 +47464,38 @@ function T4() {
|
|
|
47184
47464
|
rt(["click"]);
|
|
47185
47465
|
//#endregion
|
|
47186
47466
|
//#region src/lib/idbCache.ts
|
|
47187
|
-
var
|
|
47467
|
+
var $4 = "linear-grab", e3 = "queries", t3 = [
|
|
47188
47468
|
"my-issues",
|
|
47189
47469
|
"issue",
|
|
47190
47470
|
"sessions",
|
|
47191
47471
|
"teams",
|
|
47192
47472
|
"agents"
|
|
47193
47473
|
];
|
|
47194
|
-
function
|
|
47474
|
+
function n3() {
|
|
47195
47475
|
return new Promise((e) => {
|
|
47196
47476
|
try {
|
|
47197
|
-
let t = indexedDB.open(
|
|
47198
|
-
t.onupgradeneeded = () => t.result.createObjectStore(
|
|
47477
|
+
let t = indexedDB.open($4, 1);
|
|
47478
|
+
t.onupgradeneeded = () => t.result.createObjectStore(e3), t.onsuccess = () => e(t.result), t.onerror = () => e(null);
|
|
47199
47479
|
} catch {
|
|
47200
47480
|
e(null);
|
|
47201
47481
|
}
|
|
47202
47482
|
});
|
|
47203
47483
|
}
|
|
47204
|
-
function
|
|
47205
|
-
return typeof e[0] == "string" &&
|
|
47484
|
+
function r3(e) {
|
|
47485
|
+
return typeof e[0] == "string" && t3.includes(e[0]);
|
|
47206
47486
|
}
|
|
47207
|
-
async function
|
|
47208
|
-
let t = await
|
|
47487
|
+
async function i3(e) {
|
|
47488
|
+
let t = await n3();
|
|
47209
47489
|
if (!t) return () => {};
|
|
47210
47490
|
await new Promise((n) => {
|
|
47211
47491
|
try {
|
|
47212
|
-
let r = t.transaction(
|
|
47492
|
+
let r = t.transaction(e3, "readonly").objectStore(e3).openCursor();
|
|
47213
47493
|
r.onsuccess = () => {
|
|
47214
47494
|
let t = r.result;
|
|
47215
47495
|
if (!t) return n();
|
|
47216
47496
|
try {
|
|
47217
47497
|
let { queryKey: n, data: r } = t.value;
|
|
47218
|
-
|
|
47498
|
+
r3(n) && e.getQueryData(n) === void 0 && e.setQueryData(n, r, { updatedAt: 0 });
|
|
47219
47499
|
} catch {}
|
|
47220
47500
|
t.continue();
|
|
47221
47501
|
}, r.onerror = () => n();
|
|
@@ -47226,14 +47506,14 @@ async function j4(e) {
|
|
|
47226
47506
|
let n = /* @__PURE__ */ new Map(), r = e.getQueryCache().subscribe((r) => {
|
|
47227
47507
|
if (r.type !== "updated" || r.action.type !== "success") return;
|
|
47228
47508
|
let { queryKey: i, queryHash: a } = r.query;
|
|
47229
|
-
if (!
|
|
47509
|
+
if (!r3(i)) return;
|
|
47230
47510
|
let o = n.get(a);
|
|
47231
47511
|
o && clearTimeout(o), n.set(a, setTimeout(() => {
|
|
47232
47512
|
n.delete(a);
|
|
47233
47513
|
try {
|
|
47234
47514
|
let n = e.getQueryData(i);
|
|
47235
47515
|
if (n === void 0) return;
|
|
47236
|
-
t.transaction(
|
|
47516
|
+
t.transaction(e3, "readwrite").objectStore(e3).put({
|
|
47237
47517
|
queryKey: i,
|
|
47238
47518
|
data: n
|
|
47239
47519
|
}, a);
|
|
@@ -47249,7 +47529,7 @@ async function j4(e) {
|
|
|
47249
47529
|
//#endregion
|
|
47250
47530
|
//#region src/panel/App.tsx
|
|
47251
47531
|
Br();
|
|
47252
|
-
var
|
|
47532
|
+
var a3 = /*#__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\">"), o3 = /*#__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\">"), s3 = /*#__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\">–"), c3 = /*#__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>"), l3 = /*#__PURE__*/ N("<button>"), u3 = [
|
|
47253
47533
|
{
|
|
47254
47534
|
id: "draft",
|
|
47255
47535
|
label: "Draft"
|
|
@@ -47286,35 +47566,35 @@ var M4 = /*#__PURE__*/ N("<svg viewBox=\"0 0 100 100\"fill=currentColor aria-hid
|
|
|
47286
47566
|
id: "settings",
|
|
47287
47567
|
label: "Settings"
|
|
47288
47568
|
}
|
|
47289
|
-
],
|
|
47290
|
-
function
|
|
47291
|
-
if (
|
|
47292
|
-
|
|
47569
|
+
], d3 = /* @__PURE__ */ new Set();
|
|
47570
|
+
function f3(e, t, n) {
|
|
47571
|
+
if (d3.has(e) || typeof Notification > "u") return;
|
|
47572
|
+
d3.add(e);
|
|
47293
47573
|
let r = () => new Notification(t, { body: n });
|
|
47294
47574
|
Notification.permission === "granted" ? r() : Notification.permission === "default" && Notification.requestPermission().then((e) => e === "granted" && r());
|
|
47295
47575
|
}
|
|
47296
|
-
function
|
|
47576
|
+
function p3() {
|
|
47297
47577
|
setInterval(() => {
|
|
47298
47578
|
NO().then((e) => {
|
|
47299
47579
|
for (let t of e) {
|
|
47300
47580
|
if (t.status !== "running") continue;
|
|
47301
47581
|
let e = t.lastEventAt ?? t.startedAt;
|
|
47302
|
-
Date.now() - e > 10 * 6e4 &&
|
|
47582
|
+
Date.now() - e > 10 * 6e4 && f3(`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.`);
|
|
47303
47583
|
}
|
|
47304
47584
|
}).catch(() => {}), gO().then((e) => {
|
|
47305
|
-
for (let t of e) /awaitingInput|elicit/i.test(t.status) &&
|
|
47585
|
+
for (let t of e) /awaitingInput|elicit/i.test(t.status) && f3(`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.`);
|
|
47306
47586
|
}).catch(() => {});
|
|
47307
47587
|
}, 6e4);
|
|
47308
47588
|
}
|
|
47309
|
-
|
|
47310
|
-
var
|
|
47589
|
+
p3();
|
|
47590
|
+
var m3 = new gr({ defaultOptions: { queries: {
|
|
47311
47591
|
retry: 1,
|
|
47312
47592
|
refetchOnWindowFocus: !1,
|
|
47313
47593
|
staleTime: 5e3
|
|
47314
47594
|
} } });
|
|
47315
|
-
function
|
|
47595
|
+
function h3(e) {
|
|
47316
47596
|
return (() => {
|
|
47317
|
-
var t =
|
|
47597
|
+
var t = a3();
|
|
47318
47598
|
return D((n) => {
|
|
47319
47599
|
var r = e.size ?? 14, i = e.size ?? 14;
|
|
47320
47600
|
return r !== n.e && it(t, "width", n.e = r), i !== n.t && it(t, "height", n.t = i), n;
|
|
@@ -47324,36 +47604,36 @@ function H4(e) {
|
|
|
47324
47604
|
}), t;
|
|
47325
47605
|
})();
|
|
47326
47606
|
}
|
|
47327
|
-
function
|
|
47607
|
+
function g3(e) {
|
|
47328
47608
|
let [t, n] = T("draft"), r = () => {
|
|
47329
|
-
|
|
47609
|
+
m3.invalidateQueries({ queryKey: ["grab"] }), cj() === "capture" && n("capture"), e.onGrab?.();
|
|
47330
47610
|
};
|
|
47331
47611
|
return O(() => {
|
|
47332
47612
|
let e = nj();
|
|
47333
47613
|
e && n(e);
|
|
47334
47614
|
}), ie(() => {
|
|
47335
|
-
let e =
|
|
47615
|
+
let e = i3(m3), t = XZ(r), n = () => {
|
|
47336
47616
|
JO().then(y$), VO(), MO().then(async (e) => {
|
|
47337
47617
|
if (!e.projectConfig) return;
|
|
47338
|
-
let t =
|
|
47618
|
+
let t = u4(await Tr(), e.projectConfig);
|
|
47339
47619
|
t && await Er(t);
|
|
47340
47620
|
}).catch(() => {});
|
|
47341
47621
|
};
|
|
47342
47622
|
n();
|
|
47343
47623
|
let i = Mr((e) => {
|
|
47344
|
-
e === "settings" && (
|
|
47624
|
+
e === "settings" && (m3.invalidateQueries({ queryKey: ["settings"] }), n()), e === "grab" && r();
|
|
47345
47625
|
});
|
|
47346
47626
|
ae(() => {
|
|
47347
47627
|
t(), i(), e.then((e) => e());
|
|
47348
47628
|
});
|
|
47349
47629
|
}), j(cr, {
|
|
47350
|
-
client:
|
|
47630
|
+
client: m3,
|
|
47351
47631
|
get children() {
|
|
47352
|
-
var r =
|
|
47353
|
-
return i.$$pointerdown = (t) => e.onHeaderPointerDown?.(t), P(a, j(
|
|
47354
|
-
each:
|
|
47632
|
+
var r = c3(), 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;
|
|
47633
|
+
return i.$$pointerdown = (t) => e.onHeaderPointerDown?.(t), P(a, j(h3, { size: 14 })), P(o, j(We, {
|
|
47634
|
+
each: u3,
|
|
47355
47635
|
children: (e) => (() => {
|
|
47356
|
-
var r =
|
|
47636
|
+
var r = l3();
|
|
47357
47637
|
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;
|
|
47358
47638
|
})()
|
|
47359
47639
|
})), P(i, j(M, {
|
|
@@ -47361,7 +47641,7 @@ function U4(e) {
|
|
|
47361
47641
|
return e.onTogglePin;
|
|
47362
47642
|
},
|
|
47363
47643
|
get children() {
|
|
47364
|
-
var t =
|
|
47644
|
+
var t = o3();
|
|
47365
47645
|
return t.$$click = () => e.onTogglePin?.(), D((n) => {
|
|
47366
47646
|
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"}`;
|
|
47367
47647
|
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;
|
|
@@ -47376,10 +47656,10 @@ function U4(e) {
|
|
|
47376
47656
|
return e.onClose;
|
|
47377
47657
|
},
|
|
47378
47658
|
get children() {
|
|
47379
|
-
var t =
|
|
47659
|
+
var t = s3();
|
|
47380
47660
|
return t.$$click = () => e.onClose?.(), t;
|
|
47381
47661
|
}
|
|
47382
|
-
}), 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(
|
|
47662
|
+
}), 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(s4, {})), P(h, j(Q4, {})), D((n) => {
|
|
47383
47663
|
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";
|
|
47384
47664
|
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;
|
|
47385
47665
|
}, {
|
|
@@ -47400,16 +47680,16 @@ function U4(e) {
|
|
|
47400
47680
|
rt(["pointerdown", "click"]);
|
|
47401
47681
|
//#endregion
|
|
47402
47682
|
//#region src/styles/app.css?inline
|
|
47403
|
-
var W4 = "/*! 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}}";
|
|
47683
|
+
var _3 = "/*! 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-72{max-height:calc(var(--spacing) * 72)}.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)}.active\\:transition-none:active{transition-property:none}.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)}}.data-\\[state\\=…\\]\\:transition-none[data-state=…]{transition-property:none}}: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}}";
|
|
47404
47684
|
//#endregion
|
|
47405
47685
|
//#region src/page/index.tsx
|
|
47406
47686
|
Br();
|
|
47407
|
-
var
|
|
47408
|
-
function
|
|
47687
|
+
var v3 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-danger size-2 shrink-0 animate-pulse rounded-full\">"), y3 = /*#__PURE__*/ N("<span class=\"text-text min-w-[5ch] text-[11px] font-medium tabular-nums\">"), b3 = /*#__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"), x3 = /*#__PURE__*/ N("<p class=\"text-warn px-1.5 pt-1 pb-1.5 text-[10.5px] font-semibold tracking-wide uppercase\">Needs review"), S3 = /*#__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"), C3 = /*#__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\">"), w3 = /*#__PURE__*/ N("<div><div title=\"Drag to resize\">"), T3 = /*#__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\">"), E3 = /*#__PURE__*/ N("<span class=\"bg-border h-4 w-px\"aria-hidden>"), D3 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-warn size-2 rounded-full\">"), O3 = /*#__PURE__*/ N("<span class=\"text-warn min-w-[3.5ch] text-left text-[11px] font-medium tabular-nums\"> rev"), k3 = /*#__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>"), A3 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-accent size-2 shrink-0 animate-pulse rounded-full\">"), j3 = /*#__PURE__*/ N("<span class=\"text-text min-w-[3ch] text-[11px] font-medium tabular-nums\">s"), M3 = /*#__PURE__*/ N("<span class=\"text-text-dim min-w-[7ch] text-[11px] tabular-nums\"> states"), N3 = /*#__PURE__*/ N("<p class=\"text-text-faint px-1.5 pb-1.5 text-[11.5px]\">No agents running right now."), P3 = /*#__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\"> · <!> · ");
|
|
47688
|
+
function F3(e = {}) {
|
|
47409
47689
|
if (typeof window > "u" || window.__LINEAR_GRAB_PAGE__) return;
|
|
47410
47690
|
window.__LINEAR_GRAB_PAGE__ = !0;
|
|
47411
47691
|
let t = () => {
|
|
47412
|
-
lk(), JZ();
|
|
47692
|
+
lk(), D2(), JZ();
|
|
47413
47693
|
let t = document.createElement("div");
|
|
47414
47694
|
t.id = "linear-grab-root", document.body.appendChild(t);
|
|
47415
47695
|
let n = (e) => {
|
|
@@ -47437,17 +47717,17 @@ function c3(e = {}) {
|
|
|
47437
47717
|
"keypress"
|
|
47438
47718
|
]) window.addEventListener(e, n, { capture: !0 });
|
|
47439
47719
|
let r = t.attachShadow({ mode: "open" }), i = document.createElement("style");
|
|
47440
|
-
i.textContent =
|
|
47720
|
+
i.textContent = _3, r.appendChild(i);
|
|
47441
47721
|
let a = document.createElement("div");
|
|
47442
47722
|
r.appendChild(a);
|
|
47443
|
-
let o = () => a.setAttribute("data-theme",
|
|
47444
|
-
o(), matchMedia("(prefers-color-scheme: light)").addEventListener("change", o), nt(() => j(
|
|
47723
|
+
let o = () => a.setAttribute("data-theme", I3());
|
|
47724
|
+
o(), matchMedia("(prefers-color-scheme: light)").addEventListener("change", o), nt(() => j(H3, { get defaultOpen() {
|
|
47445
47725
|
return e.defaultOpen ?? !1;
|
|
47446
47726
|
} }), a);
|
|
47447
47727
|
};
|
|
47448
47728
|
document.body ? t() : document.addEventListener("DOMContentLoaded", t, { once: !0 });
|
|
47449
47729
|
}
|
|
47450
|
-
function
|
|
47730
|
+
function I3() {
|
|
47451
47731
|
try {
|
|
47452
47732
|
let e = [document.body, document.documentElement];
|
|
47453
47733
|
for (let t of e) {
|
|
@@ -47457,11 +47737,11 @@ function l3() {
|
|
|
47457
47737
|
} catch {}
|
|
47458
47738
|
return matchMedia("(prefers-color-scheme: light)").matches ? "light" : "dark";
|
|
47459
47739
|
}
|
|
47460
|
-
var
|
|
47461
|
-
function
|
|
47740
|
+
var L3 = 130, R3 = 36, z3 = 380, B3 = 280, V3 = 720;
|
|
47741
|
+
function H3(e) {
|
|
47462
47742
|
let [t, n] = T(e.defaultOpen), [r, i] = T("right"), [a, o] = T({
|
|
47463
|
-
x: Math.max(8, window.innerWidth -
|
|
47464
|
-
y: Math.max(8, window.innerHeight -
|
|
47743
|
+
x: Math.max(8, window.innerWidth - L3 - 24),
|
|
47744
|
+
y: Math.max(8, window.innerHeight - R3 - 20)
|
|
47465
47745
|
}), [s, c] = T({
|
|
47466
47746
|
running: [],
|
|
47467
47747
|
review: []
|
|
@@ -47481,12 +47761,12 @@ function h3(e) {
|
|
|
47481
47761
|
let t = Math.floor(e / 1e3);
|
|
47482
47762
|
return `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
|
|
47483
47763
|
}, [b, x] = T(null), S = (e) => ({
|
|
47484
|
-
x: Math.min(Math.max(8, e.x), window.innerWidth -
|
|
47485
|
-
y: Math.min(Math.max(8, e.y), window.innerHeight -
|
|
47764
|
+
x: Math.min(Math.max(8, e.x), window.innerWidth - L3 - 8),
|
|
47765
|
+
y: Math.min(Math.max(8, e.y), window.innerHeight - R3 - 8)
|
|
47486
47766
|
}), C = (e) => ({
|
|
47487
47767
|
x: Math.min(Math.max(8 - (ne() - 80), e.x), window.innerWidth - 80),
|
|
47488
47768
|
y: Math.min(Math.max(0, e.y), window.innerHeight - 80)
|
|
47489
|
-
}), [w, E] = T(!1), [k, ee] = T("cloud"), [te, A] = T(!1), [ne, re] = T(
|
|
47769
|
+
}), [w, E] = T(!1), [k, ee] = T("cloud"), [te, A] = T(!1), [ne, re] = T(z3), oe = (e) => Math.min(V3, Math.max(B3, Math.min(e, window.innerWidth - 60)));
|
|
47490
47770
|
O(() => {
|
|
47491
47771
|
let e = document.documentElement, n = t() && w();
|
|
47492
47772
|
e.style.transition = "margin 0.2s ease", e.style.marginRight = n && r() === "right" ? `${ne()}px` : "", e.style.marginLeft = n && r() === "left" ? `${ne()}px` : "";
|
|
@@ -47600,7 +47880,7 @@ function h3(e) {
|
|
|
47600
47880
|
return !t();
|
|
47601
47881
|
},
|
|
47602
47882
|
get children() {
|
|
47603
|
-
var e =
|
|
47883
|
+
var e = C3(), t = e.firstChild;
|
|
47604
47884
|
return t.$$click = () => {
|
|
47605
47885
|
ce || p() === "recording" || h().active || (f(!1), n(!0));
|
|
47606
47886
|
}, t.$$pointerdown = le, P(t, j(M, {
|
|
@@ -47610,14 +47890,14 @@ function h3(e) {
|
|
|
47610
47890
|
get fallback() {
|
|
47611
47891
|
return [
|
|
47612
47892
|
(() => {
|
|
47613
|
-
var e =
|
|
47893
|
+
var e = T3();
|
|
47614
47894
|
return e.$$click = () => {
|
|
47615
47895
|
ce || (f(!1), n(!0));
|
|
47616
|
-
}, P(e, j(
|
|
47896
|
+
}, P(e, j(h3, { size: 13 })), e;
|
|
47617
47897
|
})(),
|
|
47618
|
-
|
|
47898
|
+
E3(),
|
|
47619
47899
|
(() => {
|
|
47620
|
-
var e =
|
|
47900
|
+
var e = k3(), t = e.firstChild, n = t.nextSibling;
|
|
47621
47901
|
return e.$$click = (e) => {
|
|
47622
47902
|
e.stopPropagation(), !ce && f((e) => !e);
|
|
47623
47903
|
}, P(n, (() => {
|
|
@@ -47628,8 +47908,8 @@ function h3(e) {
|
|
|
47628
47908
|
return $e(() => !te())() && u().length > 0;
|
|
47629
47909
|
},
|
|
47630
47910
|
get children() {
|
|
47631
|
-
return [
|
|
47632
|
-
var e =
|
|
47911
|
+
return [D3(), (() => {
|
|
47912
|
+
var e = O3(), t = e.firstChild;
|
|
47633
47913
|
return P(e, () => u().length, t), e;
|
|
47634
47914
|
})()];
|
|
47635
47915
|
}
|
|
@@ -47650,17 +47930,17 @@ function h3(e) {
|
|
|
47650
47930
|
},
|
|
47651
47931
|
get fallback() {
|
|
47652
47932
|
return [
|
|
47653
|
-
|
|
47933
|
+
A3(),
|
|
47654
47934
|
(() => {
|
|
47655
|
-
var e =
|
|
47935
|
+
var e = j3(), t = e.firstChild;
|
|
47656
47936
|
return P(e, () => Math.ceil(h().msLeft / 1e3), t), e;
|
|
47657
47937
|
})(),
|
|
47658
47938
|
(() => {
|
|
47659
|
-
var e =
|
|
47939
|
+
var e = M3(), t = e.firstChild;
|
|
47660
47940
|
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;
|
|
47661
47941
|
})(),
|
|
47662
47942
|
(() => {
|
|
47663
|
-
var e =
|
|
47943
|
+
var e = b3();
|
|
47664
47944
|
return e.$$click = (e) => {
|
|
47665
47945
|
e.stopPropagation(), !ce && o2();
|
|
47666
47946
|
}, e;
|
|
@@ -47669,13 +47949,13 @@ function h3(e) {
|
|
|
47669
47949
|
},
|
|
47670
47950
|
get children() {
|
|
47671
47951
|
return [
|
|
47672
|
-
|
|
47952
|
+
v3(),
|
|
47673
47953
|
(() => {
|
|
47674
|
-
var e =
|
|
47954
|
+
var e = y3();
|
|
47675
47955
|
return P(e, () => y(_())), e;
|
|
47676
47956
|
})(),
|
|
47677
47957
|
(() => {
|
|
47678
|
-
var e =
|
|
47958
|
+
var e = b3();
|
|
47679
47959
|
return e.$$click = () => {
|
|
47680
47960
|
ce || eO();
|
|
47681
47961
|
}, e;
|
|
@@ -47689,17 +47969,17 @@ function h3(e) {
|
|
|
47689
47969
|
return d();
|
|
47690
47970
|
},
|
|
47691
47971
|
get children() {
|
|
47692
|
-
var e =
|
|
47972
|
+
var e = S3(), t = e.firstChild;
|
|
47693
47973
|
return P(e, j(M, {
|
|
47694
47974
|
get when() {
|
|
47695
47975
|
return u().length > 0;
|
|
47696
47976
|
},
|
|
47697
47977
|
get children() {
|
|
47698
|
-
return [
|
|
47978
|
+
return [x3(), j(We, {
|
|
47699
47979
|
get each() {
|
|
47700
47980
|
return u();
|
|
47701
47981
|
},
|
|
47702
|
-
children: (e) => j(
|
|
47982
|
+
children: (e) => j(U3, {
|
|
47703
47983
|
agent: e,
|
|
47704
47984
|
review: !0,
|
|
47705
47985
|
onOpen: de
|
|
@@ -47711,14 +47991,14 @@ function h3(e) {
|
|
|
47711
47991
|
return l().length > 0;
|
|
47712
47992
|
},
|
|
47713
47993
|
get fallback() {
|
|
47714
|
-
return
|
|
47994
|
+
return N3();
|
|
47715
47995
|
},
|
|
47716
47996
|
get children() {
|
|
47717
47997
|
return j(We, {
|
|
47718
47998
|
get each() {
|
|
47719
47999
|
return l();
|
|
47720
48000
|
},
|
|
47721
|
-
children: (e) => j(
|
|
48001
|
+
children: (e) => j(U3, {
|
|
47722
48002
|
agent: e,
|
|
47723
48003
|
onOpen: de
|
|
47724
48004
|
})
|
|
@@ -47739,8 +48019,8 @@ function h3(e) {
|
|
|
47739
48019
|
return t();
|
|
47740
48020
|
},
|
|
47741
48021
|
get children() {
|
|
47742
|
-
var e =
|
|
47743
|
-
return t.$$pointerdown = fe, P(e, j(
|
|
48022
|
+
var e = w3(), t = e.firstChild;
|
|
48023
|
+
return t.$$pointerdown = fe, P(e, j(g3, {
|
|
47744
48024
|
onGrab: () => n(!0),
|
|
47745
48025
|
onClose: () => n(!1),
|
|
47746
48026
|
get onHeaderPointerDown() {
|
|
@@ -47768,19 +48048,19 @@ function h3(e) {
|
|
|
47768
48048
|
}
|
|
47769
48049
|
})];
|
|
47770
48050
|
}
|
|
47771
|
-
function
|
|
48051
|
+
function U3(e) {
|
|
47772
48052
|
return (() => {
|
|
47773
|
-
var t =
|
|
48053
|
+
var t = P3(), n = t.firstChild, r = n.firstChild, i = r.nextSibling, a = i.nextSibling, o = n.nextSibling, s = o.firstChild, c = s.nextSibling;
|
|
47774
48054
|
return c.nextSibling, t.$$click = () => e.onOpen(e.agent.id), P(i, () => e.agent.identifier), P(a, () => e.agent.title), P(o, (() => {
|
|
47775
48055
|
var t = $e(() => !!e.review);
|
|
47776
48056
|
return () => t() ? "PR ready · needs review" : e.agent.stateName;
|
|
47777
|
-
})(), s), P(o, () => e.agent.delegateName, c), P(o, () =>
|
|
48057
|
+
})(), s), P(o, () => e.agent.delegateName, c), P(o, () => W3(e.agent.updatedAt), null), D((t) => dt(r, "background", e.review ? "var(--color-warn)" : e.agent.stateColor)), t;
|
|
47778
48058
|
})();
|
|
47779
48059
|
}
|
|
47780
|
-
function
|
|
48060
|
+
function W3(e) {
|
|
47781
48061
|
let t = Math.max(0, Math.floor((Date.now() - Date.parse(e)) / 1e3));
|
|
47782
48062
|
return t < 60 ? "now" : t < 3600 ? `${Math.floor(t / 60)}m` : t < 86400 ? `${Math.floor(t / 3600)}h` : `${Math.floor(t / 86400)}d`;
|
|
47783
48063
|
}
|
|
47784
48064
|
rt(["pointerdown", "click"]);
|
|
47785
48065
|
//#endregion
|
|
47786
|
-
export {
|
|
48066
|
+
export { F3 as init };
|