linear-grab 0.26.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,13 +47789,29 @@ 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
- function G3(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) {
47800
+ return e?.length ? e.map((e) => {
47801
+ try {
47802
+ let t = new RegExp(e);
47803
+ return (e) => t.test(e);
47804
+ } catch {
47805
+ return (t) => t === e;
47806
+ }
47807
+ }) : [];
47808
+ }
47809
+ function X3(e, t) {
47810
+ if (e.length <= 2 || J3.test(e)) return !0;
47811
+ for (let n of t) if (n(e)) return !0;
47812
+ return !1;
47813
+ }
47814
+ function Z3(e) {
47783
47815
  let t = /* @__PURE__ */ new Map();
47784
47816
  for (let n of e) for (let e of n.entries) {
47785
47817
  let n = t.get(e.name);
@@ -47792,129 +47824,133 @@ function G3(e) {
47792
47824
  }
47793
47825
  return t;
47794
47826
  }
47795
- function K3(e, t) {
47796
- let n = [], r = G3(e), i = t.budgets;
47797
- return t6(n, () => {
47827
+ function Q3(e, t, n) {
47828
+ let r = [], i = Y3(n?.ignore), a = e.map((e) => ({
47829
+ ...e,
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, () => {
47798
47834
  let e = [];
47799
- for (let n of r.values()) {
47835
+ for (let n of o.values()) {
47800
47836
  if (n.updates.length < 5 || !n.updates.every((e) => e.length === 0)) continue;
47801
47837
  let r = n.updates.length;
47802
47838
  e.push({
47803
47839
  ruleId: "R9",
47804
47840
  shape: "B",
47805
- severity: W3(t, "R9", "error"),
47841
+ severity: q3(t, "R9", "error"),
47806
47842
  suspected: !0,
47807
47843
  description: `suspected R9 — ${n.name} re-rendered ${r}× with zero prop changes (dead memo or subscription-in-body)`,
47808
47844
  component: n.name,
47809
47845
  source: null,
47810
47846
  renders: r,
47811
- selfTime: U3(n.selfTime),
47847
+ selfTime: K3(n.selfTime),
47812
47848
  changes: [],
47813
- 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`,
47814
47850
  el: n.el
47815
47851
  });
47816
47852
  }
47817
47853
  return e;
47818
- }), t6(n, () => {
47854
+ }), s6(r, () => {
47819
47855
  let e = [];
47820
- for (let n of r.values()) {
47856
+ for (let n of o.values()) {
47821
47857
  if (n.updates.length < 5 || !n.updates.every((e) => e.length > 0 && e.every((e) => /\((?:fn|ref)\)$/.test(e)))) continue;
47822
47858
  let r = Array.from(new Set(n.updates.flat())), i = n.updates.length, a = r.join(", ");
47823
47859
  e.push({
47824
47860
  ruleId: "R5",
47825
47861
  shape: "B",
47826
- severity: W3(t, "R5", "error"),
47862
+ severity: q3(t, "R5", "error"),
47827
47863
  suspected: !0,
47828
47864
  description: `suspected R5 — ${i} renders of ${n.name} with fresh ${a} identity per parent render (memo defeated)`,
47829
47865
  component: n.name,
47830
47866
  source: null,
47831
47867
  renders: i,
47832
- selfTime: U3(n.selfTime),
47868
+ selfTime: K3(n.selfTime),
47833
47869
  changes: r,
47834
- evidence: `${i} renders · ${U3(n.selfTime)}ms self · churning ${a}`,
47870
+ evidence: `${i} renders · ${K3(n.selfTime)}ms self · churning ${a}`,
47835
47871
  el: n.el
47836
47872
  });
47837
47873
  }
47838
47874
  return e;
47839
- }), t6(n, () => {
47840
- let n = [], r = /Tooltip|Menu|Popover|Context|Dialog|Dropdown/i;
47841
- for (let i of e) for (let e of Object.keys(i.mounts)) {
47842
- let a = i.mounts[e];
47843
- if (a < (r.test(e) ? 10 : 15)) continue;
47844
- let o = i.entries.find((t) => t.name === e && t.el);
47845
- n.push({
47875
+ }), s6(r, () => {
47876
+ let e = [], n = /Tooltip|Menu|Popover|Context|Dialog|Dropdown/i;
47877
+ for (let r of a) for (let i of Object.keys(r.mounts)) {
47878
+ let a = r.mounts[i];
47879
+ if (a < (n.test(i) ? 10 : 15)) continue;
47880
+ let o = r.entries.find((e) => e.name === i && e.el);
47881
+ e.push({
47846
47882
  ruleId: "R4",
47847
47883
  shape: "A",
47848
- severity: W3(t, "R4", "error"),
47884
+ severity: q3(t, "R4", "error"),
47849
47885
  suspected: !0,
47850
- description: `suspected R4 — ${a} ${e} instances mounted in one commit (per-row overlays should mount on intent)`,
47851
- component: e,
47886
+ description: `suspected R4 — ${a} ${i} instances mounted in one commit (per-row overlays should mount on intent)`,
47887
+ component: i,
47852
47888
  source: null,
47853
47889
  renders: a,
47854
47890
  selfTime: 0,
47855
47891
  changes: [],
47856
- evidence: `${e} ×${a} mounted in one commit`,
47892
+ evidence: `${i} ×${a} mounted in one commit`,
47857
47893
  el: o?.el ?? void 0
47858
47894
  });
47859
47895
  }
47860
- return n;
47861
- }), t6(n, () => {
47862
- let t = [];
47863
- for (let n of e) {
47864
- if (n.duration <= i.commitMs) continue;
47865
- let e = [...n.entries].sort((e, t) => t.selfTime - e.selfTime).slice(0, 3).map((e) => `${e.name} ${U3(e.selfTime)}ms`).join(", "), r = U3(n.duration), a = n.duration > 16 ? ` · ~${Math.round(1e3 / n.duration)} FPS` : "";
47866
- t.push({
47896
+ return e;
47897
+ }), s6(r, () => {
47898
+ let e = [];
47899
+ for (let t of a) {
47900
+ if (t.duration <= s.commitMs) continue;
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` : "";
47902
+ e.push({
47867
47903
  ruleId: null,
47868
47904
  shape: null,
47869
47905
  severity: "error",
47870
47906
  suspected: !1,
47871
- description: `commit exceeded budget: ${r}ms of React work (> ${i.commitMs}ms) — top: ${e}`,
47907
+ description: `commit exceeded budget: ${r}ms of React work (> ${s.commitMs}ms) — top: ${n}`,
47872
47908
  component: null,
47873
47909
  source: null,
47874
- renders: n.entries.length,
47910
+ renders: t.entries.length,
47875
47911
  selfTime: r,
47876
47912
  changes: [],
47877
- evidence: `${r}ms commit · ${n.entries.length} components${a}`
47913
+ evidence: `${r}ms commit · ${t.entries.length} components${i}`
47878
47914
  });
47879
47915
  }
47880
- return t;
47881
- }), t6(n, () => {
47882
- let t = [], n = /* @__PURE__ */ new Map();
47883
- for (let t of e) {
47884
- let e = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map();
47885
- for (let n of t.entries) e.set(n.name, (e.get(n.name) ?? 0) + n.selfTime), n.el && !r.has(n.name) && r.set(n.name, n.el);
47886
- for (let [t, a] of e) {
47887
- if (a <= i.selfMs) continue;
47888
- let e = n.get(t) ?? {
47916
+ return e;
47917
+ }), s6(r, () => {
47918
+ let e = [], t = /* @__PURE__ */ new Map();
47919
+ for (let e of a) {
47920
+ let n = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map();
47921
+ for (let t of e.entries) n.set(t.name, (n.get(t.name) ?? 0) + t.selfTime), t.el && !r.has(t.name) && r.set(t.name, t.el);
47922
+ for (let [e, i] of n) {
47923
+ if (i <= s.selfMs) continue;
47924
+ let n = t.get(e) ?? {
47889
47925
  hits: 0,
47890
47926
  worst: 0,
47891
47927
  total: 0,
47892
- el: r.get(t)
47928
+ el: r.get(e)
47893
47929
  };
47894
- e.hits += 1, e.worst = Math.max(e.worst, a), e.total += a, e.el ||= r.get(t), n.set(t, e);
47930
+ n.hits += 1, n.worst = Math.max(n.worst, i), n.total += i, n.el ||= r.get(e), t.set(e, n);
47895
47931
  }
47896
47932
  }
47897
- for (let [e, r] of n) r.hits < 3 || t.push({
47933
+ for (let [n, r] of t) r.hits < 3 || e.push({
47898
47934
  ruleId: null,
47899
47935
  shape: null,
47900
47936
  severity: "warn",
47901
47937
  suspected: !1,
47902
- description: `${e} is a hot component: ${r.hits} commits over the ${i.selfMs}ms self budget`,
47903
- component: e,
47938
+ description: `${n} is a hot component: ${r.hits} commits over the ${s.selfMs}ms self budget`,
47939
+ component: n,
47904
47940
  source: null,
47905
47941
  renders: r.hits,
47906
- selfTime: U3(r.total),
47942
+ selfTime: K3(r.total),
47907
47943
  changes: [],
47908
- evidence: `${r.hits} commits over ${i.selfMs}ms self (worst ${U3(r.worst)}ms)`,
47944
+ evidence: `${r.hits} commits over ${s.selfMs}ms self (worst ${K3(r.worst)}ms)`,
47909
47945
  el: r.el
47910
47946
  });
47911
- return t;
47912
- }), t6(n, () => {
47913
- let n = [], r = $3(e.filter((e) => e.nearInput).map((e) => e.at).sort((e, t) => e - t), 1e3);
47947
+ return e;
47948
+ }), s6(r, () => {
47949
+ let n = [], r = a6(e.filter((e) => e.nearInput).map((e) => e.at).sort((e, t) => e - t), 1e3);
47914
47950
  return r >= 5 && n.push({
47915
47951
  ruleId: "R10",
47916
47952
  shape: "B",
47917
- severity: W3(t, "R10", "error"),
47953
+ severity: q3(t, "R10", "error"),
47918
47954
  suspected: !0,
47919
47955
  description: `suspected R10 — ${r} React commits during scroll/pointer movement (frame-rate state updates)`,
47920
47956
  component: null,
@@ -47924,12 +47960,12 @@ function K3(e, t) {
47924
47960
  changes: [],
47925
47961
  evidence: `${r} commits within a 1s scroll/pointer window`
47926
47962
  }), n;
47927
- }), t6(n, () => {
47928
- let n = [], { count: r, span: i } = e6(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);
47929
47965
  return r >= 8 && n.push({
47930
47966
  ruleId: "R24",
47931
47967
  shape: "B",
47932
- severity: W3(t, "R24", "warn"),
47968
+ severity: q3(t, "R24", "warn"),
47933
47969
  suspected: !0,
47934
47970
  description: `suspected R24 — ${r} commits in ${Math.round(i)}ms burst (multi-row writes / un-coalesced pokes?)`,
47935
47971
  component: null,
@@ -47939,10 +47975,10 @@ function K3(e, t) {
47939
47975
  changes: [],
47940
47976
  evidence: `${r} commits in a ${Math.round(i)}ms burst (no input)`
47941
47977
  }), n;
47942
- }), t6(n, () => {
47978
+ }), s6(r, () => {
47943
47979
  let e = [];
47944
- if (!Z3()) return e;
47945
- for (let n of r.values()) {
47980
+ if (!r6()) return e;
47981
+ for (let n of o.values()) {
47946
47982
  if (n.updates.length < 3) continue;
47947
47983
  let r = n.el?.deref();
47948
47984
  if (!r) continue;
@@ -47958,33 +47994,33 @@ function K3(e, t) {
47958
47994
  e.push({
47959
47995
  ruleId: "R3",
47960
47996
  shape: "C",
47961
- severity: W3(t, "R3", "error"),
47997
+ severity: q3(t, "R3", "error"),
47962
47998
  suspected: !0,
47963
47999
  description: `suspected R3 — ${n.name} re-rendered ${a}× while its DOM is hidden/detached (closed host without everOpened gate?) [R3/R7/R23 family]`,
47964
48000
  component: n.name,
47965
48001
  source: null,
47966
48002
  renders: a,
47967
- selfTime: U3(n.selfTime),
48003
+ selfTime: K3(n.selfTime),
47968
48004
  changes: [],
47969
- evidence: `${a} renders while hidden/detached · ${U3(n.selfTime)}ms self`,
48005
+ evidence: `${a} renders while hidden/detached · ${K3(n.selfTime)}ms self`,
47970
48006
  el: n.el
47971
48007
  });
47972
48008
  }
47973
48009
  return e;
47974
- }), n6(n);
48010
+ }), c6(r);
47975
48011
  }
47976
- var q3 = "#linear-grab-root, #claude-agent-glow-border, [id^=\"react-scan\"]";
47977
- function J3(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 : {}) {
47978
48014
  let t = [];
47979
- return t6(t, () => {
47980
- let t = [], n = Array.from(e.querySelectorAll("[role=\"slider\"], [role=\"progressbar\"], [role=\"switch\"]")), r = Q3(e);
48015
+ return s6(t, () => {
48016
+ let t = [], n = Array.from(e.querySelectorAll("[role=\"slider\"], [role=\"progressbar\"], [role=\"switch\"]")), r = i6(e);
47981
48017
  for (let e of n) {
47982
- if (e.closest(q3)) continue;
48018
+ if (e.closest($3)) continue;
47983
48019
  if (r) try {
47984
48020
  let t = e.getBoundingClientRect();
47985
48021
  if (t.width < 2 || t.height < 2) continue;
47986
48022
  } catch {}
47987
- if (!Y3(e)) continue;
48023
+ if (!t6(e)) continue;
47988
48024
  let n = e.getAttribute("role") ?? "widget";
47989
48025
  t.push({
47990
48026
  ruleId: "R8",
@@ -47997,14 +48033,14 @@ function J3(e = typeof document < "u" ? document : {}) {
47997
48033
  renders: 0,
47998
48034
  selfTime: 0,
47999
48035
  changes: [],
48000
- evidence: X3(e),
48036
+ evidence: n6(e),
48001
48037
  el: typeof WeakRef < "u" ? new WeakRef(e) : void 0
48002
48038
  });
48003
48039
  }
48004
48040
  return t;
48005
- }), n6(t);
48041
+ }), c6(t);
48006
48042
  }
48007
- function Y3(e) {
48043
+ function t6(e) {
48008
48044
  if (e.hasAttribute("disabled") || e.getAttribute("aria-disabled") === "true") return !0;
48009
48045
  let t = e;
48010
48046
  for (let e = 0; t && e <= 3; e++) {
@@ -48015,17 +48051,17 @@ function Y3(e) {
48015
48051
  }
48016
48052
  return !1;
48017
48053
  }
48018
- function X3(e) {
48054
+ function n6(e) {
48019
48055
  let t = typeof e.className == "string" && e.className ? "." + e.className.split(/\s+/).filter(Boolean).slice(0, 2).join(".") : "";
48020
48056
  return `${e.tagName.toLowerCase()}${t}`;
48021
48057
  }
48022
- function Z3() {
48058
+ function r6() {
48023
48059
  return typeof document > "u" ? !1 : (document.documentElement?.getBoundingClientRect().width ?? 0) > 0;
48024
48060
  }
48025
- function Q3(e) {
48061
+ function i6(e) {
48026
48062
  return ((e.documentElement ?? (typeof document < "u" ? document.documentElement : null))?.getBoundingClientRect().width ?? 0) > 0;
48027
48063
  }
48028
- function $3(e, t) {
48064
+ function a6(e, t) {
48029
48065
  let n = 0, r = 0;
48030
48066
  for (let i = 0; i < e.length; i++) {
48031
48067
  for (; e[i] - e[r] > t;) r++;
@@ -48033,7 +48069,7 @@ function $3(e, t) {
48033
48069
  }
48034
48070
  return n;
48035
48071
  }
48036
- function e6(e, t) {
48072
+ function o6(e, t) {
48037
48073
  let n = 0, r = 0, i = 0;
48038
48074
  for (let a = 0; a < e.length; a++) {
48039
48075
  for (; e[a] - e[i] > t;) i++;
@@ -48045,12 +48081,12 @@ function e6(e, t) {
48045
48081
  span: r
48046
48082
  };
48047
48083
  }
48048
- function t6(e, t) {
48084
+ function s6(e, t) {
48049
48085
  try {
48050
48086
  e.push(...t());
48051
48087
  } catch {}
48052
48088
  }
48053
- function n6(e) {
48089
+ function c6(e) {
48054
48090
  let t = /* @__PURE__ */ new Map();
48055
48091
  for (let n of e) {
48056
48092
  let e = `${n.ruleId}|${n.component}|${n.changes.join()}|${n.description}`, r = t.get(e);
@@ -48058,7 +48094,7 @@ function n6(e) {
48058
48094
  }
48059
48095
  return [...t.values()];
48060
48096
  }
48061
- function r6(e) {
48097
+ function l6(e) {
48062
48098
  let t = /* @__PURE__ */ new Map();
48063
48099
  for (let n of e) {
48064
48100
  let e = n.ruleId ?? "budget", r = t.get(e);
@@ -48084,7 +48120,7 @@ function r6(e) {
48084
48120
  }
48085
48121
  return a.join("\n");
48086
48122
  }
48087
- function i6(e, t) {
48123
+ function u6(e, t) {
48088
48124
  let n = Array.from(new Set(e.map((e) => e.ruleId).filter((e) => !!e))).sort(), r = [];
48089
48125
  for (let e of n) {
48090
48126
  let n = t.rules[e];
@@ -48111,35 +48147,35 @@ function i6(e, t) {
48111
48147
  "",
48112
48148
  "---",
48113
48149
  "",
48114
- r6(e)
48150
+ l6(e)
48115
48151
  ].join("\n");
48116
48152
  }
48117
- var a6 = "bippy-0.5.43", o6 = Object.defineProperty, s6 = Object.prototype.hasOwnProperty, c6 = () => {}, l6 = (e) => {
48153
+ var d6 = "bippy-0.5.43", f6 = Object.defineProperty, p6 = Object.prototype.hasOwnProperty, m6 = () => {}, h6 = (e) => {
48118
48154
  try {
48119
48155
  Function.prototype.toString.call(e).indexOf("^_^") > -1 && setTimeout(() => {
48120
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");
48121
48157
  });
48122
48158
  } catch {}
48123
- }, u6 = (e = globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__) => !!(e && "getFiberRoots" in e), d6 = !1, f6, p6 = (e = globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__) => d6 ? !0 : (e && typeof e.inject == "function" && (f6 = e.inject.toString()), !!f6?.includes("(injected)")), m6 = /* @__PURE__ */ new Set(), h6 = /* @__PURE__ */ new Set(), g6 = (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) => {
48124
48160
  let t = /* @__PURE__ */ new Map(), n = 0, r = {
48125
48161
  _instrumentationIsActive: !1,
48126
- _instrumentationSource: a6,
48127
- checkDCE: l6,
48162
+ _instrumentationSource: d6,
48163
+ checkDCE: h6,
48128
48164
  hasUnsupportedRendererAttached: !1,
48129
48165
  inject(e) {
48130
48166
  let i = ++n;
48131
- return t.set(i, e), h6.add(e), r._instrumentationIsActive || (r._instrumentationIsActive = !0, m6.forEach((e) => e())), i;
48167
+ return t.set(i, e), x6.add(e), r._instrumentationIsActive || (r._instrumentationIsActive = !0, b6.forEach((e) => e())), i;
48132
48168
  },
48133
- on: c6,
48134
- onCommitFiberRoot: c6,
48135
- onCommitFiberUnmount: c6,
48136
- onPostCommitFiberRoot: c6,
48169
+ on: m6,
48170
+ onCommitFiberRoot: m6,
48171
+ onCommitFiberUnmount: m6,
48172
+ onPostCommitFiberRoot: m6,
48137
48173
  renderers: t,
48138
48174
  supportsFiber: !0,
48139
48175
  supportsFlight: !0
48140
48176
  };
48141
48177
  try {
48142
- o6(globalThis, "__REACT_DEVTOOLS_GLOBAL_HOOK__", {
48178
+ f6(globalThis, "__REACT_DEVTOOLS_GLOBAL_HOOK__", {
48143
48179
  configurable: !0,
48144
48180
  enumerable: !0,
48145
48181
  get() {
@@ -48149,13 +48185,13 @@ var a6 = "bippy-0.5.43", o6 = Object.defineProperty, s6 = Object.prototype.hasOw
48149
48185
  if (t && typeof t == "object") {
48150
48186
  let n = r.renderers;
48151
48187
  r = t, n.size > 0 && (n.forEach((e, n) => {
48152
- h6.add(e), t.renderers.set(n, e);
48153
- }), _6(e));
48188
+ x6.add(e), t.renderers.set(n, e);
48189
+ }), C6(e));
48154
48190
  }
48155
48191
  }
48156
48192
  });
48157
48193
  let t = window.hasOwnProperty, n = !1;
48158
- o6(window, "hasOwnProperty", {
48194
+ f6(window, "hasOwnProperty", {
48159
48195
  configurable: !0,
48160
48196
  value: function(...e) {
48161
48197
  try {
@@ -48166,47 +48202,47 @@ var a6 = "bippy-0.5.43", o6 = Object.defineProperty, s6 = Object.prototype.hasOw
48166
48202
  writable: !0
48167
48203
  });
48168
48204
  } catch {
48169
- _6(e);
48205
+ C6(e);
48170
48206
  }
48171
48207
  return r;
48172
- }, _6 = (e) => {
48173
- e && m6.add(e);
48208
+ }, C6 = (e) => {
48209
+ e && b6.add(e);
48174
48210
  try {
48175
48211
  let t = globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__;
48176
48212
  if (!t) return;
48177
48213
  if (!t._instrumentationSource) {
48178
- t.checkDCE = l6, t.supportsFiber = !0, t.supportsFlight = !0, t.hasUnsupportedRendererAttached = !1, t._instrumentationSource = a6, t._instrumentationIsActive = !1;
48179
- let e = u6(t);
48180
- if (e || (t.on = c6), t.renderers.size) {
48181
- t._instrumentationIsActive = !0, m6.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());
48182
48218
  return;
48183
48219
  }
48184
- let n = t.inject, r = p6(t);
48185
- r && !e && (d6 = !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) => {
48186
48222
  let i = n(e);
48187
- return h6.add(e), r && t.renderers.set(i, e), t._instrumentationIsActive = !0, m6.forEach((e) => e()), i;
48223
+ return x6.add(e), r && t.renderers.set(i, e), t._instrumentationIsActive = !0, b6.forEach((e) => e()), i;
48188
48224
  };
48189
48225
  }
48190
- (t.renderers.size || t._instrumentationIsActive || p6()) && e?.();
48226
+ (t.renderers.size || t._instrumentationIsActive || y6()) && e?.();
48191
48227
  } catch {}
48192
- }, v6 = () => s6.call(globalThis, "__REACT_DEVTOOLS_GLOBAL_HOOK__"), y6 = (e) => v6() ? (_6(e), globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__) : g6(e), b6 = () => !!(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"));
48193
48229
  //#endregion
48194
48230
  //#region node_modules/bippy/dist/install-hook-only.js
48195
48231
  (() => {
48196
48232
  try {
48197
- b6() && y6();
48233
+ E6() && T6();
48198
48234
  } catch {}
48199
48235
  })();
48200
48236
  //#endregion
48201
48237
  //#region node_modules/bippy/dist/core.js
48202
- var x6 = 60111, S6 = "Symbol(react.concurrent_mode)", C6 = "Symbol(react.async_mode)", w6 = (e) => {
48238
+ var D6 = 60111, O6 = "Symbol(react.concurrent_mode)", k6 = "Symbol(react.async_mode)", A6 = (e) => {
48203
48239
  switch (e.tag) {
48204
48240
  case 5:
48205
48241
  case 26:
48206
48242
  case 27: return !0;
48207
48243
  default: return typeof e.type == "string";
48208
48244
  }
48209
- }, T6 = (e) => {
48245
+ }, j6 = (e) => {
48210
48246
  switch (e.tag) {
48211
48247
  case 1:
48212
48248
  case 11:
@@ -48215,7 +48251,7 @@ var x6 = 60111, S6 = "Symbol(react.concurrent_mode)", C6 = "Symbol(react.async_m
48215
48251
  case 15: return !0;
48216
48252
  default: return !1;
48217
48253
  }
48218
- }, E6 = (e) => {
48254
+ }, M6 = (e) => {
48219
48255
  let t = e.memoizedProps, n = e.alternate?.memoizedProps || {}, r = e.flags ?? e.effectTag ?? 0;
48220
48256
  switch (e.tag) {
48221
48257
  case 1:
@@ -48226,7 +48262,7 @@ var x6 = 60111, S6 = "Symbol(react.concurrent_mode)", C6 = "Symbol(react.async_m
48226
48262
  case 15: return (r & 1) == 1;
48227
48263
  default: return !e.alternate || n !== t || e.alternate.memoizedState !== e.memoizedState || e.alternate.ref !== e.ref;
48228
48264
  }
48229
- }, D6 = (e) => {
48265
+ }, N6 = (e) => {
48230
48266
  switch (e.tag) {
48231
48267
  case 18: return !0;
48232
48268
  case 7:
@@ -48237,25 +48273,25 @@ var x6 = 60111, S6 = "Symbol(react.concurrent_mode)", C6 = "Symbol(react.async_m
48237
48273
  default: {
48238
48274
  let t = typeof e.type == "object" && e.type !== null ? e.type.$$typeof : e.type;
48239
48275
  switch (typeof t == "symbol" ? t.toString() : t) {
48240
- case x6:
48241
- case S6:
48242
- case C6: return !0;
48276
+ case D6:
48277
+ case O6:
48278
+ case k6: return !0;
48243
48279
  default: return !1;
48244
48280
  }
48245
48281
  }
48246
48282
  }
48247
- }, O6 = (e, t = !1) => {
48248
- let n = k6(e, w6, t);
48249
- return n ||= k6(e, w6, !t), n;
48283
+ }, P6 = (e, t = !1) => {
48284
+ let n = F6(e, A6, t);
48285
+ return n ||= F6(e, A6, !t), n;
48250
48286
  };
48251
- function k6(e, t, n = !1) {
48287
+ function F6(e, t, n = !1) {
48252
48288
  if (!e) return null;
48253
48289
  let r = t(e);
48254
48290
  if (r instanceof Promise) return (async () => {
48255
48291
  if (await r === !0) return e;
48256
48292
  let i = n ? e.return : e.child;
48257
48293
  for (; i;) {
48258
- let e = await j6(i, t, n);
48294
+ let e = await L6(i, t, n);
48259
48295
  if (e) return e;
48260
48296
  i = n ? null : i.sibling;
48261
48297
  }
@@ -48264,118 +48300,118 @@ function k6(e, t, n = !1) {
48264
48300
  if (r === !0) return e;
48265
48301
  let i = n ? e.return : e.child;
48266
48302
  for (; i;) {
48267
- let e = A6(i, t, n);
48303
+ let e = I6(i, t, n);
48268
48304
  if (e) return e;
48269
48305
  i = n ? null : i.sibling;
48270
48306
  }
48271
48307
  return null;
48272
48308
  }
48273
- var A6 = (e, t, n = !1) => {
48309
+ var I6 = (e, t, n = !1) => {
48274
48310
  if (!e) return null;
48275
48311
  if (t(e) === !0) return e;
48276
48312
  let r = n ? e.return : e.child;
48277
48313
  for (; r;) {
48278
- let e = A6(r, t, n);
48314
+ let e = I6(r, t, n);
48279
48315
  if (e) return e;
48280
48316
  r = n ? null : r.sibling;
48281
48317
  }
48282
48318
  return null;
48283
- }, j6 = async (e, t, n = !1) => {
48319
+ }, L6 = async (e, t, n = !1) => {
48284
48320
  if (!e) return null;
48285
48321
  if (await t(e) === !0) return e;
48286
48322
  let r = n ? e.return : e.child;
48287
48323
  for (; r;) {
48288
- let e = await j6(r, t, n);
48324
+ let e = await L6(r, t, n);
48289
48325
  if (e) return e;
48290
48326
  r = n ? null : r.sibling;
48291
48327
  }
48292
48328
  return null;
48293
- }, M6 = (e) => {
48329
+ }, R6 = (e) => {
48294
48330
  let t = e?.actualDuration ?? 0, n = t, r = e?.child ?? null;
48295
48331
  for (; t > 0 && r != null;) n -= r.actualDuration ?? 0, r = r.sibling;
48296
48332
  return {
48297
48333
  selfTime: n,
48298
48334
  totalTime: t
48299
48335
  };
48300
- }, N6 = (e) => {
48336
+ }, z6 = (e) => {
48301
48337
  let t = e;
48302
- return typeof t == "function" ? t : typeof t == "object" && t ? N6(t.type || t.render) : null;
48303
- }, P6 = (e) => {
48338
+ return typeof t == "function" ? t : typeof t == "object" && t ? z6(t.type || t.render) : null;
48339
+ }, B6 = (e) => {
48304
48340
  let t = e;
48305
48341
  if (typeof t == "string") return t;
48306
48342
  if (typeof t != "function" && !(typeof t == "object" && t)) return null;
48307
48343
  let n = t.displayName || t.name || null;
48308
48344
  if (n) return n;
48309
- let r = N6(t);
48345
+ let r = z6(t);
48310
48346
  return r && (r.displayName || r.name) || null;
48311
- }, F6 = 0, I6 = /* @__PURE__ */ new WeakMap(), L6 = (e, t = F6++) => {
48312
- I6.set(e, t);
48313
- }, R6 = (e) => {
48314
- let t = I6.get(e);
48315
- return !t && e.alternate && (t = I6.get(e.alternate)), t || (t = F6++, L6(e, t)), t;
48316
- }, z6 = (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) => {
48317
48353
  let r = t;
48318
48354
  for (; r != null;) {
48319
- if (I6.has(r) || R6(r), !D6(r) && E6(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) {
48320
48356
  let t = r.child, n = t ? t.sibling : null;
48321
48357
  if (n) {
48322
48358
  let t = n.child;
48323
- t !== null && z6(e, t, !1);
48359
+ t !== null && G6(e, t, !1);
48324
48360
  }
48325
48361
  } else {
48326
48362
  let t = null;
48327
- r.child !== null && (t = r.child.child), t !== null && z6(e, t, !1);
48363
+ r.child !== null && (t = r.child.child), t !== null && G6(e, t, !1);
48328
48364
  }
48329
- else r.child != null && z6(e, r.child, !0);
48365
+ else r.child != null && G6(e, r.child, !0);
48330
48366
  r = n ? r.sibling : null;
48331
48367
  }
48332
- }, B6 = (e, t, n, r) => {
48333
- if (I6.has(t) || R6(t), !n) return;
48334
- I6.has(n) || R6(n);
48335
- let i = t.tag === 13, a = !D6(t);
48336
- a && E6(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");
48337
48373
  let o = i && n.memoizedState !== null, s = i && t.memoizedState !== null;
48338
48374
  if (o && s) {
48339
48375
  let r = t.child?.sibling ?? null, i = n.child?.sibling ?? null;
48340
- r !== null && i !== null && B6(e, r, i, t);
48376
+ r !== null && i !== null && K6(e, r, i, t);
48341
48377
  } else if (o && !s) {
48342
48378
  let n = t.child;
48343
- n !== null && z6(e, n, !0);
48379
+ n !== null && G6(e, n, !0);
48344
48380
  } else if (!o && s) {
48345
- H6(e, n);
48381
+ J6(e, n);
48346
48382
  let r = t.child?.sibling ?? null;
48347
- r !== null && z6(e, r, !0);
48383
+ r !== null && G6(e, r, !0);
48348
48384
  } else if (t.child !== n.child) {
48349
48385
  let n = t.child;
48350
48386
  for (; n;) {
48351
48387
  if (n.alternate) {
48352
48388
  let i = n.alternate;
48353
- B6(e, n, i, a ? t : r);
48354
- } else z6(e, n, !1);
48389
+ K6(e, n, i, a ? t : r);
48390
+ } else G6(e, n, !1);
48355
48391
  n = n.sibling;
48356
48392
  }
48357
48393
  }
48358
- }, V6 = (e, t) => {
48359
- (t.tag === 3 || !D6(t)) && e(t, "unmount");
48360
- }, H6 = (e, t) => {
48394
+ }, q6 = (e, t) => {
48395
+ (t.tag === 3 || !N6(t)) && e(t, "unmount");
48396
+ }, J6 = (e, t) => {
48361
48397
  let n = t.tag === 13 && t.memoizedState !== null, r = t.child;
48362
- for (n && (r = (t.child?.sibling ?? null)?.child ?? null); r !== null;) r.return !== null && (V6(e, r), H6(e, r)), r = r.sibling;
48363
- }, U6 = 0, W6 = /* @__PURE__ */ new WeakMap(), G6 = (e, t) => {
48364
- let n = "current" in e ? e.current : e, r = W6.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);
48365
48401
  r || (r = {
48366
- id: U6++,
48402
+ id: Y6++,
48367
48403
  prevFiber: null
48368
- }, W6.set(e, r));
48404
+ }, X6.set(e, r));
48369
48405
  let { prevFiber: i } = r;
48370
- if (!n) V6(t, n);
48406
+ if (!n) q6(t, n);
48371
48407
  else if (i !== null) {
48372
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;
48373
- !e && r ? z6(t, n, !1) : e && r ? B6(t, n, n.alternate, null) : e && !r && V6(t, n);
48374
- } else z6(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);
48375
48411
  r.prevFiber = n;
48376
- }, K6 = (e) => {
48377
- let t = y6(e.onActive);
48378
- t._instrumentationSource = e.name ?? a6;
48412
+ }, Q6 = (e) => {
48413
+ let t = T6(e.onActive);
48414
+ t._instrumentationSource = e.name ?? d6;
48379
48415
  let n = t.onCommitFiberRoot;
48380
48416
  if (e.onCommitFiberRoot) {
48381
48417
  let r = (t, i, a) => {
@@ -48398,52 +48434,52 @@ var A6 = (e, t, n = !1) => {
48398
48434
  t.onPostCommitFiberRoot = n;
48399
48435
  }
48400
48436
  return t;
48401
- }, q6 = !1, J6 = !1, Y6 = [], X6 = -Infinity, Z6 = 200, Q6 = 4e3, $6 = 100;
48402
- function e8() {
48403
- X6 = n8();
48437
+ }, $6 = !1, e8 = !1, t8 = [], n8 = -Infinity, r8 = 200, i8 = 4e3, a8 = 100;
48438
+ function o8() {
48439
+ n8 = c8();
48404
48440
  }
48405
- var t8 = [
48441
+ var s8 = [
48406
48442
  "scroll",
48407
48443
  "wheel",
48408
48444
  "pointermove"
48409
48445
  ];
48410
- function n8() {
48446
+ function c8() {
48411
48447
  return typeof performance < "u" ? performance.now() : Date.now();
48412
48448
  }
48413
- function r8(e, t) {
48449
+ function l8(e, t) {
48414
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 = [];
48415
48451
  for (let e of i) {
48416
48452
  if (e === "children") continue;
48417
48453
  let t = n[e], i = r[e];
48418
- Object.is(t, i) || (typeof t == "function" && typeof i == "function" ? a.push(`prop:${e}(fn)`) : t && i && typeof t == "object" && typeof i == "object" && i8(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}`));
48419
48455
  }
48420
48456
  return a;
48421
48457
  }
48422
- function i8(e, t) {
48458
+ function u8(e, t) {
48423
48459
  let n = Object.keys(e), r = Object.keys(t);
48424
48460
  if (n.length !== r.length) return !1;
48425
48461
  for (let r of n) if (!Object.is(e[r], t[r])) return !1;
48426
48462
  return !0;
48427
48463
  }
48428
- function a8(e) {
48464
+ function d8(e) {
48429
48465
  let t = [], n = {};
48430
- G6(e, (e, r) => {
48431
- if (r === "unmount" || !T6(e)) return;
48432
- let i = P6(e.type) ?? "Anonymous";
48466
+ Z6(e, (e, r) => {
48467
+ if (r === "unmount" || !j6(e)) return;
48468
+ let i = B6(e.type) ?? "Anonymous";
48433
48469
  r === "mount" && (n[i] = (n[i] ?? 0) + 1);
48434
48470
  let a = 0;
48435
48471
  try {
48436
- a = M6(e).selfTime || 0;
48472
+ a = R6(e).selfTime || 0;
48437
48473
  } catch {}
48438
48474
  let o = [];
48439
48475
  if (r === "update" && e.alternate) try {
48440
- o = r8(e.alternate.memoizedProps, e.memoizedProps);
48476
+ o = l8(e.alternate.memoizedProps, e.memoizedProps);
48441
48477
  } catch {
48442
48478
  o = ["prop:(unknown)"];
48443
48479
  }
48444
48480
  let s = null;
48445
48481
  try {
48446
- let t = O6(e)?.stateNode;
48482
+ let t = P6(e)?.stateNode;
48447
48483
  t && typeof WeakRef < "u" && t instanceof Element && (s = new WeakRef(t));
48448
48484
  } catch {}
48449
48485
  t.push({
@@ -48454,10 +48490,10 @@ function a8(e) {
48454
48490
  el: s
48455
48491
  });
48456
48492
  }), t.sort((e, t) => t.selfTime - e.selfTime);
48457
- let r = t.slice(0, Z6), i = Math.max(0, t.length - Z6), a = 0;
48493
+ let r = t.slice(0, r8), i = Math.max(0, t.length - r8), a = 0;
48458
48494
  for (let e of t) a += e.selfTime;
48459
- let o = n8(), s = o - X6 <= $6;
48460
- Y6.push({
48495
+ let o = c8(), s = o - n8 <= a8;
48496
+ t8.push({
48461
48497
  at: o,
48462
48498
  duration: a,
48463
48499
  entries: r,
@@ -48466,55 +48502,55 @@ function a8(e) {
48466
48502
  nearInput: s
48467
48503
  });
48468
48504
  }
48469
- function o8() {
48470
- if (!q6 && !(typeof window > "u")) {
48471
- q6 = !0;
48505
+ function f8() {
48506
+ if (!$6 && !(typeof window > "u")) {
48507
+ $6 = !0;
48472
48508
  try {
48473
- K6({ onCommitFiberRoot: (e, t) => {
48474
- if (J6 && !(Y6.length >= Q6)) try {
48475
- a8(t);
48509
+ Q6({ onCommitFiberRoot: (e, t) => {
48510
+ if (e8 && !(t8.length >= i8)) try {
48511
+ d8(t);
48476
48512
  } catch {}
48477
48513
  } });
48478
48514
  } catch {}
48479
48515
  }
48480
48516
  }
48481
- function s8() {
48482
- if (!(typeof window > "u") && !J6) {
48483
- Y6 = [], X6 = -Infinity, o8();
48517
+ function p8() {
48518
+ if (!(typeof window > "u") && !e8) {
48519
+ t8 = [], n8 = -Infinity, f8();
48484
48520
  try {
48485
- for (let e of t8) window.addEventListener(e, e8, {
48521
+ for (let e of s8) window.addEventListener(e, o8, {
48486
48522
  capture: !0,
48487
48523
  passive: !0
48488
48524
  });
48489
48525
  } catch {}
48490
- J6 = !0;
48526
+ e8 = !0;
48491
48527
  }
48492
48528
  }
48493
- function c8() {
48494
- J6 = !1;
48529
+ function m8() {
48530
+ e8 = !1;
48495
48531
  try {
48496
- for (let e of t8) window.removeEventListener(e, e8, { capture: !0 });
48532
+ for (let e of s8) window.removeEventListener(e, o8, { capture: !0 });
48497
48533
  } catch {}
48498
- let e = Y6;
48499
- return Y6 = [], X6 = -Infinity, e;
48534
+ let e = t8;
48535
+ return t8 = [], n8 = -Infinity, e;
48500
48536
  }
48501
- function l8() {
48502
- let e = Y6;
48503
- return Y6 = [], e;
48537
+ function h8() {
48538
+ let e = t8;
48539
+ return t8 = [], e;
48504
48540
  }
48505
48541
  //#endregion
48506
48542
  //#region src/lib/renderRulebook.ts
48507
- var u8 = {
48543
+ var g8 = {
48508
48544
  budgets: {
48509
48545
  selfMs: 2,
48510
48546
  commitMs: 8
48511
48547
  },
48512
48548
  rules: {}
48513
- }, d8 = /^###\s+(R\d+)\s*[·.\-–—:]?\s*`([^`]+)`.*?\((error|warn)\)\s*$/;
48514
- function f8(e) {
48515
- return d8.test(e.trim());
48549
+ }, _8 = /^###\s+(R\d+)\s*[·.\-–—:]?\s*`([^`]+)`.*?\((error|warn)\)\s*$/;
48550
+ function v8(e) {
48551
+ return _8.test(e.trim());
48516
48552
  }
48517
- function p8(e, t) {
48553
+ function y8(e, t) {
48518
48554
  let n = e.split("\n"), r = RegExp(`^\\s*\\*\\*${t.source}[^*]*:\\*\\*\\s*(.*)$`, "i"), i = /^\s*\*\*[^*]+:\*\*/, a = 0;
48519
48555
  for (; a < n.length && !r.test(n[a]); a++);
48520
48556
  if (a >= n.length) return "";
@@ -48529,43 +48565,43 @@ function p8(e, t) {
48529
48565
  if (e >= n.length || i.test(n[e]) || /^###\s|^##\s|^---\s*$/.test(n[e])) break;
48530
48566
  }
48531
48567
  }
48532
- return m8(s.join(" ")).trim();
48568
+ return b8(s.join(" ")).trim();
48533
48569
  }
48534
- function m8(e) {
48570
+ function b8(e) {
48535
48571
  return e.replace(/\*\*([^*]+)\*\*/g, "$1").replace(/__([^_]+)__/g, "$1").replace(/(^|[\s(])[*_]([^*_\s][^*_]*?)[*_]([\s.,;:)]|$)/g, "$1$2$3").replace(/\s{2,}/g, " ");
48536
48572
  }
48537
- function h8(e) {
48573
+ function x8(e) {
48538
48574
  let t = e.match(/≤(\d+(?:\.\d+)?)ms self/), n = e.match(/commit >(\d+(?:\.\d+)?)ms/) ?? e.match(/>(\d+(?:\.\d+)?)ms of React work/);
48539
48575
  return {
48540
- selfMs: t ? parseFloat(t[1]) : u8.budgets.selfMs,
48541
- commitMs: n ? parseFloat(n[1]) : u8.budgets.commitMs
48576
+ selfMs: t ? parseFloat(t[1]) : g8.budgets.selfMs,
48577
+ commitMs: n ? parseFloat(n[1]) : g8.budgets.commitMs
48542
48578
  };
48543
48579
  }
48544
- function g8(e) {
48545
- let t = h8(e), n = {}, r = e.split("\n"), i = 0;
48580
+ function S8(e) {
48581
+ let t = x8(e), n = {}, r = e.split("\n"), i = 0;
48546
48582
  for (; i < r.length;) {
48547
48583
  let e = r[i];
48548
- if (!f8(e)) {
48584
+ if (!v8(e)) {
48549
48585
  i++;
48550
48586
  continue;
48551
48587
  }
48552
48588
  let t = e.trim(), a = [], o = i + 1;
48553
48589
  for (; o < r.length; o++) {
48554
48590
  let e = r[o];
48555
- if (f8(e) || /^##\s/.test(e.trim()) || /^---\s*$/.test(e.trim())) break;
48591
+ if (v8(e) || /^##\s/.test(e.trim()) || /^---\s*$/.test(e.trim())) break;
48556
48592
  a.push(e);
48557
48593
  }
48558
48594
  try {
48559
- let e = t.match(d8);
48595
+ let e = t.match(_8);
48560
48596
  if (e) {
48561
48597
  let [, t, r, i] = e, o = a.join("\n");
48562
48598
  n[t] = {
48563
48599
  id: t,
48564
48600
  slug: r,
48565
48601
  severity: i === "warn" ? "warn" : "error",
48566
- ruleText: p8(o, /Rule/),
48567
- fixText: p8(o, /Fix/),
48568
- detectText: p8(o, /Detect/)
48602
+ ruleText: y8(o, /Rule/),
48603
+ fixText: y8(o, /Fix/),
48604
+ detectText: y8(o, /Detect/)
48569
48605
  };
48570
48606
  }
48571
48607
  } catch {}
@@ -48579,114 +48615,122 @@ function g8(e) {
48579
48615
  //#endregion
48580
48616
  //#region src/lib/renderScanStore.ts
48581
48617
  Br();
48582
- var _8 = [], v8 = /* @__PURE__ */ new Set();
48583
- function y8(e) {
48584
- return v8.add(e), e(_8), () => void v8.delete(e);
48585
- }
48586
- function b8() {
48587
- _8 = [];
48588
- for (let e of v8) e(_8);
48589
- }
48590
- function x8(e, t) {
48591
- _8 = [...e, ..._8.filter((e) => e.page !== t)];
48592
- for (let e of v8) e(_8);
48593
- return K8(e).then(() => {
48594
- _8 = [..._8];
48595
- for (let e of v8) e(_8);
48596
- q8(e);
48597
- }), e;
48598
- }
48599
- var S8 = /* @__PURE__ */ new Set(), C8 = !1, w8 = null;
48618
+ var C8 = [], w8 = /* @__PURE__ */ new Set();
48600
48619
  function T8(e) {
48601
- return S8.add(e), e(C8, w8), () => void S8.delete(e);
48620
+ return w8.add(e), e(C8), () => void w8.delete(e);
48602
48621
  }
48603
48622
  function E8() {
48604
- if (!(O8 || C8)) {
48605
- s8(), C8 = !0, w8 = Date.now();
48606
- for (let e of S8) e(!0, w8);
48607
- }
48608
- }
48609
- async function D8() {
48610
- if (!C8) return [];
48611
- let e = c8();
48612
- C8 = !1, w8 = null;
48613
- for (let e of S8) e(!1, null);
48614
- let t = await U8(), n = location.pathname;
48615
- return x8(K3(e, t).map((e) => ({
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);
48633
+ }), e;
48634
+ }
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);
48638
+ }
48639
+ function M8() {
48640
+ if (!(P8 || k8)) {
48641
+ p8(), k8 = !0, A8 = Date.now();
48642
+ for (let e of O8) e(!0, A8);
48643
+ }
48644
+ }
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) => ({
48616
48652
  ...e,
48617
48653
  page: n
48618
48654
  })), n);
48619
48655
  }
48620
- var O8 = !1;
48656
+ var P8 = !1;
48621
48657
  try {
48622
- O8 = localStorage.getItem("linear-grab:render-live") === "1";
48658
+ P8 = localStorage.getItem("linear-grab:render-live") === "1";
48623
48659
  } catch {}
48624
- var k8 = /* @__PURE__ */ new Set();
48625
- function A8(e) {
48626
- return k8.add(e), e(O8), () => void k8.delete(e);
48627
- }
48628
- var j8 = 3e3, M8 = 4e3, N8 = null, P8 = [], F8 = "";
48660
+ var F8 = /* @__PURE__ */ new Set();
48629
48661
  function I8(e) {
48630
- if (e !== O8 && !(e && C8)) {
48631
- O8 = 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;
48632
48668
  try {
48633
48669
  localStorage.setItem("linear-grab:render-live", e ? "1" : "0");
48634
48670
  } catch {}
48635
- for (let t of k8) t(e);
48636
- e ? (s8(), P8 = [], F8 = location.pathname, N8 = setInterval(() => void L8(!1), j8)) : (N8 && clearInterval(N8), N8 = null, L8(!0).finally(() => {
48637
- c8(), P8 = [];
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 = [];
48638
48674
  }));
48639
48675
  }
48640
48676
  }
48641
- async function L8(e) {
48677
+ async function U8(e) {
48642
48678
  try {
48643
48679
  let t = location.pathname;
48644
- if (t !== F8) {
48645
- let e = _8.filter((e) => e.page === F8);
48646
- K8(e).then(() => {
48647
- _8 = [..._8];
48648
- for (let e of v8) e(_8);
48649
- q8(e);
48650
- }), P8 = [], F8 = t;
48651
- }
48652
- P8.push(...l8()), P8.length > M8 && P8.splice(0, P8.length - M8);
48653
- let n = await U8(), r = K3(P8, n).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) => ({
48654
48690
  ...e,
48655
48691
  page: t
48656
48692
  }));
48657
- _8 = [...r, ..._8.filter((e) => e.page !== t)];
48658
- for (let e of v8) e(_8);
48693
+ C8 = [...r, ...C8.filter((e) => e.page !== t)];
48694
+ for (let e of w8) e(C8);
48659
48695
  if (e) {
48660
- await K8(r), _8 = [..._8];
48661
- for (let e of v8) e(_8);
48662
- q8(r);
48696
+ await $8(r), C8 = [...C8];
48697
+ for (let e of w8) e(C8);
48698
+ e5(r);
48663
48699
  }
48664
48700
  } catch {}
48665
48701
  }
48666
- function R8() {
48667
- typeof window > "u" || !O8 || N8 || (s8(), P8 = [], F8 = location.pathname, N8 = setInterval(() => void L8(!1), j8));
48702
+ function W8() {
48703
+ typeof window > "u" || !P8 || z8 || (p8(), B8 = [], V8 = location.pathname, z8 = setInterval(() => void U8(!1), L8));
48668
48704
  }
48669
- function z8() {
48705
+ function G8() {
48670
48706
  let e = location.pathname;
48671
- return x8(J3(document).map((t) => ({
48707
+ return D8(e6(document).map((t) => ({
48672
48708
  ...t,
48673
48709
  page: e
48674
48710
  })), e);
48675
48711
  }
48676
- var B8 = 5 * 6e4, V8 = null, H8 = 0;
48677
- async function U8() {
48678
- if (V8 && Date.now() - H8 < B8) return V8;
48679
- let e = u8;
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;
48680
48716
  try {
48681
48717
  let t = await YO(), n = await (await fetch(`${t}/scan/rulebook`)).json();
48682
- n.ok && n.text && (e = g8(n.text));
48718
+ n.ok && n.text && (e = S8(n.text));
48683
48719
  } catch {}
48684
- return e = await G8(e), V8 = e, H8 = Date.now(), e;
48720
+ return e = await Q8(e), q8 = e, J8 = Date.now(), e;
48685
48721
  }
48686
- function W8() {
48687
- return V8;
48722
+ function X8() {
48723
+ return q8;
48688
48724
  }
48689
- async function G8(e) {
48725
+ async function Z8() {
48726
+ try {
48727
+ let e = await Tr();
48728
+ return Array.isArray(e.renderIgnore) ? e.renderIgnore : void 0;
48729
+ } catch {
48730
+ return;
48731
+ }
48732
+ }
48733
+ async function Q8(e) {
48690
48734
  try {
48691
48735
  let t = (await Tr()).renderBudgets;
48692
48736
  if (t && (t.selfMs != null || t.commitMs != null)) return {
@@ -48699,7 +48743,7 @@ async function G8(e) {
48699
48743
  } catch {}
48700
48744
  return e;
48701
48745
  }
48702
- async function K8(e) {
48746
+ async function $8(e) {
48703
48747
  let t = null;
48704
48748
  try {
48705
48749
  t = (await Promise.resolve().then(() => (RZ(), AZ))).getGlobalApi() ?? null;
@@ -48728,7 +48772,7 @@ async function K8(e) {
48728
48772
  if (!(!n && !a)) for (let e of i) !e.component && n && (e.component = n), a && (e.source = a);
48729
48773
  }
48730
48774
  }
48731
- function q8(e) {
48775
+ function e5(e) {
48732
48776
  if (e.length === 0) return;
48733
48777
  let t = Date.now(), n = e.slice(0, 200).map(({ el: e, ...n }) => ({
48734
48778
  kind: "render-scan",
@@ -48744,8 +48788,8 @@ function q8(e) {
48744
48788
  }
48745
48789
  //#endregion
48746
48790
  //#region src/panel/views/RendersView.tsx
48747
- var J8 = /*#__PURE__*/ N("<span class=\"text-text-faint font-normal tabular-nums\"> · <!> pages"), Y8 = /*#__PURE__*/ N("<span class=\"bg-danger size-1.5 shrink-0 animate-pulse rounded-full\"aria-hidden>"), X8 = /*#__PURE__*/ N("<span class=\"text-danger inline-block min-w-[4ch] text-right text-[10.5px] font-medium tabular-nums\">"), Z8 = /*#__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>"), Q8 = /*#__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>"), $8 = /*#__PURE__*/ N("<span class=\"bg-success absolute -top-0.5 -right-0.5 size-1.5 animate-pulse rounded-full\"aria-hidden>"), e5 = /*#__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>"), t5 = /*#__PURE__*/ N("<span class=\"text-success text-[12px] leading-none\">✓"), n5 = /*#__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\">"), r5 = /*#__PURE__*/ N("<p class=\"text-text-faint px-1 text-[10.5px] leading-snug\">Recording commits… interact with the page."), i5 = /*#__PURE__*/ N("<p class=\"text-text-faint px-1 text-[10.5px] leading-snug\">Live render scan — findings update as you interact and navigate."), a5 = /*#__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"), o5 = /*#__PURE__*/ N("<div class=\"flex max-h-[28rem] flex-col gap-1.5 overflow-y-auto pr-3 pl-2\">"), s5 = /*#__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."), c5 = /*#__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>"), l5 = /*#__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>"), u5 = /*#__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\">"), d5 = /*#__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\">"), f5 = /*#__PURE__*/ N("<div class=\"border-border flex flex-col gap-1 border-t px-2 py-1.5\">"), p5 = /*#__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\">"), m5 = /*#__PURE__*/ N("<span class=\"text-accent font-mono\"> "), h5 = /*#__PURE__*/ N("<span class=\"text-text-faint tabular-nums\"> ×"), g5 = /*#__PURE__*/ N("<span class=\"flex flex-wrap gap-1\">"), _5 = /*#__PURE__*/ N("<span class=\"text-text-dim font-mono\"> · "), v5 = /*#__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\">"), y5 = /*#__PURE__*/ N("<span class=\"bg-surface-2 text-text-dim rounded px-1 font-mono text-[9.5px] leading-relaxed\">");
48748
- function b5(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) {
48749
48793
  let t = e.el?.deref();
48750
48794
  if (!(t instanceof HTMLElement) || !t.isConnected) return !1;
48751
48795
  t.scrollIntoView({
@@ -48757,45 +48801,45 @@ function b5(e) {
48757
48801
  t.style.outline = n, t.style.outlineOffset = r;
48758
48802
  }, 1400), !0;
48759
48803
  }
48760
- function x5(e) {
48804
+ function O5(e) {
48761
48805
  let t = Math.max(0, Math.floor(e / 1e3));
48762
48806
  return `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
48763
48807
  }
48764
- function S5(e) {
48808
+ function k5(e) {
48765
48809
  return e.replace(/^prop:/, "");
48766
48810
  }
48767
- function C5() {
48811
+ function A5() {
48768
48812
  let [e, t] = T([]);
48769
- ae(y8(t));
48813
+ ae(T8(t));
48770
48814
  let [n, r] = T(!1), [i, a] = T(null), [o, s] = T(Date.now()), c = null, l = () => {
48771
48815
  c && clearInterval(c), c = null;
48772
48816
  };
48773
- ae(l), ae(T8((e, t) => {
48817
+ ae(l), ae(j8((e, t) => {
48774
48818
  r(e), a(t), e ? (s(Date.now()), c ||= setInterval(() => s(Date.now()), 500)) : l();
48775
48819
  }));
48776
48820
  let [u, d] = T(!1);
48777
- ae(A8(d));
48778
- let [f, p] = T(W8());
48779
- U8().then(p);
48821
+ ae(I8(d));
48822
+ let [f, p] = T(X8());
48823
+ Y8().then(p);
48780
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 () => {
48781
48825
  if (h(null), n()) try {
48782
- let e = await D8();
48783
- p(W8()), _(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.");
48784
48828
  } catch (e) {
48785
48829
  h(e instanceof Error ? e.message : String(e));
48786
48830
  }
48787
- else E8();
48831
+ else M8();
48788
48832
  }, te = () => {
48789
48833
  h(null), C(!0);
48790
48834
  try {
48791
- z8(), _(null);
48835
+ G8(), _(null);
48792
48836
  } catch (e) {
48793
48837
  h(e instanceof Error ? e.message : String(e));
48794
48838
  } finally {
48795
48839
  C(!1);
48796
48840
  }
48797
48841
  }, A = () => {
48798
- b8(), _(null);
48842
+ E8(), _(null);
48799
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 = () => {
48800
48844
  let e = /* @__PURE__ */ new Map();
48801
48845
  for (let t of re()) {
@@ -48808,19 +48852,19 @@ function C5() {
48808
48852
  return t ? `${e} · ${t}` : e;
48809
48853
  }, le = async () => {
48810
48854
  try {
48811
- await navigator.clipboard.writeText(r6(re())), E(!0), setTimeout(() => E(!1), 1600);
48855
+ await navigator.clipboard.writeText(l6(re())), E(!0), setTimeout(() => E(!1), 1600);
48812
48856
  } catch {
48813
48857
  h("Clipboard was blocked — click Copy again.");
48814
48858
  }
48815
48859
  }, ue = async () => {
48816
48860
  try {
48817
- await navigator.clipboard.writeText(i6(re(), await U8())), k(!0), setTimeout(() => k(!1), 1600);
48861
+ await navigator.clipboard.writeText(u6(re(), await Y8())), k(!0), setTimeout(() => k(!1), 1600);
48818
48862
  } catch {
48819
48863
  h("Clipboard was blocked — click Copy again.");
48820
48864
  }
48821
48865
  };
48822
48866
  return (() => {
48823
- var t = s5(), r = t.firstChild.firstChild.firstChild;
48867
+ var t = m5(), r = t.firstChild.firstChild.firstChild;
48824
48868
  r.firstChild;
48825
48869
  var a = r.nextSibling;
48826
48870
  return P(r, j(M, {
@@ -48828,7 +48872,7 @@ function C5() {
48828
48872
  return ne() > 1;
48829
48873
  },
48830
48874
  get children() {
48831
- var e = J8(), t = e.firstChild.nextSibling;
48875
+ var e = t5(), t = e.firstChild.nextSibling;
48832
48876
  return t.nextSibling, P(e, ne, t), e;
48833
48877
  }
48834
48878
  }), null), P(a, j(M, {
@@ -48836,9 +48880,9 @@ function C5() {
48836
48880
  return n();
48837
48881
  },
48838
48882
  get children() {
48839
- return [Y8(), (() => {
48840
- var e = X8();
48841
- return P(e, () => x5(o() - (i() ?? o()))), e;
48883
+ return [n5(), (() => {
48884
+ var e = r5();
48885
+ return P(e, () => O5(o() - (i() ?? o()))), e;
48842
48886
  })()];
48843
48887
  }
48844
48888
  }), null), P(a, j(q, {
@@ -48846,6 +48890,7 @@ function C5() {
48846
48890
  get variant() {
48847
48891
  return n() ? "danger" : "ghost";
48848
48892
  },
48893
+ "data-tip-pos": "bottom left",
48849
48894
  get disabled() {
48850
48895
  return u();
48851
48896
  },
@@ -48862,16 +48907,17 @@ function C5() {
48862
48907
  return n();
48863
48908
  },
48864
48909
  get fallback() {
48865
- return c5();
48910
+ return h5();
48866
48911
  },
48867
48912
  get children() {
48868
- return Z8();
48913
+ return i5();
48869
48914
  }
48870
48915
  });
48871
48916
  }
48872
48917
  }), null), P(a, j(q, {
48873
48918
  class: "relative size-7 px-0",
48874
48919
  variant: "ghost",
48920
+ "data-tip-pos": "bottom left",
48875
48921
  get disabled() {
48876
48922
  return n();
48877
48923
  },
@@ -48879,30 +48925,31 @@ function C5() {
48879
48925
  return u() ? "Pause live render scan" : "Live render scan — findings update as you browse";
48880
48926
  },
48881
48927
  "aria-label": "Toggle live render scan",
48882
- onClick: () => I8(!u()),
48928
+ onClick: () => H8(!u()),
48883
48929
  get children() {
48884
48930
  return [j(M, {
48885
48931
  get when() {
48886
48932
  return u();
48887
48933
  },
48888
48934
  get fallback() {
48889
- return l5();
48935
+ return g5();
48890
48936
  },
48891
48937
  get children() {
48892
- return Q8();
48938
+ return a5();
48893
48939
  }
48894
48940
  }), j(M, {
48895
48941
  get when() {
48896
48942
  return u();
48897
48943
  },
48898
48944
  get children() {
48899
- return $8();
48945
+ return o5();
48900
48946
  }
48901
48947
  })];
48902
48948
  }
48903
48949
  }), null), P(a, j(q, {
48904
48950
  class: "size-7 px-0",
48905
48951
  variant: "ghost",
48952
+ "data-tip-pos": "bottom left",
48906
48953
  get loading() {
48907
48954
  return S();
48908
48955
  },
@@ -48910,11 +48957,12 @@ function C5() {
48910
48957
  "aria-label": "Snapshot scan",
48911
48958
  onClick: te,
48912
48959
  get children() {
48913
- return e5();
48960
+ return s5();
48914
48961
  }
48915
48962
  }), null), P(a, j(q, {
48916
48963
  class: "size-7 px-0",
48917
48964
  variant: "ghost",
48965
+ "data-tip-pos": "bottom left",
48918
48966
  get title() {
48919
48967
  return O() ? "Copied!" : "Copy AI fix prompt";
48920
48968
  },
@@ -48926,16 +48974,17 @@ function C5() {
48926
48974
  return O();
48927
48975
  },
48928
48976
  get fallback() {
48929
- return u5();
48977
+ return _5();
48930
48978
  },
48931
48979
  get children() {
48932
- return t5();
48980
+ return c5();
48933
48981
  }
48934
48982
  });
48935
48983
  }
48936
48984
  }), null), P(a, j(q, {
48937
48985
  class: "size-7 px-0",
48938
48986
  variant: "ghost",
48987
+ "data-tip-pos": "bottom left",
48939
48988
  get title() {
48940
48989
  return w() ? "Copied!" : "Copy report";
48941
48990
  },
@@ -48947,21 +48996,22 @@ function C5() {
48947
48996
  return w();
48948
48997
  },
48949
48998
  get fallback() {
48950
- return d5();
48999
+ return v5();
48951
49000
  },
48952
49001
  get children() {
48953
- return t5();
49002
+ return c5();
48954
49003
  }
48955
49004
  });
48956
49005
  }
48957
49006
  }), null), P(a, j(q, {
48958
49007
  class: "text-danger size-7 px-0",
48959
49008
  variant: "ghost",
49009
+ "data-tip-pos": "bottom left",
48960
49010
  title: "Clear findings",
48961
49011
  "aria-label": "Clear findings",
48962
49012
  onClick: A,
48963
49013
  get children() {
48964
- return n5();
49014
+ return l5();
48965
49015
  }
48966
49016
  }), null), P(t, j(M, {
48967
49017
  get when() {
@@ -48977,14 +49027,14 @@ function C5() {
48977
49027
  return n();
48978
49028
  },
48979
49029
  get children() {
48980
- return r5();
49030
+ return u5();
48981
49031
  }
48982
49032
  }), null), P(t, j(M, {
48983
49033
  get when() {
48984
49034
  return $e(() => !!u())() && !n();
48985
49035
  },
48986
49036
  get children() {
48987
- return i5();
49037
+ return d5();
48988
49038
  }
48989
49039
  }), null), P(t, j(M, {
48990
49040
  get when() {
@@ -49005,7 +49055,7 @@ function C5() {
49005
49055
  },
49006
49056
  get children() {
49007
49057
  return [(() => {
49008
- var e = a5(), 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;
49009
49059
  return t.$$click = () => y(!v()), P(t, ie, n), r.$$click = () => x(!b()), P(r, oe, i), D((e) => {
49010
49060
  var n = {
49011
49061
  "text-danger bg-danger/10 border-danger/40": v(),
@@ -49022,7 +49072,7 @@ function C5() {
49022
49072
  o: void 0
49023
49073
  }), e;
49024
49074
  })(), (() => {
49025
- var e = o5();
49075
+ var e = p5();
49026
49076
  return P(e, j(We, {
49027
49077
  get each() {
49028
49078
  return se();
@@ -49030,7 +49080,7 @@ function C5() {
49030
49080
  children: ([e, t]) => {
49031
49081
  let n = t[0], r = () => g() === e;
49032
49082
  return (() => {
49033
- var i = p5(), 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;
49034
49084
  c.firstChild;
49035
49085
  var l = c.nextSibling;
49036
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, {
@@ -49038,21 +49088,21 @@ function C5() {
49038
49088
  return r();
49039
49089
  },
49040
49090
  get children() {
49041
- var e = f5();
49091
+ var e = y5();
49042
49092
  return P(e, j(We, {
49043
49093
  each: t,
49044
49094
  children: (e) => {
49045
49095
  let t = () => e.el?.deref() != null;
49046
49096
  return (() => {
49047
- var n = v5(), r = n.firstChild, i = r.nextSibling;
49097
+ var n = T5(), r = n.firstChild, i = r.nextSibling;
49048
49098
  return n.$$click = () => {
49049
- t() && (b5(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.`));
49050
49100
  }, P(r, j(M, {
49051
49101
  get when() {
49052
49102
  return ne() > 1;
49053
49103
  },
49054
49104
  get children() {
49055
- var t = m5(), n = t.firstChild;
49105
+ var t = x5(), n = t.firstChild;
49056
49106
  return P(t, () => e.page, n), t;
49057
49107
  }
49058
49108
  }), null), P(r, () => e.description, null), P(r, j(M, {
@@ -49060,7 +49110,7 @@ function C5() {
49060
49110
  return (e.count ?? 1) > 1;
49061
49111
  },
49062
49112
  get children() {
49063
- var t = h5();
49113
+ var t = S5();
49064
49114
  return t.firstChild, P(t, () => e.count, null), t;
49065
49115
  }
49066
49116
  }), null), P(n, j(M, {
@@ -49068,14 +49118,14 @@ function C5() {
49068
49118
  return e.changes.length > 0;
49069
49119
  },
49070
49120
  get children() {
49071
- var t = g5();
49121
+ var t = C5();
49072
49122
  return P(t, j(We, {
49073
49123
  get each() {
49074
49124
  return e.changes;
49075
49125
  },
49076
49126
  children: (e) => (() => {
49077
- var t = y5();
49078
- return P(t, () => S5(e)), t;
49127
+ var t = E5();
49128
+ return P(t, () => k5(e)), t;
49079
49129
  })()
49080
49130
  })), t;
49081
49131
  }
@@ -49084,7 +49134,7 @@ function C5() {
49084
49134
  return e.component || e.source;
49085
49135
  },
49086
49136
  get children() {
49087
- var t = _5();
49137
+ var t = w5();
49088
49138
  return t.firstChild, P(t, () => [e.component, e.source].filter(Boolean).join(" @ "), null), t;
49089
49139
  }
49090
49140
  }), null), D((e) => {
@@ -49117,7 +49167,7 @@ function C5() {
49117
49167
  rt(["click"]);
49118
49168
  //#endregion
49119
49169
  //#region src/lib/projectConfig.ts
49120
- var w5 = [
49170
+ var j5 = [
49121
49171
  "defaultTeamId",
49122
49172
  "defaultProjectId",
49123
49173
  "defaultLabelIds",
@@ -49131,31 +49181,32 @@ var w5 = [
49131
49181
  "logLines",
49132
49182
  "issueTemplate",
49133
49183
  "testUsername",
49134
- "renderBudgets"
49184
+ "renderBudgets",
49185
+ "renderIgnore"
49135
49186
  ];
49136
- function T5(e) {
49187
+ function M5(e) {
49137
49188
  let t = {};
49138
- for (let n of w5) {
49189
+ for (let n of j5) {
49139
49190
  let r = e[n];
49140
49191
  r !== void 0 && r !== "" && !(Array.isArray(r) && r.length === 0) && (t[n] = r);
49141
49192
  }
49142
49193
  return t;
49143
49194
  }
49144
- function E5(e, t) {
49195
+ function N5(e, t) {
49145
49196
  let n = {};
49146
- for (let r of w5) 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]);
49147
49198
  return Object.keys(n).length ? n : null;
49148
49199
  }
49149
49200
  //#endregion
49150
49201
  //#region src/lib/linear/auth.ts
49151
49202
  Br();
49152
- function D5(e) {
49203
+ function P5(e) {
49153
49204
  let t = "";
49154
49205
  for (let n of e) t += String.fromCharCode(n);
49155
49206
  return btoa(t).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
49156
49207
  }
49157
- async function O5(e) {
49158
- let t = D5(crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(32))), n = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(t)), r = D5(new Uint8Array(n)), i = D5(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");
49159
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");
49160
49211
  let s = await chrome.identity.launchWebAuthFlow({
49161
49212
  url: o.toString(),
@@ -49183,15 +49234,15 @@ async function O5(e) {
49183
49234
  linearOauthClientId: e
49184
49235
  });
49185
49236
  }
49186
- async function k5() {
49237
+ async function I5() {
49187
49238
  await Er({
49188
49239
  linearAccessToken: void 0,
49189
49240
  linearApiKey: void 0
49190
49241
  });
49191
49242
  }
49192
49243
  Br(), Sr(), Ix(), _D();
49193
- var A5 = /*#__PURE__*/ N("<div class=\"bg-surface-2 border-border flex rounded-md border p-0.5\">"), j5 = /*#__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."), M5 = /*#__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"), N5 = /*#__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)."), P5 = /*#__PURE__*/ N("<span class=text-text>Connected as <span class=font-medium></span> · <span class=text-text-dim>"), F5 = /*#__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]\">"), I5 = /*#__PURE__*/ N("<option value>Select a team…"), L5 = /*#__PURE__*/ N("<option value>No project"), R5 = /*#__PURE__*/ N("<div class=\"flex flex-wrap gap-1\">"), z5 = /*#__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."), B5 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">No agents found — install the Cursor integration in Linear first."), V5 = /*#__PURE__*/ N("<span class=\"text-text-faint text-[10.5px] leading-snug\">Empty = the default above (computer-use testing, video demo, PR + review babysitting)."), H5 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-1.5\">"), U5 = /*#__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."), W5 = /*#__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."), G5 = /*#__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."), K5 = /*#__PURE__*/ N("<span class=\"inline-block min-w-[10ch] text-center\">"), q5 = /*#__PURE__*/ N("<div class=\"flex items-center gap-2\">"), J5 = /*#__PURE__*/ N("<option value>Select a channel…"), Y5 = /*#__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"), X5 = /*#__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."), Z5 = /*#__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"), Q5 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">"), $5 = /*#__PURE__*/ N("<div class=min-h-[2lh]>"), e7 = /*#__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."), t7 = /*#__PURE__*/ N("<div class=\"flex h-full flex-col gap-5 overflow-y-auto pt-3 pb-6 pl-3 pr-4\">"), n7 = /*#__PURE__*/ N("<button>"), r7 = /*#__PURE__*/ N("<div class=\"flex gap-1.5\">"), i7 = /*#__PURE__*/ N("<p class=\"text-text-faint text-center text-[10.5px]\">or"), a7 = /*#__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\">"), o7 = /*#__PURE__*/ N("<div class=\"flex flex-col gap-3\">"), s7 = /*#__PURE__*/ N("<span class=text-text-dim>Connected — verifying…"), c7 = /*#__PURE__*/ N("<option> (<!>)"), l7 = /*#__PURE__*/ N("<option>"), u7 = /*#__PURE__*/ N("<button type=button><span class=\"mr-1 inline-block size-2 rounded-full align-middle\">"), d7 = /*#__PURE__*/ N("<option value>Select the agent…"), f7 = /*#__PURE__*/ N("<option>#"), p7 = /*#__PURE__*/ N("<p class=\"text-text-dim text-[11px]\">No key set — AI drafting disabled, manual drafting still works.");
49194
- function m7() {
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() {
49195
49246
  let e = sr(), t = _r(() => ({
49196
49247
  queryKey: ["settings"],
49197
49248
  queryFn: Tr,
@@ -49219,13 +49270,13 @@ function m7() {
49219
49270
  retry: 0
49220
49271
  })), [l, u] = T(!1), d = async () => {
49221
49272
  try {
49222
- await navigator.clipboard.writeText(JSON.stringify(T5(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);
49223
49274
  } catch {}
49224
49275
  }, f = () => {
49225
49276
  let e = c.data?.projectConfig;
49226
49277
  if (!e) return;
49227
49278
  let t = {};
49228
- for (let n of w5) e[n] !== void 0 && (t[n] = e[n]);
49279
+ for (let n of j5) e[n] !== void 0 && (t[n] = e[n]);
49229
49280
  r(t);
49230
49281
  }, p = _r(() => ({
49231
49282
  queryKey: ["linear-labels"],
@@ -49258,7 +49309,7 @@ function m7() {
49258
49309
  }
49259
49310
  E(!0), ee("");
49260
49311
  try {
49261
- await O5(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"] });
49262
49313
  } catch (e) {
49263
49314
  ee(e instanceof Error ? e.message : "OAuth flow failed.");
49264
49315
  } finally {
@@ -49269,7 +49320,7 @@ function m7() {
49269
49320
  async function re() {
49270
49321
  ne(!0);
49271
49322
  try {
49272
- await k5(), 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"] });
49273
49324
  } finally {
49274
49325
  ne(!1);
49275
49326
  }
@@ -49285,12 +49336,12 @@ function m7() {
49285
49336
  return e ? `Drafting with ${e} — ${Px[e].fast} (fast) / ${Px[e].best} (best)` : null;
49286
49337
  });
49287
49338
  return (() => {
49288
- var e = t7();
49339
+ var e = c7();
49289
49340
  return P(e, j(Rj, {
49290
49341
  title: "Workflow",
49291
49342
  get children() {
49292
49343
  return [(() => {
49293
- var e = A5();
49344
+ var e = L5();
49294
49345
  return P(e, j(We, {
49295
49346
  each: [{
49296
49347
  id: "cloud",
@@ -49300,19 +49351,19 @@ function m7() {
49300
49351
  label: "Local · clipboard"
49301
49352
  }],
49302
49353
  children: (e) => (() => {
49303
- var t = n7();
49354
+ var t = l7();
49304
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;
49305
49356
  })()
49306
49357
  })), e;
49307
- })(), j5()];
49358
+ })(), R5()];
49308
49359
  }
49309
49360
  }), null), P(e, j(Rj, {
49310
49361
  title: "Capture",
49311
49362
  get children() {
49312
49363
  return [(() => {
49313
- var e = M5(), t = e.firstChild;
49364
+ var e = z5(), t = e.firstChild;
49314
49365
  return t.addEventListener("change", (e) => void r({ captureShots: e.currentTarget.checked || void 0 })), D(() => t.checked = !!n().captureShots), e;
49315
- })(), N5()];
49366
+ })(), B5()];
49316
49367
  }
49317
49368
  }), null), P(e, j(Rj, {
49318
49369
  title: "Linear",
@@ -49323,13 +49374,13 @@ function m7() {
49323
49374
  },
49324
49375
  get fallback() {
49325
49376
  return (() => {
49326
- var e = o7();
49377
+ var e = p7();
49327
49378
  return P(e, j(Lj, {
49328
49379
  label: "Personal API key",
49329
49380
  hint: "Create one at linear.app → Settings → API — fastest path.",
49330
49381
  get children() {
49331
49382
  return [(() => {
49332
- var e = r7();
49383
+ var e = u7();
49333
49384
  return P(e, j(jj, {
49334
49385
  type: "password",
49335
49386
  placeholder: "lin_api_…",
@@ -49366,12 +49417,12 @@ function m7() {
49366
49417
  }), null), P(e, j(M, {
49367
49418
  when: xr,
49368
49419
  get children() {
49369
- return [i7(), j(Lj, {
49420
+ return [d7(), j(Lj, {
49370
49421
  label: "OAuth client ID",
49371
49422
  get children() {
49372
49423
  return [
49373
49424
  (() => {
49374
- var e = r7();
49425
+ var e = u7();
49375
49426
  return P(e, j(jj, {
49376
49427
  placeholder: "your-client-id",
49377
49428
  get value() {
@@ -49399,7 +49450,7 @@ function m7() {
49399
49450
  }
49400
49451
  }),
49401
49452
  (() => {
49402
- var e = a7(), t = e.firstChild.nextSibling.nextSibling;
49453
+ var e = f7(), t = e.firstChild.nextSibling.nextSibling;
49403
49454
  return P(t, ie), e;
49404
49455
  })()
49405
49456
  ];
@@ -49410,13 +49461,13 @@ function m7() {
49410
49461
  })();
49411
49462
  },
49412
49463
  get children() {
49413
- var e = F5(), t = e.firstChild;
49464
+ var e = H5(), t = e.firstChild;
49414
49465
  return P(t, j(M, {
49415
49466
  get when() {
49416
49467
  return !a.isLoading;
49417
49468
  },
49418
49469
  get fallback() {
49419
- return s7();
49470
+ return m7();
49420
49471
  },
49421
49472
  get children() {
49422
49473
  return j(M, {
@@ -49429,7 +49480,7 @@ function m7() {
49429
49480
  return a.isError;
49430
49481
  },
49431
49482
  get fallback() {
49432
- return s7();
49483
+ return m7();
49433
49484
  },
49434
49485
  get children() {
49435
49486
  return j(Hj, { message: "Key rejected — reconnect" });
@@ -49437,7 +49488,7 @@ function m7() {
49437
49488
  });
49438
49489
  },
49439
49490
  get children() {
49440
- var e = P5(), t = e.firstChild.nextSibling, n = t.nextSibling.nextSibling;
49491
+ var e = V5(), t = e.firstChild.nextSibling, n = t.nextSibling.nextSibling;
49441
49492
  return P(t, () => a.data.name), P(n, () => a.data.email), e;
49442
49493
  }
49443
49494
  });
@@ -49478,7 +49529,7 @@ function m7() {
49478
49529
  return o.isLoading;
49479
49530
  },
49480
49531
  get children() {
49481
- return [I5(), j(M, {
49532
+ return [U5(), j(M, {
49482
49533
  get when() {
49483
49534
  return o.data;
49484
49535
  },
@@ -49488,7 +49539,7 @@ function m7() {
49488
49539
  return o.data;
49489
49540
  },
49490
49541
  children: (e) => (() => {
49491
- var t = c7(), r = t.firstChild, i = r.nextSibling;
49542
+ var t = h7(), r = t.firstChild, i = r.nextSibling;
49492
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;
49493
49544
  })()
49494
49545
  });
@@ -49512,14 +49563,14 @@ function m7() {
49512
49563
  },
49513
49564
  get children() {
49514
49565
  return [(() => {
49515
- var e = L5();
49566
+ var e = W5();
49516
49567
  return D(() => e.selected = !n().defaultProjectId), e;
49517
49568
  })(), j(We, {
49518
49569
  get each() {
49519
49570
  return s.data ?? [];
49520
49571
  },
49521
49572
  children: (e) => (() => {
49522
- var t = l7();
49573
+ var t = g7();
49523
49574
  return P(t, () => e.name), D(() => t.selected = e.id === n().defaultProjectId), D(() => t.value = e.id), t;
49524
49575
  })()
49525
49576
  })];
@@ -49531,7 +49582,7 @@ function m7() {
49531
49582
  label: "Default labels",
49532
49583
  hint: "Applied to every issue created from the panel.",
49533
49584
  get children() {
49534
- var e = R5();
49585
+ var e = G5();
49535
49586
  return P(e, j(We, {
49536
49587
  get each() {
49537
49588
  return p.data ?? [];
@@ -49539,7 +49590,7 @@ function m7() {
49539
49590
  children: (e) => {
49540
49591
  let t = () => (n().defaultLabelIds ?? []).includes(e.id);
49541
49592
  return (() => {
49542
- var i = u7(), a = i.firstChild;
49593
+ var i = _7(), a = i.firstChild;
49543
49594
  return i.$$click = () => {
49544
49595
  let i = n().defaultLabelIds ?? [];
49545
49596
  r({ defaultLabelIds: t() ? i.filter((t) => t !== e.id) : [...i, e.id] });
@@ -49556,7 +49607,7 @@ function m7() {
49556
49607
  }
49557
49608
  }),
49558
49609
  (() => {
49559
- var e = z5(), t = e.firstChild;
49610
+ var e = K5(), t = e.firstChild;
49560
49611
  return t.addEventListener("change", (e) => void r({ shareLinearKey: e.currentTarget.checked })), D(() => t.checked = !!n().shareLinearKey), e;
49561
49612
  })(),
49562
49613
  j(Lj, {
@@ -49606,7 +49657,7 @@ function m7() {
49606
49657
  return m.isLoading;
49607
49658
  },
49608
49659
  get children() {
49609
- return [d7(), j(M, {
49660
+ return [v7(), j(M, {
49610
49661
  get when() {
49611
49662
  return m.data;
49612
49663
  },
@@ -49616,7 +49667,7 @@ function m7() {
49616
49667
  return m.data;
49617
49668
  },
49618
49669
  children: (e) => (() => {
49619
- var t = l7();
49670
+ var t = g7();
49620
49671
  return P(t, () => e.displayName), D(() => t.selected = e.id === n().cursorAgentId), D(() => t.value = e.id), t;
49621
49672
  })()
49622
49673
  });
@@ -49626,7 +49677,7 @@ function m7() {
49626
49677
  });
49627
49678
  },
49628
49679
  get children() {
49629
- return B5();
49680
+ return q5();
49630
49681
  }
49631
49682
  });
49632
49683
  }
@@ -49674,7 +49725,7 @@ function m7() {
49674
49725
  onBlur: (e) => {
49675
49726
  r({ issueTemplate: e.currentTarget.value.trim() || void 0 });
49676
49727
  }
49677
- }), V5()];
49728
+ }), J5()];
49678
49729
  }
49679
49730
  }),
49680
49731
  j(Lj, {
@@ -49731,7 +49782,7 @@ function m7() {
49731
49782
  label: "Test account",
49732
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.",
49733
49784
  get children() {
49734
- var e = H5();
49785
+ var e = Y5();
49735
49786
  return P(e, j(jj, {
49736
49787
  placeholder: "Username or email (e.g. demo@yourapp.com)",
49737
49788
  get value() {
@@ -49763,7 +49814,7 @@ function m7() {
49763
49814
  title: "Panel",
49764
49815
  get children() {
49765
49816
  return [(() => {
49766
- var e = U5(), t = e.firstChild.nextSibling;
49817
+ var e = X5(), t = e.firstChild.nextSibling;
49767
49818
  return P(t, j(We, {
49768
49819
  each: [{
49769
49820
  id: "overlay",
@@ -49773,7 +49824,7 @@ function m7() {
49773
49824
  label: "Beside page"
49774
49825
  }],
49775
49826
  children: (e) => (() => {
49776
- var t = n7();
49827
+ var t = l7();
49777
49828
  return t.$$click = () => void r({
49778
49829
  panelMode: e.id,
49779
49830
  panelPos: void 0
@@ -49781,11 +49832,11 @@ function m7() {
49781
49832
  })()
49782
49833
  })), e;
49783
49834
  })(), (() => {
49784
- var e = W5(), t = e.firstChild.nextSibling;
49835
+ var e = Z5(), t = e.firstChild.nextSibling;
49785
49836
  return P(t, j(We, {
49786
49837
  each: ["left", "right"],
49787
49838
  children: (e) => (() => {
49788
- var t = n7();
49839
+ var t = l7();
49789
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;
49790
49841
  })()
49791
49842
  })), e;
@@ -49815,8 +49866,8 @@ function m7() {
49815
49866
  }), null), P(e, j(Rj, {
49816
49867
  title: "Project config (.lineargrab.json)",
49817
49868
  get children() {
49818
- return [G5(), (() => {
49819
- var e = q5();
49869
+ return [Q5(), (() => {
49870
+ var e = e7();
49820
49871
  return P(e, j(M, {
49821
49872
  get when() {
49822
49873
  return c.data?.projectConfig;
@@ -49847,7 +49898,7 @@ function m7() {
49847
49898
  },
49848
49899
  onClick: () => void d(),
49849
49900
  get children() {
49850
- var e = K5();
49901
+ var e = $5();
49851
49902
  return P(e, () => l() ? "Copied ✓" : "Copy config"), e;
49852
49903
  }
49853
49904
  }), null), e;
@@ -49938,12 +49989,12 @@ function m7() {
49938
49989
  });
49939
49990
  },
49940
49991
  get children() {
49941
- return [J5(), j(We, {
49992
+ return [t7(), j(We, {
49942
49993
  get each() {
49943
49994
  return ae.data ?? [];
49944
49995
  },
49945
49996
  children: (e) => (() => {
49946
- var t = f7();
49997
+ var t = y7();
49947
49998
  return t.firstChild, P(t, () => e.name, null), D(() => t.selected = e.id === n().slackChannelId), D(() => t.value = e.id), t;
49948
49999
  })()
49949
50000
  })];
@@ -49994,10 +50045,10 @@ function m7() {
49994
50045
  }
49995
50046
  }),
49996
50047
  (() => {
49997
- var e = Y5(), t = e.firstChild;
50048
+ var e = n7(), t = e.firstChild;
49998
50049
  return t.addEventListener("change", (e) => void r({ notifyOnCreate: e.currentTarget.checked ? void 0 : !1 })), D(() => t.checked = n().notifyOnCreate !== !1), e;
49999
50050
  })(),
50000
- X5()
50051
+ r7()
50001
50052
  ];
50002
50053
  }
50003
50054
  }), null), P(e, j(Rj, {
@@ -50035,7 +50086,7 @@ function m7() {
50035
50086
  }
50036
50087
  }),
50037
50088
  (() => {
50038
- var e = Z5(), 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;
50039
50090
  return t.$$click = () => void r({ preferredProvider: void 0 }), i.$$click = () => void r({ preferredProvider: "openai" }), a.$$click = () => void r({ preferredProvider: "anthropic" }), D((e) => {
50040
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;
50041
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;
@@ -50048,16 +50099,16 @@ function m7() {
50048
50099
  }), e;
50049
50100
  })(),
50050
50101
  (() => {
50051
- var e = $5();
50102
+ var e = o7();
50052
50103
  return P(e, j(M, {
50053
50104
  get when() {
50054
50105
  return se();
50055
50106
  },
50056
50107
  get fallback() {
50057
- return p7();
50108
+ return b7();
50058
50109
  },
50059
50110
  get children() {
50060
- var e = Q5();
50111
+ var e = a7();
50061
50112
  return P(e, se), e;
50062
50113
  }
50063
50114
  })), e;
@@ -50067,7 +50118,7 @@ function m7() {
50067
50118
  }), null), P(e, j(Rj, {
50068
50119
  title: "How it works",
50069
50120
  get children() {
50070
- return e7();
50121
+ return s7();
50071
50122
  }
50072
50123
  }), null), e;
50073
50124
  })();
@@ -50075,38 +50126,38 @@ function m7() {
50075
50126
  rt(["click"]);
50076
50127
  //#endregion
50077
50128
  //#region src/lib/idbCache.ts
50078
- var h7 = "linear-grab", g7 = "queries", _7 = [
50129
+ var S7 = "linear-grab", C7 = "queries", w7 = [
50079
50130
  "my-issues",
50080
50131
  "issue",
50081
50132
  "sessions",
50082
50133
  "teams",
50083
50134
  "agents"
50084
50135
  ];
50085
- function v7() {
50136
+ function T7() {
50086
50137
  return new Promise((e) => {
50087
50138
  try {
50088
- let t = indexedDB.open(h7, 1);
50089
- t.onupgradeneeded = () => t.result.createObjectStore(g7), 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);
50090
50141
  } catch {
50091
50142
  e(null);
50092
50143
  }
50093
50144
  });
50094
50145
  }
50095
- function y7(e) {
50096
- return typeof e[0] == "string" && _7.includes(e[0]);
50146
+ function E7(e) {
50147
+ return typeof e[0] == "string" && w7.includes(e[0]);
50097
50148
  }
50098
- async function b7(e) {
50099
- let t = await v7();
50149
+ async function D7(e) {
50150
+ let t = await T7();
50100
50151
  if (!t) return () => {};
50101
50152
  await new Promise((n) => {
50102
50153
  try {
50103
- let r = t.transaction(g7, "readonly").objectStore(g7).openCursor();
50154
+ let r = t.transaction(C7, "readonly").objectStore(C7).openCursor();
50104
50155
  r.onsuccess = () => {
50105
50156
  let t = r.result;
50106
50157
  if (!t) return n();
50107
50158
  try {
50108
50159
  let { queryKey: n, data: r } = t.value;
50109
- y7(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 });
50110
50161
  } catch {}
50111
50162
  t.continue();
50112
50163
  }, r.onerror = () => n();
@@ -50117,14 +50168,14 @@ async function b7(e) {
50117
50168
  let n = /* @__PURE__ */ new Map(), r = e.getQueryCache().subscribe((r) => {
50118
50169
  if (r.type !== "updated" || r.action.type !== "success") return;
50119
50170
  let { queryKey: i, queryHash: a } = r.query;
50120
- if (!y7(i)) return;
50171
+ if (!E7(i)) return;
50121
50172
  let o = n.get(a);
50122
50173
  o && clearTimeout(o), n.set(a, setTimeout(() => {
50123
50174
  n.delete(a);
50124
50175
  try {
50125
50176
  let n = e.getQueryData(i);
50126
50177
  if (n === void 0) return;
50127
- t.transaction(g7, "readwrite").objectStore(g7).put({
50178
+ t.transaction(C7, "readwrite").objectStore(C7).put({
50128
50179
  queryKey: i,
50129
50180
  data: n
50130
50181
  }, a);
@@ -50140,7 +50191,7 @@ async function b7(e) {
50140
50191
  //#endregion
50141
50192
  //#region src/panel/App.tsx
50142
50193
  Br();
50143
- var x7 = /*#__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\">"), S7 = /*#__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\">"), C7 = /*#__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\">–"), w7 = /*#__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>"), T7 = /*#__PURE__*/ N("<button>"), E7 = [
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 = [
50144
50195
  {
50145
50196
  id: "draft",
50146
50197
  label: "Draft"
@@ -50181,35 +50232,35 @@ var x7 = /*#__PURE__*/ N("<svg viewBox=\"0 0 100 100\"fill=currentColor aria-hid
50181
50232
  id: "settings",
50182
50233
  label: "Settings"
50183
50234
  }
50184
- ], D7 = /* @__PURE__ */ new Set();
50185
- function O7(e, t, n) {
50186
- if (D7.has(e) || typeof Notification > "u") return;
50187
- D7.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);
50188
50239
  let r = () => new Notification(t, { body: n });
50189
50240
  Notification.permission === "granted" ? r() : Notification.permission === "default" && Notification.requestPermission().then((e) => e === "granted" && r());
50190
50241
  }
50191
- function k7() {
50242
+ function I7() {
50192
50243
  setInterval(() => {
50193
50244
  PO().then((e) => {
50194
50245
  for (let t of e) {
50195
50246
  if (t.status !== "running") continue;
50196
50247
  let e = t.lastEventAt ?? t.startedAt;
50197
- Date.now() - e > 10 * 6e4 && O7(`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.`);
50198
50249
  }
50199
50250
  }).catch(() => {}), _O().then((e) => {
50200
- for (let t of e) /awaitingInput|elicit/i.test(t.status) && O7(`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.`);
50201
50252
  }).catch(() => {});
50202
50253
  }, 6e4);
50203
50254
  }
50204
- k7();
50205
- var A7 = new gr({ defaultOptions: { queries: {
50255
+ I7();
50256
+ var L7 = new gr({ defaultOptions: { queries: {
50206
50257
  retry: 1,
50207
50258
  refetchOnWindowFocus: !1,
50208
50259
  staleTime: 5e3
50209
50260
  } } });
50210
- function j7(e) {
50261
+ function R7(e) {
50211
50262
  return (() => {
50212
- var t = x7();
50263
+ var t = O7();
50213
50264
  return D((n) => {
50214
50265
  var r = e.size ?? 14, i = e.size ?? 14;
50215
50266
  return r !== n.e && it(t, "width", n.e = r), i !== n.t && it(t, "height", n.t = i), n;
@@ -50219,36 +50270,36 @@ function j7(e) {
50219
50270
  }), t;
50220
50271
  })();
50221
50272
  }
50222
- function M7(e) {
50273
+ function z7(e) {
50223
50274
  let [t, n] = T("draft"), r = () => {
50224
- A7.invalidateQueries({ queryKey: ["grab"] }), lj() === "capture" && n("capture"), e.onGrab?.();
50275
+ L7.invalidateQueries({ queryKey: ["grab"] }), lj() === "capture" && n("capture"), e.onGrab?.();
50225
50276
  };
50226
50277
  return O(() => {
50227
50278
  let e = rj();
50228
50279
  e && n(e);
50229
50280
  }), ie(() => {
50230
- let e = b7(A7), t = XZ(r), n = () => {
50281
+ let e = D7(L7), t = XZ(r), n = () => {
50231
50282
  YO().then(y$), HO(), NO().then(async (e) => {
50232
50283
  if (!e.projectConfig) return;
50233
- let t = E5(await Tr(), e.projectConfig);
50284
+ let t = N5(await Tr(), e.projectConfig);
50234
50285
  t && await Er(t);
50235
50286
  }).catch(() => {});
50236
50287
  };
50237
50288
  n();
50238
50289
  let i = Mr((e) => {
50239
- e === "settings" && (A7.invalidateQueries({ queryKey: ["settings"] }), n()), e === "grab" && r();
50290
+ e === "settings" && (L7.invalidateQueries({ queryKey: ["settings"] }), n()), e === "grab" && r();
50240
50291
  });
50241
50292
  ae(() => {
50242
50293
  t(), i(), e.then((e) => e());
50243
50294
  });
50244
50295
  }), j(cr, {
50245
- client: A7,
50296
+ client: L7,
50246
50297
  get children() {
50247
- var r = w7(), 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;
50248
- return i.$$pointerdown = (t) => e.onHeaderPointerDown?.(t), P(a, j(j7, { size: 14 })), P(o, j(We, {
50249
- each: E7,
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,
50250
50301
  children: (e) => (() => {
50251
- var r = T7();
50302
+ var r = M7();
50252
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;
50253
50304
  })()
50254
50305
  })), P(i, j(M, {
@@ -50256,7 +50307,7 @@ function M7(e) {
50256
50307
  return e.onTogglePin;
50257
50308
  },
50258
50309
  get children() {
50259
- var t = S7();
50310
+ var t = k7();
50260
50311
  return t.$$click = () => e.onTogglePin?.(), D((n) => {
50261
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"}`;
50262
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;
@@ -50271,10 +50322,10 @@ function M7(e) {
50271
50322
  return e.onClose;
50272
50323
  },
50273
50324
  get children() {
50274
- var t = C7();
50325
+ var t = A7();
50275
50326
  return t.$$click = () => e.onClose?.(), t;
50276
50327
  }
50277
- }), null), P(s, j(wM, { onCreated: () => n("activity") })), P(c, j(TQ, {})), P(l, j(_1, {})), P(u, j(B1, {})), P(d, j(P1, {})), P(f, j(T0, {})), P(p, j(B0, { onOpenIssue: () => n("activity") })), P(m, j(H3, {})), P(h, j(C5, {})), P(g, j(m7, {})), 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) => {
50278
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";
50279
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;
50280
50331
  }, {
@@ -50296,16 +50347,16 @@ function M7(e) {
50296
50347
  rt(["pointerdown", "click"]);
50297
50348
  //#endregion
50298
50349
  //#region src/styles/app.css?inline
50299
- var N7 = "/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */\n@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-contain-size:initial;--tw-contain-layout:initial;--tw-contain-paint:initial;--tw-contain-style:initial}}}@layer theme{:root,:host{--font-sans:\"Inter\", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-serif:ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif;--font-mono:ui-monospace, \"SF Mono\", Menlo, monospace;--color-red-500:oklch(63.7% .237 25.331);--color-white:#fff;--spacing:.25rem;--font-weight-thin:100;--font-weight-extralight:200;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--font-weight-black:900;--tracking-wide:.025em;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--radius-xl:.75rem;--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-bg:#0b0c0e;--color-surface:#141517;--color-surface-2:#1c1d21;--color-surface-3:#24262b;--color-border:#26282d;--color-border-strong:#34363d;--color-text:#e8e9eb;--color-text-dim:#8b8e98;--color-text-faint:#5c5f6a;--color-accent:#5e6ad2;--color-accent-hover:#6e79e0;--color-accent-soft:#5e6ad226;--color-success:#4cb782;--color-warn:#f2c94c;--color-danger:#eb5757;--color-danger-soft:#eb575726}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.visible\\!{visibility:visible!important}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-y-0{inset-block:0}.-top-0{top:0}.-top-0\\.5{top:calc(var(--spacing) * -.5)}.top-0{top:0}.top-0\\.5{top:calc(var(--spacing) * .5)}.top-1{top:var(--spacing)}.top-1\\/2{top:50%}.top-3{top:calc(var(--spacing) * 3)}.top-\\[2px\\]{top:2px}.top-full{top:100%}.-right-0{right:0}.-right-0\\.5{right:calc(var(--spacing) * -.5)}.right-0{right:0}.right-0\\.5{right:calc(var(--spacing) * .5)}.right-4{right:calc(var(--spacing) * 4)}.right-full{right:100%}.bottom-0{bottom:0}.bottom-1{bottom:var(--spacing)}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-\\[2px\\]{bottom:2px}.bottom-full{bottom:100%}.-left-\\[13\\.5px\\]{left:-13.5px}.left-0{left:0}.left-1{left:var(--spacing)}.left-1\\/2{left:50%}.left-\\[5px\\]{left:5px}.left-full{left:100%}.z-1{z-index:1}.z-10{z-index:10}.z-\\[2147483645\\]{z-index:2147483645}.z-\\[2147483646\\]{z-index:2147483646}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.container\\!{width:100%!important}@media (width>=40rem){.container\\!{max-width:40rem!important}}@media (width>=48rem){.container\\!{max-width:48rem!important}}@media (width>=64rem){.container\\!{max-width:64rem!important}}@media (width>=80rem){.container\\!{max-width:80rem!important}}@media (width>=96rem){.container\\!{max-width:96rem!important}}.-m-0{margin:0}.-m-0\\.5{margin:calc(var(--spacing) * -.5)}.-m-4{margin:calc(var(--spacing) * -4)}.m-0{margin:0}.-mx-2{margin-inline:calc(var(--spacing) * -2)}.-my-1{margin-block:calc(var(--spacing) * -1)}.-my-1\\.5{margin-block:calc(var(--spacing) * -1.5)}.mt-0{margin-top:0}.mt-0\\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-px{margin-top:1px}.mr-0{margin-right:0}.mr-0\\.5{margin-right:calc(var(--spacing) * .5)}.mr-1{margin-right:var(--spacing)}.mr-1\\.5{margin-right:calc(var(--spacing) * 1.5)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-2\\.5{margin-right:calc(var(--spacing) * 2.5)}.-mb-4{margin-bottom:calc(var(--spacing) * -4)}.mb-0{margin-bottom:0}.mb-0\\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:var(--spacing)}.mb-1\\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-2\\.5{margin-bottom:calc(var(--spacing) * 2.5)}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-2\\.5{margin-left:calc(var(--spacing) * 2.5)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-auto{margin-left:auto}.ml-px{margin-left:1px}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-5{-webkit-line-clamp:5;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.list-item{display:list-item}.table{display:table}.size-0{width:0;height:0}.size-1{width:var(--spacing);height:var(--spacing)}.size-1\\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-\\[9px\\]{width:9px;height:9px}.size-\\[12px\\]{width:12px;height:12px}.size-\\[16px\\]{width:16px;height:16px}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-16{height:calc(var(--spacing) * 16)}.h-\\[8px\\]{height:8px}.h-\\[17px\\]{height:17px}.h-\\[18px\\]{height:18px}.h-\\[20px\\]{height:20px}.h-\\[24px\\]{height:24px}.h-fit{height:fit-content}.h-full{height:100%}.h-screen{height:100vh}.max-h-32{max-height:calc(var(--spacing) * 32)}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-44{max-height:calc(var(--spacing) * 44)}.max-h-56{max-height:calc(var(--spacing) * 56)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-\\[28rem\\]{max-height:28rem}.max-h-\\[var\\(--rg-edit-list-max-h\\)\\]{max-height:var(--rg-edit-list-max-h)}.min-h-0{min-height:0}.min-h-4{min-height:calc(var(--spacing) * 4)}.min-h-\\[2lh\\]{min-height:2lh}.min-h-\\[28px\\]{min-height:28px}.w-1{width:var(--spacing)}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-16{width:calc(var(--spacing) * 16)}.w-28{width:calc(var(--spacing) * 28)}.w-72{width:calc(var(--spacing) * 72)}.w-\\[2px\\]{width:2px}.w-\\[Npx\\]{width:Npx}.w-\\[calc\\(100\\%\\+16px\\)\\]{width:calc(100% + 16px)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-\\[55\\%\\]{max-width:55%}.max-w-\\[100vw\\]{max-width:100vw}.max-w-\\[110px\\]{max-width:110px}.max-w-\\[280px\\]{max-width:280px}.max-w-full{max-width:100%}.min-w-0{min-width:0}.min-w-\\[3\\.5ch\\]{min-width:3.5ch}.min-w-\\[3ch\\]{min-width:3ch}.min-w-\\[4ch\\]{min-width:4ch}.min-w-\\[5ch\\]{min-width:5ch}.min-w-\\[6ch\\]{min-width:6ch}.min-w-\\[7ch\\]{min-width:7ch}.min-w-\\[8ch\\]{min-width:8ch}.min-w-\\[10ch\\]{min-width:10ch}.min-w-\\[12ch\\]{min-width:12ch}.min-w-\\[36px\\]{min-width:36px}.min-w-\\[52px\\]{min-width:52px}.min-w-\\[100px\\]{min-width:100px}.min-w-\\[150px\\]{min-width:150px}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-rotate-90{rotate:-90deg}.rotate-0{rotate:0deg}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.list-decimal{list-style-type:decimal}.grid-cols-\\[0fr\\]{grid-template-columns:0fr}.grid-cols-\\[1fr\\]{grid-template-columns:1fr}.grid-rows-\\[0fr\\]{grid-template-rows:0fr}.grid-rows-\\[1fr\\]{grid-template-rows:1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:0}.gap-0\\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-\\[5px\\]{gap:5px}.self-end{align-self:flex-end}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-clip{overflow:clip}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\\[1px\\]{border-radius:1px}.rounded-\\[3px\\]{border-radius:3px}.rounded-\\[4px\\]{border-radius:4px}.rounded-\\[5px\\]{border-radius:5px}.rounded-\\[6px\\]{border-radius:6px}.rounded-\\[13px\\]{border-radius:13px}.rounded-\\[14px\\]{border-radius:14px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-t-\\[10px\\]{border-top-left-radius:10px;border-top-right-radius:10px}.rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.rounded-l{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-l-\\[10px\\]{border-top-left-radius:10px;border-bottom-left-radius:10px}.rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.rounded-tl{border-top-left-radius:.25rem}.rounded-r{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-r-\\[10px\\]{border-top-right-radius:10px;border-bottom-right-radius:10px}.rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-tr{border-top-right-radius:.25rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-b-\\[6px\\]{border-bottom-right-radius:6px;border-bottom-left-radius:6px}.rounded-b-\\[10px\\]{border-bottom-right-radius:10px;border-bottom-left-radius:10px}.rounded-b-none{border-bottom-right-radius:0;border-bottom-left-radius:0}.rounded-br{border-bottom-right-radius:.25rem}.rounded-bl{border-bottom-left-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.\\[border-width\\:0\\.5px\\]{border-width:.5px}.border-x{border-inline-style:var(--tw-border-style);border-inline-width:1px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-s{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}.border-e{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-4{border-top-style:var(--tw-border-style);border-top-width:4px}.\\[border-top-width\\:0\\.5px\\]{border-top-width:.5px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-dotted{--tw-border-style:dotted;border-style:dotted}.border-none{--tw-border-style:none;border-style:none}.border-solid{--tw-border-style:solid;border-style:solid}.border-\\[var\\(--rg-border-button\\)\\]{border-color:var(--rg-border-button)}.border-accent{border-color:var(--color-accent)}.border-accent\\/40{border-color:#5e6ad266}@supports (color:color-mix(in lab, red, red)){.border-accent\\/40{border-color:color-mix(in oklab, var(--color-accent) 40%, transparent)}}.border-border{border-color:var(--color-border)}.border-danger{border-color:var(--color-danger)}.border-danger\\/40{border-color:#eb575766}@supports (color:color-mix(in lab, red, red)){.border-danger\\/40{border-color:color-mix(in oklab, var(--color-danger) 40%, transparent)}}.border-success{border-color:var(--color-success)}.border-success\\/40{border-color:#4cb78266}@supports (color:color-mix(in lab, red, red)){.border-success\\/40{border-color:color-mix(in oklab, var(--color-success) 40%, transparent)}}.border-text-dim{border-color:var(--color-text-dim)}.border-transparent{border-color:#0000}.border-warn{border-color:var(--color-warn)}.border-warn\\/40{border-color:#f2c94c66}@supports (color:color-mix(in lab, red, red)){.border-warn\\/40{border-color:color-mix(in oklab, var(--color-warn) 40%, transparent)}}.border-t-\\[var\\(--rg-border-subtle\\)\\]{border-top-color:var(--rg-border-subtle)}.border-t-transparent{border-top-color:#0000}.bg-\\[var\\(--rg-error-bg\\)\\]{background-color:var(--rg-error-bg)}.bg-\\[var\\(--rg-panel-bg\\)\\]{background-color:var(--rg-panel-bg)}.bg-\\[var\\(--rg-submit-bg\\)\\]{background-color:var(--rg-submit-bg)}.bg-\\[var\\(--rg-surface-active\\)\\]{background-color:var(--rg-surface-active)}.bg-\\[var\\(--rg-surface-hover\\)\\]{background-color:var(--rg-surface-hover)}.bg-\\[var\\(--rg-text-primary\\)\\]{background-color:var(--rg-text-primary)}.bg-\\[var\\(--rg-text-secondary\\)\\]{background-color:var(--rg-text-secondary)}.bg-accent{background-color:var(--color-accent)}.bg-accent-soft{background-color:var(--color-accent-soft)}.bg-bg{background-color:var(--color-bg)}.bg-bg\\/80{background-color:#0b0c0ecc}@supports (color:color-mix(in lab, red, red)){.bg-bg\\/80{background-color:color-mix(in oklab, var(--color-bg) 80%, transparent)}}.bg-border{background-color:var(--color-border)}.bg-current{background-color:currentColor}.bg-danger{background-color:var(--color-danger)}.bg-danger-soft{background-color:var(--color-danger-soft)}.bg-danger\\/10{background-color:#eb57571a}@supports (color:color-mix(in lab, red, red)){.bg-danger\\/10{background-color:color-mix(in oklab, var(--color-danger) 10%, transparent)}}.bg-red-500{background-color:var(--color-red-500)}.bg-success{background-color:var(--color-success)}.bg-surface{background-color:var(--color-surface)}.bg-surface-2{background-color:var(--color-surface-2)}.bg-surface-3{background-color:var(--color-surface-3)}.bg-text-faint{background-color:var(--color-text-faint)}.bg-transparent{background-color:#0000}.bg-warn{background-color:var(--color-warn)}.bg-warn\\/10{background-color:#f2c94c1a}@supports (color:color-mix(in lab, red, red)){.bg-warn\\/10{background-color:color-mix(in oklab, var(--color-warn) 10%, transparent)}}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:0}.p-0\\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\\.5{padding:calc(var(--spacing) * 2.5)}.p-6{padding:calc(var(--spacing) * 6)}.px-0{padding-inline:0}.px-0\\.25{padding-inline:calc(var(--spacing) * .25)}.px-1{padding-inline:var(--spacing)}.px-1\\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-\\[3px\\]{padding-inline:3px}.py-0{padding-block:0}.py-0\\.5{padding-block:calc(var(--spacing) * .5)}.py-0\\.25{padding-block:calc(var(--spacing) * .25)}.py-1{padding-block:var(--spacing)}.py-1\\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-px{padding-block:1px}.pt-0{padding-top:0}.pt-0\\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:var(--spacing)}.pt-1\\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pr-1{padding-right:var(--spacing)}.pr-1\\.5{padding-right:calc(var(--spacing) * 1.5)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pb-1{padding-bottom:var(--spacing)}.pb-1\\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pl-0{padding-left:0}.pl-0\\.5{padding-left:calc(var(--spacing) * .5)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-2\\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.text-center{text-align:center}.text-end{text-align:end}.text-justify{text-align:justify}.text-left{text-align:left}.text-right{text-align:right}.text-start{text-align:start}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.font-serif{font-family:var(--font-serif)}.text-\\[9\\.5px\\]{font-size:9.5px}.text-\\[9px\\]{font-size:9px}.text-\\[10\\.5px\\]{font-size:10.5px}.text-\\[10px\\]{font-size:10px}.text-\\[11\\.5px\\]{font-size:11.5px}.text-\\[11px\\]{font-size:11px}.text-\\[12\\.5px\\]{font-size:12.5px}.text-\\[12px\\]{font-size:12px}.text-\\[13px\\]{font-size:13px}.text-\\[15px\\]{font-size:15px}.leading-3{--tw-leading:calc(var(--spacing) * 3);line-height:calc(var(--spacing) * 3)}.leading-3\\.5{--tw-leading:calc(var(--spacing) * 3.5);line-height:calc(var(--spacing) * 3.5)}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-extralight{--tw-font-weight:var(--font-weight-extralight);font-weight:var(--font-weight-extralight)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.font-thin{--tw-font-weight:var(--font-weight-thin);font-weight:var(--font-weight-thin)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-normal{overflow-wrap:normal;word-break:normal}.break-words,.wrap-break-word{overflow-wrap:break-word}.break-all{word-break:break-all}.break-keep{word-break:keep-all}.text-ellipsis{text-overflow:ellipsis}.whitespace-break-spaces{white-space:break-spaces}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.text-\\[var\\(--rg-error-text\\)\\]{color:var(--rg-error-text)}.text-\\[var\\(--rg-submit-fg\\)\\]{color:var(--rg-submit-fg)}.text-\\[var\\(--rg-text-primary\\)\\]{color:var(--rg-text-primary)}.text-\\[var\\(--rg-text-primary-85\\)\\]{color:var(--rg-text-primary-85)}.text-\\[var\\(--rg-text-secondary\\)\\]{color:var(--rg-text-secondary)}.text-accent{color:var(--color-accent)}.text-danger{color:var(--color-danger)}.text-success{color:var(--color-success)}.text-text{color:var(--color-text)}.text-text-dim{color:var(--color-text-dim)}.text-text-faint{color:var(--color-text-faint)}.text-warn{color:var(--color-warn)}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.not-italic{font-style:normal}.lining-nums{--tw-numeric-figure:lining-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.oldstyle-nums{--tw-numeric-figure:oldstyle-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.proportional-nums{--tw-numeric-spacing:proportional-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.slashed-zero{--tw-slashed-zero:slashed-zero;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.accent-accent{accent-color:var(--color-accent)}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.\\[box-shadow\\:var\\(--rg-shadow\\)\\]{box-shadow:var(--rg-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.\\[filter\\:var\\(--rg-drop-shadow\\)\\]{filter:var(--rg-drop-shadow)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[grid-template-columns\\]{transition-property:grid-template-columns;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[grid-template-rows\\]{transition-property:grid-template-rows;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[opacity\\,transform\\]{transition-property:opacity,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[padding\\,border-radius\\,transform\\]{transition-property:padding,border-radius,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[top\\,left\\,width\\,height\\,opacity\\,border-radius\\]{transition-property:top,left,width,height,opacity,border-radius;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[transform\\,color\\]{transition-property:transform,color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[transform\\,opacity\\]{transition-property:transform,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.delay-\\[80ms\\]{transition-delay:80ms}.duration-60{--tw-duration:60ms;transition-duration:60ms}.duration-75{--tw-duration:75ms;transition-duration:75ms}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-120{--tw-duration:.12s;transition-duration:.12s}.duration-140{--tw-duration:.14s;transition-duration:.14s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-180{--tw-duration:.18s;transition-duration:.18s}.duration-220{--tw-duration:.22s;transition-duration:.22s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-400{--tw-duration:.4s;transition-duration:.4s}.ease-\\[cubic-bezier\\(0\\,0\\,0\\.2\\,1\\)\\]{--tw-ease:cubic-bezier(0,0,.2,1);transition-timing-function:cubic-bezier(0,0,.2,1)}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.will-change-\\[opacity\\,transform\\]{will-change:opacity,transform}.will-change-transform{will-change:transform}.contain-layout{--tw-contain-layout:layout;contain:var(--tw-contain-size,) var(--tw-contain-layout,) var(--tw-contain-paint,) var(--tw-contain-style,)}.outline-none{--tw-outline-style:none;outline-style:none}.select-all{-webkit-user-select:all;user-select:all}.select-none{-webkit-user-select:none;user-select:none}.\\[corner-shape\\:superellipse\\(1\\.25\\)\\]{corner-shape:superellipse(1.25)}.\\[font-synthesis\\:none\\]{font-synthesis:none}.group-open\\:rotate-90:is(:where(.group):is([open],:popover-open,:open) *){rotate:90deg}@media (hover:hover){.group-hover\\:text-\\[var\\(--rg-text-primary\\)\\]:is(:where(.group):hover *){color:var(--rg-text-primary)}.group-hover\\:opacity-100:is(:where(.group):hover *){opacity:1}}.placeholder\\:text-text-faint::placeholder{color:var(--color-text-faint)}@media (hover:hover){.hover\\:bg-\\[var\\(--rg-error-bg-hover\\)\\]:hover{background-color:var(--rg-error-bg-hover)}.hover\\:bg-\\[var\\(--rg-surface-active\\)\\]:hover{background-color:var(--rg-surface-active)}.hover\\:bg-\\[var\\(--rg-surface-hover\\)\\]:hover{background-color:var(--rg-surface-hover)}.hover\\:bg-accent-hover:hover{background-color:var(--color-accent-hover)}.hover\\:bg-accent\\/50:hover{background-color:#5e6ad280}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-accent\\/50:hover{background-color:color-mix(in oklab, var(--color-accent) 50%, transparent)}}.hover\\:bg-danger\\/30:hover{background-color:#eb57574d}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-danger\\/30:hover{background-color:color-mix(in oklab, var(--color-danger) 30%, transparent)}}.hover\\:bg-surface-2:hover{background-color:var(--color-surface-2)}.hover\\:bg-surface-3:hover{background-color:var(--color-surface-3)}.hover\\:text-\\[var\\(--rg-text-primary\\)\\]:hover{color:var(--rg-text-primary)}.hover\\:text-accent:hover{color:var(--color-accent)}.hover\\:text-danger:hover{color:var(--color-danger)}.hover\\:text-text:hover{color:var(--color-text)}.hover\\:underline:hover{text-decoration-line:underline}.hover\\:opacity-80:hover{opacity:.8}}.focus\\:border-accent:focus{border-color:var(--color-accent)}.active\\:cursor-grabbing:active{cursor:grabbing}.active\\:bg-accent:active{background-color:var(--color-accent)}.active\\:transition-none:active{transition-property:none}.disabled\\:cursor-default:disabled{cursor:default}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:bg-surface-3:disabled{background-color:var(--color-surface-3)}.disabled\\:text-text-faint:disabled{color:var(--color-text-faint)}.disabled\\:opacity-40:disabled{opacity:.4}@media (hover:hover){.disabled\\:hover\\:bg-surface-2:disabled:hover{background-color:var(--color-surface-2)}}.data-\\[state\\=on\\]\\:transition-none[data-state=on],.data-\\[state\\=open\\]\\:transition-none[data-state=open],.data-\\[state\\=…\\]\\:transition-none[data-state=…]{transition-property:none}}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=light],:host([data-theme=light]){--color-bg:#fbfbfc;--color-surface:#fff;--color-surface-2:#f4f4f6;--color-surface-3:#e9e9ee;--color-border:#e2e2e8;--color-border-strong:#cfcfd8;--color-text:#1b1c20;--color-text-dim:#5c5f6a;--color-text-faint:#9a9da8;--color-accent-soft:#5e6ad21f;--color-danger-soft:#eb57571a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--color-bg:#fbfbfc;--color-surface:#fff;--color-surface-2:#f4f4f6;--color-surface-3:#e9e9ee;--color-border:#e2e2e8;--color-border-strong:#cfcfd8;--color-text:#1b1c20;--color-text-dim:#5c5f6a;--color-text-faint:#9a9da8;--color-accent-soft:#5e6ad21f;--color-danger-soft:#eb57571a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}body{background-color:var(--color-bg);font-family:var(--font-sans);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-width:320px;margin:0;font-size:13px}@keyframes geist-spinner-fade{0%{opacity:1}to{opacity:.15}}[data-tip]{position:relative}[data-tip]:hover:after{content:attr(data-tip);color:#fff;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;z-index:60;background:#1b1c20;border-radius:6px;max-width:260px;padding:3px 8px;font-size:10.5px;font-weight:500;line-height:1.35;position:absolute;bottom:calc(100% + 6px);left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 4px 12px #0000004d}[data-tip][data-tip-pos~=right]:hover:after{left:0;transform:none}[data-tip][data-tip-pos~=left]:hover:after{left:auto;right:0;transform:none}[data-tip][data-tip-pos~=bottom]:hover:after{top:calc(100% + 6px);bottom:auto}.no-scrollbar{scrollbar-width:none}.no-scrollbar::-webkit-scrollbar{display:none}.lg-md p{margin:0 0 6px}.lg-md p:last-child{margin-bottom:0}.lg-md a{color:var(--color-accent);word-break:break-all;text-decoration:none}.lg-md a:hover{text-decoration:underline}.lg-md code{background:var(--color-surface-2);border:1px solid var(--color-border);font-family:var(--font-mono);border-radius:4px;padding:0 4px;font-size:11px}.lg-md pre{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:6px;margin:6px 0;padding:8px;overflow-x:auto}.lg-md pre code{white-space:pre;background:0 0;border:none;padding:0;font-size:11px}.lg-md ul,.lg-md ol{flex-direction:column;gap:2px;margin:4px 0 6px;padding-left:18px;display:flex}.lg-md ul{list-style:outside}.lg-md ol{list-style:decimal}.lg-md h4{margin:8px 0 4px;font-size:12px;font-weight:600}.lg-md lg-media{display:block}.lg-md lg-media img,.lg-md lg-media video{border:1px solid var(--color-border);border-radius:6px;max-width:100%;margin:4px 0}.lg-md video{border:1px solid var(--color-border);background:#000;border-radius:6px;max-width:100%;margin:4px 0}.lg-md img{border:1px solid var(--color-border);border-radius:6px;max-width:100%;margin:4px 0}.lg-md strong{font-weight:600}*{scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:4px}::-webkit-scrollbar-track{background:0 0}@property --tw-rotate-x{syntax:\"*\";inherits:false}@property --tw-rotate-y{syntax:\"*\";inherits:false}@property --tw-rotate-z{syntax:\"*\";inherits:false}@property --tw-skew-x{syntax:\"*\";inherits:false}@property --tw-skew-y{syntax:\"*\";inherits:false}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-leading{syntax:\"*\";inherits:false}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-tracking{syntax:\"*\";inherits:false}@property --tw-ordinal{syntax:\"*\";inherits:false}@property --tw-slashed-zero{syntax:\"*\";inherits:false}@property --tw-numeric-figure{syntax:\"*\";inherits:false}@property --tw-numeric-spacing{syntax:\"*\";inherits:false}@property --tw-numeric-fraction{syntax:\"*\";inherits:false}@property --tw-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\"*\";inherits:false}@property --tw-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\"*\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\"*\";inherits:false}@property --tw-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\"*\";inherits:false}@property --tw-inset-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\"*\";inherits:false}@property --tw-ring-offset-width{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\"*\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-blur{syntax:\"*\";inherits:false}@property --tw-brightness{syntax:\"*\";inherits:false}@property --tw-contrast{syntax:\"*\";inherits:false}@property --tw-grayscale{syntax:\"*\";inherits:false}@property --tw-hue-rotate{syntax:\"*\";inherits:false}@property --tw-invert{syntax:\"*\";inherits:false}@property --tw-opacity{syntax:\"*\";inherits:false}@property --tw-saturate{syntax:\"*\";inherits:false}@property --tw-sepia{syntax:\"*\";inherits:false}@property --tw-drop-shadow{syntax:\"*\";inherits:false}@property --tw-drop-shadow-color{syntax:\"*\";inherits:false}@property --tw-drop-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:\"*\";inherits:false}@property --tw-backdrop-blur{syntax:\"*\";inherits:false}@property --tw-backdrop-brightness{syntax:\"*\";inherits:false}@property --tw-backdrop-contrast{syntax:\"*\";inherits:false}@property --tw-backdrop-grayscale{syntax:\"*\";inherits:false}@property --tw-backdrop-hue-rotate{syntax:\"*\";inherits:false}@property --tw-backdrop-invert{syntax:\"*\";inherits:false}@property --tw-backdrop-opacity{syntax:\"*\";inherits:false}@property --tw-backdrop-saturate{syntax:\"*\";inherits:false}@property --tw-backdrop-sepia{syntax:\"*\";inherits:false}@property --tw-duration{syntax:\"*\";inherits:false}@property --tw-ease{syntax:\"*\";inherits:false}@property --tw-contain-size{syntax:\"*\";inherits:false}@property --tw-contain-layout{syntax:\"*\";inherits:false}@property --tw-contain-paint{syntax:\"*\";inherits:false}@property --tw-contain-style{syntax:\"*\";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}";
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}}";
50300
50351
  //#endregion
50301
50352
  //#region src/page/index.tsx
50302
50353
  Br();
50303
- var P7 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-danger size-2 shrink-0 animate-pulse rounded-full\">"), F7 = /*#__PURE__*/ N("<span class=\"text-text min-w-[5ch] text-[11px] font-medium tabular-nums\">"), I7 = /*#__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"), L7 = /*#__PURE__*/ N("<p class=\"text-warn px-1.5 pt-1 pb-1.5 text-[10.5px] font-semibold tracking-wide uppercase\">Needs review"), R7 = /*#__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"), z7 = /*#__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\">"), B7 = /*#__PURE__*/ N("<div><div title=\"Drag to resize\">"), V7 = /*#__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\">"), H7 = /*#__PURE__*/ N("<span class=\"bg-border h-4 w-px\"aria-hidden>"), U7 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-warn size-2 rounded-full\">"), W7 = /*#__PURE__*/ N("<span class=\"text-warn min-w-[3.5ch] text-left text-[11px] font-medium tabular-nums\"> rev"), G7 = /*#__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>"), K7 = /*#__PURE__*/ N("<span aria-hidden class=\"bg-accent size-2 shrink-0 animate-pulse rounded-full\">"), q7 = /*#__PURE__*/ N("<span class=\"text-text min-w-[3ch] text-[11px] font-medium tabular-nums\">s"), J7 = /*#__PURE__*/ N("<span class=\"text-text-dim min-w-[7ch] text-[11px] tabular-nums\"> states"), Y7 = /*#__PURE__*/ N("<p class=\"text-text-faint px-1.5 pb-1.5 text-[11.5px]\">No agents running right now."), X7 = /*#__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\"> · <!> · ");
50304
- function Z7(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 = {}) {
50305
50356
  if (typeof window > "u" || window.__LINEAR_GRAB_PAGE__) return;
50306
50357
  window.__LINEAR_GRAB_PAGE__ = !0;
50307
50358
  let t = () => {
50308
- uk(), z2(), Y4(), R8(), JZ();
50359
+ uk(), z2(), Q4(), W8(), JZ();
50309
50360
  let t = document.createElement("div");
50310
50361
  t.id = "linear-grab-root", document.body.appendChild(t);
50311
50362
  let n = (e) => {
@@ -50333,17 +50384,17 @@ function Z7(e = {}) {
50333
50384
  "keypress"
50334
50385
  ]) window.addEventListener(e, n, { capture: !0 });
50335
50386
  let r = t.attachShadow({ mode: "open" }), i = document.createElement("style");
50336
- i.textContent = N7, r.appendChild(i);
50387
+ i.textContent = B7, r.appendChild(i);
50337
50388
  let a = document.createElement("div");
50338
50389
  r.appendChild(a);
50339
- let o = () => a.setAttribute("data-theme", Q7());
50340
- o(), matchMedia("(prefers-color-scheme: light)").addEventListener("change", o), nt(() => j(i9, { 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() {
50341
50392
  return e.defaultOpen ?? !1;
50342
50393
  } }), a);
50343
50394
  };
50344
50395
  document.body ? t() : document.addEventListener("DOMContentLoaded", t, { once: !0 });
50345
50396
  }
50346
- function Q7() {
50397
+ function a9() {
50347
50398
  try {
50348
50399
  let e = [document.body, document.documentElement];
50349
50400
  for (let t of e) {
@@ -50353,11 +50404,11 @@ function Q7() {
50353
50404
  } catch {}
50354
50405
  return matchMedia("(prefers-color-scheme: light)").matches ? "light" : "dark";
50355
50406
  }
50356
- var $7 = 130, e9 = 36, t9 = 380, n9 = 280, r9 = 720;
50357
- function i9(e) {
50407
+ var o9 = 130, s9 = 36, c9 = 380, l9 = 280, u9 = 720;
50408
+ function d9(e) {
50358
50409
  let [t, n] = T(e.defaultOpen), [r, i] = T("right"), [a, o] = T({
50359
- x: Math.max(8, window.innerWidth - $7 - 24),
50360
- y: Math.max(8, window.innerHeight - e9 - 20)
50410
+ x: Math.max(8, window.innerWidth - o9 - 24),
50411
+ y: Math.max(8, window.innerHeight - s9 - 20)
50361
50412
  }), [s, c] = T({
50362
50413
  running: [],
50363
50414
  review: []
@@ -50377,12 +50428,12 @@ function i9(e) {
50377
50428
  let t = Math.floor(e / 1e3);
50378
50429
  return `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
50379
50430
  }, [b, x] = T(null), S = (e) => ({
50380
- x: Math.min(Math.max(8, e.x), window.innerWidth - $7 - 8),
50381
- y: Math.min(Math.max(8, e.y), window.innerHeight - e9 - 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)
50382
50433
  }), C = (e) => ({
50383
50434
  x: Math.min(Math.max(8 - (ne() - 80), e.x), window.innerWidth - 80),
50384
50435
  y: Math.min(Math.max(0, e.y), window.innerHeight - 80)
50385
- }), [w, E] = T(!1), [k, ee] = T("cloud"), [te, A] = T(!1), [ne, re] = T(t9), oe = (e) => Math.min(r9, Math.max(n9, 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)));
50386
50437
  O(() => {
50387
50438
  let e = document.documentElement, n = t() && w();
50388
50439
  e.style.marginRight = n && r() === "right" ? `${ne()}px` : "", e.style.marginLeft = n && r() === "left" ? `${ne()}px` : "";
@@ -50496,7 +50547,7 @@ function i9(e) {
50496
50547
  return !t();
50497
50548
  },
50498
50549
  get children() {
50499
- var e = z7(), t = e.firstChild;
50550
+ var e = K7(), t = e.firstChild;
50500
50551
  return t.$$click = () => {
50501
50552
  ce || p() === "recording" || h().active || (f(!1), n(!0));
50502
50553
  }, t.$$pointerdown = le, P(t, j(M, {
@@ -50506,14 +50557,14 @@ function i9(e) {
50506
50557
  get fallback() {
50507
50558
  return [
50508
50559
  (() => {
50509
- var e = V7();
50560
+ var e = J7();
50510
50561
  return e.$$click = () => {
50511
50562
  ce || (f(!1), n(!0));
50512
- }, P(e, j(j7, { size: 13 })), e;
50563
+ }, P(e, j(R7, { size: 13 })), e;
50513
50564
  })(),
50514
- H7(),
50565
+ Y7(),
50515
50566
  (() => {
50516
- var e = G7(), t = e.firstChild, n = t.nextSibling;
50567
+ var e = Q7(), t = e.firstChild, n = t.nextSibling;
50517
50568
  return e.$$click = (e) => {
50518
50569
  e.stopPropagation(), !ce && f((e) => !e);
50519
50570
  }, P(n, (() => {
@@ -50524,8 +50575,8 @@ function i9(e) {
50524
50575
  return $e(() => !te())() && u().length > 0;
50525
50576
  },
50526
50577
  get children() {
50527
- return [U7(), (() => {
50528
- var e = W7(), t = e.firstChild;
50578
+ return [X7(), (() => {
50579
+ var e = Z7(), t = e.firstChild;
50529
50580
  return P(e, () => u().length, t), e;
50530
50581
  })()];
50531
50582
  }
@@ -50546,17 +50597,17 @@ function i9(e) {
50546
50597
  },
50547
50598
  get fallback() {
50548
50599
  return [
50549
- K7(),
50600
+ $7(),
50550
50601
  (() => {
50551
- var e = q7(), t = e.firstChild;
50602
+ var e = e9(), t = e.firstChild;
50552
50603
  return P(e, () => Math.ceil(h().msLeft / 1e3), t), e;
50553
50604
  })(),
50554
50605
  (() => {
50555
- var e = J7(), t = e.firstChild;
50606
+ var e = t9(), t = e.firstChild;
50556
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;
50557
50608
  })(),
50558
50609
  (() => {
50559
- var e = I7();
50610
+ var e = U7();
50560
50611
  return e.$$click = (e) => {
50561
50612
  e.stopPropagation(), !ce && o2();
50562
50613
  }, e;
@@ -50565,13 +50616,13 @@ function i9(e) {
50565
50616
  },
50566
50617
  get children() {
50567
50618
  return [
50568
- P7(),
50619
+ V7(),
50569
50620
  (() => {
50570
- var e = F7();
50621
+ var e = H7();
50571
50622
  return P(e, () => y(_())), e;
50572
50623
  })(),
50573
50624
  (() => {
50574
- var e = I7();
50625
+ var e = U7();
50575
50626
  return e.$$click = () => {
50576
50627
  ce || tO();
50577
50628
  }, e;
@@ -50585,17 +50636,17 @@ function i9(e) {
50585
50636
  return d();
50586
50637
  },
50587
50638
  get children() {
50588
- var e = R7(), t = e.firstChild;
50639
+ var e = G7(), t = e.firstChild;
50589
50640
  return P(e, j(M, {
50590
50641
  get when() {
50591
50642
  return u().length > 0;
50592
50643
  },
50593
50644
  get children() {
50594
- return [L7(), j(We, {
50645
+ return [W7(), j(We, {
50595
50646
  get each() {
50596
50647
  return u();
50597
50648
  },
50598
- children: (e) => j(a9, {
50649
+ children: (e) => j(f9, {
50599
50650
  agent: e,
50600
50651
  review: !0,
50601
50652
  onOpen: de
@@ -50607,14 +50658,14 @@ function i9(e) {
50607
50658
  return l().length > 0;
50608
50659
  },
50609
50660
  get fallback() {
50610
- return Y7();
50661
+ return n9();
50611
50662
  },
50612
50663
  get children() {
50613
50664
  return j(We, {
50614
50665
  get each() {
50615
50666
  return l();
50616
50667
  },
50617
- children: (e) => j(a9, {
50668
+ children: (e) => j(f9, {
50618
50669
  agent: e,
50619
50670
  onOpen: de
50620
50671
  })
@@ -50635,8 +50686,8 @@ function i9(e) {
50635
50686
  return t();
50636
50687
  },
50637
50688
  get children() {
50638
- var e = B7(), t = e.firstChild;
50639
- return t.$$pointerdown = fe, P(e, j(M7, {
50689
+ var e = q7(), t = e.firstChild;
50690
+ return t.$$pointerdown = fe, P(e, j(z7, {
50640
50691
  onGrab: () => n(!0),
50641
50692
  onClose: () => n(!1),
50642
50693
  get onHeaderPointerDown() {
@@ -50664,19 +50715,19 @@ function i9(e) {
50664
50715
  }
50665
50716
  })];
50666
50717
  }
50667
- function a9(e) {
50718
+ function f9(e) {
50668
50719
  return (() => {
50669
- var t = X7(), 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;
50670
50721
  return c.nextSibling, t.$$click = () => e.onOpen(e.agent.id), P(i, () => e.agent.identifier), P(a, () => e.agent.title), P(o, (() => {
50671
50722
  var t = $e(() => !!e.review);
50672
50723
  return () => t() ? "PR ready · needs review" : e.agent.stateName;
50673
- })(), s), P(o, () => e.agent.delegateName, c), P(o, () => o9(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;
50674
50725
  })();
50675
50726
  }
50676
- function o9(e) {
50727
+ function p9(e) {
50677
50728
  let t = Math.max(0, Math.floor((Date.now() - Date.parse(e)) / 1e3));
50678
50729
  return t < 60 ? "now" : t < 3600 ? `${Math.floor(t / 60)}m` : t < 86400 ? `${Math.floor(t / 3600)}h` : `${Math.floor(t / 86400)}d`;
50679
50730
  }
50680
50731
  rt(["pointerdown", "click"]);
50681
50732
  //#endregion
50682
- export { Z7 as init };
50733
+ export { i9 as init };