linear-grab 0.23.3 → 0.23.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.global.js +5 -5
- package/dist/linear-grab.js +229 -184
- package/package.json +1 -1
package/dist/linear-grab.js
CHANGED
|
@@ -46200,22 +46200,22 @@ function P2(e) {
|
|
|
46200
46200
|
}
|
|
46201
46201
|
//#endregion
|
|
46202
46202
|
//#region src/panel/views/DesignView.tsx
|
|
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=\"
|
|
46204
|
-
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=\"text-success text-[12px] leading-none\">✓"), R2 = /*#__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\">"), z2 = /*#__PURE__*/ N("<div class=\"flex items-center justify-end gap-1 px-1\">"), B2 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[5ch] text-center\">Audit"), V2 = /*#__PURE__*/ N("<div class=\"flex max-h-72 flex-col gap-1.5 overflow-y-auto pr-2\">"), H2 = /*#__PURE__*/ N("<span class=\"text-[12px] leading-none\">✓"), U2 = /*#__PURE__*/ N("<div class=\"flex items-center gap-1 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("<div class=\"border-border flex flex-col gap-2 border-t px-2.5 py-2\"><p class=\"text-text-faint truncate text-[10px]\"></p><div class=\"flex max-h-64 flex-col gap-2 overflow-y-auto pr-2\"></div><div class=\"flex items-center gap-1\">"), Y2 = /*#__PURE__*/ N("<div class=relative><span class=\"border-border bg-surface absolute top-3 -left-[13.5px] size-[9px] rounded-full border\"aria-hidden></span><div class=\"bg-surface border-border flex flex-col rounded-lg border\"><button class=\"flex w-full cursor-pointer items-center gap-2 px-2.5 py-2 text-left\"><span class=\"text-accent min-w-0 truncate font-mono text-[12px]\"></span><span class=\"text-text-faint ml-auto shrink-0 text-[10.5px] tabular-nums\"> roles<!> · </span><svg width=10 height=10 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 class=\"text-text-faint shrink-0 transition-transform\"aria-hidden><path d=\"m4 6 4 4 4-4\">"), X2 = /*#__PURE__*/ N("<span class=text-text-faint> ×"), Z2 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-0.5\"><p class=\"text-text text-[11px] font-medium\">"), Q2 = /*#__PURE__*/ N("<span class=text-accent> ← var(<!>)"), $2 = /*#__PURE__*/ N("<p class=\"text-text-dim font-mono text-[10px] leading-snug break-all\">: "), e4 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-0.5\"><p class=\"text-warn text-[10.5px] font-medium\"> — "), t4 = /*#__PURE__*/ N("<p class=\"text-text-dim font-mono text-[10px] leading-snug break-all\">: <!> → "), n4 = /*#__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>"), r4 = /*#__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\">"), i4 = /*#__PURE__*/ N("<p class=\"text-text-faint px-1 text-[10.5px]\">Nothing caught yet — interact with the app, or run Audit."), a4 = /*#__PURE__*/ N("<span class=\"text-text-dim font-mono text-[10px] break-all\">"), o4 = /*#__PURE__*/ N("<span class=\"text-danger text-[10px] leading-snug\">⚠ layout/paint transition: "), s4 = /*#__PURE__*/ N("<span class=\"text-danger text-[10px] leading-snug\">⚠ ease-in easing: "), c4 = /*#__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\">"), l4 = /*#__PURE__*/ N("<svg width=13 height=13 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round aria-hidden><path d=\"M8 1.5 9.6 6l4.4 1.6L9.6 9.2 8 13.7 6.4 9.2 2 7.6 6.4 6Z\"></path><path d=\"M13 11.5l.6 1.7 1.7.6-1.7.6-.6 1.7-.6-1.7-1.7-.6 1.7-.6Z\">"), u4 = "linear-grab:genomes:v1", d4 = 30;
|
|
46204
|
+
function f4() {
|
|
46205
46205
|
try {
|
|
46206
|
-
return JSON.parse(localStorage.getItem(
|
|
46206
|
+
return JSON.parse(localStorage.getItem(u4) ?? "[]");
|
|
46207
46207
|
} catch {
|
|
46208
46208
|
return [];
|
|
46209
46209
|
}
|
|
46210
46210
|
}
|
|
46211
|
-
function
|
|
46211
|
+
function p4(e) {
|
|
46212
46212
|
try {
|
|
46213
|
-
localStorage.setItem(
|
|
46213
|
+
localStorage.setItem(u4, JSON.stringify(e.slice(0, d4)));
|
|
46214
46214
|
} catch {}
|
|
46215
46215
|
}
|
|
46216
|
-
var
|
|
46217
|
-
function
|
|
46218
|
-
let [e, t] = T(
|
|
46216
|
+
var m4 = /* @__PURE__ */ new Map();
|
|
46217
|
+
function h4() {
|
|
46218
|
+
let [e, t] = T(f4()), [n, r] = T(null), [i, a] = T(null), [o, s] = T(null), [c, l] = T(null), [u, d] = T(null), [f, p] = T({
|
|
46219
46219
|
active: !1,
|
|
46220
46220
|
msLeft: 0,
|
|
46221
46221
|
total: 0,
|
|
@@ -46244,14 +46244,14 @@ function g4() {
|
|
|
46244
46244
|
l("Clipboard was blocked — click Copy again.");
|
|
46245
46245
|
}
|
|
46246
46246
|
}, E = (e) => {
|
|
46247
|
-
t(e),
|
|
46247
|
+
t(e), p4(e);
|
|
46248
46248
|
}, O = async () => {
|
|
46249
46249
|
l(null), a("extract"), window.dispatchEvent(new CustomEvent(BZ));
|
|
46250
46250
|
try {
|
|
46251
46251
|
let t = await u2();
|
|
46252
46252
|
if (!t) return;
|
|
46253
46253
|
let n = await e2(t), i = Date.now();
|
|
46254
|
-
|
|
46254
|
+
m4.set(i, new WeakRef(t)), E([{
|
|
46255
46255
|
id: i,
|
|
46256
46256
|
genome: n
|
|
46257
46257
|
}, ...e()]), r(i);
|
|
@@ -46263,10 +46263,10 @@ function g4() {
|
|
|
46263
46263
|
}, k = async (t) => {
|
|
46264
46264
|
l(null), a(t.id), window.dispatchEvent(new CustomEvent(BZ));
|
|
46265
46265
|
try {
|
|
46266
|
-
let n =
|
|
46266
|
+
let n = m4.get(t.id)?.deref() ?? null;
|
|
46267
46267
|
if (!n || !n.isConnected) {
|
|
46268
46268
|
if (n = await u2(), !n) return;
|
|
46269
|
-
|
|
46269
|
+
m4.set(t.id, new WeakRef(n));
|
|
46270
46270
|
}
|
|
46271
46271
|
let r = await c2(n, 8e3, (e) => s(Math.ceil(e / 1e3)));
|
|
46272
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 ? {
|
|
@@ -46288,7 +46288,7 @@ function g4() {
|
|
|
46288
46288
|
l("Clipboard was blocked — click Copy again.");
|
|
46289
46289
|
}
|
|
46290
46290
|
}, te = (t) => {
|
|
46291
|
-
|
|
46291
|
+
m4.delete(t), E(e().filter((e) => e.id !== t));
|
|
46292
46292
|
}, [A, ne] = T(!1), re = async () => {
|
|
46293
46293
|
try {
|
|
46294
46294
|
let t = e().map((e) => l2(e.genome)).join("\n\n---\n\n");
|
|
@@ -46297,7 +46297,7 @@ function g4() {
|
|
|
46297
46297
|
l("Clipboard was blocked — click Copy again.");
|
|
46298
46298
|
}
|
|
46299
46299
|
}, ie = () => {
|
|
46300
|
-
|
|
46300
|
+
m4.clear(), E([]), r(null);
|
|
46301
46301
|
};
|
|
46302
46302
|
return (() => {
|
|
46303
46303
|
var t = W2(), a = t.firstChild;
|
|
@@ -46342,7 +46342,7 @@ function g4() {
|
|
|
46342
46342
|
children: (e) => {
|
|
46343
46343
|
let t = () => n() === e.id;
|
|
46344
46344
|
return (() => {
|
|
46345
|
-
var n =
|
|
46345
|
+
var n = Y2(), a = n.firstChild, o = a.nextSibling, s = o.firstChild, c = s.firstChild, l = c.nextSibling, d = l.firstChild, p = d.nextSibling;
|
|
46346
46346
|
p.nextSibling;
|
|
46347
46347
|
var m = l.nextSibling;
|
|
46348
46348
|
return s.$$click = () => r(t() ? null : e.id), P(c, () => e.genome.title), P(l, () => e.genome.nodes.length, d), P(l, (() => {
|
|
@@ -46353,19 +46353,19 @@ function g4() {
|
|
|
46353
46353
|
return t();
|
|
46354
46354
|
},
|
|
46355
46355
|
get children() {
|
|
46356
|
-
var t =
|
|
46356
|
+
var t = J2(), n = t.firstChild, r = n.nextSibling, a = r.nextSibling;
|
|
46357
46357
|
return P(n, () => e.genome.pageUrl), P(r, j(We, {
|
|
46358
46358
|
get each() {
|
|
46359
46359
|
return e.genome.nodes;
|
|
46360
46360
|
},
|
|
46361
46361
|
children: (e) => (() => {
|
|
46362
|
-
var t =
|
|
46362
|
+
var t = Z2(), n = t.firstChild;
|
|
46363
46363
|
return P(n, () => e.label, null), P(n, j(M, {
|
|
46364
46364
|
get when() {
|
|
46365
46365
|
return e.count > 1;
|
|
46366
46366
|
},
|
|
46367
46367
|
get children() {
|
|
46368
|
-
var t =
|
|
46368
|
+
var t = X2();
|
|
46369
46369
|
return t.firstChild, P(t, () => e.count, null), t;
|
|
46370
46370
|
}
|
|
46371
46371
|
}), null), P(t, j(We, {
|
|
@@ -46373,13 +46373,13 @@ function g4() {
|
|
|
46373
46373
|
return Object.entries(e.styles);
|
|
46374
46374
|
},
|
|
46375
46375
|
children: ([t, n]) => (() => {
|
|
46376
|
-
var r =
|
|
46376
|
+
var r = $2(), i = r.firstChild;
|
|
46377
46377
|
return P(r, t, i), P(r, n, null), P(r, j(M, {
|
|
46378
46378
|
get when() {
|
|
46379
46379
|
return e.tokens[t];
|
|
46380
46380
|
},
|
|
46381
46381
|
get children() {
|
|
46382
|
-
var n =
|
|
46382
|
+
var n = Q2(), r = n.firstChild.nextSibling;
|
|
46383
46383
|
return r.nextSibling, P(n, () => e.tokens[t], r), n;
|
|
46384
46384
|
}
|
|
46385
46385
|
}), null), r;
|
|
@@ -46396,13 +46396,13 @@ function g4() {
|
|
|
46396
46396
|
return e.genome.states;
|
|
46397
46397
|
},
|
|
46398
46398
|
children: (e) => (() => {
|
|
46399
|
-
var t =
|
|
46399
|
+
var t = e4(), n = t.firstChild, r = n.firstChild;
|
|
46400
46400
|
return P(n, () => e.label, r), P(n, () => e.trigger, null), P(t, j(We, {
|
|
46401
46401
|
get each() {
|
|
46402
46402
|
return Object.entries(e.changed);
|
|
46403
46403
|
},
|
|
46404
46404
|
children: ([e, t]) => (() => {
|
|
46405
|
-
var n =
|
|
46405
|
+
var n = t4(), r = n.firstChild, i = r.nextSibling;
|
|
46406
46406
|
return i.nextSibling, P(n, e, r), P(n, () => t.from, i), P(n, () => t.to, null), n;
|
|
46407
46407
|
})()
|
|
46408
46408
|
}), null), t;
|
|
@@ -46424,7 +46424,7 @@ function g4() {
|
|
|
46424
46424
|
"aria-label": "Capture interaction states",
|
|
46425
46425
|
onClick: () => void k(e),
|
|
46426
46426
|
get children() {
|
|
46427
|
-
return
|
|
46427
|
+
return n4();
|
|
46428
46428
|
}
|
|
46429
46429
|
});
|
|
46430
46430
|
},
|
|
@@ -46459,10 +46459,10 @@ function g4() {
|
|
|
46459
46459
|
return u() === e.id;
|
|
46460
46460
|
},
|
|
46461
46461
|
get fallback() {
|
|
46462
|
-
return
|
|
46462
|
+
return r4();
|
|
46463
46463
|
},
|
|
46464
46464
|
get children() {
|
|
46465
|
-
return
|
|
46465
|
+
return L2();
|
|
46466
46466
|
}
|
|
46467
46467
|
});
|
|
46468
46468
|
}
|
|
@@ -46473,7 +46473,7 @@ function g4() {
|
|
|
46473
46473
|
"aria-label": "Delete genome",
|
|
46474
46474
|
onClick: () => te(e.id),
|
|
46475
46475
|
get children() {
|
|
46476
|
-
return
|
|
46476
|
+
return R2();
|
|
46477
46477
|
}
|
|
46478
46478
|
}), null), t;
|
|
46479
46479
|
}
|
|
@@ -46488,21 +46488,37 @@ function g4() {
|
|
|
46488
46488
|
}
|
|
46489
46489
|
}), null), t;
|
|
46490
46490
|
})(), (() => {
|
|
46491
|
-
var e =
|
|
46491
|
+
var e = z2();
|
|
46492
46492
|
return P(e, j(kj, {
|
|
46493
|
-
class: "
|
|
46493
|
+
class: "size-7 px-0",
|
|
46494
46494
|
variant: "ghost",
|
|
46495
|
-
title
|
|
46495
|
+
get title() {
|
|
46496
|
+
return A() ? "Copied!" : "Copy all genomes as one markdown document";
|
|
46497
|
+
},
|
|
46498
|
+
"aria-label": "Copy all genomes",
|
|
46496
46499
|
onClick: () => void re(),
|
|
46497
46500
|
get children() {
|
|
46498
|
-
|
|
46499
|
-
|
|
46501
|
+
return j(M, {
|
|
46502
|
+
get when() {
|
|
46503
|
+
return A();
|
|
46504
|
+
},
|
|
46505
|
+
get fallback() {
|
|
46506
|
+
return r4();
|
|
46507
|
+
},
|
|
46508
|
+
get children() {
|
|
46509
|
+
return L2();
|
|
46510
|
+
}
|
|
46511
|
+
});
|
|
46500
46512
|
}
|
|
46501
46513
|
}), null), P(e, j(kj, {
|
|
46502
|
-
class: "
|
|
46514
|
+
class: "text-danger size-7 px-0",
|
|
46503
46515
|
variant: "ghost",
|
|
46516
|
+
title: "Delete all saved genomes",
|
|
46517
|
+
"aria-label": "Delete all genomes",
|
|
46504
46518
|
onClick: ie,
|
|
46505
|
-
children
|
|
46519
|
+
get children() {
|
|
46520
|
+
return R2();
|
|
46521
|
+
}
|
|
46506
46522
|
}), null), e;
|
|
46507
46523
|
})()];
|
|
46508
46524
|
}
|
|
@@ -46514,24 +46530,24 @@ function g4() {
|
|
|
46514
46530
|
},
|
|
46515
46531
|
onClick: () => void b(),
|
|
46516
46532
|
get children() {
|
|
46517
|
-
return
|
|
46533
|
+
return B2();
|
|
46518
46534
|
}
|
|
46519
46535
|
}), null), P(o, j(M, {
|
|
46520
46536
|
get when() {
|
|
46521
46537
|
return m().length > 0;
|
|
46522
46538
|
},
|
|
46523
46539
|
get fallback() {
|
|
46524
|
-
return
|
|
46540
|
+
return i4();
|
|
46525
46541
|
},
|
|
46526
46542
|
get children() {
|
|
46527
46543
|
return [(() => {
|
|
46528
|
-
var e =
|
|
46544
|
+
var e = V2();
|
|
46529
46545
|
return P(e, j(We, {
|
|
46530
46546
|
get each() {
|
|
46531
46547
|
return m();
|
|
46532
46548
|
},
|
|
46533
46549
|
children: (e) => (() => {
|
|
46534
|
-
var t =
|
|
46550
|
+
var t = c4(), n = t.firstChild, r = n.firstChild, i = r.nextSibling, a = i.nextSibling, o = a.firstChild, s = n.nextSibling, c = s.nextSibling;
|
|
46535
46551
|
return P(r, () => e.mode === "live" ? "live" : "audit"), P(i, () => e.component ?? e.element, null), P(i, j(M, {
|
|
46536
46552
|
get when() {
|
|
46537
46553
|
return e.count > 1;
|
|
@@ -46547,7 +46563,7 @@ function g4() {
|
|
|
46547
46563
|
return e.source;
|
|
46548
46564
|
},
|
|
46549
46565
|
get children() {
|
|
46550
|
-
var t =
|
|
46566
|
+
var t = a4();
|
|
46551
46567
|
return P(t, () => e.source), t;
|
|
46552
46568
|
}
|
|
46553
46569
|
}), s), P(s, () => e.properties.join(", "), null), P(s, j(M, {
|
|
@@ -46566,7 +46582,7 @@ function g4() {
|
|
|
46566
46582
|
return e.jankProps?.length;
|
|
46567
46583
|
},
|
|
46568
46584
|
get children() {
|
|
46569
|
-
var t =
|
|
46585
|
+
var t = o4();
|
|
46570
46586
|
return t.firstChild, P(t, () => e.jankProps.join(", "), null), t;
|
|
46571
46587
|
}
|
|
46572
46588
|
}), c), P(t, j(M, {
|
|
@@ -46574,7 +46590,7 @@ function g4() {
|
|
|
46574
46590
|
return e.easing;
|
|
46575
46591
|
},
|
|
46576
46592
|
get children() {
|
|
46577
|
-
var t =
|
|
46593
|
+
var t = s4();
|
|
46578
46594
|
return t.firstChild, P(t, () => e.easing, null), t;
|
|
46579
46595
|
}
|
|
46580
46596
|
}), c), P(c, () => e.suggestion), t;
|
|
@@ -46583,27 +46599,56 @@ function g4() {
|
|
|
46583
46599
|
})(), (() => {
|
|
46584
46600
|
var e = U2();
|
|
46585
46601
|
return P(e, j(kj, {
|
|
46586
|
-
class: "
|
|
46602
|
+
class: "size-7 px-0",
|
|
46587
46603
|
variant: "primary",
|
|
46588
|
-
title
|
|
46604
|
+
get title() {
|
|
46605
|
+
return S() ? "Copied!" : "Copy AI prompt — report + fix rules, ready to paste into a Claude Code session";
|
|
46606
|
+
},
|
|
46607
|
+
"aria-label": "Copy AI fix prompt",
|
|
46589
46608
|
onClick: () => void w(),
|
|
46590
46609
|
get children() {
|
|
46591
|
-
|
|
46592
|
-
|
|
46610
|
+
return j(M, {
|
|
46611
|
+
get when() {
|
|
46612
|
+
return S();
|
|
46613
|
+
},
|
|
46614
|
+
get fallback() {
|
|
46615
|
+
return l4();
|
|
46616
|
+
},
|
|
46617
|
+
get children() {
|
|
46618
|
+
return H2();
|
|
46619
|
+
}
|
|
46620
|
+
});
|
|
46593
46621
|
}
|
|
46594
46622
|
}), null), P(e, j(kj, {
|
|
46595
|
-
class: "
|
|
46623
|
+
class: "size-7 px-0",
|
|
46596
46624
|
variant: "ghost",
|
|
46625
|
+
get title() {
|
|
46626
|
+
return v() ? "Copied!" : "Copy report — plain markdown findings";
|
|
46627
|
+
},
|
|
46628
|
+
"aria-label": "Copy report",
|
|
46597
46629
|
onClick: () => void x(),
|
|
46598
46630
|
get children() {
|
|
46599
|
-
|
|
46600
|
-
|
|
46631
|
+
return j(M, {
|
|
46632
|
+
get when() {
|
|
46633
|
+
return v();
|
|
46634
|
+
},
|
|
46635
|
+
get fallback() {
|
|
46636
|
+
return r4();
|
|
46637
|
+
},
|
|
46638
|
+
get children() {
|
|
46639
|
+
return L2();
|
|
46640
|
+
}
|
|
46641
|
+
});
|
|
46601
46642
|
}
|
|
46602
46643
|
}), null), P(e, j(kj, {
|
|
46603
|
-
class: "
|
|
46644
|
+
class: "text-danger ml-auto size-7 px-0",
|
|
46604
46645
|
variant: "ghost",
|
|
46646
|
+
title: "Clear all findings (live + audit)",
|
|
46647
|
+
"aria-label": "Clear all findings",
|
|
46605
46648
|
onClick: O2,
|
|
46606
|
-
children
|
|
46649
|
+
get children() {
|
|
46650
|
+
return R2();
|
|
46651
|
+
}
|
|
46607
46652
|
}), null), e;
|
|
46608
46653
|
})()];
|
|
46609
46654
|
}
|
|
@@ -46613,7 +46658,7 @@ function g4() {
|
|
|
46613
46658
|
rt(["click"]);
|
|
46614
46659
|
//#endregion
|
|
46615
46660
|
//#region src/lib/projectConfig.ts
|
|
46616
|
-
var
|
|
46661
|
+
var g4 = [
|
|
46617
46662
|
"defaultTeamId",
|
|
46618
46663
|
"defaultProjectId",
|
|
46619
46664
|
"defaultLabelIds",
|
|
@@ -46628,29 +46673,29 @@ var _4 = [
|
|
|
46628
46673
|
"issueTemplate",
|
|
46629
46674
|
"testUsername"
|
|
46630
46675
|
];
|
|
46631
|
-
function
|
|
46676
|
+
function _4(e) {
|
|
46632
46677
|
let t = {};
|
|
46633
|
-
for (let n of
|
|
46678
|
+
for (let n of g4) {
|
|
46634
46679
|
let r = e[n];
|
|
46635
46680
|
r !== void 0 && r !== "" && !(Array.isArray(r) && r.length === 0) && (t[n] = r);
|
|
46636
46681
|
}
|
|
46637
46682
|
return t;
|
|
46638
46683
|
}
|
|
46639
|
-
function
|
|
46684
|
+
function v4(e, t) {
|
|
46640
46685
|
let n = {};
|
|
46641
|
-
for (let r of
|
|
46686
|
+
for (let r of g4) e[r] === void 0 && t[r] !== void 0 && (n[r] = t[r]);
|
|
46642
46687
|
return Object.keys(n).length ? n : null;
|
|
46643
46688
|
}
|
|
46644
46689
|
//#endregion
|
|
46645
46690
|
//#region src/lib/linear/auth.ts
|
|
46646
46691
|
Br();
|
|
46647
|
-
function
|
|
46692
|
+
function y4(e) {
|
|
46648
46693
|
let t = "";
|
|
46649
46694
|
for (let n of e) t += String.fromCharCode(n);
|
|
46650
46695
|
return btoa(t).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
|
|
46651
46696
|
}
|
|
46652
|
-
async function
|
|
46653
|
-
let t =
|
|
46697
|
+
async function b4(e) {
|
|
46698
|
+
let t = y4(crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(32))), n = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(t)), r = y4(new Uint8Array(n)), i = y4(crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(16))), a = chrome.identity.getRedirectURL(), o = new URL("https://linear.app/oauth/authorize");
|
|
46654
46699
|
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");
|
|
46655
46700
|
let s = await chrome.identity.launchWebAuthFlow({
|
|
46656
46701
|
url: o.toString(),
|
|
@@ -46678,15 +46723,15 @@ async function x4(e) {
|
|
|
46678
46723
|
linearOauthClientId: e
|
|
46679
46724
|
});
|
|
46680
46725
|
}
|
|
46681
|
-
async function
|
|
46726
|
+
async function x4() {
|
|
46682
46727
|
await Er({
|
|
46683
46728
|
linearAccessToken: void 0,
|
|
46684
46729
|
linearApiKey: void 0
|
|
46685
46730
|
});
|
|
46686
46731
|
}
|
|
46687
46732
|
Br(), Sr(), Fx(), gD();
|
|
46688
|
-
var
|
|
46689
|
-
function
|
|
46733
|
+
var S4 = /*#__PURE__*/ N("<div class=\"bg-surface-2 border-border flex rounded-md border p-0.5\">"), C4 = /*#__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."), w4 = /*#__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"), T4 = /*#__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)."), E4 = /*#__PURE__*/ N("<span class=text-text>Connected as <span class=font-medium></span> · <span class=text-text-dim>"), D4 = /*#__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]\">"), O4 = /*#__PURE__*/ N("<option value>Select a team…"), k4 = /*#__PURE__*/ N("<option value>No project"), A4 = /*#__PURE__*/ N("<div class=\"flex flex-wrap gap-1\">"), j4 = /*#__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."), M4 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">No agents found — install the Cursor integration in Linear first."), N4 = /*#__PURE__*/ N("<span class=\"text-text-faint text-[10.5px] leading-snug\">Empty = the default above (computer-use testing, video demo, PR + review babysitting)."), P4 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1.5\">"), F4 = /*#__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."), I4 = /*#__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."), L4 = /*#__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."), R4 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[10ch] text-center\">"), z4 = /*#__PURE__*/ N("<div class=\"flex items-center gap-2\">"), B4 = /*#__PURE__*/ N("<option value>Select a channel…"), V4 = /*#__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"), H4 = /*#__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."), U4 = /*#__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"), W4 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">"), G4 = /*#__PURE__*/ N("<div class=min-h-[2lh]>"), K4 = /*#__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."), q4 = /*#__PURE__*/ N("<div class=\"flex h-full flex-col gap-5 overflow-y-auto pt-3 pb-6 pl-3 pr-4\">"), J4 = /*#__PURE__*/ N("<button>"), Y4 = /*#__PURE__*/ N("<div class=\"flex gap-1.5\">"), X4 = /*#__PURE__*/ N("<p class=\"text-text-faint text-center text-[10.5px]\">or"), Z4 = /*#__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\">"), Q4 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-3\">"), $4 = /*#__PURE__*/ N("<span class=text-text-dim>Connected — verifying…"), e3 = /*#__PURE__*/ N("<option> (<!>)"), t3 = /*#__PURE__*/ N("<option>"), n3 = /*#__PURE__*/ N("<button type=button><span class=\"mr-1 inline-block size-2 rounded-full align-middle\">"), r3 = /*#__PURE__*/ N("<option value>Select the agent…"), i3 = /*#__PURE__*/ N("<option>#"), a3 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">No key set — AI drafting disabled, manual drafting still works.");
|
|
46734
|
+
function o3() {
|
|
46690
46735
|
let e = sr(), t = _r(() => ({
|
|
46691
46736
|
queryKey: ["settings"],
|
|
46692
46737
|
queryFn: Tr,
|
|
@@ -46714,13 +46759,13 @@ function s3() {
|
|
|
46714
46759
|
retry: 0
|
|
46715
46760
|
})), [l, u] = T(!1), d = async () => {
|
|
46716
46761
|
try {
|
|
46717
|
-
await navigator.clipboard.writeText(JSON.stringify(
|
|
46762
|
+
await navigator.clipboard.writeText(JSON.stringify(_4(n()), null, 2) + "\n"), u(!0), setTimeout(() => u(!1), 1800);
|
|
46718
46763
|
} catch {}
|
|
46719
46764
|
}, f = () => {
|
|
46720
46765
|
let e = c.data?.projectConfig;
|
|
46721
46766
|
if (!e) return;
|
|
46722
46767
|
let t = {};
|
|
46723
|
-
for (let n of
|
|
46768
|
+
for (let n of g4) e[n] !== void 0 && (t[n] = e[n]);
|
|
46724
46769
|
r(t);
|
|
46725
46770
|
}, p = _r(() => ({
|
|
46726
46771
|
queryKey: ["linear-labels"],
|
|
@@ -46753,7 +46798,7 @@ function s3() {
|
|
|
46753
46798
|
}
|
|
46754
46799
|
E(!0), ee("");
|
|
46755
46800
|
try {
|
|
46756
|
-
await
|
|
46801
|
+
await b4(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"] });
|
|
46757
46802
|
} catch (e) {
|
|
46758
46803
|
ee(e instanceof Error ? e.message : "OAuth flow failed.");
|
|
46759
46804
|
} finally {
|
|
@@ -46764,7 +46809,7 @@ function s3() {
|
|
|
46764
46809
|
async function re() {
|
|
46765
46810
|
ne(!0);
|
|
46766
46811
|
try {
|
|
46767
|
-
await
|
|
46812
|
+
await x4(), 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"] });
|
|
46768
46813
|
} finally {
|
|
46769
46814
|
ne(!1);
|
|
46770
46815
|
}
|
|
@@ -46780,12 +46825,12 @@ function s3() {
|
|
|
46780
46825
|
return e ? `Drafting with ${e} — ${Nx[e].fast} (fast) / ${Nx[e].best} (best)` : null;
|
|
46781
46826
|
});
|
|
46782
46827
|
return (() => {
|
|
46783
|
-
var e =
|
|
46828
|
+
var e = q4();
|
|
46784
46829
|
return P(e, j(Rj, {
|
|
46785
46830
|
title: "Workflow",
|
|
46786
46831
|
get children() {
|
|
46787
46832
|
return [(() => {
|
|
46788
|
-
var e =
|
|
46833
|
+
var e = S4();
|
|
46789
46834
|
return P(e, j(We, {
|
|
46790
46835
|
each: [{
|
|
46791
46836
|
id: "cloud",
|
|
@@ -46795,19 +46840,19 @@ function s3() {
|
|
|
46795
46840
|
label: "Local · clipboard"
|
|
46796
46841
|
}],
|
|
46797
46842
|
children: (e) => (() => {
|
|
46798
|
-
var t =
|
|
46843
|
+
var t = J4();
|
|
46799
46844
|
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;
|
|
46800
46845
|
})()
|
|
46801
46846
|
})), e;
|
|
46802
|
-
})(),
|
|
46847
|
+
})(), C4()];
|
|
46803
46848
|
}
|
|
46804
46849
|
}), null), P(e, j(Rj, {
|
|
46805
46850
|
title: "Capture",
|
|
46806
46851
|
get children() {
|
|
46807
46852
|
return [(() => {
|
|
46808
|
-
var e =
|
|
46853
|
+
var e = w4(), t = e.firstChild;
|
|
46809
46854
|
return t.addEventListener("change", (e) => void r({ captureShots: e.currentTarget.checked || void 0 })), D(() => t.checked = !!n().captureShots), e;
|
|
46810
|
-
})(),
|
|
46855
|
+
})(), T4()];
|
|
46811
46856
|
}
|
|
46812
46857
|
}), null), P(e, j(Rj, {
|
|
46813
46858
|
title: "Linear",
|
|
@@ -46818,13 +46863,13 @@ function s3() {
|
|
|
46818
46863
|
},
|
|
46819
46864
|
get fallback() {
|
|
46820
46865
|
return (() => {
|
|
46821
|
-
var e =
|
|
46866
|
+
var e = Q4();
|
|
46822
46867
|
return P(e, j(Lj, {
|
|
46823
46868
|
label: "Personal API key",
|
|
46824
46869
|
hint: "Create one at linear.app → Settings → API — fastest path.",
|
|
46825
46870
|
get children() {
|
|
46826
46871
|
return [(() => {
|
|
46827
|
-
var e =
|
|
46872
|
+
var e = Y4();
|
|
46828
46873
|
return P(e, j(jj, {
|
|
46829
46874
|
type: "password",
|
|
46830
46875
|
placeholder: "lin_api_…",
|
|
@@ -46861,12 +46906,12 @@ function s3() {
|
|
|
46861
46906
|
}), null), P(e, j(M, {
|
|
46862
46907
|
when: xr,
|
|
46863
46908
|
get children() {
|
|
46864
|
-
return [
|
|
46909
|
+
return [X4(), j(Lj, {
|
|
46865
46910
|
label: "OAuth client ID",
|
|
46866
46911
|
get children() {
|
|
46867
46912
|
return [
|
|
46868
46913
|
(() => {
|
|
46869
|
-
var e =
|
|
46914
|
+
var e = Y4();
|
|
46870
46915
|
return P(e, j(jj, {
|
|
46871
46916
|
placeholder: "your-client-id",
|
|
46872
46917
|
get value() {
|
|
@@ -46894,7 +46939,7 @@ function s3() {
|
|
|
46894
46939
|
}
|
|
46895
46940
|
}),
|
|
46896
46941
|
(() => {
|
|
46897
|
-
var e =
|
|
46942
|
+
var e = Z4(), t = e.firstChild.nextSibling.nextSibling;
|
|
46898
46943
|
return P(t, ie), e;
|
|
46899
46944
|
})()
|
|
46900
46945
|
];
|
|
@@ -46905,13 +46950,13 @@ function s3() {
|
|
|
46905
46950
|
})();
|
|
46906
46951
|
},
|
|
46907
46952
|
get children() {
|
|
46908
|
-
var e =
|
|
46953
|
+
var e = D4(), t = e.firstChild;
|
|
46909
46954
|
return P(t, j(M, {
|
|
46910
46955
|
get when() {
|
|
46911
46956
|
return !a.isLoading;
|
|
46912
46957
|
},
|
|
46913
46958
|
get fallback() {
|
|
46914
|
-
return
|
|
46959
|
+
return $4();
|
|
46915
46960
|
},
|
|
46916
46961
|
get children() {
|
|
46917
46962
|
return j(M, {
|
|
@@ -46924,7 +46969,7 @@ function s3() {
|
|
|
46924
46969
|
return a.isError;
|
|
46925
46970
|
},
|
|
46926
46971
|
get fallback() {
|
|
46927
|
-
return
|
|
46972
|
+
return $4();
|
|
46928
46973
|
},
|
|
46929
46974
|
get children() {
|
|
46930
46975
|
return j(Hj, { message: "Key rejected — reconnect" });
|
|
@@ -46932,7 +46977,7 @@ function s3() {
|
|
|
46932
46977
|
});
|
|
46933
46978
|
},
|
|
46934
46979
|
get children() {
|
|
46935
|
-
var e =
|
|
46980
|
+
var e = E4(), t = e.firstChild.nextSibling, n = t.nextSibling.nextSibling;
|
|
46936
46981
|
return P(t, () => a.data.name), P(n, () => a.data.email), e;
|
|
46937
46982
|
}
|
|
46938
46983
|
});
|
|
@@ -46973,7 +47018,7 @@ function s3() {
|
|
|
46973
47018
|
return o.isLoading;
|
|
46974
47019
|
},
|
|
46975
47020
|
get children() {
|
|
46976
|
-
return [
|
|
47021
|
+
return [O4(), j(M, {
|
|
46977
47022
|
get when() {
|
|
46978
47023
|
return o.data;
|
|
46979
47024
|
},
|
|
@@ -46983,7 +47028,7 @@ function s3() {
|
|
|
46983
47028
|
return o.data;
|
|
46984
47029
|
},
|
|
46985
47030
|
children: (e) => (() => {
|
|
46986
|
-
var t =
|
|
47031
|
+
var t = e3(), r = t.firstChild, i = r.nextSibling;
|
|
46987
47032
|
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;
|
|
46988
47033
|
})()
|
|
46989
47034
|
});
|
|
@@ -47007,14 +47052,14 @@ function s3() {
|
|
|
47007
47052
|
},
|
|
47008
47053
|
get children() {
|
|
47009
47054
|
return [(() => {
|
|
47010
|
-
var e =
|
|
47055
|
+
var e = k4();
|
|
47011
47056
|
return D(() => e.selected = !n().defaultProjectId), e;
|
|
47012
47057
|
})(), j(We, {
|
|
47013
47058
|
get each() {
|
|
47014
47059
|
return s.data ?? [];
|
|
47015
47060
|
},
|
|
47016
47061
|
children: (e) => (() => {
|
|
47017
|
-
var t =
|
|
47062
|
+
var t = t3();
|
|
47018
47063
|
return P(t, () => e.name), D(() => t.selected = e.id === n().defaultProjectId), D(() => t.value = e.id), t;
|
|
47019
47064
|
})()
|
|
47020
47065
|
})];
|
|
@@ -47026,7 +47071,7 @@ function s3() {
|
|
|
47026
47071
|
label: "Default labels",
|
|
47027
47072
|
hint: "Applied to every issue created from the panel.",
|
|
47028
47073
|
get children() {
|
|
47029
|
-
var e =
|
|
47074
|
+
var e = A4();
|
|
47030
47075
|
return P(e, j(We, {
|
|
47031
47076
|
get each() {
|
|
47032
47077
|
return p.data ?? [];
|
|
@@ -47034,7 +47079,7 @@ function s3() {
|
|
|
47034
47079
|
children: (e) => {
|
|
47035
47080
|
let t = () => (n().defaultLabelIds ?? []).includes(e.id);
|
|
47036
47081
|
return (() => {
|
|
47037
|
-
var i =
|
|
47082
|
+
var i = n3(), a = i.firstChild;
|
|
47038
47083
|
return i.$$click = () => {
|
|
47039
47084
|
let i = n().defaultLabelIds ?? [];
|
|
47040
47085
|
r({ defaultLabelIds: t() ? i.filter((t) => t !== e.id) : [...i, e.id] });
|
|
@@ -47051,7 +47096,7 @@ function s3() {
|
|
|
47051
47096
|
}
|
|
47052
47097
|
}),
|
|
47053
47098
|
(() => {
|
|
47054
|
-
var e =
|
|
47099
|
+
var e = j4(), t = e.firstChild;
|
|
47055
47100
|
return t.addEventListener("change", (e) => void r({ shareLinearKey: e.currentTarget.checked })), D(() => t.checked = !!n().shareLinearKey), e;
|
|
47056
47101
|
})(),
|
|
47057
47102
|
j(Lj, {
|
|
@@ -47101,7 +47146,7 @@ function s3() {
|
|
|
47101
47146
|
return m.isLoading;
|
|
47102
47147
|
},
|
|
47103
47148
|
get children() {
|
|
47104
|
-
return [
|
|
47149
|
+
return [r3(), j(M, {
|
|
47105
47150
|
get when() {
|
|
47106
47151
|
return m.data;
|
|
47107
47152
|
},
|
|
@@ -47111,7 +47156,7 @@ function s3() {
|
|
|
47111
47156
|
return m.data;
|
|
47112
47157
|
},
|
|
47113
47158
|
children: (e) => (() => {
|
|
47114
|
-
var t =
|
|
47159
|
+
var t = t3();
|
|
47115
47160
|
return P(t, () => e.displayName), D(() => t.selected = e.id === n().cursorAgentId), D(() => t.value = e.id), t;
|
|
47116
47161
|
})()
|
|
47117
47162
|
});
|
|
@@ -47121,7 +47166,7 @@ function s3() {
|
|
|
47121
47166
|
});
|
|
47122
47167
|
},
|
|
47123
47168
|
get children() {
|
|
47124
|
-
return
|
|
47169
|
+
return M4();
|
|
47125
47170
|
}
|
|
47126
47171
|
});
|
|
47127
47172
|
}
|
|
@@ -47169,7 +47214,7 @@ function s3() {
|
|
|
47169
47214
|
onBlur: (e) => {
|
|
47170
47215
|
r({ issueTemplate: e.currentTarget.value.trim() || void 0 });
|
|
47171
47216
|
}
|
|
47172
|
-
}),
|
|
47217
|
+
}), N4()];
|
|
47173
47218
|
}
|
|
47174
47219
|
}),
|
|
47175
47220
|
j(Lj, {
|
|
@@ -47226,7 +47271,7 @@ function s3() {
|
|
|
47226
47271
|
label: "Test account",
|
|
47227
47272
|
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.",
|
|
47228
47273
|
get children() {
|
|
47229
|
-
var e =
|
|
47274
|
+
var e = P4();
|
|
47230
47275
|
return P(e, j(jj, {
|
|
47231
47276
|
placeholder: "Username or email (e.g. demo@yourapp.com)",
|
|
47232
47277
|
get value() {
|
|
@@ -47258,7 +47303,7 @@ function s3() {
|
|
|
47258
47303
|
title: "Panel",
|
|
47259
47304
|
get children() {
|
|
47260
47305
|
return [(() => {
|
|
47261
|
-
var e =
|
|
47306
|
+
var e = F4(), t = e.firstChild.nextSibling;
|
|
47262
47307
|
return P(t, j(We, {
|
|
47263
47308
|
each: [{
|
|
47264
47309
|
id: "overlay",
|
|
@@ -47268,7 +47313,7 @@ function s3() {
|
|
|
47268
47313
|
label: "Beside page"
|
|
47269
47314
|
}],
|
|
47270
47315
|
children: (e) => (() => {
|
|
47271
|
-
var t =
|
|
47316
|
+
var t = J4();
|
|
47272
47317
|
return t.$$click = () => void r({
|
|
47273
47318
|
panelMode: e.id,
|
|
47274
47319
|
panelPos: void 0
|
|
@@ -47276,11 +47321,11 @@ function s3() {
|
|
|
47276
47321
|
})()
|
|
47277
47322
|
})), e;
|
|
47278
47323
|
})(), (() => {
|
|
47279
|
-
var e =
|
|
47324
|
+
var e = I4(), t = e.firstChild.nextSibling;
|
|
47280
47325
|
return P(t, j(We, {
|
|
47281
47326
|
each: ["left", "right"],
|
|
47282
47327
|
children: (e) => (() => {
|
|
47283
|
-
var t =
|
|
47328
|
+
var t = J4();
|
|
47284
47329
|
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;
|
|
47285
47330
|
})()
|
|
47286
47331
|
})), e;
|
|
@@ -47310,8 +47355,8 @@ function s3() {
|
|
|
47310
47355
|
}), null), P(e, j(Rj, {
|
|
47311
47356
|
title: "Project config (.lineargrab.json)",
|
|
47312
47357
|
get children() {
|
|
47313
|
-
return [
|
|
47314
|
-
var e =
|
|
47358
|
+
return [L4(), (() => {
|
|
47359
|
+
var e = z4();
|
|
47315
47360
|
return P(e, j(M, {
|
|
47316
47361
|
get when() {
|
|
47317
47362
|
return c.data?.projectConfig;
|
|
@@ -47342,7 +47387,7 @@ function s3() {
|
|
|
47342
47387
|
},
|
|
47343
47388
|
onClick: () => void d(),
|
|
47344
47389
|
get children() {
|
|
47345
|
-
var e =
|
|
47390
|
+
var e = R4();
|
|
47346
47391
|
return P(e, () => l() ? "Copied ✓" : "Copy config"), e;
|
|
47347
47392
|
}
|
|
47348
47393
|
}), null), e;
|
|
@@ -47433,12 +47478,12 @@ function s3() {
|
|
|
47433
47478
|
});
|
|
47434
47479
|
},
|
|
47435
47480
|
get children() {
|
|
47436
|
-
return [
|
|
47481
|
+
return [B4(), j(We, {
|
|
47437
47482
|
get each() {
|
|
47438
47483
|
return ae.data ?? [];
|
|
47439
47484
|
},
|
|
47440
47485
|
children: (e) => (() => {
|
|
47441
|
-
var t =
|
|
47486
|
+
var t = i3();
|
|
47442
47487
|
return t.firstChild, P(t, () => e.name, null), D(() => t.selected = e.id === n().slackChannelId), D(() => t.value = e.id), t;
|
|
47443
47488
|
})()
|
|
47444
47489
|
})];
|
|
@@ -47489,10 +47534,10 @@ function s3() {
|
|
|
47489
47534
|
}
|
|
47490
47535
|
}),
|
|
47491
47536
|
(() => {
|
|
47492
|
-
var e =
|
|
47537
|
+
var e = V4(), t = e.firstChild;
|
|
47493
47538
|
return t.addEventListener("change", (e) => void r({ notifyOnCreate: e.currentTarget.checked ? void 0 : !1 })), D(() => t.checked = n().notifyOnCreate !== !1), e;
|
|
47494
47539
|
})(),
|
|
47495
|
-
|
|
47540
|
+
H4()
|
|
47496
47541
|
];
|
|
47497
47542
|
}
|
|
47498
47543
|
}), null), P(e, j(Rj, {
|
|
@@ -47530,7 +47575,7 @@ function s3() {
|
|
|
47530
47575
|
}
|
|
47531
47576
|
}),
|
|
47532
47577
|
(() => {
|
|
47533
|
-
var e =
|
|
47578
|
+
var e = U4(), t = e.firstChild.nextSibling.firstChild, i = t.nextSibling, a = i.nextSibling;
|
|
47534
47579
|
return t.$$click = () => void r({ preferredProvider: void 0 }), i.$$click = () => void r({ preferredProvider: "openai" }), a.$$click = () => void r({ preferredProvider: "anthropic" }), D((e) => {
|
|
47535
47580
|
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;
|
|
47536
47581
|
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;
|
|
@@ -47543,16 +47588,16 @@ function s3() {
|
|
|
47543
47588
|
}), e;
|
|
47544
47589
|
})(),
|
|
47545
47590
|
(() => {
|
|
47546
|
-
var e =
|
|
47591
|
+
var e = G4();
|
|
47547
47592
|
return P(e, j(M, {
|
|
47548
47593
|
get when() {
|
|
47549
47594
|
return se();
|
|
47550
47595
|
},
|
|
47551
47596
|
get fallback() {
|
|
47552
|
-
return
|
|
47597
|
+
return a3();
|
|
47553
47598
|
},
|
|
47554
47599
|
get children() {
|
|
47555
|
-
var e =
|
|
47600
|
+
var e = W4();
|
|
47556
47601
|
return P(e, se), e;
|
|
47557
47602
|
}
|
|
47558
47603
|
})), e;
|
|
@@ -47562,7 +47607,7 @@ function s3() {
|
|
|
47562
47607
|
}), null), P(e, j(Rj, {
|
|
47563
47608
|
title: "How it works",
|
|
47564
47609
|
get children() {
|
|
47565
|
-
return
|
|
47610
|
+
return K4();
|
|
47566
47611
|
}
|
|
47567
47612
|
}), null), e;
|
|
47568
47613
|
})();
|
|
@@ -47570,38 +47615,38 @@ function s3() {
|
|
|
47570
47615
|
rt(["click"]);
|
|
47571
47616
|
//#endregion
|
|
47572
47617
|
//#region src/lib/idbCache.ts
|
|
47573
|
-
var
|
|
47618
|
+
var s3 = "linear-grab", c3 = "queries", l3 = [
|
|
47574
47619
|
"my-issues",
|
|
47575
47620
|
"issue",
|
|
47576
47621
|
"sessions",
|
|
47577
47622
|
"teams",
|
|
47578
47623
|
"agents"
|
|
47579
47624
|
];
|
|
47580
|
-
function
|
|
47625
|
+
function u3() {
|
|
47581
47626
|
return new Promise((e) => {
|
|
47582
47627
|
try {
|
|
47583
|
-
let t = indexedDB.open(
|
|
47584
|
-
t.onupgradeneeded = () => t.result.createObjectStore(
|
|
47628
|
+
let t = indexedDB.open(s3, 1);
|
|
47629
|
+
t.onupgradeneeded = () => t.result.createObjectStore(c3), t.onsuccess = () => e(t.result), t.onerror = () => e(null);
|
|
47585
47630
|
} catch {
|
|
47586
47631
|
e(null);
|
|
47587
47632
|
}
|
|
47588
47633
|
});
|
|
47589
47634
|
}
|
|
47590
|
-
function
|
|
47591
|
-
return typeof e[0] == "string" &&
|
|
47635
|
+
function d3(e) {
|
|
47636
|
+
return typeof e[0] == "string" && l3.includes(e[0]);
|
|
47592
47637
|
}
|
|
47593
|
-
async function
|
|
47594
|
-
let t = await
|
|
47638
|
+
async function f3(e) {
|
|
47639
|
+
let t = await u3();
|
|
47595
47640
|
if (!t) return () => {};
|
|
47596
47641
|
await new Promise((n) => {
|
|
47597
47642
|
try {
|
|
47598
|
-
let r = t.transaction(
|
|
47643
|
+
let r = t.transaction(c3, "readonly").objectStore(c3).openCursor();
|
|
47599
47644
|
r.onsuccess = () => {
|
|
47600
47645
|
let t = r.result;
|
|
47601
47646
|
if (!t) return n();
|
|
47602
47647
|
try {
|
|
47603
47648
|
let { queryKey: n, data: r } = t.value;
|
|
47604
|
-
|
|
47649
|
+
d3(n) && e.getQueryData(n) === void 0 && e.setQueryData(n, r, { updatedAt: 0 });
|
|
47605
47650
|
} catch {}
|
|
47606
47651
|
t.continue();
|
|
47607
47652
|
}, r.onerror = () => n();
|
|
@@ -47612,14 +47657,14 @@ async function p3(e) {
|
|
|
47612
47657
|
let n = /* @__PURE__ */ new Map(), r = e.getQueryCache().subscribe((r) => {
|
|
47613
47658
|
if (r.type !== "updated" || r.action.type !== "success") return;
|
|
47614
47659
|
let { queryKey: i, queryHash: a } = r.query;
|
|
47615
|
-
if (!
|
|
47660
|
+
if (!d3(i)) return;
|
|
47616
47661
|
let o = n.get(a);
|
|
47617
47662
|
o && clearTimeout(o), n.set(a, setTimeout(() => {
|
|
47618
47663
|
n.delete(a);
|
|
47619
47664
|
try {
|
|
47620
47665
|
let n = e.getQueryData(i);
|
|
47621
47666
|
if (n === void 0) return;
|
|
47622
|
-
t.transaction(
|
|
47667
|
+
t.transaction(c3, "readwrite").objectStore(c3).put({
|
|
47623
47668
|
queryKey: i,
|
|
47624
47669
|
data: n
|
|
47625
47670
|
}, a);
|
|
@@ -47635,7 +47680,7 @@ async function p3(e) {
|
|
|
47635
47680
|
//#endregion
|
|
47636
47681
|
//#region src/panel/App.tsx
|
|
47637
47682
|
Br();
|
|
47638
|
-
var
|
|
47683
|
+
var p3 = /*#__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\">"), m3 = /*#__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\">"), h3 = /*#__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\">–"), g3 = /*#__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>"), _3 = /*#__PURE__*/ N("<button>"), v3 = [
|
|
47639
47684
|
{
|
|
47640
47685
|
id: "draft",
|
|
47641
47686
|
label: "Draft"
|
|
@@ -47672,35 +47717,35 @@ var m3 = /*#__PURE__*/ N("<svg viewBox=\"0 0 100 100\"fill=currentColor aria-hid
|
|
|
47672
47717
|
id: "settings",
|
|
47673
47718
|
label: "Settings"
|
|
47674
47719
|
}
|
|
47675
|
-
],
|
|
47676
|
-
function
|
|
47677
|
-
if (
|
|
47678
|
-
|
|
47720
|
+
], y3 = /* @__PURE__ */ new Set();
|
|
47721
|
+
function b3(e, t, n) {
|
|
47722
|
+
if (y3.has(e) || typeof Notification > "u") return;
|
|
47723
|
+
y3.add(e);
|
|
47679
47724
|
let r = () => new Notification(t, { body: n });
|
|
47680
47725
|
Notification.permission === "granted" ? r() : Notification.permission === "default" && Notification.requestPermission().then((e) => e === "granted" && r());
|
|
47681
47726
|
}
|
|
47682
|
-
function
|
|
47727
|
+
function x3() {
|
|
47683
47728
|
setInterval(() => {
|
|
47684
47729
|
NO().then((e) => {
|
|
47685
47730
|
for (let t of e) {
|
|
47686
47731
|
if (t.status !== "running") continue;
|
|
47687
47732
|
let e = t.lastEventAt ?? t.startedAt;
|
|
47688
|
-
Date.now() - e > 10 * 6e4 &&
|
|
47733
|
+
Date.now() - e > 10 * 6e4 && b3(`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.`);
|
|
47689
47734
|
}
|
|
47690
47735
|
}).catch(() => {}), gO().then((e) => {
|
|
47691
|
-
for (let t of e) /awaitingInput|elicit/i.test(t.status) &&
|
|
47736
|
+
for (let t of e) /awaitingInput|elicit/i.test(t.status) && b3(`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.`);
|
|
47692
47737
|
}).catch(() => {});
|
|
47693
47738
|
}, 6e4);
|
|
47694
47739
|
}
|
|
47695
|
-
|
|
47696
|
-
var
|
|
47740
|
+
x3();
|
|
47741
|
+
var S3 = new gr({ defaultOptions: { queries: {
|
|
47697
47742
|
retry: 1,
|
|
47698
47743
|
refetchOnWindowFocus: !1,
|
|
47699
47744
|
staleTime: 5e3
|
|
47700
47745
|
} } });
|
|
47701
|
-
function
|
|
47746
|
+
function C3(e) {
|
|
47702
47747
|
return (() => {
|
|
47703
|
-
var t =
|
|
47748
|
+
var t = p3();
|
|
47704
47749
|
return D((n) => {
|
|
47705
47750
|
var r = e.size ?? 14, i = e.size ?? 14;
|
|
47706
47751
|
return r !== n.e && it(t, "width", n.e = r), i !== n.t && it(t, "height", n.t = i), n;
|
|
@@ -47710,36 +47755,36 @@ function w3(e) {
|
|
|
47710
47755
|
}), t;
|
|
47711
47756
|
})();
|
|
47712
47757
|
}
|
|
47713
|
-
function
|
|
47758
|
+
function w3(e) {
|
|
47714
47759
|
let [t, n] = T("draft"), r = () => {
|
|
47715
|
-
|
|
47760
|
+
S3.invalidateQueries({ queryKey: ["grab"] }), cj() === "capture" && n("capture"), e.onGrab?.();
|
|
47716
47761
|
};
|
|
47717
47762
|
return O(() => {
|
|
47718
47763
|
let e = nj();
|
|
47719
47764
|
e && n(e);
|
|
47720
47765
|
}), ie(() => {
|
|
47721
|
-
let e =
|
|
47766
|
+
let e = f3(S3), t = XZ(r), n = () => {
|
|
47722
47767
|
JO().then(y$), VO(), MO().then(async (e) => {
|
|
47723
47768
|
if (!e.projectConfig) return;
|
|
47724
|
-
let t =
|
|
47769
|
+
let t = v4(await Tr(), e.projectConfig);
|
|
47725
47770
|
t && await Er(t);
|
|
47726
47771
|
}).catch(() => {});
|
|
47727
47772
|
};
|
|
47728
47773
|
n();
|
|
47729
47774
|
let i = Mr((e) => {
|
|
47730
|
-
e === "settings" && (
|
|
47775
|
+
e === "settings" && (S3.invalidateQueries({ queryKey: ["settings"] }), n()), e === "grab" && r();
|
|
47731
47776
|
});
|
|
47732
47777
|
ae(() => {
|
|
47733
47778
|
t(), i(), e.then((e) => e());
|
|
47734
47779
|
});
|
|
47735
47780
|
}), j(cr, {
|
|
47736
|
-
client:
|
|
47781
|
+
client: S3,
|
|
47737
47782
|
get children() {
|
|
47738
|
-
var r =
|
|
47739
|
-
return i.$$pointerdown = (t) => e.onHeaderPointerDown?.(t), P(a, j(
|
|
47740
|
-
each:
|
|
47783
|
+
var r = g3(), 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;
|
|
47784
|
+
return i.$$pointerdown = (t) => e.onHeaderPointerDown?.(t), P(a, j(C3, { size: 14 })), P(o, j(We, {
|
|
47785
|
+
each: v3,
|
|
47741
47786
|
children: (e) => (() => {
|
|
47742
|
-
var r =
|
|
47787
|
+
var r = _3();
|
|
47743
47788
|
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;
|
|
47744
47789
|
})()
|
|
47745
47790
|
})), P(i, j(M, {
|
|
@@ -47747,7 +47792,7 @@ function T3(e) {
|
|
|
47747
47792
|
return e.onTogglePin;
|
|
47748
47793
|
},
|
|
47749
47794
|
get children() {
|
|
47750
|
-
var t =
|
|
47795
|
+
var t = m3();
|
|
47751
47796
|
return t.$$click = () => e.onTogglePin?.(), D((n) => {
|
|
47752
47797
|
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"}`;
|
|
47753
47798
|
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;
|
|
@@ -47762,10 +47807,10 @@ function T3(e) {
|
|
|
47762
47807
|
return e.onClose;
|
|
47763
47808
|
},
|
|
47764
47809
|
get children() {
|
|
47765
|
-
var t =
|
|
47810
|
+
var t = h3();
|
|
47766
47811
|
return t.$$click = () => e.onClose?.(), t;
|
|
47767
47812
|
}
|
|
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(
|
|
47813
|
+
}), 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(h4, {})), P(h, j(o3, {})), D((n) => {
|
|
47769
47814
|
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";
|
|
47770
47815
|
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;
|
|
47771
47816
|
}, {
|
|
@@ -47786,12 +47831,12 @@ function T3(e) {
|
|
|
47786
47831
|
rt(["pointerdown", "click"]);
|
|
47787
47832
|
//#endregion
|
|
47788
47833
|
//#region src/styles/app.css?inline
|
|
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}}";
|
|
47834
|
+
var T3 = "/*! 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-\\[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}}";
|
|
47790
47835
|
//#endregion
|
|
47791
47836
|
//#region src/page/index.tsx
|
|
47792
47837
|
Br();
|
|
47793
|
-
var
|
|
47794
|
-
function
|
|
47838
|
+
var E3 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-danger size-2 shrink-0 animate-pulse rounded-full\">"), D3 = /*#__PURE__*/ N("<span class=\"text-text min-w-[5ch] text-[11px] font-medium tabular-nums\">"), O3 = /*#__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"), k3 = /*#__PURE__*/ N("<p class=\"text-warn px-1.5 pt-1 pb-1.5 text-[10.5px] font-semibold tracking-wide uppercase\">Needs review"), A3 = /*#__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"), j3 = /*#__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\">"), M3 = /*#__PURE__*/ N("<div><div title=\"Drag to resize\">"), N3 = /*#__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\">"), P3 = /*#__PURE__*/ N("<span class=\"bg-border h-4 w-px\"aria-hidden>"), F3 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-warn size-2 rounded-full\">"), I3 = /*#__PURE__*/ N("<span class=\"text-warn min-w-[3.5ch] text-left text-[11px] font-medium tabular-nums\"> rev"), L3 = /*#__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>"), R3 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-accent size-2 shrink-0 animate-pulse rounded-full\">"), z3 = /*#__PURE__*/ N("<span class=\"text-text min-w-[3ch] text-[11px] font-medium tabular-nums\">s"), B3 = /*#__PURE__*/ N("<span class=\"text-text-dim min-w-[7ch] text-[11px] tabular-nums\"> states"), V3 = /*#__PURE__*/ N("<p class=\"text-text-faint px-1.5 pb-1.5 text-[11.5px]\">No agents running right now."), H3 = /*#__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\"> · <!> · ");
|
|
47839
|
+
function U3(e = {}) {
|
|
47795
47840
|
if (typeof window > "u" || window.__LINEAR_GRAB_PAGE__) return;
|
|
47796
47841
|
window.__LINEAR_GRAB_PAGE__ = !0;
|
|
47797
47842
|
let t = () => {
|
|
@@ -47823,17 +47868,17 @@ function W3(e = {}) {
|
|
|
47823
47868
|
"keypress"
|
|
47824
47869
|
]) window.addEventListener(e, n, { capture: !0 });
|
|
47825
47870
|
let r = t.attachShadow({ mode: "open" }), i = document.createElement("style");
|
|
47826
|
-
i.textContent =
|
|
47871
|
+
i.textContent = T3, r.appendChild(i);
|
|
47827
47872
|
let a = document.createElement("div");
|
|
47828
47873
|
r.appendChild(a);
|
|
47829
|
-
let o = () => a.setAttribute("data-theme",
|
|
47830
|
-
o(), matchMedia("(prefers-color-scheme: light)").addEventListener("change", o), nt(() => j(
|
|
47874
|
+
let o = () => a.setAttribute("data-theme", W3());
|
|
47875
|
+
o(), matchMedia("(prefers-color-scheme: light)").addEventListener("change", o), nt(() => j(X3, { get defaultOpen() {
|
|
47831
47876
|
return e.defaultOpen ?? !1;
|
|
47832
47877
|
} }), a);
|
|
47833
47878
|
};
|
|
47834
47879
|
document.body ? t() : document.addEventListener("DOMContentLoaded", t, { once: !0 });
|
|
47835
47880
|
}
|
|
47836
|
-
function
|
|
47881
|
+
function W3() {
|
|
47837
47882
|
try {
|
|
47838
47883
|
let e = [document.body, document.documentElement];
|
|
47839
47884
|
for (let t of e) {
|
|
@@ -47843,11 +47888,11 @@ function G3() {
|
|
|
47843
47888
|
} catch {}
|
|
47844
47889
|
return matchMedia("(prefers-color-scheme: light)").matches ? "light" : "dark";
|
|
47845
47890
|
}
|
|
47846
|
-
var
|
|
47847
|
-
function
|
|
47891
|
+
var G3 = 130, K3 = 36, q3 = 380, J3 = 280, Y3 = 720;
|
|
47892
|
+
function X3(e) {
|
|
47848
47893
|
let [t, n] = T(e.defaultOpen), [r, i] = T("right"), [a, o] = T({
|
|
47849
|
-
x: Math.max(8, window.innerWidth -
|
|
47850
|
-
y: Math.max(8, window.innerHeight -
|
|
47894
|
+
x: Math.max(8, window.innerWidth - G3 - 24),
|
|
47895
|
+
y: Math.max(8, window.innerHeight - K3 - 20)
|
|
47851
47896
|
}), [s, c] = T({
|
|
47852
47897
|
running: [],
|
|
47853
47898
|
review: []
|
|
@@ -47867,12 +47912,12 @@ function Z3(e) {
|
|
|
47867
47912
|
let t = Math.floor(e / 1e3);
|
|
47868
47913
|
return `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
|
|
47869
47914
|
}, [b, x] = T(null), S = (e) => ({
|
|
47870
|
-
x: Math.min(Math.max(8, e.x), window.innerWidth -
|
|
47871
|
-
y: Math.min(Math.max(8, e.y), window.innerHeight -
|
|
47915
|
+
x: Math.min(Math.max(8, e.x), window.innerWidth - G3 - 8),
|
|
47916
|
+
y: Math.min(Math.max(8, e.y), window.innerHeight - K3 - 8)
|
|
47872
47917
|
}), C = (e) => ({
|
|
47873
47918
|
x: Math.min(Math.max(8 - (ne() - 80), e.x), window.innerWidth - 80),
|
|
47874
47919
|
y: Math.min(Math.max(0, e.y), window.innerHeight - 80)
|
|
47875
|
-
}), [w, E] = T(!1), [k, ee] = T("cloud"), [te, A] = T(!1), [ne, re] = T(
|
|
47920
|
+
}), [w, E] = T(!1), [k, ee] = T("cloud"), [te, A] = T(!1), [ne, re] = T(q3), oe = (e) => Math.min(Y3, Math.max(J3, Math.min(e, window.innerWidth - 60)));
|
|
47876
47921
|
O(() => {
|
|
47877
47922
|
let e = document.documentElement, n = t() && w();
|
|
47878
47923
|
e.style.transition = "margin 0.2s ease", e.style.marginRight = n && r() === "right" ? `${ne()}px` : "", e.style.marginLeft = n && r() === "left" ? `${ne()}px` : "";
|
|
@@ -47986,7 +48031,7 @@ function Z3(e) {
|
|
|
47986
48031
|
return !t();
|
|
47987
48032
|
},
|
|
47988
48033
|
get children() {
|
|
47989
|
-
var e =
|
|
48034
|
+
var e = j3(), t = e.firstChild;
|
|
47990
48035
|
return t.$$click = () => {
|
|
47991
48036
|
ce || p() === "recording" || h().active || (f(!1), n(!0));
|
|
47992
48037
|
}, t.$$pointerdown = le, P(t, j(M, {
|
|
@@ -47996,14 +48041,14 @@ function Z3(e) {
|
|
|
47996
48041
|
get fallback() {
|
|
47997
48042
|
return [
|
|
47998
48043
|
(() => {
|
|
47999
|
-
var e =
|
|
48044
|
+
var e = N3();
|
|
48000
48045
|
return e.$$click = () => {
|
|
48001
48046
|
ce || (f(!1), n(!0));
|
|
48002
|
-
}, P(e, j(
|
|
48047
|
+
}, P(e, j(C3, { size: 13 })), e;
|
|
48003
48048
|
})(),
|
|
48004
|
-
|
|
48049
|
+
P3(),
|
|
48005
48050
|
(() => {
|
|
48006
|
-
var e =
|
|
48051
|
+
var e = L3(), t = e.firstChild, n = t.nextSibling;
|
|
48007
48052
|
return e.$$click = (e) => {
|
|
48008
48053
|
e.stopPropagation(), !ce && f((e) => !e);
|
|
48009
48054
|
}, P(n, (() => {
|
|
@@ -48014,8 +48059,8 @@ function Z3(e) {
|
|
|
48014
48059
|
return $e(() => !te())() && u().length > 0;
|
|
48015
48060
|
},
|
|
48016
48061
|
get children() {
|
|
48017
|
-
return [
|
|
48018
|
-
var e =
|
|
48062
|
+
return [F3(), (() => {
|
|
48063
|
+
var e = I3(), t = e.firstChild;
|
|
48019
48064
|
return P(e, () => u().length, t), e;
|
|
48020
48065
|
})()];
|
|
48021
48066
|
}
|
|
@@ -48036,17 +48081,17 @@ function Z3(e) {
|
|
|
48036
48081
|
},
|
|
48037
48082
|
get fallback() {
|
|
48038
48083
|
return [
|
|
48039
|
-
|
|
48084
|
+
R3(),
|
|
48040
48085
|
(() => {
|
|
48041
|
-
var e =
|
|
48086
|
+
var e = z3(), t = e.firstChild;
|
|
48042
48087
|
return P(e, () => Math.ceil(h().msLeft / 1e3), t), e;
|
|
48043
48088
|
})(),
|
|
48044
48089
|
(() => {
|
|
48045
|
-
var e =
|
|
48090
|
+
var e = B3(), t = e.firstChild;
|
|
48046
48091
|
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;
|
|
48047
48092
|
})(),
|
|
48048
48093
|
(() => {
|
|
48049
|
-
var e =
|
|
48094
|
+
var e = O3();
|
|
48050
48095
|
return e.$$click = (e) => {
|
|
48051
48096
|
e.stopPropagation(), !ce && o2();
|
|
48052
48097
|
}, e;
|
|
@@ -48055,13 +48100,13 @@ function Z3(e) {
|
|
|
48055
48100
|
},
|
|
48056
48101
|
get children() {
|
|
48057
48102
|
return [
|
|
48058
|
-
|
|
48103
|
+
E3(),
|
|
48059
48104
|
(() => {
|
|
48060
|
-
var e =
|
|
48105
|
+
var e = D3();
|
|
48061
48106
|
return P(e, () => y(_())), e;
|
|
48062
48107
|
})(),
|
|
48063
48108
|
(() => {
|
|
48064
|
-
var e =
|
|
48109
|
+
var e = O3();
|
|
48065
48110
|
return e.$$click = () => {
|
|
48066
48111
|
ce || eO();
|
|
48067
48112
|
}, e;
|
|
@@ -48075,17 +48120,17 @@ function Z3(e) {
|
|
|
48075
48120
|
return d();
|
|
48076
48121
|
},
|
|
48077
48122
|
get children() {
|
|
48078
|
-
var e =
|
|
48123
|
+
var e = A3(), t = e.firstChild;
|
|
48079
48124
|
return P(e, j(M, {
|
|
48080
48125
|
get when() {
|
|
48081
48126
|
return u().length > 0;
|
|
48082
48127
|
},
|
|
48083
48128
|
get children() {
|
|
48084
|
-
return [
|
|
48129
|
+
return [k3(), j(We, {
|
|
48085
48130
|
get each() {
|
|
48086
48131
|
return u();
|
|
48087
48132
|
},
|
|
48088
|
-
children: (e) => j(
|
|
48133
|
+
children: (e) => j(Z3, {
|
|
48089
48134
|
agent: e,
|
|
48090
48135
|
review: !0,
|
|
48091
48136
|
onOpen: de
|
|
@@ -48097,14 +48142,14 @@ function Z3(e) {
|
|
|
48097
48142
|
return l().length > 0;
|
|
48098
48143
|
},
|
|
48099
48144
|
get fallback() {
|
|
48100
|
-
return
|
|
48145
|
+
return V3();
|
|
48101
48146
|
},
|
|
48102
48147
|
get children() {
|
|
48103
48148
|
return j(We, {
|
|
48104
48149
|
get each() {
|
|
48105
48150
|
return l();
|
|
48106
48151
|
},
|
|
48107
|
-
children: (e) => j(
|
|
48152
|
+
children: (e) => j(Z3, {
|
|
48108
48153
|
agent: e,
|
|
48109
48154
|
onOpen: de
|
|
48110
48155
|
})
|
|
@@ -48125,8 +48170,8 @@ function Z3(e) {
|
|
|
48125
48170
|
return t();
|
|
48126
48171
|
},
|
|
48127
48172
|
get children() {
|
|
48128
|
-
var e =
|
|
48129
|
-
return t.$$pointerdown = fe, P(e, j(
|
|
48173
|
+
var e = M3(), t = e.firstChild;
|
|
48174
|
+
return t.$$pointerdown = fe, P(e, j(w3, {
|
|
48130
48175
|
onGrab: () => n(!0),
|
|
48131
48176
|
onClose: () => n(!1),
|
|
48132
48177
|
get onHeaderPointerDown() {
|
|
@@ -48154,19 +48199,19 @@ function Z3(e) {
|
|
|
48154
48199
|
}
|
|
48155
48200
|
})];
|
|
48156
48201
|
}
|
|
48157
|
-
function
|
|
48202
|
+
function Z3(e) {
|
|
48158
48203
|
return (() => {
|
|
48159
|
-
var t =
|
|
48204
|
+
var t = H3(), n = t.firstChild, r = n.firstChild, i = r.nextSibling, a = i.nextSibling, o = n.nextSibling, s = o.firstChild, c = s.nextSibling;
|
|
48160
48205
|
return c.nextSibling, t.$$click = () => e.onOpen(e.agent.id), P(i, () => e.agent.identifier), P(a, () => e.agent.title), P(o, (() => {
|
|
48161
48206
|
var t = $e(() => !!e.review);
|
|
48162
48207
|
return () => t() ? "PR ready · needs review" : e.agent.stateName;
|
|
48163
|
-
})(), s), P(o, () => e.agent.delegateName, c), P(o, () =>
|
|
48208
|
+
})(), s), P(o, () => e.agent.delegateName, c), P(o, () => Q3(e.agent.updatedAt), null), D((t) => dt(r, "background", e.review ? "var(--color-warn)" : e.agent.stateColor)), t;
|
|
48164
48209
|
})();
|
|
48165
48210
|
}
|
|
48166
|
-
function
|
|
48211
|
+
function Q3(e) {
|
|
48167
48212
|
let t = Math.max(0, Math.floor((Date.now() - Date.parse(e)) / 1e3));
|
|
48168
48213
|
return t < 60 ? "now" : t < 3600 ? `${Math.floor(t / 60)}m` : t < 86400 ? `${Math.floor(t / 3600)}h` : `${Math.floor(t / 86400)}d`;
|
|
48169
48214
|
}
|
|
48170
48215
|
rt(["pointerdown", "click"]);
|
|
48171
48216
|
//#endregion
|
|
48172
|
-
export {
|
|
48217
|
+
export { U3 as init };
|