linear-grab 0.27.0 → 0.27.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -27423,7 +27423,7 @@ function RA(e) {
27423
27423
  if (t) return t;
27424
27424
  if (!IA) {
27425
27425
  let e = document.createElement("iframe");
27426
- if (e.style.cssText = "position:absolute;width:0;height:0;border:0;visibility:hidden", document.body.appendChild(e), IA = e.contentDocument, !IA) return {};
27426
+ if (e.setAttribute("data-linear-grab", "true"), e.style.cssText = "position:absolute;width:0;height:0;border:0;visibility:hidden", document.body.appendChild(e), IA = e.contentDocument, !IA) return {};
27427
27427
  }
27428
27428
  let n = IA.createElement(e);
27429
27429
  IA.body.appendChild(n);
@@ -41879,7 +41879,7 @@ async function $Z(e) {
41879
41879
  function eQ() {
41880
41880
  return new Promise((e) => {
41881
41881
  let t = document.createElement("div");
41882
- t.style.cssText = "position:fixed;inset:0;z-index:2147483647;cursor:crosshair;user-select:none;";
41882
+ t.setAttribute("data-linear-grab", "true"), t.style.cssText = "position:fixed;inset:0;z-index:2147483647;cursor:crosshair;user-select:none;";
41883
41883
  let n = document.createElement("div");
41884
41884
  n.style.cssText = "position:fixed;display:none;border:2px solid #5e6ad2;border-radius:4px;box-shadow:0 0 0 100000px rgba(0,0,0,0.35);pointer-events:none;", t.appendChild(n), document.body.appendChild(t);
41885
41885
  let r = 0, i = 0, a = !1, o = (e) => ({
@@ -45675,7 +45675,7 @@ var V0 = [
45675
45675
  }, W0 = null;
45676
45676
  function G0(e) {
45677
45677
  try {
45678
- return W0 || (W0 = document.createElement("span"), W0.style.display = "none", document.body.appendChild(W0)), W0.style.color = "", W0.style.color = e, W0.style.color ? getComputedStyle(W0).color : null;
45678
+ return W0 || (W0 = document.createElement("span"), W0.setAttribute("data-linear-grab", "true"), W0.style.display = "none", document.body.appendChild(W0)), W0.style.color = "", W0.style.color = e, W0.style.color ? getComputedStyle(W0).color : null;
45679
45679
  } catch {
45680
45680
  return null;
45681
45681
  }
@@ -45942,7 +45942,7 @@ function l2(e) {
45942
45942
  function u2() {
45943
45943
  return new Promise((e) => {
45944
45944
  let t = document.createElement("div");
45945
- t.style.cssText = "position:fixed;z-index:2147483647;pointer-events:none;border:1.5px solid #5e6ad2;border-radius:4px;background:rgba(94,106,210,0.08);display:none;", document.body.appendChild(t);
45945
+ t.setAttribute("data-linear-grab", "true"), t.style.cssText = "position:fixed;z-index:2147483647;pointer-events:none;border:1.5px solid #5e6ad2;border-radius:4px;background:rgba(94,106,210,0.08);display:none;", document.body.appendChild(t);
45946
45946
  let n = null, r = (e) => {
45947
45947
  let t = document.elementFromPoint(e.clientX, e.clientY);
45948
45948
  return !t || t.closest("#linear-grab-root") ? null : t;
@@ -46559,7 +46559,7 @@ var r4 = (e) => getComputedStyle(e), i4 = {
46559
46559
  let t = e.root, r = t.documentElement;
46560
46560
  if (r && t.body) {
46561
46561
  let i = e.css(r), a = t.createElement("span");
46562
- a.style.display = "none", t.body.appendChild(a);
46562
+ a.setAttribute("data-linear-grab", "true"), a.style.display = "none", t.body.appendChild(a);
46563
46563
  for (let e = 0; e < i.length; e++) {
46564
46564
  let t = i[e];
46565
46565
  if (!t.startsWith("--")) continue;
@@ -46595,7 +46595,7 @@ var r4 = (e) => getComputedStyle(e), i4 = {
46595
46595
  for (let n of e.els) {
46596
46596
  if (!n.closest("[data-editor-surface]") && !/\/editor\//.test(typeof location < "u" ? location.pathname : "")) continue;
46597
46597
  let r = e.css(n).boxShadow;
46598
- !r || r === "none" || A4(r) || t.push(W2(this, n, `box-shadow: ${r}`));
46598
+ !r || r === "none" || j4(r) || M4(r) || t.push(W2(this, n, `box-shadow: ${r}`));
46599
46599
  }
46600
46600
  return t;
46601
46601
  }
@@ -46851,9 +46851,25 @@ function k4(e, t, n) {
46851
46851
  return r < 40 ? !1 : r - Math.min(e, t, n) > 60;
46852
46852
  }
46853
46853
  function A4(e) {
46854
+ let t = [], n = 0, r = 0;
46855
+ for (let i = 0; i < e.length; i++) {
46856
+ let a = e[i];
46857
+ a === "(" ? n++ : a === ")" ? n-- : a === "," && n === 0 && (t.push(e.slice(r, i).trim()), r = i + 1);
46858
+ }
46859
+ return t.push(e.slice(r).trim()), t.filter(Boolean);
46860
+ }
46861
+ function j4(e) {
46862
+ return A4(e).every((e) => {
46863
+ if (/\btransparent\b/.test(e) || /(?:rgba?|hsla?|oklch|oklab|lab|lch|color)\([^)]*[/,]\s*0(?:\.0+)?\s*\)/.test(e)) return !0;
46864
+ let t = e.match(/-?\d*\.?\d+(?:px|em|rem)/g) ?? [];
46865
+ return t.length > 0 && t.every((e) => parseFloat(e) === 0);
46866
+ });
46867
+ }
46868
+ function M4(e) {
46854
46869
  return !!(/\b0px\s+0px\s+0px\s+0?\.?5px\b/.test(e) || /\b0px?\s+0px?\s+0px?\s+0?\.?5px\b/.test(e));
46855
46870
  }
46856
- function j4(e = typeof document < "u" ? document : {}) {
46871
+ var N4 = "#linear-grab-root, [data-linear-grab], [data-react-grab], #claude-agent-glow-border, [id^=\"react-scan\"]";
46872
+ function P4(e = typeof document < "u" ? document : {}) {
46857
46873
  let t = /* @__PURE__ */ new Map(), n = (e) => {
46858
46874
  let n = t.get(e);
46859
46875
  return n || (n = getComputedStyle(e), t.set(e, n)), n;
@@ -46861,7 +46877,7 @@ function j4(e = typeof document < "u" ? document : {}) {
46861
46877
  r4 = n;
46862
46878
  let r = Array.from(e.querySelectorAll("*")), i = [], a = e.documentElement ?? null, o = e.body ?? null, s = (a?.getBoundingClientRect().width ?? 0) > 0;
46863
46879
  for (let e of r) {
46864
- if (e === a || e === o || e.closest("#linear-grab-root, #claude-agent-glow-border, [id^=\"react-scan\"]")) continue;
46880
+ if (e === a || e === o || e.closest(N4)) continue;
46865
46881
  let t = G2(e);
46866
46882
  if (s) {
46867
46883
  if (t.width < 2 || t.height < 2) continue;
@@ -46884,7 +46900,7 @@ function j4(e = typeof document < "u" ? document : {}) {
46884
46900
  }
46885
46901
  return [...u.values()];
46886
46902
  }
46887
- function M4(e) {
46903
+ function F4(e) {
46888
46904
  let t = /* @__PURE__ */ new Map();
46889
46905
  for (let n of e) {
46890
46906
  let e = t.get(n.ruleId);
@@ -46905,7 +46921,7 @@ function M4(e) {
46905
46921
  }
46906
46922
  return o.join("\n");
46907
46923
  }
46908
- function N4(e) {
46924
+ function I4(e) {
46909
46925
  return [
46910
46926
  "Below is a design-system SLOP report from my running app — each finding is a",
46911
46927
  "live-DOM violation of the Linear/Protocolbase primitives contract (`Linear",
@@ -46937,33 +46953,33 @@ function N4(e) {
46937
46953
  "",
46938
46954
  "---",
46939
46955
  "",
46940
- M4(e)
46956
+ F4(e)
46941
46957
  ].join("\n");
46942
46958
  }
46943
46959
  //#endregion
46944
46960
  //#region src/lib/slopScanStore.ts
46945
- var P4 = [], F4 = /* @__PURE__ */ new Set();
46946
- function I4(e) {
46947
- return F4.add(e), e(P4), () => void F4.delete(e);
46961
+ var L4 = [], R4 = /* @__PURE__ */ new Set();
46962
+ function z4(e) {
46963
+ return R4.add(e), e(L4), () => void R4.delete(e);
46948
46964
  }
46949
- function L4() {
46950
- P4 = [];
46951
- for (let e of F4) e(P4);
46965
+ function B4() {
46966
+ L4 = [];
46967
+ for (let e of R4) e(L4);
46952
46968
  }
46953
- function R4() {
46954
- let e = location.pathname, t = j4(document).map((t) => ({
46969
+ function V4() {
46970
+ let e = location.pathname, t = P4(document).map((t) => ({
46955
46971
  ...t,
46956
46972
  page: e
46957
46973
  }));
46958
- P4 = [...t, ...P4.filter((t) => t.page !== e)];
46959
- for (let e of F4) e(P4);
46960
- return z4(t).then(() => {
46961
- P4 = [...P4];
46962
- for (let e of F4) e(P4);
46963
- B4(t);
46974
+ L4 = [...t, ...L4.filter((t) => t.page !== e)];
46975
+ for (let e of R4) e(L4);
46976
+ return H4(t).then(() => {
46977
+ L4 = [...L4];
46978
+ for (let e of R4) e(L4);
46979
+ U4(t);
46964
46980
  }), t;
46965
46981
  }
46966
- async function z4(e) {
46982
+ async function H4(e) {
46967
46983
  let t = null;
46968
46984
  try {
46969
46985
  t = (await Promise.resolve().then(() => (RZ(), AZ))).getGlobalApi() ?? null;
@@ -46992,7 +47008,7 @@ async function z4(e) {
46992
47008
  if (!(!n && !a)) for (let e of i) e.component = n, e.source = a;
46993
47009
  }
46994
47010
  }
46995
- function B4(e) {
47011
+ function U4(e) {
46996
47012
  if (e.length === 0) return;
46997
47013
  let t = Date.now(), n = e.slice(0, 200).map(({ el: e, ...n }) => ({
46998
47014
  kind: "slop-scan",
@@ -47006,59 +47022,59 @@ function B4(e) {
47006
47022
  keepalive: !0
47007
47023
  })).catch(() => {});
47008
47024
  }
47009
- var V4 = !1;
47025
+ var W4 = !1;
47010
47026
  try {
47011
- V4 = localStorage.getItem("linear-grab:slop-live") === "1";
47027
+ W4 = localStorage.getItem("linear-grab:slop-live") === "1";
47012
47028
  } catch {}
47013
- var H4 = /* @__PURE__ */ new Set();
47014
- function U4() {
47015
- return V4;
47029
+ var G4 = /* @__PURE__ */ new Set();
47030
+ function K4() {
47031
+ return W4;
47016
47032
  }
47017
- function W4(e) {
47018
- V4 = e;
47033
+ function q4(e) {
47034
+ W4 = e;
47019
47035
  try {
47020
47036
  localStorage.setItem("linear-grab:slop-live", e ? "1" : "0");
47021
47037
  } catch {}
47022
- for (let t of H4) t(e);
47023
- e && q4(300);
47038
+ for (let t of G4) t(e);
47039
+ e && X4(300);
47024
47040
  }
47025
- function G4(e) {
47026
- return H4.add(e), e(V4), () => void H4.delete(e);
47041
+ function J4(e) {
47042
+ return G4.add(e), e(W4), () => void G4.delete(e);
47027
47043
  }
47028
- var K4 = null;
47029
- function q4(e) {
47030
- K4 && clearTimeout(K4), K4 = setTimeout(() => {
47031
- if (K4 = null, V4) try {
47032
- R4();
47044
+ var Y4 = null;
47045
+ function X4(e) {
47046
+ Y4 && clearTimeout(Y4), Y4 = setTimeout(() => {
47047
+ if (Y4 = null, W4) try {
47048
+ V4();
47033
47049
  } catch {}
47034
47050
  }, e);
47035
47051
  }
47036
- var J4 = !1;
47037
- function Y4() {
47038
- if (J4 || typeof window > "u") return;
47039
- J4 = !0;
47052
+ var Z4 = !1;
47053
+ function Q4() {
47054
+ if (Z4 || typeof window > "u") return;
47055
+ Z4 = !0;
47040
47056
  let e = location.pathname;
47041
47057
  setInterval(() => {
47042
- location.pathname !== e && (e = location.pathname, V4 && q4(1e3));
47058
+ location.pathname !== e && (e = location.pathname, W4 && X4(1e3));
47043
47059
  }, 500);
47044
47060
  }
47045
47061
  //#endregion
47046
47062
  //#region src/panel/views/DesignView.tsx
47047
- var X4 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[7ch] text-center\">Extract"), Z4 = /*#__PURE__*/ N("<div class=\"relative flex flex-col gap-2 pl-4\"><div class=\"bg-border absolute top-1 bottom-1 left-[5px] w-px\"aria-hidden>"), Q4 = /*#__PURE__*/ N("<span class=\"text-success text-[12px] leading-none\">✓"), $4 = /*#__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\">"), e3 = /*#__PURE__*/ N("<div class=\"flex items-center justify-end gap-1 px-1\">"), t3 = /*#__PURE__*/ N("<span class=\"relative inline-flex items-center justify-center\"><svg width=12 height=12 viewBox=\"0 0 16 16\"fill=currentColor aria-hidden><rect x=3.5 y=3 width=3.2 height=10 rx=1></rect><rect x=9.3 y=3 width=3.2 height=10 rx=1></rect></svg><span class=\"bg-success absolute -top-0.5 -right-0.5 size-1.5 animate-pulse rounded-full\"aria-hidden>"), n3 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[5ch] text-center\">Audit"), r3 = /*#__PURE__*/ N("<div class=\"flex max-h-72 flex-col gap-1.5 overflow-y-auto pr-2\">"), i3 = /*#__PURE__*/ N("<span class=\"text-[12px] leading-none\">✓"), a3 = /*#__PURE__*/ N("<div class=\"flex items-center gap-1 px-1\">"), o3 = /*#__PURE__*/ N("<span class=\"text-text-faint font-normal tabular-nums\"> · <!> pages"), s3 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[4ch] text-center\">Scan"), c3 = /*#__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"), l3 = /*#__PURE__*/ N("<div class=\"flex h-full flex-col gap-3 overflow-y-auto pt-3 pb-4 pr-3 pl-2\"><div class=\"flex items-center justify-between gap-2 px-1\"><div class=min-w-0><p class=\"text-text text-[12.5px] font-semibold\">Design genomes</p><p class=\"text-text-faint text-[10.5px] leading-snug\">Point at a component → get its structure, tokens and interaction states as a spec you can hand to an agent.</p></div></div><div class=\"border-border mt-1 flex flex-col gap-2 border-t pt-3\"><div class=\"flex items-center justify-between gap-2 px-1\"><div class=min-w-0><p class=\"text-text text-[12.5px] font-semibold\">CSS slowdowns</p><p class=\"text-text-faint text-[10.5px] leading-snug\">Transitions/delays over the 100ms house cap (§42) on interactive elements — feedback that animates instead of being instant. Live hits appear as you use the app; Audit sweeps the whole page.</p></div><div class=\"flex shrink-0 items-center gap-1\"></div></div></div><div class=\"border-border mt-1 flex flex-col gap-2 border-t pt-3\"><div class=\"flex items-center justify-between gap-2 px-1\"><div class=min-w-0><p class=\"text-text text-[12.5px] font-semibold\">Slop scan</p><p class=\"text-text-faint text-[10.5px] leading-snug\">Design-contract drift — Linear-primitives rules checked against the live DOM. Results accumulate per page as you navigate; re-scanning a page overwrites only that page's findings.</p></div><div class=\"flex shrink-0 items-center gap-1\">"), u3 = /*#__PURE__*/ N("<p class=\"text-text mt-1 text-[11px] font-semibold\">Interaction states"), d3 = /*#__PURE__*/ N("<svg width=12 height=12 viewBox=\"0 0 16 16\"aria-hidden><rect x=3.5 y=3.5 width=9 height=9 rx=1.5 fill=currentColor>"), f3 = /*#__PURE__*/ N("<span class=\"text-warn text-[10.5px] font-medium tabular-nums\">s · <!> states"), p3 = /*#__PURE__*/ N("<div class=\"border-border flex flex-col gap-2 border-t px-2.5 py-2\"><p class=\"text-text-faint truncate text-[10px]\"></p><div class=\"flex max-h-64 flex-col gap-2 overflow-y-auto pr-2\"></div><div class=\"flex items-center gap-1\">"), m3 = /*#__PURE__*/ N("<div class=relative><span class=\"border-border bg-surface absolute top-3 -left-[13.5px] size-[9px] rounded-full border\"aria-hidden></span><div class=\"bg-surface border-border flex flex-col rounded-lg border\"><button class=\"flex w-full cursor-pointer items-center gap-2 px-2.5 py-2 text-left\"><span class=\"text-accent min-w-0 truncate font-mono text-[12px]\"></span><span class=\"text-text-faint ml-auto shrink-0 text-[10.5px] tabular-nums\"> roles<!> · </span><svg width=10 height=10 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 class=\"text-text-faint shrink-0 transition-transform\"aria-hidden><path d=\"m4 6 4 4 4-4\">"), h3 = /*#__PURE__*/ N("<span class=text-text-faint> ×"), g3 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-0.5\"><p class=\"text-text text-[11px] font-medium\">"), _3 = /*#__PURE__*/ N("<span class=text-accent> ← var(<!>)"), v3 = /*#__PURE__*/ N("<p class=\"text-text-dim font-mono text-[10px] leading-snug break-all\">: "), y3 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-0.5\"><p class=\"text-warn text-[10.5px] font-medium\"> — "), b3 = /*#__PURE__*/ N("<p class=\"text-text-dim font-mono text-[10px] leading-snug break-all\">: <!> → "), x3 = /*#__PURE__*/ N("<svg width=13 height=13 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round aria-hidden><circle cx=8 cy=8 r=6></circle><circle cx=8 cy=8 r=2 fill=currentColor stroke=none>"), S3 = /*#__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\">"), C3 = /*#__PURE__*/ N("<svg width=12 height=12 viewBox=\"0 0 16 16\"fill=currentColor aria-hidden><path d=\"M4.5 2.5v11l9-5.5z\">"), w3 = /*#__PURE__*/ N("<p class=\"text-text-faint px-1 text-[10.5px]\">Nothing caught yet — interact with the app, or run Audit."), T3 = /*#__PURE__*/ N("<span class=\"text-text-dim font-mono text-[10px] break-all\">"), E3 = /*#__PURE__*/ N("<span class=\"text-danger text-[10px] leading-snug\">⚠ layout/paint transition: "), D3 = /*#__PURE__*/ N("<span class=\"text-danger text-[10px] leading-snug\">⚠ ease-in easing: "), O3 = /*#__PURE__*/ N("<div class=\"bg-surface border-border flex flex-col gap-0.5 rounded-lg border p-2\"><div class=\"flex items-center gap-2\"><span class=\"text-warn shrink-0 text-[10px] font-semibold tracking-wide uppercase\"></span><span class=\"text-accent min-w-0 truncate font-mono text-[11.5px]\"></span><span class=\"text-text ml-auto shrink-0 text-[11px] font-medium tabular-nums\">ms</span></div><span class=\"text-text-dim text-[10px] leading-snug\"></span><span class=\"text-text-faint text-[10px] leading-snug\">"), k3 = /*#__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\">"), A3 = /*#__PURE__*/ N("<p class=\"text-text-faint px-1 text-[10.5px]\">No scan yet — click Scan to audit this page against the contract."), j3 = /*#__PURE__*/ N("<div class=\"border-border flex flex-col gap-1 border-t px-2 py-1.5\"><p class=\"text-text-dim text-[10px] leading-snug\">"), M3 = /*#__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\">"), N3 = /*#__PURE__*/ N("<span class=text-accent> "), P3 = /*#__PURE__*/ N("<span class=\"text-text-faint tabular-nums\"> ×"), F3 = /*#__PURE__*/ N("<button class=\"hover:bg-surface-2 flex w-full cursor-pointer flex-col gap-0.5 rounded px-1 py-0.5 text-left\"title=\"Reveal on the page\"><span class=\"text-text min-w-0 truncate font-mono text-[10.5px]\"></span><span class=\"text-text-faint font-mono text-[10px] leading-snug break-all\">"), I3 = "linear-grab:genomes:v1", L3 = 30;
47048
- function R3() {
47063
+ var $4 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[7ch] text-center\">Extract"), e3 = /*#__PURE__*/ N("<div class=\"relative flex flex-col gap-2 pl-4\"><div class=\"bg-border absolute top-1 bottom-1 left-[5px] w-px\"aria-hidden>"), t3 = /*#__PURE__*/ N("<span class=\"text-success text-[12px] leading-none\">✓"), n3 = /*#__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\">"), r3 = /*#__PURE__*/ N("<div class=\"flex items-center justify-end gap-1 px-1\">"), i3 = /*#__PURE__*/ N("<span class=\"relative inline-flex items-center justify-center\"><svg width=12 height=12 viewBox=\"0 0 16 16\"fill=currentColor aria-hidden><rect x=3.5 y=3 width=3.2 height=10 rx=1></rect><rect x=9.3 y=3 width=3.2 height=10 rx=1></rect></svg><span class=\"bg-success absolute -top-0.5 -right-0.5 size-1.5 animate-pulse rounded-full\"aria-hidden>"), a3 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[5ch] text-center\">Audit"), o3 = /*#__PURE__*/ N("<div class=\"flex max-h-72 flex-col gap-1.5 overflow-y-auto pr-2\">"), s3 = /*#__PURE__*/ N("<span class=\"text-[12px] leading-none\">✓"), c3 = /*#__PURE__*/ N("<div class=\"flex items-center gap-1 px-1\">"), l3 = /*#__PURE__*/ N("<span class=\"text-text-faint font-normal tabular-nums\"> · <!> pages"), u3 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[4ch] text-center\">Scan"), d3 = /*#__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"), f3 = /*#__PURE__*/ N("<div class=\"flex h-full flex-col gap-3 overflow-y-auto pt-3 pb-4 pr-3 pl-2\"><div class=\"flex items-center justify-between gap-2 px-1\"><div class=min-w-0><p class=\"text-text text-[12.5px] font-semibold\">Design genomes</p><p class=\"text-text-faint text-[10.5px] leading-snug\">Point at a component → get its structure, tokens and interaction states as a spec you can hand to an agent.</p></div></div><div class=\"border-border mt-1 flex flex-col gap-2 border-t pt-3\"><div class=\"flex items-center justify-between gap-2 px-1\"><div class=min-w-0><p class=\"text-text text-[12.5px] font-semibold\">CSS slowdowns</p><p class=\"text-text-faint text-[10.5px] leading-snug\">Transitions/delays over the 100ms house cap (§42) on interactive elements — feedback that animates instead of being instant. Live hits appear as you use the app; Audit sweeps the whole page.</p></div><div class=\"flex shrink-0 items-center gap-1\"></div></div></div><div class=\"border-border mt-1 flex flex-col gap-2 border-t pt-3\"><div class=\"flex items-center justify-between gap-2 px-1\"><div class=min-w-0><p class=\"text-text text-[12.5px] font-semibold\">Slop scan</p><p class=\"text-text-faint text-[10.5px] leading-snug\">Design-contract drift — Linear-primitives rules checked against the live DOM. Results accumulate per page as you navigate; re-scanning a page overwrites only that page's findings.</p></div><div class=\"flex shrink-0 items-center gap-1\">"), p3 = /*#__PURE__*/ N("<p class=\"text-text mt-1 text-[11px] font-semibold\">Interaction states"), m3 = /*#__PURE__*/ N("<svg width=12 height=12 viewBox=\"0 0 16 16\"aria-hidden><rect x=3.5 y=3.5 width=9 height=9 rx=1.5 fill=currentColor>"), h3 = /*#__PURE__*/ N("<span class=\"text-warn text-[10.5px] font-medium tabular-nums\">s · <!> states"), g3 = /*#__PURE__*/ N("<div class=\"border-border flex flex-col gap-2 border-t px-2.5 py-2\"><p class=\"text-text-faint truncate text-[10px]\"></p><div class=\"flex max-h-64 flex-col gap-2 overflow-y-auto pr-2\"></div><div class=\"flex items-center gap-1\">"), _3 = /*#__PURE__*/ N("<div class=relative><span class=\"border-border bg-surface absolute top-3 -left-[13.5px] size-[9px] rounded-full border\"aria-hidden></span><div class=\"bg-surface border-border flex flex-col rounded-lg border\"><button class=\"flex w-full cursor-pointer items-center gap-2 px-2.5 py-2 text-left\"><span class=\"text-accent min-w-0 truncate font-mono text-[12px]\"></span><span class=\"text-text-faint ml-auto shrink-0 text-[10.5px] tabular-nums\"> roles<!> · </span><svg width=10 height=10 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 class=\"text-text-faint shrink-0 transition-transform\"aria-hidden><path d=\"m4 6 4 4 4-4\">"), v3 = /*#__PURE__*/ N("<span class=text-text-faint> ×"), y3 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-0.5\"><p class=\"text-text text-[11px] font-medium\">"), b3 = /*#__PURE__*/ N("<span class=text-accent> ← var(<!>)"), x3 = /*#__PURE__*/ N("<p class=\"text-text-dim font-mono text-[10px] leading-snug break-all\">: "), S3 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-0.5\"><p class=\"text-warn text-[10.5px] font-medium\"> — "), C3 = /*#__PURE__*/ N("<p class=\"text-text-dim font-mono text-[10px] leading-snug break-all\">: <!> → "), w3 = /*#__PURE__*/ N("<svg width=13 height=13 viewBox=\"0 0 16 16\"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round aria-hidden><circle cx=8 cy=8 r=6></circle><circle cx=8 cy=8 r=2 fill=currentColor stroke=none>"), T3 = /*#__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\">"), E3 = /*#__PURE__*/ N("<svg width=12 height=12 viewBox=\"0 0 16 16\"fill=currentColor aria-hidden><path d=\"M4.5 2.5v11l9-5.5z\">"), D3 = /*#__PURE__*/ N("<p class=\"text-text-faint px-1 text-[10.5px]\">Nothing caught yet — interact with the app, or run Audit."), O3 = /*#__PURE__*/ N("<span class=\"text-text-dim font-mono text-[10px] break-all\">"), k3 = /*#__PURE__*/ N("<span class=\"text-danger text-[10px] leading-snug\">⚠ layout/paint transition: "), A3 = /*#__PURE__*/ N("<span class=\"text-danger text-[10px] leading-snug\">⚠ ease-in easing: "), j3 = /*#__PURE__*/ N("<div class=\"bg-surface border-border flex flex-col gap-0.5 rounded-lg border p-2\"><div class=\"flex items-center gap-2\"><span class=\"text-warn shrink-0 text-[10px] font-semibold tracking-wide uppercase\"></span><span class=\"text-accent min-w-0 truncate font-mono text-[11.5px]\"></span><span class=\"text-text ml-auto shrink-0 text-[11px] font-medium tabular-nums\">ms</span></div><span class=\"text-text-dim text-[10px] leading-snug\"></span><span class=\"text-text-faint text-[10px] leading-snug\">"), M3 = /*#__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\">"), N3 = /*#__PURE__*/ N("<p class=\"text-text-faint px-1 text-[10.5px]\">No scan yet — click Scan to audit this page against the contract."), P3 = /*#__PURE__*/ N("<div class=\"border-border flex flex-col gap-1 border-t px-2 py-1.5\"><p class=\"text-text-dim text-[10px] leading-snug\">"), F3 = /*#__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\">"), I3 = /*#__PURE__*/ N("<span class=text-accent> "), L3 = /*#__PURE__*/ N("<span class=\"text-text-faint tabular-nums\"> ×"), R3 = /*#__PURE__*/ N("<button class=\"hover:bg-surface-2 flex w-full cursor-pointer flex-col gap-0.5 rounded px-1 py-0.5 text-left\"title=\"Reveal on the page\"><span class=\"text-text min-w-0 truncate font-mono text-[10.5px]\"></span><span class=\"text-text-faint font-mono text-[10px] leading-snug break-all\">"), z3 = "linear-grab:genomes:v1", B3 = 30;
47064
+ function V3() {
47049
47065
  try {
47050
- return JSON.parse(localStorage.getItem(I3) ?? "[]");
47066
+ return JSON.parse(localStorage.getItem(z3) ?? "[]");
47051
47067
  } catch {
47052
47068
  return [];
47053
47069
  }
47054
47070
  }
47055
- function z3(e) {
47071
+ function H3(e) {
47056
47072
  try {
47057
- localStorage.setItem(I3, JSON.stringify(e.slice(0, L3)));
47073
+ localStorage.setItem(z3, JSON.stringify(e.slice(0, B3)));
47058
47074
  } catch {}
47059
47075
  }
47060
- var B3 = /* @__PURE__ */ new Map();
47061
- function V3(e) {
47076
+ var U3 = /* @__PURE__ */ new Map();
47077
+ function W3(e) {
47062
47078
  let t = e.el?.deref();
47063
47079
  if (!(t instanceof HTMLElement) || !t.isConnected) return !1;
47064
47080
  t.scrollIntoView({
@@ -47070,8 +47086,8 @@ function V3(e) {
47070
47086
  t.style.outline = n, t.style.outlineOffset = r;
47071
47087
  }, 1400), !0;
47072
47088
  }
47073
- function H3() {
47074
- let [e, t] = T(R3()), [n, r] = T(null), [i, a] = T(null), [o, s] = T(null), [c, l] = T(null), [u, d] = T(null), [f, p] = T({
47089
+ function G3() {
47090
+ let [e, t] = T(V3()), [n, r] = T(null), [i, a] = T(null), [o, s] = T(null), [c, l] = T(null), [u, d] = T(null), [f, p] = T({
47075
47091
  active: !1,
47076
47092
  msLeft: 0,
47077
47093
  total: 0,
@@ -47102,20 +47118,20 @@ function H3() {
47102
47118
  l("Clipboard was blocked — click Copy again.");
47103
47119
  }
47104
47120
  }, [k, ee] = T([]);
47105
- ae(I4(ee));
47106
- let [te, A] = T(U4());
47107
- ae(G4(A));
47121
+ ae(z4(ee));
47122
+ let [te, A] = T(K4());
47123
+ ae(J4(A));
47108
47124
  let [ne, re] = T(!1), [ie, oe] = T(null), [se, ce] = T(!0), [le, ue] = T(!0), [de, fe] = T(!1), [pe, me] = T(!1), he = () => {
47109
47125
  l(null), re(!0);
47110
47126
  try {
47111
- R4(), oe(null);
47127
+ V4(), oe(null);
47112
47128
  } catch (e) {
47113
47129
  l(e instanceof Error ? e.message : String(e));
47114
47130
  } finally {
47115
47131
  re(!1);
47116
47132
  }
47117
47133
  }, ge = () => {
47118
- L4(), oe(null);
47134
+ B4(), oe(null);
47119
47135
  }, _e = () => new Set(k().map((e) => e.page)).size, ve = () => k().filter((e) => e.severity === "error" ? se() : le()), ye = () => {
47120
47136
  let e = /* @__PURE__ */ new Map();
47121
47137
  for (let t of ve()) {
@@ -47125,25 +47141,25 @@ function H3() {
47125
47141
  return [...e.values()].sort((e, t) => Number(t[0].severity === "error") - Number(e[0].severity === "error") || t.length - e.length);
47126
47142
  }, be = () => k().filter((e) => e.severity === "error").length, xe = () => k().length - be(), Se = async () => {
47127
47143
  try {
47128
- await navigator.clipboard.writeText(M4(ve())), fe(!0), setTimeout(() => fe(!1), 1600);
47144
+ await navigator.clipboard.writeText(F4(ve())), fe(!0), setTimeout(() => fe(!1), 1600);
47129
47145
  } catch {
47130
47146
  l("Clipboard was blocked — click Copy again.");
47131
47147
  }
47132
47148
  }, Ce = async () => {
47133
47149
  try {
47134
- await navigator.clipboard.writeText(N4(ve())), me(!0), setTimeout(() => me(!1), 1600);
47150
+ await navigator.clipboard.writeText(I4(ve())), me(!0), setTimeout(() => me(!1), 1600);
47135
47151
  } catch {
47136
47152
  l("Clipboard was blocked — click Copy again.");
47137
47153
  }
47138
47154
  }, we = (e) => {
47139
- t(e), z3(e);
47155
+ t(e), H3(e);
47140
47156
  }, Te = async () => {
47141
47157
  l(null), a("extract"), window.dispatchEvent(new CustomEvent(BZ));
47142
47158
  try {
47143
47159
  let t = await u2();
47144
47160
  if (!t) return;
47145
47161
  let n = await e2(t), i = Date.now();
47146
- B3.set(i, new WeakRef(t)), we([{
47162
+ U3.set(i, new WeakRef(t)), we([{
47147
47163
  id: i,
47148
47164
  genome: n
47149
47165
  }, ...e()]), r(i);
@@ -47155,10 +47171,10 @@ function H3() {
47155
47171
  }, Ee = async (t) => {
47156
47172
  l(null), a(t.id), window.dispatchEvent(new CustomEvent(BZ));
47157
47173
  try {
47158
- let n = B3.get(t.id)?.deref() ?? null;
47174
+ let n = U3.get(t.id)?.deref() ?? null;
47159
47175
  if (!n || !n.isConnected) {
47160
47176
  if (n = await u2(), !n) return;
47161
- B3.set(t.id, new WeakRef(n));
47177
+ U3.set(t.id, new WeakRef(n));
47162
47178
  }
47163
47179
  let r = await c2(n, 8e3, (e) => s(Math.ceil(e / 1e3)));
47164
47180
  r.length === 0 && l("No state changes captured — hover/open the component while the 8s window runs."), we(e().map((e) => e.id === t.id ? {
@@ -47180,7 +47196,7 @@ function H3() {
47180
47196
  l("Clipboard was blocked — click Copy again.");
47181
47197
  }
47182
47198
  }, Oe = (t) => {
47183
- B3.delete(t), we(e().filter((e) => e.id !== t));
47199
+ U3.delete(t), we(e().filter((e) => e.id !== t));
47184
47200
  }, [ke, Ae] = T(!1), je = async () => {
47185
47201
  try {
47186
47202
  let t = e().map((e) => l2(e.genome)).join("\n\n---\n\n");
@@ -47189,10 +47205,10 @@ function H3() {
47189
47205
  l("Clipboard was blocked — click Copy again.");
47190
47206
  }
47191
47207
  }, Me = () => {
47192
- B3.clear(), we([]), r(null);
47208
+ U3.clear(), we([]), r(null);
47193
47209
  };
47194
47210
  return (() => {
47195
- var t = l3(), a = t.firstChild;
47211
+ var t = f3(), a = t.firstChild;
47196
47212
  a.firstChild;
47197
47213
  var o = a.nextSibling, s = o.firstChild.firstChild.nextSibling, d = o.nextSibling, p = d.firstChild.firstChild, h = p.firstChild;
47198
47214
  h.firstChild;
@@ -47205,7 +47221,7 @@ function H3() {
47205
47221
  },
47206
47222
  onClick: () => void Te(),
47207
47223
  get children() {
47208
- return X4();
47224
+ return $4();
47209
47225
  }
47210
47226
  }), null), P(t, j(M, {
47211
47227
  get when() {
@@ -47228,7 +47244,7 @@ function H3() {
47228
47244
  },
47229
47245
  get children() {
47230
47246
  return [(() => {
47231
- var t = Z4();
47247
+ var t = e3();
47232
47248
  return t.firstChild, P(t, j(We, {
47233
47249
  get each() {
47234
47250
  return e();
@@ -47236,7 +47252,7 @@ function H3() {
47236
47252
  children: (e) => {
47237
47253
  let t = () => n() === e.id;
47238
47254
  return (() => {
47239
- var n = m3(), a = n.firstChild, o = a.nextSibling, s = o.firstChild, c = s.firstChild, l = c.nextSibling, d = l.firstChild, p = d.nextSibling;
47255
+ var n = _3(), a = n.firstChild, o = a.nextSibling, s = o.firstChild, c = s.firstChild, l = c.nextSibling, d = l.firstChild, p = d.nextSibling;
47240
47256
  p.nextSibling;
47241
47257
  var m = l.nextSibling;
47242
47258
  return s.$$click = () => r(t() ? null : e.id), P(c, () => e.genome.title), P(l, () => e.genome.nodes.length, d), P(l, (() => {
@@ -47247,19 +47263,19 @@ function H3() {
47247
47263
  return t();
47248
47264
  },
47249
47265
  get children() {
47250
- var t = p3(), n = t.firstChild, r = n.nextSibling, a = r.nextSibling;
47266
+ var t = g3(), n = t.firstChild, r = n.nextSibling, a = r.nextSibling;
47251
47267
  return P(n, () => e.genome.pageUrl), P(r, j(We, {
47252
47268
  get each() {
47253
47269
  return e.genome.nodes;
47254
47270
  },
47255
47271
  children: (e) => (() => {
47256
- var t = g3(), n = t.firstChild;
47272
+ var t = y3(), n = t.firstChild;
47257
47273
  return P(n, () => e.label, null), P(n, j(M, {
47258
47274
  get when() {
47259
47275
  return e.count > 1;
47260
47276
  },
47261
47277
  get children() {
47262
- var t = h3();
47278
+ var t = v3();
47263
47279
  return t.firstChild, P(t, () => e.count, null), t;
47264
47280
  }
47265
47281
  }), null), P(t, j(We, {
@@ -47267,13 +47283,13 @@ function H3() {
47267
47283
  return Object.entries(e.styles);
47268
47284
  },
47269
47285
  children: ([t, n]) => (() => {
47270
- var r = v3(), i = r.firstChild;
47286
+ var r = x3(), i = r.firstChild;
47271
47287
  return P(r, t, i), P(r, n, null), P(r, j(M, {
47272
47288
  get when() {
47273
47289
  return e.tokens[t];
47274
47290
  },
47275
47291
  get children() {
47276
- var n = _3(), r = n.firstChild.nextSibling;
47292
+ var n = b3(), r = n.firstChild.nextSibling;
47277
47293
  return r.nextSibling, P(n, () => e.tokens[t], r), n;
47278
47294
  }
47279
47295
  }), null), r;
@@ -47285,18 +47301,18 @@ function H3() {
47285
47301
  return e.genome.states.length > 0;
47286
47302
  },
47287
47303
  get children() {
47288
- return [u3(), j(We, {
47304
+ return [p3(), j(We, {
47289
47305
  get each() {
47290
47306
  return e.genome.states;
47291
47307
  },
47292
47308
  children: (e) => (() => {
47293
- var t = y3(), n = t.firstChild, r = n.firstChild;
47309
+ var t = S3(), n = t.firstChild, r = n.firstChild;
47294
47310
  return P(n, () => e.label, r), P(n, () => e.trigger, null), P(t, j(We, {
47295
47311
  get each() {
47296
47312
  return Object.entries(e.changed);
47297
47313
  },
47298
47314
  children: ([e, t]) => (() => {
47299
- var n = b3(), r = n.firstChild, i = r.nextSibling;
47315
+ var n = C3(), r = n.firstChild, i = r.nextSibling;
47300
47316
  return i.nextSibling, P(n, e, r), P(n, () => t.from, i), P(n, () => t.to, null), n;
47301
47317
  })()
47302
47318
  }), null), t;
@@ -47318,7 +47334,7 @@ function H3() {
47318
47334
  "aria-label": "Capture interaction states",
47319
47335
  onClick: () => void Ee(e),
47320
47336
  get children() {
47321
- return x3();
47337
+ return w3();
47322
47338
  }
47323
47339
  });
47324
47340
  },
@@ -47332,10 +47348,10 @@ function H3() {
47332
47348
  "aria-label": "Stop recording states",
47333
47349
  onClick: () => o2(),
47334
47350
  get children() {
47335
- return d3();
47351
+ return m3();
47336
47352
  }
47337
47353
  }), (() => {
47338
- var e = f3(), t = e.firstChild, n = t.nextSibling;
47354
+ var e = h3(), t = e.firstChild, n = t.nextSibling;
47339
47355
  return n.nextSibling, P(e, () => Math.ceil(f().msLeft / 1e3), t), P(e, () => f().total, n), e;
47340
47356
  })()];
47341
47357
  }
@@ -47353,10 +47369,10 @@ function H3() {
47353
47369
  return u() === e.id;
47354
47370
  },
47355
47371
  get fallback() {
47356
- return S3();
47372
+ return T3();
47357
47373
  },
47358
47374
  get children() {
47359
- return Q4();
47375
+ return t3();
47360
47376
  }
47361
47377
  });
47362
47378
  }
@@ -47367,7 +47383,7 @@ function H3() {
47367
47383
  "aria-label": "Delete genome",
47368
47384
  onClick: () => Oe(e.id),
47369
47385
  get children() {
47370
- return $4();
47386
+ return n3();
47371
47387
  }
47372
47388
  }), null), t;
47373
47389
  }
@@ -47382,7 +47398,7 @@ function H3() {
47382
47398
  }
47383
47399
  }), null), t;
47384
47400
  })(), (() => {
47385
- var e = e3();
47401
+ var e = r3();
47386
47402
  return P(e, j(q, {
47387
47403
  class: "size-7 px-0",
47388
47404
  variant: "ghost",
@@ -47397,10 +47413,10 @@ function H3() {
47397
47413
  return ke();
47398
47414
  },
47399
47415
  get fallback() {
47400
- return S3();
47416
+ return T3();
47401
47417
  },
47402
47418
  get children() {
47403
- return Q4();
47419
+ return t3();
47404
47420
  }
47405
47421
  });
47406
47422
  }
@@ -47411,7 +47427,7 @@ function H3() {
47411
47427
  "aria-label": "Delete all genomes",
47412
47428
  onClick: Me,
47413
47429
  get children() {
47414
- return $4();
47430
+ return n3();
47415
47431
  }
47416
47432
  }), null), e;
47417
47433
  })()];
@@ -47432,10 +47448,10 @@ function H3() {
47432
47448
  return g();
47433
47449
  },
47434
47450
  get fallback() {
47435
- return C3();
47451
+ return E3();
47436
47452
  },
47437
47453
  get children() {
47438
- return t3();
47454
+ return i3();
47439
47455
  }
47440
47456
  });
47441
47457
  }
@@ -47447,24 +47463,24 @@ function H3() {
47447
47463
  },
47448
47464
  onClick: () => void S(),
47449
47465
  get children() {
47450
- return n3();
47466
+ return a3();
47451
47467
  }
47452
47468
  }), null), P(o, j(M, {
47453
47469
  get when() {
47454
47470
  return m().length > 0;
47455
47471
  },
47456
47472
  get fallback() {
47457
- return w3();
47473
+ return D3();
47458
47474
  },
47459
47475
  get children() {
47460
47476
  return [(() => {
47461
- var e = r3();
47477
+ var e = o3();
47462
47478
  return P(e, j(We, {
47463
47479
  get each() {
47464
47480
  return m();
47465
47481
  },
47466
47482
  children: (e) => (() => {
47467
- var t = O3(), n = t.firstChild, r = n.firstChild, i = r.nextSibling, a = i.nextSibling, o = a.firstChild, s = n.nextSibling, c = s.nextSibling;
47483
+ var t = j3(), n = t.firstChild, r = n.firstChild, i = r.nextSibling, a = i.nextSibling, o = a.firstChild, s = n.nextSibling, c = s.nextSibling;
47468
47484
  return P(r, () => e.mode === "live" ? "live" : "audit"), P(i, () => e.component ?? e.element, null), P(i, j(M, {
47469
47485
  get when() {
47470
47486
  return e.count > 1;
@@ -47480,7 +47496,7 @@ function H3() {
47480
47496
  return e.source;
47481
47497
  },
47482
47498
  get children() {
47483
- var t = T3();
47499
+ var t = O3();
47484
47500
  return P(t, () => e.source), t;
47485
47501
  }
47486
47502
  }), s), P(s, () => e.properties.join(", "), null), P(s, j(M, {
@@ -47499,7 +47515,7 @@ function H3() {
47499
47515
  return e.jankProps?.length;
47500
47516
  },
47501
47517
  get children() {
47502
- var t = E3();
47518
+ var t = k3();
47503
47519
  return t.firstChild, P(t, () => e.jankProps.join(", "), null), t;
47504
47520
  }
47505
47521
  }), c), P(t, j(M, {
@@ -47507,14 +47523,14 @@ function H3() {
47507
47523
  return e.easing;
47508
47524
  },
47509
47525
  get children() {
47510
- var t = D3();
47526
+ var t = A3();
47511
47527
  return t.firstChild, P(t, () => e.easing, null), t;
47512
47528
  }
47513
47529
  }), c), P(c, () => e.suggestion), t;
47514
47530
  })()
47515
47531
  })), e;
47516
47532
  })(), (() => {
47517
- var e = a3();
47533
+ var e = c3();
47518
47534
  return P(e, j(q, {
47519
47535
  class: "size-7 px-0",
47520
47536
  variant: "primary",
@@ -47529,10 +47545,10 @@ function H3() {
47529
47545
  return w();
47530
47546
  },
47531
47547
  get fallback() {
47532
- return k3();
47548
+ return M3();
47533
47549
  },
47534
47550
  get children() {
47535
- return i3();
47551
+ return s3();
47536
47552
  }
47537
47553
  });
47538
47554
  }
@@ -47550,10 +47566,10 @@ function H3() {
47550
47566
  return b();
47551
47567
  },
47552
47568
  get fallback() {
47553
- return S3();
47569
+ return T3();
47554
47570
  },
47555
47571
  get children() {
47556
- return Q4();
47572
+ return t3();
47557
47573
  }
47558
47574
  });
47559
47575
  }
@@ -47564,7 +47580,7 @@ function H3() {
47564
47580
  "aria-label": "Clear all findings",
47565
47581
  onClick: M2,
47566
47582
  get children() {
47567
- return $4();
47583
+ return n3();
47568
47584
  }
47569
47585
  }), null), e;
47570
47586
  })()];
@@ -47574,7 +47590,7 @@ function H3() {
47574
47590
  return _e() > 1;
47575
47591
  },
47576
47592
  get children() {
47577
- var e = o3(), t = e.firstChild.nextSibling;
47593
+ var e = l3(), t = e.firstChild.nextSibling;
47578
47594
  return t.nextSibling, P(e, _e, t), e;
47579
47595
  }
47580
47596
  }), null), P(_, j(q, {
@@ -47586,17 +47602,17 @@ function H3() {
47586
47602
  get "aria-label"() {
47587
47603
  return te() ? "Pause live scan" : "Start live scan";
47588
47604
  },
47589
- onClick: () => W4(!te()),
47605
+ onClick: () => q4(!te()),
47590
47606
  get children() {
47591
47607
  return j(M, {
47592
47608
  get when() {
47593
47609
  return te();
47594
47610
  },
47595
47611
  get fallback() {
47596
- return C3();
47612
+ return E3();
47597
47613
  },
47598
47614
  get children() {
47599
- return t3();
47615
+ return i3();
47600
47616
  }
47601
47617
  });
47602
47618
  }
@@ -47609,19 +47625,19 @@ function H3() {
47609
47625
  title: "Scan this page — cumulative: keeps other pages' findings, replaces this page's",
47610
47626
  onClick: he,
47611
47627
  get children() {
47612
- return s3();
47628
+ return u3();
47613
47629
  }
47614
47630
  }), null), P(d, j(M, {
47615
47631
  get when() {
47616
47632
  return k().length > 0;
47617
47633
  },
47618
47634
  get fallback() {
47619
- return A3();
47635
+ return N3();
47620
47636
  },
47621
47637
  get children() {
47622
47638
  return [
47623
47639
  (() => {
47624
- var e = c3(), t = e.firstChild, n = t.firstChild, r = t.nextSibling, i = r.firstChild;
47640
+ var e = d3(), t = e.firstChild, n = t.firstChild, r = t.nextSibling, i = r.firstChild;
47625
47641
  return t.$$click = () => ce(!se()), P(t, be, n), r.$$click = () => ue(!le()), P(r, xe, i), D((e) => {
47626
47642
  var n = {
47627
47643
  "text-danger bg-danger/10 border-danger/40": se(),
@@ -47639,7 +47655,7 @@ function H3() {
47639
47655
  }), e;
47640
47656
  })(),
47641
47657
  (() => {
47642
- var e = r3();
47658
+ var e = o3();
47643
47659
  return P(e, j(We, {
47644
47660
  get each() {
47645
47661
  return ye();
@@ -47647,7 +47663,7 @@ function H3() {
47647
47663
  children: (e) => {
47648
47664
  let t = e[0], n = () => ie() === t.ruleId;
47649
47665
  return (() => {
47650
- var r = M3(), i = r.firstChild, a = i.firstChild, o = a.nextSibling, s = o.nextSibling;
47666
+ var r = F3(), i = r.firstChild, a = i.firstChild, o = a.nextSibling, s = o.nextSibling;
47651
47667
  s.firstChild;
47652
47668
  var c = s.nextSibling;
47653
47669
  return i.$$click = () => oe(n() ? null : t.ruleId), P(o, () => t.ruleId), P(s, () => e.reduce((e, t) => e + (t.count ?? 1), 0), null), P(r, j(M, {
@@ -47655,19 +47671,19 @@ function H3() {
47655
47671
  return n();
47656
47672
  },
47657
47673
  get children() {
47658
- var n = j3(), r = n.firstChild;
47674
+ var n = P3(), r = n.firstChild;
47659
47675
  return P(r, () => t.description), P(n, j(We, {
47660
47676
  each: e,
47661
47677
  children: (e) => (() => {
47662
- var t = F3(), n = t.firstChild, r = n.nextSibling;
47678
+ var t = R3(), n = t.firstChild, r = n.nextSibling;
47663
47679
  return t.$$click = () => {
47664
- V3(e) || l(e.page === location.pathname ? "Element is gone — run Scan again." : `This finding is on ${e.page} — navigate there to reveal it.`);
47680
+ W3(e) || l(e.page === location.pathname ? "Element is gone — run Scan again." : `This finding is on ${e.page} — navigate there to reveal it.`);
47665
47681
  }, P(n, j(M, {
47666
47682
  get when() {
47667
47683
  return _e() > 1;
47668
47684
  },
47669
47685
  get children() {
47670
- var t = N3(), n = t.firstChild;
47686
+ var t = I3(), n = t.firstChild;
47671
47687
  return P(t, () => e.page, n), t;
47672
47688
  }
47673
47689
  }), null), P(n, j(M, {
@@ -47675,7 +47691,7 @@ function H3() {
47675
47691
  return e.component;
47676
47692
  },
47677
47693
  get children() {
47678
- var t = N3(), n = t.firstChild;
47694
+ var t = I3(), n = t.firstChild;
47679
47695
  return P(t, () => e.component, n), t;
47680
47696
  }
47681
47697
  }), null), P(n, () => e.selector, null), P(n, j(M, {
@@ -47683,7 +47699,7 @@ function H3() {
47683
47699
  return (e.count ?? 1) > 1;
47684
47700
  },
47685
47701
  get children() {
47686
- var t = P3();
47702
+ var t = L3();
47687
47703
  return t.firstChild, P(t, () => e.count, null), t;
47688
47704
  }
47689
47705
  }), null), P(t, j(M, {
@@ -47691,7 +47707,7 @@ function H3() {
47691
47707
  return e.source;
47692
47708
  },
47693
47709
  get children() {
47694
- var t = T3();
47710
+ var t = O3();
47695
47711
  return P(t, () => e.source), t;
47696
47712
  }
47697
47713
  }), r), P(r, () => e.evidence), t;
@@ -47711,7 +47727,7 @@ function H3() {
47711
47727
  })), e;
47712
47728
  })(),
47713
47729
  (() => {
47714
- var e = a3();
47730
+ var e = c3();
47715
47731
  return P(e, j(q, {
47716
47732
  class: "size-7 px-0",
47717
47733
  variant: "primary",
@@ -47726,10 +47742,10 @@ function H3() {
47726
47742
  return pe();
47727
47743
  },
47728
47744
  get fallback() {
47729
- return k3();
47745
+ return M3();
47730
47746
  },
47731
47747
  get children() {
47732
- return i3();
47748
+ return s3();
47733
47749
  }
47734
47750
  });
47735
47751
  }
@@ -47747,10 +47763,10 @@ function H3() {
47747
47763
  return de();
47748
47764
  },
47749
47765
  get fallback() {
47750
- return S3();
47766
+ return T3();
47751
47767
  },
47752
47768
  get children() {
47753
- return Q4();
47769
+ return t3();
47754
47770
  }
47755
47771
  });
47756
47772
  }
@@ -47761,7 +47777,7 @@ function H3() {
47761
47777
  "aria-label": "Clear scan results",
47762
47778
  onClick: ge,
47763
47779
  get children() {
47764
- return $4();
47780
+ return n3();
47765
47781
  }
47766
47782
  }), null), e;
47767
47783
  })()
@@ -47773,14 +47789,14 @@ function H3() {
47773
47789
  rt(["click"]);
47774
47790
  //#endregion
47775
47791
  //#region src/lib/renderScan.ts
47776
- function U3(e) {
47792
+ function K3(e) {
47777
47793
  return Math.round(e * 10) / 10;
47778
47794
  }
47779
- function W3(e, t, n) {
47795
+ function q3(e, t, n) {
47780
47796
  return e.rules[t]?.severity ?? n;
47781
47797
  }
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) {
47798
+ var J3 = /^(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*)$/;
47799
+ function Y3(e) {
47784
47800
  return e?.length ? e.map((e) => {
47785
47801
  try {
47786
47802
  let t = new RegExp(e);
@@ -47790,12 +47806,12 @@ function K3(e) {
47790
47806
  }
47791
47807
  }) : [];
47792
47808
  }
47793
- function q3(e, t) {
47794
- if (e.length <= 2 || G3.test(e)) return !0;
47809
+ function X3(e, t) {
47810
+ if (e.length <= 2 || J3.test(e)) return !0;
47795
47811
  for (let n of t) if (n(e)) return !0;
47796
47812
  return !1;
47797
47813
  }
47798
- function J3(e) {
47814
+ function Z3(e) {
47799
47815
  let t = /* @__PURE__ */ new Map();
47800
47816
  for (let n of e) for (let e of n.entries) {
47801
47817
  let n = t.get(e.name);
@@ -47808,13 +47824,13 @@ function J3(e) {
47808
47824
  }
47809
47825
  return t;
47810
47826
  }
47811
- function Y3(e, t, n) {
47812
- let r = [], i = K3(n?.ignore), a = e.map((e) => ({
47827
+ function Q3(e, t, n) {
47828
+ let r = [], i = Y3(n?.ignore), a = e.map((e) => ({
47813
47829
  ...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, () => {
47830
+ entries: e.entries.filter((e) => !X3(e.name, i)),
47831
+ mounts: Object.fromEntries(Object.entries(e.mounts).filter(([e]) => !X3(e, i)))
47832
+ })), o = Z3(a), s = t.budgets;
47833
+ return s6(r, () => {
47818
47834
  let e = [];
47819
47835
  for (let n of o.values()) {
47820
47836
  if (n.updates.length < 5 || !n.updates.every((e) => e.length === 0)) continue;
@@ -47822,20 +47838,20 @@ function Y3(e, t, n) {
47822
47838
  e.push({
47823
47839
  ruleId: "R9",
47824
47840
  shape: "B",
47825
- severity: W3(t, "R9", "error"),
47841
+ severity: q3(t, "R9", "error"),
47826
47842
  suspected: !0,
47827
47843
  description: `suspected R9 — ${n.name} re-rendered ${r}× with zero prop changes (dead memo or subscription-in-body)`,
47828
47844
  component: n.name,
47829
47845
  source: null,
47830
47846
  renders: r,
47831
- selfTime: U3(n.selfTime),
47847
+ selfTime: K3(n.selfTime),
47832
47848
  changes: [],
47833
- evidence: `${r} renders · ${U3(n.selfTime)}ms self · all props identity-equal`,
47849
+ evidence: `${r} renders · ${K3(n.selfTime)}ms self · all props identity-equal`,
47834
47850
  el: n.el
47835
47851
  });
47836
47852
  }
47837
47853
  return e;
47838
- }), i6(r, () => {
47854
+ }), s6(r, () => {
47839
47855
  let e = [];
47840
47856
  for (let n of o.values()) {
47841
47857
  if (n.updates.length < 5 || !n.updates.every((e) => e.length > 0 && e.every((e) => /\((?:fn|ref)\)$/.test(e)))) continue;
@@ -47843,20 +47859,20 @@ function Y3(e, t, n) {
47843
47859
  e.push({
47844
47860
  ruleId: "R5",
47845
47861
  shape: "B",
47846
- severity: W3(t, "R5", "error"),
47862
+ severity: q3(t, "R5", "error"),
47847
47863
  suspected: !0,
47848
47864
  description: `suspected R5 — ${i} renders of ${n.name} with fresh ${a} identity per parent render (memo defeated)`,
47849
47865
  component: n.name,
47850
47866
  source: null,
47851
47867
  renders: i,
47852
- selfTime: U3(n.selfTime),
47868
+ selfTime: K3(n.selfTime),
47853
47869
  changes: r,
47854
- evidence: `${i} renders · ${U3(n.selfTime)}ms self · churning ${a}`,
47870
+ evidence: `${i} renders · ${K3(n.selfTime)}ms self · churning ${a}`,
47855
47871
  el: n.el
47856
47872
  });
47857
47873
  }
47858
47874
  return e;
47859
- }), i6(r, () => {
47875
+ }), s6(r, () => {
47860
47876
  let e = [], n = /Tooltip|Menu|Popover|Context|Dialog|Dropdown/i;
47861
47877
  for (let r of a) for (let i of Object.keys(r.mounts)) {
47862
47878
  let a = r.mounts[i];
@@ -47865,7 +47881,7 @@ function Y3(e, t, n) {
47865
47881
  e.push({
47866
47882
  ruleId: "R4",
47867
47883
  shape: "A",
47868
- severity: W3(t, "R4", "error"),
47884
+ severity: q3(t, "R4", "error"),
47869
47885
  suspected: !0,
47870
47886
  description: `suspected R4 — ${a} ${i} instances mounted in one commit (per-row overlays should mount on intent)`,
47871
47887
  component: i,
@@ -47878,11 +47894,11 @@ function Y3(e, t, n) {
47878
47894
  });
47879
47895
  }
47880
47896
  return e;
47881
- }), i6(r, () => {
47897
+ }), s6(r, () => {
47882
47898
  let e = [];
47883
47899
  for (let t of a) {
47884
47900
  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` : "";
47901
+ let n = [...t.entries].sort((e, t) => t.selfTime - e.selfTime).slice(0, 3).map((e) => `${e.name} ${K3(e.selfTime)}ms`).join(", "), r = K3(t.duration), i = t.duration > 16 ? ` · ~${Math.round(1e3 / t.duration)} FPS` : "";
47886
47902
  e.push({
47887
47903
  ruleId: null,
47888
47904
  shape: null,
@@ -47898,7 +47914,7 @@ function Y3(e, t, n) {
47898
47914
  });
47899
47915
  }
47900
47916
  return e;
47901
- }), i6(r, () => {
47917
+ }), s6(r, () => {
47902
47918
  let e = [], t = /* @__PURE__ */ new Map();
47903
47919
  for (let e of a) {
47904
47920
  let n = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map();
@@ -47923,18 +47939,18 @@ function Y3(e, t, n) {
47923
47939
  component: n,
47924
47940
  source: null,
47925
47941
  renders: r.hits,
47926
- selfTime: U3(r.total),
47942
+ selfTime: K3(r.total),
47927
47943
  changes: [],
47928
- evidence: `${r.hits} commits over ${s.selfMs}ms self (worst ${U3(r.worst)}ms)`,
47944
+ evidence: `${r.hits} commits over ${s.selfMs}ms self (worst ${K3(r.worst)}ms)`,
47929
47945
  el: r.el
47930
47946
  });
47931
47947
  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);
47948
+ }), s6(r, () => {
47949
+ let n = [], r = a6(e.filter((e) => e.nearInput).map((e) => e.at).sort((e, t) => e - t), 1e3);
47934
47950
  return r >= 5 && n.push({
47935
47951
  ruleId: "R10",
47936
47952
  shape: "B",
47937
- severity: W3(t, "R10", "error"),
47953
+ severity: q3(t, "R10", "error"),
47938
47954
  suspected: !0,
47939
47955
  description: `suspected R10 — ${r} React commits during scroll/pointer movement (frame-rate state updates)`,
47940
47956
  component: null,
@@ -47944,12 +47960,12 @@ function Y3(e, t, n) {
47944
47960
  changes: [],
47945
47961
  evidence: `${r} commits within a 1s scroll/pointer window`
47946
47962
  }), n;
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);
47963
+ }), s6(r, () => {
47964
+ let n = [], { count: r, span: i } = o6(e.filter((e) => !e.nearInput).map((e) => e.at).sort((e, t) => e - t), 300);
47949
47965
  return r >= 8 && n.push({
47950
47966
  ruleId: "R24",
47951
47967
  shape: "B",
47952
- severity: W3(t, "R24", "warn"),
47968
+ severity: q3(t, "R24", "warn"),
47953
47969
  suspected: !0,
47954
47970
  description: `suspected R24 — ${r} commits in ${Math.round(i)}ms burst (multi-row writes / un-coalesced pokes?)`,
47955
47971
  component: null,
@@ -47959,9 +47975,9 @@ function Y3(e, t, n) {
47959
47975
  changes: [],
47960
47976
  evidence: `${r} commits in a ${Math.round(i)}ms burst (no input)`
47961
47977
  }), n;
47962
- }), i6(r, () => {
47978
+ }), s6(r, () => {
47963
47979
  let e = [];
47964
- if (!e6()) return e;
47980
+ if (!r6()) return e;
47965
47981
  for (let n of o.values()) {
47966
47982
  if (n.updates.length < 3) continue;
47967
47983
  let r = n.el?.deref();
@@ -47978,33 +47994,33 @@ function Y3(e, t, n) {
47978
47994
  e.push({
47979
47995
  ruleId: "R3",
47980
47996
  shape: "C",
47981
- severity: W3(t, "R3", "error"),
47997
+ severity: q3(t, "R3", "error"),
47982
47998
  suspected: !0,
47983
47999
  description: `suspected R3 — ${n.name} re-rendered ${a}× while its DOM is hidden/detached (closed host without everOpened gate?) [R3/R7/R23 family]`,
47984
48000
  component: n.name,
47985
48001
  source: null,
47986
48002
  renders: a,
47987
- selfTime: U3(n.selfTime),
48003
+ selfTime: K3(n.selfTime),
47988
48004
  changes: [],
47989
- evidence: `${a} renders while hidden/detached · ${U3(n.selfTime)}ms self`,
48005
+ evidence: `${a} renders while hidden/detached · ${K3(n.selfTime)}ms self`,
47990
48006
  el: n.el
47991
48007
  });
47992
48008
  }
47993
48009
  return e;
47994
- }), a6(r);
48010
+ }), c6(r);
47995
48011
  }
47996
- var X3 = "#linear-grab-root, #claude-agent-glow-border, [id^=\"react-scan\"]";
47997
- function Z3(e = typeof document < "u" ? document : {}) {
48012
+ var $3 = "#linear-grab-root, [data-linear-grab], [data-react-grab], #claude-agent-glow-border, [id^=\"react-scan\"]";
48013
+ function e6(e = typeof document < "u" ? document : {}) {
47998
48014
  let t = [];
47999
- return i6(t, () => {
48000
- let t = [], n = Array.from(e.querySelectorAll("[role=\"slider\"], [role=\"progressbar\"], [role=\"switch\"]")), r = t6(e);
48015
+ return s6(t, () => {
48016
+ let t = [], n = Array.from(e.querySelectorAll("[role=\"slider\"], [role=\"progressbar\"], [role=\"switch\"]")), r = i6(e);
48001
48017
  for (let e of n) {
48002
- if (e.closest(X3)) continue;
48018
+ if (e.closest($3)) continue;
48003
48019
  if (r) try {
48004
48020
  let t = e.getBoundingClientRect();
48005
48021
  if (t.width < 2 || t.height < 2) continue;
48006
48022
  } catch {}
48007
- if (!Q3(e)) continue;
48023
+ if (!t6(e)) continue;
48008
48024
  let n = e.getAttribute("role") ?? "widget";
48009
48025
  t.push({
48010
48026
  ruleId: "R8",
@@ -48017,14 +48033,14 @@ function Z3(e = typeof document < "u" ? document : {}) {
48017
48033
  renders: 0,
48018
48034
  selfTime: 0,
48019
48035
  changes: [],
48020
- evidence: $3(e),
48036
+ evidence: n6(e),
48021
48037
  el: typeof WeakRef < "u" ? new WeakRef(e) : void 0
48022
48038
  });
48023
48039
  }
48024
48040
  return t;
48025
- }), a6(t);
48041
+ }), c6(t);
48026
48042
  }
48027
- function Q3(e) {
48043
+ function t6(e) {
48028
48044
  if (e.hasAttribute("disabled") || e.getAttribute("aria-disabled") === "true") return !0;
48029
48045
  let t = e;
48030
48046
  for (let e = 0; t && e <= 3; e++) {
@@ -48035,17 +48051,17 @@ function Q3(e) {
48035
48051
  }
48036
48052
  return !1;
48037
48053
  }
48038
- function $3(e) {
48054
+ function n6(e) {
48039
48055
  let t = typeof e.className == "string" && e.className ? "." + e.className.split(/\s+/).filter(Boolean).slice(0, 2).join(".") : "";
48040
48056
  return `${e.tagName.toLowerCase()}${t}`;
48041
48057
  }
48042
- function e6() {
48058
+ function r6() {
48043
48059
  return typeof document > "u" ? !1 : (document.documentElement?.getBoundingClientRect().width ?? 0) > 0;
48044
48060
  }
48045
- function t6(e) {
48061
+ function i6(e) {
48046
48062
  return ((e.documentElement ?? (typeof document < "u" ? document.documentElement : null))?.getBoundingClientRect().width ?? 0) > 0;
48047
48063
  }
48048
- function n6(e, t) {
48064
+ function a6(e, t) {
48049
48065
  let n = 0, r = 0;
48050
48066
  for (let i = 0; i < e.length; i++) {
48051
48067
  for (; e[i] - e[r] > t;) r++;
@@ -48053,7 +48069,7 @@ function n6(e, t) {
48053
48069
  }
48054
48070
  return n;
48055
48071
  }
48056
- function r6(e, t) {
48072
+ function o6(e, t) {
48057
48073
  let n = 0, r = 0, i = 0;
48058
48074
  for (let a = 0; a < e.length; a++) {
48059
48075
  for (; e[a] - e[i] > t;) i++;
@@ -48065,12 +48081,12 @@ function r6(e, t) {
48065
48081
  span: r
48066
48082
  };
48067
48083
  }
48068
- function i6(e, t) {
48084
+ function s6(e, t) {
48069
48085
  try {
48070
48086
  e.push(...t());
48071
48087
  } catch {}
48072
48088
  }
48073
- function a6(e) {
48089
+ function c6(e) {
48074
48090
  let t = /* @__PURE__ */ new Map();
48075
48091
  for (let n of e) {
48076
48092
  let e = `${n.ruleId}|${n.component}|${n.changes.join()}|${n.description}`, r = t.get(e);
@@ -48078,7 +48094,7 @@ function a6(e) {
48078
48094
  }
48079
48095
  return [...t.values()];
48080
48096
  }
48081
- function o6(e) {
48097
+ function l6(e) {
48082
48098
  let t = /* @__PURE__ */ new Map();
48083
48099
  for (let n of e) {
48084
48100
  let e = n.ruleId ?? "budget", r = t.get(e);
@@ -48104,7 +48120,7 @@ function o6(e) {
48104
48120
  }
48105
48121
  return a.join("\n");
48106
48122
  }
48107
- function s6(e, t) {
48123
+ function u6(e, t) {
48108
48124
  let n = Array.from(new Set(e.map((e) => e.ruleId).filter((e) => !!e))).sort(), r = [];
48109
48125
  for (let e of n) {
48110
48126
  let n = t.rules[e];
@@ -48131,35 +48147,35 @@ function s6(e, t) {
48131
48147
  "",
48132
48148
  "---",
48133
48149
  "",
48134
- o6(e)
48150
+ l6(e)
48135
48151
  ].join("\n");
48136
48152
  }
48137
- var c6 = "bippy-0.5.43", l6 = Object.defineProperty, u6 = Object.prototype.hasOwnProperty, d6 = () => {}, f6 = (e) => {
48153
+ var d6 = "bippy-0.5.43", f6 = Object.defineProperty, p6 = Object.prototype.hasOwnProperty, m6 = () => {}, h6 = (e) => {
48138
48154
  try {
48139
48155
  Function.prototype.toString.call(e).indexOf("^_^") > -1 && setTimeout(() => {
48140
48156
  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");
48141
48157
  });
48142
48158
  } catch {}
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) => {
48159
+ }, g6 = (e = globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__) => !!(e && "getFiberRoots" in e), _6 = !1, v6, y6 = (e = globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__) => _6 ? !0 : (e && typeof e.inject == "function" && (v6 = e.inject.toString()), !!v6?.includes("(injected)")), b6 = /* @__PURE__ */ new Set(), x6 = /* @__PURE__ */ new Set(), S6 = (e) => {
48144
48160
  let t = /* @__PURE__ */ new Map(), n = 0, r = {
48145
48161
  _instrumentationIsActive: !1,
48146
- _instrumentationSource: c6,
48147
- checkDCE: f6,
48162
+ _instrumentationSource: d6,
48163
+ checkDCE: h6,
48148
48164
  hasUnsupportedRendererAttached: !1,
48149
48165
  inject(e) {
48150
48166
  let i = ++n;
48151
- return t.set(i, e), v6.add(e), r._instrumentationIsActive || (r._instrumentationIsActive = !0, _6.forEach((e) => e())), i;
48167
+ return t.set(i, e), x6.add(e), r._instrumentationIsActive || (r._instrumentationIsActive = !0, b6.forEach((e) => e())), i;
48152
48168
  },
48153
- on: d6,
48154
- onCommitFiberRoot: d6,
48155
- onCommitFiberUnmount: d6,
48156
- onPostCommitFiberRoot: d6,
48169
+ on: m6,
48170
+ onCommitFiberRoot: m6,
48171
+ onCommitFiberUnmount: m6,
48172
+ onPostCommitFiberRoot: m6,
48157
48173
  renderers: t,
48158
48174
  supportsFiber: !0,
48159
48175
  supportsFlight: !0
48160
48176
  };
48161
48177
  try {
48162
- l6(globalThis, "__REACT_DEVTOOLS_GLOBAL_HOOK__", {
48178
+ f6(globalThis, "__REACT_DEVTOOLS_GLOBAL_HOOK__", {
48163
48179
  configurable: !0,
48164
48180
  enumerable: !0,
48165
48181
  get() {
@@ -48169,13 +48185,13 @@ var c6 = "bippy-0.5.43", l6 = Object.defineProperty, u6 = Object.prototype.hasOw
48169
48185
  if (t && typeof t == "object") {
48170
48186
  let n = r.renderers;
48171
48187
  r = t, n.size > 0 && (n.forEach((e, n) => {
48172
- v6.add(e), t.renderers.set(n, e);
48173
- }), b6(e));
48188
+ x6.add(e), t.renderers.set(n, e);
48189
+ }), C6(e));
48174
48190
  }
48175
48191
  }
48176
48192
  });
48177
48193
  let t = window.hasOwnProperty, n = !1;
48178
- l6(window, "hasOwnProperty", {
48194
+ f6(window, "hasOwnProperty", {
48179
48195
  configurable: !0,
48180
48196
  value: function(...e) {
48181
48197
  try {
@@ -48186,47 +48202,47 @@ var c6 = "bippy-0.5.43", l6 = Object.defineProperty, u6 = Object.prototype.hasOw
48186
48202
  writable: !0
48187
48203
  });
48188
48204
  } catch {
48189
- b6(e);
48205
+ C6(e);
48190
48206
  }
48191
48207
  return r;
48192
- }, b6 = (e) => {
48193
- e && _6.add(e);
48208
+ }, C6 = (e) => {
48209
+ e && b6.add(e);
48194
48210
  try {
48195
48211
  let t = globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__;
48196
48212
  if (!t) return;
48197
48213
  if (!t._instrumentationSource) {
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());
48214
+ t.checkDCE = h6, t.supportsFiber = !0, t.supportsFlight = !0, t.hasUnsupportedRendererAttached = !1, t._instrumentationSource = d6, t._instrumentationIsActive = !1;
48215
+ let e = g6(t);
48216
+ if (e || (t.on = m6), t.renderers.size) {
48217
+ t._instrumentationIsActive = !0, b6.forEach((e) => e());
48202
48218
  return;
48203
48219
  }
48204
- let n = t.inject, r = g6(t);
48205
- r && !e && (m6 = !0, t.inject({ scheduleRefresh() {} }) && (t._instrumentationIsActive = !0)), t.inject = (e) => {
48220
+ let n = t.inject, r = y6(t);
48221
+ r && !e && (_6 = !0, t.inject({ scheduleRefresh() {} }) && (t._instrumentationIsActive = !0)), t.inject = (e) => {
48206
48222
  let i = n(e);
48207
- return v6.add(e), r && t.renderers.set(i, e), t._instrumentationIsActive = !0, _6.forEach((e) => e()), i;
48223
+ return x6.add(e), r && t.renderers.set(i, e), t._instrumentationIsActive = !0, b6.forEach((e) => e()), i;
48208
48224
  };
48209
48225
  }
48210
- (t.renderers.size || t._instrumentationIsActive || g6()) && e?.();
48226
+ (t.renderers.size || t._instrumentationIsActive || y6()) && e?.();
48211
48227
  } catch {}
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"));
48228
+ }, w6 = () => p6.call(globalThis, "__REACT_DEVTOOLS_GLOBAL_HOOK__"), T6 = (e) => w6() ? (C6(e), globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__) : S6(e), E6 = () => !!(typeof window < "u" && (window.document?.createElement || window.navigator?.product === "ReactNative"));
48213
48229
  //#endregion
48214
48230
  //#region node_modules/bippy/dist/install-hook-only.js
48215
48231
  (() => {
48216
48232
  try {
48217
- C6() && S6();
48233
+ E6() && T6();
48218
48234
  } catch {}
48219
48235
  })();
48220
48236
  //#endregion
48221
48237
  //#region node_modules/bippy/dist/core.js
48222
- var w6 = 60111, T6 = "Symbol(react.concurrent_mode)", E6 = "Symbol(react.async_mode)", D6 = (e) => {
48238
+ var D6 = 60111, O6 = "Symbol(react.concurrent_mode)", k6 = "Symbol(react.async_mode)", A6 = (e) => {
48223
48239
  switch (e.tag) {
48224
48240
  case 5:
48225
48241
  case 26:
48226
48242
  case 27: return !0;
48227
48243
  default: return typeof e.type == "string";
48228
48244
  }
48229
- }, O6 = (e) => {
48245
+ }, j6 = (e) => {
48230
48246
  switch (e.tag) {
48231
48247
  case 1:
48232
48248
  case 11:
@@ -48235,7 +48251,7 @@ var w6 = 60111, T6 = "Symbol(react.concurrent_mode)", E6 = "Symbol(react.async_m
48235
48251
  case 15: return !0;
48236
48252
  default: return !1;
48237
48253
  }
48238
- }, k6 = (e) => {
48254
+ }, M6 = (e) => {
48239
48255
  let t = e.memoizedProps, n = e.alternate?.memoizedProps || {}, r = e.flags ?? e.effectTag ?? 0;
48240
48256
  switch (e.tag) {
48241
48257
  case 1:
@@ -48246,7 +48262,7 @@ var w6 = 60111, T6 = "Symbol(react.concurrent_mode)", E6 = "Symbol(react.async_m
48246
48262
  case 15: return (r & 1) == 1;
48247
48263
  default: return !e.alternate || n !== t || e.alternate.memoizedState !== e.memoizedState || e.alternate.ref !== e.ref;
48248
48264
  }
48249
- }, A6 = (e) => {
48265
+ }, N6 = (e) => {
48250
48266
  switch (e.tag) {
48251
48267
  case 18: return !0;
48252
48268
  case 7:
@@ -48257,25 +48273,25 @@ var w6 = 60111, T6 = "Symbol(react.concurrent_mode)", E6 = "Symbol(react.async_m
48257
48273
  default: {
48258
48274
  let t = typeof e.type == "object" && e.type !== null ? e.type.$$typeof : e.type;
48259
48275
  switch (typeof t == "symbol" ? t.toString() : t) {
48260
- case w6:
48261
- case T6:
48262
- case E6: return !0;
48276
+ case D6:
48277
+ case O6:
48278
+ case k6: return !0;
48263
48279
  default: return !1;
48264
48280
  }
48265
48281
  }
48266
48282
  }
48267
- }, j6 = (e, t = !1) => {
48268
- let n = M6(e, D6, t);
48269
- return n ||= M6(e, D6, !t), n;
48283
+ }, P6 = (e, t = !1) => {
48284
+ let n = F6(e, A6, t);
48285
+ return n ||= F6(e, A6, !t), n;
48270
48286
  };
48271
- function M6(e, t, n = !1) {
48287
+ function F6(e, t, n = !1) {
48272
48288
  if (!e) return null;
48273
48289
  let r = t(e);
48274
48290
  if (r instanceof Promise) return (async () => {
48275
48291
  if (await r === !0) return e;
48276
48292
  let i = n ? e.return : e.child;
48277
48293
  for (; i;) {
48278
- let e = await P6(i, t, n);
48294
+ let e = await L6(i, t, n);
48279
48295
  if (e) return e;
48280
48296
  i = n ? null : i.sibling;
48281
48297
  }
@@ -48284,118 +48300,118 @@ function M6(e, t, n = !1) {
48284
48300
  if (r === !0) return e;
48285
48301
  let i = n ? e.return : e.child;
48286
48302
  for (; i;) {
48287
- let e = N6(i, t, n);
48303
+ let e = I6(i, t, n);
48288
48304
  if (e) return e;
48289
48305
  i = n ? null : i.sibling;
48290
48306
  }
48291
48307
  return null;
48292
48308
  }
48293
- var N6 = (e, t, n = !1) => {
48309
+ var I6 = (e, t, n = !1) => {
48294
48310
  if (!e) return null;
48295
48311
  if (t(e) === !0) return e;
48296
48312
  let r = n ? e.return : e.child;
48297
48313
  for (; r;) {
48298
- let e = N6(r, t, n);
48314
+ let e = I6(r, t, n);
48299
48315
  if (e) return e;
48300
48316
  r = n ? null : r.sibling;
48301
48317
  }
48302
48318
  return null;
48303
- }, P6 = async (e, t, n = !1) => {
48319
+ }, L6 = async (e, t, n = !1) => {
48304
48320
  if (!e) return null;
48305
48321
  if (await t(e) === !0) return e;
48306
48322
  let r = n ? e.return : e.child;
48307
48323
  for (; r;) {
48308
- let e = await P6(r, t, n);
48324
+ let e = await L6(r, t, n);
48309
48325
  if (e) return e;
48310
48326
  r = n ? null : r.sibling;
48311
48327
  }
48312
48328
  return null;
48313
- }, F6 = (e) => {
48329
+ }, R6 = (e) => {
48314
48330
  let t = e?.actualDuration ?? 0, n = t, r = e?.child ?? null;
48315
48331
  for (; t > 0 && r != null;) n -= r.actualDuration ?? 0, r = r.sibling;
48316
48332
  return {
48317
48333
  selfTime: n,
48318
48334
  totalTime: t
48319
48335
  };
48320
- }, I6 = (e) => {
48336
+ }, z6 = (e) => {
48321
48337
  let t = e;
48322
- return typeof t == "function" ? t : typeof t == "object" && t ? I6(t.type || t.render) : null;
48323
- }, L6 = (e) => {
48338
+ return typeof t == "function" ? t : typeof t == "object" && t ? z6(t.type || t.render) : null;
48339
+ }, B6 = (e) => {
48324
48340
  let t = e;
48325
48341
  if (typeof t == "string") return t;
48326
48342
  if (typeof t != "function" && !(typeof t == "object" && t)) return null;
48327
48343
  let n = t.displayName || t.name || null;
48328
48344
  if (n) return n;
48329
- let r = I6(t);
48345
+ let r = z6(t);
48330
48346
  return r && (r.displayName || r.name) || null;
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) => {
48347
+ }, V6 = 0, H6 = /* @__PURE__ */ new WeakMap(), U6 = (e, t = V6++) => {
48348
+ H6.set(e, t);
48349
+ }, W6 = (e) => {
48350
+ let t = H6.get(e);
48351
+ return !t && e.alternate && (t = H6.get(e.alternate)), t || (t = V6++, U6(e, t)), t;
48352
+ }, G6 = (e, t, n) => {
48337
48353
  let r = t;
48338
48354
  for (; r != null;) {
48339
- if (z6.has(r) || V6(r), !A6(r) && k6(r) && e(r, "mount"), r.tag === 13) if (r.memoizedState !== null) {
48355
+ if (H6.has(r) || W6(r), !N6(r) && M6(r) && e(r, "mount"), r.tag === 13) if (r.memoizedState !== null) {
48340
48356
  let t = r.child, n = t ? t.sibling : null;
48341
48357
  if (n) {
48342
48358
  let t = n.child;
48343
- t !== null && H6(e, t, !1);
48359
+ t !== null && G6(e, t, !1);
48344
48360
  }
48345
48361
  } else {
48346
48362
  let t = null;
48347
- r.child !== null && (t = r.child.child), t !== null && H6(e, t, !1);
48363
+ r.child !== null && (t = r.child.child), t !== null && G6(e, t, !1);
48348
48364
  }
48349
- else r.child != null && H6(e, r.child, !0);
48365
+ else r.child != null && G6(e, r.child, !0);
48350
48366
  r = n ? r.sibling : null;
48351
48367
  }
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");
48368
+ }, K6 = (e, t, n, r) => {
48369
+ if (H6.has(t) || W6(t), !n) return;
48370
+ H6.has(n) || W6(n);
48371
+ let i = t.tag === 13, a = !N6(t);
48372
+ a && M6(t) && e(t, "update");
48357
48373
  let o = i && n.memoizedState !== null, s = i && t.memoizedState !== null;
48358
48374
  if (o && s) {
48359
48375
  let r = t.child?.sibling ?? null, i = n.child?.sibling ?? null;
48360
- r !== null && i !== null && U6(e, r, i, t);
48376
+ r !== null && i !== null && K6(e, r, i, t);
48361
48377
  } else if (o && !s) {
48362
48378
  let n = t.child;
48363
- n !== null && H6(e, n, !0);
48379
+ n !== null && G6(e, n, !0);
48364
48380
  } else if (!o && s) {
48365
- G6(e, n);
48381
+ J6(e, n);
48366
48382
  let r = t.child?.sibling ?? null;
48367
- r !== null && H6(e, r, !0);
48383
+ r !== null && G6(e, r, !0);
48368
48384
  } else if (t.child !== n.child) {
48369
48385
  let n = t.child;
48370
48386
  for (; n;) {
48371
48387
  if (n.alternate) {
48372
48388
  let i = n.alternate;
48373
- U6(e, n, i, a ? t : r);
48374
- } else H6(e, n, !1);
48389
+ K6(e, n, i, a ? t : r);
48390
+ } else G6(e, n, !1);
48375
48391
  n = n.sibling;
48376
48392
  }
48377
48393
  }
48378
- }, W6 = (e, t) => {
48379
- (t.tag === 3 || !A6(t)) && e(t, "unmount");
48380
- }, G6 = (e, t) => {
48394
+ }, q6 = (e, t) => {
48395
+ (t.tag === 3 || !N6(t)) && e(t, "unmount");
48396
+ }, J6 = (e, t) => {
48381
48397
  let n = t.tag === 13 && t.memoizedState !== null, r = t.child;
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);
48398
+ for (n && (r = (t.child?.sibling ?? null)?.child ?? null); r !== null;) r.return !== null && (q6(e, r), J6(e, r)), r = r.sibling;
48399
+ }, Y6 = 0, X6 = /* @__PURE__ */ new WeakMap(), Z6 = (e, t) => {
48400
+ let n = "current" in e ? e.current : e, r = X6.get(e);
48385
48401
  r || (r = {
48386
- id: K6++,
48402
+ id: Y6++,
48387
48403
  prevFiber: null
48388
- }, q6.set(e, r));
48404
+ }, X6.set(e, r));
48389
48405
  let { prevFiber: i } = r;
48390
- if (!n) W6(t, n);
48406
+ if (!n) q6(t, n);
48391
48407
  else if (i !== null) {
48392
48408
  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;
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);
48409
+ !e && r ? G6(t, n, !1) : e && r ? K6(t, n, n.alternate, null) : e && !r && q6(t, n);
48410
+ } else G6(t, n, !0);
48395
48411
  r.prevFiber = n;
48396
- }, Y6 = (e) => {
48397
- let t = S6(e.onActive);
48398
- t._instrumentationSource = e.name ?? c6;
48412
+ }, Q6 = (e) => {
48413
+ let t = T6(e.onActive);
48414
+ t._instrumentationSource = e.name ?? d6;
48399
48415
  let n = t.onCommitFiberRoot;
48400
48416
  if (e.onCommitFiberRoot) {
48401
48417
  let r = (t, i, a) => {
@@ -48418,52 +48434,52 @@ var N6 = (e, t, n = !1) => {
48418
48434
  t.onPostCommitFiberRoot = n;
48419
48435
  }
48420
48436
  return t;
48421
- }, X6 = !1, Z6 = !1, Q6 = [], $6 = -Infinity, e8 = 200, t8 = 4e3, n8 = 100;
48422
- function r8() {
48423
- $6 = a8();
48437
+ }, $6 = !1, e8 = !1, t8 = [], n8 = -Infinity, r8 = 200, i8 = 4e3, a8 = 100;
48438
+ function o8() {
48439
+ n8 = c8();
48424
48440
  }
48425
- var i8 = [
48441
+ var s8 = [
48426
48442
  "scroll",
48427
48443
  "wheel",
48428
48444
  "pointermove"
48429
48445
  ];
48430
- function a8() {
48446
+ function c8() {
48431
48447
  return typeof performance < "u" ? performance.now() : Date.now();
48432
48448
  }
48433
- function o8(e, t) {
48449
+ function l8(e, t) {
48434
48450
  let n = e && typeof e == "object" ? e : {}, r = t && typeof t == "object" ? t : {}, i = /* @__PURE__ */ new Set([...Object.keys(n), ...Object.keys(r)]), a = [];
48435
48451
  for (let e of i) {
48436
48452
  if (e === "children") continue;
48437
48453
  let t = n[e], i = r[e];
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}`));
48454
+ Object.is(t, i) || (typeof t == "function" && typeof i == "function" ? a.push(`prop:${e}(fn)`) : t && i && typeof t == "object" && typeof i == "object" && u8(t, i) ? a.push(`prop:${e}(ref)`) : a.push(`prop:${e}`));
48439
48455
  }
48440
48456
  return a;
48441
48457
  }
48442
- function s8(e, t) {
48458
+ function u8(e, t) {
48443
48459
  let n = Object.keys(e), r = Object.keys(t);
48444
48460
  if (n.length !== r.length) return !1;
48445
48461
  for (let r of n) if (!Object.is(e[r], t[r])) return !1;
48446
48462
  return !0;
48447
48463
  }
48448
- function c8(e) {
48464
+ function d8(e) {
48449
48465
  let t = [], n = {};
48450
- J6(e, (e, r) => {
48451
- if (r === "unmount" || !O6(e)) return;
48452
- let i = L6(e.type) ?? "Anonymous";
48466
+ Z6(e, (e, r) => {
48467
+ if (r === "unmount" || !j6(e)) return;
48468
+ let i = B6(e.type) ?? "Anonymous";
48453
48469
  r === "mount" && (n[i] = (n[i] ?? 0) + 1);
48454
48470
  let a = 0;
48455
48471
  try {
48456
- a = F6(e).selfTime || 0;
48472
+ a = R6(e).selfTime || 0;
48457
48473
  } catch {}
48458
48474
  let o = [];
48459
48475
  if (r === "update" && e.alternate) try {
48460
- o = o8(e.alternate.memoizedProps, e.memoizedProps);
48476
+ o = l8(e.alternate.memoizedProps, e.memoizedProps);
48461
48477
  } catch {
48462
48478
  o = ["prop:(unknown)"];
48463
48479
  }
48464
48480
  let s = null;
48465
48481
  try {
48466
- let t = j6(e)?.stateNode;
48482
+ let t = P6(e)?.stateNode;
48467
48483
  t && typeof WeakRef < "u" && t instanceof Element && (s = new WeakRef(t));
48468
48484
  } catch {}
48469
48485
  t.push({
@@ -48474,10 +48490,10 @@ function c8(e) {
48474
48490
  el: s
48475
48491
  });
48476
48492
  }), t.sort((e, t) => t.selfTime - e.selfTime);
48477
- let r = t.slice(0, e8), i = Math.max(0, t.length - e8), a = 0;
48493
+ let r = t.slice(0, r8), i = Math.max(0, t.length - r8), a = 0;
48478
48494
  for (let e of t) a += e.selfTime;
48479
- let o = a8(), s = o - $6 <= n8;
48480
- Q6.push({
48495
+ let o = c8(), s = o - n8 <= a8;
48496
+ t8.push({
48481
48497
  at: o,
48482
48498
  duration: a,
48483
48499
  entries: r,
@@ -48486,55 +48502,55 @@ function c8(e) {
48486
48502
  nearInput: s
48487
48503
  });
48488
48504
  }
48489
- function l8() {
48490
- if (!X6 && !(typeof window > "u")) {
48491
- X6 = !0;
48505
+ function f8() {
48506
+ if (!$6 && !(typeof window > "u")) {
48507
+ $6 = !0;
48492
48508
  try {
48493
- Y6({ onCommitFiberRoot: (e, t) => {
48494
- if (Z6 && !(Q6.length >= t8)) try {
48495
- c8(t);
48509
+ Q6({ onCommitFiberRoot: (e, t) => {
48510
+ if (e8 && !(t8.length >= i8)) try {
48511
+ d8(t);
48496
48512
  } catch {}
48497
48513
  } });
48498
48514
  } catch {}
48499
48515
  }
48500
48516
  }
48501
- function u8() {
48502
- if (!(typeof window > "u") && !Z6) {
48503
- Q6 = [], $6 = -Infinity, l8();
48517
+ function p8() {
48518
+ if (!(typeof window > "u") && !e8) {
48519
+ t8 = [], n8 = -Infinity, f8();
48504
48520
  try {
48505
- for (let e of i8) window.addEventListener(e, r8, {
48521
+ for (let e of s8) window.addEventListener(e, o8, {
48506
48522
  capture: !0,
48507
48523
  passive: !0
48508
48524
  });
48509
48525
  } catch {}
48510
- Z6 = !0;
48526
+ e8 = !0;
48511
48527
  }
48512
48528
  }
48513
- function d8() {
48514
- Z6 = !1;
48529
+ function m8() {
48530
+ e8 = !1;
48515
48531
  try {
48516
- for (let e of i8) window.removeEventListener(e, r8, { capture: !0 });
48532
+ for (let e of s8) window.removeEventListener(e, o8, { capture: !0 });
48517
48533
  } catch {}
48518
- let e = Q6;
48519
- return Q6 = [], $6 = -Infinity, e;
48534
+ let e = t8;
48535
+ return t8 = [], n8 = -Infinity, e;
48520
48536
  }
48521
- function f8() {
48522
- let e = Q6;
48523
- return Q6 = [], e;
48537
+ function h8() {
48538
+ let e = t8;
48539
+ return t8 = [], e;
48524
48540
  }
48525
48541
  //#endregion
48526
48542
  //#region src/lib/renderRulebook.ts
48527
- var p8 = {
48543
+ var g8 = {
48528
48544
  budgets: {
48529
48545
  selfMs: 2,
48530
48546
  commitMs: 8
48531
48547
  },
48532
48548
  rules: {}
48533
- }, m8 = /^###\s+(R\d+)\s*[·.\-–—:]?\s*`([^`]+)`.*?\((error|warn)\)\s*$/;
48534
- function h8(e) {
48535
- return m8.test(e.trim());
48549
+ }, _8 = /^###\s+(R\d+)\s*[·.\-–—:]?\s*`([^`]+)`.*?\((error|warn)\)\s*$/;
48550
+ function v8(e) {
48551
+ return _8.test(e.trim());
48536
48552
  }
48537
- function g8(e, t) {
48553
+ function y8(e, t) {
48538
48554
  let n = e.split("\n"), r = RegExp(`^\\s*\\*\\*${t.source}[^*]*:\\*\\*\\s*(.*)$`, "i"), i = /^\s*\*\*[^*]+:\*\*/, a = 0;
48539
48555
  for (; a < n.length && !r.test(n[a]); a++);
48540
48556
  if (a >= n.length) return "";
@@ -48549,43 +48565,43 @@ function g8(e, t) {
48549
48565
  if (e >= n.length || i.test(n[e]) || /^###\s|^##\s|^---\s*$/.test(n[e])) break;
48550
48566
  }
48551
48567
  }
48552
- return _8(s.join(" ")).trim();
48568
+ return b8(s.join(" ")).trim();
48553
48569
  }
48554
- function _8(e) {
48570
+ function b8(e) {
48555
48571
  return e.replace(/\*\*([^*]+)\*\*/g, "$1").replace(/__([^_]+)__/g, "$1").replace(/(^|[\s(])[*_]([^*_\s][^*_]*?)[*_]([\s.,;:)]|$)/g, "$1$2$3").replace(/\s{2,}/g, " ");
48556
48572
  }
48557
- function v8(e) {
48573
+ function x8(e) {
48558
48574
  let t = e.match(/≤(\d+(?:\.\d+)?)ms self/), n = e.match(/commit >(\d+(?:\.\d+)?)ms/) ?? e.match(/>(\d+(?:\.\d+)?)ms of React work/);
48559
48575
  return {
48560
- selfMs: t ? parseFloat(t[1]) : p8.budgets.selfMs,
48561
- commitMs: n ? parseFloat(n[1]) : p8.budgets.commitMs
48576
+ selfMs: t ? parseFloat(t[1]) : g8.budgets.selfMs,
48577
+ commitMs: n ? parseFloat(n[1]) : g8.budgets.commitMs
48562
48578
  };
48563
48579
  }
48564
- function y8(e) {
48565
- let t = v8(e), n = {}, r = e.split("\n"), i = 0;
48580
+ function S8(e) {
48581
+ let t = x8(e), n = {}, r = e.split("\n"), i = 0;
48566
48582
  for (; i < r.length;) {
48567
48583
  let e = r[i];
48568
- if (!h8(e)) {
48584
+ if (!v8(e)) {
48569
48585
  i++;
48570
48586
  continue;
48571
48587
  }
48572
48588
  let t = e.trim(), a = [], o = i + 1;
48573
48589
  for (; o < r.length; o++) {
48574
48590
  let e = r[o];
48575
- if (h8(e) || /^##\s/.test(e.trim()) || /^---\s*$/.test(e.trim())) break;
48591
+ if (v8(e) || /^##\s/.test(e.trim()) || /^---\s*$/.test(e.trim())) break;
48576
48592
  a.push(e);
48577
48593
  }
48578
48594
  try {
48579
- let e = t.match(m8);
48595
+ let e = t.match(_8);
48580
48596
  if (e) {
48581
48597
  let [, t, r, i] = e, o = a.join("\n");
48582
48598
  n[t] = {
48583
48599
  id: t,
48584
48600
  slug: r,
48585
48601
  severity: i === "warn" ? "warn" : "error",
48586
- ruleText: g8(o, /Rule/),
48587
- fixText: g8(o, /Fix/),
48588
- detectText: g8(o, /Detect/)
48602
+ ruleText: y8(o, /Rule/),
48603
+ fixText: y8(o, /Fix/),
48604
+ detectText: y8(o, /Detect/)
48589
48605
  };
48590
48606
  }
48591
48607
  } catch {}
@@ -48599,114 +48615,114 @@ function y8(e) {
48599
48615
  //#endregion
48600
48616
  //#region src/lib/renderScanStore.ts
48601
48617
  Br();
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);
48618
+ var C8 = [], w8 = /* @__PURE__ */ new Set();
48619
+ function T8(e) {
48620
+ return w8.add(e), e(C8), () => void w8.delete(e);
48621
+ }
48622
+ function E8() {
48623
+ C8 = [];
48624
+ for (let e of w8) e(C8);
48625
+ }
48626
+ function D8(e, t) {
48627
+ C8 = [...e, ...C8.filter((e) => e.page !== t)];
48628
+ for (let e of w8) e(C8);
48629
+ return $8(e).then(() => {
48630
+ C8 = [...C8];
48631
+ for (let e of w8) e(C8);
48632
+ e5(e);
48617
48633
  }), e;
48618
48634
  }
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);
48635
+ var O8 = /* @__PURE__ */ new Set(), k8 = !1, A8 = null;
48636
+ function j8(e) {
48637
+ return O8.add(e), e(k8, A8), () => void O8.delete(e);
48622
48638
  }
48623
- function k8() {
48624
- if (!(j8 || E8)) {
48625
- u8(), E8 = !0, D8 = Date.now();
48626
- for (let e of T8) e(!0, D8);
48639
+ function M8() {
48640
+ if (!(P8 || k8)) {
48641
+ p8(), k8 = !0, A8 = Date.now();
48642
+ for (let e of O8) e(!0, A8);
48627
48643
  }
48628
48644
  }
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) => ({
48645
+ async function N8() {
48646
+ if (!k8) return [];
48647
+ let e = m8();
48648
+ k8 = !1, A8 = null;
48649
+ for (let e of O8) e(!1, null);
48650
+ let t = await Y8(), n = location.pathname;
48651
+ return D8(Q3(e, t, { ignore: await Z8() }).map((e) => ({
48636
48652
  ...e,
48637
48653
  page: n
48638
48654
  })), n);
48639
48655
  }
48640
- var j8 = !1;
48656
+ var P8 = !1;
48641
48657
  try {
48642
- j8 = localStorage.getItem("linear-grab:render-live") === "1";
48658
+ P8 = localStorage.getItem("linear-grab:render-live") === "1";
48643
48659
  } catch {}
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;
48660
+ var F8 = /* @__PURE__ */ new Set();
48661
+ function I8(e) {
48662
+ return F8.add(e), e(P8), () => void F8.delete(e);
48663
+ }
48664
+ var L8 = 3e3, R8 = 4e3, z8 = null, B8 = [], V8 = "";
48665
+ function H8(e) {
48666
+ if (e !== P8 && !(e && k8)) {
48667
+ P8 = e;
48652
48668
  try {
48653
48669
  localStorage.setItem("linear-grab:render-live", e ? "1" : "0");
48654
48670
  } catch {}
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 = [];
48671
+ for (let t of F8) t(e);
48672
+ e ? (p8(), B8 = [], V8 = location.pathname, z8 = setInterval(() => void U8(!1), L8)) : (z8 && clearInterval(z8), z8 = null, U8(!0).finally(() => {
48673
+ m8(), B8 = [];
48658
48674
  }));
48659
48675
  }
48660
48676
  }
48661
- async function B8(e) {
48677
+ async function U8(e) {
48662
48678
  try {
48663
48679
  let t = location.pathname;
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) => ({
48680
+ if (t !== V8) {
48681
+ let e = C8.filter((e) => e.page === V8);
48682
+ $8(e).then(() => {
48683
+ C8 = [...C8];
48684
+ for (let e of w8) e(C8);
48685
+ e5(e);
48686
+ }), B8 = [], V8 = t;
48687
+ }
48688
+ B8.push(...h8()), B8.length > R8 && B8.splice(0, B8.length - R8);
48689
+ let n = await Y8(), r = Q3(B8, n, { ignore: await Z8() }).map((e) => ({
48674
48690
  ...e,
48675
48691
  page: t
48676
48692
  }));
48677
- b8 = [...r, ...b8.filter((e) => e.page !== t)];
48678
- for (let e of x8) e(b8);
48693
+ C8 = [...r, ...C8.filter((e) => e.page !== t)];
48694
+ for (let e of w8) e(C8);
48679
48695
  if (e) {
48680
- await X8(r), b8 = [...b8];
48681
- for (let e of x8) e(b8);
48682
- Z8(r);
48696
+ await $8(r), C8 = [...C8];
48697
+ for (let e of w8) e(C8);
48698
+ e5(r);
48683
48699
  }
48684
48700
  } catch {}
48685
48701
  }
48686
- function V8() {
48687
- typeof window > "u" || !j8 || I8 || (u8(), L8 = [], R8 = location.pathname, I8 = setInterval(() => void B8(!1), P8));
48702
+ function W8() {
48703
+ typeof window > "u" || !P8 || z8 || (p8(), B8 = [], V8 = location.pathname, z8 = setInterval(() => void U8(!1), L8));
48688
48704
  }
48689
- function H8() {
48705
+ function G8() {
48690
48706
  let e = location.pathname;
48691
- return w8(Z3(document).map((t) => ({
48707
+ return D8(e6(document).map((t) => ({
48692
48708
  ...t,
48693
48709
  page: e
48694
48710
  })), e);
48695
48711
  }
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;
48712
+ var K8 = 5 * 6e4, q8 = null, J8 = 0;
48713
+ async function Y8() {
48714
+ if (q8 && Date.now() - J8 < K8) return q8;
48715
+ let e = g8;
48700
48716
  try {
48701
48717
  let t = await YO(), n = await (await fetch(`${t}/scan/rulebook`)).json();
48702
- n.ok && n.text && (e = y8(n.text));
48718
+ n.ok && n.text && (e = S8(n.text));
48703
48719
  } catch {}
48704
- return e = await Y8(e), W8 = e, G8 = Date.now(), e;
48720
+ return e = await Q8(e), q8 = e, J8 = Date.now(), e;
48705
48721
  }
48706
- function q8() {
48707
- return W8;
48722
+ function X8() {
48723
+ return q8;
48708
48724
  }
48709
- async function J8() {
48725
+ async function Z8() {
48710
48726
  try {
48711
48727
  let e = await Tr();
48712
48728
  return Array.isArray(e.renderIgnore) ? e.renderIgnore : void 0;
@@ -48714,7 +48730,7 @@ async function J8() {
48714
48730
  return;
48715
48731
  }
48716
48732
  }
48717
- async function Y8(e) {
48733
+ async function Q8(e) {
48718
48734
  try {
48719
48735
  let t = (await Tr()).renderBudgets;
48720
48736
  if (t && (t.selfMs != null || t.commitMs != null)) return {
@@ -48727,7 +48743,7 @@ async function Y8(e) {
48727
48743
  } catch {}
48728
48744
  return e;
48729
48745
  }
48730
- async function X8(e) {
48746
+ async function $8(e) {
48731
48747
  let t = null;
48732
48748
  try {
48733
48749
  t = (await Promise.resolve().then(() => (RZ(), AZ))).getGlobalApi() ?? null;
@@ -48756,7 +48772,7 @@ async function X8(e) {
48756
48772
  if (!(!n && !a)) for (let e of i) !e.component && n && (e.component = n), a && (e.source = a);
48757
48773
  }
48758
48774
  }
48759
- function Z8(e) {
48775
+ function e5(e) {
48760
48776
  if (e.length === 0) return;
48761
48777
  let t = Date.now(), n = e.slice(0, 200).map(({ el: e, ...n }) => ({
48762
48778
  kind: "render-scan",
@@ -48772,8 +48788,8 @@ function Z8(e) {
48772
48788
  }
48773
48789
  //#endregion
48774
48790
  //#region src/panel/views/RendersView.tsx
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) {
48791
+ var t5 = /*#__PURE__*/ N("<span class=\"text-text-faint font-normal tabular-nums\"> · <!> pages"), n5 = /*#__PURE__*/ N("<span class=\"bg-danger size-1.5 shrink-0 animate-pulse rounded-full\"aria-hidden>"), r5 = /*#__PURE__*/ N("<span class=\"text-danger inline-block min-w-[4ch] text-right text-[10.5px] font-medium tabular-nums\">"), i5 = /*#__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>"), a5 = /*#__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>"), o5 = /*#__PURE__*/ N("<span class=\"bg-success absolute -top-0.5 -right-0.5 size-1.5 animate-pulse rounded-full\"aria-hidden>"), s5 = /*#__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>"), c5 = /*#__PURE__*/ N("<span class=\"text-success text-[12px] leading-none\">✓"), l5 = /*#__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\">"), u5 = /*#__PURE__*/ N("<p class=\"text-text-faint px-1 text-[10.5px] leading-snug\">Recording commits… interact with the page."), d5 = /*#__PURE__*/ N("<p class=\"text-text-faint px-1 text-[10.5px] leading-snug\">Live render scan — findings update as you interact and navigate."), f5 = /*#__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"), p5 = /*#__PURE__*/ N("<div class=\"flex max-h-[28rem] flex-col gap-1.5 overflow-y-auto pr-3 pl-2\">"), m5 = /*#__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."), h5 = /*#__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>"), g5 = /*#__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>"), _5 = /*#__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\">"), v5 = /*#__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\">"), y5 = /*#__PURE__*/ N("<div class=\"border-border flex flex-col gap-1 border-t px-2 py-1.5\">"), b5 = /*#__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\">"), x5 = /*#__PURE__*/ N("<span class=\"text-accent font-mono\"> "), S5 = /*#__PURE__*/ N("<span class=\"text-text-faint tabular-nums\"> ×"), C5 = /*#__PURE__*/ N("<span class=\"flex flex-wrap gap-1\">"), w5 = /*#__PURE__*/ N("<span class=\"text-text-dim font-mono\"> · "), T5 = /*#__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\">"), E5 = /*#__PURE__*/ N("<span class=\"bg-surface-2 text-text-dim rounded px-1 font-mono text-[9.5px] leading-relaxed\">");
48792
+ function D5(e) {
48777
48793
  let t = e.el?.deref();
48778
48794
  if (!(t instanceof HTMLElement) || !t.isConnected) return !1;
48779
48795
  t.scrollIntoView({
@@ -48785,45 +48801,45 @@ function w5(e) {
48785
48801
  t.style.outline = n, t.style.outlineOffset = r;
48786
48802
  }, 1400), !0;
48787
48803
  }
48788
- function T5(e) {
48804
+ function O5(e) {
48789
48805
  let t = Math.max(0, Math.floor(e / 1e3));
48790
48806
  return `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
48791
48807
  }
48792
- function E5(e) {
48808
+ function k5(e) {
48793
48809
  return e.replace(/^prop:/, "");
48794
48810
  }
48795
- function D5() {
48811
+ function A5() {
48796
48812
  let [e, t] = T([]);
48797
- ae(S8(t));
48813
+ ae(T8(t));
48798
48814
  let [n, r] = T(!1), [i, a] = T(null), [o, s] = T(Date.now()), c = null, l = () => {
48799
48815
  c && clearInterval(c), c = null;
48800
48816
  };
48801
- ae(l), ae(O8((e, t) => {
48817
+ ae(l), ae(j8((e, t) => {
48802
48818
  r(e), a(t), e ? (s(Date.now()), c ||= setInterval(() => s(Date.now()), 500)) : l();
48803
48819
  }));
48804
48820
  let [u, d] = T(!1);
48805
- ae(N8(d));
48806
- let [f, p] = T(q8());
48807
- K8().then(p);
48821
+ ae(I8(d));
48822
+ let [f, p] = T(X8());
48823
+ Y8().then(p);
48808
48824
  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 () => {
48809
48825
  if (h(null), n()) try {
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.");
48826
+ let e = await N8();
48827
+ p(X8()), _(null), e.length === 0 && h("No re-render anti-patterns caught — interact more (scroll, open menus, type) between record and stop.");
48812
48828
  } catch (e) {
48813
48829
  h(e instanceof Error ? e.message : String(e));
48814
48830
  }
48815
- else k8();
48831
+ else M8();
48816
48832
  }, te = () => {
48817
48833
  h(null), C(!0);
48818
48834
  try {
48819
- H8(), _(null);
48835
+ G8(), _(null);
48820
48836
  } catch (e) {
48821
48837
  h(e instanceof Error ? e.message : String(e));
48822
48838
  } finally {
48823
48839
  C(!1);
48824
48840
  }
48825
48841
  }, A = () => {
48826
- C8(), _(null);
48842
+ E8(), _(null);
48827
48843
  }, 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 = () => {
48828
48844
  let e = /* @__PURE__ */ new Map();
48829
48845
  for (let t of re()) {
@@ -48836,19 +48852,19 @@ function D5() {
48836
48852
  return t ? `${e} · ${t}` : e;
48837
48853
  }, le = async () => {
48838
48854
  try {
48839
- await navigator.clipboard.writeText(o6(re())), E(!0), setTimeout(() => E(!1), 1600);
48855
+ await navigator.clipboard.writeText(l6(re())), E(!0), setTimeout(() => E(!1), 1600);
48840
48856
  } catch {
48841
48857
  h("Clipboard was blocked — click Copy again.");
48842
48858
  }
48843
48859
  }, ue = async () => {
48844
48860
  try {
48845
- await navigator.clipboard.writeText(s6(re(), await K8())), k(!0), setTimeout(() => k(!1), 1600);
48861
+ await navigator.clipboard.writeText(u6(re(), await Y8())), k(!0), setTimeout(() => k(!1), 1600);
48846
48862
  } catch {
48847
48863
  h("Clipboard was blocked — click Copy again.");
48848
48864
  }
48849
48865
  };
48850
48866
  return (() => {
48851
- var t = d5(), r = t.firstChild.firstChild.firstChild;
48867
+ var t = m5(), r = t.firstChild.firstChild.firstChild;
48852
48868
  r.firstChild;
48853
48869
  var a = r.nextSibling;
48854
48870
  return P(r, j(M, {
@@ -48856,7 +48872,7 @@ function D5() {
48856
48872
  return ne() > 1;
48857
48873
  },
48858
48874
  get children() {
48859
- var e = Q8(), t = e.firstChild.nextSibling;
48875
+ var e = t5(), t = e.firstChild.nextSibling;
48860
48876
  return t.nextSibling, P(e, ne, t), e;
48861
48877
  }
48862
48878
  }), null), P(a, j(M, {
@@ -48864,9 +48880,9 @@ function D5() {
48864
48880
  return n();
48865
48881
  },
48866
48882
  get children() {
48867
- return [$8(), (() => {
48868
- var e = e5();
48869
- return P(e, () => T5(o() - (i() ?? o()))), e;
48883
+ return [n5(), (() => {
48884
+ var e = r5();
48885
+ return P(e, () => O5(o() - (i() ?? o()))), e;
48870
48886
  })()];
48871
48887
  }
48872
48888
  }), null), P(a, j(q, {
@@ -48891,10 +48907,10 @@ function D5() {
48891
48907
  return n();
48892
48908
  },
48893
48909
  get fallback() {
48894
- return f5();
48910
+ return h5();
48895
48911
  },
48896
48912
  get children() {
48897
- return t5();
48913
+ return i5();
48898
48914
  }
48899
48915
  });
48900
48916
  }
@@ -48909,24 +48925,24 @@ function D5() {
48909
48925
  return u() ? "Pause live render scan" : "Live render scan — findings update as you browse";
48910
48926
  },
48911
48927
  "aria-label": "Toggle live render scan",
48912
- onClick: () => z8(!u()),
48928
+ onClick: () => H8(!u()),
48913
48929
  get children() {
48914
48930
  return [j(M, {
48915
48931
  get when() {
48916
48932
  return u();
48917
48933
  },
48918
48934
  get fallback() {
48919
- return p5();
48935
+ return g5();
48920
48936
  },
48921
48937
  get children() {
48922
- return n5();
48938
+ return a5();
48923
48939
  }
48924
48940
  }), j(M, {
48925
48941
  get when() {
48926
48942
  return u();
48927
48943
  },
48928
48944
  get children() {
48929
- return r5();
48945
+ return o5();
48930
48946
  }
48931
48947
  })];
48932
48948
  }
@@ -48941,7 +48957,7 @@ function D5() {
48941
48957
  "aria-label": "Snapshot scan",
48942
48958
  onClick: te,
48943
48959
  get children() {
48944
- return i5();
48960
+ return s5();
48945
48961
  }
48946
48962
  }), null), P(a, j(q, {
48947
48963
  class: "size-7 px-0",
@@ -48958,10 +48974,10 @@ function D5() {
48958
48974
  return O();
48959
48975
  },
48960
48976
  get fallback() {
48961
- return m5();
48977
+ return _5();
48962
48978
  },
48963
48979
  get children() {
48964
- return a5();
48980
+ return c5();
48965
48981
  }
48966
48982
  });
48967
48983
  }
@@ -48980,10 +48996,10 @@ function D5() {
48980
48996
  return w();
48981
48997
  },
48982
48998
  get fallback() {
48983
- return h5();
48999
+ return v5();
48984
49000
  },
48985
49001
  get children() {
48986
- return a5();
49002
+ return c5();
48987
49003
  }
48988
49004
  });
48989
49005
  }
@@ -48995,7 +49011,7 @@ function D5() {
48995
49011
  "aria-label": "Clear findings",
48996
49012
  onClick: A,
48997
49013
  get children() {
48998
- return o5();
49014
+ return l5();
48999
49015
  }
49000
49016
  }), null), P(t, j(M, {
49001
49017
  get when() {
@@ -49011,14 +49027,14 @@ function D5() {
49011
49027
  return n();
49012
49028
  },
49013
49029
  get children() {
49014
- return s5();
49030
+ return u5();
49015
49031
  }
49016
49032
  }), null), P(t, j(M, {
49017
49033
  get when() {
49018
49034
  return $e(() => !!u())() && !n();
49019
49035
  },
49020
49036
  get children() {
49021
- return c5();
49037
+ return d5();
49022
49038
  }
49023
49039
  }), null), P(t, j(M, {
49024
49040
  get when() {
@@ -49039,7 +49055,7 @@ function D5() {
49039
49055
  },
49040
49056
  get children() {
49041
49057
  return [(() => {
49042
- var e = l5(), t = e.firstChild, n = t.firstChild, r = t.nextSibling, i = r.firstChild;
49058
+ var e = f5(), t = e.firstChild, n = t.firstChild, r = t.nextSibling, i = r.firstChild;
49043
49059
  return t.$$click = () => y(!v()), P(t, ie, n), r.$$click = () => x(!b()), P(r, oe, i), D((e) => {
49044
49060
  var n = {
49045
49061
  "text-danger bg-danger/10 border-danger/40": v(),
@@ -49056,7 +49072,7 @@ function D5() {
49056
49072
  o: void 0
49057
49073
  }), e;
49058
49074
  })(), (() => {
49059
- var e = u5();
49075
+ var e = p5();
49060
49076
  return P(e, j(We, {
49061
49077
  get each() {
49062
49078
  return se();
@@ -49064,7 +49080,7 @@ function D5() {
49064
49080
  children: ([e, t]) => {
49065
49081
  let n = t[0], r = () => g() === e;
49066
49082
  return (() => {
49067
- var i = _5(), a = i.firstChild, o = a.firstChild, s = o.nextSibling, c = s.nextSibling;
49083
+ var i = b5(), a = i.firstChild, o = a.firstChild, s = o.nextSibling, c = s.nextSibling;
49068
49084
  c.firstChild;
49069
49085
  var l = c.nextSibling;
49070
49086
  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, {
@@ -49072,21 +49088,21 @@ function D5() {
49072
49088
  return r();
49073
49089
  },
49074
49090
  get children() {
49075
- var e = g5();
49091
+ var e = y5();
49076
49092
  return P(e, j(We, {
49077
49093
  each: t,
49078
49094
  children: (e) => {
49079
49095
  let t = () => e.el?.deref() != null;
49080
49096
  return (() => {
49081
- var n = S5(), r = n.firstChild, i = r.nextSibling;
49097
+ var n = T5(), r = n.firstChild, i = r.nextSibling;
49082
49098
  return n.$$click = () => {
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.`));
49099
+ t() && (D5(e) || h(e.page === location.pathname ? "Element is gone — record or snapshot again." : `This finding is on ${e.page} — navigate there to reveal it.`));
49084
49100
  }, P(r, j(M, {
49085
49101
  get when() {
49086
49102
  return ne() > 1;
49087
49103
  },
49088
49104
  get children() {
49089
- var t = v5(), n = t.firstChild;
49105
+ var t = x5(), n = t.firstChild;
49090
49106
  return P(t, () => e.page, n), t;
49091
49107
  }
49092
49108
  }), null), P(r, () => e.description, null), P(r, j(M, {
@@ -49094,7 +49110,7 @@ function D5() {
49094
49110
  return (e.count ?? 1) > 1;
49095
49111
  },
49096
49112
  get children() {
49097
- var t = y5();
49113
+ var t = S5();
49098
49114
  return t.firstChild, P(t, () => e.count, null), t;
49099
49115
  }
49100
49116
  }), null), P(n, j(M, {
@@ -49102,14 +49118,14 @@ function D5() {
49102
49118
  return e.changes.length > 0;
49103
49119
  },
49104
49120
  get children() {
49105
- var t = b5();
49121
+ var t = C5();
49106
49122
  return P(t, j(We, {
49107
49123
  get each() {
49108
49124
  return e.changes;
49109
49125
  },
49110
49126
  children: (e) => (() => {
49111
- var t = C5();
49112
- return P(t, () => E5(e)), t;
49127
+ var t = E5();
49128
+ return P(t, () => k5(e)), t;
49113
49129
  })()
49114
49130
  })), t;
49115
49131
  }
@@ -49118,7 +49134,7 @@ function D5() {
49118
49134
  return e.component || e.source;
49119
49135
  },
49120
49136
  get children() {
49121
- var t = x5();
49137
+ var t = w5();
49122
49138
  return t.firstChild, P(t, () => [e.component, e.source].filter(Boolean).join(" @ "), null), t;
49123
49139
  }
49124
49140
  }), null), D((e) => {
@@ -49151,7 +49167,7 @@ function D5() {
49151
49167
  rt(["click"]);
49152
49168
  //#endregion
49153
49169
  //#region src/lib/projectConfig.ts
49154
- var O5 = [
49170
+ var j5 = [
49155
49171
  "defaultTeamId",
49156
49172
  "defaultProjectId",
49157
49173
  "defaultLabelIds",
@@ -49168,29 +49184,29 @@ var O5 = [
49168
49184
  "renderBudgets",
49169
49185
  "renderIgnore"
49170
49186
  ];
49171
- function k5(e) {
49187
+ function M5(e) {
49172
49188
  let t = {};
49173
- for (let n of O5) {
49189
+ for (let n of j5) {
49174
49190
  let r = e[n];
49175
49191
  r !== void 0 && r !== "" && !(Array.isArray(r) && r.length === 0) && (t[n] = r);
49176
49192
  }
49177
49193
  return t;
49178
49194
  }
49179
- function A5(e, t) {
49195
+ function N5(e, t) {
49180
49196
  let n = {};
49181
- for (let r of O5) e[r] === void 0 && t[r] !== void 0 && (n[r] = t[r]);
49197
+ for (let r of j5) e[r] === void 0 && t[r] !== void 0 && (n[r] = t[r]);
49182
49198
  return Object.keys(n).length ? n : null;
49183
49199
  }
49184
49200
  //#endregion
49185
49201
  //#region src/lib/linear/auth.ts
49186
49202
  Br();
49187
- function j5(e) {
49203
+ function P5(e) {
49188
49204
  let t = "";
49189
49205
  for (let n of e) t += String.fromCharCode(n);
49190
49206
  return btoa(t).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
49191
49207
  }
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");
49208
+ async function F5(e) {
49209
+ let t = P5(crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(32))), n = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(t)), r = P5(new Uint8Array(n)), i = P5(crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(16))), a = chrome.identity.getRedirectURL(), o = new URL("https://linear.app/oauth/authorize");
49194
49210
  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");
49195
49211
  let s = await chrome.identity.launchWebAuthFlow({
49196
49212
  url: o.toString(),
@@ -49218,15 +49234,15 @@ async function M5(e) {
49218
49234
  linearOauthClientId: e
49219
49235
  });
49220
49236
  }
49221
- async function N5() {
49237
+ async function I5() {
49222
49238
  await Er({
49223
49239
  linearAccessToken: void 0,
49224
49240
  linearApiKey: void 0
49225
49241
  });
49226
49242
  }
49227
49243
  Br(), Sr(), Ix(), _D();
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 &amp; 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() {
49244
+ var L5 = /*#__PURE__*/ N("<div class=\"bg-surface-2 border-border flex rounded-md border p-0.5\">"), R5 = /*#__PURE__*/ N("<span class=\"text-text-faint text-[10.5px] leading-snug\">Cloud: picking an element opens the panel to draft &amp; 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."), z5 = /*#__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"), B5 = /*#__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)."), V5 = /*#__PURE__*/ N("<span class=text-text>Connected as <span class=font-medium></span> · <span class=text-text-dim>"), H5 = /*#__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]\">"), U5 = /*#__PURE__*/ N("<option value>Select a team…"), W5 = /*#__PURE__*/ N("<option value>No project"), G5 = /*#__PURE__*/ N("<div class=\"flex flex-wrap gap-1\">"), K5 = /*#__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."), q5 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">No agents found — install the Cursor integration in Linear first."), J5 = /*#__PURE__*/ N("<span class=\"text-text-faint text-[10.5px] leading-snug\">Empty = the default above (computer-use testing, video demo, PR + review babysitting)."), Y5 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1.5\">"), X5 = /*#__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."), Z5 = /*#__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."), Q5 = /*#__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."), $5 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[10ch] text-center\">"), e7 = /*#__PURE__*/ N("<div class=\"flex items-center gap-2\">"), t7 = /*#__PURE__*/ N("<option value>Select a channel…"), n7 = /*#__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"), r7 = /*#__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."), i7 = /*#__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"), a7 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">"), o7 = /*#__PURE__*/ N("<div class=min-h-[2lh]>"), s7 = /*#__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."), c7 = /*#__PURE__*/ N("<div class=\"flex h-full flex-col gap-5 overflow-y-auto pt-3 pb-6 pl-3 pr-4\">"), l7 = /*#__PURE__*/ N("<button>"), u7 = /*#__PURE__*/ N("<div class=\"flex gap-1.5\">"), d7 = /*#__PURE__*/ N("<p class=\"text-text-faint text-center text-[10.5px]\">or"), f7 = /*#__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\">"), p7 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-3\">"), m7 = /*#__PURE__*/ N("<span class=text-text-dim>Connected — verifying…"), h7 = /*#__PURE__*/ N("<option> (<!>)"), g7 = /*#__PURE__*/ N("<option>"), _7 = /*#__PURE__*/ N("<button type=button><span class=\"mr-1 inline-block size-2 rounded-full align-middle\">"), v7 = /*#__PURE__*/ N("<option value>Select the agent…"), y7 = /*#__PURE__*/ N("<option>#"), b7 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">No key set — AI drafting disabled, manual drafting still works.");
49245
+ function x7() {
49230
49246
  let e = sr(), t = _r(() => ({
49231
49247
  queryKey: ["settings"],
49232
49248
  queryFn: Tr,
@@ -49254,13 +49270,13 @@ function v7() {
49254
49270
  retry: 0
49255
49271
  })), [l, u] = T(!1), d = async () => {
49256
49272
  try {
49257
- await navigator.clipboard.writeText(JSON.stringify(k5(n()), null, 2) + "\n"), u(!0), setTimeout(() => u(!1), 1800);
49273
+ await navigator.clipboard.writeText(JSON.stringify(M5(n()), null, 2) + "\n"), u(!0), setTimeout(() => u(!1), 1800);
49258
49274
  } catch {}
49259
49275
  }, f = () => {
49260
49276
  let e = c.data?.projectConfig;
49261
49277
  if (!e) return;
49262
49278
  let t = {};
49263
- for (let n of O5) e[n] !== void 0 && (t[n] = e[n]);
49279
+ for (let n of j5) e[n] !== void 0 && (t[n] = e[n]);
49264
49280
  r(t);
49265
49281
  }, p = _r(() => ({
49266
49282
  queryKey: ["linear-labels"],
@@ -49293,7 +49309,7 @@ function v7() {
49293
49309
  }
49294
49310
  E(!0), ee("");
49295
49311
  try {
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"] });
49312
+ await F5(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"] });
49297
49313
  } catch (e) {
49298
49314
  ee(e instanceof Error ? e.message : "OAuth flow failed.");
49299
49315
  } finally {
@@ -49304,7 +49320,7 @@ function v7() {
49304
49320
  async function re() {
49305
49321
  ne(!0);
49306
49322
  try {
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"] });
49323
+ await I5(), 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"] });
49308
49324
  } finally {
49309
49325
  ne(!1);
49310
49326
  }
@@ -49320,12 +49336,12 @@ function v7() {
49320
49336
  return e ? `Drafting with ${e} — ${Px[e].fast} (fast) / ${Px[e].best} (best)` : null;
49321
49337
  });
49322
49338
  return (() => {
49323
- var e = a7();
49339
+ var e = c7();
49324
49340
  return P(e, j(Rj, {
49325
49341
  title: "Workflow",
49326
49342
  get children() {
49327
49343
  return [(() => {
49328
- var e = P5();
49344
+ var e = L5();
49329
49345
  return P(e, j(We, {
49330
49346
  each: [{
49331
49347
  id: "cloud",
@@ -49335,19 +49351,19 @@ function v7() {
49335
49351
  label: "Local · clipboard"
49336
49352
  }],
49337
49353
  children: (e) => (() => {
49338
- var t = o7();
49354
+ var t = l7();
49339
49355
  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;
49340
49356
  })()
49341
49357
  })), e;
49342
- })(), F5()];
49358
+ })(), R5()];
49343
49359
  }
49344
49360
  }), null), P(e, j(Rj, {
49345
49361
  title: "Capture",
49346
49362
  get children() {
49347
49363
  return [(() => {
49348
- var e = I5(), t = e.firstChild;
49364
+ var e = z5(), t = e.firstChild;
49349
49365
  return t.addEventListener("change", (e) => void r({ captureShots: e.currentTarget.checked || void 0 })), D(() => t.checked = !!n().captureShots), e;
49350
- })(), L5()];
49366
+ })(), B5()];
49351
49367
  }
49352
49368
  }), null), P(e, j(Rj, {
49353
49369
  title: "Linear",
@@ -49358,13 +49374,13 @@ function v7() {
49358
49374
  },
49359
49375
  get fallback() {
49360
49376
  return (() => {
49361
- var e = u7();
49377
+ var e = p7();
49362
49378
  return P(e, j(Lj, {
49363
49379
  label: "Personal API key",
49364
49380
  hint: "Create one at linear.app → Settings → API — fastest path.",
49365
49381
  get children() {
49366
49382
  return [(() => {
49367
- var e = s7();
49383
+ var e = u7();
49368
49384
  return P(e, j(jj, {
49369
49385
  type: "password",
49370
49386
  placeholder: "lin_api_…",
@@ -49401,12 +49417,12 @@ function v7() {
49401
49417
  }), null), P(e, j(M, {
49402
49418
  when: xr,
49403
49419
  get children() {
49404
- return [c7(), j(Lj, {
49420
+ return [d7(), j(Lj, {
49405
49421
  label: "OAuth client ID",
49406
49422
  get children() {
49407
49423
  return [
49408
49424
  (() => {
49409
- var e = s7();
49425
+ var e = u7();
49410
49426
  return P(e, j(jj, {
49411
49427
  placeholder: "your-client-id",
49412
49428
  get value() {
@@ -49434,7 +49450,7 @@ function v7() {
49434
49450
  }
49435
49451
  }),
49436
49452
  (() => {
49437
- var e = l7(), t = e.firstChild.nextSibling.nextSibling;
49453
+ var e = f7(), t = e.firstChild.nextSibling.nextSibling;
49438
49454
  return P(t, ie), e;
49439
49455
  })()
49440
49456
  ];
@@ -49445,13 +49461,13 @@ function v7() {
49445
49461
  })();
49446
49462
  },
49447
49463
  get children() {
49448
- var e = z5(), t = e.firstChild;
49464
+ var e = H5(), t = e.firstChild;
49449
49465
  return P(t, j(M, {
49450
49466
  get when() {
49451
49467
  return !a.isLoading;
49452
49468
  },
49453
49469
  get fallback() {
49454
- return d7();
49470
+ return m7();
49455
49471
  },
49456
49472
  get children() {
49457
49473
  return j(M, {
@@ -49464,7 +49480,7 @@ function v7() {
49464
49480
  return a.isError;
49465
49481
  },
49466
49482
  get fallback() {
49467
- return d7();
49483
+ return m7();
49468
49484
  },
49469
49485
  get children() {
49470
49486
  return j(Hj, { message: "Key rejected — reconnect" });
@@ -49472,7 +49488,7 @@ function v7() {
49472
49488
  });
49473
49489
  },
49474
49490
  get children() {
49475
- var e = R5(), t = e.firstChild.nextSibling, n = t.nextSibling.nextSibling;
49491
+ var e = V5(), t = e.firstChild.nextSibling, n = t.nextSibling.nextSibling;
49476
49492
  return P(t, () => a.data.name), P(n, () => a.data.email), e;
49477
49493
  }
49478
49494
  });
@@ -49513,7 +49529,7 @@ function v7() {
49513
49529
  return o.isLoading;
49514
49530
  },
49515
49531
  get children() {
49516
- return [B5(), j(M, {
49532
+ return [U5(), j(M, {
49517
49533
  get when() {
49518
49534
  return o.data;
49519
49535
  },
@@ -49523,7 +49539,7 @@ function v7() {
49523
49539
  return o.data;
49524
49540
  },
49525
49541
  children: (e) => (() => {
49526
- var t = f7(), r = t.firstChild, i = r.nextSibling;
49542
+ var t = h7(), r = t.firstChild, i = r.nextSibling;
49527
49543
  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;
49528
49544
  })()
49529
49545
  });
@@ -49547,14 +49563,14 @@ function v7() {
49547
49563
  },
49548
49564
  get children() {
49549
49565
  return [(() => {
49550
- var e = V5();
49566
+ var e = W5();
49551
49567
  return D(() => e.selected = !n().defaultProjectId), e;
49552
49568
  })(), j(We, {
49553
49569
  get each() {
49554
49570
  return s.data ?? [];
49555
49571
  },
49556
49572
  children: (e) => (() => {
49557
- var t = p7();
49573
+ var t = g7();
49558
49574
  return P(t, () => e.name), D(() => t.selected = e.id === n().defaultProjectId), D(() => t.value = e.id), t;
49559
49575
  })()
49560
49576
  })];
@@ -49566,7 +49582,7 @@ function v7() {
49566
49582
  label: "Default labels",
49567
49583
  hint: "Applied to every issue created from the panel.",
49568
49584
  get children() {
49569
- var e = H5();
49585
+ var e = G5();
49570
49586
  return P(e, j(We, {
49571
49587
  get each() {
49572
49588
  return p.data ?? [];
@@ -49574,7 +49590,7 @@ function v7() {
49574
49590
  children: (e) => {
49575
49591
  let t = () => (n().defaultLabelIds ?? []).includes(e.id);
49576
49592
  return (() => {
49577
- var i = m7(), a = i.firstChild;
49593
+ var i = _7(), a = i.firstChild;
49578
49594
  return i.$$click = () => {
49579
49595
  let i = n().defaultLabelIds ?? [];
49580
49596
  r({ defaultLabelIds: t() ? i.filter((t) => t !== e.id) : [...i, e.id] });
@@ -49591,7 +49607,7 @@ function v7() {
49591
49607
  }
49592
49608
  }),
49593
49609
  (() => {
49594
- var e = U5(), t = e.firstChild;
49610
+ var e = K5(), t = e.firstChild;
49595
49611
  return t.addEventListener("change", (e) => void r({ shareLinearKey: e.currentTarget.checked })), D(() => t.checked = !!n().shareLinearKey), e;
49596
49612
  })(),
49597
49613
  j(Lj, {
@@ -49641,7 +49657,7 @@ function v7() {
49641
49657
  return m.isLoading;
49642
49658
  },
49643
49659
  get children() {
49644
- return [h7(), j(M, {
49660
+ return [v7(), j(M, {
49645
49661
  get when() {
49646
49662
  return m.data;
49647
49663
  },
@@ -49651,7 +49667,7 @@ function v7() {
49651
49667
  return m.data;
49652
49668
  },
49653
49669
  children: (e) => (() => {
49654
- var t = p7();
49670
+ var t = g7();
49655
49671
  return P(t, () => e.displayName), D(() => t.selected = e.id === n().cursorAgentId), D(() => t.value = e.id), t;
49656
49672
  })()
49657
49673
  });
@@ -49661,7 +49677,7 @@ function v7() {
49661
49677
  });
49662
49678
  },
49663
49679
  get children() {
49664
- return W5();
49680
+ return q5();
49665
49681
  }
49666
49682
  });
49667
49683
  }
@@ -49709,7 +49725,7 @@ function v7() {
49709
49725
  onBlur: (e) => {
49710
49726
  r({ issueTemplate: e.currentTarget.value.trim() || void 0 });
49711
49727
  }
49712
- }), G5()];
49728
+ }), J5()];
49713
49729
  }
49714
49730
  }),
49715
49731
  j(Lj, {
@@ -49766,7 +49782,7 @@ function v7() {
49766
49782
  label: "Test account",
49767
49783
  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.",
49768
49784
  get children() {
49769
- var e = K5();
49785
+ var e = Y5();
49770
49786
  return P(e, j(jj, {
49771
49787
  placeholder: "Username or email (e.g. demo@yourapp.com)",
49772
49788
  get value() {
@@ -49798,7 +49814,7 @@ function v7() {
49798
49814
  title: "Panel",
49799
49815
  get children() {
49800
49816
  return [(() => {
49801
- var e = q5(), t = e.firstChild.nextSibling;
49817
+ var e = X5(), t = e.firstChild.nextSibling;
49802
49818
  return P(t, j(We, {
49803
49819
  each: [{
49804
49820
  id: "overlay",
@@ -49808,7 +49824,7 @@ function v7() {
49808
49824
  label: "Beside page"
49809
49825
  }],
49810
49826
  children: (e) => (() => {
49811
- var t = o7();
49827
+ var t = l7();
49812
49828
  return t.$$click = () => void r({
49813
49829
  panelMode: e.id,
49814
49830
  panelPos: void 0
@@ -49816,11 +49832,11 @@ function v7() {
49816
49832
  })()
49817
49833
  })), e;
49818
49834
  })(), (() => {
49819
- var e = J5(), t = e.firstChild.nextSibling;
49835
+ var e = Z5(), t = e.firstChild.nextSibling;
49820
49836
  return P(t, j(We, {
49821
49837
  each: ["left", "right"],
49822
49838
  children: (e) => (() => {
49823
- var t = o7();
49839
+ var t = l7();
49824
49840
  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;
49825
49841
  })()
49826
49842
  })), e;
@@ -49850,8 +49866,8 @@ function v7() {
49850
49866
  }), null), P(e, j(Rj, {
49851
49867
  title: "Project config (.lineargrab.json)",
49852
49868
  get children() {
49853
- return [Y5(), (() => {
49854
- var e = Z5();
49869
+ return [Q5(), (() => {
49870
+ var e = e7();
49855
49871
  return P(e, j(M, {
49856
49872
  get when() {
49857
49873
  return c.data?.projectConfig;
@@ -49882,7 +49898,7 @@ function v7() {
49882
49898
  },
49883
49899
  onClick: () => void d(),
49884
49900
  get children() {
49885
- var e = X5();
49901
+ var e = $5();
49886
49902
  return P(e, () => l() ? "Copied ✓" : "Copy config"), e;
49887
49903
  }
49888
49904
  }), null), e;
@@ -49973,12 +49989,12 @@ function v7() {
49973
49989
  });
49974
49990
  },
49975
49991
  get children() {
49976
- return [Q5(), j(We, {
49992
+ return [t7(), j(We, {
49977
49993
  get each() {
49978
49994
  return ae.data ?? [];
49979
49995
  },
49980
49996
  children: (e) => (() => {
49981
- var t = g7();
49997
+ var t = y7();
49982
49998
  return t.firstChild, P(t, () => e.name, null), D(() => t.selected = e.id === n().slackChannelId), D(() => t.value = e.id), t;
49983
49999
  })()
49984
50000
  })];
@@ -50029,10 +50045,10 @@ function v7() {
50029
50045
  }
50030
50046
  }),
50031
50047
  (() => {
50032
- var e = $5(), t = e.firstChild;
50048
+ var e = n7(), t = e.firstChild;
50033
50049
  return t.addEventListener("change", (e) => void r({ notifyOnCreate: e.currentTarget.checked ? void 0 : !1 })), D(() => t.checked = n().notifyOnCreate !== !1), e;
50034
50050
  })(),
50035
- e7()
50051
+ r7()
50036
50052
  ];
50037
50053
  }
50038
50054
  }), null), P(e, j(Rj, {
@@ -50070,7 +50086,7 @@ function v7() {
50070
50086
  }
50071
50087
  }),
50072
50088
  (() => {
50073
- var e = t7(), t = e.firstChild.nextSibling.firstChild, i = t.nextSibling, a = i.nextSibling;
50089
+ var e = i7(), t = e.firstChild.nextSibling.firstChild, i = t.nextSibling, a = i.nextSibling;
50074
50090
  return t.$$click = () => void r({ preferredProvider: void 0 }), i.$$click = () => void r({ preferredProvider: "openai" }), a.$$click = () => void r({ preferredProvider: "anthropic" }), D((e) => {
50075
50091
  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;
50076
50092
  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;
@@ -50083,16 +50099,16 @@ function v7() {
50083
50099
  }), e;
50084
50100
  })(),
50085
50101
  (() => {
50086
- var e = r7();
50102
+ var e = o7();
50087
50103
  return P(e, j(M, {
50088
50104
  get when() {
50089
50105
  return se();
50090
50106
  },
50091
50107
  get fallback() {
50092
- return _7();
50108
+ return b7();
50093
50109
  },
50094
50110
  get children() {
50095
- var e = n7();
50111
+ var e = a7();
50096
50112
  return P(e, se), e;
50097
50113
  }
50098
50114
  })), e;
@@ -50102,7 +50118,7 @@ function v7() {
50102
50118
  }), null), P(e, j(Rj, {
50103
50119
  title: "How it works",
50104
50120
  get children() {
50105
- return i7();
50121
+ return s7();
50106
50122
  }
50107
50123
  }), null), e;
50108
50124
  })();
@@ -50110,38 +50126,38 @@ function v7() {
50110
50126
  rt(["click"]);
50111
50127
  //#endregion
50112
50128
  //#region src/lib/idbCache.ts
50113
- var y7 = "linear-grab", b7 = "queries", x7 = [
50129
+ var S7 = "linear-grab", C7 = "queries", w7 = [
50114
50130
  "my-issues",
50115
50131
  "issue",
50116
50132
  "sessions",
50117
50133
  "teams",
50118
50134
  "agents"
50119
50135
  ];
50120
- function S7() {
50136
+ function T7() {
50121
50137
  return new Promise((e) => {
50122
50138
  try {
50123
- let t = indexedDB.open(y7, 1);
50124
- t.onupgradeneeded = () => t.result.createObjectStore(b7), t.onsuccess = () => e(t.result), t.onerror = () => e(null);
50139
+ let t = indexedDB.open(S7, 1);
50140
+ t.onupgradeneeded = () => t.result.createObjectStore(C7), t.onsuccess = () => e(t.result), t.onerror = () => e(null);
50125
50141
  } catch {
50126
50142
  e(null);
50127
50143
  }
50128
50144
  });
50129
50145
  }
50130
- function C7(e) {
50131
- return typeof e[0] == "string" && x7.includes(e[0]);
50146
+ function E7(e) {
50147
+ return typeof e[0] == "string" && w7.includes(e[0]);
50132
50148
  }
50133
- async function w7(e) {
50134
- let t = await S7();
50149
+ async function D7(e) {
50150
+ let t = await T7();
50135
50151
  if (!t) return () => {};
50136
50152
  await new Promise((n) => {
50137
50153
  try {
50138
- let r = t.transaction(b7, "readonly").objectStore(b7).openCursor();
50154
+ let r = t.transaction(C7, "readonly").objectStore(C7).openCursor();
50139
50155
  r.onsuccess = () => {
50140
50156
  let t = r.result;
50141
50157
  if (!t) return n();
50142
50158
  try {
50143
50159
  let { queryKey: n, data: r } = t.value;
50144
- C7(n) && e.getQueryData(n) === void 0 && e.setQueryData(n, r, { updatedAt: 0 });
50160
+ E7(n) && e.getQueryData(n) === void 0 && e.setQueryData(n, r, { updatedAt: 0 });
50145
50161
  } catch {}
50146
50162
  t.continue();
50147
50163
  }, r.onerror = () => n();
@@ -50152,14 +50168,14 @@ async function w7(e) {
50152
50168
  let n = /* @__PURE__ */ new Map(), r = e.getQueryCache().subscribe((r) => {
50153
50169
  if (r.type !== "updated" || r.action.type !== "success") return;
50154
50170
  let { queryKey: i, queryHash: a } = r.query;
50155
- if (!C7(i)) return;
50171
+ if (!E7(i)) return;
50156
50172
  let o = n.get(a);
50157
50173
  o && clearTimeout(o), n.set(a, setTimeout(() => {
50158
50174
  n.delete(a);
50159
50175
  try {
50160
50176
  let n = e.getQueryData(i);
50161
50177
  if (n === void 0) return;
50162
- t.transaction(b7, "readwrite").objectStore(b7).put({
50178
+ t.transaction(C7, "readwrite").objectStore(C7).put({
50163
50179
  queryKey: i,
50164
50180
  data: n
50165
50181
  }, a);
@@ -50175,7 +50191,7 @@ async function w7(e) {
50175
50191
  //#endregion
50176
50192
  //#region src/panel/App.tsx
50177
50193
  Br();
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 = [
50194
+ var O7 = /*#__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\">"), k7 = /*#__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\">"), A7 = /*#__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\">–"), j7 = /*#__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>"), M7 = /*#__PURE__*/ N("<button>"), N7 = [
50179
50195
  {
50180
50196
  id: "draft",
50181
50197
  label: "Draft"
@@ -50216,35 +50232,35 @@ var T7 = /*#__PURE__*/ N("<svg viewBox=\"0 0 100 100\"fill=currentColor aria-hid
50216
50232
  id: "settings",
50217
50233
  label: "Settings"
50218
50234
  }
50219
- ], j7 = /* @__PURE__ */ new Set();
50220
- function M7(e, t, n) {
50221
- if (j7.has(e) || typeof Notification > "u") return;
50222
- j7.add(e);
50235
+ ], P7 = /* @__PURE__ */ new Set();
50236
+ function F7(e, t, n) {
50237
+ if (P7.has(e) || typeof Notification > "u") return;
50238
+ P7.add(e);
50223
50239
  let r = () => new Notification(t, { body: n });
50224
50240
  Notification.permission === "granted" ? r() : Notification.permission === "default" && Notification.requestPermission().then((e) => e === "granted" && r());
50225
50241
  }
50226
- function N7() {
50242
+ function I7() {
50227
50243
  setInterval(() => {
50228
50244
  PO().then((e) => {
50229
50245
  for (let t of e) {
50230
50246
  if (t.status !== "running") continue;
50231
50247
  let e = t.lastEventAt ?? t.startedAt;
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.`);
50248
+ Date.now() - e > 10 * 6e4 && F7(`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.`);
50233
50249
  }
50234
50250
  }).catch(() => {}), _O().then((e) => {
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.`);
50251
+ for (let t of e) /awaitingInput|elicit/i.test(t.status) && F7(`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.`);
50236
50252
  }).catch(() => {});
50237
50253
  }, 6e4);
50238
50254
  }
50239
- N7();
50240
- var P7 = new gr({ defaultOptions: { queries: {
50255
+ I7();
50256
+ var L7 = new gr({ defaultOptions: { queries: {
50241
50257
  retry: 1,
50242
50258
  refetchOnWindowFocus: !1,
50243
50259
  staleTime: 5e3
50244
50260
  } } });
50245
- function F7(e) {
50261
+ function R7(e) {
50246
50262
  return (() => {
50247
- var t = T7();
50263
+ var t = O7();
50248
50264
  return D((n) => {
50249
50265
  var r = e.size ?? 14, i = e.size ?? 14;
50250
50266
  return r !== n.e && it(t, "width", n.e = r), i !== n.t && it(t, "height", n.t = i), n;
@@ -50254,36 +50270,36 @@ function F7(e) {
50254
50270
  }), t;
50255
50271
  })();
50256
50272
  }
50257
- function I7(e) {
50273
+ function z7(e) {
50258
50274
  let [t, n] = T("draft"), r = () => {
50259
- P7.invalidateQueries({ queryKey: ["grab"] }), lj() === "capture" && n("capture"), e.onGrab?.();
50275
+ L7.invalidateQueries({ queryKey: ["grab"] }), lj() === "capture" && n("capture"), e.onGrab?.();
50260
50276
  };
50261
50277
  return O(() => {
50262
50278
  let e = rj();
50263
50279
  e && n(e);
50264
50280
  }), ie(() => {
50265
- let e = w7(P7), t = XZ(r), n = () => {
50281
+ let e = D7(L7), t = XZ(r), n = () => {
50266
50282
  YO().then(y$), HO(), NO().then(async (e) => {
50267
50283
  if (!e.projectConfig) return;
50268
- let t = A5(await Tr(), e.projectConfig);
50284
+ let t = N5(await Tr(), e.projectConfig);
50269
50285
  t && await Er(t);
50270
50286
  }).catch(() => {});
50271
50287
  };
50272
50288
  n();
50273
50289
  let i = Mr((e) => {
50274
- e === "settings" && (P7.invalidateQueries({ queryKey: ["settings"] }), n()), e === "grab" && r();
50290
+ e === "settings" && (L7.invalidateQueries({ queryKey: ["settings"] }), n()), e === "grab" && r();
50275
50291
  });
50276
50292
  ae(() => {
50277
50293
  t(), i(), e.then((e) => e());
50278
50294
  });
50279
50295
  }), j(cr, {
50280
- client: P7,
50296
+ client: L7,
50281
50297
  get children() {
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,
50298
+ var r = j7(), 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;
50299
+ return i.$$pointerdown = (t) => e.onHeaderPointerDown?.(t), P(a, j(R7, { size: 14 })), P(o, j(We, {
50300
+ each: N7,
50285
50301
  children: (e) => (() => {
50286
- var r = k7();
50302
+ var r = M7();
50287
50303
  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;
50288
50304
  })()
50289
50305
  })), P(i, j(M, {
@@ -50291,7 +50307,7 @@ function I7(e) {
50291
50307
  return e.onTogglePin;
50292
50308
  },
50293
50309
  get children() {
50294
- var t = E7();
50310
+ var t = k7();
50295
50311
  return t.$$click = () => e.onTogglePin?.(), D((n) => {
50296
50312
  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"}`;
50297
50313
  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;
@@ -50306,10 +50322,10 @@ function I7(e) {
50306
50322
  return e.onClose;
50307
50323
  },
50308
50324
  get children() {
50309
- var t = D7();
50325
+ var t = A7();
50310
50326
  return t.$$click = () => e.onClose?.(), t;
50311
50327
  }
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) => {
50328
+ }), 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(G3, {})), P(h, j(A5, {})), P(g, j(x7, {})), D((n) => {
50313
50329
  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";
50314
50330
  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;
50315
50331
  }, {
@@ -50331,16 +50347,16 @@ function I7(e) {
50331
50347
  rt(["pointerdown", "click"]);
50332
50348
  //#endregion
50333
50349
  //#region src/styles/app.css?inline
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}}";
50350
+ var B7 = "/*! 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}}";
50335
50351
  //#endregion
50336
50352
  //#region src/page/index.tsx
50337
50353
  Br();
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 = {}) {
50354
+ var V7 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-danger size-2 shrink-0 animate-pulse rounded-full\">"), H7 = /*#__PURE__*/ N("<span class=\"text-text min-w-[5ch] text-[11px] font-medium tabular-nums\">"), U7 = /*#__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"), W7 = /*#__PURE__*/ N("<p class=\"text-warn px-1.5 pt-1 pb-1.5 text-[10.5px] font-semibold tracking-wide uppercase\">Needs review"), G7 = /*#__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"), K7 = /*#__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\">"), q7 = /*#__PURE__*/ N("<div><div title=\"Drag to resize\">"), J7 = /*#__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\">"), Y7 = /*#__PURE__*/ N("<span class=\"bg-border h-4 w-px\"aria-hidden>"), X7 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-warn size-2 rounded-full\">"), Z7 = /*#__PURE__*/ N("<span class=\"text-warn min-w-[3.5ch] text-left text-[11px] font-medium tabular-nums\"> rev"), Q7 = /*#__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>"), $7 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-accent size-2 shrink-0 animate-pulse rounded-full\">"), e9 = /*#__PURE__*/ N("<span class=\"text-text min-w-[3ch] text-[11px] font-medium tabular-nums\">s"), t9 = /*#__PURE__*/ N("<span class=\"text-text-dim min-w-[7ch] text-[11px] tabular-nums\"> states"), n9 = /*#__PURE__*/ N("<p class=\"text-text-faint px-1.5 pb-1.5 text-[11.5px]\">No agents running right now."), r9 = /*#__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\"> · <!> · ");
50355
+ function i9(e = {}) {
50340
50356
  if (typeof window > "u" || window.__LINEAR_GRAB_PAGE__) return;
50341
50357
  window.__LINEAR_GRAB_PAGE__ = !0;
50342
50358
  let t = () => {
50343
- uk(), z2(), Y4(), V8(), JZ();
50359
+ uk(), z2(), Q4(), W8(), JZ();
50344
50360
  let t = document.createElement("div");
50345
50361
  t.id = "linear-grab-root", document.body.appendChild(t);
50346
50362
  let n = (e) => {
@@ -50368,17 +50384,17 @@ function t9(e = {}) {
50368
50384
  "keypress"
50369
50385
  ]) window.addEventListener(e, n, { capture: !0 });
50370
50386
  let r = t.attachShadow({ mode: "open" }), i = document.createElement("style");
50371
- i.textContent = L7, r.appendChild(i);
50387
+ i.textContent = B7, r.appendChild(i);
50372
50388
  let a = document.createElement("div");
50373
50389
  r.appendChild(a);
50374
- let o = () => a.setAttribute("data-theme", n9());
50375
- o(), matchMedia("(prefers-color-scheme: light)").addEventListener("change", o), nt(() => j(c9, { get defaultOpen() {
50390
+ let o = () => a.setAttribute("data-theme", a9());
50391
+ o(), matchMedia("(prefers-color-scheme: light)").addEventListener("change", o), nt(() => j(d9, { get defaultOpen() {
50376
50392
  return e.defaultOpen ?? !1;
50377
50393
  } }), a);
50378
50394
  };
50379
50395
  document.body ? t() : document.addEventListener("DOMContentLoaded", t, { once: !0 });
50380
50396
  }
50381
- function n9() {
50397
+ function a9() {
50382
50398
  try {
50383
50399
  let e = [document.body, document.documentElement];
50384
50400
  for (let t of e) {
@@ -50388,11 +50404,11 @@ function n9() {
50388
50404
  } catch {}
50389
50405
  return matchMedia("(prefers-color-scheme: light)").matches ? "light" : "dark";
50390
50406
  }
50391
- var r9 = 130, i9 = 36, a9 = 380, o9 = 280, s9 = 720;
50392
- function c9(e) {
50407
+ var o9 = 130, s9 = 36, c9 = 380, l9 = 280, u9 = 720;
50408
+ function d9(e) {
50393
50409
  let [t, n] = T(e.defaultOpen), [r, i] = T("right"), [a, o] = T({
50394
- x: Math.max(8, window.innerWidth - r9 - 24),
50395
- y: Math.max(8, window.innerHeight - i9 - 20)
50410
+ x: Math.max(8, window.innerWidth - o9 - 24),
50411
+ y: Math.max(8, window.innerHeight - s9 - 20)
50396
50412
  }), [s, c] = T({
50397
50413
  running: [],
50398
50414
  review: []
@@ -50412,12 +50428,12 @@ function c9(e) {
50412
50428
  let t = Math.floor(e / 1e3);
50413
50429
  return `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
50414
50430
  }, [b, x] = T(null), S = (e) => ({
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)
50431
+ x: Math.min(Math.max(8, e.x), window.innerWidth - o9 - 8),
50432
+ y: Math.min(Math.max(8, e.y), window.innerHeight - s9 - 8)
50417
50433
  }), C = (e) => ({
50418
50434
  x: Math.min(Math.max(8 - (ne() - 80), e.x), window.innerWidth - 80),
50419
50435
  y: Math.min(Math.max(0, e.y), window.innerHeight - 80)
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)));
50436
+ }), [w, E] = T(!1), [k, ee] = T("cloud"), [te, A] = T(!1), [ne, re] = T(c9), oe = (e) => Math.min(u9, Math.max(l9, Math.min(e, window.innerWidth - 60)));
50421
50437
  O(() => {
50422
50438
  let e = document.documentElement, n = t() && w();
50423
50439
  e.style.marginRight = n && r() === "right" ? `${ne()}px` : "", e.style.marginLeft = n && r() === "left" ? `${ne()}px` : "";
@@ -50531,7 +50547,7 @@ function c9(e) {
50531
50547
  return !t();
50532
50548
  },
50533
50549
  get children() {
50534
- var e = U7(), t = e.firstChild;
50550
+ var e = K7(), t = e.firstChild;
50535
50551
  return t.$$click = () => {
50536
50552
  ce || p() === "recording" || h().active || (f(!1), n(!0));
50537
50553
  }, t.$$pointerdown = le, P(t, j(M, {
@@ -50541,14 +50557,14 @@ function c9(e) {
50541
50557
  get fallback() {
50542
50558
  return [
50543
50559
  (() => {
50544
- var e = G7();
50560
+ var e = J7();
50545
50561
  return e.$$click = () => {
50546
50562
  ce || (f(!1), n(!0));
50547
- }, P(e, j(F7, { size: 13 })), e;
50563
+ }, P(e, j(R7, { size: 13 })), e;
50548
50564
  })(),
50549
- K7(),
50565
+ Y7(),
50550
50566
  (() => {
50551
- var e = Y7(), t = e.firstChild, n = t.nextSibling;
50567
+ var e = Q7(), t = e.firstChild, n = t.nextSibling;
50552
50568
  return e.$$click = (e) => {
50553
50569
  e.stopPropagation(), !ce && f((e) => !e);
50554
50570
  }, P(n, (() => {
@@ -50559,8 +50575,8 @@ function c9(e) {
50559
50575
  return $e(() => !te())() && u().length > 0;
50560
50576
  },
50561
50577
  get children() {
50562
- return [q7(), (() => {
50563
- var e = J7(), t = e.firstChild;
50578
+ return [X7(), (() => {
50579
+ var e = Z7(), t = e.firstChild;
50564
50580
  return P(e, () => u().length, t), e;
50565
50581
  })()];
50566
50582
  }
@@ -50581,17 +50597,17 @@ function c9(e) {
50581
50597
  },
50582
50598
  get fallback() {
50583
50599
  return [
50584
- X7(),
50600
+ $7(),
50585
50601
  (() => {
50586
- var e = Z7(), t = e.firstChild;
50602
+ var e = e9(), t = e.firstChild;
50587
50603
  return P(e, () => Math.ceil(h().msLeft / 1e3), t), e;
50588
50604
  })(),
50589
50605
  (() => {
50590
- var e = Q7(), t = e.firstChild;
50606
+ var e = t9(), t = e.firstChild;
50591
50607
  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;
50592
50608
  })(),
50593
50609
  (() => {
50594
- var e = B7();
50610
+ var e = U7();
50595
50611
  return e.$$click = (e) => {
50596
50612
  e.stopPropagation(), !ce && o2();
50597
50613
  }, e;
@@ -50600,13 +50616,13 @@ function c9(e) {
50600
50616
  },
50601
50617
  get children() {
50602
50618
  return [
50603
- R7(),
50619
+ V7(),
50604
50620
  (() => {
50605
- var e = z7();
50621
+ var e = H7();
50606
50622
  return P(e, () => y(_())), e;
50607
50623
  })(),
50608
50624
  (() => {
50609
- var e = B7();
50625
+ var e = U7();
50610
50626
  return e.$$click = () => {
50611
50627
  ce || tO();
50612
50628
  }, e;
@@ -50620,17 +50636,17 @@ function c9(e) {
50620
50636
  return d();
50621
50637
  },
50622
50638
  get children() {
50623
- var e = H7(), t = e.firstChild;
50639
+ var e = G7(), t = e.firstChild;
50624
50640
  return P(e, j(M, {
50625
50641
  get when() {
50626
50642
  return u().length > 0;
50627
50643
  },
50628
50644
  get children() {
50629
- return [V7(), j(We, {
50645
+ return [W7(), j(We, {
50630
50646
  get each() {
50631
50647
  return u();
50632
50648
  },
50633
- children: (e) => j(l9, {
50649
+ children: (e) => j(f9, {
50634
50650
  agent: e,
50635
50651
  review: !0,
50636
50652
  onOpen: de
@@ -50642,14 +50658,14 @@ function c9(e) {
50642
50658
  return l().length > 0;
50643
50659
  },
50644
50660
  get fallback() {
50645
- return $7();
50661
+ return n9();
50646
50662
  },
50647
50663
  get children() {
50648
50664
  return j(We, {
50649
50665
  get each() {
50650
50666
  return l();
50651
50667
  },
50652
- children: (e) => j(l9, {
50668
+ children: (e) => j(f9, {
50653
50669
  agent: e,
50654
50670
  onOpen: de
50655
50671
  })
@@ -50670,8 +50686,8 @@ function c9(e) {
50670
50686
  return t();
50671
50687
  },
50672
50688
  get children() {
50673
- var e = W7(), t = e.firstChild;
50674
- return t.$$pointerdown = fe, P(e, j(I7, {
50689
+ var e = q7(), t = e.firstChild;
50690
+ return t.$$pointerdown = fe, P(e, j(z7, {
50675
50691
  onGrab: () => n(!0),
50676
50692
  onClose: () => n(!1),
50677
50693
  get onHeaderPointerDown() {
@@ -50699,19 +50715,19 @@ function c9(e) {
50699
50715
  }
50700
50716
  })];
50701
50717
  }
50702
- function l9(e) {
50718
+ function f9(e) {
50703
50719
  return (() => {
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;
50720
+ var t = r9(), n = t.firstChild, r = n.firstChild, i = r.nextSibling, a = i.nextSibling, o = n.nextSibling, s = o.firstChild, c = s.nextSibling;
50705
50721
  return c.nextSibling, t.$$click = () => e.onOpen(e.agent.id), P(i, () => e.agent.identifier), P(a, () => e.agent.title), P(o, (() => {
50706
50722
  var t = $e(() => !!e.review);
50707
50723
  return () => t() ? "PR ready · needs review" : e.agent.stateName;
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;
50724
+ })(), s), P(o, () => e.agent.delegateName, c), P(o, () => p9(e.agent.updatedAt), null), D((t) => dt(r, "background", e.review ? "var(--color-warn)" : e.agent.stateColor)), t;
50709
50725
  })();
50710
50726
  }
50711
- function u9(e) {
50727
+ function p9(e) {
50712
50728
  let t = Math.max(0, Math.floor((Date.now() - Date.parse(e)) / 1e3));
50713
50729
  return t < 60 ? "now" : t < 3600 ? `${Math.floor(t / 60)}m` : t < 86400 ? `${Math.floor(t / 3600)}h` : `${Math.floor(t / 86400)}d`;
50714
50730
  }
50715
50731
  rt(["pointerdown", "click"]);
50716
50732
  //#endregion
50717
- export { t9 as init };
50733
+ export { i9 as init };