linear-grab 0.23.2 → 0.23.3
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 +7 -7
- package/dist/linear-grab.js +262 -226
- package/package.json +1 -1
package/dist/linear-grab.js
CHANGED
|
@@ -45980,19 +45980,29 @@ function m2(e) {
|
|
|
45980
45980
|
let t = e.className.split(/\s+/).filter((e) => /^(transition|duration-|delay-|ease-)/.test(e));
|
|
45981
45981
|
return t.length ? t.join(" ") : void 0;
|
|
45982
45982
|
}
|
|
45983
|
-
|
|
45984
|
-
|
|
45985
|
-
return
|
|
45983
|
+
var h2 = /* @__PURE__ */ new Set(/* @__PURE__ */ "width.height.min-width.min-height.max-width.max-height.top.left.right.bottom.inset.margin.margin-top.margin-right.margin-bottom.margin-left.padding.padding-top.padding-right.padding-bottom.padding-left.font-size.line-height.letter-spacing.box-shadow.filter.background-position.grid-template-columns.grid-template-rows.flex-basis.gap".split("."));
|
|
45984
|
+
function g2(e) {
|
|
45985
|
+
return e.includes("all") ? ["all (includes layout/paint props)"] : e.filter((e) => h2.has(e));
|
|
45986
|
+
}
|
|
45987
|
+
function _2(e) {
|
|
45988
|
+
let t = e.split(",")[0].trim();
|
|
45989
|
+
if (t === "ease-in") return "ease-in";
|
|
45990
|
+
let n = t.match(/cubic-bezier\(\s*([\d.]+)\s*,\s*(-?[\d.]+)/);
|
|
45991
|
+
return n && parseFloat(n[1]) >= .4 && parseFloat(n[2]) <= .1 ? t : null;
|
|
45986
45992
|
}
|
|
45987
|
-
|
|
45993
|
+
function v2(e, t, n, r, i, a) {
|
|
45994
|
+
let o = [];
|
|
45995
|
+
return n > 0 && o.push(`remove the ${Math.round(n)}ms transition-delay`), (r?.includes("transition-all") || e.includes("all")) && o.push("scope 'transition-all' to the intended properties (e.g. transition-colors)"), a?.length && o.push(`JANK: transitions LAYOUT/PAINT props (${a.join(", ")}) — reflow/repaint every frame; animate transform/opacity instead (box-shadow → animate a pseudo-element's opacity)`), i && o.push(`easing '${i}' starts slow — never ease-in on UI, use ease-out`), t > 500 ? o.push(`${Math.round(t)}ms is over the 500ms HARD CAP for UI feedback`) : t > 300 ? o.push(`${Math.round(t)}ms is over the 300ms UI cap`) : t > 100 && o.push(`shorten ${Math.round(t)}ms → ≤100ms`), o.push("make PRESS feedback instant: 'active:transition-none' (and data-[state=…]:transition-none for toggles) — animate only hover in/out"), o.join("; ");
|
|
45996
|
+
}
|
|
45997
|
+
async function y2() {
|
|
45988
45998
|
try {
|
|
45989
45999
|
return (await Promise.resolve().then(() => (RZ(), AZ))).getGlobalApi() ?? null;
|
|
45990
46000
|
} catch {
|
|
45991
46001
|
return null;
|
|
45992
46002
|
}
|
|
45993
46003
|
}
|
|
45994
|
-
async function
|
|
45995
|
-
let t = await
|
|
46004
|
+
async function b2(e) {
|
|
46005
|
+
let t = await y2(), n = null, r = null;
|
|
45996
46006
|
try {
|
|
45997
46007
|
n = t?.getDisplayName?.(e) ?? null;
|
|
45998
46008
|
} catch {}
|
|
@@ -46005,15 +46015,15 @@ async function _2(e) {
|
|
|
46005
46015
|
source: r
|
|
46006
46016
|
};
|
|
46007
46017
|
}
|
|
46008
|
-
var
|
|
46009
|
-
function
|
|
46010
|
-
|
|
46011
|
-
|
|
46012
|
-
let e =
|
|
46018
|
+
var x2 = [], S2 = null;
|
|
46019
|
+
function C2(e) {
|
|
46020
|
+
x2.push(e), S2 ??= setTimeout(() => {
|
|
46021
|
+
S2 = null;
|
|
46022
|
+
let e = x2.slice(0, 50).map((e) => ({
|
|
46013
46023
|
kind: "css-slowdown",
|
|
46014
46024
|
...e
|
|
46015
46025
|
}));
|
|
46016
|
-
|
|
46026
|
+
x2 = [], JO().then((t) => fetch(`${t}/scan/events`, {
|
|
46017
46027
|
method: "POST",
|
|
46018
46028
|
headers: { "Content-Type": "application/json" },
|
|
46019
46029
|
body: JSON.stringify({ events: e }),
|
|
@@ -46021,23 +46031,23 @@ function b2(e) {
|
|
|
46021
46031
|
})).catch(() => {});
|
|
46022
46032
|
}, 1500);
|
|
46023
46033
|
}
|
|
46024
|
-
var
|
|
46025
|
-
function
|
|
46026
|
-
|
|
46027
|
-
for (let e of
|
|
46028
|
-
|
|
46034
|
+
var w2 = [], T2 = /* @__PURE__ */ new Set();
|
|
46035
|
+
function E2(e) {
|
|
46036
|
+
w2 = [e, ...w2].slice(0, 100);
|
|
46037
|
+
for (let e of T2) e(w2);
|
|
46038
|
+
C2(e);
|
|
46029
46039
|
}
|
|
46030
|
-
function
|
|
46031
|
-
return
|
|
46040
|
+
function D2(e) {
|
|
46041
|
+
return T2.add(e), e(w2), () => void T2.delete(e);
|
|
46032
46042
|
}
|
|
46033
|
-
function
|
|
46034
|
-
|
|
46035
|
-
for (let e of
|
|
46043
|
+
function O2() {
|
|
46044
|
+
w2 = [];
|
|
46045
|
+
for (let e of T2) e(w2);
|
|
46036
46046
|
}
|
|
46037
|
-
var
|
|
46038
|
-
function
|
|
46039
|
-
if (
|
|
46040
|
-
|
|
46047
|
+
var k2 = !1;
|
|
46048
|
+
function A2() {
|
|
46049
|
+
if (k2 || typeof window > "u") return;
|
|
46050
|
+
k2 = !0;
|
|
46041
46051
|
let e = 0, t = () => {
|
|
46042
46052
|
e = performance.now();
|
|
46043
46053
|
};
|
|
@@ -46072,9 +46082,9 @@ function D2() {
|
|
|
46072
46082
|
let e = p2(a), t = Date.now();
|
|
46073
46083
|
if (t - (n.get(e) ?? 0) < 5e3) return;
|
|
46074
46084
|
n.set(e, t);
|
|
46075
|
-
let i = m2(a), o = [...m.props];
|
|
46076
|
-
|
|
46077
|
-
|
|
46085
|
+
let i = m2(a), o = [...m.props], s = a.isConnected ? _2(getComputedStyle(a).transitionTimingFunction) : null, c = g2(o);
|
|
46086
|
+
b2(a).then(({ component: n, source: r }) => {
|
|
46087
|
+
E2({
|
|
46078
46088
|
mode: "live",
|
|
46079
46089
|
page: location.pathname,
|
|
46080
46090
|
element: e,
|
|
@@ -46086,7 +46096,9 @@ function D2() {
|
|
|
46086
46096
|
sinceInputMs: Math.round(m.since),
|
|
46087
46097
|
count: 1,
|
|
46088
46098
|
classHint: i,
|
|
46089
|
-
|
|
46099
|
+
easing: s ?? void 0,
|
|
46100
|
+
jankProps: c.length ? c : void 0,
|
|
46101
|
+
suggestion: v2(o, m.duration, m.delay, i, s, c),
|
|
46090
46102
|
at: t
|
|
46091
46103
|
});
|
|
46092
46104
|
});
|
|
@@ -46098,9 +46110,9 @@ function D2() {
|
|
|
46098
46110
|
passive: !0
|
|
46099
46111
|
});
|
|
46100
46112
|
}
|
|
46101
|
-
var
|
|
46102
|
-
async function
|
|
46103
|
-
let e = /* @__PURE__ */ new Map(), t = Array.from(document.querySelectorAll(
|
|
46113
|
+
var j2 = "button, a, input, select, textarea, [role], [tabindex], [data-state], [aria-expanded]";
|
|
46114
|
+
async function M2() {
|
|
46115
|
+
let e = /* @__PURE__ */ new Map(), t = Array.from(document.querySelectorAll(j2)).slice(0, 3e3);
|
|
46104
46116
|
for (let n of t) {
|
|
46105
46117
|
if (n.closest("#linear-grab-root")) continue;
|
|
46106
46118
|
let t = n.getBoundingClientRect();
|
|
@@ -46114,6 +46126,7 @@ async function k2() {
|
|
|
46114
46126
|
u.finding.count += 1;
|
|
46115
46127
|
continue;
|
|
46116
46128
|
}
|
|
46129
|
+
let d = _2(r.transitionTimingFunction), f = g2(s);
|
|
46117
46130
|
e.set(l, {
|
|
46118
46131
|
example: n,
|
|
46119
46132
|
finding: {
|
|
@@ -46127,22 +46140,24 @@ async function k2() {
|
|
|
46127
46140
|
delayMs: Math.round(Math.max(...a, 0)),
|
|
46128
46141
|
count: 1,
|
|
46129
46142
|
classHint: c,
|
|
46130
|
-
|
|
46143
|
+
easing: d ?? void 0,
|
|
46144
|
+
jankProps: f.length ? f : void 0,
|
|
46145
|
+
suggestion: v2(s, Math.max(...i, 0), Math.max(...a, 0), c, d, f),
|
|
46131
46146
|
at: Date.now()
|
|
46132
46147
|
}
|
|
46133
46148
|
});
|
|
46134
46149
|
}
|
|
46135
46150
|
let n = [];
|
|
46136
46151
|
for (let { finding: t, example: r } of e.values()) {
|
|
46137
|
-
let { component: e, source: i } = await
|
|
46152
|
+
let { component: e, source: i } = await b2(r);
|
|
46138
46153
|
t.component = e, t.source = i, n.push(t);
|
|
46139
46154
|
}
|
|
46140
|
-
n.sort((e, t) => t.durationMs + t.delayMs - (e.durationMs + e.delayMs) || t.count - e.count),
|
|
46141
|
-
for (let e of
|
|
46142
|
-
for (let e of n)
|
|
46155
|
+
n.sort((e, t) => t.durationMs + t.delayMs - (e.durationMs + e.delayMs) || t.count - e.count), w2 = [...n, ...w2.filter((e) => e.mode === "live")].slice(0, 100);
|
|
46156
|
+
for (let e of T2) e(w2);
|
|
46157
|
+
for (let e of n) C2(e);
|
|
46143
46158
|
return n;
|
|
46144
46159
|
}
|
|
46145
|
-
function
|
|
46160
|
+
function N2(e) {
|
|
46146
46161
|
return [
|
|
46147
46162
|
"Below is a CSS-slowdown report from my running app (live-captured on real input + full-page audit).",
|
|
46148
46163
|
"Goal: ALL interaction feedback must be instant. Rules:",
|
|
@@ -46156,6 +46171,11 @@ function A2(e) {
|
|
|
46156
46171
|
" (duration-75 for small controls like tabs and icon buttons).",
|
|
46157
46172
|
"3. Replace every `transition-all` with the scoped variant (transition-colors /",
|
|
46158
46173
|
" transition-transform / transition-opacity — per what actually changes).",
|
|
46174
|
+
"3b. Findings marked ⚠ layout/paint: NEVER transition width/height/top/left/",
|
|
46175
|
+
" margin/padding/box-shadow — they reflow or repaint every frame. Use",
|
|
46176
|
+
" transform: translate/scale, and animate a pseudo-element's opacity for shadows.",
|
|
46177
|
+
"3c. Findings marked ⚠ easing: never ease-in on UI — replace with ease-out",
|
|
46178
|
+
" (house curve: cubic-bezier(.2,0,.1,1)).",
|
|
46159
46179
|
"4. Where a finding's source looks like a generic fallback (one file:line repeated",
|
|
46160
46180
|
" for many components), locate the code by the `classes:` line instead.",
|
|
46161
46181
|
"5. Do NOT touch entry/exit animations of popovers/menus or icon micro-motion",
|
|
@@ -46166,36 +46186,36 @@ function A2(e) {
|
|
|
46166
46186
|
"",
|
|
46167
46187
|
"---",
|
|
46168
46188
|
"",
|
|
46169
|
-
|
|
46189
|
+
P2(e)
|
|
46170
46190
|
].join("\n");
|
|
46171
46191
|
}
|
|
46172
|
-
function
|
|
46192
|
+
function P2(e) {
|
|
46173
46193
|
let t = [
|
|
46174
46194
|
`# CSS slowdowns on ${location.host}${location.pathname}`,
|
|
46175
46195
|
"Threshold: 50ms (interaction feedback should be instant).",
|
|
46176
46196
|
""
|
|
46177
46197
|
];
|
|
46178
|
-
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}`, "");
|
|
46198
|
+
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.jankProps?.length && t.push(`- ⚠ layout/paint transition (reflows every frame): ${n.jankProps.join(", ")}`), n.easing && t.push(`- ⚠ easing: ${n.easing} (ease-in starts slow — use ease-out)`), n.sinceInputMs != null && t.push(`- fired ${n.sinceInputMs}ms after user input (live capture)`), t.push(`- fix: ${n.suggestion}`, "");
|
|
46179
46199
|
return t.join("\n");
|
|
46180
46200
|
}
|
|
46181
46201
|
//#endregion
|
|
46182
46202
|
//#region src/panel/views/DesignView.tsx
|
|
46183
|
-
var
|
|
46184
|
-
function
|
|
46203
|
+
var F2 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[7ch] text-center\">Extract"), I2 = /*#__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>"), L2 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[8ch] text-center\">"), R2 = /*#__PURE__*/ N("<div class=\"flex items-center justify-end gap-1.5 px-1\">"), z2 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[5ch] text-center\">Audit"), B2 = /*#__PURE__*/ N("<div class=\"flex max-h-72 flex-col gap-1.5 overflow-y-auto pr-2\">"), V2 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[11ch] text-center\">"), H2 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[10ch] text-center\">"), U2 = /*#__PURE__*/ N("<div class=\"flex items-center gap-1.5 px-1\">"), W2 = /*#__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."), G2 = /*#__PURE__*/ N("<p class=\"text-text mt-1 text-[11px] font-semibold\">Interaction states"), K2 = /*#__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>"), q2 = /*#__PURE__*/ N("<span class=\"text-warn text-[10.5px] font-medium tabular-nums\">s · <!> states"), J2 = /*#__PURE__*/ N("<span class=\"text-success text-[12px] leading-none\">✓"), Y2 = /*#__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\">"), X2 = /*#__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\">"), Z2 = /*#__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\">"), Q2 = /*#__PURE__*/ N("<span class=text-text-faint> ×"), $2 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-0.5\"><p class=\"text-text text-[11px] font-medium\">"), e4 = /*#__PURE__*/ N("<span class=text-accent> ← var(<!>)"), t4 = /*#__PURE__*/ N("<p class=\"text-text-dim font-mono text-[10px] leading-snug break-all\">: "), n4 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-0.5\"><p class=\"text-warn text-[10.5px] font-medium\"> — "), r4 = /*#__PURE__*/ N("<p class=\"text-text-dim font-mono text-[10px] leading-snug break-all\">: <!> → "), i4 = /*#__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>"), a4 = /*#__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\">"), o4 = /*#__PURE__*/ N("<p class=\"text-text-faint px-1 text-[10.5px]\">Nothing caught yet — interact with the app, or run Audit."), s4 = /*#__PURE__*/ N("<span class=\"text-text-dim font-mono text-[10px] break-all\">"), c4 = /*#__PURE__*/ N("<span class=\"text-danger text-[10px] leading-snug\">⚠ layout/paint transition: "), l4 = /*#__PURE__*/ N("<span class=\"text-danger text-[10px] leading-snug\">⚠ ease-in easing: "), u4 = /*#__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\">"), d4 = "linear-grab:genomes:v1", f4 = 30;
|
|
46204
|
+
function p4() {
|
|
46185
46205
|
try {
|
|
46186
|
-
return JSON.parse(localStorage.getItem(
|
|
46206
|
+
return JSON.parse(localStorage.getItem(d4) ?? "[]");
|
|
46187
46207
|
} catch {
|
|
46188
46208
|
return [];
|
|
46189
46209
|
}
|
|
46190
46210
|
}
|
|
46191
|
-
function
|
|
46211
|
+
function m4(e) {
|
|
46192
46212
|
try {
|
|
46193
|
-
localStorage.setItem(
|
|
46213
|
+
localStorage.setItem(d4, JSON.stringify(e.slice(0, f4)));
|
|
46194
46214
|
} catch {}
|
|
46195
46215
|
}
|
|
46196
|
-
var
|
|
46197
|
-
function
|
|
46198
|
-
let [e, t] = T(
|
|
46216
|
+
var h4 = /* @__PURE__ */ new Map();
|
|
46217
|
+
function g4() {
|
|
46218
|
+
let [e, t] = T(p4()), [n, r] = T(null), [i, a] = T(null), [o, s] = T(null), [c, l] = T(null), [u, d] = T(null), [f, p] = T({
|
|
46199
46219
|
active: !1,
|
|
46200
46220
|
msLeft: 0,
|
|
46201
46221
|
total: 0,
|
|
@@ -46203,35 +46223,35 @@ function d4() {
|
|
|
46203
46223
|
});
|
|
46204
46224
|
ae(i2(p));
|
|
46205
46225
|
let [m, h] = T([]);
|
|
46206
|
-
ae(
|
|
46226
|
+
ae(D2(h));
|
|
46207
46227
|
let [g, _] = T(!1), [v, y] = T(!1), b = async () => {
|
|
46208
46228
|
_(!0);
|
|
46209
46229
|
try {
|
|
46210
|
-
await
|
|
46230
|
+
await M2();
|
|
46211
46231
|
} finally {
|
|
46212
46232
|
_(!1);
|
|
46213
46233
|
}
|
|
46214
46234
|
}, x = async () => {
|
|
46215
46235
|
try {
|
|
46216
|
-
await navigator.clipboard.writeText(
|
|
46236
|
+
await navigator.clipboard.writeText(P2(m())), y(!0), setTimeout(() => y(!1), 1600);
|
|
46217
46237
|
} catch {
|
|
46218
46238
|
l("Clipboard was blocked — click Copy again.");
|
|
46219
46239
|
}
|
|
46220
46240
|
}, [S, C] = T(!1), w = async () => {
|
|
46221
46241
|
try {
|
|
46222
|
-
await navigator.clipboard.writeText(
|
|
46242
|
+
await navigator.clipboard.writeText(N2(m())), C(!0), setTimeout(() => C(!1), 1600);
|
|
46223
46243
|
} catch {
|
|
46224
46244
|
l("Clipboard was blocked — click Copy again.");
|
|
46225
46245
|
}
|
|
46226
46246
|
}, E = (e) => {
|
|
46227
|
-
t(e),
|
|
46247
|
+
t(e), m4(e);
|
|
46228
46248
|
}, O = async () => {
|
|
46229
46249
|
l(null), a("extract"), window.dispatchEvent(new CustomEvent(BZ));
|
|
46230
46250
|
try {
|
|
46231
46251
|
let t = await u2();
|
|
46232
46252
|
if (!t) return;
|
|
46233
46253
|
let n = await e2(t), i = Date.now();
|
|
46234
|
-
|
|
46254
|
+
h4.set(i, new WeakRef(t)), E([{
|
|
46235
46255
|
id: i,
|
|
46236
46256
|
genome: n
|
|
46237
46257
|
}, ...e()]), r(i);
|
|
@@ -46243,10 +46263,10 @@ function d4() {
|
|
|
46243
46263
|
}, k = async (t) => {
|
|
46244
46264
|
l(null), a(t.id), window.dispatchEvent(new CustomEvent(BZ));
|
|
46245
46265
|
try {
|
|
46246
|
-
let n =
|
|
46266
|
+
let n = h4.get(t.id)?.deref() ?? null;
|
|
46247
46267
|
if (!n || !n.isConnected) {
|
|
46248
46268
|
if (n = await u2(), !n) return;
|
|
46249
|
-
|
|
46269
|
+
h4.set(t.id, new WeakRef(n));
|
|
46250
46270
|
}
|
|
46251
46271
|
let r = await c2(n, 8e3, (e) => s(Math.ceil(e / 1e3)));
|
|
46252
46272
|
r.length === 0 && l("No state changes captured — hover/open the component while the 8s window runs."), E(e().map((e) => e.id === t.id ? {
|
|
@@ -46268,7 +46288,7 @@ function d4() {
|
|
|
46268
46288
|
l("Clipboard was blocked — click Copy again.");
|
|
46269
46289
|
}
|
|
46270
46290
|
}, te = (t) => {
|
|
46271
|
-
|
|
46291
|
+
h4.delete(t), E(e().filter((e) => e.id !== t));
|
|
46272
46292
|
}, [A, ne] = T(!1), re = async () => {
|
|
46273
46293
|
try {
|
|
46274
46294
|
let t = e().map((e) => l2(e.genome)).join("\n\n---\n\n");
|
|
@@ -46277,10 +46297,10 @@ function d4() {
|
|
|
46277
46297
|
l("Clipboard was blocked — click Copy again.");
|
|
46278
46298
|
}
|
|
46279
46299
|
}, ie = () => {
|
|
46280
|
-
|
|
46300
|
+
h4.clear(), E([]), r(null);
|
|
46281
46301
|
};
|
|
46282
46302
|
return (() => {
|
|
46283
|
-
var t =
|
|
46303
|
+
var t = W2(), a = t.firstChild;
|
|
46284
46304
|
a.firstChild;
|
|
46285
46305
|
var o = a.nextSibling, s = o.firstChild;
|
|
46286
46306
|
return s.firstChild, P(a, j(kj, {
|
|
@@ -46291,7 +46311,7 @@ function d4() {
|
|
|
46291
46311
|
},
|
|
46292
46312
|
onClick: () => void O(),
|
|
46293
46313
|
get children() {
|
|
46294
|
-
return
|
|
46314
|
+
return F2();
|
|
46295
46315
|
}
|
|
46296
46316
|
}), null), P(t, j(M, {
|
|
46297
46317
|
get when() {
|
|
@@ -46314,7 +46334,7 @@ function d4() {
|
|
|
46314
46334
|
},
|
|
46315
46335
|
get children() {
|
|
46316
46336
|
return [(() => {
|
|
46317
|
-
var t =
|
|
46337
|
+
var t = I2();
|
|
46318
46338
|
return t.firstChild, P(t, j(We, {
|
|
46319
46339
|
get each() {
|
|
46320
46340
|
return e();
|
|
@@ -46322,7 +46342,7 @@ function d4() {
|
|
|
46322
46342
|
children: (e) => {
|
|
46323
46343
|
let t = () => n() === e.id;
|
|
46324
46344
|
return (() => {
|
|
46325
|
-
var n =
|
|
46345
|
+
var n = Z2(), a = n.firstChild, o = a.nextSibling, s = o.firstChild, c = s.firstChild, l = c.nextSibling, d = l.firstChild, p = d.nextSibling;
|
|
46326
46346
|
p.nextSibling;
|
|
46327
46347
|
var m = l.nextSibling;
|
|
46328
46348
|
return s.$$click = () => r(t() ? null : e.id), P(c, () => e.genome.title), P(l, () => e.genome.nodes.length, d), P(l, (() => {
|
|
@@ -46333,19 +46353,19 @@ function d4() {
|
|
|
46333
46353
|
return t();
|
|
46334
46354
|
},
|
|
46335
46355
|
get children() {
|
|
46336
|
-
var t =
|
|
46356
|
+
var t = X2(), n = t.firstChild, r = n.nextSibling, a = r.nextSibling;
|
|
46337
46357
|
return P(n, () => e.genome.pageUrl), P(r, j(We, {
|
|
46338
46358
|
get each() {
|
|
46339
46359
|
return e.genome.nodes;
|
|
46340
46360
|
},
|
|
46341
46361
|
children: (e) => (() => {
|
|
46342
|
-
var t =
|
|
46362
|
+
var t = $2(), n = t.firstChild;
|
|
46343
46363
|
return P(n, () => e.label, null), P(n, j(M, {
|
|
46344
46364
|
get when() {
|
|
46345
46365
|
return e.count > 1;
|
|
46346
46366
|
},
|
|
46347
46367
|
get children() {
|
|
46348
|
-
var t =
|
|
46368
|
+
var t = Q2();
|
|
46349
46369
|
return t.firstChild, P(t, () => e.count, null), t;
|
|
46350
46370
|
}
|
|
46351
46371
|
}), null), P(t, j(We, {
|
|
@@ -46353,13 +46373,13 @@ function d4() {
|
|
|
46353
46373
|
return Object.entries(e.styles);
|
|
46354
46374
|
},
|
|
46355
46375
|
children: ([t, n]) => (() => {
|
|
46356
|
-
var r =
|
|
46376
|
+
var r = t4(), i = r.firstChild;
|
|
46357
46377
|
return P(r, t, i), P(r, n, null), P(r, j(M, {
|
|
46358
46378
|
get when() {
|
|
46359
46379
|
return e.tokens[t];
|
|
46360
46380
|
},
|
|
46361
46381
|
get children() {
|
|
46362
|
-
var n =
|
|
46382
|
+
var n = e4(), r = n.firstChild.nextSibling;
|
|
46363
46383
|
return r.nextSibling, P(n, () => e.tokens[t], r), n;
|
|
46364
46384
|
}
|
|
46365
46385
|
}), null), r;
|
|
@@ -46371,18 +46391,18 @@ function d4() {
|
|
|
46371
46391
|
return e.genome.states.length > 0;
|
|
46372
46392
|
},
|
|
46373
46393
|
get children() {
|
|
46374
|
-
return [
|
|
46394
|
+
return [G2(), j(We, {
|
|
46375
46395
|
get each() {
|
|
46376
46396
|
return e.genome.states;
|
|
46377
46397
|
},
|
|
46378
46398
|
children: (e) => (() => {
|
|
46379
|
-
var t =
|
|
46399
|
+
var t = n4(), n = t.firstChild, r = n.firstChild;
|
|
46380
46400
|
return P(n, () => e.label, r), P(n, () => e.trigger, null), P(t, j(We, {
|
|
46381
46401
|
get each() {
|
|
46382
46402
|
return Object.entries(e.changed);
|
|
46383
46403
|
},
|
|
46384
46404
|
children: ([e, t]) => (() => {
|
|
46385
|
-
var n =
|
|
46405
|
+
var n = r4(), r = n.firstChild, i = r.nextSibling;
|
|
46386
46406
|
return i.nextSibling, P(n, e, r), P(n, () => t.from, i), P(n, () => t.to, null), n;
|
|
46387
46407
|
})()
|
|
46388
46408
|
}), null), t;
|
|
@@ -46404,7 +46424,7 @@ function d4() {
|
|
|
46404
46424
|
"aria-label": "Capture interaction states",
|
|
46405
46425
|
onClick: () => void k(e),
|
|
46406
46426
|
get children() {
|
|
46407
|
-
return
|
|
46427
|
+
return i4();
|
|
46408
46428
|
}
|
|
46409
46429
|
});
|
|
46410
46430
|
},
|
|
@@ -46418,10 +46438,10 @@ function d4() {
|
|
|
46418
46438
|
"aria-label": "Stop recording states",
|
|
46419
46439
|
onClick: () => o2(),
|
|
46420
46440
|
get children() {
|
|
46421
|
-
return
|
|
46441
|
+
return K2();
|
|
46422
46442
|
}
|
|
46423
46443
|
}), (() => {
|
|
46424
|
-
var e =
|
|
46444
|
+
var e = q2(), t = e.firstChild, n = t.nextSibling;
|
|
46425
46445
|
return n.nextSibling, P(e, () => Math.ceil(f().msLeft / 1e3), t), P(e, () => f().total, n), e;
|
|
46426
46446
|
})()];
|
|
46427
46447
|
}
|
|
@@ -46439,10 +46459,10 @@ function d4() {
|
|
|
46439
46459
|
return u() === e.id;
|
|
46440
46460
|
},
|
|
46441
46461
|
get fallback() {
|
|
46442
|
-
return
|
|
46462
|
+
return a4();
|
|
46443
46463
|
},
|
|
46444
46464
|
get children() {
|
|
46445
|
-
return
|
|
46465
|
+
return J2();
|
|
46446
46466
|
}
|
|
46447
46467
|
});
|
|
46448
46468
|
}
|
|
@@ -46453,7 +46473,7 @@ function d4() {
|
|
|
46453
46473
|
"aria-label": "Delete genome",
|
|
46454
46474
|
onClick: () => te(e.id),
|
|
46455
46475
|
get children() {
|
|
46456
|
-
return
|
|
46476
|
+
return Y2();
|
|
46457
46477
|
}
|
|
46458
46478
|
}), null), t;
|
|
46459
46479
|
}
|
|
@@ -46468,14 +46488,14 @@ function d4() {
|
|
|
46468
46488
|
}
|
|
46469
46489
|
}), null), t;
|
|
46470
46490
|
})(), (() => {
|
|
46471
|
-
var e =
|
|
46491
|
+
var e = R2();
|
|
46472
46492
|
return P(e, j(kj, {
|
|
46473
46493
|
class: "h-6 px-2 text-[11px]",
|
|
46474
46494
|
variant: "ghost",
|
|
46475
46495
|
title: "Copy every genome as one markdown document",
|
|
46476
46496
|
onClick: () => void re(),
|
|
46477
46497
|
get children() {
|
|
46478
|
-
var e =
|
|
46498
|
+
var e = L2();
|
|
46479
46499
|
return P(e, () => A() ? "Copied ✓" : "Copy all"), e;
|
|
46480
46500
|
}
|
|
46481
46501
|
}), null), P(e, j(kj, {
|
|
@@ -46494,24 +46514,24 @@ function d4() {
|
|
|
46494
46514
|
},
|
|
46495
46515
|
onClick: () => void b(),
|
|
46496
46516
|
get children() {
|
|
46497
|
-
return
|
|
46517
|
+
return z2();
|
|
46498
46518
|
}
|
|
46499
46519
|
}), null), P(o, j(M, {
|
|
46500
46520
|
get when() {
|
|
46501
46521
|
return m().length > 0;
|
|
46502
46522
|
},
|
|
46503
46523
|
get fallback() {
|
|
46504
|
-
return
|
|
46524
|
+
return o4();
|
|
46505
46525
|
},
|
|
46506
46526
|
get children() {
|
|
46507
46527
|
return [(() => {
|
|
46508
|
-
var e =
|
|
46528
|
+
var e = B2();
|
|
46509
46529
|
return P(e, j(We, {
|
|
46510
46530
|
get each() {
|
|
46511
46531
|
return m();
|
|
46512
46532
|
},
|
|
46513
46533
|
children: (e) => (() => {
|
|
46514
|
-
var t =
|
|
46534
|
+
var t = u4(), n = t.firstChild, r = n.firstChild, i = r.nextSibling, a = i.nextSibling, o = a.firstChild, s = n.nextSibling, c = s.nextSibling;
|
|
46515
46535
|
return P(r, () => e.mode === "live" ? "live" : "audit"), P(i, () => e.component ?? e.element, null), P(i, j(M, {
|
|
46516
46536
|
get when() {
|
|
46517
46537
|
return e.count > 1;
|
|
@@ -46527,7 +46547,7 @@ function d4() {
|
|
|
46527
46547
|
return e.source;
|
|
46528
46548
|
},
|
|
46529
46549
|
get children() {
|
|
46530
|
-
var t =
|
|
46550
|
+
var t = s4();
|
|
46531
46551
|
return P(t, () => e.source), t;
|
|
46532
46552
|
}
|
|
46533
46553
|
}), s), P(s, () => e.properties.join(", "), null), P(s, j(M, {
|
|
@@ -46541,18 +46561,34 @@ function d4() {
|
|
|
46541
46561
|
"ms after input"
|
|
46542
46562
|
];
|
|
46543
46563
|
}
|
|
46544
|
-
}), null), P(
|
|
46564
|
+
}), null), P(t, j(M, {
|
|
46565
|
+
get when() {
|
|
46566
|
+
return e.jankProps?.length;
|
|
46567
|
+
},
|
|
46568
|
+
get children() {
|
|
46569
|
+
var t = c4();
|
|
46570
|
+
return t.firstChild, P(t, () => e.jankProps.join(", "), null), t;
|
|
46571
|
+
}
|
|
46572
|
+
}), c), P(t, j(M, {
|
|
46573
|
+
get when() {
|
|
46574
|
+
return e.easing;
|
|
46575
|
+
},
|
|
46576
|
+
get children() {
|
|
46577
|
+
var t = l4();
|
|
46578
|
+
return t.firstChild, P(t, () => e.easing, null), t;
|
|
46579
|
+
}
|
|
46580
|
+
}), c), P(c, () => e.suggestion), t;
|
|
46545
46581
|
})()
|
|
46546
46582
|
})), e;
|
|
46547
46583
|
})(), (() => {
|
|
46548
|
-
var e =
|
|
46584
|
+
var e = U2();
|
|
46549
46585
|
return P(e, j(kj, {
|
|
46550
46586
|
class: "h-6 px-2 text-[11px]",
|
|
46551
46587
|
variant: "primary",
|
|
46552
46588
|
title: "Report + fix rules, ready to paste into a Claude Code session",
|
|
46553
46589
|
onClick: () => void w(),
|
|
46554
46590
|
get children() {
|
|
46555
|
-
var e =
|
|
46591
|
+
var e = V2();
|
|
46556
46592
|
return P(e, () => S() ? "Copied ✓" : "Copy AI prompt"), e;
|
|
46557
46593
|
}
|
|
46558
46594
|
}), null), P(e, j(kj, {
|
|
@@ -46560,13 +46596,13 @@ function d4() {
|
|
|
46560
46596
|
variant: "ghost",
|
|
46561
46597
|
onClick: () => void x(),
|
|
46562
46598
|
get children() {
|
|
46563
|
-
var e =
|
|
46599
|
+
var e = H2();
|
|
46564
46600
|
return P(e, () => v() ? "Copied ✓" : "Copy report"), e;
|
|
46565
46601
|
}
|
|
46566
46602
|
}), null), P(e, j(kj, {
|
|
46567
46603
|
class: "h-6 px-2 text-[11px]",
|
|
46568
46604
|
variant: "ghost",
|
|
46569
|
-
onClick:
|
|
46605
|
+
onClick: O2,
|
|
46570
46606
|
children: "Clear all"
|
|
46571
46607
|
}), null), e;
|
|
46572
46608
|
})()];
|
|
@@ -46577,7 +46613,7 @@ function d4() {
|
|
|
46577
46613
|
rt(["click"]);
|
|
46578
46614
|
//#endregion
|
|
46579
46615
|
//#region src/lib/projectConfig.ts
|
|
46580
|
-
var
|
|
46616
|
+
var _4 = [
|
|
46581
46617
|
"defaultTeamId",
|
|
46582
46618
|
"defaultProjectId",
|
|
46583
46619
|
"defaultLabelIds",
|
|
@@ -46592,29 +46628,29 @@ var f4 = [
|
|
|
46592
46628
|
"issueTemplate",
|
|
46593
46629
|
"testUsername"
|
|
46594
46630
|
];
|
|
46595
|
-
function
|
|
46631
|
+
function v4(e) {
|
|
46596
46632
|
let t = {};
|
|
46597
|
-
for (let n of
|
|
46633
|
+
for (let n of _4) {
|
|
46598
46634
|
let r = e[n];
|
|
46599
46635
|
r !== void 0 && r !== "" && !(Array.isArray(r) && r.length === 0) && (t[n] = r);
|
|
46600
46636
|
}
|
|
46601
46637
|
return t;
|
|
46602
46638
|
}
|
|
46603
|
-
function
|
|
46639
|
+
function y4(e, t) {
|
|
46604
46640
|
let n = {};
|
|
46605
|
-
for (let r of
|
|
46641
|
+
for (let r of _4) e[r] === void 0 && t[r] !== void 0 && (n[r] = t[r]);
|
|
46606
46642
|
return Object.keys(n).length ? n : null;
|
|
46607
46643
|
}
|
|
46608
46644
|
//#endregion
|
|
46609
46645
|
//#region src/lib/linear/auth.ts
|
|
46610
46646
|
Br();
|
|
46611
|
-
function
|
|
46647
|
+
function b4(e) {
|
|
46612
46648
|
let t = "";
|
|
46613
46649
|
for (let n of e) t += String.fromCharCode(n);
|
|
46614
46650
|
return btoa(t).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
|
|
46615
46651
|
}
|
|
46616
|
-
async function
|
|
46617
|
-
let t =
|
|
46652
|
+
async function x4(e) {
|
|
46653
|
+
let t = b4(crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(32))), n = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(t)), r = b4(new Uint8Array(n)), i = b4(crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(16))), a = chrome.identity.getRedirectURL(), o = new URL("https://linear.app/oauth/authorize");
|
|
46618
46654
|
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");
|
|
46619
46655
|
let s = await chrome.identity.launchWebAuthFlow({
|
|
46620
46656
|
url: o.toString(),
|
|
@@ -46642,15 +46678,15 @@ async function g4(e) {
|
|
|
46642
46678
|
linearOauthClientId: e
|
|
46643
46679
|
});
|
|
46644
46680
|
}
|
|
46645
|
-
async function
|
|
46681
|
+
async function S4() {
|
|
46646
46682
|
await Er({
|
|
46647
46683
|
linearAccessToken: void 0,
|
|
46648
46684
|
linearApiKey: void 0
|
|
46649
46685
|
});
|
|
46650
46686
|
}
|
|
46651
46687
|
Br(), Sr(), Fx(), gD();
|
|
46652
|
-
var
|
|
46653
|
-
function
|
|
46688
|
+
var C4 = /*#__PURE__*/ N("<div class=\"bg-surface-2 border-border flex rounded-md border p-0.5\">"), w4 = /*#__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."), T4 = /*#__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"), E4 = /*#__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)."), D4 = /*#__PURE__*/ N("<span class=text-text>Connected as <span class=font-medium></span> · <span class=text-text-dim>"), O4 = /*#__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]\">"), k4 = /*#__PURE__*/ N("<option value>Select a team…"), A4 = /*#__PURE__*/ N("<option value>No project"), j4 = /*#__PURE__*/ N("<div class=\"flex flex-wrap gap-1\">"), M4 = /*#__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."), N4 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">No agents found — install the Cursor integration in Linear first."), P4 = /*#__PURE__*/ N("<span class=\"text-text-faint text-[10.5px] leading-snug\">Empty = the default above (computer-use testing, video demo, PR + review babysitting)."), F4 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1.5\">"), I4 = /*#__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."), L4 = /*#__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."), R4 = /*#__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."), z4 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[10ch] text-center\">"), B4 = /*#__PURE__*/ N("<div class=\"flex items-center gap-2\">"), V4 = /*#__PURE__*/ N("<option value>Select a channel…"), H4 = /*#__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"), U4 = /*#__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."), W4 = /*#__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"), G4 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">"), K4 = /*#__PURE__*/ N("<div class=min-h-[2lh]>"), q4 = /*#__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."), J4 = /*#__PURE__*/ N("<div class=\"flex h-full flex-col gap-5 overflow-y-auto pt-3 pb-6 pl-3 pr-4\">"), Y4 = /*#__PURE__*/ N("<button>"), X4 = /*#__PURE__*/ N("<div class=\"flex gap-1.5\">"), Z4 = /*#__PURE__*/ N("<p class=\"text-text-faint text-center text-[10.5px]\">or"), Q4 = /*#__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\">"), $4 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-3\">"), e3 = /*#__PURE__*/ N("<span class=text-text-dim>Connected — verifying…"), t3 = /*#__PURE__*/ N("<option> (<!>)"), n3 = /*#__PURE__*/ N("<option>"), r3 = /*#__PURE__*/ N("<button type=button><span class=\"mr-1 inline-block size-2 rounded-full align-middle\">"), i3 = /*#__PURE__*/ N("<option value>Select the agent…"), a3 = /*#__PURE__*/ N("<option>#"), o3 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">No key set — AI drafting disabled, manual drafting still works.");
|
|
46689
|
+
function s3() {
|
|
46654
46690
|
let e = sr(), t = _r(() => ({
|
|
46655
46691
|
queryKey: ["settings"],
|
|
46656
46692
|
queryFn: Tr,
|
|
@@ -46678,13 +46714,13 @@ function n3() {
|
|
|
46678
46714
|
retry: 0
|
|
46679
46715
|
})), [l, u] = T(!1), d = async () => {
|
|
46680
46716
|
try {
|
|
46681
|
-
await navigator.clipboard.writeText(JSON.stringify(
|
|
46717
|
+
await navigator.clipboard.writeText(JSON.stringify(v4(n()), null, 2) + "\n"), u(!0), setTimeout(() => u(!1), 1800);
|
|
46682
46718
|
} catch {}
|
|
46683
46719
|
}, f = () => {
|
|
46684
46720
|
let e = c.data?.projectConfig;
|
|
46685
46721
|
if (!e) return;
|
|
46686
46722
|
let t = {};
|
|
46687
|
-
for (let n of
|
|
46723
|
+
for (let n of _4) e[n] !== void 0 && (t[n] = e[n]);
|
|
46688
46724
|
r(t);
|
|
46689
46725
|
}, p = _r(() => ({
|
|
46690
46726
|
queryKey: ["linear-labels"],
|
|
@@ -46717,7 +46753,7 @@ function n3() {
|
|
|
46717
46753
|
}
|
|
46718
46754
|
E(!0), ee("");
|
|
46719
46755
|
try {
|
|
46720
|
-
await
|
|
46756
|
+
await x4(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"] });
|
|
46721
46757
|
} catch (e) {
|
|
46722
46758
|
ee(e instanceof Error ? e.message : "OAuth flow failed.");
|
|
46723
46759
|
} finally {
|
|
@@ -46728,7 +46764,7 @@ function n3() {
|
|
|
46728
46764
|
async function re() {
|
|
46729
46765
|
ne(!0);
|
|
46730
46766
|
try {
|
|
46731
|
-
await
|
|
46767
|
+
await S4(), 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"] });
|
|
46732
46768
|
} finally {
|
|
46733
46769
|
ne(!1);
|
|
46734
46770
|
}
|
|
@@ -46744,12 +46780,12 @@ function n3() {
|
|
|
46744
46780
|
return e ? `Drafting with ${e} — ${Nx[e].fast} (fast) / ${Nx[e].best} (best)` : null;
|
|
46745
46781
|
});
|
|
46746
46782
|
return (() => {
|
|
46747
|
-
var e =
|
|
46783
|
+
var e = J4();
|
|
46748
46784
|
return P(e, j(Rj, {
|
|
46749
46785
|
title: "Workflow",
|
|
46750
46786
|
get children() {
|
|
46751
46787
|
return [(() => {
|
|
46752
|
-
var e =
|
|
46788
|
+
var e = C4();
|
|
46753
46789
|
return P(e, j(We, {
|
|
46754
46790
|
each: [{
|
|
46755
46791
|
id: "cloud",
|
|
@@ -46759,19 +46795,19 @@ function n3() {
|
|
|
46759
46795
|
label: "Local · clipboard"
|
|
46760
46796
|
}],
|
|
46761
46797
|
children: (e) => (() => {
|
|
46762
|
-
var t =
|
|
46798
|
+
var t = Y4();
|
|
46763
46799
|
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;
|
|
46764
46800
|
})()
|
|
46765
46801
|
})), e;
|
|
46766
|
-
})(),
|
|
46802
|
+
})(), w4()];
|
|
46767
46803
|
}
|
|
46768
46804
|
}), null), P(e, j(Rj, {
|
|
46769
46805
|
title: "Capture",
|
|
46770
46806
|
get children() {
|
|
46771
46807
|
return [(() => {
|
|
46772
|
-
var e =
|
|
46808
|
+
var e = T4(), t = e.firstChild;
|
|
46773
46809
|
return t.addEventListener("change", (e) => void r({ captureShots: e.currentTarget.checked || void 0 })), D(() => t.checked = !!n().captureShots), e;
|
|
46774
|
-
})(),
|
|
46810
|
+
})(), E4()];
|
|
46775
46811
|
}
|
|
46776
46812
|
}), null), P(e, j(Rj, {
|
|
46777
46813
|
title: "Linear",
|
|
@@ -46782,13 +46818,13 @@ function n3() {
|
|
|
46782
46818
|
},
|
|
46783
46819
|
get fallback() {
|
|
46784
46820
|
return (() => {
|
|
46785
|
-
var e =
|
|
46821
|
+
var e = $4();
|
|
46786
46822
|
return P(e, j(Lj, {
|
|
46787
46823
|
label: "Personal API key",
|
|
46788
46824
|
hint: "Create one at linear.app → Settings → API — fastest path.",
|
|
46789
46825
|
get children() {
|
|
46790
46826
|
return [(() => {
|
|
46791
|
-
var e =
|
|
46827
|
+
var e = X4();
|
|
46792
46828
|
return P(e, j(jj, {
|
|
46793
46829
|
type: "password",
|
|
46794
46830
|
placeholder: "lin_api_…",
|
|
@@ -46825,12 +46861,12 @@ function n3() {
|
|
|
46825
46861
|
}), null), P(e, j(M, {
|
|
46826
46862
|
when: xr,
|
|
46827
46863
|
get children() {
|
|
46828
|
-
return [
|
|
46864
|
+
return [Z4(), j(Lj, {
|
|
46829
46865
|
label: "OAuth client ID",
|
|
46830
46866
|
get children() {
|
|
46831
46867
|
return [
|
|
46832
46868
|
(() => {
|
|
46833
|
-
var e =
|
|
46869
|
+
var e = X4();
|
|
46834
46870
|
return P(e, j(jj, {
|
|
46835
46871
|
placeholder: "your-client-id",
|
|
46836
46872
|
get value() {
|
|
@@ -46858,7 +46894,7 @@ function n3() {
|
|
|
46858
46894
|
}
|
|
46859
46895
|
}),
|
|
46860
46896
|
(() => {
|
|
46861
|
-
var e =
|
|
46897
|
+
var e = Q4(), t = e.firstChild.nextSibling.nextSibling;
|
|
46862
46898
|
return P(t, ie), e;
|
|
46863
46899
|
})()
|
|
46864
46900
|
];
|
|
@@ -46869,13 +46905,13 @@ function n3() {
|
|
|
46869
46905
|
})();
|
|
46870
46906
|
},
|
|
46871
46907
|
get children() {
|
|
46872
|
-
var e =
|
|
46908
|
+
var e = O4(), t = e.firstChild;
|
|
46873
46909
|
return P(t, j(M, {
|
|
46874
46910
|
get when() {
|
|
46875
46911
|
return !a.isLoading;
|
|
46876
46912
|
},
|
|
46877
46913
|
get fallback() {
|
|
46878
|
-
return
|
|
46914
|
+
return e3();
|
|
46879
46915
|
},
|
|
46880
46916
|
get children() {
|
|
46881
46917
|
return j(M, {
|
|
@@ -46888,7 +46924,7 @@ function n3() {
|
|
|
46888
46924
|
return a.isError;
|
|
46889
46925
|
},
|
|
46890
46926
|
get fallback() {
|
|
46891
|
-
return
|
|
46927
|
+
return e3();
|
|
46892
46928
|
},
|
|
46893
46929
|
get children() {
|
|
46894
46930
|
return j(Hj, { message: "Key rejected — reconnect" });
|
|
@@ -46896,7 +46932,7 @@ function n3() {
|
|
|
46896
46932
|
});
|
|
46897
46933
|
},
|
|
46898
46934
|
get children() {
|
|
46899
|
-
var e =
|
|
46935
|
+
var e = D4(), t = e.firstChild.nextSibling, n = t.nextSibling.nextSibling;
|
|
46900
46936
|
return P(t, () => a.data.name), P(n, () => a.data.email), e;
|
|
46901
46937
|
}
|
|
46902
46938
|
});
|
|
@@ -46937,7 +46973,7 @@ function n3() {
|
|
|
46937
46973
|
return o.isLoading;
|
|
46938
46974
|
},
|
|
46939
46975
|
get children() {
|
|
46940
|
-
return [
|
|
46976
|
+
return [k4(), j(M, {
|
|
46941
46977
|
get when() {
|
|
46942
46978
|
return o.data;
|
|
46943
46979
|
},
|
|
@@ -46947,7 +46983,7 @@ function n3() {
|
|
|
46947
46983
|
return o.data;
|
|
46948
46984
|
},
|
|
46949
46985
|
children: (e) => (() => {
|
|
46950
|
-
var t =
|
|
46986
|
+
var t = t3(), r = t.firstChild, i = r.nextSibling;
|
|
46951
46987
|
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;
|
|
46952
46988
|
})()
|
|
46953
46989
|
});
|
|
@@ -46971,14 +47007,14 @@ function n3() {
|
|
|
46971
47007
|
},
|
|
46972
47008
|
get children() {
|
|
46973
47009
|
return [(() => {
|
|
46974
|
-
var e =
|
|
47010
|
+
var e = A4();
|
|
46975
47011
|
return D(() => e.selected = !n().defaultProjectId), e;
|
|
46976
47012
|
})(), j(We, {
|
|
46977
47013
|
get each() {
|
|
46978
47014
|
return s.data ?? [];
|
|
46979
47015
|
},
|
|
46980
47016
|
children: (e) => (() => {
|
|
46981
|
-
var t =
|
|
47017
|
+
var t = n3();
|
|
46982
47018
|
return P(t, () => e.name), D(() => t.selected = e.id === n().defaultProjectId), D(() => t.value = e.id), t;
|
|
46983
47019
|
})()
|
|
46984
47020
|
})];
|
|
@@ -46990,7 +47026,7 @@ function n3() {
|
|
|
46990
47026
|
label: "Default labels",
|
|
46991
47027
|
hint: "Applied to every issue created from the panel.",
|
|
46992
47028
|
get children() {
|
|
46993
|
-
var e =
|
|
47029
|
+
var e = j4();
|
|
46994
47030
|
return P(e, j(We, {
|
|
46995
47031
|
get each() {
|
|
46996
47032
|
return p.data ?? [];
|
|
@@ -46998,7 +47034,7 @@ function n3() {
|
|
|
46998
47034
|
children: (e) => {
|
|
46999
47035
|
let t = () => (n().defaultLabelIds ?? []).includes(e.id);
|
|
47000
47036
|
return (() => {
|
|
47001
|
-
var i =
|
|
47037
|
+
var i = r3(), a = i.firstChild;
|
|
47002
47038
|
return i.$$click = () => {
|
|
47003
47039
|
let i = n().defaultLabelIds ?? [];
|
|
47004
47040
|
r({ defaultLabelIds: t() ? i.filter((t) => t !== e.id) : [...i, e.id] });
|
|
@@ -47015,7 +47051,7 @@ function n3() {
|
|
|
47015
47051
|
}
|
|
47016
47052
|
}),
|
|
47017
47053
|
(() => {
|
|
47018
|
-
var e =
|
|
47054
|
+
var e = M4(), t = e.firstChild;
|
|
47019
47055
|
return t.addEventListener("change", (e) => void r({ shareLinearKey: e.currentTarget.checked })), D(() => t.checked = !!n().shareLinearKey), e;
|
|
47020
47056
|
})(),
|
|
47021
47057
|
j(Lj, {
|
|
@@ -47065,7 +47101,7 @@ function n3() {
|
|
|
47065
47101
|
return m.isLoading;
|
|
47066
47102
|
},
|
|
47067
47103
|
get children() {
|
|
47068
|
-
return [
|
|
47104
|
+
return [i3(), j(M, {
|
|
47069
47105
|
get when() {
|
|
47070
47106
|
return m.data;
|
|
47071
47107
|
},
|
|
@@ -47075,7 +47111,7 @@ function n3() {
|
|
|
47075
47111
|
return m.data;
|
|
47076
47112
|
},
|
|
47077
47113
|
children: (e) => (() => {
|
|
47078
|
-
var t =
|
|
47114
|
+
var t = n3();
|
|
47079
47115
|
return P(t, () => e.displayName), D(() => t.selected = e.id === n().cursorAgentId), D(() => t.value = e.id), t;
|
|
47080
47116
|
})()
|
|
47081
47117
|
});
|
|
@@ -47085,7 +47121,7 @@ function n3() {
|
|
|
47085
47121
|
});
|
|
47086
47122
|
},
|
|
47087
47123
|
get children() {
|
|
47088
|
-
return
|
|
47124
|
+
return N4();
|
|
47089
47125
|
}
|
|
47090
47126
|
});
|
|
47091
47127
|
}
|
|
@@ -47133,7 +47169,7 @@ function n3() {
|
|
|
47133
47169
|
onBlur: (e) => {
|
|
47134
47170
|
r({ issueTemplate: e.currentTarget.value.trim() || void 0 });
|
|
47135
47171
|
}
|
|
47136
|
-
}),
|
|
47172
|
+
}), P4()];
|
|
47137
47173
|
}
|
|
47138
47174
|
}),
|
|
47139
47175
|
j(Lj, {
|
|
@@ -47190,7 +47226,7 @@ function n3() {
|
|
|
47190
47226
|
label: "Test account",
|
|
47191
47227
|
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.",
|
|
47192
47228
|
get children() {
|
|
47193
|
-
var e =
|
|
47229
|
+
var e = F4();
|
|
47194
47230
|
return P(e, j(jj, {
|
|
47195
47231
|
placeholder: "Username or email (e.g. demo@yourapp.com)",
|
|
47196
47232
|
get value() {
|
|
@@ -47222,7 +47258,7 @@ function n3() {
|
|
|
47222
47258
|
title: "Panel",
|
|
47223
47259
|
get children() {
|
|
47224
47260
|
return [(() => {
|
|
47225
|
-
var e =
|
|
47261
|
+
var e = I4(), t = e.firstChild.nextSibling;
|
|
47226
47262
|
return P(t, j(We, {
|
|
47227
47263
|
each: [{
|
|
47228
47264
|
id: "overlay",
|
|
@@ -47232,7 +47268,7 @@ function n3() {
|
|
|
47232
47268
|
label: "Beside page"
|
|
47233
47269
|
}],
|
|
47234
47270
|
children: (e) => (() => {
|
|
47235
|
-
var t =
|
|
47271
|
+
var t = Y4();
|
|
47236
47272
|
return t.$$click = () => void r({
|
|
47237
47273
|
panelMode: e.id,
|
|
47238
47274
|
panelPos: void 0
|
|
@@ -47240,11 +47276,11 @@ function n3() {
|
|
|
47240
47276
|
})()
|
|
47241
47277
|
})), e;
|
|
47242
47278
|
})(), (() => {
|
|
47243
|
-
var e =
|
|
47279
|
+
var e = L4(), t = e.firstChild.nextSibling;
|
|
47244
47280
|
return P(t, j(We, {
|
|
47245
47281
|
each: ["left", "right"],
|
|
47246
47282
|
children: (e) => (() => {
|
|
47247
|
-
var t =
|
|
47283
|
+
var t = Y4();
|
|
47248
47284
|
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;
|
|
47249
47285
|
})()
|
|
47250
47286
|
})), e;
|
|
@@ -47274,8 +47310,8 @@ function n3() {
|
|
|
47274
47310
|
}), null), P(e, j(Rj, {
|
|
47275
47311
|
title: "Project config (.lineargrab.json)",
|
|
47276
47312
|
get children() {
|
|
47277
|
-
return [
|
|
47278
|
-
var e =
|
|
47313
|
+
return [R4(), (() => {
|
|
47314
|
+
var e = B4();
|
|
47279
47315
|
return P(e, j(M, {
|
|
47280
47316
|
get when() {
|
|
47281
47317
|
return c.data?.projectConfig;
|
|
@@ -47306,7 +47342,7 @@ function n3() {
|
|
|
47306
47342
|
},
|
|
47307
47343
|
onClick: () => void d(),
|
|
47308
47344
|
get children() {
|
|
47309
|
-
var e =
|
|
47345
|
+
var e = z4();
|
|
47310
47346
|
return P(e, () => l() ? "Copied ✓" : "Copy config"), e;
|
|
47311
47347
|
}
|
|
47312
47348
|
}), null), e;
|
|
@@ -47397,12 +47433,12 @@ function n3() {
|
|
|
47397
47433
|
});
|
|
47398
47434
|
},
|
|
47399
47435
|
get children() {
|
|
47400
|
-
return [
|
|
47436
|
+
return [V4(), j(We, {
|
|
47401
47437
|
get each() {
|
|
47402
47438
|
return ae.data ?? [];
|
|
47403
47439
|
},
|
|
47404
47440
|
children: (e) => (() => {
|
|
47405
|
-
var t =
|
|
47441
|
+
var t = a3();
|
|
47406
47442
|
return t.firstChild, P(t, () => e.name, null), D(() => t.selected = e.id === n().slackChannelId), D(() => t.value = e.id), t;
|
|
47407
47443
|
})()
|
|
47408
47444
|
})];
|
|
@@ -47453,10 +47489,10 @@ function n3() {
|
|
|
47453
47489
|
}
|
|
47454
47490
|
}),
|
|
47455
47491
|
(() => {
|
|
47456
|
-
var e =
|
|
47492
|
+
var e = H4(), t = e.firstChild;
|
|
47457
47493
|
return t.addEventListener("change", (e) => void r({ notifyOnCreate: e.currentTarget.checked ? void 0 : !1 })), D(() => t.checked = n().notifyOnCreate !== !1), e;
|
|
47458
47494
|
})(),
|
|
47459
|
-
|
|
47495
|
+
U4()
|
|
47460
47496
|
];
|
|
47461
47497
|
}
|
|
47462
47498
|
}), null), P(e, j(Rj, {
|
|
@@ -47494,7 +47530,7 @@ function n3() {
|
|
|
47494
47530
|
}
|
|
47495
47531
|
}),
|
|
47496
47532
|
(() => {
|
|
47497
|
-
var e =
|
|
47533
|
+
var e = W4(), t = e.firstChild.nextSibling.firstChild, i = t.nextSibling, a = i.nextSibling;
|
|
47498
47534
|
return t.$$click = () => void r({ preferredProvider: void 0 }), i.$$click = () => void r({ preferredProvider: "openai" }), a.$$click = () => void r({ preferredProvider: "anthropic" }), D((e) => {
|
|
47499
47535
|
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;
|
|
47500
47536
|
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;
|
|
@@ -47507,16 +47543,16 @@ function n3() {
|
|
|
47507
47543
|
}), e;
|
|
47508
47544
|
})(),
|
|
47509
47545
|
(() => {
|
|
47510
|
-
var e =
|
|
47546
|
+
var e = K4();
|
|
47511
47547
|
return P(e, j(M, {
|
|
47512
47548
|
get when() {
|
|
47513
47549
|
return se();
|
|
47514
47550
|
},
|
|
47515
47551
|
get fallback() {
|
|
47516
|
-
return
|
|
47552
|
+
return o3();
|
|
47517
47553
|
},
|
|
47518
47554
|
get children() {
|
|
47519
|
-
var e =
|
|
47555
|
+
var e = G4();
|
|
47520
47556
|
return P(e, se), e;
|
|
47521
47557
|
}
|
|
47522
47558
|
})), e;
|
|
@@ -47526,7 +47562,7 @@ function n3() {
|
|
|
47526
47562
|
}), null), P(e, j(Rj, {
|
|
47527
47563
|
title: "How it works",
|
|
47528
47564
|
get children() {
|
|
47529
|
-
return
|
|
47565
|
+
return q4();
|
|
47530
47566
|
}
|
|
47531
47567
|
}), null), e;
|
|
47532
47568
|
})();
|
|
@@ -47534,38 +47570,38 @@ function n3() {
|
|
|
47534
47570
|
rt(["click"]);
|
|
47535
47571
|
//#endregion
|
|
47536
47572
|
//#region src/lib/idbCache.ts
|
|
47537
|
-
var
|
|
47573
|
+
var c3 = "linear-grab", l3 = "queries", u3 = [
|
|
47538
47574
|
"my-issues",
|
|
47539
47575
|
"issue",
|
|
47540
47576
|
"sessions",
|
|
47541
47577
|
"teams",
|
|
47542
47578
|
"agents"
|
|
47543
47579
|
];
|
|
47544
|
-
function
|
|
47580
|
+
function d3() {
|
|
47545
47581
|
return new Promise((e) => {
|
|
47546
47582
|
try {
|
|
47547
|
-
let t = indexedDB.open(
|
|
47548
|
-
t.onupgradeneeded = () => t.result.createObjectStore(
|
|
47583
|
+
let t = indexedDB.open(c3, 1);
|
|
47584
|
+
t.onupgradeneeded = () => t.result.createObjectStore(l3), t.onsuccess = () => e(t.result), t.onerror = () => e(null);
|
|
47549
47585
|
} catch {
|
|
47550
47586
|
e(null);
|
|
47551
47587
|
}
|
|
47552
47588
|
});
|
|
47553
47589
|
}
|
|
47554
|
-
function
|
|
47555
|
-
return typeof e[0] == "string" &&
|
|
47590
|
+
function f3(e) {
|
|
47591
|
+
return typeof e[0] == "string" && u3.includes(e[0]);
|
|
47556
47592
|
}
|
|
47557
|
-
async function
|
|
47558
|
-
let t = await
|
|
47593
|
+
async function p3(e) {
|
|
47594
|
+
let t = await d3();
|
|
47559
47595
|
if (!t) return () => {};
|
|
47560
47596
|
await new Promise((n) => {
|
|
47561
47597
|
try {
|
|
47562
|
-
let r = t.transaction(
|
|
47598
|
+
let r = t.transaction(l3, "readonly").objectStore(l3).openCursor();
|
|
47563
47599
|
r.onsuccess = () => {
|
|
47564
47600
|
let t = r.result;
|
|
47565
47601
|
if (!t) return n();
|
|
47566
47602
|
try {
|
|
47567
47603
|
let { queryKey: n, data: r } = t.value;
|
|
47568
|
-
|
|
47604
|
+
f3(n) && e.getQueryData(n) === void 0 && e.setQueryData(n, r, { updatedAt: 0 });
|
|
47569
47605
|
} catch {}
|
|
47570
47606
|
t.continue();
|
|
47571
47607
|
}, r.onerror = () => n();
|
|
@@ -47576,14 +47612,14 @@ async function c3(e) {
|
|
|
47576
47612
|
let n = /* @__PURE__ */ new Map(), r = e.getQueryCache().subscribe((r) => {
|
|
47577
47613
|
if (r.type !== "updated" || r.action.type !== "success") return;
|
|
47578
47614
|
let { queryKey: i, queryHash: a } = r.query;
|
|
47579
|
-
if (!
|
|
47615
|
+
if (!f3(i)) return;
|
|
47580
47616
|
let o = n.get(a);
|
|
47581
47617
|
o && clearTimeout(o), n.set(a, setTimeout(() => {
|
|
47582
47618
|
n.delete(a);
|
|
47583
47619
|
try {
|
|
47584
47620
|
let n = e.getQueryData(i);
|
|
47585
47621
|
if (n === void 0) return;
|
|
47586
|
-
t.transaction(
|
|
47622
|
+
t.transaction(l3, "readwrite").objectStore(l3).put({
|
|
47587
47623
|
queryKey: i,
|
|
47588
47624
|
data: n
|
|
47589
47625
|
}, a);
|
|
@@ -47599,7 +47635,7 @@ async function c3(e) {
|
|
|
47599
47635
|
//#endregion
|
|
47600
47636
|
//#region src/panel/App.tsx
|
|
47601
47637
|
Br();
|
|
47602
|
-
var
|
|
47638
|
+
var m3 = /*#__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\">"), h3 = /*#__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\">"), g3 = /*#__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\">–"), _3 = /*#__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>"), v3 = /*#__PURE__*/ N("<button>"), y3 = [
|
|
47603
47639
|
{
|
|
47604
47640
|
id: "draft",
|
|
47605
47641
|
label: "Draft"
|
|
@@ -47636,35 +47672,35 @@ var l3 = /*#__PURE__*/ N("<svg viewBox=\"0 0 100 100\"fill=currentColor aria-hid
|
|
|
47636
47672
|
id: "settings",
|
|
47637
47673
|
label: "Settings"
|
|
47638
47674
|
}
|
|
47639
|
-
],
|
|
47640
|
-
function
|
|
47641
|
-
if (
|
|
47642
|
-
|
|
47675
|
+
], b3 = /* @__PURE__ */ new Set();
|
|
47676
|
+
function x3(e, t, n) {
|
|
47677
|
+
if (b3.has(e) || typeof Notification > "u") return;
|
|
47678
|
+
b3.add(e);
|
|
47643
47679
|
let r = () => new Notification(t, { body: n });
|
|
47644
47680
|
Notification.permission === "granted" ? r() : Notification.permission === "default" && Notification.requestPermission().then((e) => e === "granted" && r());
|
|
47645
47681
|
}
|
|
47646
|
-
function
|
|
47682
|
+
function S3() {
|
|
47647
47683
|
setInterval(() => {
|
|
47648
47684
|
NO().then((e) => {
|
|
47649
47685
|
for (let t of e) {
|
|
47650
47686
|
if (t.status !== "running") continue;
|
|
47651
47687
|
let e = t.lastEventAt ?? t.startedAt;
|
|
47652
|
-
Date.now() - e > 10 * 6e4 &&
|
|
47688
|
+
Date.now() - e > 10 * 6e4 && x3(`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.`);
|
|
47653
47689
|
}
|
|
47654
47690
|
}).catch(() => {}), gO().then((e) => {
|
|
47655
|
-
for (let t of e) /awaitingInput|elicit/i.test(t.status) &&
|
|
47691
|
+
for (let t of e) /awaitingInput|elicit/i.test(t.status) && x3(`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.`);
|
|
47656
47692
|
}).catch(() => {});
|
|
47657
47693
|
}, 6e4);
|
|
47658
47694
|
}
|
|
47659
|
-
|
|
47660
|
-
var
|
|
47695
|
+
S3();
|
|
47696
|
+
var C3 = new gr({ defaultOptions: { queries: {
|
|
47661
47697
|
retry: 1,
|
|
47662
47698
|
refetchOnWindowFocus: !1,
|
|
47663
47699
|
staleTime: 5e3
|
|
47664
47700
|
} } });
|
|
47665
|
-
function
|
|
47701
|
+
function w3(e) {
|
|
47666
47702
|
return (() => {
|
|
47667
|
-
var t =
|
|
47703
|
+
var t = m3();
|
|
47668
47704
|
return D((n) => {
|
|
47669
47705
|
var r = e.size ?? 14, i = e.size ?? 14;
|
|
47670
47706
|
return r !== n.e && it(t, "width", n.e = r), i !== n.t && it(t, "height", n.t = i), n;
|
|
@@ -47674,36 +47710,36 @@ function y3(e) {
|
|
|
47674
47710
|
}), t;
|
|
47675
47711
|
})();
|
|
47676
47712
|
}
|
|
47677
|
-
function
|
|
47713
|
+
function T3(e) {
|
|
47678
47714
|
let [t, n] = T("draft"), r = () => {
|
|
47679
|
-
|
|
47715
|
+
C3.invalidateQueries({ queryKey: ["grab"] }), cj() === "capture" && n("capture"), e.onGrab?.();
|
|
47680
47716
|
};
|
|
47681
47717
|
return O(() => {
|
|
47682
47718
|
let e = nj();
|
|
47683
47719
|
e && n(e);
|
|
47684
47720
|
}), ie(() => {
|
|
47685
|
-
let e =
|
|
47721
|
+
let e = p3(C3), t = XZ(r), n = () => {
|
|
47686
47722
|
JO().then(y$), VO(), MO().then(async (e) => {
|
|
47687
47723
|
if (!e.projectConfig) return;
|
|
47688
|
-
let t =
|
|
47724
|
+
let t = y4(await Tr(), e.projectConfig);
|
|
47689
47725
|
t && await Er(t);
|
|
47690
47726
|
}).catch(() => {});
|
|
47691
47727
|
};
|
|
47692
47728
|
n();
|
|
47693
47729
|
let i = Mr((e) => {
|
|
47694
|
-
e === "settings" && (
|
|
47730
|
+
e === "settings" && (C3.invalidateQueries({ queryKey: ["settings"] }), n()), e === "grab" && r();
|
|
47695
47731
|
});
|
|
47696
47732
|
ae(() => {
|
|
47697
47733
|
t(), i(), e.then((e) => e());
|
|
47698
47734
|
});
|
|
47699
47735
|
}), j(cr, {
|
|
47700
|
-
client:
|
|
47736
|
+
client: C3,
|
|
47701
47737
|
get children() {
|
|
47702
|
-
var r =
|
|
47703
|
-
return i.$$pointerdown = (t) => e.onHeaderPointerDown?.(t), P(a, j(
|
|
47704
|
-
each:
|
|
47738
|
+
var r = _3(), 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;
|
|
47739
|
+
return i.$$pointerdown = (t) => e.onHeaderPointerDown?.(t), P(a, j(w3, { size: 14 })), P(o, j(We, {
|
|
47740
|
+
each: y3,
|
|
47705
47741
|
children: (e) => (() => {
|
|
47706
|
-
var r =
|
|
47742
|
+
var r = v3();
|
|
47707
47743
|
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;
|
|
47708
47744
|
})()
|
|
47709
47745
|
})), P(i, j(M, {
|
|
@@ -47711,7 +47747,7 @@ function b3(e) {
|
|
|
47711
47747
|
return e.onTogglePin;
|
|
47712
47748
|
},
|
|
47713
47749
|
get children() {
|
|
47714
|
-
var t =
|
|
47750
|
+
var t = h3();
|
|
47715
47751
|
return t.$$click = () => e.onTogglePin?.(), D((n) => {
|
|
47716
47752
|
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"}`;
|
|
47717
47753
|
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;
|
|
@@ -47726,10 +47762,10 @@ function b3(e) {
|
|
|
47726
47762
|
return e.onClose;
|
|
47727
47763
|
},
|
|
47728
47764
|
get children() {
|
|
47729
|
-
var t =
|
|
47765
|
+
var t = g3();
|
|
47730
47766
|
return t.$$click = () => e.onClose?.(), t;
|
|
47731
47767
|
}
|
|
47732
|
-
}), 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(
|
|
47768
|
+
}), 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(g4, {})), P(h, j(s3, {})), D((n) => {
|
|
47733
47769
|
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";
|
|
47734
47770
|
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;
|
|
47735
47771
|
}, {
|
|
@@ -47750,16 +47786,16 @@ function b3(e) {
|
|
|
47750
47786
|
rt(["pointerdown", "click"]);
|
|
47751
47787
|
//#endregion
|
|
47752
47788
|
//#region src/styles/app.css?inline
|
|
47753
|
-
var x3 = "/*! 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-\\[11ch\\]{min-width:11ch}.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\\=on\\]\\:transition-none[data-state=on],.data-\\[state\\=open\\]\\:transition-none[data-state=open],.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}}";
|
|
47789
|
+
var E3 = "/*! 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-in:cubic-bezier(.4, 0, 1, 1);--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-\\[11ch\\]{min-width:11ch}.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-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.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\\=on\\]\\:transition-none[data-state=on],.data-\\[state\\=open\\]\\:transition-none[data-state=open],.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}}";
|
|
47754
47790
|
//#endregion
|
|
47755
47791
|
//#region src/page/index.tsx
|
|
47756
47792
|
Br();
|
|
47757
|
-
var
|
|
47758
|
-
function
|
|
47793
|
+
var D3 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-danger size-2 shrink-0 animate-pulse rounded-full\">"), O3 = /*#__PURE__*/ N("<span class=\"text-text min-w-[5ch] text-[11px] font-medium tabular-nums\">"), k3 = /*#__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"), A3 = /*#__PURE__*/ N("<p class=\"text-warn px-1.5 pt-1 pb-1.5 text-[10.5px] font-semibold tracking-wide uppercase\">Needs review"), j3 = /*#__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"), M3 = /*#__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\">"), N3 = /*#__PURE__*/ N("<div><div title=\"Drag to resize\">"), P3 = /*#__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\">"), F3 = /*#__PURE__*/ N("<span class=\"bg-border h-4 w-px\"aria-hidden>"), I3 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-warn size-2 rounded-full\">"), L3 = /*#__PURE__*/ N("<span class=\"text-warn min-w-[3.5ch] text-left text-[11px] font-medium tabular-nums\"> rev"), R3 = /*#__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>"), z3 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-accent size-2 shrink-0 animate-pulse rounded-full\">"), B3 = /*#__PURE__*/ N("<span class=\"text-text min-w-[3ch] text-[11px] font-medium tabular-nums\">s"), V3 = /*#__PURE__*/ N("<span class=\"text-text-dim min-w-[7ch] text-[11px] tabular-nums\"> states"), H3 = /*#__PURE__*/ N("<p class=\"text-text-faint px-1.5 pb-1.5 text-[11.5px]\">No agents running right now."), U3 = /*#__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\"> · <!> · ");
|
|
47794
|
+
function W3(e = {}) {
|
|
47759
47795
|
if (typeof window > "u" || window.__LINEAR_GRAB_PAGE__) return;
|
|
47760
47796
|
window.__LINEAR_GRAB_PAGE__ = !0;
|
|
47761
47797
|
let t = () => {
|
|
47762
|
-
lk(),
|
|
47798
|
+
lk(), A2(), JZ();
|
|
47763
47799
|
let t = document.createElement("div");
|
|
47764
47800
|
t.id = "linear-grab-root", document.body.appendChild(t);
|
|
47765
47801
|
let n = (e) => {
|
|
@@ -47787,17 +47823,17 @@ function z3(e = {}) {
|
|
|
47787
47823
|
"keypress"
|
|
47788
47824
|
]) window.addEventListener(e, n, { capture: !0 });
|
|
47789
47825
|
let r = t.attachShadow({ mode: "open" }), i = document.createElement("style");
|
|
47790
|
-
i.textContent =
|
|
47826
|
+
i.textContent = E3, r.appendChild(i);
|
|
47791
47827
|
let a = document.createElement("div");
|
|
47792
47828
|
r.appendChild(a);
|
|
47793
|
-
let o = () => a.setAttribute("data-theme",
|
|
47794
|
-
o(), matchMedia("(prefers-color-scheme: light)").addEventListener("change", o), nt(() => j(
|
|
47829
|
+
let o = () => a.setAttribute("data-theme", G3());
|
|
47830
|
+
o(), matchMedia("(prefers-color-scheme: light)").addEventListener("change", o), nt(() => j(Z3, { get defaultOpen() {
|
|
47795
47831
|
return e.defaultOpen ?? !1;
|
|
47796
47832
|
} }), a);
|
|
47797
47833
|
};
|
|
47798
47834
|
document.body ? t() : document.addEventListener("DOMContentLoaded", t, { once: !0 });
|
|
47799
47835
|
}
|
|
47800
|
-
function
|
|
47836
|
+
function G3() {
|
|
47801
47837
|
try {
|
|
47802
47838
|
let e = [document.body, document.documentElement];
|
|
47803
47839
|
for (let t of e) {
|
|
@@ -47807,11 +47843,11 @@ function B3() {
|
|
|
47807
47843
|
} catch {}
|
|
47808
47844
|
return matchMedia("(prefers-color-scheme: light)").matches ? "light" : "dark";
|
|
47809
47845
|
}
|
|
47810
|
-
var
|
|
47811
|
-
function
|
|
47846
|
+
var K3 = 130, q3 = 36, J3 = 380, Y3 = 280, X3 = 720;
|
|
47847
|
+
function Z3(e) {
|
|
47812
47848
|
let [t, n] = T(e.defaultOpen), [r, i] = T("right"), [a, o] = T({
|
|
47813
|
-
x: Math.max(8, window.innerWidth -
|
|
47814
|
-
y: Math.max(8, window.innerHeight -
|
|
47849
|
+
x: Math.max(8, window.innerWidth - K3 - 24),
|
|
47850
|
+
y: Math.max(8, window.innerHeight - q3 - 20)
|
|
47815
47851
|
}), [s, c] = T({
|
|
47816
47852
|
running: [],
|
|
47817
47853
|
review: []
|
|
@@ -47831,12 +47867,12 @@ function K3(e) {
|
|
|
47831
47867
|
let t = Math.floor(e / 1e3);
|
|
47832
47868
|
return `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
|
|
47833
47869
|
}, [b, x] = T(null), S = (e) => ({
|
|
47834
|
-
x: Math.min(Math.max(8, e.x), window.innerWidth -
|
|
47835
|
-
y: Math.min(Math.max(8, e.y), window.innerHeight -
|
|
47870
|
+
x: Math.min(Math.max(8, e.x), window.innerWidth - K3 - 8),
|
|
47871
|
+
y: Math.min(Math.max(8, e.y), window.innerHeight - q3 - 8)
|
|
47836
47872
|
}), C = (e) => ({
|
|
47837
47873
|
x: Math.min(Math.max(8 - (ne() - 80), e.x), window.innerWidth - 80),
|
|
47838
47874
|
y: Math.min(Math.max(0, e.y), window.innerHeight - 80)
|
|
47839
|
-
}), [w, E] = T(!1), [k, ee] = T("cloud"), [te, A] = T(!1), [ne, re] = T(
|
|
47875
|
+
}), [w, E] = T(!1), [k, ee] = T("cloud"), [te, A] = T(!1), [ne, re] = T(J3), oe = (e) => Math.min(X3, Math.max(Y3, Math.min(e, window.innerWidth - 60)));
|
|
47840
47876
|
O(() => {
|
|
47841
47877
|
let e = document.documentElement, n = t() && w();
|
|
47842
47878
|
e.style.transition = "margin 0.2s ease", e.style.marginRight = n && r() === "right" ? `${ne()}px` : "", e.style.marginLeft = n && r() === "left" ? `${ne()}px` : "";
|
|
@@ -47950,7 +47986,7 @@ function K3(e) {
|
|
|
47950
47986
|
return !t();
|
|
47951
47987
|
},
|
|
47952
47988
|
get children() {
|
|
47953
|
-
var e =
|
|
47989
|
+
var e = M3(), t = e.firstChild;
|
|
47954
47990
|
return t.$$click = () => {
|
|
47955
47991
|
ce || p() === "recording" || h().active || (f(!1), n(!0));
|
|
47956
47992
|
}, t.$$pointerdown = le, P(t, j(M, {
|
|
@@ -47960,14 +47996,14 @@ function K3(e) {
|
|
|
47960
47996
|
get fallback() {
|
|
47961
47997
|
return [
|
|
47962
47998
|
(() => {
|
|
47963
|
-
var e =
|
|
47999
|
+
var e = P3();
|
|
47964
48000
|
return e.$$click = () => {
|
|
47965
48001
|
ce || (f(!1), n(!0));
|
|
47966
|
-
}, P(e, j(
|
|
48002
|
+
}, P(e, j(w3, { size: 13 })), e;
|
|
47967
48003
|
})(),
|
|
47968
|
-
|
|
48004
|
+
F3(),
|
|
47969
48005
|
(() => {
|
|
47970
|
-
var e =
|
|
48006
|
+
var e = R3(), t = e.firstChild, n = t.nextSibling;
|
|
47971
48007
|
return e.$$click = (e) => {
|
|
47972
48008
|
e.stopPropagation(), !ce && f((e) => !e);
|
|
47973
48009
|
}, P(n, (() => {
|
|
@@ -47978,8 +48014,8 @@ function K3(e) {
|
|
|
47978
48014
|
return $e(() => !te())() && u().length > 0;
|
|
47979
48015
|
},
|
|
47980
48016
|
get children() {
|
|
47981
|
-
return [
|
|
47982
|
-
var e =
|
|
48017
|
+
return [I3(), (() => {
|
|
48018
|
+
var e = L3(), t = e.firstChild;
|
|
47983
48019
|
return P(e, () => u().length, t), e;
|
|
47984
48020
|
})()];
|
|
47985
48021
|
}
|
|
@@ -48000,17 +48036,17 @@ function K3(e) {
|
|
|
48000
48036
|
},
|
|
48001
48037
|
get fallback() {
|
|
48002
48038
|
return [
|
|
48003
|
-
|
|
48039
|
+
z3(),
|
|
48004
48040
|
(() => {
|
|
48005
|
-
var e =
|
|
48041
|
+
var e = B3(), t = e.firstChild;
|
|
48006
48042
|
return P(e, () => Math.ceil(h().msLeft / 1e3), t), e;
|
|
48007
48043
|
})(),
|
|
48008
48044
|
(() => {
|
|
48009
|
-
var e =
|
|
48045
|
+
var e = V3(), t = e.firstChild;
|
|
48010
48046
|
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;
|
|
48011
48047
|
})(),
|
|
48012
48048
|
(() => {
|
|
48013
|
-
var e =
|
|
48049
|
+
var e = k3();
|
|
48014
48050
|
return e.$$click = (e) => {
|
|
48015
48051
|
e.stopPropagation(), !ce && o2();
|
|
48016
48052
|
}, e;
|
|
@@ -48019,13 +48055,13 @@ function K3(e) {
|
|
|
48019
48055
|
},
|
|
48020
48056
|
get children() {
|
|
48021
48057
|
return [
|
|
48022
|
-
|
|
48058
|
+
D3(),
|
|
48023
48059
|
(() => {
|
|
48024
|
-
var e =
|
|
48060
|
+
var e = O3();
|
|
48025
48061
|
return P(e, () => y(_())), e;
|
|
48026
48062
|
})(),
|
|
48027
48063
|
(() => {
|
|
48028
|
-
var e =
|
|
48064
|
+
var e = k3();
|
|
48029
48065
|
return e.$$click = () => {
|
|
48030
48066
|
ce || eO();
|
|
48031
48067
|
}, e;
|
|
@@ -48039,17 +48075,17 @@ function K3(e) {
|
|
|
48039
48075
|
return d();
|
|
48040
48076
|
},
|
|
48041
48077
|
get children() {
|
|
48042
|
-
var e =
|
|
48078
|
+
var e = j3(), t = e.firstChild;
|
|
48043
48079
|
return P(e, j(M, {
|
|
48044
48080
|
get when() {
|
|
48045
48081
|
return u().length > 0;
|
|
48046
48082
|
},
|
|
48047
48083
|
get children() {
|
|
48048
|
-
return [
|
|
48084
|
+
return [A3(), j(We, {
|
|
48049
48085
|
get each() {
|
|
48050
48086
|
return u();
|
|
48051
48087
|
},
|
|
48052
|
-
children: (e) => j(
|
|
48088
|
+
children: (e) => j(Q3, {
|
|
48053
48089
|
agent: e,
|
|
48054
48090
|
review: !0,
|
|
48055
48091
|
onOpen: de
|
|
@@ -48061,14 +48097,14 @@ function K3(e) {
|
|
|
48061
48097
|
return l().length > 0;
|
|
48062
48098
|
},
|
|
48063
48099
|
get fallback() {
|
|
48064
|
-
return
|
|
48100
|
+
return H3();
|
|
48065
48101
|
},
|
|
48066
48102
|
get children() {
|
|
48067
48103
|
return j(We, {
|
|
48068
48104
|
get each() {
|
|
48069
48105
|
return l();
|
|
48070
48106
|
},
|
|
48071
|
-
children: (e) => j(
|
|
48107
|
+
children: (e) => j(Q3, {
|
|
48072
48108
|
agent: e,
|
|
48073
48109
|
onOpen: de
|
|
48074
48110
|
})
|
|
@@ -48089,8 +48125,8 @@ function K3(e) {
|
|
|
48089
48125
|
return t();
|
|
48090
48126
|
},
|
|
48091
48127
|
get children() {
|
|
48092
|
-
var e =
|
|
48093
|
-
return t.$$pointerdown = fe, P(e, j(
|
|
48128
|
+
var e = N3(), t = e.firstChild;
|
|
48129
|
+
return t.$$pointerdown = fe, P(e, j(T3, {
|
|
48094
48130
|
onGrab: () => n(!0),
|
|
48095
48131
|
onClose: () => n(!1),
|
|
48096
48132
|
get onHeaderPointerDown() {
|
|
@@ -48118,19 +48154,19 @@ function K3(e) {
|
|
|
48118
48154
|
}
|
|
48119
48155
|
})];
|
|
48120
48156
|
}
|
|
48121
|
-
function
|
|
48157
|
+
function Q3(e) {
|
|
48122
48158
|
return (() => {
|
|
48123
|
-
var t =
|
|
48159
|
+
var t = U3(), n = t.firstChild, r = n.firstChild, i = r.nextSibling, a = i.nextSibling, o = n.nextSibling, s = o.firstChild, c = s.nextSibling;
|
|
48124
48160
|
return c.nextSibling, t.$$click = () => e.onOpen(e.agent.id), P(i, () => e.agent.identifier), P(a, () => e.agent.title), P(o, (() => {
|
|
48125
48161
|
var t = $e(() => !!e.review);
|
|
48126
48162
|
return () => t() ? "PR ready · needs review" : e.agent.stateName;
|
|
48127
|
-
})(), s), P(o, () => e.agent.delegateName, c), P(o, () =>
|
|
48163
|
+
})(), s), P(o, () => e.agent.delegateName, c), P(o, () => $3(e.agent.updatedAt), null), D((t) => dt(r, "background", e.review ? "var(--color-warn)" : e.agent.stateColor)), t;
|
|
48128
48164
|
})();
|
|
48129
48165
|
}
|
|
48130
|
-
function
|
|
48166
|
+
function $3(e) {
|
|
48131
48167
|
let t = Math.max(0, Math.floor((Date.now() - Date.parse(e)) / 1e3));
|
|
48132
48168
|
return t < 60 ? "now" : t < 3600 ? `${Math.floor(t / 60)}m` : t < 86400 ? `${Math.floor(t / 3600)}h` : `${Math.floor(t / 86400)}d`;
|
|
48133
48169
|
}
|
|
48134
48170
|
rt(["pointerdown", "click"]);
|
|
48135
48171
|
//#endregion
|
|
48136
|
-
export {
|
|
48172
|
+
export { W3 as init };
|