linear-grab 0.26.0 → 0.27.0
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/bin/linear-grab-bridge.mjs +859 -26
- package/bin/render-scan.global.js +6 -0
- package/bin/slop-scan.global.js +1 -1
- package/dist/index.global.js +9 -9
- package/dist/linear-grab.js +501 -466
- package/dist/render-scan.global.js +6 -0
- package/dist/slop-scan.global.js +1 -1
- package/package.json +2 -2
package/dist/linear-grab.js
CHANGED
|
@@ -47779,7 +47779,23 @@ function U3(e) {
|
|
|
47779
47779
|
function W3(e, t, n) {
|
|
47780
47780
|
return e.rules[t]?.severity ?? n;
|
|
47781
47781
|
}
|
|
47782
|
-
|
|
47782
|
+
var G3 = /^(HotReload|Head|AppRouterAnnouncer|HistoryUpdater|AppRouter|Router|ServerRoot|SegmentViewNode|SegmentViewStateNode|SegmentStateProvider|InnerLayoutRouter|OuterLayoutRouter|TemplateContext|RenderFromTemplateContext|ScrollAndFocusHandler|RedirectBoundary|RedirectErrorBoundary|LoadingBoundary|ErrorBoundary|ErrorBoundaryHandler|HTTPAccessFallbackBoundary|HTTPAccessFallbackErrorBoundary|DevRootHTTPAccessFallbackBoundary|__next_root_layout_boundary__|Preloads|NonIndex|ReplaySsrOnlyErrors|AppDevOverlay\w*|DevOverlay\w*|PseudoHtml\w*)$/;
|
|
47783
|
+
function K3(e) {
|
|
47784
|
+
return e?.length ? e.map((e) => {
|
|
47785
|
+
try {
|
|
47786
|
+
let t = new RegExp(e);
|
|
47787
|
+
return (e) => t.test(e);
|
|
47788
|
+
} catch {
|
|
47789
|
+
return (t) => t === e;
|
|
47790
|
+
}
|
|
47791
|
+
}) : [];
|
|
47792
|
+
}
|
|
47793
|
+
function q3(e, t) {
|
|
47794
|
+
if (e.length <= 2 || G3.test(e)) return !0;
|
|
47795
|
+
for (let n of t) if (n(e)) return !0;
|
|
47796
|
+
return !1;
|
|
47797
|
+
}
|
|
47798
|
+
function J3(e) {
|
|
47783
47799
|
let t = /* @__PURE__ */ new Map();
|
|
47784
47800
|
for (let n of e) for (let e of n.entries) {
|
|
47785
47801
|
let n = t.get(e.name);
|
|
@@ -47792,11 +47808,15 @@ function G3(e) {
|
|
|
47792
47808
|
}
|
|
47793
47809
|
return t;
|
|
47794
47810
|
}
|
|
47795
|
-
function
|
|
47796
|
-
let
|
|
47797
|
-
|
|
47811
|
+
function Y3(e, t, n) {
|
|
47812
|
+
let r = [], i = K3(n?.ignore), a = e.map((e) => ({
|
|
47813
|
+
...e,
|
|
47814
|
+
entries: e.entries.filter((e) => !q3(e.name, i)),
|
|
47815
|
+
mounts: Object.fromEntries(Object.entries(e.mounts).filter(([e]) => !q3(e, i)))
|
|
47816
|
+
})), o = J3(a), s = t.budgets;
|
|
47817
|
+
return i6(r, () => {
|
|
47798
47818
|
let e = [];
|
|
47799
|
-
for (let n of
|
|
47819
|
+
for (let n of o.values()) {
|
|
47800
47820
|
if (n.updates.length < 5 || !n.updates.every((e) => e.length === 0)) continue;
|
|
47801
47821
|
let r = n.updates.length;
|
|
47802
47822
|
e.push({
|
|
@@ -47815,9 +47835,9 @@ function K3(e, t) {
|
|
|
47815
47835
|
});
|
|
47816
47836
|
}
|
|
47817
47837
|
return e;
|
|
47818
|
-
}),
|
|
47838
|
+
}), i6(r, () => {
|
|
47819
47839
|
let e = [];
|
|
47820
|
-
for (let n of
|
|
47840
|
+
for (let n of o.values()) {
|
|
47821
47841
|
if (n.updates.length < 5 || !n.updates.every((e) => e.length > 0 && e.every((e) => /\((?:fn|ref)\)$/.test(e)))) continue;
|
|
47822
47842
|
let r = Array.from(new Set(n.updates.flat())), i = n.updates.length, a = r.join(", ");
|
|
47823
47843
|
e.push({
|
|
@@ -47836,81 +47856,81 @@ function K3(e, t) {
|
|
|
47836
47856
|
});
|
|
47837
47857
|
}
|
|
47838
47858
|
return e;
|
|
47839
|
-
}),
|
|
47840
|
-
let
|
|
47841
|
-
for (let
|
|
47842
|
-
let a =
|
|
47843
|
-
if (a < (
|
|
47844
|
-
let o =
|
|
47845
|
-
|
|
47859
|
+
}), i6(r, () => {
|
|
47860
|
+
let e = [], n = /Tooltip|Menu|Popover|Context|Dialog|Dropdown/i;
|
|
47861
|
+
for (let r of a) for (let i of Object.keys(r.mounts)) {
|
|
47862
|
+
let a = r.mounts[i];
|
|
47863
|
+
if (a < (n.test(i) ? 10 : 15)) continue;
|
|
47864
|
+
let o = r.entries.find((e) => e.name === i && e.el);
|
|
47865
|
+
e.push({
|
|
47846
47866
|
ruleId: "R4",
|
|
47847
47867
|
shape: "A",
|
|
47848
47868
|
severity: W3(t, "R4", "error"),
|
|
47849
47869
|
suspected: !0,
|
|
47850
|
-
description: `suspected R4 — ${a} ${
|
|
47851
|
-
component:
|
|
47870
|
+
description: `suspected R4 — ${a} ${i} instances mounted in one commit (per-row overlays should mount on intent)`,
|
|
47871
|
+
component: i,
|
|
47852
47872
|
source: null,
|
|
47853
47873
|
renders: a,
|
|
47854
47874
|
selfTime: 0,
|
|
47855
47875
|
changes: [],
|
|
47856
|
-
evidence: `${
|
|
47876
|
+
evidence: `${i} ×${a} mounted in one commit`,
|
|
47857
47877
|
el: o?.el ?? void 0
|
|
47858
47878
|
});
|
|
47859
47879
|
}
|
|
47860
|
-
return
|
|
47861
|
-
}),
|
|
47862
|
-
let
|
|
47863
|
-
for (let
|
|
47864
|
-
if (
|
|
47865
|
-
let
|
|
47866
|
-
|
|
47880
|
+
return e;
|
|
47881
|
+
}), i6(r, () => {
|
|
47882
|
+
let e = [];
|
|
47883
|
+
for (let t of a) {
|
|
47884
|
+
if (t.duration <= s.commitMs) continue;
|
|
47885
|
+
let n = [...t.entries].sort((e, t) => t.selfTime - e.selfTime).slice(0, 3).map((e) => `${e.name} ${U3(e.selfTime)}ms`).join(", "), r = U3(t.duration), i = t.duration > 16 ? ` · ~${Math.round(1e3 / t.duration)} FPS` : "";
|
|
47886
|
+
e.push({
|
|
47867
47887
|
ruleId: null,
|
|
47868
47888
|
shape: null,
|
|
47869
47889
|
severity: "error",
|
|
47870
47890
|
suspected: !1,
|
|
47871
|
-
description: `commit exceeded budget: ${r}ms of React work (> ${
|
|
47891
|
+
description: `commit exceeded budget: ${r}ms of React work (> ${s.commitMs}ms) — top: ${n}`,
|
|
47872
47892
|
component: null,
|
|
47873
47893
|
source: null,
|
|
47874
|
-
renders:
|
|
47894
|
+
renders: t.entries.length,
|
|
47875
47895
|
selfTime: r,
|
|
47876
47896
|
changes: [],
|
|
47877
|
-
evidence: `${r}ms commit · ${
|
|
47897
|
+
evidence: `${r}ms commit · ${t.entries.length} components${i}`
|
|
47878
47898
|
});
|
|
47879
47899
|
}
|
|
47880
|
-
return
|
|
47881
|
-
}),
|
|
47882
|
-
let
|
|
47883
|
-
for (let
|
|
47884
|
-
let
|
|
47885
|
-
for (let
|
|
47886
|
-
for (let [
|
|
47887
|
-
if (
|
|
47888
|
-
let
|
|
47900
|
+
return e;
|
|
47901
|
+
}), i6(r, () => {
|
|
47902
|
+
let e = [], t = /* @__PURE__ */ new Map();
|
|
47903
|
+
for (let e of a) {
|
|
47904
|
+
let n = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map();
|
|
47905
|
+
for (let t of e.entries) n.set(t.name, (n.get(t.name) ?? 0) + t.selfTime), t.el && !r.has(t.name) && r.set(t.name, t.el);
|
|
47906
|
+
for (let [e, i] of n) {
|
|
47907
|
+
if (i <= s.selfMs) continue;
|
|
47908
|
+
let n = t.get(e) ?? {
|
|
47889
47909
|
hits: 0,
|
|
47890
47910
|
worst: 0,
|
|
47891
47911
|
total: 0,
|
|
47892
|
-
el: r.get(
|
|
47912
|
+
el: r.get(e)
|
|
47893
47913
|
};
|
|
47894
|
-
|
|
47914
|
+
n.hits += 1, n.worst = Math.max(n.worst, i), n.total += i, n.el ||= r.get(e), t.set(e, n);
|
|
47895
47915
|
}
|
|
47896
47916
|
}
|
|
47897
|
-
for (let [
|
|
47917
|
+
for (let [n, r] of t) r.hits < 3 || e.push({
|
|
47898
47918
|
ruleId: null,
|
|
47899
47919
|
shape: null,
|
|
47900
47920
|
severity: "warn",
|
|
47901
47921
|
suspected: !1,
|
|
47902
|
-
description: `${
|
|
47903
|
-
component:
|
|
47922
|
+
description: `${n} is a hot component: ${r.hits} commits over the ${s.selfMs}ms self budget`,
|
|
47923
|
+
component: n,
|
|
47904
47924
|
source: null,
|
|
47905
47925
|
renders: r.hits,
|
|
47906
47926
|
selfTime: U3(r.total),
|
|
47907
47927
|
changes: [],
|
|
47908
|
-
evidence: `${r.hits} commits over ${
|
|
47928
|
+
evidence: `${r.hits} commits over ${s.selfMs}ms self (worst ${U3(r.worst)}ms)`,
|
|
47909
47929
|
el: r.el
|
|
47910
47930
|
});
|
|
47911
|
-
return
|
|
47912
|
-
}),
|
|
47913
|
-
let n = [], r =
|
|
47931
|
+
return e;
|
|
47932
|
+
}), i6(r, () => {
|
|
47933
|
+
let n = [], r = n6(e.filter((e) => e.nearInput).map((e) => e.at).sort((e, t) => e - t), 1e3);
|
|
47914
47934
|
return r >= 5 && n.push({
|
|
47915
47935
|
ruleId: "R10",
|
|
47916
47936
|
shape: "B",
|
|
@@ -47924,8 +47944,8 @@ function K3(e, t) {
|
|
|
47924
47944
|
changes: [],
|
|
47925
47945
|
evidence: `${r} commits within a 1s scroll/pointer window`
|
|
47926
47946
|
}), n;
|
|
47927
|
-
}),
|
|
47928
|
-
let n = [], { count: r, span: i } =
|
|
47947
|
+
}), i6(r, () => {
|
|
47948
|
+
let n = [], { count: r, span: i } = r6(e.filter((e) => !e.nearInput).map((e) => e.at).sort((e, t) => e - t), 300);
|
|
47929
47949
|
return r >= 8 && n.push({
|
|
47930
47950
|
ruleId: "R24",
|
|
47931
47951
|
shape: "B",
|
|
@@ -47939,10 +47959,10 @@ function K3(e, t) {
|
|
|
47939
47959
|
changes: [],
|
|
47940
47960
|
evidence: `${r} commits in a ${Math.round(i)}ms burst (no input)`
|
|
47941
47961
|
}), n;
|
|
47942
|
-
}),
|
|
47962
|
+
}), i6(r, () => {
|
|
47943
47963
|
let e = [];
|
|
47944
|
-
if (!
|
|
47945
|
-
for (let n of
|
|
47964
|
+
if (!e6()) return e;
|
|
47965
|
+
for (let n of o.values()) {
|
|
47946
47966
|
if (n.updates.length < 3) continue;
|
|
47947
47967
|
let r = n.el?.deref();
|
|
47948
47968
|
if (!r) continue;
|
|
@@ -47971,20 +47991,20 @@ function K3(e, t) {
|
|
|
47971
47991
|
});
|
|
47972
47992
|
}
|
|
47973
47993
|
return e;
|
|
47974
|
-
}),
|
|
47994
|
+
}), a6(r);
|
|
47975
47995
|
}
|
|
47976
|
-
var
|
|
47977
|
-
function
|
|
47996
|
+
var X3 = "#linear-grab-root, #claude-agent-glow-border, [id^=\"react-scan\"]";
|
|
47997
|
+
function Z3(e = typeof document < "u" ? document : {}) {
|
|
47978
47998
|
let t = [];
|
|
47979
|
-
return
|
|
47980
|
-
let t = [], n = Array.from(e.querySelectorAll("[role=\"slider\"], [role=\"progressbar\"], [role=\"switch\"]")), r =
|
|
47999
|
+
return i6(t, () => {
|
|
48000
|
+
let t = [], n = Array.from(e.querySelectorAll("[role=\"slider\"], [role=\"progressbar\"], [role=\"switch\"]")), r = t6(e);
|
|
47981
48001
|
for (let e of n) {
|
|
47982
|
-
if (e.closest(
|
|
48002
|
+
if (e.closest(X3)) continue;
|
|
47983
48003
|
if (r) try {
|
|
47984
48004
|
let t = e.getBoundingClientRect();
|
|
47985
48005
|
if (t.width < 2 || t.height < 2) continue;
|
|
47986
48006
|
} catch {}
|
|
47987
|
-
if (!
|
|
48007
|
+
if (!Q3(e)) continue;
|
|
47988
48008
|
let n = e.getAttribute("role") ?? "widget";
|
|
47989
48009
|
t.push({
|
|
47990
48010
|
ruleId: "R8",
|
|
@@ -47997,14 +48017,14 @@ function J3(e = typeof document < "u" ? document : {}) {
|
|
|
47997
48017
|
renders: 0,
|
|
47998
48018
|
selfTime: 0,
|
|
47999
48019
|
changes: [],
|
|
48000
|
-
evidence:
|
|
48020
|
+
evidence: $3(e),
|
|
48001
48021
|
el: typeof WeakRef < "u" ? new WeakRef(e) : void 0
|
|
48002
48022
|
});
|
|
48003
48023
|
}
|
|
48004
48024
|
return t;
|
|
48005
|
-
}),
|
|
48025
|
+
}), a6(t);
|
|
48006
48026
|
}
|
|
48007
|
-
function
|
|
48027
|
+
function Q3(e) {
|
|
48008
48028
|
if (e.hasAttribute("disabled") || e.getAttribute("aria-disabled") === "true") return !0;
|
|
48009
48029
|
let t = e;
|
|
48010
48030
|
for (let e = 0; t && e <= 3; e++) {
|
|
@@ -48015,17 +48035,17 @@ function Y3(e) {
|
|
|
48015
48035
|
}
|
|
48016
48036
|
return !1;
|
|
48017
48037
|
}
|
|
48018
|
-
function
|
|
48038
|
+
function $3(e) {
|
|
48019
48039
|
let t = typeof e.className == "string" && e.className ? "." + e.className.split(/\s+/).filter(Boolean).slice(0, 2).join(".") : "";
|
|
48020
48040
|
return `${e.tagName.toLowerCase()}${t}`;
|
|
48021
48041
|
}
|
|
48022
|
-
function
|
|
48042
|
+
function e6() {
|
|
48023
48043
|
return typeof document > "u" ? !1 : (document.documentElement?.getBoundingClientRect().width ?? 0) > 0;
|
|
48024
48044
|
}
|
|
48025
|
-
function
|
|
48045
|
+
function t6(e) {
|
|
48026
48046
|
return ((e.documentElement ?? (typeof document < "u" ? document.documentElement : null))?.getBoundingClientRect().width ?? 0) > 0;
|
|
48027
48047
|
}
|
|
48028
|
-
function
|
|
48048
|
+
function n6(e, t) {
|
|
48029
48049
|
let n = 0, r = 0;
|
|
48030
48050
|
for (let i = 0; i < e.length; i++) {
|
|
48031
48051
|
for (; e[i] - e[r] > t;) r++;
|
|
@@ -48033,7 +48053,7 @@ function $3(e, t) {
|
|
|
48033
48053
|
}
|
|
48034
48054
|
return n;
|
|
48035
48055
|
}
|
|
48036
|
-
function
|
|
48056
|
+
function r6(e, t) {
|
|
48037
48057
|
let n = 0, r = 0, i = 0;
|
|
48038
48058
|
for (let a = 0; a < e.length; a++) {
|
|
48039
48059
|
for (; e[a] - e[i] > t;) i++;
|
|
@@ -48045,12 +48065,12 @@ function e6(e, t) {
|
|
|
48045
48065
|
span: r
|
|
48046
48066
|
};
|
|
48047
48067
|
}
|
|
48048
|
-
function
|
|
48068
|
+
function i6(e, t) {
|
|
48049
48069
|
try {
|
|
48050
48070
|
e.push(...t());
|
|
48051
48071
|
} catch {}
|
|
48052
48072
|
}
|
|
48053
|
-
function
|
|
48073
|
+
function a6(e) {
|
|
48054
48074
|
let t = /* @__PURE__ */ new Map();
|
|
48055
48075
|
for (let n of e) {
|
|
48056
48076
|
let e = `${n.ruleId}|${n.component}|${n.changes.join()}|${n.description}`, r = t.get(e);
|
|
@@ -48058,7 +48078,7 @@ function n6(e) {
|
|
|
48058
48078
|
}
|
|
48059
48079
|
return [...t.values()];
|
|
48060
48080
|
}
|
|
48061
|
-
function
|
|
48081
|
+
function o6(e) {
|
|
48062
48082
|
let t = /* @__PURE__ */ new Map();
|
|
48063
48083
|
for (let n of e) {
|
|
48064
48084
|
let e = n.ruleId ?? "budget", r = t.get(e);
|
|
@@ -48084,7 +48104,7 @@ function r6(e) {
|
|
|
48084
48104
|
}
|
|
48085
48105
|
return a.join("\n");
|
|
48086
48106
|
}
|
|
48087
|
-
function
|
|
48107
|
+
function s6(e, t) {
|
|
48088
48108
|
let n = Array.from(new Set(e.map((e) => e.ruleId).filter((e) => !!e))).sort(), r = [];
|
|
48089
48109
|
for (let e of n) {
|
|
48090
48110
|
let n = t.rules[e];
|
|
@@ -48111,35 +48131,35 @@ function i6(e, t) {
|
|
|
48111
48131
|
"",
|
|
48112
48132
|
"---",
|
|
48113
48133
|
"",
|
|
48114
|
-
|
|
48134
|
+
o6(e)
|
|
48115
48135
|
].join("\n");
|
|
48116
48136
|
}
|
|
48117
|
-
var
|
|
48137
|
+
var c6 = "bippy-0.5.43", l6 = Object.defineProperty, u6 = Object.prototype.hasOwnProperty, d6 = () => {}, f6 = (e) => {
|
|
48118
48138
|
try {
|
|
48119
48139
|
Function.prototype.toString.call(e).indexOf("^_^") > -1 && setTimeout(() => {
|
|
48120
48140
|
throw Error("React is running in production mode, but dead code elimination has not been applied. Read how to correctly configure React for production: https://reactjs.org/link/perf-use-production-build");
|
|
48121
48141
|
});
|
|
48122
48142
|
} catch {}
|
|
48123
|
-
},
|
|
48143
|
+
}, p6 = (e = globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__) => !!(e && "getFiberRoots" in e), m6 = !1, h6, g6 = (e = globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__) => m6 ? !0 : (e && typeof e.inject == "function" && (h6 = e.inject.toString()), !!h6?.includes("(injected)")), _6 = /* @__PURE__ */ new Set(), v6 = /* @__PURE__ */ new Set(), y6 = (e) => {
|
|
48124
48144
|
let t = /* @__PURE__ */ new Map(), n = 0, r = {
|
|
48125
48145
|
_instrumentationIsActive: !1,
|
|
48126
|
-
_instrumentationSource:
|
|
48127
|
-
checkDCE:
|
|
48146
|
+
_instrumentationSource: c6,
|
|
48147
|
+
checkDCE: f6,
|
|
48128
48148
|
hasUnsupportedRendererAttached: !1,
|
|
48129
48149
|
inject(e) {
|
|
48130
48150
|
let i = ++n;
|
|
48131
|
-
return t.set(i, e),
|
|
48151
|
+
return t.set(i, e), v6.add(e), r._instrumentationIsActive || (r._instrumentationIsActive = !0, _6.forEach((e) => e())), i;
|
|
48132
48152
|
},
|
|
48133
|
-
on:
|
|
48134
|
-
onCommitFiberRoot:
|
|
48135
|
-
onCommitFiberUnmount:
|
|
48136
|
-
onPostCommitFiberRoot:
|
|
48153
|
+
on: d6,
|
|
48154
|
+
onCommitFiberRoot: d6,
|
|
48155
|
+
onCommitFiberUnmount: d6,
|
|
48156
|
+
onPostCommitFiberRoot: d6,
|
|
48137
48157
|
renderers: t,
|
|
48138
48158
|
supportsFiber: !0,
|
|
48139
48159
|
supportsFlight: !0
|
|
48140
48160
|
};
|
|
48141
48161
|
try {
|
|
48142
|
-
|
|
48162
|
+
l6(globalThis, "__REACT_DEVTOOLS_GLOBAL_HOOK__", {
|
|
48143
48163
|
configurable: !0,
|
|
48144
48164
|
enumerable: !0,
|
|
48145
48165
|
get() {
|
|
@@ -48149,13 +48169,13 @@ var a6 = "bippy-0.5.43", o6 = Object.defineProperty, s6 = Object.prototype.hasOw
|
|
|
48149
48169
|
if (t && typeof t == "object") {
|
|
48150
48170
|
let n = r.renderers;
|
|
48151
48171
|
r = t, n.size > 0 && (n.forEach((e, n) => {
|
|
48152
|
-
|
|
48153
|
-
}),
|
|
48172
|
+
v6.add(e), t.renderers.set(n, e);
|
|
48173
|
+
}), b6(e));
|
|
48154
48174
|
}
|
|
48155
48175
|
}
|
|
48156
48176
|
});
|
|
48157
48177
|
let t = window.hasOwnProperty, n = !1;
|
|
48158
|
-
|
|
48178
|
+
l6(window, "hasOwnProperty", {
|
|
48159
48179
|
configurable: !0,
|
|
48160
48180
|
value: function(...e) {
|
|
48161
48181
|
try {
|
|
@@ -48166,47 +48186,47 @@ var a6 = "bippy-0.5.43", o6 = Object.defineProperty, s6 = Object.prototype.hasOw
|
|
|
48166
48186
|
writable: !0
|
|
48167
48187
|
});
|
|
48168
48188
|
} catch {
|
|
48169
|
-
|
|
48189
|
+
b6(e);
|
|
48170
48190
|
}
|
|
48171
48191
|
return r;
|
|
48172
|
-
},
|
|
48173
|
-
e &&
|
|
48192
|
+
}, b6 = (e) => {
|
|
48193
|
+
e && _6.add(e);
|
|
48174
48194
|
try {
|
|
48175
48195
|
let t = globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__;
|
|
48176
48196
|
if (!t) return;
|
|
48177
48197
|
if (!t._instrumentationSource) {
|
|
48178
|
-
t.checkDCE =
|
|
48179
|
-
let e =
|
|
48180
|
-
if (e || (t.on =
|
|
48181
|
-
t._instrumentationIsActive = !0,
|
|
48198
|
+
t.checkDCE = f6, t.supportsFiber = !0, t.supportsFlight = !0, t.hasUnsupportedRendererAttached = !1, t._instrumentationSource = c6, t._instrumentationIsActive = !1;
|
|
48199
|
+
let e = p6(t);
|
|
48200
|
+
if (e || (t.on = d6), t.renderers.size) {
|
|
48201
|
+
t._instrumentationIsActive = !0, _6.forEach((e) => e());
|
|
48182
48202
|
return;
|
|
48183
48203
|
}
|
|
48184
|
-
let n = t.inject, r =
|
|
48185
|
-
r && !e && (
|
|
48204
|
+
let n = t.inject, r = g6(t);
|
|
48205
|
+
r && !e && (m6 = !0, t.inject({ scheduleRefresh() {} }) && (t._instrumentationIsActive = !0)), t.inject = (e) => {
|
|
48186
48206
|
let i = n(e);
|
|
48187
|
-
return
|
|
48207
|
+
return v6.add(e), r && t.renderers.set(i, e), t._instrumentationIsActive = !0, _6.forEach((e) => e()), i;
|
|
48188
48208
|
};
|
|
48189
48209
|
}
|
|
48190
|
-
(t.renderers.size || t._instrumentationIsActive ||
|
|
48210
|
+
(t.renderers.size || t._instrumentationIsActive || g6()) && e?.();
|
|
48191
48211
|
} catch {}
|
|
48192
|
-
},
|
|
48212
|
+
}, x6 = () => u6.call(globalThis, "__REACT_DEVTOOLS_GLOBAL_HOOK__"), S6 = (e) => x6() ? (b6(e), globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__) : y6(e), C6 = () => !!(typeof window < "u" && (window.document?.createElement || window.navigator?.product === "ReactNative"));
|
|
48193
48213
|
//#endregion
|
|
48194
48214
|
//#region node_modules/bippy/dist/install-hook-only.js
|
|
48195
48215
|
(() => {
|
|
48196
48216
|
try {
|
|
48197
|
-
|
|
48217
|
+
C6() && S6();
|
|
48198
48218
|
} catch {}
|
|
48199
48219
|
})();
|
|
48200
48220
|
//#endregion
|
|
48201
48221
|
//#region node_modules/bippy/dist/core.js
|
|
48202
|
-
var
|
|
48222
|
+
var w6 = 60111, T6 = "Symbol(react.concurrent_mode)", E6 = "Symbol(react.async_mode)", D6 = (e) => {
|
|
48203
48223
|
switch (e.tag) {
|
|
48204
48224
|
case 5:
|
|
48205
48225
|
case 26:
|
|
48206
48226
|
case 27: return !0;
|
|
48207
48227
|
default: return typeof e.type == "string";
|
|
48208
48228
|
}
|
|
48209
|
-
},
|
|
48229
|
+
}, O6 = (e) => {
|
|
48210
48230
|
switch (e.tag) {
|
|
48211
48231
|
case 1:
|
|
48212
48232
|
case 11:
|
|
@@ -48215,7 +48235,7 @@ var x6 = 60111, S6 = "Symbol(react.concurrent_mode)", C6 = "Symbol(react.async_m
|
|
|
48215
48235
|
case 15: return !0;
|
|
48216
48236
|
default: return !1;
|
|
48217
48237
|
}
|
|
48218
|
-
},
|
|
48238
|
+
}, k6 = (e) => {
|
|
48219
48239
|
let t = e.memoizedProps, n = e.alternate?.memoizedProps || {}, r = e.flags ?? e.effectTag ?? 0;
|
|
48220
48240
|
switch (e.tag) {
|
|
48221
48241
|
case 1:
|
|
@@ -48226,7 +48246,7 @@ var x6 = 60111, S6 = "Symbol(react.concurrent_mode)", C6 = "Symbol(react.async_m
|
|
|
48226
48246
|
case 15: return (r & 1) == 1;
|
|
48227
48247
|
default: return !e.alternate || n !== t || e.alternate.memoizedState !== e.memoizedState || e.alternate.ref !== e.ref;
|
|
48228
48248
|
}
|
|
48229
|
-
},
|
|
48249
|
+
}, A6 = (e) => {
|
|
48230
48250
|
switch (e.tag) {
|
|
48231
48251
|
case 18: return !0;
|
|
48232
48252
|
case 7:
|
|
@@ -48237,25 +48257,25 @@ var x6 = 60111, S6 = "Symbol(react.concurrent_mode)", C6 = "Symbol(react.async_m
|
|
|
48237
48257
|
default: {
|
|
48238
48258
|
let t = typeof e.type == "object" && e.type !== null ? e.type.$$typeof : e.type;
|
|
48239
48259
|
switch (typeof t == "symbol" ? t.toString() : t) {
|
|
48240
|
-
case
|
|
48241
|
-
case
|
|
48242
|
-
case
|
|
48260
|
+
case w6:
|
|
48261
|
+
case T6:
|
|
48262
|
+
case E6: return !0;
|
|
48243
48263
|
default: return !1;
|
|
48244
48264
|
}
|
|
48245
48265
|
}
|
|
48246
48266
|
}
|
|
48247
|
-
},
|
|
48248
|
-
let n =
|
|
48249
|
-
return n ||=
|
|
48267
|
+
}, j6 = (e, t = !1) => {
|
|
48268
|
+
let n = M6(e, D6, t);
|
|
48269
|
+
return n ||= M6(e, D6, !t), n;
|
|
48250
48270
|
};
|
|
48251
|
-
function
|
|
48271
|
+
function M6(e, t, n = !1) {
|
|
48252
48272
|
if (!e) return null;
|
|
48253
48273
|
let r = t(e);
|
|
48254
48274
|
if (r instanceof Promise) return (async () => {
|
|
48255
48275
|
if (await r === !0) return e;
|
|
48256
48276
|
let i = n ? e.return : e.child;
|
|
48257
48277
|
for (; i;) {
|
|
48258
|
-
let e = await
|
|
48278
|
+
let e = await P6(i, t, n);
|
|
48259
48279
|
if (e) return e;
|
|
48260
48280
|
i = n ? null : i.sibling;
|
|
48261
48281
|
}
|
|
@@ -48264,118 +48284,118 @@ function k6(e, t, n = !1) {
|
|
|
48264
48284
|
if (r === !0) return e;
|
|
48265
48285
|
let i = n ? e.return : e.child;
|
|
48266
48286
|
for (; i;) {
|
|
48267
|
-
let e =
|
|
48287
|
+
let e = N6(i, t, n);
|
|
48268
48288
|
if (e) return e;
|
|
48269
48289
|
i = n ? null : i.sibling;
|
|
48270
48290
|
}
|
|
48271
48291
|
return null;
|
|
48272
48292
|
}
|
|
48273
|
-
var
|
|
48293
|
+
var N6 = (e, t, n = !1) => {
|
|
48274
48294
|
if (!e) return null;
|
|
48275
48295
|
if (t(e) === !0) return e;
|
|
48276
48296
|
let r = n ? e.return : e.child;
|
|
48277
48297
|
for (; r;) {
|
|
48278
|
-
let e =
|
|
48298
|
+
let e = N6(r, t, n);
|
|
48279
48299
|
if (e) return e;
|
|
48280
48300
|
r = n ? null : r.sibling;
|
|
48281
48301
|
}
|
|
48282
48302
|
return null;
|
|
48283
|
-
},
|
|
48303
|
+
}, P6 = async (e, t, n = !1) => {
|
|
48284
48304
|
if (!e) return null;
|
|
48285
48305
|
if (await t(e) === !0) return e;
|
|
48286
48306
|
let r = n ? e.return : e.child;
|
|
48287
48307
|
for (; r;) {
|
|
48288
|
-
let e = await
|
|
48308
|
+
let e = await P6(r, t, n);
|
|
48289
48309
|
if (e) return e;
|
|
48290
48310
|
r = n ? null : r.sibling;
|
|
48291
48311
|
}
|
|
48292
48312
|
return null;
|
|
48293
|
-
},
|
|
48313
|
+
}, F6 = (e) => {
|
|
48294
48314
|
let t = e?.actualDuration ?? 0, n = t, r = e?.child ?? null;
|
|
48295
48315
|
for (; t > 0 && r != null;) n -= r.actualDuration ?? 0, r = r.sibling;
|
|
48296
48316
|
return {
|
|
48297
48317
|
selfTime: n,
|
|
48298
48318
|
totalTime: t
|
|
48299
48319
|
};
|
|
48300
|
-
},
|
|
48320
|
+
}, I6 = (e) => {
|
|
48301
48321
|
let t = e;
|
|
48302
|
-
return typeof t == "function" ? t : typeof t == "object" && t ?
|
|
48303
|
-
},
|
|
48322
|
+
return typeof t == "function" ? t : typeof t == "object" && t ? I6(t.type || t.render) : null;
|
|
48323
|
+
}, L6 = (e) => {
|
|
48304
48324
|
let t = e;
|
|
48305
48325
|
if (typeof t == "string") return t;
|
|
48306
48326
|
if (typeof t != "function" && !(typeof t == "object" && t)) return null;
|
|
48307
48327
|
let n = t.displayName || t.name || null;
|
|
48308
48328
|
if (n) return n;
|
|
48309
|
-
let r =
|
|
48329
|
+
let r = I6(t);
|
|
48310
48330
|
return r && (r.displayName || r.name) || null;
|
|
48311
|
-
},
|
|
48312
|
-
|
|
48313
|
-
},
|
|
48314
|
-
let t =
|
|
48315
|
-
return !t && e.alternate && (t =
|
|
48316
|
-
},
|
|
48331
|
+
}, R6 = 0, z6 = /* @__PURE__ */ new WeakMap(), B6 = (e, t = R6++) => {
|
|
48332
|
+
z6.set(e, t);
|
|
48333
|
+
}, V6 = (e) => {
|
|
48334
|
+
let t = z6.get(e);
|
|
48335
|
+
return !t && e.alternate && (t = z6.get(e.alternate)), t || (t = R6++, B6(e, t)), t;
|
|
48336
|
+
}, H6 = (e, t, n) => {
|
|
48317
48337
|
let r = t;
|
|
48318
48338
|
for (; r != null;) {
|
|
48319
|
-
if (
|
|
48339
|
+
if (z6.has(r) || V6(r), !A6(r) && k6(r) && e(r, "mount"), r.tag === 13) if (r.memoizedState !== null) {
|
|
48320
48340
|
let t = r.child, n = t ? t.sibling : null;
|
|
48321
48341
|
if (n) {
|
|
48322
48342
|
let t = n.child;
|
|
48323
|
-
t !== null &&
|
|
48343
|
+
t !== null && H6(e, t, !1);
|
|
48324
48344
|
}
|
|
48325
48345
|
} else {
|
|
48326
48346
|
let t = null;
|
|
48327
|
-
r.child !== null && (t = r.child.child), t !== null &&
|
|
48347
|
+
r.child !== null && (t = r.child.child), t !== null && H6(e, t, !1);
|
|
48328
48348
|
}
|
|
48329
|
-
else r.child != null &&
|
|
48349
|
+
else r.child != null && H6(e, r.child, !0);
|
|
48330
48350
|
r = n ? r.sibling : null;
|
|
48331
48351
|
}
|
|
48332
|
-
},
|
|
48333
|
-
if (
|
|
48334
|
-
|
|
48335
|
-
let i = t.tag === 13, a = !
|
|
48336
|
-
a &&
|
|
48352
|
+
}, U6 = (e, t, n, r) => {
|
|
48353
|
+
if (z6.has(t) || V6(t), !n) return;
|
|
48354
|
+
z6.has(n) || V6(n);
|
|
48355
|
+
let i = t.tag === 13, a = !A6(t);
|
|
48356
|
+
a && k6(t) && e(t, "update");
|
|
48337
48357
|
let o = i && n.memoizedState !== null, s = i && t.memoizedState !== null;
|
|
48338
48358
|
if (o && s) {
|
|
48339
48359
|
let r = t.child?.sibling ?? null, i = n.child?.sibling ?? null;
|
|
48340
|
-
r !== null && i !== null &&
|
|
48360
|
+
r !== null && i !== null && U6(e, r, i, t);
|
|
48341
48361
|
} else if (o && !s) {
|
|
48342
48362
|
let n = t.child;
|
|
48343
|
-
n !== null &&
|
|
48363
|
+
n !== null && H6(e, n, !0);
|
|
48344
48364
|
} else if (!o && s) {
|
|
48345
|
-
|
|
48365
|
+
G6(e, n);
|
|
48346
48366
|
let r = t.child?.sibling ?? null;
|
|
48347
|
-
r !== null &&
|
|
48367
|
+
r !== null && H6(e, r, !0);
|
|
48348
48368
|
} else if (t.child !== n.child) {
|
|
48349
48369
|
let n = t.child;
|
|
48350
48370
|
for (; n;) {
|
|
48351
48371
|
if (n.alternate) {
|
|
48352
48372
|
let i = n.alternate;
|
|
48353
|
-
|
|
48354
|
-
} else
|
|
48373
|
+
U6(e, n, i, a ? t : r);
|
|
48374
|
+
} else H6(e, n, !1);
|
|
48355
48375
|
n = n.sibling;
|
|
48356
48376
|
}
|
|
48357
48377
|
}
|
|
48358
|
-
},
|
|
48359
|
-
(t.tag === 3 || !
|
|
48360
|
-
},
|
|
48378
|
+
}, W6 = (e, t) => {
|
|
48379
|
+
(t.tag === 3 || !A6(t)) && e(t, "unmount");
|
|
48380
|
+
}, G6 = (e, t) => {
|
|
48361
48381
|
let n = t.tag === 13 && t.memoizedState !== null, r = t.child;
|
|
48362
|
-
for (n && (r = (t.child?.sibling ?? null)?.child ?? null); r !== null;) r.return !== null && (
|
|
48363
|
-
},
|
|
48364
|
-
let n = "current" in e ? e.current : e, r =
|
|
48382
|
+
for (n && (r = (t.child?.sibling ?? null)?.child ?? null); r !== null;) r.return !== null && (W6(e, r), G6(e, r)), r = r.sibling;
|
|
48383
|
+
}, K6 = 0, q6 = /* @__PURE__ */ new WeakMap(), J6 = (e, t) => {
|
|
48384
|
+
let n = "current" in e ? e.current : e, r = q6.get(e);
|
|
48365
48385
|
r || (r = {
|
|
48366
|
-
id:
|
|
48386
|
+
id: K6++,
|
|
48367
48387
|
prevFiber: null
|
|
48368
|
-
},
|
|
48388
|
+
}, q6.set(e, r));
|
|
48369
48389
|
let { prevFiber: i } = r;
|
|
48370
|
-
if (!n)
|
|
48390
|
+
if (!n) W6(t, n);
|
|
48371
48391
|
else if (i !== null) {
|
|
48372
48392
|
let e = i && i.memoizedState != null && i.memoizedState.element != null && i.memoizedState.isDehydrated !== !0, r = n.memoizedState != null && n.memoizedState.element != null && n.memoizedState.isDehydrated !== !0;
|
|
48373
|
-
!e && r ?
|
|
48374
|
-
} else
|
|
48393
|
+
!e && r ? H6(t, n, !1) : e && r ? U6(t, n, n.alternate, null) : e && !r && W6(t, n);
|
|
48394
|
+
} else H6(t, n, !0);
|
|
48375
48395
|
r.prevFiber = n;
|
|
48376
|
-
},
|
|
48377
|
-
let t =
|
|
48378
|
-
t._instrumentationSource = e.name ??
|
|
48396
|
+
}, Y6 = (e) => {
|
|
48397
|
+
let t = S6(e.onActive);
|
|
48398
|
+
t._instrumentationSource = e.name ?? c6;
|
|
48379
48399
|
let n = t.onCommitFiberRoot;
|
|
48380
48400
|
if (e.onCommitFiberRoot) {
|
|
48381
48401
|
let r = (t, i, a) => {
|
|
@@ -48398,52 +48418,52 @@ var A6 = (e, t, n = !1) => {
|
|
|
48398
48418
|
t.onPostCommitFiberRoot = n;
|
|
48399
48419
|
}
|
|
48400
48420
|
return t;
|
|
48401
|
-
},
|
|
48402
|
-
function
|
|
48403
|
-
|
|
48421
|
+
}, X6 = !1, Z6 = !1, Q6 = [], $6 = -Infinity, e8 = 200, t8 = 4e3, n8 = 100;
|
|
48422
|
+
function r8() {
|
|
48423
|
+
$6 = a8();
|
|
48404
48424
|
}
|
|
48405
|
-
var
|
|
48425
|
+
var i8 = [
|
|
48406
48426
|
"scroll",
|
|
48407
48427
|
"wheel",
|
|
48408
48428
|
"pointermove"
|
|
48409
48429
|
];
|
|
48410
|
-
function
|
|
48430
|
+
function a8() {
|
|
48411
48431
|
return typeof performance < "u" ? performance.now() : Date.now();
|
|
48412
48432
|
}
|
|
48413
|
-
function
|
|
48433
|
+
function o8(e, t) {
|
|
48414
48434
|
let n = e && typeof e == "object" ? e : {}, r = t && typeof t == "object" ? t : {}, i = /* @__PURE__ */ new Set([...Object.keys(n), ...Object.keys(r)]), a = [];
|
|
48415
48435
|
for (let e of i) {
|
|
48416
48436
|
if (e === "children") continue;
|
|
48417
48437
|
let t = n[e], i = r[e];
|
|
48418
|
-
Object.is(t, i) || (typeof t == "function" && typeof i == "function" ? a.push(`prop:${e}(fn)`) : t && i && typeof t == "object" && typeof i == "object" &&
|
|
48438
|
+
Object.is(t, i) || (typeof t == "function" && typeof i == "function" ? a.push(`prop:${e}(fn)`) : t && i && typeof t == "object" && typeof i == "object" && s8(t, i) ? a.push(`prop:${e}(ref)`) : a.push(`prop:${e}`));
|
|
48419
48439
|
}
|
|
48420
48440
|
return a;
|
|
48421
48441
|
}
|
|
48422
|
-
function
|
|
48442
|
+
function s8(e, t) {
|
|
48423
48443
|
let n = Object.keys(e), r = Object.keys(t);
|
|
48424
48444
|
if (n.length !== r.length) return !1;
|
|
48425
48445
|
for (let r of n) if (!Object.is(e[r], t[r])) return !1;
|
|
48426
48446
|
return !0;
|
|
48427
48447
|
}
|
|
48428
|
-
function
|
|
48448
|
+
function c8(e) {
|
|
48429
48449
|
let t = [], n = {};
|
|
48430
|
-
|
|
48431
|
-
if (r === "unmount" || !
|
|
48432
|
-
let i =
|
|
48450
|
+
J6(e, (e, r) => {
|
|
48451
|
+
if (r === "unmount" || !O6(e)) return;
|
|
48452
|
+
let i = L6(e.type) ?? "Anonymous";
|
|
48433
48453
|
r === "mount" && (n[i] = (n[i] ?? 0) + 1);
|
|
48434
48454
|
let a = 0;
|
|
48435
48455
|
try {
|
|
48436
|
-
a =
|
|
48456
|
+
a = F6(e).selfTime || 0;
|
|
48437
48457
|
} catch {}
|
|
48438
48458
|
let o = [];
|
|
48439
48459
|
if (r === "update" && e.alternate) try {
|
|
48440
|
-
o =
|
|
48460
|
+
o = o8(e.alternate.memoizedProps, e.memoizedProps);
|
|
48441
48461
|
} catch {
|
|
48442
48462
|
o = ["prop:(unknown)"];
|
|
48443
48463
|
}
|
|
48444
48464
|
let s = null;
|
|
48445
48465
|
try {
|
|
48446
|
-
let t =
|
|
48466
|
+
let t = j6(e)?.stateNode;
|
|
48447
48467
|
t && typeof WeakRef < "u" && t instanceof Element && (s = new WeakRef(t));
|
|
48448
48468
|
} catch {}
|
|
48449
48469
|
t.push({
|
|
@@ -48454,10 +48474,10 @@ function a8(e) {
|
|
|
48454
48474
|
el: s
|
|
48455
48475
|
});
|
|
48456
48476
|
}), t.sort((e, t) => t.selfTime - e.selfTime);
|
|
48457
|
-
let r = t.slice(0,
|
|
48477
|
+
let r = t.slice(0, e8), i = Math.max(0, t.length - e8), a = 0;
|
|
48458
48478
|
for (let e of t) a += e.selfTime;
|
|
48459
|
-
let o =
|
|
48460
|
-
|
|
48479
|
+
let o = a8(), s = o - $6 <= n8;
|
|
48480
|
+
Q6.push({
|
|
48461
48481
|
at: o,
|
|
48462
48482
|
duration: a,
|
|
48463
48483
|
entries: r,
|
|
@@ -48466,55 +48486,55 @@ function a8(e) {
|
|
|
48466
48486
|
nearInput: s
|
|
48467
48487
|
});
|
|
48468
48488
|
}
|
|
48469
|
-
function
|
|
48470
|
-
if (!
|
|
48471
|
-
|
|
48489
|
+
function l8() {
|
|
48490
|
+
if (!X6 && !(typeof window > "u")) {
|
|
48491
|
+
X6 = !0;
|
|
48472
48492
|
try {
|
|
48473
|
-
|
|
48474
|
-
if (
|
|
48475
|
-
|
|
48493
|
+
Y6({ onCommitFiberRoot: (e, t) => {
|
|
48494
|
+
if (Z6 && !(Q6.length >= t8)) try {
|
|
48495
|
+
c8(t);
|
|
48476
48496
|
} catch {}
|
|
48477
48497
|
} });
|
|
48478
48498
|
} catch {}
|
|
48479
48499
|
}
|
|
48480
48500
|
}
|
|
48481
|
-
function
|
|
48482
|
-
if (!(typeof window > "u") && !
|
|
48483
|
-
|
|
48501
|
+
function u8() {
|
|
48502
|
+
if (!(typeof window > "u") && !Z6) {
|
|
48503
|
+
Q6 = [], $6 = -Infinity, l8();
|
|
48484
48504
|
try {
|
|
48485
|
-
for (let e of
|
|
48505
|
+
for (let e of i8) window.addEventListener(e, r8, {
|
|
48486
48506
|
capture: !0,
|
|
48487
48507
|
passive: !0
|
|
48488
48508
|
});
|
|
48489
48509
|
} catch {}
|
|
48490
|
-
|
|
48510
|
+
Z6 = !0;
|
|
48491
48511
|
}
|
|
48492
48512
|
}
|
|
48493
|
-
function
|
|
48494
|
-
|
|
48513
|
+
function d8() {
|
|
48514
|
+
Z6 = !1;
|
|
48495
48515
|
try {
|
|
48496
|
-
for (let e of
|
|
48516
|
+
for (let e of i8) window.removeEventListener(e, r8, { capture: !0 });
|
|
48497
48517
|
} catch {}
|
|
48498
|
-
let e =
|
|
48499
|
-
return
|
|
48518
|
+
let e = Q6;
|
|
48519
|
+
return Q6 = [], $6 = -Infinity, e;
|
|
48500
48520
|
}
|
|
48501
|
-
function
|
|
48502
|
-
let e =
|
|
48503
|
-
return
|
|
48521
|
+
function f8() {
|
|
48522
|
+
let e = Q6;
|
|
48523
|
+
return Q6 = [], e;
|
|
48504
48524
|
}
|
|
48505
48525
|
//#endregion
|
|
48506
48526
|
//#region src/lib/renderRulebook.ts
|
|
48507
|
-
var
|
|
48527
|
+
var p8 = {
|
|
48508
48528
|
budgets: {
|
|
48509
48529
|
selfMs: 2,
|
|
48510
48530
|
commitMs: 8
|
|
48511
48531
|
},
|
|
48512
48532
|
rules: {}
|
|
48513
|
-
},
|
|
48514
|
-
function
|
|
48515
|
-
return
|
|
48533
|
+
}, m8 = /^###\s+(R\d+)\s*[·.\-–—:]?\s*`([^`]+)`.*?\((error|warn)\)\s*$/;
|
|
48534
|
+
function h8(e) {
|
|
48535
|
+
return m8.test(e.trim());
|
|
48516
48536
|
}
|
|
48517
|
-
function
|
|
48537
|
+
function g8(e, t) {
|
|
48518
48538
|
let n = e.split("\n"), r = RegExp(`^\\s*\\*\\*${t.source}[^*]*:\\*\\*\\s*(.*)$`, "i"), i = /^\s*\*\*[^*]+:\*\*/, a = 0;
|
|
48519
48539
|
for (; a < n.length && !r.test(n[a]); a++);
|
|
48520
48540
|
if (a >= n.length) return "";
|
|
@@ -48529,43 +48549,43 @@ function p8(e, t) {
|
|
|
48529
48549
|
if (e >= n.length || i.test(n[e]) || /^###\s|^##\s|^---\s*$/.test(n[e])) break;
|
|
48530
48550
|
}
|
|
48531
48551
|
}
|
|
48532
|
-
return
|
|
48552
|
+
return _8(s.join(" ")).trim();
|
|
48533
48553
|
}
|
|
48534
|
-
function
|
|
48554
|
+
function _8(e) {
|
|
48535
48555
|
return e.replace(/\*\*([^*]+)\*\*/g, "$1").replace(/__([^_]+)__/g, "$1").replace(/(^|[\s(])[*_]([^*_\s][^*_]*?)[*_]([\s.,;:)]|$)/g, "$1$2$3").replace(/\s{2,}/g, " ");
|
|
48536
48556
|
}
|
|
48537
|
-
function
|
|
48557
|
+
function v8(e) {
|
|
48538
48558
|
let t = e.match(/≤(\d+(?:\.\d+)?)ms self/), n = e.match(/commit >(\d+(?:\.\d+)?)ms/) ?? e.match(/>(\d+(?:\.\d+)?)ms of React work/);
|
|
48539
48559
|
return {
|
|
48540
|
-
selfMs: t ? parseFloat(t[1]) :
|
|
48541
|
-
commitMs: n ? parseFloat(n[1]) :
|
|
48560
|
+
selfMs: t ? parseFloat(t[1]) : p8.budgets.selfMs,
|
|
48561
|
+
commitMs: n ? parseFloat(n[1]) : p8.budgets.commitMs
|
|
48542
48562
|
};
|
|
48543
48563
|
}
|
|
48544
|
-
function
|
|
48545
|
-
let t =
|
|
48564
|
+
function y8(e) {
|
|
48565
|
+
let t = v8(e), n = {}, r = e.split("\n"), i = 0;
|
|
48546
48566
|
for (; i < r.length;) {
|
|
48547
48567
|
let e = r[i];
|
|
48548
|
-
if (!
|
|
48568
|
+
if (!h8(e)) {
|
|
48549
48569
|
i++;
|
|
48550
48570
|
continue;
|
|
48551
48571
|
}
|
|
48552
48572
|
let t = e.trim(), a = [], o = i + 1;
|
|
48553
48573
|
for (; o < r.length; o++) {
|
|
48554
48574
|
let e = r[o];
|
|
48555
|
-
if (
|
|
48575
|
+
if (h8(e) || /^##\s/.test(e.trim()) || /^---\s*$/.test(e.trim())) break;
|
|
48556
48576
|
a.push(e);
|
|
48557
48577
|
}
|
|
48558
48578
|
try {
|
|
48559
|
-
let e = t.match(
|
|
48579
|
+
let e = t.match(m8);
|
|
48560
48580
|
if (e) {
|
|
48561
48581
|
let [, t, r, i] = e, o = a.join("\n");
|
|
48562
48582
|
n[t] = {
|
|
48563
48583
|
id: t,
|
|
48564
48584
|
slug: r,
|
|
48565
48585
|
severity: i === "warn" ? "warn" : "error",
|
|
48566
|
-
ruleText:
|
|
48567
|
-
fixText:
|
|
48568
|
-
detectText:
|
|
48586
|
+
ruleText: g8(o, /Rule/),
|
|
48587
|
+
fixText: g8(o, /Fix/),
|
|
48588
|
+
detectText: g8(o, /Detect/)
|
|
48569
48589
|
};
|
|
48570
48590
|
}
|
|
48571
48591
|
} catch {}
|
|
@@ -48579,114 +48599,122 @@ function g8(e) {
|
|
|
48579
48599
|
//#endregion
|
|
48580
48600
|
//#region src/lib/renderScanStore.ts
|
|
48581
48601
|
Br();
|
|
48582
|
-
var
|
|
48583
|
-
function
|
|
48584
|
-
return
|
|
48585
|
-
}
|
|
48586
|
-
function
|
|
48587
|
-
|
|
48588
|
-
for (let e of
|
|
48589
|
-
}
|
|
48590
|
-
function
|
|
48591
|
-
|
|
48592
|
-
for (let e of
|
|
48593
|
-
return
|
|
48594
|
-
|
|
48595
|
-
for (let e of
|
|
48596
|
-
|
|
48602
|
+
var b8 = [], x8 = /* @__PURE__ */ new Set();
|
|
48603
|
+
function S8(e) {
|
|
48604
|
+
return x8.add(e), e(b8), () => void x8.delete(e);
|
|
48605
|
+
}
|
|
48606
|
+
function C8() {
|
|
48607
|
+
b8 = [];
|
|
48608
|
+
for (let e of x8) e(b8);
|
|
48609
|
+
}
|
|
48610
|
+
function w8(e, t) {
|
|
48611
|
+
b8 = [...e, ...b8.filter((e) => e.page !== t)];
|
|
48612
|
+
for (let e of x8) e(b8);
|
|
48613
|
+
return X8(e).then(() => {
|
|
48614
|
+
b8 = [...b8];
|
|
48615
|
+
for (let e of x8) e(b8);
|
|
48616
|
+
Z8(e);
|
|
48597
48617
|
}), e;
|
|
48598
48618
|
}
|
|
48599
|
-
var
|
|
48600
|
-
function
|
|
48601
|
-
return
|
|
48619
|
+
var T8 = /* @__PURE__ */ new Set(), E8 = !1, D8 = null;
|
|
48620
|
+
function O8(e) {
|
|
48621
|
+
return T8.add(e), e(E8, D8), () => void T8.delete(e);
|
|
48602
48622
|
}
|
|
48603
|
-
function
|
|
48604
|
-
if (!(
|
|
48605
|
-
|
|
48606
|
-
for (let e of
|
|
48623
|
+
function k8() {
|
|
48624
|
+
if (!(j8 || E8)) {
|
|
48625
|
+
u8(), E8 = !0, D8 = Date.now();
|
|
48626
|
+
for (let e of T8) e(!0, D8);
|
|
48607
48627
|
}
|
|
48608
48628
|
}
|
|
48609
|
-
async function
|
|
48610
|
-
if (!
|
|
48611
|
-
let e =
|
|
48612
|
-
|
|
48613
|
-
for (let e of
|
|
48614
|
-
let t = await
|
|
48615
|
-
return
|
|
48629
|
+
async function A8() {
|
|
48630
|
+
if (!E8) return [];
|
|
48631
|
+
let e = d8();
|
|
48632
|
+
E8 = !1, D8 = null;
|
|
48633
|
+
for (let e of T8) e(!1, null);
|
|
48634
|
+
let t = await K8(), n = location.pathname;
|
|
48635
|
+
return w8(Y3(e, t, { ignore: await J8() }).map((e) => ({
|
|
48616
48636
|
...e,
|
|
48617
48637
|
page: n
|
|
48618
48638
|
})), n);
|
|
48619
48639
|
}
|
|
48620
|
-
var
|
|
48640
|
+
var j8 = !1;
|
|
48621
48641
|
try {
|
|
48622
|
-
|
|
48642
|
+
j8 = localStorage.getItem("linear-grab:render-live") === "1";
|
|
48623
48643
|
} catch {}
|
|
48624
|
-
var
|
|
48625
|
-
function
|
|
48626
|
-
return
|
|
48627
|
-
}
|
|
48628
|
-
var
|
|
48629
|
-
function
|
|
48630
|
-
if (e !==
|
|
48631
|
-
|
|
48644
|
+
var M8 = /* @__PURE__ */ new Set();
|
|
48645
|
+
function N8(e) {
|
|
48646
|
+
return M8.add(e), e(j8), () => void M8.delete(e);
|
|
48647
|
+
}
|
|
48648
|
+
var P8 = 3e3, F8 = 4e3, I8 = null, L8 = [], R8 = "";
|
|
48649
|
+
function z8(e) {
|
|
48650
|
+
if (e !== j8 && !(e && E8)) {
|
|
48651
|
+
j8 = e;
|
|
48632
48652
|
try {
|
|
48633
48653
|
localStorage.setItem("linear-grab:render-live", e ? "1" : "0");
|
|
48634
48654
|
} catch {}
|
|
48635
|
-
for (let t of
|
|
48636
|
-
e ? (
|
|
48637
|
-
|
|
48655
|
+
for (let t of M8) t(e);
|
|
48656
|
+
e ? (u8(), L8 = [], R8 = location.pathname, I8 = setInterval(() => void B8(!1), P8)) : (I8 && clearInterval(I8), I8 = null, B8(!0).finally(() => {
|
|
48657
|
+
d8(), L8 = [];
|
|
48638
48658
|
}));
|
|
48639
48659
|
}
|
|
48640
48660
|
}
|
|
48641
|
-
async function
|
|
48661
|
+
async function B8(e) {
|
|
48642
48662
|
try {
|
|
48643
48663
|
let t = location.pathname;
|
|
48644
|
-
if (t !==
|
|
48645
|
-
let e =
|
|
48646
|
-
|
|
48647
|
-
|
|
48648
|
-
for (let e of
|
|
48649
|
-
|
|
48650
|
-
}),
|
|
48651
|
-
}
|
|
48652
|
-
|
|
48653
|
-
let n = await
|
|
48664
|
+
if (t !== R8) {
|
|
48665
|
+
let e = b8.filter((e) => e.page === R8);
|
|
48666
|
+
X8(e).then(() => {
|
|
48667
|
+
b8 = [...b8];
|
|
48668
|
+
for (let e of x8) e(b8);
|
|
48669
|
+
Z8(e);
|
|
48670
|
+
}), L8 = [], R8 = t;
|
|
48671
|
+
}
|
|
48672
|
+
L8.push(...f8()), L8.length > F8 && L8.splice(0, L8.length - F8);
|
|
48673
|
+
let n = await K8(), r = Y3(L8, n, { ignore: await J8() }).map((e) => ({
|
|
48654
48674
|
...e,
|
|
48655
48675
|
page: t
|
|
48656
48676
|
}));
|
|
48657
|
-
|
|
48658
|
-
for (let e of
|
|
48677
|
+
b8 = [...r, ...b8.filter((e) => e.page !== t)];
|
|
48678
|
+
for (let e of x8) e(b8);
|
|
48659
48679
|
if (e) {
|
|
48660
|
-
await
|
|
48661
|
-
for (let e of
|
|
48662
|
-
|
|
48680
|
+
await X8(r), b8 = [...b8];
|
|
48681
|
+
for (let e of x8) e(b8);
|
|
48682
|
+
Z8(r);
|
|
48663
48683
|
}
|
|
48664
48684
|
} catch {}
|
|
48665
48685
|
}
|
|
48666
|
-
function
|
|
48667
|
-
typeof window > "u" || !
|
|
48686
|
+
function V8() {
|
|
48687
|
+
typeof window > "u" || !j8 || I8 || (u8(), L8 = [], R8 = location.pathname, I8 = setInterval(() => void B8(!1), P8));
|
|
48668
48688
|
}
|
|
48669
|
-
function
|
|
48689
|
+
function H8() {
|
|
48670
48690
|
let e = location.pathname;
|
|
48671
|
-
return
|
|
48691
|
+
return w8(Z3(document).map((t) => ({
|
|
48672
48692
|
...t,
|
|
48673
48693
|
page: e
|
|
48674
48694
|
})), e);
|
|
48675
48695
|
}
|
|
48676
|
-
var
|
|
48677
|
-
async function
|
|
48678
|
-
if (
|
|
48679
|
-
let e =
|
|
48696
|
+
var U8 = 5 * 6e4, W8 = null, G8 = 0;
|
|
48697
|
+
async function K8() {
|
|
48698
|
+
if (W8 && Date.now() - G8 < U8) return W8;
|
|
48699
|
+
let e = p8;
|
|
48680
48700
|
try {
|
|
48681
48701
|
let t = await YO(), n = await (await fetch(`${t}/scan/rulebook`)).json();
|
|
48682
|
-
n.ok && n.text && (e =
|
|
48702
|
+
n.ok && n.text && (e = y8(n.text));
|
|
48683
48703
|
} catch {}
|
|
48684
|
-
return e = await
|
|
48704
|
+
return e = await Y8(e), W8 = e, G8 = Date.now(), e;
|
|
48705
|
+
}
|
|
48706
|
+
function q8() {
|
|
48707
|
+
return W8;
|
|
48685
48708
|
}
|
|
48686
|
-
function
|
|
48687
|
-
|
|
48709
|
+
async function J8() {
|
|
48710
|
+
try {
|
|
48711
|
+
let e = await Tr();
|
|
48712
|
+
return Array.isArray(e.renderIgnore) ? e.renderIgnore : void 0;
|
|
48713
|
+
} catch {
|
|
48714
|
+
return;
|
|
48715
|
+
}
|
|
48688
48716
|
}
|
|
48689
|
-
async function
|
|
48717
|
+
async function Y8(e) {
|
|
48690
48718
|
try {
|
|
48691
48719
|
let t = (await Tr()).renderBudgets;
|
|
48692
48720
|
if (t && (t.selfMs != null || t.commitMs != null)) return {
|
|
@@ -48699,7 +48727,7 @@ async function G8(e) {
|
|
|
48699
48727
|
} catch {}
|
|
48700
48728
|
return e;
|
|
48701
48729
|
}
|
|
48702
|
-
async function
|
|
48730
|
+
async function X8(e) {
|
|
48703
48731
|
let t = null;
|
|
48704
48732
|
try {
|
|
48705
48733
|
t = (await Promise.resolve().then(() => (RZ(), AZ))).getGlobalApi() ?? null;
|
|
@@ -48728,7 +48756,7 @@ async function K8(e) {
|
|
|
48728
48756
|
if (!(!n && !a)) for (let e of i) !e.component && n && (e.component = n), a && (e.source = a);
|
|
48729
48757
|
}
|
|
48730
48758
|
}
|
|
48731
|
-
function
|
|
48759
|
+
function Z8(e) {
|
|
48732
48760
|
if (e.length === 0) return;
|
|
48733
48761
|
let t = Date.now(), n = e.slice(0, 200).map(({ el: e, ...n }) => ({
|
|
48734
48762
|
kind: "render-scan",
|
|
@@ -48744,8 +48772,8 @@ function q8(e) {
|
|
|
48744
48772
|
}
|
|
48745
48773
|
//#endregion
|
|
48746
48774
|
//#region src/panel/views/RendersView.tsx
|
|
48747
|
-
var
|
|
48748
|
-
function
|
|
48775
|
+
var Q8 = /*#__PURE__*/ N("<span class=\"text-text-faint font-normal tabular-nums\"> · <!> pages"), $8 = /*#__PURE__*/ N("<span class=\"bg-danger size-1.5 shrink-0 animate-pulse rounded-full\"aria-hidden>"), e5 = /*#__PURE__*/ N("<span class=\"text-danger inline-block min-w-[4ch] text-right text-[10.5px] font-medium tabular-nums\">"), t5 = /*#__PURE__*/ N("<svg width=13 height=13 viewBox=\"0 0 16 16\"aria-hidden><rect x=3.5 y=3.5 width=9 height=9 rx=1.5 fill=currentColor>"), n5 = /*#__PURE__*/ N("<svg width=13 height=13 viewBox=\"0 0 16 16\"aria-hidden><rect x=4 y=3.5 width=3 height=9 rx=1 fill=currentColor></rect><rect x=9 y=3.5 width=3 height=9 rx=1 fill=currentColor>"), r5 = /*#__PURE__*/ N("<span class=\"bg-success absolute -top-0.5 -right-0.5 size-1.5 animate-pulse rounded-full\"aria-hidden>"), i5 = /*#__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=\"M5.5 3 6.5 1.5h3L10.5 3h2A1.5 1.5 0 0 1 14 4.5v7A1.5 1.5 0 0 1 12.5 13h-9A1.5 1.5 0 0 1 2 11.5v-7A1.5 1.5 0 0 1 3.5 3h2Z\"></path><circle cx=8 cy=7.75 r=2.25>"), a5 = /*#__PURE__*/ N("<span class=\"text-success text-[12px] leading-none\">✓"), o5 = /*#__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\">"), s5 = /*#__PURE__*/ N("<p class=\"text-text-faint px-1 text-[10.5px] leading-snug\">Recording commits… interact with the page."), c5 = /*#__PURE__*/ N("<p class=\"text-text-faint px-1 text-[10.5px] leading-snug\">Live render scan — findings update as you interact and navigate."), l5 = /*#__PURE__*/ N("<div class=\"flex items-center gap-1 px-1\"><button class=\"border-border cursor-pointer rounded-full border px-2 py-0.5 text-[10px] font-medium tabular-nums\"> errors</button><button class=\"border-border cursor-pointer rounded-full border px-2 py-0.5 text-[10px] font-medium tabular-nums\"> warns"), u5 = /*#__PURE__*/ N("<div class=\"flex max-h-[28rem] flex-col gap-1.5 overflow-y-auto pr-3 pl-2\">"), d5 = /*#__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 flex-col gap-1 px-1\"><div class=\"flex items-center justify-between gap-2\"><p class=\"text-text min-w-0 truncate text-[12.5px] font-semibold\">Renders</p><div class=\"flex shrink-0 items-center gap-1\"></div></div><p class=\"text-text-faint text-[10.5px] leading-snug\">Commits graded against React-rerender-primitives.md — record then interact, go live, or snapshot the DOM. Accumulates per page."), f5 = /*#__PURE__*/ N("<svg width=13 height=13 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 aria-hidden><circle cx=8 cy=8 r=6></circle><circle cx=8 cy=8 r=2.25 fill=currentColor stroke=none>"), p5 = /*#__PURE__*/ N("<svg width=13 height=13 viewBox=\"0 0 16 16\"aria-hidden><path d=\"M5 3.3v9.4a.5.5 0 0 0 .77.42l7.1-4.7a.5.5 0 0 0 0-.84l-7.1-4.7A.5.5 0 0 0 5 3.3Z\"fill=currentColor>"), m5 = /*#__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\">"), h5 = /*#__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\">"), g5 = /*#__PURE__*/ N("<div class=\"border-border flex flex-col gap-1 border-t px-2 py-1.5\">"), _5 = /*#__PURE__*/ N("<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 py-1.5 text-left\"><span class=\"size-1.5 shrink-0 rounded-full\"aria-hidden></span><span class=\"text-accent min-w-0 truncate font-mono text-[11.5px]\"></span><span class=\"text-text-faint ml-auto shrink-0 text-[10.5px] tabular-nums\">×</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\">"), v5 = /*#__PURE__*/ N("<span class=\"text-accent font-mono\"> "), y5 = /*#__PURE__*/ N("<span class=\"text-text-faint tabular-nums\"> ×"), b5 = /*#__PURE__*/ N("<span class=\"flex flex-wrap gap-1\">"), x5 = /*#__PURE__*/ N("<span class=\"text-text-dim font-mono\"> · "), S5 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-0.5 rounded px-1 py-0.5 text-left\"><span class=\"text-text-dim text-[10.5px] leading-snug\"></span><span class=\"text-text-faint text-[10px] leading-snug tabular-nums\">"), C5 = /*#__PURE__*/ N("<span class=\"bg-surface-2 text-text-dim rounded px-1 font-mono text-[9.5px] leading-relaxed\">");
|
|
48776
|
+
function w5(e) {
|
|
48749
48777
|
let t = e.el?.deref();
|
|
48750
48778
|
if (!(t instanceof HTMLElement) || !t.isConnected) return !1;
|
|
48751
48779
|
t.scrollIntoView({
|
|
@@ -48757,45 +48785,45 @@ function b5(e) {
|
|
|
48757
48785
|
t.style.outline = n, t.style.outlineOffset = r;
|
|
48758
48786
|
}, 1400), !0;
|
|
48759
48787
|
}
|
|
48760
|
-
function
|
|
48788
|
+
function T5(e) {
|
|
48761
48789
|
let t = Math.max(0, Math.floor(e / 1e3));
|
|
48762
48790
|
return `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
|
|
48763
48791
|
}
|
|
48764
|
-
function
|
|
48792
|
+
function E5(e) {
|
|
48765
48793
|
return e.replace(/^prop:/, "");
|
|
48766
48794
|
}
|
|
48767
|
-
function
|
|
48795
|
+
function D5() {
|
|
48768
48796
|
let [e, t] = T([]);
|
|
48769
|
-
ae(
|
|
48797
|
+
ae(S8(t));
|
|
48770
48798
|
let [n, r] = T(!1), [i, a] = T(null), [o, s] = T(Date.now()), c = null, l = () => {
|
|
48771
48799
|
c && clearInterval(c), c = null;
|
|
48772
48800
|
};
|
|
48773
|
-
ae(l), ae(
|
|
48801
|
+
ae(l), ae(O8((e, t) => {
|
|
48774
48802
|
r(e), a(t), e ? (s(Date.now()), c ||= setInterval(() => s(Date.now()), 500)) : l();
|
|
48775
48803
|
}));
|
|
48776
48804
|
let [u, d] = T(!1);
|
|
48777
|
-
ae(
|
|
48778
|
-
let [f, p] = T(
|
|
48779
|
-
|
|
48805
|
+
ae(N8(d));
|
|
48806
|
+
let [f, p] = T(q8());
|
|
48807
|
+
K8().then(p);
|
|
48780
48808
|
let [m, h] = T(null), [g, _] = T(null), [v, y] = T(!0), [b, x] = T(!0), [S, C] = T(!1), [w, E] = T(!1), [O, k] = T(!1), ee = async () => {
|
|
48781
48809
|
if (h(null), n()) try {
|
|
48782
|
-
let e = await
|
|
48783
|
-
p(
|
|
48810
|
+
let e = await A8();
|
|
48811
|
+
p(q8()), _(null), e.length === 0 && h("No re-render anti-patterns caught — interact more (scroll, open menus, type) between record and stop.");
|
|
48784
48812
|
} catch (e) {
|
|
48785
48813
|
h(e instanceof Error ? e.message : String(e));
|
|
48786
48814
|
}
|
|
48787
|
-
else
|
|
48815
|
+
else k8();
|
|
48788
48816
|
}, te = () => {
|
|
48789
48817
|
h(null), C(!0);
|
|
48790
48818
|
try {
|
|
48791
|
-
|
|
48819
|
+
H8(), _(null);
|
|
48792
48820
|
} catch (e) {
|
|
48793
48821
|
h(e instanceof Error ? e.message : String(e));
|
|
48794
48822
|
} finally {
|
|
48795
48823
|
C(!1);
|
|
48796
48824
|
}
|
|
48797
48825
|
}, A = () => {
|
|
48798
|
-
|
|
48826
|
+
C8(), _(null);
|
|
48799
48827
|
}, ne = () => new Set(e().map((e) => e.page)).size, re = () => e().filter((e) => e.severity === "error" ? v() : b()), ie = () => e().filter((e) => e.severity === "error").reduce((e, t) => e + (t.count ?? 1), 0), oe = () => e().reduce((e, t) => e + (t.count ?? 1), 0) - ie(), se = () => {
|
|
48800
48828
|
let e = /* @__PURE__ */ new Map();
|
|
48801
48829
|
for (let t of re()) {
|
|
@@ -48808,19 +48836,19 @@ function C5() {
|
|
|
48808
48836
|
return t ? `${e} · ${t}` : e;
|
|
48809
48837
|
}, le = async () => {
|
|
48810
48838
|
try {
|
|
48811
|
-
await navigator.clipboard.writeText(
|
|
48839
|
+
await navigator.clipboard.writeText(o6(re())), E(!0), setTimeout(() => E(!1), 1600);
|
|
48812
48840
|
} catch {
|
|
48813
48841
|
h("Clipboard was blocked — click Copy again.");
|
|
48814
48842
|
}
|
|
48815
48843
|
}, ue = async () => {
|
|
48816
48844
|
try {
|
|
48817
|
-
await navigator.clipboard.writeText(
|
|
48845
|
+
await navigator.clipboard.writeText(s6(re(), await K8())), k(!0), setTimeout(() => k(!1), 1600);
|
|
48818
48846
|
} catch {
|
|
48819
48847
|
h("Clipboard was blocked — click Copy again.");
|
|
48820
48848
|
}
|
|
48821
48849
|
};
|
|
48822
48850
|
return (() => {
|
|
48823
|
-
var t =
|
|
48851
|
+
var t = d5(), r = t.firstChild.firstChild.firstChild;
|
|
48824
48852
|
r.firstChild;
|
|
48825
48853
|
var a = r.nextSibling;
|
|
48826
48854
|
return P(r, j(M, {
|
|
@@ -48828,7 +48856,7 @@ function C5() {
|
|
|
48828
48856
|
return ne() > 1;
|
|
48829
48857
|
},
|
|
48830
48858
|
get children() {
|
|
48831
|
-
var e =
|
|
48859
|
+
var e = Q8(), t = e.firstChild.nextSibling;
|
|
48832
48860
|
return t.nextSibling, P(e, ne, t), e;
|
|
48833
48861
|
}
|
|
48834
48862
|
}), null), P(a, j(M, {
|
|
@@ -48836,9 +48864,9 @@ function C5() {
|
|
|
48836
48864
|
return n();
|
|
48837
48865
|
},
|
|
48838
48866
|
get children() {
|
|
48839
|
-
return [
|
|
48840
|
-
var e =
|
|
48841
|
-
return P(e, () =>
|
|
48867
|
+
return [$8(), (() => {
|
|
48868
|
+
var e = e5();
|
|
48869
|
+
return P(e, () => T5(o() - (i() ?? o()))), e;
|
|
48842
48870
|
})()];
|
|
48843
48871
|
}
|
|
48844
48872
|
}), null), P(a, j(q, {
|
|
@@ -48846,6 +48874,7 @@ function C5() {
|
|
|
48846
48874
|
get variant() {
|
|
48847
48875
|
return n() ? "danger" : "ghost";
|
|
48848
48876
|
},
|
|
48877
|
+
"data-tip-pos": "bottom left",
|
|
48849
48878
|
get disabled() {
|
|
48850
48879
|
return u();
|
|
48851
48880
|
},
|
|
@@ -48862,16 +48891,17 @@ function C5() {
|
|
|
48862
48891
|
return n();
|
|
48863
48892
|
},
|
|
48864
48893
|
get fallback() {
|
|
48865
|
-
return
|
|
48894
|
+
return f5();
|
|
48866
48895
|
},
|
|
48867
48896
|
get children() {
|
|
48868
|
-
return
|
|
48897
|
+
return t5();
|
|
48869
48898
|
}
|
|
48870
48899
|
});
|
|
48871
48900
|
}
|
|
48872
48901
|
}), null), P(a, j(q, {
|
|
48873
48902
|
class: "relative size-7 px-0",
|
|
48874
48903
|
variant: "ghost",
|
|
48904
|
+
"data-tip-pos": "bottom left",
|
|
48875
48905
|
get disabled() {
|
|
48876
48906
|
return n();
|
|
48877
48907
|
},
|
|
@@ -48879,30 +48909,31 @@ function C5() {
|
|
|
48879
48909
|
return u() ? "Pause live render scan" : "Live render scan — findings update as you browse";
|
|
48880
48910
|
},
|
|
48881
48911
|
"aria-label": "Toggle live render scan",
|
|
48882
|
-
onClick: () =>
|
|
48912
|
+
onClick: () => z8(!u()),
|
|
48883
48913
|
get children() {
|
|
48884
48914
|
return [j(M, {
|
|
48885
48915
|
get when() {
|
|
48886
48916
|
return u();
|
|
48887
48917
|
},
|
|
48888
48918
|
get fallback() {
|
|
48889
|
-
return
|
|
48919
|
+
return p5();
|
|
48890
48920
|
},
|
|
48891
48921
|
get children() {
|
|
48892
|
-
return
|
|
48922
|
+
return n5();
|
|
48893
48923
|
}
|
|
48894
48924
|
}), j(M, {
|
|
48895
48925
|
get when() {
|
|
48896
48926
|
return u();
|
|
48897
48927
|
},
|
|
48898
48928
|
get children() {
|
|
48899
|
-
return
|
|
48929
|
+
return r5();
|
|
48900
48930
|
}
|
|
48901
48931
|
})];
|
|
48902
48932
|
}
|
|
48903
48933
|
}), null), P(a, j(q, {
|
|
48904
48934
|
class: "size-7 px-0",
|
|
48905
48935
|
variant: "ghost",
|
|
48936
|
+
"data-tip-pos": "bottom left",
|
|
48906
48937
|
get loading() {
|
|
48907
48938
|
return S();
|
|
48908
48939
|
},
|
|
@@ -48910,11 +48941,12 @@ function C5() {
|
|
|
48910
48941
|
"aria-label": "Snapshot scan",
|
|
48911
48942
|
onClick: te,
|
|
48912
48943
|
get children() {
|
|
48913
|
-
return
|
|
48944
|
+
return i5();
|
|
48914
48945
|
}
|
|
48915
48946
|
}), null), P(a, j(q, {
|
|
48916
48947
|
class: "size-7 px-0",
|
|
48917
48948
|
variant: "ghost",
|
|
48949
|
+
"data-tip-pos": "bottom left",
|
|
48918
48950
|
get title() {
|
|
48919
48951
|
return O() ? "Copied!" : "Copy AI fix prompt";
|
|
48920
48952
|
},
|
|
@@ -48926,16 +48958,17 @@ function C5() {
|
|
|
48926
48958
|
return O();
|
|
48927
48959
|
},
|
|
48928
48960
|
get fallback() {
|
|
48929
|
-
return
|
|
48961
|
+
return m5();
|
|
48930
48962
|
},
|
|
48931
48963
|
get children() {
|
|
48932
|
-
return
|
|
48964
|
+
return a5();
|
|
48933
48965
|
}
|
|
48934
48966
|
});
|
|
48935
48967
|
}
|
|
48936
48968
|
}), null), P(a, j(q, {
|
|
48937
48969
|
class: "size-7 px-0",
|
|
48938
48970
|
variant: "ghost",
|
|
48971
|
+
"data-tip-pos": "bottom left",
|
|
48939
48972
|
get title() {
|
|
48940
48973
|
return w() ? "Copied!" : "Copy report";
|
|
48941
48974
|
},
|
|
@@ -48947,21 +48980,22 @@ function C5() {
|
|
|
48947
48980
|
return w();
|
|
48948
48981
|
},
|
|
48949
48982
|
get fallback() {
|
|
48950
|
-
return
|
|
48983
|
+
return h5();
|
|
48951
48984
|
},
|
|
48952
48985
|
get children() {
|
|
48953
|
-
return
|
|
48986
|
+
return a5();
|
|
48954
48987
|
}
|
|
48955
48988
|
});
|
|
48956
48989
|
}
|
|
48957
48990
|
}), null), P(a, j(q, {
|
|
48958
48991
|
class: "text-danger size-7 px-0",
|
|
48959
48992
|
variant: "ghost",
|
|
48993
|
+
"data-tip-pos": "bottom left",
|
|
48960
48994
|
title: "Clear findings",
|
|
48961
48995
|
"aria-label": "Clear findings",
|
|
48962
48996
|
onClick: A,
|
|
48963
48997
|
get children() {
|
|
48964
|
-
return
|
|
48998
|
+
return o5();
|
|
48965
48999
|
}
|
|
48966
49000
|
}), null), P(t, j(M, {
|
|
48967
49001
|
get when() {
|
|
@@ -48977,14 +49011,14 @@ function C5() {
|
|
|
48977
49011
|
return n();
|
|
48978
49012
|
},
|
|
48979
49013
|
get children() {
|
|
48980
|
-
return
|
|
49014
|
+
return s5();
|
|
48981
49015
|
}
|
|
48982
49016
|
}), null), P(t, j(M, {
|
|
48983
49017
|
get when() {
|
|
48984
49018
|
return $e(() => !!u())() && !n();
|
|
48985
49019
|
},
|
|
48986
49020
|
get children() {
|
|
48987
|
-
return
|
|
49021
|
+
return c5();
|
|
48988
49022
|
}
|
|
48989
49023
|
}), null), P(t, j(M, {
|
|
48990
49024
|
get when() {
|
|
@@ -49005,7 +49039,7 @@ function C5() {
|
|
|
49005
49039
|
},
|
|
49006
49040
|
get children() {
|
|
49007
49041
|
return [(() => {
|
|
49008
|
-
var e =
|
|
49042
|
+
var e = l5(), t = e.firstChild, n = t.firstChild, r = t.nextSibling, i = r.firstChild;
|
|
49009
49043
|
return t.$$click = () => y(!v()), P(t, ie, n), r.$$click = () => x(!b()), P(r, oe, i), D((e) => {
|
|
49010
49044
|
var n = {
|
|
49011
49045
|
"text-danger bg-danger/10 border-danger/40": v(),
|
|
@@ -49022,7 +49056,7 @@ function C5() {
|
|
|
49022
49056
|
o: void 0
|
|
49023
49057
|
}), e;
|
|
49024
49058
|
})(), (() => {
|
|
49025
|
-
var e =
|
|
49059
|
+
var e = u5();
|
|
49026
49060
|
return P(e, j(We, {
|
|
49027
49061
|
get each() {
|
|
49028
49062
|
return se();
|
|
@@ -49030,7 +49064,7 @@ function C5() {
|
|
|
49030
49064
|
children: ([e, t]) => {
|
|
49031
49065
|
let n = t[0], r = () => g() === e;
|
|
49032
49066
|
return (() => {
|
|
49033
|
-
var i =
|
|
49067
|
+
var i = _5(), a = i.firstChild, o = a.firstChild, s = o.nextSibling, c = s.nextSibling;
|
|
49034
49068
|
c.firstChild;
|
|
49035
49069
|
var l = c.nextSibling;
|
|
49036
49070
|
return a.$$click = () => _(r() ? null : e), P(s, () => ce(e)), P(c, () => t.reduce((e, t) => e + (t.count ?? 1), 0), null), P(i, j(M, {
|
|
@@ -49038,21 +49072,21 @@ function C5() {
|
|
|
49038
49072
|
return r();
|
|
49039
49073
|
},
|
|
49040
49074
|
get children() {
|
|
49041
|
-
var e =
|
|
49075
|
+
var e = g5();
|
|
49042
49076
|
return P(e, j(We, {
|
|
49043
49077
|
each: t,
|
|
49044
49078
|
children: (e) => {
|
|
49045
49079
|
let t = () => e.el?.deref() != null;
|
|
49046
49080
|
return (() => {
|
|
49047
|
-
var n =
|
|
49081
|
+
var n = S5(), r = n.firstChild, i = r.nextSibling;
|
|
49048
49082
|
return n.$$click = () => {
|
|
49049
|
-
t() && (
|
|
49083
|
+
t() && (w5(e) || h(e.page === location.pathname ? "Element is gone — record or snapshot again." : `This finding is on ${e.page} — navigate there to reveal it.`));
|
|
49050
49084
|
}, P(r, j(M, {
|
|
49051
49085
|
get when() {
|
|
49052
49086
|
return ne() > 1;
|
|
49053
49087
|
},
|
|
49054
49088
|
get children() {
|
|
49055
|
-
var t =
|
|
49089
|
+
var t = v5(), n = t.firstChild;
|
|
49056
49090
|
return P(t, () => e.page, n), t;
|
|
49057
49091
|
}
|
|
49058
49092
|
}), null), P(r, () => e.description, null), P(r, j(M, {
|
|
@@ -49060,7 +49094,7 @@ function C5() {
|
|
|
49060
49094
|
return (e.count ?? 1) > 1;
|
|
49061
49095
|
},
|
|
49062
49096
|
get children() {
|
|
49063
|
-
var t =
|
|
49097
|
+
var t = y5();
|
|
49064
49098
|
return t.firstChild, P(t, () => e.count, null), t;
|
|
49065
49099
|
}
|
|
49066
49100
|
}), null), P(n, j(M, {
|
|
@@ -49068,14 +49102,14 @@ function C5() {
|
|
|
49068
49102
|
return e.changes.length > 0;
|
|
49069
49103
|
},
|
|
49070
49104
|
get children() {
|
|
49071
|
-
var t =
|
|
49105
|
+
var t = b5();
|
|
49072
49106
|
return P(t, j(We, {
|
|
49073
49107
|
get each() {
|
|
49074
49108
|
return e.changes;
|
|
49075
49109
|
},
|
|
49076
49110
|
children: (e) => (() => {
|
|
49077
|
-
var t =
|
|
49078
|
-
return P(t, () =>
|
|
49111
|
+
var t = C5();
|
|
49112
|
+
return P(t, () => E5(e)), t;
|
|
49079
49113
|
})()
|
|
49080
49114
|
})), t;
|
|
49081
49115
|
}
|
|
@@ -49084,7 +49118,7 @@ function C5() {
|
|
|
49084
49118
|
return e.component || e.source;
|
|
49085
49119
|
},
|
|
49086
49120
|
get children() {
|
|
49087
|
-
var t =
|
|
49121
|
+
var t = x5();
|
|
49088
49122
|
return t.firstChild, P(t, () => [e.component, e.source].filter(Boolean).join(" @ "), null), t;
|
|
49089
49123
|
}
|
|
49090
49124
|
}), null), D((e) => {
|
|
@@ -49117,7 +49151,7 @@ function C5() {
|
|
|
49117
49151
|
rt(["click"]);
|
|
49118
49152
|
//#endregion
|
|
49119
49153
|
//#region src/lib/projectConfig.ts
|
|
49120
|
-
var
|
|
49154
|
+
var O5 = [
|
|
49121
49155
|
"defaultTeamId",
|
|
49122
49156
|
"defaultProjectId",
|
|
49123
49157
|
"defaultLabelIds",
|
|
@@ -49131,31 +49165,32 @@ var w5 = [
|
|
|
49131
49165
|
"logLines",
|
|
49132
49166
|
"issueTemplate",
|
|
49133
49167
|
"testUsername",
|
|
49134
|
-
"renderBudgets"
|
|
49168
|
+
"renderBudgets",
|
|
49169
|
+
"renderIgnore"
|
|
49135
49170
|
];
|
|
49136
|
-
function
|
|
49171
|
+
function k5(e) {
|
|
49137
49172
|
let t = {};
|
|
49138
|
-
for (let n of
|
|
49173
|
+
for (let n of O5) {
|
|
49139
49174
|
let r = e[n];
|
|
49140
49175
|
r !== void 0 && r !== "" && !(Array.isArray(r) && r.length === 0) && (t[n] = r);
|
|
49141
49176
|
}
|
|
49142
49177
|
return t;
|
|
49143
49178
|
}
|
|
49144
|
-
function
|
|
49179
|
+
function A5(e, t) {
|
|
49145
49180
|
let n = {};
|
|
49146
|
-
for (let r of
|
|
49181
|
+
for (let r of O5) e[r] === void 0 && t[r] !== void 0 && (n[r] = t[r]);
|
|
49147
49182
|
return Object.keys(n).length ? n : null;
|
|
49148
49183
|
}
|
|
49149
49184
|
//#endregion
|
|
49150
49185
|
//#region src/lib/linear/auth.ts
|
|
49151
49186
|
Br();
|
|
49152
|
-
function
|
|
49187
|
+
function j5(e) {
|
|
49153
49188
|
let t = "";
|
|
49154
49189
|
for (let n of e) t += String.fromCharCode(n);
|
|
49155
49190
|
return btoa(t).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
|
|
49156
49191
|
}
|
|
49157
|
-
async function
|
|
49158
|
-
let t =
|
|
49192
|
+
async function M5(e) {
|
|
49193
|
+
let t = j5(crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(32))), n = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(t)), r = j5(new Uint8Array(n)), i = j5(crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(16))), a = chrome.identity.getRedirectURL(), o = new URL("https://linear.app/oauth/authorize");
|
|
49159
49194
|
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");
|
|
49160
49195
|
let s = await chrome.identity.launchWebAuthFlow({
|
|
49161
49196
|
url: o.toString(),
|
|
@@ -49183,15 +49218,15 @@ async function O5(e) {
|
|
|
49183
49218
|
linearOauthClientId: e
|
|
49184
49219
|
});
|
|
49185
49220
|
}
|
|
49186
|
-
async function
|
|
49221
|
+
async function N5() {
|
|
49187
49222
|
await Er({
|
|
49188
49223
|
linearAccessToken: void 0,
|
|
49189
49224
|
linearApiKey: void 0
|
|
49190
49225
|
});
|
|
49191
49226
|
}
|
|
49192
49227
|
Br(), Sr(), Ix(), _D();
|
|
49193
|
-
var
|
|
49194
|
-
function
|
|
49228
|
+
var P5 = /*#__PURE__*/ N("<div class=\"bg-surface-2 border-border flex rounded-md border p-0.5\">"), F5 = /*#__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."), I5 = /*#__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"), L5 = /*#__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)."), R5 = /*#__PURE__*/ N("<span class=text-text>Connected as <span class=font-medium></span> · <span class=text-text-dim>"), z5 = /*#__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]\">"), B5 = /*#__PURE__*/ N("<option value>Select a team…"), V5 = /*#__PURE__*/ N("<option value>No project"), H5 = /*#__PURE__*/ N("<div class=\"flex flex-wrap gap-1\">"), U5 = /*#__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."), W5 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">No agents found — install the Cursor integration in Linear first."), G5 = /*#__PURE__*/ N("<span class=\"text-text-faint text-[10.5px] leading-snug\">Empty = the default above (computer-use testing, video demo, PR + review babysitting)."), K5 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1.5\">"), q5 = /*#__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."), J5 = /*#__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."), Y5 = /*#__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."), X5 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[10ch] text-center\">"), Z5 = /*#__PURE__*/ N("<div class=\"flex items-center gap-2\">"), Q5 = /*#__PURE__*/ N("<option value>Select a channel…"), $5 = /*#__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"), e7 = /*#__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."), t7 = /*#__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"), n7 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">"), r7 = /*#__PURE__*/ N("<div class=min-h-[2lh]>"), i7 = /*#__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."), a7 = /*#__PURE__*/ N("<div class=\"flex h-full flex-col gap-5 overflow-y-auto pt-3 pb-6 pl-3 pr-4\">"), o7 = /*#__PURE__*/ N("<button>"), s7 = /*#__PURE__*/ N("<div class=\"flex gap-1.5\">"), c7 = /*#__PURE__*/ N("<p class=\"text-text-faint text-center text-[10.5px]\">or"), l7 = /*#__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\">"), u7 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-3\">"), d7 = /*#__PURE__*/ N("<span class=text-text-dim>Connected — verifying…"), f7 = /*#__PURE__*/ N("<option> (<!>)"), p7 = /*#__PURE__*/ N("<option>"), m7 = /*#__PURE__*/ N("<button type=button><span class=\"mr-1 inline-block size-2 rounded-full align-middle\">"), h7 = /*#__PURE__*/ N("<option value>Select the agent…"), g7 = /*#__PURE__*/ N("<option>#"), _7 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">No key set — AI drafting disabled, manual drafting still works.");
|
|
49229
|
+
function v7() {
|
|
49195
49230
|
let e = sr(), t = _r(() => ({
|
|
49196
49231
|
queryKey: ["settings"],
|
|
49197
49232
|
queryFn: Tr,
|
|
@@ -49219,13 +49254,13 @@ function m7() {
|
|
|
49219
49254
|
retry: 0
|
|
49220
49255
|
})), [l, u] = T(!1), d = async () => {
|
|
49221
49256
|
try {
|
|
49222
|
-
await navigator.clipboard.writeText(JSON.stringify(
|
|
49257
|
+
await navigator.clipboard.writeText(JSON.stringify(k5(n()), null, 2) + "\n"), u(!0), setTimeout(() => u(!1), 1800);
|
|
49223
49258
|
} catch {}
|
|
49224
49259
|
}, f = () => {
|
|
49225
49260
|
let e = c.data?.projectConfig;
|
|
49226
49261
|
if (!e) return;
|
|
49227
49262
|
let t = {};
|
|
49228
|
-
for (let n of
|
|
49263
|
+
for (let n of O5) e[n] !== void 0 && (t[n] = e[n]);
|
|
49229
49264
|
r(t);
|
|
49230
49265
|
}, p = _r(() => ({
|
|
49231
49266
|
queryKey: ["linear-labels"],
|
|
@@ -49258,7 +49293,7 @@ function m7() {
|
|
|
49258
49293
|
}
|
|
49259
49294
|
E(!0), ee("");
|
|
49260
49295
|
try {
|
|
49261
|
-
await
|
|
49296
|
+
await M5(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"] });
|
|
49262
49297
|
} catch (e) {
|
|
49263
49298
|
ee(e instanceof Error ? e.message : "OAuth flow failed.");
|
|
49264
49299
|
} finally {
|
|
@@ -49269,7 +49304,7 @@ function m7() {
|
|
|
49269
49304
|
async function re() {
|
|
49270
49305
|
ne(!0);
|
|
49271
49306
|
try {
|
|
49272
|
-
await
|
|
49307
|
+
await N5(), 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"] });
|
|
49273
49308
|
} finally {
|
|
49274
49309
|
ne(!1);
|
|
49275
49310
|
}
|
|
@@ -49285,12 +49320,12 @@ function m7() {
|
|
|
49285
49320
|
return e ? `Drafting with ${e} — ${Px[e].fast} (fast) / ${Px[e].best} (best)` : null;
|
|
49286
49321
|
});
|
|
49287
49322
|
return (() => {
|
|
49288
|
-
var e =
|
|
49323
|
+
var e = a7();
|
|
49289
49324
|
return P(e, j(Rj, {
|
|
49290
49325
|
title: "Workflow",
|
|
49291
49326
|
get children() {
|
|
49292
49327
|
return [(() => {
|
|
49293
|
-
var e =
|
|
49328
|
+
var e = P5();
|
|
49294
49329
|
return P(e, j(We, {
|
|
49295
49330
|
each: [{
|
|
49296
49331
|
id: "cloud",
|
|
@@ -49300,19 +49335,19 @@ function m7() {
|
|
|
49300
49335
|
label: "Local · clipboard"
|
|
49301
49336
|
}],
|
|
49302
49337
|
children: (e) => (() => {
|
|
49303
|
-
var t =
|
|
49338
|
+
var t = o7();
|
|
49304
49339
|
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;
|
|
49305
49340
|
})()
|
|
49306
49341
|
})), e;
|
|
49307
|
-
})(),
|
|
49342
|
+
})(), F5()];
|
|
49308
49343
|
}
|
|
49309
49344
|
}), null), P(e, j(Rj, {
|
|
49310
49345
|
title: "Capture",
|
|
49311
49346
|
get children() {
|
|
49312
49347
|
return [(() => {
|
|
49313
|
-
var e =
|
|
49348
|
+
var e = I5(), t = e.firstChild;
|
|
49314
49349
|
return t.addEventListener("change", (e) => void r({ captureShots: e.currentTarget.checked || void 0 })), D(() => t.checked = !!n().captureShots), e;
|
|
49315
|
-
})(),
|
|
49350
|
+
})(), L5()];
|
|
49316
49351
|
}
|
|
49317
49352
|
}), null), P(e, j(Rj, {
|
|
49318
49353
|
title: "Linear",
|
|
@@ -49323,13 +49358,13 @@ function m7() {
|
|
|
49323
49358
|
},
|
|
49324
49359
|
get fallback() {
|
|
49325
49360
|
return (() => {
|
|
49326
|
-
var e =
|
|
49361
|
+
var e = u7();
|
|
49327
49362
|
return P(e, j(Lj, {
|
|
49328
49363
|
label: "Personal API key",
|
|
49329
49364
|
hint: "Create one at linear.app → Settings → API — fastest path.",
|
|
49330
49365
|
get children() {
|
|
49331
49366
|
return [(() => {
|
|
49332
|
-
var e =
|
|
49367
|
+
var e = s7();
|
|
49333
49368
|
return P(e, j(jj, {
|
|
49334
49369
|
type: "password",
|
|
49335
49370
|
placeholder: "lin_api_…",
|
|
@@ -49366,12 +49401,12 @@ function m7() {
|
|
|
49366
49401
|
}), null), P(e, j(M, {
|
|
49367
49402
|
when: xr,
|
|
49368
49403
|
get children() {
|
|
49369
|
-
return [
|
|
49404
|
+
return [c7(), j(Lj, {
|
|
49370
49405
|
label: "OAuth client ID",
|
|
49371
49406
|
get children() {
|
|
49372
49407
|
return [
|
|
49373
49408
|
(() => {
|
|
49374
|
-
var e =
|
|
49409
|
+
var e = s7();
|
|
49375
49410
|
return P(e, j(jj, {
|
|
49376
49411
|
placeholder: "your-client-id",
|
|
49377
49412
|
get value() {
|
|
@@ -49399,7 +49434,7 @@ function m7() {
|
|
|
49399
49434
|
}
|
|
49400
49435
|
}),
|
|
49401
49436
|
(() => {
|
|
49402
|
-
var e =
|
|
49437
|
+
var e = l7(), t = e.firstChild.nextSibling.nextSibling;
|
|
49403
49438
|
return P(t, ie), e;
|
|
49404
49439
|
})()
|
|
49405
49440
|
];
|
|
@@ -49410,13 +49445,13 @@ function m7() {
|
|
|
49410
49445
|
})();
|
|
49411
49446
|
},
|
|
49412
49447
|
get children() {
|
|
49413
|
-
var e =
|
|
49448
|
+
var e = z5(), t = e.firstChild;
|
|
49414
49449
|
return P(t, j(M, {
|
|
49415
49450
|
get when() {
|
|
49416
49451
|
return !a.isLoading;
|
|
49417
49452
|
},
|
|
49418
49453
|
get fallback() {
|
|
49419
|
-
return
|
|
49454
|
+
return d7();
|
|
49420
49455
|
},
|
|
49421
49456
|
get children() {
|
|
49422
49457
|
return j(M, {
|
|
@@ -49429,7 +49464,7 @@ function m7() {
|
|
|
49429
49464
|
return a.isError;
|
|
49430
49465
|
},
|
|
49431
49466
|
get fallback() {
|
|
49432
|
-
return
|
|
49467
|
+
return d7();
|
|
49433
49468
|
},
|
|
49434
49469
|
get children() {
|
|
49435
49470
|
return j(Hj, { message: "Key rejected — reconnect" });
|
|
@@ -49437,7 +49472,7 @@ function m7() {
|
|
|
49437
49472
|
});
|
|
49438
49473
|
},
|
|
49439
49474
|
get children() {
|
|
49440
|
-
var e =
|
|
49475
|
+
var e = R5(), t = e.firstChild.nextSibling, n = t.nextSibling.nextSibling;
|
|
49441
49476
|
return P(t, () => a.data.name), P(n, () => a.data.email), e;
|
|
49442
49477
|
}
|
|
49443
49478
|
});
|
|
@@ -49478,7 +49513,7 @@ function m7() {
|
|
|
49478
49513
|
return o.isLoading;
|
|
49479
49514
|
},
|
|
49480
49515
|
get children() {
|
|
49481
|
-
return [
|
|
49516
|
+
return [B5(), j(M, {
|
|
49482
49517
|
get when() {
|
|
49483
49518
|
return o.data;
|
|
49484
49519
|
},
|
|
@@ -49488,7 +49523,7 @@ function m7() {
|
|
|
49488
49523
|
return o.data;
|
|
49489
49524
|
},
|
|
49490
49525
|
children: (e) => (() => {
|
|
49491
|
-
var t =
|
|
49526
|
+
var t = f7(), r = t.firstChild, i = r.nextSibling;
|
|
49492
49527
|
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;
|
|
49493
49528
|
})()
|
|
49494
49529
|
});
|
|
@@ -49512,14 +49547,14 @@ function m7() {
|
|
|
49512
49547
|
},
|
|
49513
49548
|
get children() {
|
|
49514
49549
|
return [(() => {
|
|
49515
|
-
var e =
|
|
49550
|
+
var e = V5();
|
|
49516
49551
|
return D(() => e.selected = !n().defaultProjectId), e;
|
|
49517
49552
|
})(), j(We, {
|
|
49518
49553
|
get each() {
|
|
49519
49554
|
return s.data ?? [];
|
|
49520
49555
|
},
|
|
49521
49556
|
children: (e) => (() => {
|
|
49522
|
-
var t =
|
|
49557
|
+
var t = p7();
|
|
49523
49558
|
return P(t, () => e.name), D(() => t.selected = e.id === n().defaultProjectId), D(() => t.value = e.id), t;
|
|
49524
49559
|
})()
|
|
49525
49560
|
})];
|
|
@@ -49531,7 +49566,7 @@ function m7() {
|
|
|
49531
49566
|
label: "Default labels",
|
|
49532
49567
|
hint: "Applied to every issue created from the panel.",
|
|
49533
49568
|
get children() {
|
|
49534
|
-
var e =
|
|
49569
|
+
var e = H5();
|
|
49535
49570
|
return P(e, j(We, {
|
|
49536
49571
|
get each() {
|
|
49537
49572
|
return p.data ?? [];
|
|
@@ -49539,7 +49574,7 @@ function m7() {
|
|
|
49539
49574
|
children: (e) => {
|
|
49540
49575
|
let t = () => (n().defaultLabelIds ?? []).includes(e.id);
|
|
49541
49576
|
return (() => {
|
|
49542
|
-
var i =
|
|
49577
|
+
var i = m7(), a = i.firstChild;
|
|
49543
49578
|
return i.$$click = () => {
|
|
49544
49579
|
let i = n().defaultLabelIds ?? [];
|
|
49545
49580
|
r({ defaultLabelIds: t() ? i.filter((t) => t !== e.id) : [...i, e.id] });
|
|
@@ -49556,7 +49591,7 @@ function m7() {
|
|
|
49556
49591
|
}
|
|
49557
49592
|
}),
|
|
49558
49593
|
(() => {
|
|
49559
|
-
var e =
|
|
49594
|
+
var e = U5(), t = e.firstChild;
|
|
49560
49595
|
return t.addEventListener("change", (e) => void r({ shareLinearKey: e.currentTarget.checked })), D(() => t.checked = !!n().shareLinearKey), e;
|
|
49561
49596
|
})(),
|
|
49562
49597
|
j(Lj, {
|
|
@@ -49606,7 +49641,7 @@ function m7() {
|
|
|
49606
49641
|
return m.isLoading;
|
|
49607
49642
|
},
|
|
49608
49643
|
get children() {
|
|
49609
|
-
return [
|
|
49644
|
+
return [h7(), j(M, {
|
|
49610
49645
|
get when() {
|
|
49611
49646
|
return m.data;
|
|
49612
49647
|
},
|
|
@@ -49616,7 +49651,7 @@ function m7() {
|
|
|
49616
49651
|
return m.data;
|
|
49617
49652
|
},
|
|
49618
49653
|
children: (e) => (() => {
|
|
49619
|
-
var t =
|
|
49654
|
+
var t = p7();
|
|
49620
49655
|
return P(t, () => e.displayName), D(() => t.selected = e.id === n().cursorAgentId), D(() => t.value = e.id), t;
|
|
49621
49656
|
})()
|
|
49622
49657
|
});
|
|
@@ -49626,7 +49661,7 @@ function m7() {
|
|
|
49626
49661
|
});
|
|
49627
49662
|
},
|
|
49628
49663
|
get children() {
|
|
49629
|
-
return
|
|
49664
|
+
return W5();
|
|
49630
49665
|
}
|
|
49631
49666
|
});
|
|
49632
49667
|
}
|
|
@@ -49674,7 +49709,7 @@ function m7() {
|
|
|
49674
49709
|
onBlur: (e) => {
|
|
49675
49710
|
r({ issueTemplate: e.currentTarget.value.trim() || void 0 });
|
|
49676
49711
|
}
|
|
49677
|
-
}),
|
|
49712
|
+
}), G5()];
|
|
49678
49713
|
}
|
|
49679
49714
|
}),
|
|
49680
49715
|
j(Lj, {
|
|
@@ -49731,7 +49766,7 @@ function m7() {
|
|
|
49731
49766
|
label: "Test account",
|
|
49732
49767
|
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.",
|
|
49733
49768
|
get children() {
|
|
49734
|
-
var e =
|
|
49769
|
+
var e = K5();
|
|
49735
49770
|
return P(e, j(jj, {
|
|
49736
49771
|
placeholder: "Username or email (e.g. demo@yourapp.com)",
|
|
49737
49772
|
get value() {
|
|
@@ -49763,7 +49798,7 @@ function m7() {
|
|
|
49763
49798
|
title: "Panel",
|
|
49764
49799
|
get children() {
|
|
49765
49800
|
return [(() => {
|
|
49766
|
-
var e =
|
|
49801
|
+
var e = q5(), t = e.firstChild.nextSibling;
|
|
49767
49802
|
return P(t, j(We, {
|
|
49768
49803
|
each: [{
|
|
49769
49804
|
id: "overlay",
|
|
@@ -49773,7 +49808,7 @@ function m7() {
|
|
|
49773
49808
|
label: "Beside page"
|
|
49774
49809
|
}],
|
|
49775
49810
|
children: (e) => (() => {
|
|
49776
|
-
var t =
|
|
49811
|
+
var t = o7();
|
|
49777
49812
|
return t.$$click = () => void r({
|
|
49778
49813
|
panelMode: e.id,
|
|
49779
49814
|
panelPos: void 0
|
|
@@ -49781,11 +49816,11 @@ function m7() {
|
|
|
49781
49816
|
})()
|
|
49782
49817
|
})), e;
|
|
49783
49818
|
})(), (() => {
|
|
49784
|
-
var e =
|
|
49819
|
+
var e = J5(), t = e.firstChild.nextSibling;
|
|
49785
49820
|
return P(t, j(We, {
|
|
49786
49821
|
each: ["left", "right"],
|
|
49787
49822
|
children: (e) => (() => {
|
|
49788
|
-
var t =
|
|
49823
|
+
var t = o7();
|
|
49789
49824
|
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;
|
|
49790
49825
|
})()
|
|
49791
49826
|
})), e;
|
|
@@ -49815,8 +49850,8 @@ function m7() {
|
|
|
49815
49850
|
}), null), P(e, j(Rj, {
|
|
49816
49851
|
title: "Project config (.lineargrab.json)",
|
|
49817
49852
|
get children() {
|
|
49818
|
-
return [
|
|
49819
|
-
var e =
|
|
49853
|
+
return [Y5(), (() => {
|
|
49854
|
+
var e = Z5();
|
|
49820
49855
|
return P(e, j(M, {
|
|
49821
49856
|
get when() {
|
|
49822
49857
|
return c.data?.projectConfig;
|
|
@@ -49847,7 +49882,7 @@ function m7() {
|
|
|
49847
49882
|
},
|
|
49848
49883
|
onClick: () => void d(),
|
|
49849
49884
|
get children() {
|
|
49850
|
-
var e =
|
|
49885
|
+
var e = X5();
|
|
49851
49886
|
return P(e, () => l() ? "Copied ✓" : "Copy config"), e;
|
|
49852
49887
|
}
|
|
49853
49888
|
}), null), e;
|
|
@@ -49938,12 +49973,12 @@ function m7() {
|
|
|
49938
49973
|
});
|
|
49939
49974
|
},
|
|
49940
49975
|
get children() {
|
|
49941
|
-
return [
|
|
49976
|
+
return [Q5(), j(We, {
|
|
49942
49977
|
get each() {
|
|
49943
49978
|
return ae.data ?? [];
|
|
49944
49979
|
},
|
|
49945
49980
|
children: (e) => (() => {
|
|
49946
|
-
var t =
|
|
49981
|
+
var t = g7();
|
|
49947
49982
|
return t.firstChild, P(t, () => e.name, null), D(() => t.selected = e.id === n().slackChannelId), D(() => t.value = e.id), t;
|
|
49948
49983
|
})()
|
|
49949
49984
|
})];
|
|
@@ -49994,10 +50029,10 @@ function m7() {
|
|
|
49994
50029
|
}
|
|
49995
50030
|
}),
|
|
49996
50031
|
(() => {
|
|
49997
|
-
var e =
|
|
50032
|
+
var e = $5(), t = e.firstChild;
|
|
49998
50033
|
return t.addEventListener("change", (e) => void r({ notifyOnCreate: e.currentTarget.checked ? void 0 : !1 })), D(() => t.checked = n().notifyOnCreate !== !1), e;
|
|
49999
50034
|
})(),
|
|
50000
|
-
|
|
50035
|
+
e7()
|
|
50001
50036
|
];
|
|
50002
50037
|
}
|
|
50003
50038
|
}), null), P(e, j(Rj, {
|
|
@@ -50035,7 +50070,7 @@ function m7() {
|
|
|
50035
50070
|
}
|
|
50036
50071
|
}),
|
|
50037
50072
|
(() => {
|
|
50038
|
-
var e =
|
|
50073
|
+
var e = t7(), t = e.firstChild.nextSibling.firstChild, i = t.nextSibling, a = i.nextSibling;
|
|
50039
50074
|
return t.$$click = () => void r({ preferredProvider: void 0 }), i.$$click = () => void r({ preferredProvider: "openai" }), a.$$click = () => void r({ preferredProvider: "anthropic" }), D((e) => {
|
|
50040
50075
|
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;
|
|
50041
50076
|
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;
|
|
@@ -50048,16 +50083,16 @@ function m7() {
|
|
|
50048
50083
|
}), e;
|
|
50049
50084
|
})(),
|
|
50050
50085
|
(() => {
|
|
50051
|
-
var e =
|
|
50086
|
+
var e = r7();
|
|
50052
50087
|
return P(e, j(M, {
|
|
50053
50088
|
get when() {
|
|
50054
50089
|
return se();
|
|
50055
50090
|
},
|
|
50056
50091
|
get fallback() {
|
|
50057
|
-
return
|
|
50092
|
+
return _7();
|
|
50058
50093
|
},
|
|
50059
50094
|
get children() {
|
|
50060
|
-
var e =
|
|
50095
|
+
var e = n7();
|
|
50061
50096
|
return P(e, se), e;
|
|
50062
50097
|
}
|
|
50063
50098
|
})), e;
|
|
@@ -50067,7 +50102,7 @@ function m7() {
|
|
|
50067
50102
|
}), null), P(e, j(Rj, {
|
|
50068
50103
|
title: "How it works",
|
|
50069
50104
|
get children() {
|
|
50070
|
-
return
|
|
50105
|
+
return i7();
|
|
50071
50106
|
}
|
|
50072
50107
|
}), null), e;
|
|
50073
50108
|
})();
|
|
@@ -50075,38 +50110,38 @@ function m7() {
|
|
|
50075
50110
|
rt(["click"]);
|
|
50076
50111
|
//#endregion
|
|
50077
50112
|
//#region src/lib/idbCache.ts
|
|
50078
|
-
var
|
|
50113
|
+
var y7 = "linear-grab", b7 = "queries", x7 = [
|
|
50079
50114
|
"my-issues",
|
|
50080
50115
|
"issue",
|
|
50081
50116
|
"sessions",
|
|
50082
50117
|
"teams",
|
|
50083
50118
|
"agents"
|
|
50084
50119
|
];
|
|
50085
|
-
function
|
|
50120
|
+
function S7() {
|
|
50086
50121
|
return new Promise((e) => {
|
|
50087
50122
|
try {
|
|
50088
|
-
let t = indexedDB.open(
|
|
50089
|
-
t.onupgradeneeded = () => t.result.createObjectStore(
|
|
50123
|
+
let t = indexedDB.open(y7, 1);
|
|
50124
|
+
t.onupgradeneeded = () => t.result.createObjectStore(b7), t.onsuccess = () => e(t.result), t.onerror = () => e(null);
|
|
50090
50125
|
} catch {
|
|
50091
50126
|
e(null);
|
|
50092
50127
|
}
|
|
50093
50128
|
});
|
|
50094
50129
|
}
|
|
50095
|
-
function
|
|
50096
|
-
return typeof e[0] == "string" &&
|
|
50130
|
+
function C7(e) {
|
|
50131
|
+
return typeof e[0] == "string" && x7.includes(e[0]);
|
|
50097
50132
|
}
|
|
50098
|
-
async function
|
|
50099
|
-
let t = await
|
|
50133
|
+
async function w7(e) {
|
|
50134
|
+
let t = await S7();
|
|
50100
50135
|
if (!t) return () => {};
|
|
50101
50136
|
await new Promise((n) => {
|
|
50102
50137
|
try {
|
|
50103
|
-
let r = t.transaction(
|
|
50138
|
+
let r = t.transaction(b7, "readonly").objectStore(b7).openCursor();
|
|
50104
50139
|
r.onsuccess = () => {
|
|
50105
50140
|
let t = r.result;
|
|
50106
50141
|
if (!t) return n();
|
|
50107
50142
|
try {
|
|
50108
50143
|
let { queryKey: n, data: r } = t.value;
|
|
50109
|
-
|
|
50144
|
+
C7(n) && e.getQueryData(n) === void 0 && e.setQueryData(n, r, { updatedAt: 0 });
|
|
50110
50145
|
} catch {}
|
|
50111
50146
|
t.continue();
|
|
50112
50147
|
}, r.onerror = () => n();
|
|
@@ -50117,14 +50152,14 @@ async function b7(e) {
|
|
|
50117
50152
|
let n = /* @__PURE__ */ new Map(), r = e.getQueryCache().subscribe((r) => {
|
|
50118
50153
|
if (r.type !== "updated" || r.action.type !== "success") return;
|
|
50119
50154
|
let { queryKey: i, queryHash: a } = r.query;
|
|
50120
|
-
if (!
|
|
50155
|
+
if (!C7(i)) return;
|
|
50121
50156
|
let o = n.get(a);
|
|
50122
50157
|
o && clearTimeout(o), n.set(a, setTimeout(() => {
|
|
50123
50158
|
n.delete(a);
|
|
50124
50159
|
try {
|
|
50125
50160
|
let n = e.getQueryData(i);
|
|
50126
50161
|
if (n === void 0) return;
|
|
50127
|
-
t.transaction(
|
|
50162
|
+
t.transaction(b7, "readwrite").objectStore(b7).put({
|
|
50128
50163
|
queryKey: i,
|
|
50129
50164
|
data: n
|
|
50130
50165
|
}, a);
|
|
@@ -50140,7 +50175,7 @@ async function b7(e) {
|
|
|
50140
50175
|
//#endregion
|
|
50141
50176
|
//#region src/panel/App.tsx
|
|
50142
50177
|
Br();
|
|
50143
|
-
var
|
|
50178
|
+
var T7 = /*#__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\">"), E7 = /*#__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\">"), D7 = /*#__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\">–"), O7 = /*#__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></div><div class=h-full>"), k7 = /*#__PURE__*/ N("<button>"), A7 = [
|
|
50144
50179
|
{
|
|
50145
50180
|
id: "draft",
|
|
50146
50181
|
label: "Draft"
|
|
@@ -50181,35 +50216,35 @@ var x7 = /*#__PURE__*/ N("<svg viewBox=\"0 0 100 100\"fill=currentColor aria-hid
|
|
|
50181
50216
|
id: "settings",
|
|
50182
50217
|
label: "Settings"
|
|
50183
50218
|
}
|
|
50184
|
-
],
|
|
50185
|
-
function
|
|
50186
|
-
if (
|
|
50187
|
-
|
|
50219
|
+
], j7 = /* @__PURE__ */ new Set();
|
|
50220
|
+
function M7(e, t, n) {
|
|
50221
|
+
if (j7.has(e) || typeof Notification > "u") return;
|
|
50222
|
+
j7.add(e);
|
|
50188
50223
|
let r = () => new Notification(t, { body: n });
|
|
50189
50224
|
Notification.permission === "granted" ? r() : Notification.permission === "default" && Notification.requestPermission().then((e) => e === "granted" && r());
|
|
50190
50225
|
}
|
|
50191
|
-
function
|
|
50226
|
+
function N7() {
|
|
50192
50227
|
setInterval(() => {
|
|
50193
50228
|
PO().then((e) => {
|
|
50194
50229
|
for (let t of e) {
|
|
50195
50230
|
if (t.status !== "running") continue;
|
|
50196
50231
|
let e = t.lastEventAt ?? t.startedAt;
|
|
50197
|
-
Date.now() - e > 10 * 6e4 &&
|
|
50232
|
+
Date.now() - e > 10 * 6e4 && M7(`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.`);
|
|
50198
50233
|
}
|
|
50199
50234
|
}).catch(() => {}), _O().then((e) => {
|
|
50200
|
-
for (let t of e) /awaitingInput|elicit/i.test(t.status) &&
|
|
50235
|
+
for (let t of e) /awaitingInput|elicit/i.test(t.status) && M7(`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.`);
|
|
50201
50236
|
}).catch(() => {});
|
|
50202
50237
|
}, 6e4);
|
|
50203
50238
|
}
|
|
50204
|
-
|
|
50205
|
-
var
|
|
50239
|
+
N7();
|
|
50240
|
+
var P7 = new gr({ defaultOptions: { queries: {
|
|
50206
50241
|
retry: 1,
|
|
50207
50242
|
refetchOnWindowFocus: !1,
|
|
50208
50243
|
staleTime: 5e3
|
|
50209
50244
|
} } });
|
|
50210
|
-
function
|
|
50245
|
+
function F7(e) {
|
|
50211
50246
|
return (() => {
|
|
50212
|
-
var t =
|
|
50247
|
+
var t = T7();
|
|
50213
50248
|
return D((n) => {
|
|
50214
50249
|
var r = e.size ?? 14, i = e.size ?? 14;
|
|
50215
50250
|
return r !== n.e && it(t, "width", n.e = r), i !== n.t && it(t, "height", n.t = i), n;
|
|
@@ -50219,36 +50254,36 @@ function j7(e) {
|
|
|
50219
50254
|
}), t;
|
|
50220
50255
|
})();
|
|
50221
50256
|
}
|
|
50222
|
-
function
|
|
50257
|
+
function I7(e) {
|
|
50223
50258
|
let [t, n] = T("draft"), r = () => {
|
|
50224
|
-
|
|
50259
|
+
P7.invalidateQueries({ queryKey: ["grab"] }), lj() === "capture" && n("capture"), e.onGrab?.();
|
|
50225
50260
|
};
|
|
50226
50261
|
return O(() => {
|
|
50227
50262
|
let e = rj();
|
|
50228
50263
|
e && n(e);
|
|
50229
50264
|
}), ie(() => {
|
|
50230
|
-
let e =
|
|
50265
|
+
let e = w7(P7), t = XZ(r), n = () => {
|
|
50231
50266
|
YO().then(y$), HO(), NO().then(async (e) => {
|
|
50232
50267
|
if (!e.projectConfig) return;
|
|
50233
|
-
let t =
|
|
50268
|
+
let t = A5(await Tr(), e.projectConfig);
|
|
50234
50269
|
t && await Er(t);
|
|
50235
50270
|
}).catch(() => {});
|
|
50236
50271
|
};
|
|
50237
50272
|
n();
|
|
50238
50273
|
let i = Mr((e) => {
|
|
50239
|
-
e === "settings" && (
|
|
50274
|
+
e === "settings" && (P7.invalidateQueries({ queryKey: ["settings"] }), n()), e === "grab" && r();
|
|
50240
50275
|
});
|
|
50241
50276
|
ae(() => {
|
|
50242
50277
|
t(), i(), e.then((e) => e());
|
|
50243
50278
|
});
|
|
50244
50279
|
}), j(cr, {
|
|
50245
|
-
client:
|
|
50280
|
+
client: P7,
|
|
50246
50281
|
get children() {
|
|
50247
|
-
var r =
|
|
50248
|
-
return i.$$pointerdown = (t) => e.onHeaderPointerDown?.(t), P(a, j(
|
|
50249
|
-
each:
|
|
50282
|
+
var r = O7(), 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, g = h.nextSibling;
|
|
50283
|
+
return i.$$pointerdown = (t) => e.onHeaderPointerDown?.(t), P(a, j(F7, { size: 14 })), P(o, j(We, {
|
|
50284
|
+
each: A7,
|
|
50250
50285
|
children: (e) => (() => {
|
|
50251
|
-
var r =
|
|
50286
|
+
var r = k7();
|
|
50252
50287
|
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;
|
|
50253
50288
|
})()
|
|
50254
50289
|
})), P(i, j(M, {
|
|
@@ -50256,7 +50291,7 @@ function M7(e) {
|
|
|
50256
50291
|
return e.onTogglePin;
|
|
50257
50292
|
},
|
|
50258
50293
|
get children() {
|
|
50259
|
-
var t =
|
|
50294
|
+
var t = E7();
|
|
50260
50295
|
return t.$$click = () => e.onTogglePin?.(), D((n) => {
|
|
50261
50296
|
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"}`;
|
|
50262
50297
|
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;
|
|
@@ -50271,10 +50306,10 @@ function M7(e) {
|
|
|
50271
50306
|
return e.onClose;
|
|
50272
50307
|
},
|
|
50273
50308
|
get children() {
|
|
50274
|
-
var t =
|
|
50309
|
+
var t = D7();
|
|
50275
50310
|
return t.$$click = () => e.onClose?.(), t;
|
|
50276
50311
|
}
|
|
50277
|
-
}), 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(H3, {})), P(h, j(
|
|
50312
|
+
}), 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(H3, {})), P(h, j(D5, {})), P(g, j(v7, {})), D((n) => {
|
|
50278
50313
|
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", _ = t() !== "activity", v = t() !== "running", y = t() !== "cloud", b = t() !== "local", x = t() !== "prs", S = t() !== "design", C = t() !== "renders", w = t() !== "settings";
|
|
50279
50314
|
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), _ !== n.o && l.classList.toggle("hidden", n.o = _), v !== n.i && u.classList.toggle("hidden", n.i = v), y !== n.n && d.classList.toggle("hidden", n.n = y), b !== n.s && f.classList.toggle("hidden", n.s = b), x !== n.h && p.classList.toggle("hidden", n.h = x), S !== n.r && m.classList.toggle("hidden", n.r = S), C !== n.d && h.classList.toggle("hidden", n.d = C), w !== n.l && g.classList.toggle("hidden", n.l = w), n;
|
|
50280
50315
|
}, {
|
|
@@ -50296,16 +50331,16 @@ function M7(e) {
|
|
|
50296
50331
|
rt(["pointerdown", "click"]);
|
|
50297
50332
|
//#endregion
|
|
50298
50333
|
//#region src/styles/app.css?inline
|
|
50299
|
-
var N7 = "/*! 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);--ease-in-out:cubic-bezier(.4, 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}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.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-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-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-\\[28rem\\]{max-height:28rem}.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-\\[Npx\\]{width:Npx}.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-danger{border-color:var(--color-danger)}.border-danger\\/40{border-color:#eb575766}@supports (color:color-mix(in lab, red, red)){.border-danger\\/40{border-color:color-mix(in oklab, var(--color-danger) 40%, transparent)}}.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-danger\\/10{background-color:#eb57571a}@supports (color:color-mix(in lab, red, red)){.bg-danger\\/10{background-color:color-mix(in oklab, var(--color-danger) 10%, transparent)}}.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)}.bg-warn\\/10{background-color:#f2c94c1a}@supports (color:color-mix(in lab, red, red)){.bg-warn\\/10{background-color:color-mix(in oklab, var(--color-warn) 10%, transparent)}}.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-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.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}}";
|
|
50334
|
+
var L7 = "/*! 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);--ease-in-out:cubic-bezier(.4, 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}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.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-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-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-\\[28rem\\]{max-height:28rem}.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-\\[Npx\\]{width:Npx}.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-danger{border-color:var(--color-danger)}.border-danger\\/40{border-color:#eb575766}@supports (color:color-mix(in lab, red, red)){.border-danger\\/40{border-color:color-mix(in oklab, var(--color-danger) 40%, transparent)}}.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-danger\\/10{background-color:#eb57571a}@supports (color:color-mix(in lab, red, red)){.bg-danger\\/10{background-color:color-mix(in oklab, var(--color-danger) 10%, transparent)}}.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)}.bg-warn\\/10{background-color:#f2c94c1a}@supports (color:color-mix(in lab, red, red)){.bg-warn\\/10{background-color:color-mix(in oklab, var(--color-warn) 10%, transparent)}}.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-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.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}}";
|
|
50300
50335
|
//#endregion
|
|
50301
50336
|
//#region src/page/index.tsx
|
|
50302
50337
|
Br();
|
|
50303
|
-
var
|
|
50304
|
-
function
|
|
50338
|
+
var R7 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-danger size-2 shrink-0 animate-pulse rounded-full\">"), z7 = /*#__PURE__*/ N("<span class=\"text-text min-w-[5ch] text-[11px] font-medium tabular-nums\">"), B7 = /*#__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"), V7 = /*#__PURE__*/ N("<p class=\"text-warn px-1.5 pt-1 pb-1.5 text-[10.5px] font-semibold tracking-wide uppercase\">Needs review"), H7 = /*#__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"), U7 = /*#__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\">"), W7 = /*#__PURE__*/ N("<div><div title=\"Drag to resize\">"), G7 = /*#__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\">"), K7 = /*#__PURE__*/ N("<span class=\"bg-border h-4 w-px\"aria-hidden>"), q7 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-warn size-2 rounded-full\">"), J7 = /*#__PURE__*/ N("<span class=\"text-warn min-w-[3.5ch] text-left text-[11px] font-medium tabular-nums\"> rev"), Y7 = /*#__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>"), X7 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-accent size-2 shrink-0 animate-pulse rounded-full\">"), Z7 = /*#__PURE__*/ N("<span class=\"text-text min-w-[3ch] text-[11px] font-medium tabular-nums\">s"), Q7 = /*#__PURE__*/ N("<span class=\"text-text-dim min-w-[7ch] text-[11px] tabular-nums\"> states"), $7 = /*#__PURE__*/ N("<p class=\"text-text-faint px-1.5 pb-1.5 text-[11.5px]\">No agents running right now."), e9 = /*#__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\"> · <!> · ");
|
|
50339
|
+
function t9(e = {}) {
|
|
50305
50340
|
if (typeof window > "u" || window.__LINEAR_GRAB_PAGE__) return;
|
|
50306
50341
|
window.__LINEAR_GRAB_PAGE__ = !0;
|
|
50307
50342
|
let t = () => {
|
|
50308
|
-
uk(), z2(), Y4(),
|
|
50343
|
+
uk(), z2(), Y4(), V8(), JZ();
|
|
50309
50344
|
let t = document.createElement("div");
|
|
50310
50345
|
t.id = "linear-grab-root", document.body.appendChild(t);
|
|
50311
50346
|
let n = (e) => {
|
|
@@ -50333,17 +50368,17 @@ function Z7(e = {}) {
|
|
|
50333
50368
|
"keypress"
|
|
50334
50369
|
]) window.addEventListener(e, n, { capture: !0 });
|
|
50335
50370
|
let r = t.attachShadow({ mode: "open" }), i = document.createElement("style");
|
|
50336
|
-
i.textContent =
|
|
50371
|
+
i.textContent = L7, r.appendChild(i);
|
|
50337
50372
|
let a = document.createElement("div");
|
|
50338
50373
|
r.appendChild(a);
|
|
50339
|
-
let o = () => a.setAttribute("data-theme",
|
|
50340
|
-
o(), matchMedia("(prefers-color-scheme: light)").addEventListener("change", o), nt(() => j(
|
|
50374
|
+
let o = () => a.setAttribute("data-theme", n9());
|
|
50375
|
+
o(), matchMedia("(prefers-color-scheme: light)").addEventListener("change", o), nt(() => j(c9, { get defaultOpen() {
|
|
50341
50376
|
return e.defaultOpen ?? !1;
|
|
50342
50377
|
} }), a);
|
|
50343
50378
|
};
|
|
50344
50379
|
document.body ? t() : document.addEventListener("DOMContentLoaded", t, { once: !0 });
|
|
50345
50380
|
}
|
|
50346
|
-
function
|
|
50381
|
+
function n9() {
|
|
50347
50382
|
try {
|
|
50348
50383
|
let e = [document.body, document.documentElement];
|
|
50349
50384
|
for (let t of e) {
|
|
@@ -50353,11 +50388,11 @@ function Q7() {
|
|
|
50353
50388
|
} catch {}
|
|
50354
50389
|
return matchMedia("(prefers-color-scheme: light)").matches ? "light" : "dark";
|
|
50355
50390
|
}
|
|
50356
|
-
var
|
|
50357
|
-
function
|
|
50391
|
+
var r9 = 130, i9 = 36, a9 = 380, o9 = 280, s9 = 720;
|
|
50392
|
+
function c9(e) {
|
|
50358
50393
|
let [t, n] = T(e.defaultOpen), [r, i] = T("right"), [a, o] = T({
|
|
50359
|
-
x: Math.max(8, window.innerWidth -
|
|
50360
|
-
y: Math.max(8, window.innerHeight -
|
|
50394
|
+
x: Math.max(8, window.innerWidth - r9 - 24),
|
|
50395
|
+
y: Math.max(8, window.innerHeight - i9 - 20)
|
|
50361
50396
|
}), [s, c] = T({
|
|
50362
50397
|
running: [],
|
|
50363
50398
|
review: []
|
|
@@ -50377,12 +50412,12 @@ function i9(e) {
|
|
|
50377
50412
|
let t = Math.floor(e / 1e3);
|
|
50378
50413
|
return `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
|
|
50379
50414
|
}, [b, x] = T(null), S = (e) => ({
|
|
50380
|
-
x: Math.min(Math.max(8, e.x), window.innerWidth -
|
|
50381
|
-
y: Math.min(Math.max(8, e.y), window.innerHeight -
|
|
50415
|
+
x: Math.min(Math.max(8, e.x), window.innerWidth - r9 - 8),
|
|
50416
|
+
y: Math.min(Math.max(8, e.y), window.innerHeight - i9 - 8)
|
|
50382
50417
|
}), C = (e) => ({
|
|
50383
50418
|
x: Math.min(Math.max(8 - (ne() - 80), e.x), window.innerWidth - 80),
|
|
50384
50419
|
y: Math.min(Math.max(0, e.y), window.innerHeight - 80)
|
|
50385
|
-
}), [w, E] = T(!1), [k, ee] = T("cloud"), [te, A] = T(!1), [ne, re] = T(
|
|
50420
|
+
}), [w, E] = T(!1), [k, ee] = T("cloud"), [te, A] = T(!1), [ne, re] = T(a9), oe = (e) => Math.min(s9, Math.max(o9, Math.min(e, window.innerWidth - 60)));
|
|
50386
50421
|
O(() => {
|
|
50387
50422
|
let e = document.documentElement, n = t() && w();
|
|
50388
50423
|
e.style.marginRight = n && r() === "right" ? `${ne()}px` : "", e.style.marginLeft = n && r() === "left" ? `${ne()}px` : "";
|
|
@@ -50496,7 +50531,7 @@ function i9(e) {
|
|
|
50496
50531
|
return !t();
|
|
50497
50532
|
},
|
|
50498
50533
|
get children() {
|
|
50499
|
-
var e =
|
|
50534
|
+
var e = U7(), t = e.firstChild;
|
|
50500
50535
|
return t.$$click = () => {
|
|
50501
50536
|
ce || p() === "recording" || h().active || (f(!1), n(!0));
|
|
50502
50537
|
}, t.$$pointerdown = le, P(t, j(M, {
|
|
@@ -50506,14 +50541,14 @@ function i9(e) {
|
|
|
50506
50541
|
get fallback() {
|
|
50507
50542
|
return [
|
|
50508
50543
|
(() => {
|
|
50509
|
-
var e =
|
|
50544
|
+
var e = G7();
|
|
50510
50545
|
return e.$$click = () => {
|
|
50511
50546
|
ce || (f(!1), n(!0));
|
|
50512
|
-
}, P(e, j(
|
|
50547
|
+
}, P(e, j(F7, { size: 13 })), e;
|
|
50513
50548
|
})(),
|
|
50514
|
-
|
|
50549
|
+
K7(),
|
|
50515
50550
|
(() => {
|
|
50516
|
-
var e =
|
|
50551
|
+
var e = Y7(), t = e.firstChild, n = t.nextSibling;
|
|
50517
50552
|
return e.$$click = (e) => {
|
|
50518
50553
|
e.stopPropagation(), !ce && f((e) => !e);
|
|
50519
50554
|
}, P(n, (() => {
|
|
@@ -50524,8 +50559,8 @@ function i9(e) {
|
|
|
50524
50559
|
return $e(() => !te())() && u().length > 0;
|
|
50525
50560
|
},
|
|
50526
50561
|
get children() {
|
|
50527
|
-
return [
|
|
50528
|
-
var e =
|
|
50562
|
+
return [q7(), (() => {
|
|
50563
|
+
var e = J7(), t = e.firstChild;
|
|
50529
50564
|
return P(e, () => u().length, t), e;
|
|
50530
50565
|
})()];
|
|
50531
50566
|
}
|
|
@@ -50546,17 +50581,17 @@ function i9(e) {
|
|
|
50546
50581
|
},
|
|
50547
50582
|
get fallback() {
|
|
50548
50583
|
return [
|
|
50549
|
-
|
|
50584
|
+
X7(),
|
|
50550
50585
|
(() => {
|
|
50551
|
-
var e =
|
|
50586
|
+
var e = Z7(), t = e.firstChild;
|
|
50552
50587
|
return P(e, () => Math.ceil(h().msLeft / 1e3), t), e;
|
|
50553
50588
|
})(),
|
|
50554
50589
|
(() => {
|
|
50555
|
-
var e =
|
|
50590
|
+
var e = Q7(), t = e.firstChild;
|
|
50556
50591
|
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;
|
|
50557
50592
|
})(),
|
|
50558
50593
|
(() => {
|
|
50559
|
-
var e =
|
|
50594
|
+
var e = B7();
|
|
50560
50595
|
return e.$$click = (e) => {
|
|
50561
50596
|
e.stopPropagation(), !ce && o2();
|
|
50562
50597
|
}, e;
|
|
@@ -50565,13 +50600,13 @@ function i9(e) {
|
|
|
50565
50600
|
},
|
|
50566
50601
|
get children() {
|
|
50567
50602
|
return [
|
|
50568
|
-
|
|
50603
|
+
R7(),
|
|
50569
50604
|
(() => {
|
|
50570
|
-
var e =
|
|
50605
|
+
var e = z7();
|
|
50571
50606
|
return P(e, () => y(_())), e;
|
|
50572
50607
|
})(),
|
|
50573
50608
|
(() => {
|
|
50574
|
-
var e =
|
|
50609
|
+
var e = B7();
|
|
50575
50610
|
return e.$$click = () => {
|
|
50576
50611
|
ce || tO();
|
|
50577
50612
|
}, e;
|
|
@@ -50585,17 +50620,17 @@ function i9(e) {
|
|
|
50585
50620
|
return d();
|
|
50586
50621
|
},
|
|
50587
50622
|
get children() {
|
|
50588
|
-
var e =
|
|
50623
|
+
var e = H7(), t = e.firstChild;
|
|
50589
50624
|
return P(e, j(M, {
|
|
50590
50625
|
get when() {
|
|
50591
50626
|
return u().length > 0;
|
|
50592
50627
|
},
|
|
50593
50628
|
get children() {
|
|
50594
|
-
return [
|
|
50629
|
+
return [V7(), j(We, {
|
|
50595
50630
|
get each() {
|
|
50596
50631
|
return u();
|
|
50597
50632
|
},
|
|
50598
|
-
children: (e) => j(
|
|
50633
|
+
children: (e) => j(l9, {
|
|
50599
50634
|
agent: e,
|
|
50600
50635
|
review: !0,
|
|
50601
50636
|
onOpen: de
|
|
@@ -50607,14 +50642,14 @@ function i9(e) {
|
|
|
50607
50642
|
return l().length > 0;
|
|
50608
50643
|
},
|
|
50609
50644
|
get fallback() {
|
|
50610
|
-
return
|
|
50645
|
+
return $7();
|
|
50611
50646
|
},
|
|
50612
50647
|
get children() {
|
|
50613
50648
|
return j(We, {
|
|
50614
50649
|
get each() {
|
|
50615
50650
|
return l();
|
|
50616
50651
|
},
|
|
50617
|
-
children: (e) => j(
|
|
50652
|
+
children: (e) => j(l9, {
|
|
50618
50653
|
agent: e,
|
|
50619
50654
|
onOpen: de
|
|
50620
50655
|
})
|
|
@@ -50635,8 +50670,8 @@ function i9(e) {
|
|
|
50635
50670
|
return t();
|
|
50636
50671
|
},
|
|
50637
50672
|
get children() {
|
|
50638
|
-
var e =
|
|
50639
|
-
return t.$$pointerdown = fe, P(e, j(
|
|
50673
|
+
var e = W7(), t = e.firstChild;
|
|
50674
|
+
return t.$$pointerdown = fe, P(e, j(I7, {
|
|
50640
50675
|
onGrab: () => n(!0),
|
|
50641
50676
|
onClose: () => n(!1),
|
|
50642
50677
|
get onHeaderPointerDown() {
|
|
@@ -50664,19 +50699,19 @@ function i9(e) {
|
|
|
50664
50699
|
}
|
|
50665
50700
|
})];
|
|
50666
50701
|
}
|
|
50667
|
-
function
|
|
50702
|
+
function l9(e) {
|
|
50668
50703
|
return (() => {
|
|
50669
|
-
var t =
|
|
50704
|
+
var t = e9(), n = t.firstChild, r = n.firstChild, i = r.nextSibling, a = i.nextSibling, o = n.nextSibling, s = o.firstChild, c = s.nextSibling;
|
|
50670
50705
|
return c.nextSibling, t.$$click = () => e.onOpen(e.agent.id), P(i, () => e.agent.identifier), P(a, () => e.agent.title), P(o, (() => {
|
|
50671
50706
|
var t = $e(() => !!e.review);
|
|
50672
50707
|
return () => t() ? "PR ready · needs review" : e.agent.stateName;
|
|
50673
|
-
})(), s), P(o, () => e.agent.delegateName, c), P(o, () =>
|
|
50708
|
+
})(), s), P(o, () => e.agent.delegateName, c), P(o, () => u9(e.agent.updatedAt), null), D((t) => dt(r, "background", e.review ? "var(--color-warn)" : e.agent.stateColor)), t;
|
|
50674
50709
|
})();
|
|
50675
50710
|
}
|
|
50676
|
-
function
|
|
50711
|
+
function u9(e) {
|
|
50677
50712
|
let t = Math.max(0, Math.floor((Date.now() - Date.parse(e)) / 1e3));
|
|
50678
50713
|
return t < 60 ? "now" : t < 3600 ? `${Math.floor(t / 60)}m` : t < 86400 ? `${Math.floor(t / 3600)}h` : `${Math.floor(t / 86400)}d`;
|
|
50679
50714
|
}
|
|
50680
50715
|
rt(["pointerdown", "click"]);
|
|
50681
50716
|
//#endregion
|
|
50682
|
-
export {
|
|
50717
|
+
export { t9 as init };
|